I have gotten numerous requests from individuals wondering what the simple formula is for calculating the monthly payment and also the amortization table. Instead of just showing some boring source code, I thought I would try to explain it.
NOTE: This first part is for United States mortgages. Look here for the Canadian formula.
First you must define some variables to make it easier to set up:
The following assumes a typical conventional loan where the interest is compounded monthly. First I will define two more variables to make the calculations easier:
Okay now for the big monthly payment (M) formula, it is:
J M = P x ------------------------ 1 - ( 1 + J ) ^ -N where 1 is the number one (it does not appear too clearly on some browsers)
So to calculate it, you would first calculate 1 + J then take that to the -N (minus N) power, subtract that from the number 1. Now take the inverse of that (if you have a 1/X button on your calculator push that). Then multiply the result times J and then times P. Sorry, for the long way of explaining it, but I just wanted to be clear for everybody.
The one-liner for a program would be (adjust for your favorite language):
M = P * ( J / (1 - (1 + J) ** -N))
So now you should be able to calculate the monthly payment, M. To calculate the amortization table you need to do some iteration (i.e. a simple loop). I will tell you the simple steps :
Step 1:
Calculate H = P x J, this is your current monthly interest
Step 2:
Calculate C = M - H, this is your monthly payment minus
your monthly interest, so it is the amount of principal you pay for that month
Step 3: Calculate Q = P - C, this is the new balance of
your principal of your loan.
Step 4: Set P equal to Q and go back to Step 1: You thusly loop around until the value Q (and hence P)
goes to zero.
Programmers will see how this makes a trivial little loop to code, but I have found that many people now surfing on the Internet are NOT programmers and still want to calculate their mortgages! So this page was dedicated more to the latter.
n = - (LN(1-(B/m)*(r/q)))/LN(1+(r/q))
# years = - 1/q * (LN(1-(B/m)*(r/q)))/LN(1+(r/q))
Where:
P = P * (1 - ((1 + J) ** t - 1) / ((1 + J) ** N - 1))where:
This was contributed to me by: Mike Morley (morleym@interlog.com)
Canadian mortgages are compounded semi-annually instead of monthly like US mortgages. Monthly Pmt = (P*(((1+i/200)^(1/6)-1))/(1-(((1+i/200)^(1/6)))^-(n*12))) Where: P = principal outstanding i = annual interest rate percentage n = number of years
Here is a easier to read representation:
i 1/6 ( 1 + --- ) - 1 200 Pmt = Principal x ------------------------ i 1/6 -12 x n 1 - [ (1 + --- ) ] 200 Or to convert canadian interest rates to US interest rates: Can. Rate 1/6 US Rate = 1200 x [ ( 1 + --------- ) - 1 ] 200 or as a formula, US Rate = 1200 * ((1 + Can.Rate/200)^(1/6) - 1)
You'll note if you plug this into the US formula you get the above formula for payment.