> Payment 0.10 06-Jan-2005 - Calculate mortgage repayment terms, etc  J.G.Harston (: 23 Grrr. Can't get working - needs more research <: F 26,12 P& "Mortgage Repayments Calculator" Z' "=============================="' d : <>17: n x='"1: Loan table"'"2: Fixed repayment table"'"0: Exit "; A$=:"012",A$): A$="1":LoanTable A$="2":FixedRepaymentTable A$="0"  : : : : ( Display loan fixed repayment table ( ================================== FixedRepaymentTable  "Loan amount: "loan  "Base APR: "apr . "Initial monthly repayment: "repayment . "Annual percentage increment: "increment " ,)" Monthly Interest Amount" 6."Year Payments Charged Outstanding" @." at year end" J: T] apr=apr/(1200):payment=loan*(apr/(1-(1+apr)^-(years*12))) :REM Magic forumla ^: hAyear=0 : No time passed yet r |% d(year+1,3);r(repayment,8,2); Kloan0=loan : Loan amount at start of year E month=1 12 : Twelve monthly repayments (interest=(loan0*((1+apr/100)/12))/12 ;loan=loan+interest : Add interest Gloan=loan-repayment : Deduct monthly repayment  : r(loan-loan0+12*repayment,8,2); : Interest charged ? r(loan,8,2) : Amount at end of year @year=year+1 : Another year gone Irepayment=repayment*(1+increment/100) : Increase monthly repayment G loan<0 : Loop until all loan paid off  : : : : &8 Display loan table of monthly repayments and terms 08 ================================================== :LoanTable D "Loan amount: "loan N "Base APR: "apr X(inc0=0:inc1=2:incs=0.25:yr0=17:yr1=2 b l&6"Loan: "loan;6"APR: ";apr;"%"' v/6"Initial monthly payment with increment"  "Term"; " increment=inc0 inc1 incs  r(increment,5,2)"%"; : ) years=yr0 yr1 -1: d(years,3); $ increment=inc0 inc1 incs 7 payment=loan_payment(loan,apr,years,increment)  r(payment,6,2);  increment   years  : :  1 Calculate monthly repayment to pay off loan 1 ===========================================  " loan = initial loan amount *4 apr = annual interest rate, applied monthly 4) years = maximum term to repay loan >) inc = annual repayment increment H R8 Returns: monthly repayment to pay loan within term \: f&ݤloan_payment(loan,apr,years,inc) p" payment,term,step,dir,newdir zHpayment=loan (years*8) : Initial guess at repayment Astep=payment 2 : Initial chop offset : C : Trail increase repayment B payment=payment+step : Increase repayment J term=loan_term(loan,apr,payment,inc) : See what term this gives us N termyears newdir=1 newdir=-1 O newdir<>dir step=step/2 : Reduce step when changing direction  dir=newdir  term=years : $] apr=apr/(1200):payment=loan*(apr/(1-(1+apr)^-(years*12))) :REM Magic forumla .: 8 =payment B: L: V: `: j( Calculate loan term with fixed APR t( ================================== ~% loan = initial loan amount 7 apr = annual interest rate, applied monthly + repayment = initial monthly repayment , increment = annual repayment increment  A Returns : number of years to repay whole loan, rounded up : -ݤloan_term(loan,apr,repayment,increment)  year ?year=0 : No time passed yet  C month=1 12 : Twelve monthly repayments Wloan=loan*((1+apr/100)^(1/12)) : Add interest - school taught me wrong formula! = loan=loan*(1+apr/1200) :REM Add interest  Eloan=loan-repayment : Deduct monthly repayment  >year=year+1 : Another year gone (Grepayment=repayment*(1+increment/100) : Increase monthly repayment 2E loan<0 : Loop until all loan paid off < =year F: P: Z! Number formatting functions d! =========================== n0ݤr(A,I%,D%):=d(A,I%)+"."+è(A*10^D%),D%) x#ݤd(A%,N%)=" "+A%,N%) : ] loan=loan*((1+apr/100)^(1/12)) :REM Add interest - school taught me wrong formula!