bell notificationshomepageloginNewPostedit profiledmBox

Hoots : How do I set up the formulas to properly split monthly loan payments to principal and interest? This has been a small annoyance for months now: the formulas GNUCash produced via loan repayment wizard don't match up with my - freshhoot.com

10% popularity   0 Reactions

How do I set up the formulas to properly split monthly loan payments to principal and interest?
This has been a small annoyance for months now: the formulas GNUCash produced via loan repayment wizard don't match up with my lender's amortization tables. The formulas use pmt() functions, like this payment formula:

pmt( 0.02250 / 12.00 : i : 174.00 : 12063.94 : 0 : 0 )

Which yields a payment of 81.30.

But I think my loans are using something more complicated that varies by days in month/pay period, judging by how DirectLoan is accounting the payments:

Month Pmt Principal Interest

Jan'11 .38 .06 .32
Dec'10 .38 .33 .05
Nov'10 .38 .13 .25
Oct'10 .38 .41 .97
Sep'10 .38 .00 .38
Aug'10 .38 .07 .31

Anyone know what formulas I should be using for a standard US student consolidation loan, and how to represent them in GNUCash?


Load Full (4)

Login to follow hoots

4 Comments

Sorted by latest first Latest Oldest Best

10% popularity   0 Reactions

The proper calculation likely has something to do with the simple daily interest formula. Not sure if/how to determine "days since last payment".


10% popularity   0 Reactions

If your rate is variable, then it's hard to predict with a formula. I'd just make sure you enter each part separately.

If you have a loan for which the rate is fixed, or changes in a predetermined manner, then it's possible to predict principal/interest split.


10% popularity   0 Reactions

Does the 12063.94 represent your current payoff amount or does it represent the balance from your statement?

The current payoff amount is often a number you get if you log into your account online and it represents what it would take today to pay off the debt. That number increases over the course of a month as you accrue that month's interest until your statement date.

According to my calculations, 12063.94 would be your payoff amount had you logged in about halfway between your statement dates with 174 months remaining.


10% popularity   0 Reactions

Here are two methods, the first I would say is more standard.

Method 1. For equal months, assuming nominal 2.25% APR compounded monthly

With

s is the initial loan principal
r is the monthly interest rate
n is the number of months
d is the regular monthly payment

by standard loan formula

s = 12063.94
r = 0.02250/12
n = 174
d = (r (1 + r)^n s)/((1 + r)^n - 1) = 81.3212

The interest and principal repayment in month n are

i[n] = d + (r s - d) (1 + r)^(n - 1)
pr[n] = (d - r s) (r + 1)^(n - 1)

E.g. at the end of month n = 1 the interest and principal repayment are

i[1] = d + (r s - d) (1 + r)^(n - 1) = r s = 22.6199
pr[1] = (d - r s) (r + 1)^(n - 1) = d - r s = 58.7013

pr[1] + i[1] = 81.3212 = d

Plotting over all 174 months

Method 2. Applying the simple daily interest formula as posted by the OP

Jul 28 2010 to Aug 28 2010 is 31 days
Aug 28 2010 to Sep 28 2010 is 31 days

s = 063.94
i = daily interest rate

Try

31 i s = 23.31 ? i = 0.0000623292
31 i (s - 58.07) = 20.38 ? i = 0.0000547582

The rates are too different. Try adjusting for dates falling on a weekend.

Jul 28 2010 is a Wednesday
Aug 28 2010 is a Saturday
Sep 28 2010 is a Tuesday

So extending the first repayment date to Monday Aug 30.

33 i s = 23.31 ? i = 0.0000585517
29 i (s - 58.07) = 20.38 ? i = 0.0000585346

Much better agreement on the rate, so continuing ...

Tue Sep 28 2010 to Thu Oct 28 2010 is 30 days

30 i (s - 58.07 - 61) = 20.97 ? i = 0.0000585188

Nov 28 2010 is a Sunday so adjusting:
Thu Oct 28 2010 to Mon Nov 29 2010 is 32 days

32 i (s - 58.07 - 61 - 60.41) = 22.25 ? i = 0.000058506

Mon Nov 29 2010 to Tue Dec 28 2010 is 29 days

29 i (s - 58.07 - 61 - 60.41 - 59.13) = 20.05 ? i = 0.000058466

Tue Dec 28 2010 to Fri Jan 28 2011 is 31 days

31 i (s - 58.07 - 61 - 60.41 - 59.13 - 61.33) = 21.32 ? i = 0.0000584616

So the rates are all fairly similar which indicates the method is correct.

avg = (0.0000585517 +
0.0000585346 +
0.0000585188 +
0.000058506 +
0.000058466 +
0.0000584616) / 6 = 0.0000585064

It's not clear how that connects to the stated APR of 2.25%.

0.0000585064 * 365.25 = 2.13695 %

or, alternatively, how many days per month does the rate imply?

0.0225 / 12 = 0.001875 per month

0.001875 / 0.0000585064 = 32.0478 days

There doesn't seem to be a way to connect the daily rate of 0.00585% to 2.25% APR.

Taking the average daily rate one might expect to be able to reconstruct a decent amortisation table. Actually, to construct one that amortises to a zero balance a daily rate of 0.006186095% was required.

This actually comes a lot closer to an APR of 2.25%.

0.00006186095 * 365 = 2.25792 %

Here is the Mathematica amortisation program used and its output.

First building tables of the adjusted dates and the number of days between them.

nonshifteddates = NestList[Take[DateList[# + {0, 1, 0}], 3] &, {2010, 7, 28}, 174];

adjust[date_] := Module[{dayname, newdate = date},
dayname = DateString[date, "DayName"];
If[dayname == "Saturday", newdate = Take[DateList[date + {0, 0, 2}], 3]];
If[dayname == "Sunday", newdate = Take[DateList[date + {0, 0, 1}], 3]];
newdate]

adjusteddates = adjust /@ nonshifteddates;

dayslist = QuantityMagnitude@DateDifference[#1, #2 , "Day"] & @ @@
Partition[adjusteddates, 2, 1]

{33, 29, 30, 32, 29, 31, 31, 28, 31, 32, 29, 30, 32, 30, 30, 31, 30,
33, 29, 29, 33, 28, 31, 32, 29, 31, 31, 30, 30, 31, 31, 28, 32, 29,
31, 31, 30, 33, 28, 31, 32, 29, 31, 28, 31, 30, 33, 28, 31, 32, 29,
31, 31, 30, 33, 28, 29, 30, 32, 29, 31, 31, 30, 33, 28, 31, 32, 28,
31, 32, 29, 30, 32, 30, 30, 31, 30, 33, 29, 28, 31, 31, 30, 30, 31,
31, 32, 29, 30, 32, 30, 28, 33, 28, 31, 32, 29, 31, 31, 30, 30, 31,
31, 28, 32, 29, 31, 31, 30, 33, 28, 31, 32, 29, 31, 31, 29, 30, 32,
29, 31, 31, 30, 33, 28, 31, 32, 28, 30, 30, 31, 30, 33, 29, 30, 32,
29, 31, 31, 28, 31, 32, 29, 30, 32, 30, 30, 31, 30, 33, 29, 28, 31,
31, 30, 30, 31, 31, 32, 29, 30, 32, 30, 29, 32, 29, 31, 31, 30, 33,
28, 31, 32, 29}

Next, the input values.

balance = 12063.94;
payment = 81.38;
rate = 0.00006186095;

Now the main program.

output = {};

calc[n_] := Module[{days, interest, principal, newbalance},
days = dayslist[[n]];
interest = Round[days*rate*balance, 0.01];
principal = payment - interest;
newbalance = Chop[balance - principal];
AppendTo[output,
{DateString[adjusteddates[[n]], {"Day", " ", "MonthNameShort", " '", "YearShort"}],
DateString[adjusteddates[[n + 1]], {"Day", " ", "MonthNameShort", " '", "YearShort"}],
balance, days, principal, interest, newbalance}];
balance = newbalance]

Array[calc, 174];

Finally, here is the output.

TableForm@Prepend[output,
{"From Date", "To Date", "Amount", "Days", "Principal", "Interest", "Balance"}]

From Date To Date Amount Days Principal Interest Balance
28 Jul '10 30 Aug '10 12063.9 33 56.75 24.63 12007.2
30 Aug '10 28 Sep '10 12007.2 29 59.84 21.54 11947.4
28 Sep '10 28 Oct '10 11947.4 30 59.21 22.17 11888.1
28 Oct '10 29 Nov '10 11888.1 32 57.85 23.53 11830.3
29 Nov '10 28 Dec '10 11830.3 29 60.16 21.22 11770.1
28 Dec '10 28 Jan '11 11770.1 31 58.81 22.57 11711.3
28 Jan '11 28 Feb '11 11711.3 31 58.92 22.46 11652.4
28 Feb '11 28 Mar '11 11652.4 28 61.2 20.18 11591.2
28 Mar '11 28 Apr '11 11591.2 31 59.15 22.23 11532.1
28 Apr '11 30 May '11 11532.1 32 58.55 22.83 11473.5
30 May '11 28 Jun '11 11473.5 29 60.8 20.58 11412.7
28 Jun '11 28 Jul '11 11412.7 30 60.2 21.18 11352.5
28 Jul '11 29 Aug '11 11352.5 32 58.91 22.47 11293.6
29 Aug '11 28 Sep '11 11293.6 30 60.42 20.96 11233.2
28 Sep '11 28 Oct '11 11233.2 30 60.53 20.85 11172.6
28 Oct '11 28 Nov '11 11172.6 31 59.95 21.43 11112.7
28 Nov '11 28 Dec '11 11112.7 30 60.76 20.62 11051.9
28 Dec '11 30 Jan '12 11051.9 33 58.82 22.56 10993.1
30 Jan '12 28 Feb '12 10993.1 29 61.66 19.72 10931.5
28 Feb '12 28 Mar '12 10931.5 29 61.77 19.61 10869.7
28 Mar '12 30 Apr '12 10869.7 33 59.19 22.19 10810.5
30 Apr '12 28 May '12 10810.5 28 62.66 18.72 10747.8
28 May '12 28 Jun '12 10747.8 31 60.77 20.61 10687.1
28 Jun '12 30 Jul '12 10687.1 32 60.22 21.16 10626.8
30 Jul '12 28 Aug '12 10626.8 29 62.32 19.06 10564.5
28 Aug '12 28 Sep '12 10564.5 31 61.12 20.26 10503.4
28 Sep '12 29 Oct '12 10503.4 31 61.24 20.14 10442.2
29 Oct '12 28 Nov '12 10442.2 30 62. 19.38 10380.2
28 Nov '12 28 Dec '12 10380.2 30 62.12 19.26 10318.
28 Dec '12 28 Jan '13 10318. 31 61.59 19.79 10256.4
28 Jan '13 28 Feb '13 10256.4 31 61.71 19.67 10194.7
28 Feb '13 28 Mar '13 10194.7 28 63.72 17.66 10131.
28 Mar '13 29 Apr '13 10131. 32 61.33 20.05 10069.7
29 Apr '13 28 May '13 10069.7 29 63.32 18.06 10006.4
28 May '13 28 Jun '13 10006.4 31 62.19 19.19 9944.18
28 Jun '13 29 Jul '13 9944.18 31 62.31 19.07 9881.87
29 Jul '13 28 Aug '13 9881.87 30 63.04 18.34 9818.83
28 Aug '13 30 Sep '13 9818.83 33 61.34 20.04 9757.49
30 Sep '13 28 Oct '13 9757.49 28 64.48 16.9 9693.01
28 Oct '13 28 Nov '13 9693.01 31 62.79 18.59 9630.22
28 Nov '13 30 Dec '13 9630.22 32 62.32 19.06 9567.9
30 Dec '13 28 Jan '14 9567.9 29 64.22 17.16 9503.68
28 Jan '14 28 Feb '14 9503.68 31 63.15 18.23 9440.53
28 Feb '14 28 Mar '14 9440.53 28 65.03 16.35 9375.5
28 Mar '14 28 Apr '14 9375.5 31 63.4 17.98 9312.1
28 Apr '14 28 May '14 9312.1 30 64.1 17.28 9248.
28 May '14 30 Jun '14 9248. 33 62.5 18.88 9185.5
30 Jun '14 28 Jul '14 9185.5 28 65.47 15.91 9120.03
28 Jul '14 28 Aug '14 9120.03 31 63.89 17.49 9056.14
28 Aug '14 29 Sep '14 9056.14 32 63.45 17.93 8992.69
29 Sep '14 28 Oct '14 8992.69 29 65.25 16.13 8927.44
28 Oct '14 28 Nov '14 8927.44 31 64.26 17.12 8863.18
28 Nov '14 29 Dec '14 8863.18 31 64.38 17. 8798.8
29 Dec '14 28 Jan '15 8798.8 30 65.05 16.33 8733.75
28 Jan '15 02 Mar '15 8733.75 33 63.55 17.83 8670.2
02 Mar '15 30 Mar '15 8670.2 28 66.36 15.02 8603.84
30 Mar '15 28 Apr '15 8603.84 29 65.94 15.44 8537.9
28 Apr '15 28 May '15 8537.9 30 65.54 15.84 8472.36
28 May '15 29 Jun '15 8472.36 32 64.61 16.77 8407.75
29 Jun '15 28 Jul '15 8407.75 29 66.3 15.08 8341.45
28 Jul '15 28 Aug '15 8341.45 31 65.38 16. 8276.07
28 Aug '15 28 Sep '15 8276.07 31 65.51 15.87 8210.56
28 Sep '15 28 Oct '15 8210.56 30 66.14 15.24 8144.42
28 Oct '15 30 Nov '15 8144.42 33 64.75 16.63 8079.67
30 Nov '15 28 Dec '15 8079.67 28 67.39 13.99 8012.28
28 Dec '15 28 Jan '16 8012.28 31 66.01 15.37 7946.27
28 Jan '16 29 Feb '16 7946.27 32 65.65 15.73 7880.62
29 Feb '16 28 Mar '16 7880.62 28 67.73 13.65 7812.89
28 Mar '16 28 Apr '16 7812.89 31 66.4 14.98 7746.49
28 Apr '16 30 May '16 7746.49 32 66.05 15.33 7680.44
30 May '16 28 Jun '16 7680.44 29 67.6 13.78 7612.84
28 Jun '16 28 Jul '16 7612.84 30 67.25 14.13 7545.59
28 Jul '16 29 Aug '16 7545.59 32 66.44 14.94 7479.15
29 Aug '16 28 Sep '16 7479.15 30 67.5 13.88 7411.65
28 Sep '16 28 Oct '16 7411.65 30 67.63 13.75 7344.02
28 Oct '16 28 Nov '16 7344.02 31 67.3 14.08 7276.72
28 Nov '16 28 Dec '16 7276.72 30 67.88 13.5 7208.84
28 Dec '16 30 Jan '17 7208.84 33 66.66 14.72 7142.18
30 Jan '17 28 Feb '17 7142.18 29 68.57 12.81 7073.61
28 Feb '17 28 Mar '17 7073.61 28 69.13 12.25 7004.48
28 Mar '17 28 Apr '17 7004.48 31 67.95 13.43 6936.53
28 Apr '17 29 May '17 6936.53 31 68.08 13.3 6868.45
29 May '17 28 Jun '17 6868.45 30 68.63 12.75 6799.82
28 Jun '17 28 Jul '17 6799.82 30 68.76 12.62 6731.06
28 Jul '17 28 Aug '17 6731.06 31 68.47 12.91 6662.59
28 Aug '17 28 Sep '17 6662.59 31 68.6 12.78 6593.99
28 Sep '17 30 Oct '17 6593.99 32 68.33 13.05 6525.66
30 Oct '17 28 Nov '17 6525.66 29 69.67 11.71 6455.99
28 Nov '17 28 Dec '17 6455.99 30 69.4 11.98 6386.59
28 Dec '17 29 Jan '18 6386.59 32 68.74 12.64 6317.85
29 Jan '18 28 Feb '18 6317.85 30 69.66 11.72 6248.19
28 Feb '18 28 Mar '18 6248.19 28 70.56 10.82 6177.63
28 Mar '18 30 Apr '18 6177.63 33 68.77 12.61 6108.86
30 Apr '18 28 May '18 6108.86 28 70.8 10.58 6038.06
28 May '18 28 Jun '18 6038.06 31 69.8 11.58 5968.26
28 Jun '18 30 Jul '18 5968.26 32 69.57 11.81 5898.69
30 Jul '18 28 Aug '18 5898.69 29 70.8 10.58 5827.89
28 Aug '18 28 Sep '18 5827.89 31 70.2 11.18 5757.69
28 Sep '18 29 Oct '18 5757.69 31 70.34 11.04 5687.35
29 Oct '18 28 Nov '18 5687.35 30 70.83 10.55 5616.52
28 Nov '18 28 Dec '18 5616.52 30 70.96 10.42 5545.56
28 Dec '18 28 Jan '19 5545.56 31 70.75 10.63 5474.81
28 Jan '19 28 Feb '19 5474.81 31 70.88 10.5 5403.93
28 Feb '19 28 Mar '19 5403.93 28 72.02 9.36 5331.91
28 Mar '19 29 Apr '19 5331.91 32 70.83 10.55 5261.08
29 Apr '19 28 May '19 5261.08 29 71.94 9.44 5189.14
28 May '19 28 Jun '19 5189.14 31 71.43 9.95 5117.71
28 Jun '19 29 Jul '19 5117.71 31 71.57 9.81 5046.14
29 Jul '19 28 Aug '19 5046.14 30 72.02 9.36 4974.12
28 Aug '19 30 Sep '19 4974.12 33 71.23 10.15 4902.89
30 Sep '19 28 Oct '19 4902.89 28 72.89 8.49 4830.
28 Oct '19 28 Nov '19 4830. 31 72.12 9.26 4757.88
28 Nov '19 30 Dec '19 4757.88 32 71.96 9.42 4685.92
30 Dec '19 28 Jan '20 4685.92 29 72.97 8.41 4612.95
28 Jan '20 28 Feb '20 4612.95 31 72.53 8.85 4540.42
28 Feb '20 30 Mar '20 4540.42 31 72.67 8.71 4467.75
30 Mar '20 28 Apr '20 4467.75 29 73.37 8.01 4394.38
28 Apr '20 28 May '20 4394.38 30 73.22 8.16 4321.16
28 May '20 29 Jun '20 4321.16 32 72.83 8.55 4248.33
29 Jun '20 28 Jul '20 4248.33 29 73.76 7.62 4174.57
28 Jul '20 28 Aug '20 4174.57 31 73.37 8.01 4101.2
28 Aug '20 28 Sep '20 4101.2 31 73.52 7.86 4027.68
28 Sep '20 28 Oct '20 4027.68 30 73.91 7.47 3953.77
28 Oct '20 30 Nov '20 3953.77 33 73.31 8.07 3880.46
30 Nov '20 28 Dec '20 3880.46 28 74.66 6.72 3805.8
28 Dec '20 28 Jan '21 3805.8 31 74.08 7.3 3731.72
28 Jan '21 01 Mar '21 3731.72 32 73.99 7.39 3657.73
01 Mar '21 29 Mar '21 3657.73 28 75.04 6.34 3582.69
29 Mar '21 28 Apr '21 3582.69 30 74.73 6.65 3507.96
28 Apr '21 28 May '21 3507.96 30 74.87 6.51 3433.09
28 May '21 28 Jun '21 3433.09 31 74.8 6.58 3358.29
28 Jun '21 28 Jul '21 3358.29 30 75.15 6.23 3283.14
28 Jul '21 30 Aug '21 3283.14 33 74.68 6.7 3208.46
30 Aug '21 28 Sep '21 3208.46 29 75.62 5.76 3132.84
28 Sep '21 28 Oct '21 3132.84 30 75.57 5.81 3057.27
28 Oct '21 29 Nov '21 3057.27 32 75.33 6.05 2981.94
29 Nov '21 28 Dec '21 2981.94 29 76.03 5.35 2905.91
28 Dec '21 28 Jan '22 2905.91 31 75.81 5.57 2830.1
28 Jan '22 28 Feb '22 2830.1 31 75.95 5.43 2754.15
28 Feb '22 28 Mar '22 2754.15 28 76.61 4.77 2677.54
28 Mar '22 28 Apr '22 2677.54 31 76.25 5.13 2601.29
28 Apr '22 30 May '22 2601.29 32 76.23 5.15 2525.06
30 May '22 28 Jun '22 2525.06 29 76.85 4.53 2448.21
28 Jun '22 28 Jul '22 2448.21 30 76.84 4.54 2371.37
28 Jul '22 29 Aug '22 2371.37 32 76.69 4.69 2294.68
29 Aug '22 28 Sep '22 2294.68 30 77.12 4.26 2217.56
28 Sep '22 28 Oct '22 2217.56 30 77.26 4.12 2140.3
28 Oct '22 28 Nov '22 2140.3 31 77.28 4.1 2063.02
28 Nov '22 28 Dec '22 2063.02 30 77.55 3.83 1985.47
28 Dec '22 30 Jan '23 1985.47 33 77.33 4.05 1908.14
30 Jan '23 28 Feb '23 1908.14 29 77.96 3.42 1830.18
28 Feb '23 28 Mar '23 1830.18 28 78.21 3.17 1751.97
28 Mar '23 28 Apr '23 1751.97 31 78.02 3.36 1673.95
28 Apr '23 29 May '23 1673.95 31 78.17 3.21 1595.78
29 May '23 28 Jun '23 1595.78 30 78.42 2.96 1517.36
28 Jun '23 28 Jul '23 1517.36 30 78.56 2.82 1438.8
28 Jul '23 28 Aug '23 1438.8 31 78.62 2.76 1360.18
28 Aug '23 28 Sep '23 1360.18 31 78.77 2.61 1281.41
28 Sep '23 30 Oct '23 1281.41 32 78.84 2.54 1202.57
30 Oct '23 28 Nov '23 1202.57 29 79.22 2.16 1123.35
28 Nov '23 28 Dec '23 1123.35 30 79.3 2.08 1044.05
28 Dec '23 29 Jan '24 1044.05 32 79.31 2.07 964.74
29 Jan '24 28 Feb '24 964.74 30 79.59 1.79 885.15
28 Feb '24 28 Mar '24 885.15 29 79.79 1.59 805.36
28 Mar '24 29 Apr '24 805.36 32 79.79 1.59 725.57
29 Apr '24 28 May '24 725.57 29 80.08 1.3 645.49
28 May '24 28 Jun '24 645.49 31 80.14 1.24 565.35
28 Jun '24 29 Jul '24 565.35 31 80.3 1.08 485.05
29 Jul '24 28 Aug '24 485.05 30 80.48 0.9 404.57
28 Aug '24 30 Sep '24 404.57 33 80.55 0.83 324.02
30 Sep '24 28 Oct '24 324.02 28 80.82 0.56 243.2
28 Oct '24 28 Nov '24 243.2 31 80.91 0.47 162.29
28 Nov '24 30 Dec '24 162.29 32 81.06 0.32 81.23
30 Dec '24 28 Jan '25 81.23 29 81.23 0.15 0

This still does not match the figures in the DirectLoan table, but it may cast some light on how they are not calculating their figures.

It seems very doubtful that DirectLoan is using the simple daily interest formula since a daily interest rate of 0.00585% is required to match DirectLoan's interest figures, but a rate of 0.00619% is required to amortise the loan in 174 months. The figures really don't match up: You cannot amortise the loan in 174 months with the interest rate implied in DirectLoan's table.


Back to top Use Dark theme