Overview
The standard fixed instrument, a bond, pays only interest each period until the maturity, at which point, it pays both interest and the entire principal.
Debtors, particulary home buyers, prefer to pay a fixed amount at each period until maturity. That is, payments include both interest and principal. This is called amortizing the loan. (see amortized loans)
Calculating Amortized Payment
{% Period \, Payment = Principal \times [\frac{r \times (1+r)^n}{(1+r)^n - 1}] %}
- {% r %} - is the period interest rate. For instance, if the quote annual rate is 12% and payments are made monthly, the period interest rate is 1%.
- {% n %} - number of payments
let amt = await import('/lib/finance/fixed-income/v1.0.0/amortized.mjs');
let principal = 2000000;
let rate = 0.08
let numberOfPeriods = 12*20;
let period = 12;
let payment = amt.payment(principal,rate,numberOfPeriods,period);
Using the Payment API
let amt = await import('/lib/finance/fixed-income/v1.0.0/amortized.mjs');
let payment = amt.payment(2000000,0.08,12*20,12);
Calculating Payments as Array
let amt = await import('/lib/finance/fixed-income/v1.0.0/amortized.mjs');
let pm = await import('/lib/finance/fixed-income/v1.0.0/payments.mjs');
let start = '2020-01-31';
let number = 12*10;
let period=12;
let endOfMonth = true;
let principal = 100000;
let rate = 0.05;
let payments = pm.amortized(start, principal, rate, number, period, endOfMonth);