I have been attempting this question a few times over the past few days but can't seem to make any headway on it. Any help would be greatly appreciated.

A loan of €L was to be repaid over a twenty-year period by level monthly instalments in arrears using an effective interest rate of 5% for the first five years, 6% for the next five years and 7% for the rest. The first instalment was paid exactly one month after the loan was made and €1,766.13 capital was repaid in the 122nd repayment. (a) Calculate the amount of each monthly repayment and hence L. (b) Find the total amount of interest that was paid in the last twelve instalments.

  • $\begingroup$ I would proceed as follows: assume a (hypothetical) loan amount such as $L=1000$, compute the amortization table for this loan in Excel, then scale L so that the computed capital repaid in the 122d installment is 1766.13. After all, the payments (and the capital and interest components thereof) are proportional to the initial loan amount. $\endgroup$
    – nbbo2
    Nov 9, 2016 at 19:46
  • $\begingroup$ There may not be general formulas for a variable interest loan AFAIK, but the Amortization Table for it should be straightforward enough to build in a spreadsheet or any available programming language. The general idea is the same as for a fixed interest mortgage. $\endgroup$
    – nbbo2
    Nov 9, 2016 at 19:56

1 Answer 1


We can find the answers by using the recurrence equation for a loan.


p[n] is the balance of the loan in month n
r[n] is the interest rate in month n
d is the regular monthly payment
s is the initial loan principal

using Mathematica

RSolve[{p[n + 1] == p[n] (1 + r[n + 1]) - d, p[0] == s}, p[n], n]


enter image description here

Defining the rates

rates = Join[
   ConstantArray[(1 + 0.05)^(1/12) - 1, 60],
   ConstantArray[(1 + 0.06)^(1/12) - 1, 60],
   ConstantArray[(1 + 0.07)^(1/12) - 1, 120]];
Array[(r[#] = rates[[#]]) &, 240];

so the following variables are now defined

r[1], r[2] etc. = 0.0040741237836483535
r[61], r[62] etc. = 0.004867550565343048
r[121], r[122] etc. = 0.005654145387405274

Setting p[0] = s.

The balance in month 240 is


-486.25993004513117 d + 3.3598013365663992 s

and should equal zero.

The capital repayment in month 122 is the repayment less monthly interest

d - (p[121] r[122])

d - 0.005654145387405274 (-162.14186160490192 d + 1.7176096436481687 s)

This is required to equal 1,766.13

Solving simultaneously

  -486.25993004513117 d + 3.3598013365663992 s == 0,
  d - 0.005654145387405274 (-162.14186160490192 d + 1.7176096436481687 s) == 1766.13},
 {s, d}]

{{s -> 499996.1740005939, d -> 3454.7115850762493}}

Calculating the interest for the last 12 months, using inputs to 2 decimal places.

s = 499996.17
d = 3454.71

Total[p[# - 1] r[#] & /@ Range[240 - 12, 240]]



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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