Personal Finance for India Module 5 – Banking, deposits and safe payments
Fixed and recurring deposits: interest and TDS
Work out what a fixed or recurring deposit pays with quarterly compounding, when the bank deducts TDS, when Form 121 applies and what is insured.
What you will learn
- Compute fixed and recurring deposit maturity values with quarterly compounding
- Compare a cumulative deposit with one that pays its interest out
- Calculate what breaking a deposit early costs under the RBI's rules
- Apply the TDS thresholds on deposit interest and decide when Form 121 may be given
- Check a deposit's safety from deposit insurance and the rules for company deposits
Before you start
What you’ll learn · Before you start
What you will learn
- Compute fixed and recurring deposit maturity values with quarterly compounding
- Compare a cumulative deposit with one that pays its interest out
- Calculate what breaking a deposit early costs under the RBI's rules
- Apply the TDS thresholds on deposit interest and decide when Form 121 may be given
- Check a deposit's safety from deposit insurance and the rules for company deposits
Before you start
On this page
Meera’s deposits at one bank earn ₹62,000 of interest this year, so the bank will keep back ₹6,200 of it as TDS, although the tax on her whole year’s income is nil. Asha’s ₹5,000 a month in a two-year recurring deposit will come back as ₹1,29,099, and she cannot yet say where the extra ₹9,099 comes from.
This lesson works out what fixed and recurring deposits pay with quarterly compounding, compares keeping the interest with taking it out, prices breaking a deposit early, follows TDS from the threshold to Form 121, and checks how safe a deposit is. It is education only: the rates are examples for the arithmetic, the people are invented, and no bank, company or product is recommended.
A cumulative deposit adds its interest every quarter
A fixed deposit (FD): A sum placed with a bank for a fixed term at a rate agreed on the day. Its interest is either paid out at intervals or added to the balance until maturity. holds a sum for a fixed term at a rate agreed on the day. In a cumulative deposit: A fixed deposit that adds its interest to the balance, usually every quarter, and pays everything at maturity, so each quarter's interest earns in the quarters after it. the interest is not paid out but added to the balance, usually every quarter, so each quarter’s interest earns in the quarters after it. ₹1,00,000 for three years at 7 % a year gains 7 % ÷ 4 = 1.75 % every quarter, twelve times:
In words: the maturity value is the principal times one plus a quarter of the yearly rate, multiplied by itself once for each quarter. Here ₹1,00,000 × 1.0175¹² = ₹1,23,143.93, or ₹1,23,144. The model starts at those values; change the rate or the term, or set “Interest added” to yearly, and read the maturity value and the effective yearly rate:
₹1,00,000 at 7 % a year grows to ₹1,23,144 in 3 years; ₹23,144 of it is interest.
The numbers as a table
| Year | Paid in | Balance |
|---|---|---|
| 1 | ₹1,00,000 | ₹1,07,186 |
| 2 | ₹1,00,000 | ₹1,14,888 |
| 3 | ₹1,00,000 | ₹1,23,144 |
Quarterly compounding turns the quoted 7 % into 7.1859 % a year, as the compound interest lesson showed. A bank sets its own rates, but the RBI’s Directions bind how it pays them: a deposit earns exactly the rate in the schedule the bank has published in advance on its website, the same for every customer and every branch for deposits of similar amount taken on the same day. A bank may offer higher fixed rates to resident senior citizens through schemes made for them.
FD Calculator (India) Enter an amount, a rate, a term and the compounding, and see the maturity value and the interest by tax year.Checkpoint
Check: Cumulative deposits and quarterly compounding
A payout deposit pays the same rate but never grows
A deposit can also pay its interest out, every quarter or every month, into a savings account. The rate is the same, but the balance never grows, so the interest is worked on the same ₹1,00,000 every time. The program follows both versions of the same deposit, quarter by quarter, and ends with a post office deposit that pays once a year:
"""₹1,00,000 for three years at 7 % a year: kept in the deposit, or paid out every quarter.
A cumulative deposit adds 7 % ÷ 4 = 1.75 % to the balance every quarter: P(1 + r/4)^(4t). A payout deposit pays the
same 1.75 % of the principal every quarter and keeps the principal as it is, so it earns no interest on interest. The
last part is a post office five-year time deposit, whose interest is compounded quarterly and paid out once a year
(National Savings Time Deposit Scheme, 2019, paragraph 7), rounded to the rupee. The rates are examples for the
arithmetic. Decimal module, rounded half up.
"""
from decimal import ROUND_HALF_UP, Decimal, getcontext
getcontext().prec = 40
D = Decimal
def inr(amount, places="1"):
"""Rupees with Indian digit grouping: 123143.9 -> "₹1,23,144"; places="0.01" keeps paise."""
value = D(amount).quantize(D(places), rounding=ROUND_HALF_UP)
whole, _, paise = str(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 "")
P, RATE, YEARS = D(100000), D("0.07"), 3
quarter = RATE / 4
print(f"{inr(P)} at 7 % a year for {YEARS} years, interest added every quarter")
print(f"{'Quarter':<9}{'Cumulative':>14}{'Paid out':>13}")
balance, paid = P, D(0)
for q in range(1, 4 * YEARS + 1):
balance = balance * (1 + quarter)
paid += P * quarter
if q in (1, 2, 4, 8, 12):
print(f"{q:<9}{inr(balance, '0.01'):>14}{inr(paid, '0.01'):>13}")
interest_kept = balance - P
print()
print(f"Cumulative: {inr(balance)} at maturity, {inr(interest_kept)} of it interest")
print(f"Paid out: {inr(P * quarter, '0.01')} a quarter, {inr(paid)} in all, and {inr(P)} back")
print(f"Interest on interest: {inr(interest_kept - paid)}")
effective = (1 + quarter) ** 4 - 1
print(f"7 % compounded quarterly earns {(effective * 100).quantize(D('0.0001'))} % a year.")
print()
td_rate = D("0.075")
yearly = (P * ((1 + td_rate / 4) ** 4 - 1)).quantize(D(1), rounding=ROUND_HALF_UP)
print(f"Post office 5-year time deposit at 7.5 %: {inr(yearly)} paid each year,")
print(f"{inr(yearly * 5)} over five years, and {inr(P)} back at the end.") Output
₹1,00,000 at 7 % a year for 3 years, interest added every quarter Quarter Cumulative Paid out 1 ₹1,01,750.00 ₹1,750.00 2 ₹1,03,530.63 ₹3,500.00 4 ₹1,07,185.90 ₹7,000.00 8 ₹1,14,888.18 ₹14,000.00 12 ₹1,23,143.93 ₹21,000.00 Cumulative: ₹1,23,144 at maturity, ₹23,144 of it interest Paid out: ₹1,750.00 a quarter, ₹21,000 in all, and ₹1,00,000 back Interest on interest: ₹2,144 7 % compounded quarterly earns 7.1859 % a year. Post office 5-year time deposit at 7.5 %: ₹7,714 paid each year, ₹38,570 over five years, and ₹1,00,000 back at the end.
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 fd_quarterly.py
Paid out, the deposit brings ₹1,750 a quarter, ₹21,000 in three years, and the ₹1,00,000 back. Kept in, it brings ₹23,144. The ₹2,144 between them is interest on interest, which a payout deposit never earns. A payout is not a worse deal for someone who lives on the interest; it simply cannot compound, because nothing stays behind.
A post office time deposit: A government savings deposit of one, two, three or five years at a post office. Its interest is compounded quarterly and paid once a year, at the rate in force on the day it was opened. sits between the two. Its rules compound the interest quarterly within each year and pay it out once a year, so at 7.5 % a five-year deposit of ₹1,00,000 pays ₹7,714 every year, 7.71 % of the principal, and ₹38,570 over the five years. The rate on the day of opening holds until maturity.
Key idea
Cumulative and payout deposits at one rate differ only in interest on interest: kept in, ₹1,00,000 at 7 % for three years earns ₹23,144; paid out, ₹21,000.
Checkpoint
Check: Interest paid out instead of kept
A recurring deposit compounds each instalment for its own months
In a recurring deposit (RD): A deposit into which the same instalment is paid every month for a fixed term. Each instalment earns interest only for the months it stays in until maturity. you pay the same instalment every month, and each instalment earns only for the months it stays in. Asha pays ₹5,000 a month for 24 months at 7 %: her first instalment is in for 24 months, her last for one. With quarterly compounding, an instalment in for j months grows by (1 + 7 % ÷ 4) raised to the power j ÷ 3, part quarters in proportion. Step through three of her instalments:
The drawing shows the whole scene; its 4 steps are listed below.
Every step as text
- The first instalment. Asha's first ₹5,000 goes in when the deposit opens and stays for all 24 months, eight full quarters. At 1.75 % a quarter it grows to ₹5,744.41.
- An instalment halfway. The 13th instalment is paid a year later and stays for 12 months, four quarters, so it grows only to ₹5,359.30.
- The last instalment. The 24th instalment stays for one month, a third of a quarter, and grows by (1.0175) to the power one third, to ₹5,029.00. It earns ₹29.
- The sum is the maturity value. Every instalment grows for its own months, and the 24 grown amounts add up to ₹1,29,099, which is ₹9,099 more than the ₹1,20,000 Asha paid in.
The maturity value is the sum of all 24 grown instalments. The program checks this way of counting against the post office’s own table before it works Asha’s deposit:
"""What a recurring deposit pays: every instalment compounds quarterly for the months it stays in.
An instalment that stays in for j months grows by (1 + r/4)^(j/3), part quarters compounded in proportion, and the
maturity value is the sum over all instalments, the first in for n months and the last for one. This is the
convention of the rd-calculator, and it reproduces the post office's own table: the National Savings Recurring Deposit
Scheme, 2019 (paragraph 9) pays ₹7,231.38 for sixty deposits of ₹100 at 7.2 % and ₹6,969.67 at 5.8 %. A bank's RD
may round differently; the rates below are examples for the arithmetic. Decimal module, rounded half up.
"""
from decimal import ROUND_HALF_UP, Decimal, getcontext
getcontext().prec = 40
D = Decimal
def inr(amount, places="1"):
"""Rupees with Indian digit grouping: 356456.7 -> "₹3,56,457"; places="0.01" keeps paise."""
value = D(amount).quantize(D(places), rounding=ROUND_HALF_UP)
whole, _, paise = str(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 growth(rate, months):
"""How much one rupee grows in `months` months at `rate` a year, compounded quarterly."""
return (1 + D(rate) / 4) ** (D(months) / 3)
def maturity(monthly, rate, n):
"""The value of n monthly instalments, the first in for n months, the last for one month."""
return sum(D(monthly) * growth(rate, j) for j in range(1, n + 1))
print("The formula against the post office's own table, 60 deposits of ₹100:")
for rate, table in (("0.072", "7231.38"), ("0.058", "6969.67")):
value = maturity(100, rate, 60).quantize(D("0.01"), rounding=ROUND_HALF_UP)
print(f" at {(D(rate) * 100).normalize()} %: {inr(value, '0.01')} (the scheme's table: {inr(table, '0.01')})")
print()
print("Asha's bank RD: ₹5,000 a month for 24 months at 7 %")
for j, label in ((24, "first instalment"), (12, "13th instalment"), (1, "last instalment")):
span = "1 month" if j == 1 else f"{j} months"
print(f" {label:<17} in for {span:>9}: grows to {inr(5000 * growth('0.07', j), '0.01')}")
bank = maturity(5000, "0.07", 24)
print(f" maturity {inr(bank)}: {inr(5000 * 24)} paid in, {inr(bank - 5000 * 24)} interest")
print()
post = maturity(5000, "0.067", 60).quantize(D(1), rounding=ROUND_HALF_UP)
print("Post office RD: ₹5,000 a month for 60 months at 6.7 %")
print(f" maturity {inr(post)}: {inr(5000 * 60)} paid in, {inr(post - 5000 * 60)} interest") Output
The formula against the post office's own table, 60 deposits of ₹100: at 7.2 %: ₹7,231.38 (the scheme's table: ₹7,231.38) at 5.8 %: ₹6,969.67 (the scheme's table: ₹6,969.67) Asha's bank RD: ₹5,000 a month for 24 months at 7 % first instalment in for 24 months: grows to ₹5,744.41 13th instalment in for 12 months: grows to ₹5,359.30 last instalment in for 1 month: grows to ₹5,029.00 maturity ₹1,29,099: ₹1,20,000 paid in, ₹9,099 interest Post office RD: ₹5,000 a month for 60 months at 6.7 % maturity ₹3,56,829: ₹3,00,000 paid in, ₹56,829 interest
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 rd_maturity.py
The formula gives exactly the ₹7,231.38 and ₹6,969.67 that the National Savings Recurring Deposit Scheme lists for sixty deposits of ₹100 at 7.2 % and 5.8 %. Asha’s deposit matures at ₹1,29,099: ₹1,20,000 paid in and ₹9,099 of interest, less than 7 % of ₹1,20,000 for two years would suggest, because most instalments are in for far less than two years. The post office’s recurring deposit runs 60 months, from ₹100 a month in multiples of ₹10, and at 6.7 % ₹5,000 a month comes back as ₹3,56,829.
RD Calculator (India) Enter a monthly instalment, a rate and a term, bank or post office, and see the maturity value and each tax year's interest.Checkpoint
Check: Recurring deposits, instalment by instalment
Breaking a deposit early pays a lower rate, less a penalty you were told about
A bank must let an individual withdraw a term deposit of ₹1 crore or less before maturity, but the RBI’s rules change what it pays. Interest is paid at the bank’s rate for the amount and the period the deposit actually ran, not at the contracted rate, less a penalty for premature withdrawal. The penalty comes from a policy the bank’s board approves, and it must be made known when the deposit is taken: a bank that did not disclose it may not charge one. A deposit withdrawn before the minimum term of seven days earns no interest at all.
"""What Meera gives up by breaking a three-year deposit after 14 months.
The RBI's rule for a term deposit withdrawn early: interest at the rate for the amount and the period the deposit
actually ran, not the contracted rate, less the penalty the bank disclosed when the deposit was taken. The bank's
rates and its penalty of one percentage point are invented; interest is compounded quarterly with a part quarter
compounded in proportion, the convention of the lesson's other programs. Decimal module, rounded half up.
"""
from decimal import ROUND_HALF_UP, Decimal, getcontext
getcontext().prec = 40
D = Decimal
def inr(amount):
"""Whole rupees with Indian digit grouping: 106469.4 -> "₹1,06,469"."""
whole = str(D(amount).quantize(D(1), rounding=ROUND_HALF_UP))
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
def value(principal, rate, months):
"""The deposit after `months` months at `rate` a year, compounded quarterly."""
return D(principal) * (1 + D(rate) / 4) ** (D(months) / 3)
P, MONTHS = D(100000), 14
CARD = {"1 year to under 2 years": D("0.065"), "2 years to 3 years": D("0.07")} # the bank's (invented) card rates
PENALTY = D("0.01")
contracted = value(P, "0.07", MONTHS).quantize(D(1), rounding=ROUND_HALF_UP)
applicable = CARD["1 year to under 2 years"]
paid = value(P, applicable - PENALTY, MONTHS).quantize(D(1), rounding=ROUND_HALF_UP)
print(f"{inr(P)} for 3 years at 7 %, withdrawn after {MONTHS} months")
print(f" at the contracted 7 % it would hold {inr(contracted)}")
print(f" rate for 14 months on the bank's card {applicable * 100:.1f} %")
print(f" less the penalty of 1 point {(applicable - PENALTY) * 100:.1f} %")
print(f" paid out {inr(paid)}")
print(f" cost of breaking it: {inr(contracted - paid)} of interest")
print()
full = value(P, "0.07", 36)
print(f"Left to mature, the same deposit pays {inr(full)} after 36 months.") Output
₹1,00,000 for 3 years at 7 %, withdrawn after 14 months at the contracted 7 % it would hold ₹1,08,433 rate for 14 months on the bank's card 6.5 % less the penalty of 1 point 5.5 % paid out ₹1,06,580 cost of breaking it: ₹1,853 of interest Left to mature, the same deposit pays ₹1,23,144 after 36 months.
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 premature.py
Meera’s deposit ran 14 months, so it earns the bank’s rate for one to two years, 6.5 % on its invented card, less one percentage point: 5.5 %. She receives ₹1,06,580 instead of the ₹1,08,433 the contracted 7 % would have built by then, ₹1,853 less, and gives up the ₹1,23,144 it would have paid at maturity. The post office’s time deposit has its own rule: nothing can be withdrawn in the first six months; between six months and a year it pays the Post Office Savings Account rate, 4 %; after a year, the rate for the completed period less two percentage points. The five-year deposit is the exception: it stays shut for four years, after which closing it earns just the savings account rate.
Split a large sum into smaller deposits
Several smaller deposits instead of one large one let you break only the part you need, so the lower rate and the penalty fall on that part alone and the rest runs to maturity at its contracted rate.
Checkpoint
Check: Breaking a deposit early
Above ₹50,000 of interest at one bank, TDS takes a tenth of all of it
A bank or a co-operative bank deducts tax deducted at source (TDS): Income tax that the payer deducts before paying you and deposits with the government in your name. On a salary, the employer deducts each month a share of the tax it expects on the year's pay. More in “Reading your payslip line by line” from deposit interest under section 393 of the Income-tax Act, 2025, and so does a post office on the deposit schemes notified for it, when the interest it pays or credits to one person in a tax year is more than ₹50,000, or ₹1,00,000 for a senior citizen. The rate is 10 % of the whole amount, not of the part above the threshold, and 20 % when the bank has no PAN for you. TDS is deducted when interest is credited to you or paid, whichever comes first, so the interest a cumulative deposit adds each year can bring TDS long before it matures. Follow the decision for one person at one bank:
The drawing shows the whole scene; its 6 steps are listed below.
Every step as text
- One payer, one year. The threshold is counted for each bank or post office separately, over one tax year. Meera's first bank pays her ₹62,000 of interest this year.
- Above the threshold. Meera is 35, so her threshold is ₹50,000, or ₹1,00,000 for a senior citizen. ₹62,000 is above it, so TDS will apply to the whole ₹62,000, not only the ₹12,000 above. Her second bank pays ₹38,000, below it, and deducts nothing.
- Is her year's tax nil?. Her income for the year is ₹9,00,000. Under the new regime the section 156 rebate makes the tax on it nil, and the interest her declaration covers, ₹1,00,000, is within ₹4,00,000.
- Form 121 instead of TDS. So Meera may give her first bank Form 121 for this tax year, and it pays the ₹62,000 without TDS. The interest is still income she reports in her return.
- When the tax is not nil. Kabir's income is ₹14,85,000 and his tax ₹1,06,860, so he may not give Form 121. His bank deducts 10 % of his ₹60,000 of interest, ₹6,000, or 20 % if it has no PAN for him.
- TDS counts towards the tax. TDS is an advance part of the tax on interest at his slab rate. Kabir claims the ₹6,000 in his return against the tax he owes on all his income.
TDS is not the tax itself. Deposit interest is income, taxed at your slab rate whether or not anything was deducted, and TDS is an advance part of that tax, claimed back or set off when you file your return. That is why Form 121: The declaration under section 393(6) of the Income-tax Act, 2025 that lets a resident individual receive interest without TDS, allowed only when the tax on the year's estimated total income will be nil. exists: a resident individual may give it to the bank to receive interest without TDS, but only when the tax on the whole year’s estimated income will be nil, after deductions and the section 156 rebate, and, for anyone under 60, when the incomes the form covers do not exceed the amount not chargeable to tax, ₹4,00,000 in the new regime. The program applies the rules to four people:
"""TDS on deposit interest in Tax Year 2026-27, and who may give a bank Form 121 instead.
Rules (Income-tax Act, 2025 with the rates of the Finance Act, 2026): a bank, a co-operative bank or a post office
deducts tax at 10 % when the interest it pays or credits to one person in a tax year exceeds ₹50,000, or ₹1,00,000
for a senior citizen (section 393(1), Table Sl. No. 5(ii)), on the whole amount, and at 20 % when no PAN is given
(section 397(2)). It may not deduct when the person gives a declaration in Form No. 121 (section 393(6), rule 211):
the tax on the year's estimated total income must be nil, after the section 156 rebate, and for anyone under 60 the
incomes the declaration covers may not exceed the amount not chargeable to tax, ₹4,00,000 in the new regime. The
people and amounts are invented; the new regime is assumed, and income and tax are rounded to ₹10 (section 516).
"""
from decimal import ROUND_HALF_UP, Decimal
D = Decimal
NEW = [(400000, "0"), (800000, "0.05"), (1200000, "0.10"), (1600000, "0.15"), (2000000, "0.20"), (2400000, "0.25"), (None, "0.30")]
def inr(amount):
"""Whole rupees with Indian digit grouping: 1485000 -> "₹14,85,000"."""
whole = str(D(amount).quantize(D(1), rounding=ROUND_HALF_UP))
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
def round_to_ten(amount):
"""Section 516: drop the paise, then round to the nearest ₹10 (a last digit of 5 or more rounds up)."""
rupees = int(amount)
return D(rupees - rupees % 10 + (10 if rupees % 10 >= 5 else 0))
def new_regime_tax(income):
"""Tax with 4 % cess under section 202(1), after the section 156 rebate and its marginal relief."""
income = round_to_ten(income)
tax, lower = D(0), D(0)
for upper, rate in NEW:
top = income if upper is None else min(income, D(upper))
if top > lower:
tax += (top - lower) * D(rate)
if upper is None or income <= upper:
break
lower = D(upper)
if income <= 1200000:
tax = D(0)
else:
tax = min(tax, income - 1200000)
return round_to_ten(tax * D("1.04"))
def tds(interest, senior, pan=True):
"""What one bank or post office deducts on a year's interest without a Form 121."""
threshold = 100000 if senior else 50000
if interest <= threshold:
return D(0)
return D(interest) * (D("0.10") if pan else D("0.20"))
def may_give_form_121(total_income, covered, senior):
"""Section 393(6): nil tax on the estimated total income, and (below 60) covered income within ₹4,00,000."""
if new_regime_tax(total_income) != 0:
return False, f"tax on {inr(total_income)} is {inr(new_regime_tax(total_income))}"
if not senior and covered > 400000:
return False, "covered income above ₹4,00,000"
return True, f"tax on {inr(total_income)} is nil"
# Name, age, interest from each payer, other taxable income (salary after the ₹75,000 standard deduction, or fees).
PEOPLE = [
("Rahul", 22, {"Bank A": 56000}, 0),
("Meera", 35, {"Bank A": 62000, "Bank B": 38000}, 800000),
("Kabir", 30, {"Bank A": 60000}, 1425000),
("Asha's father", 63, {"Post office": 123000, "Bank C": 96000}, 0),
]
for name, age, payers, other in PEOPLE:
senior = age >= 60
interest = sum(payers.values())
total = other + interest
ok, why = may_give_form_121(total, interest, senior)
print(f"{name}, {age}: interest {inr(interest)}, total income {inr(total)}")
for payer, amount in payers.items():
print(f" {payer:<12} {inr(amount):>9} interest, TDS without Form 121: {inr(tds(amount, senior))}")
print(f" Form 121: {'may be given' if ok else 'not allowed'} ({why})")
print()
print(f"Rahul with no PAN on record: TDS {inr(tds(56000, False, pan=False))} instead of {inr(tds(56000, False))}") Output
Rahul, 22: interest ₹56,000, total income ₹56,000 Bank A ₹56,000 interest, TDS without Form 121: ₹5,600 Form 121: may be given (tax on ₹56,000 is nil) Meera, 35: interest ₹1,00,000, total income ₹9,00,000 Bank A ₹62,000 interest, TDS without Form 121: ₹6,200 Bank B ₹38,000 interest, TDS without Form 121: ₹0 Form 121: may be given (tax on ₹9,00,000 is nil) Kabir, 30: interest ₹60,000, total income ₹14,85,000 Bank A ₹60,000 interest, TDS without Form 121: ₹6,000 Form 121: not allowed (tax on ₹14,85,000 is ₹1,06,860) Asha's father, 63: interest ₹2,19,000, total income ₹2,19,000 Post office ₹1,23,000 interest, TDS without Form 121: ₹12,300 Bank C ₹96,000 interest, TDS without Form 121: ₹0 Form 121: may be given (tax on ₹2,19,000 is nil) Rahul with no PAN on record: TDS ₹11,200 instead of ₹5,600
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 tds_check.py
Rahul, Meera and Asha’s father may each give Form 121, because the tax on their year is nil. Kabir may not: his tax on ₹14,85,000 is ₹1,06,860, so his bank takes ₹6,000 of his ₹60,000 interest. Meera’s ₹38,000 at a second bank is below the threshold, so nothing is deducted there, but it is still taxable income.
A false Form 121 is an offence
The form’s own declaration says that a person who gives it falsely is liable to prosecution and penalty under the Act. Give it only when the tax on your whole year will be nil, and give a new one each tax year.
Checkpoint
Check: TDS on interest and Form 121
Deposit insurance covers ₹5 lakh at each bank, and company deposits have none
How safe a deposit is depends on who holds it. Bank deposits are insured by the DICGC up to ₹5,00,000 per depositor in each bank, principal and interest together, counting everything held at that bank in the same right and capacity, as the emergency fund lesson works through. Deposits with a non-banking finance company are different: the RBI’s own FAQ says they are unsecured and have no deposit insurance.
| Where the deposit is | What stands behind it | What to check |
|---|---|---|
| A bank | DICGC insurance, ₹5,00,000 per depositor per bank | The total you hold at each bank |
| The post office | A Government of India savings scheme | The scheme’s rules and the current rate |
| A deposit-taking NBFC | Nothing: no deposit insurance | The RBI’s list, the rating, the term |
Only NBFCs that hold the RBI’s certificate to take deposits may accept them, and only with an investment-grade credit rating of at least BBB− from a SEBI-registered agency, for terms of 12 to 60 months, at no more than 12.5 % a year; the RBI publishes the list. A higher rate from a company is the price of a risk that a bank deposit does not carry.
Treating every deposit as insured
Wrong: “a company deposit is like a bank FD, only better paid”. Right: a bank deposit is insured up to ₹5 lakh per bank, while an NBFC deposit is unsecured with no deposit insurance, so its rating and the RBI’s list are what you rely on.
Checkpoint
Check: Deposit insurance and company deposits
Practise: deposits, interest and TDS
The questions below begin with whichever deposit idea has tripped you up most in this lesson, and the summary links back to the section to reread. Round rupee answers to the nearest rupee unless a question asks for paise:
Practice that adapts to you
Practise this lesson
17 questions about 6 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.
Check a deposit of your own
Take a deposit you hold. Work its maturity value with its rate and compounding, add up the interest every deposit pays you at that bank this tax year, and see whether it crosses ₹50,000, or ₹1,00,000 if you are 60 or older.
Interview questions
Warm-up (fresher): Why does a cumulative deposit pay more than a payout deposit at the same rate?
Because a cumulative deposit adds each quarter’s interest to the balance, and later quarters pay interest on that larger balance, while a payout deposit pays its interest out and is left with the same principal every quarter. At 7 % for three years, ₹1,00,000 kept in grows to ₹1,23,144, interest of ₹23,144; paid out quarterly it brings ₹1,750 a quarter, ₹21,000 in all. The ₹2,144 between them is interest on interest. The payout version still suits someone who needs a regular income from the deposit; it simply cannot compound.
Warm-up (fresher): When does a bank deduct TDS on deposit interest, and how can you avoid it lawfully?
Under section 393 of the Income-tax Act, 2025, a bank, co-operative bank or post office deducts 10 % of the whole interest it pays or credits to you in a tax year once that interest exceeds ₹50,000, or ₹1,00,000 for a senior citizen, and 20 % if it has no PAN for you. You can lawfully receive it without TDS only by giving Form 121, and only if the tax on your whole year’s estimated income is nil; if you are under 60, the incomes it covers must also stay within ₹4,00,000 in the new regime. Otherwise TDS is simply an advance part of the tax you owe at your slab rate.
Key takeaways
- A cumulative deposit compounds quarterly: ₹1,00,000 at 7 % for three years matures at ₹1,23,144, an effective 7.1859 % a year.
- A payout deposit at the same rate earns no interest on interest, ₹21,000 instead of ₹23,144, and a post office time deposit pays a year’s quarterly-compounded interest once a year.
- A recurring deposit compounds each instalment for its own months: ₹5,000 a month for 24 months at 7 % matures at ₹1,29,099.
- A deposit broken early earns the rate for the period it ran less the disclosed penalty: Meera’s deposit, broken after 14 months, paid ₹1,853 less than its contracted rate would have.
- Above ₹50,000 of interest at one bank in a tax year (₹1,00,000 at 60 or over), TDS takes 10 % of all of it, and Form 121 is allowed only when the tax on your whole year will be nil.
- DICGC insures bank deposits up to ₹5 lakh per depositor per bank; deposits with an NBFC are unsecured and have no deposit insurance.
Terms in this lesson
- cumulative deposit
- A fixed deposit that adds its interest to the balance, usually every quarter, and pays everything at maturity, so each quarter's interest earns in the quarters after it.
- fixed deposit (FD)
- A sum placed with a bank for a fixed term at a rate agreed on the day. Its interest is either paid out at intervals or added to the balance until maturity.
- Form 121
- The declaration under section 393(6) of the Income-tax Act, 2025 that lets a resident individual receive interest without TDS, allowed only when the tax on the year's estimated total income will be nil.
- post office time deposit
- A government savings deposit of one, two, three or five years at a post office. Its interest is compounded quarterly and paid once a year, at the rate in force on the day it was opened.
- recurring deposit (RD)
- A deposit into which the same instalment is paid every month for a fixed term. Each instalment earns interest only for the months it stays in until maturity.
References
- Reserve Bank of India (Commercial Banks – Interest Rate on Deposits) Directions, 2025 (Reserve Bank of India)
- Reserve Bank of India (Commercial Banks – Interest Rate on Deposits) Second Amendment Directions, 2026 (Reserve Bank of India)
- National Savings Time Deposit Scheme, 2019 (National Savings Institute, Ministry of Finance)
- SB Order No. 22/2023: amendments to the Senior Citizens' Savings, Time Deposit and PPF Schemes (Department of Posts, Government of India)
- National Savings Recurring Deposit Scheme, 2019 (National Savings Institute, Ministry of Finance)
- Interest rates on national savings schemes (National Savings Institute, Ministry of Finance)
- The Income-tax Act, 2025 (sections 393(1), 393(6) and 397(2)) (Ministry of Law and Justice, Government of India)
- The Finance Act, 2026 (First Schedule, Part II: rates of tax deduction) (Ministry of Law and Justice, Government of India)
- Income-tax Rules, 2026 (rule 211 and Form No. 121) (Income Tax Department, Government of India)
- A guide to deposit insurance (Deposit Insurance and Credit Guarantee Corporation)
- All you wanted to know about NBFCs (FAQ) (Reserve Bank of India)
Related tools
Report a problem with this lesson
Kept only in this browser. Your Learn progress