amortize

Amortization schedule

Syntax

[Principal, Interest, Balance, Payment] = amortize(Rate,
NumPeriods, PresentValue, FutureValue, Due)

Arguments

Rate

Interest rate per period, as a decimal fraction.

NumPeriods

Number of payment periods.

PresentValue

Present value of the loan.

FutureValue

(Optional) Future value of the loan. Default = 0.

Due

(Optional) When payments are due: 0 = end of period (default), or 1 = beginning of period.

Description

[Principal, Interest, Balance, Payment] = amortize(Rate, NumPeriods, PresentValue, FutureValue, Due) returns the principal and interest payments of a loan, the remaining balance of the original loan amount, and the periodic payment.

Principal

Principal paid in each period. A 1-by-NumPeriods vector.

Interest

Interest paid in each period. A 1-by-NumPeriods vector.

Balance

Remaining balance of the loan in each payment period. A 1-by-NumPeriods vector.

Payment

Payment per period. A scalar.

Examples

expand all

Compute an Amortization Schedule for a Conventional 30-Year, Fixed-Rate Mortgage With Fixed Monthly Payments

Compute an amortization schedule for a conventional 30-year, fixed-rate mortgage with fixed monthly payments and assume a fixed rate of 12% APR and an initial loan amount of $100,000.

Rate         = 0.12/12;   % 12 percent APR = 1 percent per month
NumPeriods   = 30*12;     % 30 years = 360 months
PresentValue = 100000;

[Principal, Interest, Balance, Payment] = amortize(Rate, ...
NumPeriods, PresentValue);

The output argument Payment contains the fixed monthly payment.

format bank

Payment
Payment =

       1028.61

Summarize the amortization schedule graphically by plotting the current outstanding loan balance, the cumulative principal, and the interest payments over the life of the mortgage. In particular, note that total interest paid over the life of the mortgage exceeds $270,000, far in excess of the original loan amount.

plot(Balance,'b'), hold('on')
plot(cumsum(Principal),'--k')
plot(cumsum(Interest),':r')

xlabel('Payment Month')
ylabel('Dollars')
grid('on')
title('Outstanding Balance, Cumulative Principal & Interest')
legend('Outstanding Balance', 'Cumulative Principal', ...
'Cumulative Interest')

The solid blue line represents the declining principal over the 30-year period. The dotted red line indicates the increasing cumulative interest payments. Finally, the dashed black line represents the cumulative principal payments, reaching $100,000 after 30 years.

Was this topic helpful?