Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Personal Finance for India  Module 4 – The maths of money

Time value of money: PV, FV and annuities

Carry a sum forward or back in time, value equal payments made at the end or the start of each period, and derive the EMI and SIP formulas from one idea.

  • Intermediate
  • 15 minutes
  • Examples run with Python 3.14.8
  • By MySmartCoPilot
Free: 15 minutes

What you will learn

  • Compute present and future values of single sums
  • Calculate the future and present value of an ordinary annuity and an annuity due
  • Derive the EMI and SIP formulas from the same idea
  • State the monthly-rate convention behind any projection

Before you start

What you’ll learn · Before you start

What you will learn

  • Compute present and future values of single sums
  • Calculate the future and present value of an ordinary annuity and an annuity due
  • Derive the EMI and SIP formulas from the same idea
  • State the monthly-rate convention behind any projection

Before you start

On this page

₹5,00,000 needed in five years is worth ₹3,56,493 today, if money can earn 7 % a year in between. And a ₹5,000 monthly systematic investment plan (SIP): The same amount invested at regular intervals, usually every month. Its value at the end is the future value of an annuity due, because each instalment goes in at the start of its month. projected at an assumed 12 % for 20 years ends at ₹45,99,287 under one monthly-rate convention and at ₹49,95,740 under the other, from the same three inputs.

Both facts come from one idea: a rupee is worth more the sooner you have it, because it can earn in the meantime. This lesson carries single sums forward and back, values a series of equal payments, derives the equated monthly instalment (EMI): The same amount paid every month to repay a loan, partly interest and partly repayment of the amount borrowed. It is the payment whose instalments, discounted at the loan's monthly rate, equal the loan. of a loan and the corpus of a SIP from the same annuity, and finds the ₹3,96,453 between the two conventions. It is education only: the loan and the 12 % are examples for the arithmetic, not offers or forecasts.

A rupee today and a rupee later differ by the interest between them

₹1,00,000 today, at 7 % a year, becomes ₹1,07,000 in a year and ₹1,40,255.17 in five: that is its future value: What a sum is worth at a later date once it has earned interest: present value × (1 + i)^n. ₹1,00,000 at 7 % a year is worth ₹1,40,255 in five years.. Run the other way, a sum due later is worth less today, because a smaller sum put aside now would grow into it. That smaller sum is its present value: What a sum due later is worth today at a chosen rate: future value ÷ (1 + i)^n. ₹5,00,000 due in five years is worth ₹3,56,493 today at 7 % a year., and working it out is called discounting: Bringing a later sum back to today by dividing by one plus the rate once for each period: the reverse of compounding.. Step forward through five years, then back from a sum due in year 5:

Interactive · stage by stage Carrying money forward, and bringing it back Step forward through five years of 7 % growth, then back from a sum due in year 5 to what it is worth today.
Carrying money forward, and bringing it back, step 7 of 7. Showing Today (₹3,56,493 today), Year 1 (₹3,81,447.61), Year 2 (₹4,08,148.94), Year 3 (₹4,36,719.36), Year 4 (₹4,67,289.72), Year 5 (₹5,00,000 needed). In focus: Today.÷ 1.07 five timesToday₹3,56,493 todayYear 1₹3,81,447.61Year 2₹4,08,148.94Year 3₹4,36,719.36Year 4₹4,67,289.72Year 5₹5,00,000 needed

The drawing shows the whole scene; its 7 steps are listed below.

Every step as text
  1. A sum today. Start with ₹1,00,000 today and a rate of 7 % a year, the rate the money could earn while it waits.
  2. One year forward. A year at 7 % multiplies it by 1.07, so it is worth ₹1,07,000 at the end of year 1. That is its future value one year on.
  3. Every year multiplies again. Each year multiplies the whole amount by 1.07 again, interest on interest, to ₹1,14,490.00, ₹1,22,504.30 and ₹1,31,079.60.
  4. The future value. After five years ₹1,00,000 is worth ₹1,40,255.17, which is ₹1,00,000 × 1.07^5. Carrying a sum forward is compounding.
  5. A sum due later. Now turn it round. ₹5,00,000 is needed in year 5. What sum today grows into it at 7 % a year? Start from the end and divide.
  6. Back one year at a time. Each year back divides by 1.07. ₹5,00,000 is worth ₹4,67,289.72 a year earlier, then ₹4,36,719.36, ₹4,08,148.94 and ₹3,81,447.61 at the end of year 1.
  7. The present value. One more division gives ₹3,56,493.09 today, which is ₹5,00,000 ÷ 1.07^5. Put that sum aside at 7 % and it grows into ₹5,00,000 in five years. Bringing a sum back is discounting.

Forward, ₹1,00,000 became ₹1,40,255.17; back, ₹5,00,000 due in year 5 became ₹3,56,493 today. Both moves are one formula, read in two directions:

FV=PV×(1+i)nPV=FV(1+i)nFV = PV \times (1 + i)^{n} \qquad PV = \frac{FV}{(1 + i)^{n}}

In words: multiply by one plus the rate once for each period to go forward, divide to come back. The rate i and the count n must use the same period: a monthly rate with months, a yearly rate with years. The program carries ₹1,00,000 forward, brings ₹5,00,000 back and checks the result by carrying it forward again:

Future and present values of single sums Python · single_sums.py
"""Future and present values of a single sum.

Future value: FV = PV x (1 + i)^n, a sum today carried forward n periods at rate i.
Present value: PV = FV / (1 + i)^n, a sum due in n periods brought back to today, which is called discounting.
Part 1 carries Rs 1,00,000 forward at 7 % a year; Part 2 asks what Rs 5,00,000 needed in 5 years is worth today;
Part 3 prices Rs 1,00,000 received later at three rates. Every rate is an example. Decimal module, rounded half up.
"""

from decimal import ROUND_HALF_UP, Decimal


def inr(amount, places="1"):
    """Rupees with Indian digit grouping: 140255.17 -> "₹1,40,255"; places="0.01" keeps paise."""
    value = Decimal(amount).quantize(Decimal(places), rounding=ROUND_HALF_UP)
    whole, _, paise = str(abs(value)).partition(".")
    head, tail = whole[:-3], whole[-3:]
    groups = []
    while len(head) > 2:
        groups.insert(0, head[-2:])
        head = head[:-2]
    if head:
        groups.insert(0, head)
    text = ",".join(groups + [tail]) if groups else tail
    return "₹" + text + ("." + paise if paise else "")


def years(n):
    return f"{n} year" if n == 1 else f"{n} years"


def fv(pv, i, n):
    return Decimal(pv) * (1 + Decimal(i)) ** n


def pv(fv_, i, n):
    return Decimal(fv_) / (1 + Decimal(i)) ** n


print("Part 1: ₹1,00,000 today, carried forward at 7 % a year")
for n in range(0, 6):
    print(f"  after {years(n)}: {inr(fv(100000, '0.07', n), '0.01')}")

print()
need = 500000
today = pv(need, "0.07", 5)
print(f"Part 2: {inr(need)} needed in 5 years, at 7 % a year, is worth {inr(today)} today.")
print(f"  Check: {inr(today, '0.01')} carried forward 5 years is {inr(fv(today, '0.07', 5), '0.01')}.")

print()
print("Part 3: what ₹1,00,000 received later is worth today")
rates = ("0.04", "0.07", "0.10")
print(f"{'Received in':<13}" + "".join(f"{'at ' + str(int(Decimal(i) * 100)) + ' %':>11}" for i in rates))
for n in (1, 5, 10, 20):
    print(f"{years(n):<13}" + "".join(f"{inr(pv(100000, i, n)):>11}" for i in rates))

Output

Part 1: ₹1,00,000 today, carried forward at 7 % a year
  after 0 years: ₹1,00,000.00
  after 1 year: ₹1,07,000.00
  after 2 years: ₹1,14,490.00
  after 3 years: ₹1,22,504.30
  after 4 years: ₹1,31,079.60
  after 5 years: ₹1,40,255.17

Part 2: ₹5,00,000 needed in 5 years, at 7 % a year, is worth ₹3,56,493 today.
  Check: ₹3,56,493.09 carried forward 5 years is ₹5,00,000.00.

Part 3: what ₹1,00,000 received later is worth today
Received in       at 4 %     at 7 %    at 10 %
1 year           ₹96,154    ₹93,458    ₹90,909
5 years          ₹82,193    ₹71,299    ₹62,092
10 years         ₹67,556    ₹50,835    ₹38,554
20 years         ₹45,639    ₹25,842    ₹14,864

Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 single_sums.py

The last table is the one to remember: ₹1,00,000 received in 20 years is worth ₹45,639 today at 4 %, ₹25,842 at 7 % and ₹14,864 at 10 %. The further away a sum is, and the higher the rate, the less it is worth now, which is why a later payment can only be compared with an earlier one once both are carried to the same date.

Savings Goal Calculator Enter what a goal costs, when it falls due and what you have saved, and see the monthly saving that reaches it.

Checkpoint

Check: Present and future values of one sum

  1. Question 1 of 2 ₹2,00,000 is needed in 3 years. If money can earn 8 % a year until then, what is it worth today, in rupees?

    Type a number.

    A hint

    Divide by 1.08 once for each year, that is by 1.08 cubed.

    Show the answer: Question 1 of 2

    Answer: 158766 rupees (anything from 158765 to 158767 counts)

    1.08^3 = 1.259712, and ₹2,00,000 ÷ 1.259712 = ₹1,58,766. Put that sum aside at 8 % and it grows into ₹2,00,000 in three years.

  2. Question 2 of 2 Offer A pays ₹1,00,000 today; offer B pays ₹1,30,000 in five years. If money can earn 7 % a year, which is worth more today?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: A, because B's ₹1,30,000 is worth ₹92,689 today at 7 %

    Bring B to today: ₹1,30,000 ÷ 1.40255 = ₹92,689. At 7 % a year, ₹1,00,000 now would grow to ₹1,40,255 in five years, more than B pays.

A series of equal payments is a sum of single sums

An annuity: A series of equal payments at equal intervals, such as loan instalments or SIP instalments. Its value on any date is the sum of each payment's value on that date. is a series of equal payments at equal intervals: an EMI, a SIP instalment, a yearly premium. Its value on any date is the sum of each payment’s single-sum value on that date. When each payment comes at the end of its period, as a loan’s instalments do, it is an ordinary annuity: An annuity whose payments come at the end of each period, as a loan's instalments do, so the last payment earns nothing before the series ends.; when each comes at the start, an annuity due: An annuity whose payments come at the start of each period, as SIP instalments usually do. Each payment earns one period more, so it is worth (1 + i) times the ordinary annuity.. Step through ₹10,000 a year for five years at 7 %:

Interactive · step by step Five payments of ₹10,000, each carried to year 5 Step through each payment's growth to the end of year 5, add them up, then move every payment one year earlier.
Five payments of ₹10,000, each carried to year 5, step 6 of 6. Showing Payment 1 (start of year 1), Payment 2 (start of year 2), Payment 3 (start of year 3), Payment 4 (start of year 4), Payment 5 (start of year 5), Worth in year 5 (₹14,025.52), Worth in year 5 (₹13,107.96), Worth in year 5 (₹12,250.43), Worth in year 5 (₹11,449.00), Worth in year 5 (₹10,700.00), Total in year 5 (₹61,532.91). In focus: Total in year 5, Worth in year 5, Worth in year 5, Worth in year 5, Worth in year 5, Worth in year 5.Payment 1start of year 1Payment 2start of year 2Payment 3start of year 3Payment 4start of year 4Payment 5start of year 5Worth in year 5₹14,025.52Worth in year 5₹13,107.96Worth in year 5₹12,250.43Worth in year 5₹11,449.00Worth in year 5₹10,700.00Total in year 5₹61,532.91ordinary × 1.07

The drawing shows the whole scene; its 6 steps are listed below.

Every step as text
  1. Five equal payments. ₹10,000 is paid at the end of each of five years and earns 7 % a year from the day it is paid. Equal payments at equal intervals make an annuity, and paid at the end of each period, an ordinary annuity.
  2. The first payment. Paid at the end of year 1, the first payment has four years to grow before the end of year 5, so it is worth ₹10,000 × 1.07^4 = ₹13,107.96 then.
  3. The middle payments. Each later payment has one year less to grow, so they are worth ₹12,250.43, ₹11,449.00 and ₹10,700.00 at the end of year 5.
  4. The last payment. The fifth payment arrives at the very end, so it has no time to earn and is worth its ₹10,000.
  5. Add the single sums. The five values add up to ₹57,507.39, the future value of the ordinary annuity. The formula ₹10,000 × (1.07^5 − 1) ÷ 0.07 gives the same, without the five steps.
  6. Pay at the start instead. Move every payment to the start of its year, as SIP instalments usually are. Each now has one year more to grow, so each value, and the total, is 1.07 times larger, ₹61,532.91. That is an annuity due.

Adding the five single sums gave ₹57,507.39, and moving every payment a year earlier multiplied the total by 1.07. The additions collapse into closed formulas, for payment P, rate i a period and n periods:

FVordinary=P×(1+i)n−1iPVordinary=P×1−(1+i)−niFV_{\text{ordinary}} = P \times \frac{(1 + i)^{n} - 1}{i} \qquad PV_{\text{ordinary}} = P \times \frac{1 - (1 + i)^{-n}}{i}

In words: the future value is the payment times the growth of all the periods minus one, divided by the rate; the present value is the payment times one minus the discount over all the periods, divided by the rate. For an annuity due, multiply either by (1 + i). The program adds up the single sums one by one and checks every formula against them:

Five payments added up, then by the formulas Python · annuities.py
"""A series of equal payments is a sum of single sums: ordinary annuities and annuities due.

Rs 10,000 a year for 5 years at 7 % a year. In an ordinary annuity each payment comes at the END of its year, so the
last one earns nothing; in an annuity due each comes at the START, one year earlier, so every payment earns one year
more. The program adds up the single sums one by one, then checks the closed formulas:
  FV (ordinary) = P x ((1 + i)^n - 1) / i          FV (due) = FV (ordinary) x (1 + i)
  PV (ordinary) = P x (1 - (1 + i)^-n) / i          PV (due) = PV (ordinary) x (1 + i)
Every rate is an example. Decimal module, rounded half up to the paisa.
"""

from decimal import ROUND_HALF_UP, Decimal


def inr(amount):
    """Rupees and paise with Indian digit grouping: 57507.3901 -> "₹57,507.39"."""
    whole, _, paise = str(Decimal(amount).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)).partition(".")
    head, tail = whole[:-3], whole[-3:]
    groups = []
    while len(head) > 2:
        groups.insert(0, head[-2:])
        head = head[:-2]
    if head:
        groups.insert(0, head)
    return "₹" + (",".join(groups + [tail]) if groups else tail) + "." + paise


P, I, N = Decimal(10000), Decimal("0.07"), 5

print("Each payment carried forward to the end of year 5")
print(f"{'Payment':<9}{'Ordinary: grows':>17}{'Value':>13}{'Due: grows':>13}{'Value':>13}")
fv_ord = fv_due = Decimal(0)
for k in range(1, N + 1):
    grow_ord = N - k  # paid at the end of year k, so it earns for the years after it
    grow_due = N - k + 1  # paid at the start of year k: one year more
    v_ord = P * (1 + I) ** grow_ord
    v_due = P * (1 + I) ** grow_due
    fv_ord += v_ord
    fv_due += v_due
    print(f"{k:<9}{str(grow_ord) + ' y':>17}{inr(v_ord):>13}{str(grow_due) + ' y':>13}{inr(v_due):>13}")
print(f"{'Total':<26}{inr(fv_ord):>13}{'':>13}{inr(fv_due):>13}")

formula_ord = P * ((1 + I) ** N - 1) / I
pv_ord = P * (1 - (1 + I) ** -N) / I
pv_sum = sum(P / (1 + I) ** k for k in range(1, N + 1))
agree = abs(formula_ord - fv_ord) < Decimal("0.000001") and abs(formula_ord * (1 + I) - fv_due) < Decimal("0.000001")
print()
print(f"Future value by the formulas: ordinary {inr(formula_ord)}, due {inr(formula_ord * (1 + I))} (ordinary × 1.07).")
print(f"The formulas agree with the sums: {'yes' if agree else 'no'}.")
print(f"Present value: ordinary {inr(pv_ord)} (added up: {inr(pv_sum)}), due {inr(pv_ord * (1 + I))}.")

Output

Each payment carried forward to the end of year 5
Payment    Ordinary: grows        Value   Due: grows        Value
1                      4 y   ₹13,107.96          5 y   ₹14,025.52
2                      3 y   ₹12,250.43          4 y   ₹13,107.96
3                      2 y   ₹11,449.00          3 y   ₹12,250.43
4                      1 y   ₹10,700.00          2 y   ₹11,449.00
5                      0 y   ₹10,000.00          1 y   ₹10,700.00
Total                        ₹57,507.39                ₹61,532.91

Future value by the formulas: ordinary ₹57,507.39, due ₹61,532.91 (ordinary × 1.07).
The formulas agree with the sums: yes.
Present value: ordinary ₹41,001.97 (added up: ₹41,001.97), due ₹43,872.11.

Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 annuities.py

The formulas agree with the sums to the paisa: ₹57,507.39 and ₹61,532.91 in year 5, ₹41,001.97 and ₹43,872.11 today. Spreadsheets hold the same two cases in one argument, type: 0 for payments at the end of each period, 1 for the start, as Microsoft’s documentation of FV and PV describes.

Valuing start-of-period payments as end-of-period ones

Wrong: using the ordinary formula for payments made at the start of each period, such as SIP instalments. Right: multiply by (1 + i), or set type to 1. For the five yearly payments above the difference is ₹4,025.52 on ₹50,000 paid in, because every payment earns one period more.

Checkpoint

Check: Ordinary annuities and annuities due

  1. Question 1 of 2 Five yearly payments of ₹10,000, made at the end of each year at 7 %, are worth ₹57,507.39 at the end of year 5. What are they worth if each is made at the start of its year?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: ₹61,532.91, which is ₹57,507.39 × 1.07

    An annuity due is worth (1 + i) times the ordinary annuity, on any date. Here ₹57,507.39 × 1.07 = ₹61,532.91.

  2. Question 2 of 2 ₹20,000 is paid at the end of each year for 3 years and earns 10 % a year. What is the total worth at the end of year 3, in rupees?

    Type a number.

    A hint

    The first payment grows two years, the second one year, the last not at all.

    Show the answer: Question 2 of 2

    Answer: 66200 rupees

    ₹24,200 + ₹22,000 + ₹20,000 = ₹66,200, the same as ₹20,000 × (1.1^3 − 1) ÷ 0.1 = ₹20,000 × 3.31.

The EMI and the SIP are the same annuity, run two ways

A loan is an ordinary annuity seen from the lender’s side. The lender hands over the principal today, and the EMIs, paid at the end of each month, must be worth exactly that principal today. Set the loan equal to the present value of its instalments and solve for the instalment:

P=EMI×1−(1+i)−ni⇒EMI=P×i×(1+i)n(1+i)n−1P = EMI \times \frac{1 - (1 + i)^{-n}}{i} \quad\Rightarrow\quad EMI = \frac{P \times i \times (1 + i)^{n}}{(1 + i)^{n} - 1}

In words: the EMI is the principal times the monthly rate times the growth over the term, divided by that growth minus one. A loan of ₹10,00,000 at 9.5 % a year for 60 months, with i = 9.5 % ÷ 12, costs ₹21,001.86 a month. Set the same loan in the model below, then shorten the term or change the rate and watch the instalment and the interest move:

Interactive · change it and see A loan of ₹10,00,000 repaid in equal monthly instalments Set the amount borrowed, the yearly rate and the term. Each instalment pays the month’s interest first; the rest repays the loan.
What is still owed, month by month: amount (INR) against months.010203040506002.5 L5 L7.5 L10 Lmonthsamount (INR)still owedinterest paid

Borrowing ₹10,00,000 at 9.5 % for 60 months costs ₹21,002 a month and ₹2,60,112 in interest. Early instalments are mostly interest: 38 % of the first one.

Monthly instalment ₹21,002
Total interest ₹2,60,112
Total paid ₹12,60,112
Interest share of the first instalment 38 %
The numbers as a table
What is still owed at the end of each year
MonthStill owedInterest paid so far
12₹8,35,957₹87,979
24₹6,55,633₹1,59,678
36₹4,57,412₹2,13,479
48₹2,39,519₹2,47,608
60₹0₹2,60,112

The model rounds the instalment to ₹21,002 and shows that 38 % of the first one is interest; by the last instalment almost all of it repays the loan.

A SIP runs the same annuity forward. Instalments are usually invested at the start of each month, so the corpus is the future value of an annuity due, FV = S × ((1 + i)^n − 1) ÷ i × (1 + i). The program works out both, and repays the loan month by month to show that the EMI clears it exactly:

An EMI derived and checked, and a SIP under two monthly rates Python · emi_sip.py
"""The EMI and the SIP formulas, both from the annuity of equal payments.

EMI: a loan is the present value of its instalments, paid at the end of each month, so
    P = EMI x (1 - (1 + i)^-n) / i,  which gives  EMI = P x i x (1 + i)^n / ((1 + i)^n - 1).
SIP: the corpus is the future value of instalments paid at the start of each month (an annuity due), so
    FV = S x ((1 + i)^n - 1) / i x (1 + i).
The monthly rate i depends on a convention: r / 12, or (1 + r)^(1/12) - 1 when r is an effective yearly rate.
Part 3 solves the same sums with the equation spreadsheet functions use, with their sign convention (money paid
out is negative) and their type argument (0: end of period, 1: start):
    pv x (1 + rate)^nper + pmt x (1 + rate x type) x ((1 + rate)^nper - 1) / rate + fv = 0.
The loan and the 12 % are examples for the arithmetic, not offers or forecasts. Decimal module, half up.
"""

from decimal import ROUND_HALF_UP, Decimal, getcontext

getcontext().prec = 40


def inr(amount, places="1"):
    """Rupees with Indian digit grouping: 4599287.4 -> "₹45,99,287"; places="0.01" keeps paise."""
    value = Decimal(amount).quantize(Decimal(places), rounding=ROUND_HALF_UP)
    whole, _, paise = str(abs(value)).partition(".")
    head, tail = whole[:-3], whole[-3:]
    groups = []
    while len(head) > 2:
        groups.insert(0, head[-2:])
        head = head[:-2]
    if head:
        groups.insert(0, head)
    text = ",".join(groups + [tail]) if groups else tail
    return ("−" if value < 0 else "") + "₹" + text + ("." + paise if paise else "")


def pct(fraction, places="0.01"):
    return f"{(fraction * 100).quantize(Decimal(places), rounding=ROUND_HALF_UP)} %"


# Part 1: the EMI of a loan of Rs 10,00,000 at 9.5 % a year for 60 months, interest monthly at r / 12.
P, R, N = Decimal(1000000), Decimal("0.095"), 60
i = R / 12
emi = P * i * (1 + i) ** N / ((1 + i) ** N - 1)
emi_paise = emi.quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
print(f"Part 1: a loan of {inr(P)} at 9.5 % a year for {N} months")
print(f"  EMI = {inr(emi, '0.01')} a month; paid {N} times that is {inr(emi_paise * N, '0.01')}, of which {inr(emi_paise * N - P, '0.01')} is interest.")
balance = P
for month in range(1, N + 1):
    interest = balance * i  # the month's interest on what is still owed
    balance = balance + interest - emi
    if month in (1, 12, 59, 60):
        print(f"  after instalment {month:>2}: interest that month {inr(interest, '0.01')}, still owed {inr(balance, '0.01')}")
check = sum(emi / (1 + i) ** k for k in range(1, N + 1))
print(f"  The 60 instalments, each brought back to today at i = 9.5 % / 12, add up to {inr(check, '0.01')}: the loan.")

# Part 2: Rs 5,000 at the start of every month for 20 years, at an assumed 12 % a year, under two conventions.
S, R2, M = Decimal(5000), Decimal("0.12"), 240
print()
print(f"Part 2: {inr(S)} at the start of every month for 20 years ({inr(S * M)} paid in), assumed 12 % a year")
print(f"  {'Monthly rate':<28}{'Per month':>10}{'A year':>9}{'Start of month':>16}{'End of month':>14}")
results = {}
for name, monthly in (("effective, 1.12^(1/12) − 1", (1 + R2) ** (Decimal(1) / 12) - 1), ("r / 12", R2 / 12)):
    due = S * ((1 + monthly) ** M - 1) / monthly * (1 + monthly)  # annuity due: paid at the start of each month
    ordinary = due / (1 + monthly)  # the same instalments paid at the end of each month
    results[name] = due
    print(f"  {name:<28}{pct(monthly, '0.0001'):>10}{pct((1 + monthly) ** 12 - 1):>9}{inr(due):>16}{inr(ordinary):>14}")
first, second = results.values()
print(f"  The same 12 % gives two corpora {inr(second - first)} apart, because r / 12 compounds to 12.68 % a year.")

# Part 3: the same answers from the spreadsheet functions' equation.


def sheet_fv(rate, nper, pmt, pv=0, type_=0):
    rate, pmt, pv = Decimal(rate), Decimal(pmt), Decimal(pv)
    return -(pv * (1 + rate) ** nper + pmt * (1 + rate * type_) * ((1 + rate) ** nper - 1) / rate)


def sheet_pmt(rate, nper, pv, fv=0, type_=0):
    rate, pv, fv = Decimal(rate), Decimal(pv), Decimal(fv)
    return -(pv * (1 + rate) ** nper + fv) * rate / ((1 + rate * type_) * ((1 + rate) ** nper - 1))


def sheet_pv(rate, nper, pmt, fv=0, type_=0):
    rate, pmt, fv = Decimal(rate), Decimal(pmt), Decimal(fv)
    return -(fv + pmt * (1 + rate * type_) * ((1 + rate) ** nper - 1) / rate) / (1 + rate) ** nper


effective = (1 + R2) ** (Decimal(1) / 12) - 1
print()
print("Part 3: the same sums as spreadsheet functions would solve them (money paid out is negative)")
rows = [
    ("PMT(9.5%/12, 60, 1000000)", sheet_pmt(R / 12, 60, 1000000)),
    ("FV(1%, 240, -5000, 0, 1)", sheet_fv("0.01", 240, -5000, 0, 1)),
    ("FV(1.12^(1/12)-1, 240, -5000, 0, 1)", sheet_fv(effective, 240, -5000, 0, 1)),
    ("PV(7%, 5, 0, 500000)", sheet_pv("0.07", 5, 0, 500000)),
]
for formula, value in rows:
    print(f"  ={formula:<37} {inr(value, '0.01'):>15}")

Output

Part 1: a loan of ₹10,00,000 at 9.5 % a year for 60 months
  EMI = ₹21,001.86 a month; paid 60 times that is ₹12,60,111.60, of which ₹2,60,111.60 is interest.
  after instalment  1: interest that month ₹7,916.67, still owed ₹9,86,914.81
  after instalment 12: interest that month ₹6,730.97, still owed ₹8,35,956.97
  after instalment 59: interest that month ₹328.62, still owed ₹20,836.90
  after instalment 60: interest that month ₹164.96, still owed ₹0.00
  The 60 instalments, each brought back to today at i = 9.5 % / 12, add up to ₹10,00,000.00: the loan.

Part 2: ₹5,000 at the start of every month for 20 years (₹12,00,000 paid in), assumed 12 % a year
  Monthly rate                 Per month   A year  Start of month  End of month
  effective, 1.12^(1/12) − 1    0.9489 %  12.00 %      ₹45,99,287    ₹45,56,055
  r / 12                        1.0000 %  12.68 %      ₹49,95,740    ₹49,46,277
  The same 12 % gives two corpora ₹3,96,453 apart, because r / 12 compounds to 12.68 % a year.

Part 3: the same sums as spreadsheet functions would solve them (money paid out is negative)
  =PMT(9.5%/12, 60, 1000000)                 −₹21,001.86
  =FV(1%, 240, -5000, 0, 1)                ₹49,95,739.60
  =FV(1.12^(1/12)-1, 240, -5000, 0, 1)     ₹45,99,286.78
  =PV(7%, 5, 0, 500000)                    −₹3,56,493.09

Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 emi_sip.py

The first instalment is ₹7,916.67 of interest and ₹13,085.19 of repayment; the 60th is ₹164.96 of interest and leaves nothing owed. In all the loan costs ₹2,60,111.60 of interest. The second part of the output shows the SIP twice, and that is the next section.

Key idea

A loan and a SIP are the same annuity run two ways: the EMI is the payment whose present value is the loan, and a SIP’s corpus is the future value of payments made at the start of each month.

EMI Calculator Enter a loan amount, a rate and a term, and see the instalment and the full repayment schedule.

Checkpoint

Check: The EMI and the SIP from one annuity

  1. Question 1 of 2 A loan of ₹10,00,000 at 9.5 % a year is repaid monthly, with interest at 9.5 % ÷ 12 a month. How much of the first instalment is interest, in rupees to the paisa?

    Type a number.

    Show the answer: Question 1 of 2

    Answer: 7916.67 rupees (anything from 7916.66 to 7916.68 counts)

    ₹10,00,000 × 0.095 ÷ 12 = ₹7,916.67. Of the ₹21,001.86 instalment, the other ₹13,085.19 repays the loan, so the next month's interest is a little smaller.

  2. Question 2 of 2 A SIP invests the same amount at the start of every month. Which value gives its corpus at the end?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: The future value of an annuity due

    Corpus = S × ((1 + i)^n − 1) ÷ i × (1 + i): the ordinary annuity's future value, times one more period of growth for every instalment.

One yearly rate, two monthly rates: say which you used

Every monthly projection needs a monthly rate, and “12 % a year” does not say which one. There are two conventions. Spreadsheet documentation works its examples with the yearly rate divided by 12: Microsoft’s pages on PMT and FV say to use 12%/12 for monthly payments at 12 % a year. MySmartCoPilot’s SIP calculator treats the expected return as an effective annual rate: What a quoted rate earns in one year once compounding is counted: (1 + rate ÷ m)^m − 1 for m additions a year. 7 % compounded quarterly is 7.1859 % a year. More in “Simple and compound interest, done right”, the way fund returns are reported, and uses (1 + 0.12)^(1/12) − 1 = 0.9489 % a month, so that twelve months multiply to exactly 1.12. One per cent a month compounds to 12.68 % a year, which is the whole gap:

Monthly rate It compounds to ₹5,000 at the start of each month for 20 years
12 % ÷ 12 = 1 % 12.68 % a year ₹49,95,740
1.12^(1/12) − 1 = 0.9489 % 12.00 % a year ₹45,99,287

The two corpora are ₹3,96,453 apart on ₹12,00,000 paid in. The model below adds ₹5,000 at the end of each month. With “Interest added” monthly it uses 12 % ÷ 12; switch it to yearly and the same 12 % becomes an effective rate, 0.9489 % a month:

Interactive · change it and see ₹5,000 a month for 20 years at 12 %, under two monthly rates Set a starting amount, a yearly rate, how often interest is added and an amount added at the end of every month.
Balance and money paid in, year by year: amount (INR) against years.05101520020 L40 L60 Lyearsamount (INR)balancepaid in

₹0 plus ₹5,000 a month at 12 % a year grows to ₹49,46,277 in 20 years; ₹37,46,277 of it is interest.

Balance after 20 years ₹49,46,277
Paid in ₹12,00,000
Interest earned ₹37,46,277
Effective yearly rate 12.68 %
The numbers as a table
Balance at the end of each year
YearPaid inBalance
1₹60,000₹63,413
2₹1,20,000₹1,34,867
3₹1,80,000₹2,15,384
4₹2,40,000₹3,06,113
5₹3,00,000₹4,08,348
6₹3,60,000₹5,23,550
7₹4,20,000₹6,53,361
8₹4,80,000₹7,99,636
9₹5,40,000₹9,64,463
10₹6,00,000₹11,50,193
11₹6,60,000₹13,59,479
12₹7,20,000₹15,95,308
13₹7,80,000₹18,61,045
14₹8,40,000₹21,60,485
15₹9,00,000₹24,97,901
16₹9,60,000₹28,78,110
17₹10,20,000₹33,06,539
18₹10,80,000₹37,89,303
19₹11,40,000₹43,33,294
20₹12,00,000₹49,46,277

The model shows ₹49,46,277 and ₹45,56,055, the end-of-month values of the program’s two rows: paying at the start of each month adds one more month of growth, 1 % or 0.9489 %, to every instalment. Both conventions are arithmetic done right. What makes a projection wrong is not saying which one it used.

Write the convention beside the number

A projection should say three things besides the rate: whether the rate is divided by 12 or treated as effective, whether payments come at the start or the end of each period, and that the rate is an assumption.

Spreadsheets solve the same equation. Money paid out is entered as a negative number, as Microsoft’s pages on FV and PV say, and the type argument of FV, PV and PMT picks the end (0) or the start (1) of each period. The third part of the program solves the equation the same way, so a spreadsheet given these formulas should show these values:

Formula Value from the program
=PMT(9.5%/12, 60, 1000000) −₹21,001.86
=FV(1%, 240, -5000, 0, 1) ₹49,95,739.60
=FV(1.12^(1/12)-1, 240, -5000, 0, 1) ₹45,99,286.78
=PV(7%, 5, 0, 500000) −₹3,56,493.09

For payments on uneven dates, the spreadsheet’s XNPV does the present-value sum one dated payment at a time, on a 365-day year; the next lesson finds the rate at which that sum is zero.

SIP Calculator (India) Project a SIP, a lump sum or a goal, with the rate taken as effective or divided by 12, and compare the two.

Checkpoint

Check: The monthly-rate convention

  1. Question 1 of 2 What yearly rate does 1 % a month compound to, in per cent to two decimals?

    Type a number.

    Show the answer: Question 1 of 2

    Answer: 12.68 % a year (anything from 12.67 to 12.69 counts)

    1.01^12 = 1.126825, so 12.68 % a year. That is why dividing 12 % by 12 projects more than a rate that is 12 % a year exactly.

  2. Question 2 of 2 A projection of ₹5,000 a month for 20 years at 12 % a year shows ₹49,95,740. Which convention did it use?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: 12 % ÷ 12 = 1 % a month, with each instalment at the start of the month

    Of the four combinations, only 1 % a month with start-of-month payments gives ₹49,95,740. The effective rate gives ₹45,99,287 at the start and ₹45,56,055 at the end of each month.

Practise: single sums, annuities and conventions

This session mixes single sums, annuities, EMIs, SIPs and conventions, beginning with the concept you have answered least well. Amounts are in whole rupees unless paise are asked for:

Practice that adapts to you

Practise this lesson

12 questions about 4 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.

  1. Question 1 of 12 What is the future value of a sum?

    Choose one answer.

    Show the answer: Question 1 of 12

    Answer: What it is worth at a later date once it has earned interest

    ₹1,00,000 at 7 % a year has a future value of ₹1,40,255.17 in five years.

  2. Question 2 of 12 ₹50,000 earns 6 % a year, compounded yearly. What is its future value in 4 years, in rupees?

    Type a number.

    Show the answer: Question 2 of 12

    Answer: 63124 rupees (anything from 63123 to 63125 counts)

    1.06^4 = 1.262477, so ₹50,000 becomes ₹63,124.

  3. Question 3 of 12 Why is ₹1,00,000 received in 20 years worth ₹45,639 today at 4 % but only ₹14,864 at 10 %?

    Choose one answer.

    Show the answer: Question 3 of 12

    Answer: At a higher rate a smaller sum today grows into the same ₹1,00,000, so the later sum is worth less now

    PV = ₹1,00,000 ÷ (1 + i)^20. The higher the rate and the longer the wait, the smaller the sum today that grows into it.

  4. Question 4 of 12 What separates an annuity due from an ordinary annuity?

    Choose one answer.

    Show the answer: Question 4 of 12

    Answer: Its payments come at the start of each period instead of the end

    An EMI paid at the end of each month is an ordinary annuity; a SIP invested at the start of each month is an annuity due.

  5. Question 5 of 12 What are five payments of ₹10,000, at the end of each year, worth today at 7 % a year, in rupees?

    Type a number.

    A hint

    Add ₹10,000 ÷ 1.07, ₹10,000 ÷ 1.07², and so on to ₹10,000 ÷ 1.07⁵.

    Show the answer: Question 5 of 12

    Answer: 41002 rupees (anything from 41001 to 41003 counts)

    ₹10,000 × (1 − 1.07^−5) ÷ 0.07 = ₹41,001.97, the same as adding the five single sums brought back to today.

  6. Question 6 of 12 In a spreadsheet's FV or PV function, what does the argument type = 1 mean?

    Choose one answer.

    Show the answer: Question 6 of 12

    Answer: Payments are due at the beginning of each period

    Microsoft's documentation of FV and PV gives type 0 for payments at the end of the period and 1 for the beginning, the two cases of this section.

  7. Question 7 of 12 What makes an EMI the right instalment for a loan?

    Choose one answer.

    Show the answer: Question 7 of 12

    Answer: The instalments, brought back to today at the loan's monthly rate, are worth exactly the principal

    The loan is the present value of an ordinary annuity of EMIs. ₹10,00,000 at 9.5 % ÷ 12 for 60 months gives ₹21,001.86.

  8. Question 8 of 12 A loan of ₹10,00,000 is repaid with 60 instalments of ₹21,001.86. How much interest is paid in all, in rupees to the paisa?

    Type a number.

    Show the answer: Question 8 of 12

    Answer: 260111.6 rupees (anything from 260111.59 to 260111.61 counts)

    60 × ₹21,001.86 = ₹12,60,111.60, of which ₹10,00,000 repays the loan and ₹2,60,111.60 is interest.

  9. Question 9 of 12 The SIP formula ends with a factor (1 + i) that the EMI formula lacks. Why?

    Choose one answer.

    Show the answer: Question 9 of 12

    Answer: SIP instalments come at the start of each month and are valued at the end, so each earns one month more than an end-of-month payment

    One idea, two runs: the EMI values an ordinary annuity today, the SIP values an annuity due at the end, and an annuity due is the ordinary annuity times (1 + i).

  10. Question 10 of 12 A calculator treats 12 % a year as an effective rate. What monthly rate does it use?

    Choose one answer.

    Show the answer: Question 10 of 12

    Answer: (1.12)^(1/12) − 1, which is 0.9489 % a month

    An effective yearly rate is turned into a monthly one by the twelfth root: 1.12^(1/12) − 1 = 0.9489 %.

  11. Question 11 of 12 For monthly payments at 12 % a year, which rate do Microsoft's PMT and FV pages use in their examples?

    Choose one answer.

    Show the answer: Question 11 of 12

    Answer: 12%/12, with the number of periods in months

    Spreadsheet examples divide by 12. Neither convention is wrong, but they give different numbers, so a projection must say which it used.

  12. Question 12 of 12 Which description of a SIP projection lets someone else check it?

    Choose one answer.

    Show the answer: Question 12 of 12

    Answer: ₹5,000 at the start of each month for 20 years, at an assumed 12 % a year taken as an effective rate

    The same inputs give ₹45,56,055 to ₹49,95,740 depending on the convention and the timing, so a checkable projection states both, and labels the rate an assumption.

Check one projection you have seen

Take a SIP or loan figure from any calculator. Work it out both ways, with the rate divided by 12 and as an effective rate, at the start and at the end of each month, and see which of the four combinations it used.

Interview questions

Warm-up (fresher): What is the difference between an ordinary annuity and an annuity due?

Both are series of equal payments at equal intervals. In an ordinary annuity each payment comes at the end of its period, as a loan’s EMIs do; in an annuity due it comes at the start, as SIP instalments usually do. Every payment of an annuity due is made one period earlier, so it earns one period more, and the whole annuity is worth (1 + i) times the ordinary one, today or at the end. ₹10,000 a year for five years at 7 % is worth ₹57,507.39 at the end as an ordinary annuity and ₹61,532.91 as an annuity due. In a spreadsheet the difference is the type argument, 0 or 1.

Warm-up (fresher): Why can two SIP calculators show different values for the same inputs?

Because “12 % a year” needs a monthly rate, and there are two conventions. Dividing by 12 gives 1 % a month, which compounds to 12.68 % a year; treating 12 % as an effective rate gives 0.9489 % a month, exactly 12 % a year. For ₹5,000 a month for 20 years, paid at the start of each month, that is ₹49,95,740 against ₹45,99,287, ₹3,96,453 apart. Timing adds a second difference: start-of-month instalments earn one month more than end-of-month ones. Neither calculator is wrong; a projection should state both choices and that the rate is an assumption.

Key takeaways

  • A sum moves forward in time by multiplying by (1 + i) each period and back by dividing: ₹5,00,000 in five years is worth ₹3,56,493 today at 7 %.
  • An annuity is worth the sum of its payments’ single-sum values; an annuity due, paid at the start of each period, is worth (1 + i) times the ordinary annuity paid at the end.
  • The EMI is the payment whose ordinary annuity is worth the loan today, and a SIP’s corpus is the future value of an annuity due: one idea, run two ways.
  • “12 % a year” gives ₹49,95,740 or ₹45,99,287 for the same SIP, depending on whether the monthly rate is 12 % ÷ 12 or 1.12^(1/12) − 1, so every projection must say which it used.

Terms in this lesson

annuity
A series of equal payments at equal intervals, such as loan instalments or SIP instalments. Its value on any date is the sum of each payment's value on that date.
annuity due
An annuity whose payments come at the start of each period, as SIP instalments usually do. Each payment earns one period more, so it is worth (1 + i) times the ordinary annuity.
discounting
Bringing a later sum back to today by dividing by one plus the rate once for each period: the reverse of compounding.
equated monthly instalment (EMI)
The same amount paid every month to repay a loan, partly interest and partly repayment of the amount borrowed. It is the payment whose instalments, discounted at the loan's monthly rate, equal the loan.
future value
What a sum is worth at a later date once it has earned interest: present value × (1 + i)^n. ₹1,00,000 at 7 % a year is worth ₹1,40,255 in five years.
ordinary annuity
An annuity whose payments come at the end of each period, as a loan's instalments do, so the last payment earns nothing before the series ends.
present value
What a sum due later is worth today at a chosen rate: future value ÷ (1 + i)^n. ₹5,00,000 due in five years is worth ₹3,56,493 today at 7 % a year.
systematic investment plan (SIP)
The same amount invested at regular intervals, usually every month. Its value at the end is the future value of an annuity due, because each instalment goes in at the start of its month.

References

Related tools

Report a problem with this lesson

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.