Personal Finance for India Module 11 – Insurance and risk protection
Term life insurance vs insurance-as-investment
Size life cover with the needs method, compare term plans by their features, find the real return in a savings-plan illustration and apply the tax rules.
What you will learn
- Estimate life cover with the needs method, and check it against human life value
- Compare term plans by their features, from the term and sum assured to the claim rules
- Compute the internal rate of return of a savings-plan illustration, and what surrendering it early returns
- Apply the tax rules on premiums, maturity values and death proceeds
Before you start
What you’ll learn · Before you start
What you will learn
- Estimate life cover with the needs method, and check it against human life value
- Compare term plans by their features, from the term and sum assured to the claim rules
- Compute the internal rate of return of a savings-plan illustration, and what surrendering it early returns
- Apply the tax rules on premiums, maturity values and death proceeds
Before you start
On this page
Meera’s family would need about ₹61 lakh if she died tomorrow, and an invented savings plan for ₹50,000 a year covers her for ₹5,00,000. The same plan, held for 20 years, returns 2.20 % a year on its premiums at the lower of the two returns its illustration shows.
This lesson sizes life cover by the needs method, lists what to compare in a term plan, works out the yearly return hidden in a savings-plan illustration, sets term cover and saving the difference beside it with every assumption stated, and applies the tax rules on premiums and payouts. It is education only: Meera, every plan, premium and return are invented or assumed, and no insurer, plan or product is recommended.
Life cover replaces income that someone depends on
Life insurance answers one question: who would lose money if you died? If nobody depends on your income, a life payout protects nobody yet. Meera’s daughter is 8, and Meera’s income pays for everything they spend, so her death would leave a gap the size of the money the family would still need. The needs method: A way to size life cover: the family's living costs for the years it needs support, plus loans and goals, less savings and the cover already in place. adds that up: living costs for the years the family needs them, the loans it would have to repay, the goals it would still pay for, less the savings and the cover it already has. Step through Meera’s:
The drawing shows the whole scene; its 6 steps are listed below.
Every step as text
- Ten years of living costs. Meera's daughter is 8, and the family spends ₹4,00,000 a year. Ten years of it is ₹40,00,000 in today's rupees. Rising 6 % a year and paid from a sum earning 7 %, it is worth ₹38,35,900 today.
- Clear the loan. The ₹15,00,000 still owed on the home loan is added in full, so the family keeps the home without the EMI.
- The college fund. College ten years away costs ₹10,00,000 today. Rising 8 % a year it is ₹21,58,925 then, which ₹10,97,488 earning 7 % would reach in time.
- Less what they have. The ₹3,00,000 of savings the family could use comes off. Needs now come to ₹61,33,388.
- Less the cover she has. She already has ₹2,00,000 of life cover from PMJJBY, the government scheme sold through banks for ₹436 a year. It comes off too.
- The gap. That leaves ₹59,33,388, so a term plan of about ₹60 lakh fills the gap. Without discounting, the simplest version, ten years of costs plus the loan less savings, gives ₹52 lakh.
The program works it three ways, then makes a cross-check:
"""How much life cover Meera needs: the needs method, three ways, and human life value as a cross-check.
Meera (invented) is 32 and her daughter is 8. The family spends ₹4,00,000 a year, she owes ₹15,00,000 on a home loan
and has ₹3,00,000 of savings the family could use. She already has ₹2,00,000 of life cover from PMJJBY. The method is
that of MySmartCoPilot's life insurance calculator: living costs for the years the family needs them, paid at the
start of each year and rising with inflation, discounted at what the payout could earn; plus loans; plus goals,
inflated to their date and discounted back; less savings. The rates are assumptions written down for the arithmetic.
"""
from decimal import ROUND_HALF_UP, Decimal, getcontext
getcontext().prec = 34
EXPENSES, YEARS, LOAN, SAVINGS, HAVE = Decimal(400000), 10, Decimal(1500000), Decimal(300000), Decimal(200000)
INFLATION, RETURN = Decimal("0.06"), Decimal("0.07")
COLLEGE, COLLEGE_YEARS, COLLEGE_RISE = Decimal(1000000), 10, Decimal("0.08")
def inr(amount):
value = Decimal(amount).quantize(Decimal("1"), rounding=ROUND_HALF_UP)
whole = str(abs(value))
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 costs_today(expense, years, inflation, rate):
"""Present value of a yearly cost paid at the start of each year, rising with inflation (a growing annuity due)."""
k = (1 + inflation) / (1 + rate)
return expense * years if k == 1 else expense * (1 - k**years) / (1 - k)
simple = EXPENSES * YEARS + LOAN - SAVINGS
print("Part 1: the needs method in today's rupees, nothing discounted")
print(f" {YEARS} years × {inr(EXPENSES)} + loan {inr(LOAN)} − savings {inr(SAVINGS)} = {inr(simple)}")
print()
living = costs_today(EXPENSES, YEARS, INFLATION, RETURN)
needs = living + LOAN - SAVINGS
print("Part 2: costs rising 6 % a year, the payout earning 7 %")
print(f" living costs for {YEARS} years, valued today: {inr(living)}")
print(f" with the loan and less savings: {inr(needs)}")
college_then = COLLEGE * (1 + COLLEGE_RISE) ** COLLEGE_YEARS
college_now = college_then / (1 + RETURN) ** COLLEGE_YEARS
with_goal = needs + college_now
print(f" her daughter's college, ₹10,00,000 today, rising 8 % a year: {inr(college_then)} in {COLLEGE_YEARS} years,")
print(f" worth {inr(college_now)} today; needs with the goal: {inr(with_goal)}")
print(f" less the PMJJBY cover she has: a gap of {inr(with_goal - HAVE)}")
print()
income, own, growth, years_left = Decimal(800000), Decimal(150000), Decimal("0.05"), 28
k = (1 + growth) / (1 + RETURN)
hlv = (income - own) * (1 - k**years_left) / (RETURN - growth)
print("Part 3: human life value, as a cross-check")
print(f" {inr(income)} a year after tax less {inr(own)} she spends on herself, rising 5 % a year,")
print(f" for the {years_left} years to 60, discounted at 7 %: {inr(hlv)}, {hlv / income:.1f} times her income") Output
Part 1: the needs method in today's rupees, nothing discounted
10 years × ₹4,00,000 + loan ₹15,00,000 − savings ₹3,00,000 = ₹52,00,000
Part 2: costs rising 6 % a year, the payout earning 7 %
living costs for 10 years, valued today: ₹38,35,900
with the loan and less savings: ₹50,35,900
her daughter's college, ₹10,00,000 today, rising 8 % a year: ₹21,58,925 in 10 years,
worth ₹10,97,488 today; needs with the goal: ₹61,33,388
less the PMJJBY cover she has: a gap of ₹59,33,388
Part 3: human life value, as a cross-check
₹8,00,000 a year after tax less ₹1,50,000 she spends on herself, rising 5 % a year,
for the 28 years to 60, discounted at 7 %: ₹1,33,38,127, 16.7 times her income
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 needs.py
The simplest version, ten years of ₹4,00,000 plus the ₹15,00,000 loan less ₹3,00,000 of savings, is ₹52 lakh. Valued properly, with costs rising 6 % a year and the payout earning 7 %, the living costs are worth ₹38,35,900 today, and with the loan, the college fund and her savings the family needs ₹61,33,388; less her ₹2,00,000 from PMJJBY, the gap is ₹59,33,388. The cross-check, human life value: The present value of what a person's income adds to the family until retirement: income after tax less their own spending, rising and discounted. It is the most life cover could replace., prices what her earning years are worth to the family, ₹1,33,38,127 at the same rates, 16.7 times her income: the most cover could ever replace.
Buying cover as a round multiple of income
Wrong: “cover should be ten times my income, so ₹80 lakh”. Right: “my family’s needs are ₹61 lakh, so about ₹60 lakh”. A multiple of income is a rough rule that ignores the loan, the goals, the savings and the cover you already have; the two methods replace it with your own numbers.
Salaried readers have one more piece of cover to count: EDLI, which EPFO pays to a member’s family only on a death in service, up to ₹7 lakh, so it ends with the job. The government’s PMJJBY covers account holders aged 18 to 50 for ₹2,00,000 for ₹436 a year, renewed every year.
Life Insurance (Term Cover) Calculator Work out the cover your family would need by the needs method and by human life value, and the gap against the cover you already have.Checkpoint
Check: Sizing life cover by the needs method
A term plan is pure cover, so compare its features, not its brand
A term insurance: Life insurance that pays its sum assured if the insured dies within the term and nothing if they outlive it. With no saving inside, its premium buys cover alone. pays its sum assured if you die within the term, and nothing if you outlive it. With no savings inside, the premium buys cover alone, which is why, in this lesson’s invented quotes, ₹60 lakh of term cover costs ₹11,000 a year while a savings plan charges ₹50,000 for ₹5,00,000. For the same reason IRDAI does not require a benefit illustration for a regular-premium pure term plan: there is no maturity value to illustrate. What separates one term plan from another is a short list of features, each of which you can read on the quote and in the wording:
| Feature | What to check | For Meera |
|---|---|---|
| Term | the years the cover runs | at least until her daughter is independent and the loan is repaid |
| Sum assured | the payout on death | about ₹60 lakh, from the needs method |
| Premium payment | every year of the term, or a shorter span | the whole term keeps each year’s premium low |
| Cover over time | level, or falling as a loan is repaid | level, since the needs fall slowly |
| Riders | extra benefits, such as on accidental death | only those whose wording she has read |
| Exclusions | deaths the policy does not pay for | listed in the wording; read them before signing |
| Claim rules | how the family claims | settled within 15 days, or 45 with an investigation |
The rules around a claim are the same for every insurer, and they favour honest proposals. A life policy cannot be contested on any ground three years after it is issued, starts its cover or is revived. Before that, a wrong answer on the proposal can be the reason a claim is refused, so every illness, habit and other policy belongs on the form. The nominee named on the policy receives the money. A claim that is cut or refused can go from the insurer to the ombudsman: An official who settles customers' complaints against firms in one sector at no fee, such as the RBI Ombudsman for banks or the Insurance Ombudsman. The complaint must go to the firm first. More in “Who regulates your money in India” within a year of the insurer’s reply.
Key idea
A term plan pays only on death within its term, so its value lies in the features you choose, the term, the sum assured and the wording, and in an honest proposal that a claim cannot later be refused for.
Checkpoint
Check: What to compare in a term plan
A savings plan’s illustration hides a yearly return you can work out
A savings plan, an endowment or a unit-linked plan, mixes cover with saving, and IRDAI requires a customised benefit illustration: A document a life insurer must give before selling a policy with savings, showing its benefits year by year at assumed gross returns of 4 % and 8 %, signed by the buyer and the seller. before it is sold, which you and the seller both sign. It shows the benefits year by year at two gross investment returns that IRDAI sets, 4 % and 8 % a year, and says plainly that these are neither the lowest nor the highest you might get. It does not show the yearly return on your premiums. You work that out with the method of the lesson on measuring returns: the rate at which the premiums, compounded to the maturity date, equal the maturity value. Walk through an invented plan’s 20 years:
- Year 1
The first premium and the free look free look
Meera pays ₹50,000 and receives the policy and its signed benefit illustration. For 30 days she may return it and get the premium back, less the deductions the rules allow.
- Year 2
A surrender value begins 30 %
After two years' premiums the plan has a guaranteed surrender value of at least 30 % of the ₹1,00,000 paid, ₹30,000. The insurer's special surrender value may be higher.
- Year 3
Still well below what was paid 35 %
Surrendered in year 3, the plan must return at least 35 % of the ₹1,50,000 paid, ₹52,500.
- Years 4 to 7
Half of what went in 50 %
Surrendered in year 5 the minimum is 50 % of ₹2,50,000, ₹1,25,000; in year 7, 50 % of ₹3,50,000, ₹1,75,000.
- Year 15
The last premium cover
Fifteen premiums, ₹7,50,000, have been paid. Her cover is now the higher of the ₹5,00,000 sum assured and 105 % of the premiums paid, ₹7,87,500.
- Years 19 and 20
Near the end 90 %
Surrendered in the last two years, the plan must return at least 90 % of the premiums paid, ₹6,75,000.
- End of year 20
Maturity maturity
The illustration shows ₹10,00,000 at a gross return of 4 % and ₹13,50,000 at 8 %. As yearly returns on the premiums, that is 2.20 % and 4.48 %.
The timeline has 7 events, from Year 1 to End of year 20.
The program finds the rate for both illustrated values and prints what the plan returns on the way:
"""The yearly return hidden in an invented savings-plan illustration, and what leaving early returns.
The invented plan: ₹50,000 a year at the start of each of the first 15 policy years, a 20-year term, a sum assured of
₹5,00,000, and a maturity value at the end of year 20 that its benefit illustration shows at the two gross investment
returns IRDAI stipulates, 4 % and 8 % a year: ₹10,00,000 and ₹13,50,000 (both invented). The internal rate of return
is the yearly rate at which the premiums, compounded to year 20, equal the maturity value. The surrender values are the
minimum guaranteed surrender values of the IRDAI (Insurance Products) Regulations, 2024 for a regular-premium plan.
"""
from decimal import ROUND_HALF_UP, Decimal, getcontext
getcontext().prec = 34
PREMIUM, PAYING, TERM, ASSURED = Decimal(50000), 15, 20, Decimal(500000)
MATURITY = {"4 %": Decimal(1000000), "8 %": Decimal(1350000)}
def inr(amount):
value = Decimal(amount).quantize(Decimal("1"), rounding=ROUND_HALF_UP)
whole = str(abs(value))
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 premiums_grown(rate):
"""The premiums, paid at the start of years 1 to 15, compounded to the end of year 20."""
return sum(PREMIUM * (1 + rate) ** (TERM - t) for t in range(PAYING))
def irr(maturity):
lo, hi = Decimal(0), Decimal("0.2")
for _ in range(200):
mid = (lo + hi) / 2
if premiums_grown(mid) < maturity:
lo = mid
else:
hi = mid
return (lo + hi) / 2
print(f"Premiums paid: {PAYING} × {inr(PREMIUM)} = {inr(PREMIUM * PAYING)}")
for scenario, maturity in MATURITY.items():
rate = irr(maturity)
print(f" illustrated at {scenario} gross: {inr(maturity)} at the end of year {TERM}; internal return {rate * 100:.2f} % a year")
print()
print("Leaving early: the minimum guaranteed surrender value")
SCHEDULE = [(2, Decimal("0.30")), (3, Decimal("0.35")), (5, Decimal("0.50")), (7, Decimal("0.50"))]
for year, share in SCHEDULE:
paid = PREMIUM * min(year, PAYING)
print(f" surrendered in year {year}: {share * 100:.0f} % of {inr(paid)} paid = {inr(paid * share)}")
paid = PREMIUM * PAYING
print(f" surrendered in year 19 or 20: 90 % of {inr(paid)} paid = {inr(paid * Decimal('0.90'))}")
print()
print("Cover in the meantime: the sum assured or 105 % of the premiums paid, whichever is higher")
for year in (1, 5, 10, 15):
cover = max(ASSURED, PREMIUM * year * Decimal("1.05"))
print(f" year {year:>2}: {inr(cover)}") Output
Premiums paid: 15 × ₹50,000 = ₹7,50,000 illustrated at 4 % gross: ₹10,00,000 at the end of year 20; internal return 2.20 % a year illustrated at 8 % gross: ₹13,50,000 at the end of year 20; internal return 4.48 % a year Leaving early: the minimum guaranteed surrender value surrendered in year 2: 30 % of ₹1,00,000 paid = ₹30,000 surrendered in year 3: 35 % of ₹1,50,000 paid = ₹52,500 surrendered in year 5: 50 % of ₹2,50,000 paid = ₹1,25,000 surrendered in year 7: 50 % of ₹3,50,000 paid = ₹1,75,000 surrendered in year 19 or 20: 90 % of ₹7,50,000 paid = ₹6,75,000 Cover in the meantime: the sum assured or 105 % of the premiums paid, whichever is higher year 1: ₹5,00,000 year 5: ₹5,00,000 year 10: ₹5,25,000 year 15: ₹7,87,500
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 illustration.py
₹7,50,000 of premiums becoming ₹10,00,000 after 20 years is 2.20 % a year, and ₹13,50,000 is 4.48 %. Leaving early costs more: IRDAI’s minimum guaranteed surrender value: What a life policy pays if it is ended before its term. The regulations set a minimum guaranteed value, from 30 % of the premiums paid in year 2, and the insurer's special surrender value may be higher. is 30 % of the premiums paid in year 2, 35 % in year 3 and 50 % in years 4 to 7, rising to 90 % in the last two years, though an insurer’s special surrender value may be higher. Meanwhile the cover is the sum assured or 105 % of the premiums paid, whichever is higher: ₹7,87,500 at most.
Ask for the illustration, then find its rate
Put the premium years and the illustrated maturity values into an IRR calculation, as the program does. Compare the rate with what you could earn elsewhere at the same risk, after tax, before you sign.
Checkpoint
Check: The yearly return in a savings-plan illustration
Term cover and saving the difference, with the assumptions written down
The fair comparison spends the same money both ways. Plan A is the savings plan, ₹50,000 a year for 15 years. Plan B buys ₹60 lakh of term cover to age 60 for an invented ₹11,000 a year and puts the other ₹39,000 into a deposit in the same 15 years; in years 16 to 20 the deposit pays the term premium, so both plans take exactly the same rupees from Meera. The deposit’s return is an assumption, so the program shows two:
"""The same ₹50,000 a year two ways: the invented savings plan, or term cover with the rest saved.
Plan A is the savings plan of illustration.py: ₹50,000 a year for 15 years, cover of ₹5,00,000 or 105 % of the
premiums paid, and ₹10,00,000 (illustrated at 4 %) or ₹13,50,000 (at 8 %) at the end of year 20.
Plan B buys term cover of ₹60,00,000 to age 60 for an invented ₹11,000 a year and puts the other ₹39,000 into a
deposit at the start of each of the same 15 years; in years 16 to 20 the deposit pays the term premium, so both plans
take exactly the same money from Meera. The deposit's yearly return is an assumption, shown at 4 % and at 7 %.
Nothing here is a recommendation of any product.
"""
from decimal import ROUND_HALF_UP, Decimal
TERM_PREMIUM, SAVE, PAYING, YEARS = Decimal(11000), Decimal(39000), 15, 20
COVER = Decimal(6000000)
def inr(amount):
value = Decimal(amount).quantize(Decimal("1"), rounding=ROUND_HALF_UP)
whole = str(abs(value))
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 deposit_path(rate):
"""The deposit at the end of each year: money in at the start of the year, then a year's growth."""
balance, path = Decimal(0), []
for year in range(1, YEARS + 1):
balance += SAVE if year <= PAYING else -TERM_PREMIUM
balance *= 1 + rate
path.append(balance)
return path
print("Plan A, the savings plan: cover ₹5,00,000 to ₹7,87,500; at year 20, ₹10,00,000 at 4 % or ₹13,50,000 at 8 %")
print()
for label, rate in (("4 %", Decimal("0.04")), ("7 %", Decimal("0.07"))):
path = deposit_path(rate)
print(f"Plan B with the deposit at an assumed {label} a year:")
for year in (1, 5, 10, 15, 20):
print(f" end of year {year:>2}: deposit {inr(path[year - 1])}; if Meera died that year, {inr(COVER + path[year - 1])} in all")
print()
print("From year 21 to age 60, Plan B's term cover still costs ₹11,000 a year; Plan A has ended.") Output
Plan A, the savings plan: cover ₹5,00,000 to ₹7,87,500; at year 20, ₹10,00,000 at 4 % or ₹13,50,000 at 8 % Plan B with the deposit at an assumed 4 % a year: end of year 1: deposit ₹40,560; if Meera died that year, ₹60,40,560 in all end of year 5: deposit ₹2,19,686; if Meera died that year, ₹62,19,686 in all end of year 10: deposit ₹4,86,968; if Meera died that year, ₹64,86,968 in all end of year 15: deposit ₹8,12,157; if Meera died that year, ₹68,12,157 in all end of year 20: deposit ₹9,26,150; if Meera died that year, ₹69,26,150 in all Plan B with the deposit at an assumed 7 % a year: end of year 1: deposit ₹41,730; if Meera died that year, ₹60,41,730 in all end of year 5: deposit ₹2,39,978; if Meera died that year, ₹62,39,978 in all end of year 10: deposit ₹5,76,560; if Meera died that year, ₹65,76,560 in all end of year 15: deposit ₹10,48,634; if Meera died that year, ₹70,48,634 in all end of year 20: deposit ₹14,03,077; if Meera died that year, ₹74,03,077 in all From year 21 to age 60, Plan B's term cover still costs ₹11,000 a year; Plan A has ended.
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 term_and_save.py
The results cut both ways. At an assumed 4 % the deposit ends year 20 at ₹9,26,150, below the plan’s ₹10,00,000 at its 4 % illustration; at 7 % it ends at ₹14,03,077, above the plan’s ₹13,50,000 at 8 %. The deposit’s interest is taxed every year, which lowers its result, while the plan’s maturity may be tax-free, as the next section shows. What the numbers never change is the cover: had Meera died in year 5, Plan A paid ₹5,00,000 and Plan B more than ₹62 lakh. Answer three questions about your own case:
Answer the questions above: the table then marks what fits your case and says why the rest does not.
| Plan | If she dies in year 5 | Money at year 20 | If she stops in year 5 |
|---|---|---|---|
| The savings plan The ₹50,000 buys: ₹5,00,000 of cover and a maturity value | Poor ₹5,00,000, about a twelfth of the ₹61 lakh her family needs | Mixed ₹10,00,000 at 4 % or ₹13,50,000 at 8 %: 2.20 % to 4.48 % a year | Poor at least ₹1,25,000 back of ₹2,50,000 paid |
| Term cover and a deposit The ₹50,000 buys: ₹60 lakh of cover; ₹39,000 a year saved | Good ₹60 lakh plus the deposit, ₹62.2 lakh to ₹62.4 lakh | Mixed ₹9,26,150 at 4 % or ₹14,03,077 at 7 %, before tax on the interest | Good the deposit, ₹2,19,686 to ₹2,39,978, is hers |
| Term cover alone The ₹50,000 buys: ₹60 lakh of cover; the rest spent | Good ₹60 lakh | Poor nothing saved | Mixed nothing to collect; the cover simply ends |
How the answers decide
- “Does anyone depend on your income, a child, a partner or a parent?” Yes: adds a caveat to The savings plan. Its ₹5,00,000 of cover is far below what a dependant family needs, ₹61 lakh in Meera's case; it would need term cover beside it.
- “Does anyone depend on your income, a child, a partner or a parent?” No one yet: adds a caveat to Term cover alone and Term cover and a deposit. With no one depending on your income, a life payout protects no one yet; saving is what counts until someone does.
- “Will you put the same amount aside every year without a contract that makes you?” I am not sure: adds a caveat to Term cover and a deposit. The deposit reaches its numbers only if the ₹39,000 goes in every year; a standing instruction does what a contract would.
- “Might you need the money before the 20 years are up?” Possibly: rules out The savings plan. Leaving the savings plan in years 2 to 7 returns as little as 30 % to 50 % of the premiums paid.
In short: with dependants, a savings plan’s cover is far below their needs and term cover is what protects them; saving the difference works only if the money goes in every year; and anyone who may need the money early gives up half or more of it by surrendering a savings plan in its first years.
Checkpoint
Check: Term cover and saving the difference
Death proceeds are tax-free; a maturity value must pass two tests
The Income-tax Act, 2025 treats the two ways a life policy pays very differently. Schedule II (Table: Sl. No. 2) leaves any sum received on the death of the insured out of total income. A maturity value, or any other payout, is left out only if the policy passes its tests, and for a non-linked policy issued in FY 2023-24 or later there are two: a premium of at most 10 % of the actual capital sum assured, or 15 % for a special policy such as one on a person with a disability, and premiums of all such policies of at most ₹5,00,000 in any tax year of their terms. For a unit-linked policy the second limit is ₹2,50,000. Follow a policy that fails the first test:
The drawing shows the whole scene; its 6 steps are listed below.
Every step as text
- On death, always exempt. A payout received on the death of the insured is left out of total income, whatever the premium or the sum assured. Plan 2 is paying its maturity value instead, so the tests go on.
- Not a keyman policy. A keyman policy, one a business takes on someone who works for it, is always taxed. Plan 2 is Meera's own policy.
- The ratio test. Plan 2's premium is ₹50,000 against a sum assured of ₹4,00,000: 12.5 %, above the 10 % limit for a policy issued from FY 2012-13 on, or 15 % for a special policy.
- Fails, so taxed. The maturity of ₹10,00,000 is taxed on what exceeds the ₹7,50,000 of premiums paid and not deducted, ₹2,50,000, as income from other sources at her slab rate.
- Tax deducted first. The payout is above ₹1,00,000, so the insurer deducts tax at 2 % of the ₹2,50,000 of income, ₹5,000, and pays her the rest. It counts towards her tax for the year.
- The other route. Plan 1, with a premium of exactly 10 % and premiums under ₹5,00,000 a year, passes both tests, so its ₹10,00,000 is left out of income, with no tax deducted.
The program applies the tests to three invented policies:
"""Is a life policy's payout taxed? Three invented non-linked policies, under the Income-tax Act, 2025.
Schedule II (Table: Sl. No. 2) leaves a payout out of total income when it is received on death, and otherwise only
when the policy passes its conditions; for a non-linked policy issued in FY 2023-24 or later: a premium of at most
10 % of the actual capital sum assured (15 % for a special policy), and premiums of all such policies of at most
₹5,00,000 in any tax year of their terms. A payout that fails is taxed under section 92(2)(l) on the amount above the
premiums paid and not claimed as a deduction, and the insurer deducts tax at 2 % of that income when the payout is
above ₹1,00,000 (section 393(1), Table: Sl. No. 8(i)). All three policyholders here claimed no deduction.
"""
from decimal import ROUND_HALF_UP, Decimal
POLICIES = [
# name, yearly premium, sum assured, years paid, maturity value, premiums of all such policies in a year
("Plan 1", Decimal(50000), Decimal(500000), 15, Decimal(1000000), Decimal(50000)),
("Plan 2", Decimal(50000), Decimal(400000), 15, Decimal(1000000), Decimal(50000)),
("Plan 3", Decimal(300000), Decimal(3000000), 10, Decimal(4200000), Decimal(600000)),
]
def inr(amount):
value = Decimal(amount).quantize(Decimal("1"), rounding=ROUND_HALF_UP)
whole = str(abs(value))
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)
for name, premium, assured, years, maturity, all_premiums in POLICIES:
ratio = premium / assured
fails = []
if ratio > Decimal("0.10"):
fails.append(f"premium is {ratio * 100:.1f} % of the sum assured, above 10 %")
if all_premiums > Decimal(500000):
fails.append(f"premiums of all such policies are {inr(all_premiums)} a year, above ₹5,00,000")
print(f"{name}: {inr(premium)} a year for {years} years, sum assured {inr(assured)}, maturity {inr(maturity)}")
if not fails:
print(" passes both tests: the maturity value is left out of total income")
else:
income = maturity - premium * years
tds = income * Decimal("0.02") if maturity > Decimal(100000) else Decimal(0)
print(f" fails: {'; '.join(fails)}")
print(f" taxable: {inr(maturity)} − {inr(premium * years)} of premiums = {inr(income)}; TDS at 2 % = {inr(tds)}")
print(" paid on death instead, the whole amount is left out of total income")
print() Output
Plan 1: ₹50,000 a year for 15 years, sum assured ₹5,00,000, maturity ₹10,00,000 passes both tests: the maturity value is left out of total income paid on death instead, the whole amount is left out of total income Plan 2: ₹50,000 a year for 15 years, sum assured ₹4,00,000, maturity ₹10,00,000 fails: premium is 12.5 % of the sum assured, above 10 % taxable: ₹10,00,000 − ₹7,50,000 of premiums = ₹2,50,000; TDS at 2 % = ₹5,000 paid on death instead, the whole amount is left out of total income Plan 3: ₹3,00,000 a year for 10 years, sum assured ₹30,00,000, maturity ₹42,00,000 fails: premiums of all such policies are ₹6,00,000 a year, above ₹5,00,000 taxable: ₹42,00,000 − ₹30,00,000 of premiums = ₹12,00,000; TDS at 2 % = ₹24,000 paid on death instead, the whole amount is left out of total income
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 maturity_tax.py
Plan 1, at exactly 10 %, is tax-free. Plan 2’s premium is 12.5 % of its sum assured, so its ₹2,50,000 above the premiums paid is income from other sources under section 92(2)(l), and the insurer deducts tax at 2 % of that income, ₹5,000, under section 393(1). Plan 3 passes the ratio but its holder pays ₹6,00,000 a year across such policies, so ₹12,00,000 is taxed. Paid on death instead, all three would be tax-free. Premiums bring their own rule in the old regime: they count within section 123’s ₹1,50,000 only up to 10 % of the actual capital sum assured (Schedule XV, paragraph 2), and premiums deducted that way are not subtracted again when a payout is taxed.
Why a term plan is simple here
A term plan has no maturity value, so the tests rarely matter for it: its payout comes on death, and a death payout is always left out of income.
Checkpoint
Check: Tax on premiums, maturity and death proceeds
Practise: cover, plans, returns and tax
From the needs method to the tax tests, the five ideas return one question at a time, led by the one you have found hardest so far. Every plan in them is invented:
Practice that adapts to you
Practise this lesson
11 questions about 5 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.
Find the rate in an illustration you hold
If you have a savings plan, or have been offered one, take its benefit illustration, list the premiums by year and the maturity value at 4 % and at 8 %, and work out the internal rate of return of each. Then write down your family’s needs by the method of the first section.
Interview questions
Warm-up (fresher): Why is a term plan’s premium so much lower than a savings plan’s for the same cover?
A term plan pays only if the insured dies within the term, and nothing if they outlive it, so its premium pays for the risk of death alone. A savings plan, an endowment or a unit-linked plan, also builds a value it must pay back at maturity or on surrender, so most of its premium is saving, with the insurer’s costs taken out along the way. In the lesson’s invented case, ₹50,000 a year buys ₹5,00,000 of cover in a savings plan, while ₹11,000 a year buys ₹60 lakh of term cover. The savings part can be judged by its own return: ₹7,50,000 of premiums becoming ₹10,00,000 in 20 years is 2.20 % a year.
Warm-up (fresher): When is the maturity amount of a life insurance policy tax-free?
Under Schedule II (Table: Sl. No. 2) of the Income-tax Act, 2025, a sum received on the insured’s death is always left out of income. A maturity value is left out only if the policy passes its tests: for a non-linked policy issued in FY 2023-24 or later, a premium of at most 10 % of the actual capital sum assured, or 15 % for a special policy, and premiums of all such policies of at most ₹5,00,000 in any tax year, ₹2,50,000 for unit-linked policies. A non-linked payout that fails is taxed on the amount above the premiums paid and not deducted, and the insurer deducts tax at 2 % of that income on payouts above ₹1,00,000.
Key takeaways
- Life cover replaces income someone depends on: the needs method adds living costs, loans and goals and subtracts savings and existing cover, ₹61,33,388 for Meera’s family against ₹52 lakh in its simplest form.
- A term plan pays only on death within its term, so compare the term, the sum assured, the premium span, the riders, the exclusions and the claim rules, and answer the proposal honestly.
- A savings plan’s illustration shows values at 4 % and 8 %, not a rate on your premiums: ₹7,50,000 becoming ₹10,00,000 in 20 years is 2.20 % a year, and surrendering in years 4 to 7 can return half of what was paid.
- Spending the same money on term cover and a deposit gives far more cover throughout, and more or less money at the end depending on the return assumed and the tax on it.
- Death proceeds are tax-free; a maturity value is tax-free only within the 10 % premium ratio and the ₹5,00,000 yearly limit, and a taxed payout carries TDS of 2 % of its income.
Terms in this lesson
- benefit illustration
- A document a life insurer must give before selling a policy with savings, showing its benefits year by year at assumed gross returns of 4 % and 8 %, signed by the buyer and the seller.
- human life value
- The present value of what a person's income adds to the family until retirement: income after tax less their own spending, rising and discounted. It is the most life cover could replace.
- needs method
- A way to size life cover: the family's living costs for the years it needs support, plus loans and goals, less savings and the cover already in place.
- surrender value
- What a life policy pays if it is ended before its term. The regulations set a minimum guaranteed value, from 30 % of the premiums paid in year 2, and the insurer's special surrender value may be higher.
- term insurance
- Life insurance that pays its sum assured if the insured dies within the term and nothing if they outlive it. With no saving inside, its premium buys cover alone.
References
- IRDAI (Insurance Products) Regulations, 2024 (Schedule I: life insurance products, minimum sum assured and surrender values) (Insurance Regulatory and Development Authority of India)
- Master Circular on Protection of Policyholders' Interests, 2024 (life insurance: benefit illustrations, claims and their timelines) (Insurance Regulatory and Development Authority of India)
- IRDAI (Protection of Policyholder's Interests, Operations and Allied Matters of Insurers) Regulations, 2024 (regulations 18 and 20) (Insurance Regulatory and Development Authority of India)
- The Income-tax Act, 2025 (sections 92(2)(l), 123 and 393(1); Schedule II, Sl. No. 2; Schedule XV, paragraph 2) (Ministry of Law and Justice (Legislative Department))
- Pradhan Mantri Jeevan Jyoti Bima Yojana (PMJJBY) (Department of Financial Services, Ministry of Finance)
- EPFO FAQs for members (EDLI) (Employees' Provident Fund Organisation, Ministry of Labour and Employment)
- Frequently asked questions about the Insurance Ombudsman (Council for Insurance Ombudsmen)
Related tools
Report a problem with this lesson
Kept only in this browser. Your Learn progress