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 2 – Your first salary: offer, payslip and benefits

EPF, EPS and VPF: your provident fund

Where the 24 % of PF wages goes, who must join, how EPF interest is worked out, what EPS pays, and how VPF, interest and withdrawals are taxed.

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

What you will learn

  • Split a month's PF contributions between EPF, EPS and the employer's charges
  • Decide whether EPF and EPS membership is required at a given wage
  • Calculate a year's EPF interest on a monthly running balance
  • Calculate an EPS pension, or the withdrawal benefit for leaving early
  • Apply the tax rules on PF contributions, interest, VPF and withdrawals

Before you start

What you’ll learn · Before you start

What you will learn

  • Split a month's PF contributions between EPF, EPS and the employer's charges
  • Decide whether EPF and EPS membership is required at a given wage
  • Calculate a year's EPF interest on a monthly running balance
  • Calculate an EPS pension, or the withdrawal benefit for leaving early
  • Apply the tax rules on PF contributions, interest, VPF and withdrawals

Before you start

On this page

Asha’s payslip takes ₹3,000 a month for her PF, and her employer adds ₹3,000 more. Of that ₹6,000, only ₹3,917 reaches her savings account at EPFO, and by 58, if the rate stayed at 8.25 %, it could grow to ₹96,70,057, more than four fifths of it interest.

Below you will follow the 24 % of PF wages to the three places it goes, see who must join and on what pay, work out interest the way EPFO does, compute the pension that EPS pays and what it returns to someone who leaves early, and apply the tax rules to contributions, interest, VPF and withdrawals. This lesson is education only. It sets out how the schemes work and what their rules pay or cost, and leaves every choice about your own savings to you.

Your 24 per cent goes to three places

Each month you pay 12 % of your PF wages, and your employer pays 12 % too, as EPFO’s guidance on the wage ceiling: The monthly PF wages, ₹25,000, up to which EPF, EPS and EDLI membership is required. Contributions on wages above it may be worked out on the ceiling instead. sets out. Your whole share goes into your Employees' Provident Fund (EPF): The savings account EPFO keeps for each member: 12 % of PF wages from the employee and the part of the employer's 12 % that does not go to the pension scheme, with interest declared for each year. account. Your employer’s share is split: 8.33 % of your wages, counted only up to ₹25,000 and rounded to the rupee, goes to the Employees' Pension Scheme (EPS): EPFO's pension scheme, funded by 8.33 % of PF wages up to the ceiling out of the employer's contribution. It pays a monthly pension from 58 to members with at least 10 years of service., and the rest joins your EPF account. On top of the 12 %, the employer pays 0.5 % of wages for Employees' Deposit Linked Insurance (EDLI): EPFO's life cover for members, paid for by the employer at 0.5 % of wages. It pays the family up to ₹7 lakh if the member dies while still in service. More in “Gratuity, group insurance and other benefits”, the life cover of members, and 0.5 % of administration charges. Step through one month at Asha’s wages of ₹25,000:

Interactive · step by step Where one month's PF goes at wages of ₹25,000 Step through who pays what and where each part ends up. The sub-labels carry the month's amounts.
Where one month's PF goes at wages of ₹25,000, step 5 of 5. Showing Your 12 %, Employer's 12 %, Employer's charges, Your EPF account (₹3,917 a month), Pension scheme (EPS) (₹2,083 a month), Cover and running costs. In focus: Your EPF account, Pension scheme (EPS).Your 12 %₹3,000 from your payEmployer's 12 %₹3,000 on top of payEmployer's charges₹250: EDLI and adminYour EPF account₹3,917 a monthPension scheme (EPS)₹2,083 a monthCover and running costsnever credited to you

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

Every step as text
  1. Your share. You pay 12 % of your PF wages. At ₹25,000 that is ₹3,000, deducted from your pay, and all of it goes to your EPF account.
  2. The pension share. Your employer pays 12 % too. Out of it, 8.33 % of your wages, counted only up to the ₹25,000 ceiling, goes to the pension scheme. At ₹25,000 that is ₹2,083, rounded to the rupee.
  3. The rest to EPF. The rest of the employer's 12 %, ₹917, joins your ₹3,000 in your EPF account. So ₹3,917 a month earns interest in your name.
  4. The charges. The employer also pays 0.5 % of wages for EDLI, the life cover of members, and 0.5 % of administration charges, ₹250 in all. None of it is credited to you.
  5. The month in all. Your employer spends ₹3,250 on this month's PF, and you ₹3,000. Of the ₹6,250, ₹3,917 builds your savings, ₹2,083 your pension and ₹250 pays for cover and running costs.

The program works out the same split at five PF wages: four rows of EPFO’s own table, and a member in EPS whose wages have passed the ceiling:

One month's PF at five PF wages Python · epf_split.py
"""Where one month's PF contributions go, at five PF wages, as EPFO's wage-ceiling FAQs work them out.

You pay 12 % of your PF wages; your employer pays 12 % too, of which 8.33 % of the wages (counted only up to the
Rs 25,000 ceiling, rounded to the rupee) goes to the pension scheme (EPS) and the rest to your EPF account. Above the
ceiling, contributions may be restricted to it. A member who joined with wages above the ceiling is not in EPS, so the
employer's whole 12 % goes to EPF. The employer also pays 0.5 % for EDLI insurance and 0.5 % of administration charges,
which are not credited to you. The five rows are invented members.
"""

from decimal import ROUND_HALF_UP, Decimal

D = Decimal
CEILING = D(25000)


def inr(amount):
    value = D(amount).quantize(D("1"), rounding=ROUND_HALF_UP)
    digits = str(abs(value))
    head, tail = digits[:-3], digits[-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 rupees(x):
    return x.quantize(D("1"), rounding=ROUND_HALF_UP)


def month(pf_wages, in_eps=True):
    wages = min(D(pf_wages), CEILING)  # contributions restricted to the ceiling
    yours = rupees(wages * D("0.12"))
    employer = rupees(wages * D("0.12"))
    eps = rupees(wages * D("0.0833")) if in_eps else D(0)
    charges = rupees(wages * D("0.005")) * 2  # EDLI and administration, 0.5 % each
    return yours, eps, employer - eps, charges


ROWS = [("₹10,000", 10000, True), ("₹20,000", 20000, True), ("₹25,000", 25000, True), ("₹35,000, in EPS", 35000, True), ("₹35,000, no EPS", 35000, False)]
print(f"{'PF wages':<17}{'Yours':>7}{'EPS':>8}{'Employer':>10}{'Into EPF':>10}{'Charges':>9}")
for label, wages, in_eps in ROWS:
    yours, eps, employer_epf, charges = month(wages, in_eps)
    print(f"{label:<17}{inr(yours):>7}{inr(eps):>8}{inr(employer_epf):>10}{inr(yours + employer_epf):>10}{inr(charges):>9}")
print()
print("Employer: the part of the employer's 12 % that goes to EPF.")
print("Into EPF: what your EPF account receives, your share plus that part.")
print("Charges: EDLI and administration, paid by the employer, never yours.")
yours, eps, employer_epf, charges = month(25000)
print(f"At ₹25,000 the employer pays {inr(yours + charges)} a month in all: {inr(eps)} buys")
print(f"pension, {inr(employer_epf)} joins your {inr(yours)} in EPF, {inr(charges)} pays charges.")

Output

PF wages           Yours     EPS  Employer  Into EPF  Charges
₹10,000           ₹1,200    ₹833      ₹367    ₹1,567     ₹100
₹20,000           ₹2,400  ₹1,666      ₹734    ₹3,134     ₹200
₹25,000           ₹3,000  ₹2,083      ₹917    ₹3,917     ₹250
₹35,000, in EPS   ₹3,000  ₹2,083      ₹917    ₹3,917     ₹250
₹35,000, no EPS   ₹3,000      ₹0    ₹3,000    ₹6,000     ₹250

Employer: the part of the employer's 12 % that goes to EPF.
Into EPF: what your EPF account receives, your share plus that part.
Charges: EDLI and administration, paid by the employer, never yours.
At ₹25,000 the employer pays ₹3,250 a month in all: ₹2,083 buys
pension, ₹917 joins your ₹3,000 in EPF, ₹250 pays charges.

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

Two things stand out. The pension share stops growing at the ceiling: at ₹35,000, contributions restricted to the ceiling put the same ₹3,917 into EPF as at ₹25,000. And the last row shows a member who is not in EPS at all, whose employer’s whole 12 % goes to EPF, ₹6,000 a month into the account instead of ₹3,917.

Reading the passbook's EPF balance as all of your PF

Wrong: “₹6,000 goes in every month, so my balance should grow by ₹6,000”. Right: “₹3,917 goes to my EPF account and ₹2,083 to my pension”. The pension share never appears in the EPF balance; it buys a pension instead.

EPF Calculator (India) Project an EPF balance to retirement from your PF wages, with the EPS split and the ₹25,000 ceiling.

Checkpoint

Check: Where the 24 % of PF wages goes

  1. Question 1 of 2 At PF wages of ₹20,000 a month, how many rupees of the employer's 12 % go into the member's EPF account?

    Type a number.

    A hint

    Take the pension share, 8.33 % of the wages rounded to the rupee, out of the employer's 12 %.

    Show the answer: Question 1 of 2

    Answer: 734 rupees a month

    The employer pays 12 % of ₹20,000 = ₹2,400. 8.33 % of ₹20,000 = ₹1,666 goes to the pension scheme, so ₹734 goes to EPF, the figure in EPFO's own table.

  2. Question 2 of 2 Which part of what the employer pays for PF is never credited to the member?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: The 0.5 % for EDLI and the 0.5 % of administration charges

    At wages of ₹25,000 the employer pays ₹3,250: ₹2,083 for the pension, ₹917 into EPF and ₹250 of charges that buy cover and running costs.

The wage ceiling decides who must join, and on what pay

The ₹25,000 ceiling was raised from ₹15,000 by notification S.O. 5109(E) under the Code on Social Security, 2020, and it does two jobs. It decides who must join, and it caps the wages that contributions may be worked out on. Both apply in an establishment that the provident fund chapter covers, which the Code’s First Schedule sets at twenty or more employees. Step through four cases at joining:

Interactive · step by step Four cases at joining, and the PF membership each brings Step through the cases. Each one pairs PF wages at joining with the membership that follows.
Four cases at joining, and the PF membership each brings, step 5 of 5. Showing Wages ₹25,000 or less, Above ₹25,000, new, Above ₹25,000, member, Wages rise past it later, EPF, EPS and EDLI, EPF by choice, Stays an EPF member, Membership continues. In focus: EPF, EPS and EDLI, Stays an EPF member.Wages ₹25,000 or lessat the date of joiningAbove ₹25,000, newnever a member beforeAbove ₹25,000, memberfrom an earlier jobWages rise past it lateralready in the schemesEPF, EPS and EDLImembership requiredEPF by choicewith the employer's consentStays an EPF memberEPS only if joined it beforeMembership continuescontributions may be capped

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

Every step as text
  1. Within the ceiling. PF wages of ₹25,000 a month or less at joining make membership of EPF, EPS and EDLI a requirement in an establishment the scheme covers. Asha, at exactly ₹25,000, is in all three.
  2. Above it, first job. Someone new to EPF whose PF wages are above ₹25,000 is not required to join. EPFO's guidance says such an employee can choose to join EPF, with the employer's consent.
  3. Above it, already a member. A member from an earlier job stays a member in the next one, whatever the new wages. EPS membership, though, is open only to those whose wages were within the ceiling when they joined, so a member who never joined EPS gets the employer's whole 12 % in EPF.
  4. Wages rise later. A member whose wages rise past ₹25,000 stays in the schemes. Contributions above the ceiling may be restricted to it, ₹3,000 a month on each side, unless the employer and member contribute on higher wages under the scheme's rules.
  5. Which employers. All of this applies in an establishment that EPF covers. The Code on Social Security applies the provident fund chapter to establishments with twenty or more employees.

The cases come straight from EPFO’s guidance. PF wages of ₹25,000 or less make EPF, EPS and EDLI membership a requirement, as for Asha. Someone new to EPF above the ceiling is not required to join, and may join EPF with the employer’s consent. A member stays a member in every later job, and when wages rise past the ceiling, contributions may be restricted to it, ₹3,000 a month on each side, unless employer and member contribute on higher wages under the scheme’s rules.

The case that surprises people is EPS. Its membership is open only to employees whose wages were within the ceiling when they joined, so a first job that starts above ₹25,000 and is joined voluntarily brings EPF without EPS. In the month the ceiling rose, contributions were worked out at the old and the new ceiling for the days each applied.

PF wages are not your gross pay

The ceiling is compared with your PF wages, not with your gross pay. EPFO’s guidance gives the example of a gross pay of ₹50,000 with PF wages of ₹25,000: membership of all three schemes is required.

Checkpoint

Check: Who must join EPF and EPS

  1. Question 1 of 2 Divya starts her first job, in an establishment that EPF covers, with PF wages of ₹30,000 a month. Must she become an EPF member?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: No; above the ₹25,000 ceiling it is not required, though she may join EPF with her employer's consent

    The ₹25,000 ceiling sets who must join. Above it, a person new to EPF chooses, and needs the employer to agree, because the employer then pays its 12 % too.

  2. Question 2 of 2 Rohan joined EPF voluntarily in his first job, with PF wages above the ceiling, so he is not in EPS. His employer contributes on the ₹25,000 ceiling. Where does the employer's ₹3,000 a month go?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: All of it to his EPF account

    EPFO's table shows a member above the ceiling who is not in EPS: the employee's ₹3,000 and the employer's ₹3,000 both go to EPF, ₹6,000 a month in all.

Interest is worked out monthly and added once a year

EPFO credits compound interest on the monthly running balance, at the rate declared for each year, and its guidance gives 8.25 % for FY 2025-26. In practice that means three things. Each month earns a twelfth of the year’s rate on the balance at the start of that month. A month’s contribution, credited at its end, earns from the next month. And the year’s interest is added only at the year’s end, so inside a year interest does not earn interest. The program works Asha’s first year month by month, then follows her balance to 58:

EPF interest, month by month and to 58 Python · epf_interest.py
"""How EPF interest is worked out: a monthly running balance, interest credited once a year, then to age 58.

EPFO credits interest "on monthly running balance basis at the statutory rate declared for each year": each month
earns the year's rate / 12 on the balance at the start of that month, and the year's interest is added at its end.
A month's contribution is credited at the month's end, so it earns interest from the next month. Asha (invented)
joins at 22 at the start of a tax year, on PF wages of Rs 25,000 that never change, so Rs 3,917 reaches her EPF account
every month (her Rs 3,000 and the employer's Rs 917). 8.25 % is the rate declared for FY 2025-26; the later rates are
assumptions, because each year's rate is declared for that year only.
"""

from decimal import ROUND_HALF_UP, Decimal

D = Decimal
MONTHLY = D(3917)


def inr(amount, places="1"):
    value = D(amount).quantize(D(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)
    return "₹" + (",".join(groups + [tail]) if groups else tail) + ("." + paise if paise else "")


def grow(years, rate, show_first_year=False):
    """The balance after `years` years of Rs 3,917 a month, interest credited at each year's end."""
    balance = D(0)
    monthly_rate = D(rate) / 100 / 12
    for year in range(years):
        interest = D(0)
        for month in range(1, 13):
            earned = balance * monthly_rate  # on the balance at the start of the month
            interest += earned
            balance += MONTHLY
            if show_first_year and year == 0 and month in (1, 2, 3, 12):
                print(f"  Month {month:>2}: interest on {inr(balance - MONTHLY):>8} is {inr(earned, '0.01'):>9}; then {inr(MONTHLY)} is credited")
        balance += interest
        if show_first_year and year == 0:
            print(f"  Year's interest, added at its end: {inr(interest, '0.01')}; balance {inr(balance, '0.01')}")
    return balance


print("Part 1: the first year at 8.25 %")
grow(1, "8.25", show_first_year=True)
print()
print("Part 2: Asha's EPF balance at each age, if 8.25 % held every year")
paid_a_year = 12 * MONTHLY
for age in (25, 30, 40, 50, 58):
    years = age - 22
    balance = grow(years, "8.25")
    paid = paid_a_year * years
    print(f"  At {age}: {inr(balance):>11}, of which paid in {inr(paid):>10} and interest {inr(balance - paid):>11}")
print()
print("Part 3: the same 36 years at other assumed rates")
for rate in ("7.25", "8.25", "9.25"):
    print(f"  {rate} % every year: {inr(grow(36, rate)):>11}")

Output

Part 1: the first year at 8.25 %
  Month  1: interest on       ₹0 is     ₹0.00; then ₹3,917 is credited
  Month  2: interest on   ₹3,917 is    ₹26.93; then ₹3,917 is credited
  Month  3: interest on   ₹7,834 is    ₹53.86; then ₹3,917 is credited
  Month 12: interest on  ₹43,087 is   ₹296.22; then ₹3,917 is credited
  Year's interest, added at its end: ₹1,777.34; balance ₹48,781.34

Part 2: Asha's EPF balance at each age, if 8.25 % held every year
  At 25:   ₹1,58,749, of which paid in  ₹1,41,012 and interest     ₹17,737
  At 30:   ₹5,23,578, of which paid in  ₹3,76,032 and interest   ₹1,47,546
  At 40:  ₹18,71,925, of which paid in  ₹8,46,072 and interest  ₹10,25,853
  At 50:  ₹48,50,994, of which paid in ₹13,16,112 and interest  ₹35,34,882
  At 58:  ₹96,70,057, of which paid in ₹16,92,144 and interest  ₹79,77,913

Part 3: the same 36 years at other assumed rates
  7.25 % every year:  ₹76,53,440
  8.25 % every year:  ₹96,70,057
  9.25 % every year: ₹1,22,69,946

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

Her first year earns ₹1,777.34, almost nothing beside the ₹47,004 paid in. The later rows tell a different story. At 58 her balance is ₹96,70,057, of which she and her employer paid in ₹16,92,144; the other ₹79,77,913, about 82.5 %, is interest. The last part shows why the assumption matters: a point less every year gives ₹76,53,440, a point more ₹1,22,69,946.

Key idea

EPF interest is a twelfth of the year’s rate on each month’s opening balance, added at the year’s end; over 36 years that slow arithmetic makes interest most of the balance, so the rate assumed for future years decides most of any projection.

Checkpoint

Check: How EPF interest is worked out

  1. Question 1 of 2 Asha's EPF starts from nothing and ₹3,917 is credited at the end of each month for a year, at 8.25 %. Each month earns 8.25 % ÷ 12 on the balance at its start. What is the year's interest, to the nearest rupee?

    Type a number.

    A hint

    The opening balances of the twelve months add up to ₹3,917 × (0 + 1 + … + 11).

    Show the answer: Question 1 of 2

    Answer: 1777 rupees (anything from 1776 to 1778 counts)

    The opening balances add up to ₹3,917 × 66 = ₹2,58,522, and 0.6875 % of that is ₹1,777.34, credited at the year's end. Her balance after the first year is ₹48,781.34.

  2. Question 2 of 2 How does EPFO work out and credit interest on an EPF account?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: Monthly, on the running balance, at the rate declared for the year, and added to the balance at the year's end

    Monthly working with a yearly credit means each month earns a twelfth of the rate on its opening balance, and the year's total joins the balance, so it earns interest from the next year on.

EPS pays a pension from 58, or about what went in if you leave early

The pension share builds a pension, not a balance. EPS works it out with one formula: pensionable salary, the average pay of the last 60 months counted up to the ceiling, times pensionable service, divided by 70. A pension needs at least 10 years of eligible service; a member who reaches 58 with 20 years or more gets 2 years of weightage added; the pension can start early, from 50, cut by 4 % for every year short of 58; and the scheme sets a floor of ₹1,000 a month for a member entitled to a pension. Step through what EPS gives at each length of service:

Interactive · step by step What EPS gives a member, by years of service Step through the cases from shortest service to longest. The sub-labels carry Asha's amounts at wages of ₹25,000.
What EPS gives a member, by years of service, step 5 of 5. Showing Under 10 years, Under 10 years, 10 years or more, Service to 58, Withdrawal benefit, Service carried on, Pension from 58, Pension at 58. In focus: Pension from 58, Pension at 58.Under 10 yearsleaving covered workUnder 10 yearsmoving to a covered job10 years or moreleaving before 58Service to 5836 years for AshaWithdrawal benefitTable D × wages at exitService carried ontransfer, or a certificatePension from 58or reduced, from 50Pension at 58₹13,571.43 a month

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

Every step as text
  1. Out before 10 years. A member who leaves covered work with less than 10 years of eligible service cannot draw a pension. EPS gives a withdrawal benefit instead, Table D's proportion times the wages at exit. After three years at ₹25,000 that is 2.98 × ₹25,000 = ₹74,500.
  2. Moving jobs. A member who moves to another covered job keeps the service. Transferring the account carries the service history on, and a scheme certificate records it, so years in two jobs add up towards the 10.
  3. Ten years, then out. With 10 years or more, the member earns a pension even after leaving early. Ten years at ₹25,000 give 25,000 × 10 ÷ 70 = ₹3,571.43 a month from 58, or a smaller pension from as early as 50, cut by 4 % for every year short of 58.
  4. To 58. Asha, working from 22 to 58, has 36 years of service, and 2 years of weightage for 20 years or more at 58. Her pension is 25,000 × 38 ÷ 70 = ₹13,571.43 a month, if her wages and the rules stay as they are.
  5. The floor. Whatever the formula gives, EPS sets a minimum monthly pension of ₹1,000 for a member entitled to one, reduced for those who draw it early.

The program works out Asha’s pension and the withdrawal benefit of a short stay:

Asha's EPS pension, and what an early exit returns Python · eps_pension.py
"""Asha's EPS pension at 58, what the old ceiling would have given, and what leaving early returns.

EPS rules as EPFO publishes them: monthly pension = pensionable salary x pensionable service / 70, where pensionable
salary is the average pay of the last 60 months, counted up to the wage ceiling; at least 10 years of eligible service
are needed for a pension; a member who reaches 58 with 20 years or more gets 2 extra years of service (weightage); a
member who leaves before 10 years gets a withdrawal benefit of Table D's proportion times the wages at exit. Asha is
invented; she is assumed to earn PF wages of Rs 25,000 from 22 to 58, and the rules are assumed to stay as they are.
"""

from decimal import ROUND_HALF_UP, Decimal

D = Decimal


def inr(amount, places="1"):
    value = D(amount).quantize(D(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)
    return "₹" + (",".join(groups + [tail]) if groups else tail) + ("." + paise if paise else "")


def pension(salary, years, retires_at_58=True):
    if years < 10:
        return D(0)
    weightage = 2 if retires_at_58 and years >= 20 else 0
    return D(salary) * (years + weightage) / 70


print("Part 1: the pension at 58")
for ceiling in (25000, 15000):
    p = pension(ceiling, 36)
    print(f"  Pensionable salary {inr(ceiling)}, 36 years + 2 of weightage: {inr(p, '0.01')} a month")
print(f"  Ten years of service, then leaving the scheme: {inr(pension(25000, 10, False), '0.01')} a month from 58")
print()
print("Part 2: leaving the scheme before the 10 years a pension needs")
TABLE_D = {12: D("1.02"), 24: D("1.99"), 36: D("2.98"), 48: D("3.99"), 60: D("5.02")}  # part of Table D
eps_a_month = (D(25000) * D("0.0833")).quantize(D("1"), rounding=ROUND_HALF_UP)
for months in (12, 36, 60):
    benefit = TABLE_D[months] * 25000
    paid = eps_a_month * months
    print(f"  {months} months: withdrawal benefit {TABLE_D[months]} × ₹25,000 = {inr(benefit):>9}; paid in {inr(paid):>9}")
print("  The benefit is about what went into EPS, with no interest on it.")

Output

Part 1: the pension at 58
  Pensionable salary ₹25,000, 36 years + 2 of weightage: ₹13,571.43 a month
  Pensionable salary ₹15,000, 36 years + 2 of weightage: ₹8,142.86 a month
  Ten years of service, then leaving the scheme: ₹3,571.43 a month from 58

Part 2: leaving the scheme before the 10 years a pension needs
  12 months: withdrawal benefit 1.02 × ₹25,000 =   ₹25,500; paid in   ₹24,996
  36 months: withdrawal benefit 2.98 × ₹25,000 =   ₹74,500; paid in   ₹74,988
  60 months: withdrawal benefit 5.02 × ₹25,000 = ₹1,25,500; paid in ₹1,24,980
  The benefit is about what went into EPS, with no interest on it.

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

If her wages and the rules stay as they are, 36 years to 58 give her ₹13,571.43 a month, against ₹8,142.86 at the old ₹15,000 ceiling. A member who leaves covered work before 10 years gets the withdrawal benefit of Table D, which for 36 months is 2.98 × ₹25,000 = ₹74,500 against ₹74,988 paid in: about what went in, with no interest on it. A member who simply changes jobs has no need of the withdrawal benefit. Transferring the account carries the service history on, and a scheme certificate can record it, so short stays in several covered jobs add up towards the 10 years.

EPS Pension Calculator (India, EPS-95) Work out an EPS pension from your dates of service and pay, at 58 or from 50.

Checkpoint

Check: What EPS pays, and when

  1. Question 1 of 2 A member retires at 58 with 25 years of pensionable service and a pensionable salary of ₹25,000. What is the monthly pension, to the nearest rupee?

    Type a number.

    A hint

    Twenty years or more of service at 58 earn 2 years of weightage.

    Show the answer: Question 1 of 2

    Answer: 9643 rupees a month (anything from 9642 to 9644 counts)

    25 + 2 = 27 years, so the pension is 25,000 × 27 ÷ 70 = ₹9,642.86 a month.

  2. Question 2 of 2 Farhan leaves covered work after four years to study abroad, with no job to move to. What does EPS give him for his four years?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: A withdrawal benefit, Table D's proportion times his wages at exit, or a scheme certificate if he prefers

    At wages of ₹25,000, four years give 3.99 × ₹25,000 = ₹99,750, close to the ₹99,984 that 48 months of ₹2,083 put in, with no interest on it.

VPF, and the tax on contributions, interest and withdrawals

A member may pay more than the required 12 % into the same account, as a voluntary provident fund (VPF): Contributions an employee chooses to make to EPF above the required 12 %. They earn the same interest as the rest of the balance, and the employer need not match them. contribution. It earns the same interest, and EPFO’s FAQs add that the employer may keep its own share at the statutory rate, so a voluntary contribution is your saving alone. The tax rules of the Income-tax Act, 2025 then treat PF money at four moments:

Moment The rule Where it is
Your contribution Counts within the ₹1,50,000 deduction of the old regime only Section 123, Schedule XV
The employer’s contribution Taxed as a perquisite above ₹7,50,000 a year, with NPS and superannuation Section 17(1)(h)
Interest Tax-free, except on the part of your own contributions above ₹2,50,000 in a year Schedule II, Sl. No. 4
A withdrawal on leaving Excluded from income after five years of continuous service; earlier, taxed, with 10 % TDS on ₹50,000 or more Schedule XI, para 8; section 392(7)

The program applies two of them to Asha:

The ₹2.5 lakh line, and a withdrawal after three years Python · pf_tax.py
"""Two PF tax rules worked through for Asha: the Rs 2.5 lakh line for your own contributions, and an early withdrawal.

Income-tax Act, 2025: interest is taxable on the part of an employee's own contributions in a year above Rs 2,50,000
(Schedule II, Sl. No. 4); a withdrawal after less than five years of continuous service is not excluded from income
(Schedule XI, Part A, paragraph 8), and EPFO deducts 10 % of it as TDS when it is Rs 50,000 or more (section 392(7)).
Asha is invented: PF wages of Rs 25,000, Rs 3,917 a month into EPF, 8.25 % a year assumed, interest credited yearly.
"""

from decimal import ROUND_HALF_UP, Decimal

D = Decimal


def inr(amount, places="1"):
    value = D(amount).quantize(D(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)
    return "₹" + (",".join(groups + [tail]) if groups else tail) + ("." + paise if paise else "")


BASIC = D(25000)
LIMIT = D(250000)
print("Part 1: her own contributions in a year against the ₹2,50,000 line")
for vpf in (0, 10, 50, 100):
    own = 12 * BASIC * (D(12) + vpf) / 100
    over = max(D(0), own - LIMIT)
    print(f"  12 % + VPF of {vpf:>3} % of basic: {inr(own):>9} a year; above the line: {inr(over):>8}")
share = LIMIT / (12 * BASIC) * 100 - 12
print(f"  The line is passed only with a VPF above {share.quantize(D('0.1'))} % of her basic pay.")
print()
print("Part 2: three years of service, then the balance is withdrawn instead of transferred")
balance, rate = D(0), D("0.0825") / 12
for year in range(3):
    interest = D(0)
    for month in range(12):
        interest += balance * rate
        balance += 3917
    balance += interest
print(f"  Balance after three years: {inr(balance)}")
print(f"  Five years of continuous service not reached, and {inr(balance)} ≥ ₹50,000:")
print(f"  10 % TDS of {inr(balance / 10)} comes off first, and the withdrawal is taxed")
print("  as though the fund had never been recognised.")
print("  Transferred to a new employer's account, the same money is not taxed,")
print("  and the three years count towards the five.")

Output

Part 1: her own contributions in a year against the ₹2,50,000 line
  12 % + VPF of   0 % of basic:   ₹36,000 a year; above the line:       ₹0
  12 % + VPF of  10 % of basic:   ₹66,000 a year; above the line:       ₹0
  12 % + VPF of  50 % of basic: ₹1,86,000 a year; above the line:       ₹0
  12 % + VPF of 100 % of basic: ₹3,36,000 a year; above the line:  ₹86,000
  The line is passed only with a VPF above 71.3 % of her basic pay.

Part 2: three years of service, then the balance is withdrawn instead of transferred
  Balance after three years: ₹1,58,749
  Five years of continuous service not reached, and ₹1,58,749 ≥ ₹50,000:
  10 % TDS of ₹15,875 comes off first, and the withdrawal is taxed
  as though the fund had never been recognised.
  Transferred to a new employer's account, the same money is not taxed,
  and the three years count towards the five.

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

The ₹2,50,000 line is far away on a first salary: her own 12 % is ₹36,000 a year, and only a voluntary contribution above 71.3 % of her basic pay would cross it. The five-year rule is close. Withdrawn after three years, her ₹1,58,749 loses ₹15,875 to TDS at once and is taxed as though the fund had never been recognised. Transferred to a new employer’s account instead, the same money is not taxed, and the three years count towards the five, because paragraph 8 counts the service of an earlier employer whose balance moved with you.

Treating a job change as a reason to withdraw

Wrong: “I changed jobs, so my PF has to be taken out”. Right: “EPFO’s guidance is to transfer the account to the new employer”. A withdrawal before five years is taxed and starts the count again; a transfer keeps the money and the years.

Checkpoint

Check: VPF and the tax rules of PF

  1. Question 1 of 2 Asha starts a voluntary contribution of 10 % of her basic pay. Must her employer add 10 % too?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: No; the employer may keep its own share at the statutory rate

    VPF is her own extra saving in the same account, earning the same interest. Her employer's 12 % stays as it was.

  2. Question 2 of 2 After three years in her first job Asha leaves for one that EPF does not cover and withdraws her ₹1,58,749. What happens about tax?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: EPFO deducts 10 % as TDS, and the withdrawal is taxed, because she has not had five years of continuous service

    Ten per cent of ₹1,58,749 is ₹15,875 of TDS. Had she moved to a covered job and transferred the account instead, there would be no tax, and the three years would count towards the five.

Practise: follow your own PF

Questions on the split, membership, interest, the pension and tax, one at a time, beginning with the idea you have answered least well:

Practice that adapts to you

Practise this lesson

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

  1. Question 1 of 16 What share of the wages goes from the employer's contribution to the pension scheme (EPS)?

    Choose one answer.

    Show the answer: Question 1 of 16

    Answer: 8.33 % of the wages, counted only up to the ₹25,000 ceiling

    12 % − 8.33 % = 3.67 % goes to EPF, so at wages of ₹25,000 the split is ₹2,083 and ₹917.

  2. Question 2 of 16 A member in EPS has PF wages of ₹35,000, and the employer restricts contributions to the ₹25,000 ceiling. How many rupees a month reach the member's EPF account from both shares together?

    Type a number.

    Show the answer: Question 2 of 16

    Answer: 3917 rupees a month

    On the ceiling, the member pays ₹3,000 and the employer ₹3,000, of which ₹2,083 goes to EPS: ₹3,000 + ₹917 = ₹3,917, the same as at ₹25,000.

  3. Question 3 of 16 At PF wages of ₹20,000 a month, how much does the employer pay in all for PF each month, its 12 % and the EDLI and administration charges together?

    Type a number.

    Show the answer: Question 3 of 16

    Answer: 2600 rupees a month

    12 % of ₹20,000 is ₹2,400, and 0.5 % twice is ₹200: ₹2,600 a month, of which ₹1,666 builds the pension and ₹734 goes to EPF.

  4. Question 4 of 16 What is the EPF wage ceiling, in rupees a month, up to which EPF, EPS and EDLI membership is required?

    Type a number.

    Show the answer: Question 4 of 16

    Answer: 25000 rupees a month

    Notification S.O. 5109(E) under the Code on Social Security, 2020 set it at ₹25,000 a month, up from ₹15,000.

  5. Question 5 of 16 Which establishments does the Code on Social Security's provident fund chapter apply to?

    Choose one answer.

    Show the answer: Question 5 of 16

    Answer: Those with twenty or more employees

    The First Schedule sets the threshold for each chapter: twenty employees for EPF, ten for ESI and for gratuity.

  6. Question 6 of 16 Asha joined EPF at ₹25,000. Three years later her PF wages are ₹32,000. What happens to her membership of EPF and EPS?

    Choose one answer.

    Show the answer: Question 6 of 16

    Answer: She stays in both; contributions may be worked out on the ₹25,000 ceiling

    She keeps both memberships. Unless she and her employer contribute on higher wages, each side pays ₹3,000 a month on the ceiling.

  7. Question 7 of 16 What interest rate does EPFO's guidance give for FY 2025-26, and what does it say about later years?

    Choose one answer.

    Show the answer: Question 7 of 16

    Answer: 8.25 % for FY 2025-26; each later year has its own declared rate

    A projection to 58 at 8.25 % every year is an assumption. The program shows how much it matters: ₹76,53,440 at 7.25 % and ₹1,22,69,946 at 9.25 % after the same 36 years.

  8. Question 8 of 16 At 58, Asha's EPF balance is ₹96,70,057, of which ₹16,92,144 was paid in. How many rupees of it are interest?

    Type a number.

    Show the answer: Question 8 of 16

    Answer: 7977913 rupees

    ₹96,70,057 − ₹16,92,144 = ₹79,77,913, about 82.5 % of the balance: most of what she has at 58 is interest on interest, the reason the early years matter.

  9. Question 9 of 16 If EPF added interest to the balance every month instead of once a year, at the same 8.25 %, what would happen to the balance at 58?

    Choose one answer.

    Show the answer: Question 9 of 16

    Answer: It would be larger, because each month's interest would itself earn interest within the year

    Within a year EPF's interest is simple: month 12 earns nothing on the interest of months 1 to 11. Compounding monthly would add that missing interest on interest every year.

  10. Question 10 of 16 How is an EPS member's monthly pension worked out?

    Choose one answer.

    Show the answer: Question 10 of 16

    Answer: Pensionable salary × pensionable service ÷ 70

    Salary and years decide the pension: at ₹25,000 and 38 years with weightage, 25,000 × 38 ÷ 70 = ₹13,571.43 a month.

  11. Question 11 of 16 A member leaves EPS at 32 after exactly 10 years, with a pensionable salary of ₹25,000. What monthly pension does the formula give from 58, to the nearest rupee?

    Type a number.

    Show the answer: Question 11 of 16

    Answer: 3571 rupees a month (anything from 3570 to 3572 counts)

    25,000 × 10 ÷ 70 = ₹3,571.43. There is no weightage, which needs 20 years of service and retirement at 58.

  12. Question 12 of 16 Table D's proportion for 60 months of service is 5.02. What withdrawal benefit does it give on wages at exit of ₹25,000?

    Type a number.

    Show the answer: Question 12 of 16

    Answer: 125500 rupees

    5.02 × ₹25,000 = ₹1,25,500, against ₹1,24,980 paid into EPS over 60 months of ₹2,083.

  13. Question 13 of 16 Asha's basic pay is ₹25,000. When does the interest on her own PF contributions start to be taxed?

    Choose one answer.

    Show the answer: Question 13 of 16

    Answer: Only on the part of her own contributions above ₹2,50,000 in a year, which needs a VPF above 71.3 % of her basic

    The line applies to each year's own contributions: ₹36,000 at 12 %, ₹66,000 with a 10 % VPF and ₹1,86,000 with 50 %, all below ₹2,50,000.

  14. Question 14 of 16 When is a PF withdrawal on leaving a job excluded from income?

    Choose one answer.

    Show the answer: Question 14 of 16

    Answer: After five years or more of continuous service, counting earlier jobs whose balance was transferred

    Transfers matter: service with earlier employers counts when the balance moved with you, so a job change need not restart the five years.

  15. Question 15 of 16 Above what yearly amount are an employer's contributions to EPF, NPS and superannuation together taxed as a perquisite?

    Choose one answer.

    Show the answer: Question 15 of 16

    Answer: ₹7,50,000

    At ₹3,000 a month, Asha's employer pays ₹36,000 a year into PF and pension, nowhere near the line.

  16. Question 16 of 16 Asha moves after three years to another covered job, transfers her account, and leaves for good two years later. Is her withdrawal then taxed as an early one?

    Choose one answer.

    Show the answer: Question 16 of 16

    Answer: No; with the transfer her service counts as five years

    Transfer, not withdrawal, keeps the clock running: three years plus two make the five that exclude the withdrawal from income.

Read your own passbook

Open your EPFO passbook and take one wage month. Check that the employee share is 12 % of your PF wages, that the employer’s share and the pension contribution add up to the same 12 %, and find the last interest credit and the year it belongs to.

Interview questions

Warm-up (fresher): How is the employer’s 12 % PF contribution divided?

The employer’s 12 % of PF wages is split between two schemes. 8.33 % of the wages, counted only up to the ₹25,000 ceiling and rounded to the rupee, goes to the Employees’ Pension Scheme, and the rest goes to the member’s EPF account. At wages of ₹25,000 that is ₹2,083 to EPS and ₹917 to EPF, so ₹3,917 a month reaches the EPF account with the member’s own ₹3,000. On top of the 12 %, the employer pays 0.5 % for EDLI life cover and 0.5 % of administration charges, which are never credited to the member. A member who is not in EPS, because their wages were above the ceiling when they joined, gets the employer’s whole 12 % in EPF.

Warm-up (fresher): Why is it usually better for the tax to transfer PF than to withdraw it when changing jobs?

Because a withdrawal before five years of continuous service is not excluded from income. It is taxed as though the fund had never been recognised, and EPFO deducts 10 % as TDS when the amount is ₹50,000 or more. A transfer to the new employer’s account is not a withdrawal at all, and the Income-tax Act counts the earlier employer’s service when the balance moved with the member, so the years keep adding up towards the five. Asha’s ₹1,58,749 after three years would lose ₹15,875 to TDS on a withdrawal; transferred, it keeps earning interest and keeps her three years.

Key takeaways

  • Of the 24 % of PF wages, your 12 % and the employer’s 3.67 % go to EPF, 8.33 % of wages up to ₹25,000 goes to EPS, and the employer’s EDLI and administration charges are never yours.
  • PF wages of ₹25,000 or less at joining make EPF, EPS and EDLI membership a requirement; above it, a newcomer joins EPF only by choice, and EPS only takes those within the ceiling at joining.
  • EPF interest is a twelfth of the year’s declared rate on each month’s opening balance, added at the year’s end; over a career it becomes most of the balance.
  • EPS pays salary × service ÷ 70 from 58 after at least 10 years, and gives about what went in, without interest, to someone who leaves covered work before 10 years.
  • Contributions count in the old regime’s deduction, interest is tax-free below ₹2,50,000 of your own contributions a year, and a withdrawal before five years of service is taxed, so a transfer keeps both the money and the years.

Terms in this lesson

Employees' Pension Scheme (EPS)
EPFO's pension scheme, funded by 8.33 % of PF wages up to the ceiling out of the employer's contribution. It pays a monthly pension from 58 to members with at least 10 years of service.
Employees' Provident Fund (EPF)
The savings account EPFO keeps for each member: 12 % of PF wages from the employee and the part of the employer's 12 % that does not go to the pension scheme, with interest declared for each year.
voluntary provident fund (VPF)
Contributions an employee chooses to make to EPF above the required 12 %. They earn the same interest as the rest of the balance, and the employer need not match them.
wage ceiling
The monthly PF wages, ₹25,000, up to which EPF, EPS and EDLI membership is required. Contributions on wages above it may be worked out on the ceiling instead.

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.