18

I'm trying to understand the amortization schedules of TD mortgages, as produced by the TD Calculator.

The monthly payment amounts (on this fixed rate mortgage) are predictable and constant, but the portion of each payment that goes to interest is non-monotonic. I would expect it to start high, and progressively reduce. But it jumps up and down... why is that?

E.g.:

A 1M dollar loan, Amortization of 25 year, monthly payments, at a quoted fixed rate of 5.34%. Screenshot is from Aug 14 2022.

calculator showing $6011 monthly payment

Amortization Schedule

And the equivalent table, in text:

Payment # Opening Bal. Principal Interest Payment Closing Balance
1 $1,000,000.00 $1,672.48 $4,338.62 $6,011.10 $998,327.52
2 $998,327.52 $1,535.36 $4,475.74 $6,011.10 $996,792.16
3 $996,792.16 $1,686.40 $4,324.70 $6,011.10 $995,105.76
4 $995,105.76 $1,549.80 $4,461.30 $6,011.10 $993,555.96
5 $993,555.96 $1,556.75 $4,454.35 $6,011.10 $991,999.21
6 $991,999.21 $1,994.12 $4,016.98 $6,011.10 $990,005.09
7 $990,005.09 $1,572.67 $4,438.43 $6,011.10 $988,432.42
8 $988,432.42 $1,722.67 $4,288.43 $6,011.10 $986,709.75
9 $986,709.75 $1,587.45 $4,423.65 $6,011.10 $985,122.30
10 $985,122.30 $1,737.03 $4,274.07 $6,011.10 $983,385.27
11 $983,385.27 $1,602.35 $4,408.75 $6,011.10 $981,782.92
12 $981,782.92 $1,609.53 $4,401.57 $6,011.10 $980,173.39

What's at play?


Edit: Wall of math below for trying out answers

It was promptly suggested that the varying rates might ebb and flow with the lengths of the months in the calendar (2022). I was curious to try which particular fraction they were using to estimate the length of the year.

First, I compute the effective annual rate from the fixed rate

# fixed mortgage rates in canada compound on 6 months, so
# we have to simulate the quoted APR compounding every 6 mo.

APR = 0.0534    # quoted rate
EAR = (1+0.0534/2)^2 - 1 = 0.05411289 = 5.41%

From there, we can derive periodic interest rates for different periods:

# 30 day, 31 day, and 28 day
rate_30 = (1+EAR)^(30/365) - 1  # Apr, Jun, Sep, Nov
rate_31 = (1+EAR)^(31/365) - 1  # Jan, Mar, May, Jul, Aug, Oct, Dec
rate_28 = (1+EAR)^(28/365) - 1  # Feb

This is the same as if we'd established the equivalent daily rate, and then compounded it each day of the month during that month.

daily_rate = (1+EAR)^(1/365) - 1

rate_30 = (1+EAR)^(30/165) - 1
        = ((1+EAR)^(1/165))^30 - 1
        = (1 + daily_rate)^30 - 1

# same for rate_28 and rate_31

Just to show that the above works, if you borrowed X dollars at the start of the year, didn't make any payments, and at the end of each month multiplied the balance with the rate of that month, and then looked at the final balance a year later, you'd have accumulated 5.41% additional debt:

Y2_loan = X * (1+jan_rate) * (1+feb_rate) * ... * (1+dec_rate)
        = X * (1+rate_31) * (1+ rate_28) * ... * (1+rate_31)
        = X * (1+rate_31)^7 * (1 + rate_28) * (1+ rate_30)^4
        = X * (1+EAR)^(217/365) * (1+EAR)^(28/365) * (1+EAR)^(120)
        = X * (1+EAR)^(365/365) = X * (1+EAR)
        = 1.0541129 * X

(just to show that the interest compounded that way is equivalent to compounding once yearly at 5.411289%)

Reversing the fractional year amounts

I then tried to use the equations above to determine which fractions of a year were being used by TD's calculator.

I look at the first few payment data points A, B, C, which are on consecutive months:

(O)pening principal (I)nterest Payment Effective monthly rate (I/O)
1,000,000 $4,338.62 A= 0.004338620
998,327.52 $4,475.74 B= 0.004483238
996,792.16 $4,324.70 C= 0.004338618

We see that the rate for the second month is higher than the first, and we see that the third effective rate C is the same as A. Let's ignore the fact that the monetary values are rounded for a moment.

We can plug the obtained rate in our yearly formula to derive the exponent applied to the EAR, dubbed frac_A here:

 (1+EAR)^frac_A - 1 = A

 (1+EAR)^frac_A - 1 = 0.004338620 

 (1+EAR)^frac_A = 1.004338620

 log((1+EAR) ^ frac_A) = log(1.00338620)

 frac_A * log(1+EAR) = log(1.00338620)

 frac_A = log(1.00338620)/log(1+EAR)

 frac_A = 0.082149378
        = 29.98452308 / 365   # Assuming the year has 365 days exactly.
        = 30 / 365.1883997    # Assuming the month has 30 days exactly.
 

So it could be that the first period corresponds to a 29.9845 day-period in a year of 365 days, or a period of 30 days in a year with 365.19 days.

If I do the same to datapoint B, then we obtain a period of 30.9818 days in a year of 365 days, or a period of 31 days in a year with 365.21 days.

Considering numerical rounding on the dollar amounts

There shouldn't be much rounding error on the very first payment, and so when taking into account rounding, the true value of that first payment could lie anywhere between $4,338.61 and $4,338.63 before rounding (either up or down).

  • If the number was on the limit of $4338.61, then that would correspond to a month with 29.98445 days, or a 30 day period in a 365.1892 day year

  • If the number was on the limit of 4338.63, then that's 29.98459 days, or a 365.2149 days in a year.

I can't get it over the 30 day mark, so the rounding must happen elsewhere, probably on the EAR calculation.

5
  • Should this be tagged as Canadian-specific?
    – void_ptr
    Aug 15 at 17:04
  • 1
    This specific bank is Canadian, but I expect there are similar issues with other amortization tables. The general principle certainly isn’t specific to Canada.
    – cjm
    Aug 16 at 5:00
  • @cjm That certainly is not how US mortgages work, for one.
    – void_ptr
    Aug 16 at 6:13
  • 2
    @void_ptr not US mortgages, but I have a US vehicle loan that has principal payment amounts that fluctuate like this example.
    – Travis
    Aug 16 at 15:00
  • Do you have data about when each payment was received, credited, or posted? I wonder if variability in the payment receipt date could be affecting this. Also, what date was the loan taken out, and what date was first payment due?
    – ErikE
    Sep 8 at 23:17

1 Answer 1

41

I'm fairly sure this is because they're including the fact that months aren't all the same length. This is obscured because they don't actually include the relevant dates with the results, or even mention that the table will vary slightly based on the current date. But here's your table with the months and their length inserted, and a new column that divides the interest by the number of days in the month.

Payment # Opening B. Principal Month Interest Payment Ending B. Interest/Day
1 $1,000,000.00 $1,672.48 Sep 30 $4,338.62 $6,011.10 $998,327.52 $144.62
2 $998,327.52 $1,535.36 Oct 31 $4,475.74 $6,011.10 $996,792.16 $144.38
3 $996,792.16 $1,686.40 Nov 30 $4,324.70 $6,011.10 $995,105.76 $144.16
4 $995,105.76 $1,549.80 Dec 31 $4,461.30 $6,011.10 $993,555.96 $143.91
5 $993,555.96 $1,556.75 Jan 31 $4,454.35 $6,011.10 $991,999.21 $143.69
6 $991,999.21 $1,994.12 Feb 28 $4,016.98 $6,011.10 $990,005.09 $143.46
7 $990,005.09 $1,572.67 Mar 31 $4,438.43 $6,011.10 $988,432.42 $143.18
8 $988,432.42 $1,722.67 Apr 30 $4,288.43 $6,011.10 $986,709.75 $142.95
9 $986,709.75 $1,587.45 May 31 $4,423.65 $6,011.10 $985,122.30 $142.70
10 $985,122.30 $1,737.03 Jun 30 $4,274.07 $6,011.10 $983,385.27 $142.47
11 $983,385.27 $1,602.35 Jul 31 $4,408.75 $6,011.10 $981,782.92 $142.22
12 $981,782.92 $1,609.53 Aug 31 $4,401.57 $6,011.10 $980,173.39 $141.99

Notice how the amount of interest varies with the length of the month, especially the big dip in February. Of course, since you have a fixed payment amount, the principal varies inversely with the interest. The Interest/Day is steadily decreasing, as you'd expect as you pay the balance down.

12
  • Ooooh! you're on to something for sure. TD computes interests on a daily basis then?. Every lender seems to use their own special sauce... I'll try to see if the numbers line up when I bring back the EAR to the period of a day daily_interest = (1+EAR)^(1/365) - 1, and then compound it to the number of days since the last payment.
    – pf_init_js
    Aug 15 at 3:23
  • 6
    @pf_init_js look us "day count basis". There are a handful of industry standard methods - many banks choose ACT/360 or ACT/365 which uses the actual number of days in a month. Some use 30/360 which uses the same number of days each month. It's not "using :"their own special sauce"
    – D Stanley
    Aug 15 at 13:27
  • @pf_init_js Also note that interest does not compound daily, so your equivalent interest rate for a month should just be R * (N/365) or possibly R * (N/360)
    – D Stanley
    Aug 15 at 16:04
  • in canada, fixed rates compound every 6 months according to the interest act of canada, but banks still seem to compute the EAR, and then derive a periodic interest rate matching your desired payment period, month, semi-month, bi-week, week, etc. i just meant that it’s possible to obtain daily interest rate from EAR: e.g. daily_rate = (1+EAR)^(1/365) - 1 and experiment with that. Re: “special sauce: the RBC online calculator defines a week as 7/365.25 years”. Thanks for ACT36X pointers, that looks fun.
    – pf_init_js
    Aug 16 at 2:01
  • I edited my question with some derivations in an "appendix". I tried to reverse the exact fractions used in the calculator. I got close, but I can't land exactly on the dollar amounts the calculator provides. In any case, it's definitely a 30 day vs 31 day thing (with a year of about 365.20 days). I tried the astronomical year too (365.2425), it's not that. Definitely not ACT360.
    – pf_init_js
    Aug 17 at 5:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.