# Python3; standard library only. Reproduces all24 full-precision scenarios. import csv, math, sys writer=csv.writer(sys.stdout,lineterminator='\n') writer.writerow(['note_rate_pct','months','fee_pct_of_gross','net_cash','gross_principal','fee','payment','interest','repayment','repayment_less_net']) for rate in [10,15,20]: for n in [36,60]: for f in [0,3,5,8]: p=10000/(1-f/100); r=rate/1200 payment=p*r/-math.expm1(-n*math.log1p(r)); total=payment*n writer.writerow([rate,n,f,10000,p,p-10000,payment,total-p,total,total-10000])