Skip to main content

ERPNext how-to & fixes

ERPNext Payroll TDS on Salary (FY 2026-27): Worked Example

How Frappe HR works out monthly TDS on salary in ERPNext: projection, slab, tax already deducted, remaining months. Worked for April and after a raise, plus the rebate edge.

Published 29 Oct 20268 min readBy Manoj

ERPNext payroll TDS on salary is worked out by Frappe HR, the payroll module of ERPNext, in four steps. It projects the employee's taxable salary for the whole payroll period, applies the income tax slab of the regime they chose, subtracts the tax already deducted this year and divides the rest by the months left, including this one. Below we run that for one fictional employee in April and again in October after a raise, then show the one case where the default setup over-deducts.

I lead ERPNext and Frappe programmes at MithTech, a team of Frappe specialists in Bengaluru. This post answers one question: how the number on the salary slip is calculated. For PF, ESI, professional tax and the payroll setup as a whole, see ERPNext HR and payroll for India.

What does the law say, in one paragraph?

An employer paying salary deducts income tax at source when the salary is paid. The amount is the average rate of tax on the employee's estimated income for the tax year, after the deductions and exemptions the employee is entitled to and has declared. From 1 April 2026 this is section 392 of the Income-tax Act, 2025, and salary paid up to 31 March 2026 falls under section 192 of the 1961 Act. The new tax regime is the default unless the employee opts for the old one.

What does Frappe HR need before the first run?

  1. Payroll Period covering 1 April 2026 to 31 March 2027.
  2. Income Tax Slab for each regime, effective 1 April 2026. Each has slab rows, a standard tax exemption amount (the standard deduction), a tax relief limit (the rebate threshold) and cess under "Taxes and Charges on Income Tax".
  3. Salary Structure Assignment per employee, with the slab of their regime. The Tax Regime Selector in the India Payroll app compares both regimes for the employee and records the choice.
  4. An Income Tax deduction component with "Variable Based On Taxable Salary" ticked, and no amount, in the salary structure.
  5. Employee Tax Exemption Declaration during the year, and proofs before year-end. A declaration only counts if the slab allows exemptions. On the new regime, most don't.

Worked example A: April, new regime

A fictional employee, Asha, has a taxable gross salary of ₹1,50,000 a month, or ₹18,00,000 for the year. She has no other income, has declared nothing and is on the new regime. Every figure below uses the FY 2026-27 slabs your CA confirms.

9 rows · click a column to sort

Step
Projected annual salary (₹1,50,000 × 12)₹18,00,000
Less standard deduction₹75,000
Projected taxable income₹17,25,000
Tax: 0–4 L nil · 4–8 L 5% (₹20,000) · 8–12 L 10% (₹40,000) · 12–16 L 15% (₹60,000) · 16–17.25 L 20% (₹25,000)₹1,45,000
Plus 4% cess₹5,800
Projected tax for the year₹1,50,800
Already deducted this year₹0
Remaining months, including April12
April TDS (₹1,50,800 ÷ 12)₹12,567

In Frappe HR terms: previous_taxable_earnings is 0, current_structured_taxable_earnings is April's ₹1,50,000 and future_structured_taxable_earnings is ₹1,50,000 × 11. The slab's standard exemption is subtracted and the slab tax plus cess is computed. Then the code divides (tax − tax paid so far) by remaining_sub_periods, which is 12 in April.

Worked example B: October, after a raise

From October, Asha's salary goes up to ₹1,80,000 a month. April to September paid ₹9,00,000 and deducted ₹75,402 in TDS (six payslips at ₹12,567).

11 rows · click a column to sort

Salary already paid (April–September)₹9,00,000
October plus the five months after it at ₹1,80,000₹10,80,000
Projected annual salary₹19,80,000
Less standard deduction₹75,000
Projected taxable income₹19,05,000
Tax: ₹1,20,000 up to 16 L + 20% on ₹3,05,000 (₹61,000)₹1,81,000
Plus 4% cess₹7,240
Projected tax for the year₹1,88,240
Already deducted (April–September)₹75,402
Remaining months, including October6
October TDS ((₹1,88,240 − ₹75,402) ÷ 6)₹18,806

The jump from ₹12,567 to ₹18,806 is the raise and the higher slab, spread over six months instead of twelve. A bonus paid as Additional Salary works the same way unless the component is set to deduct full tax in the month it's paid.

What happens just above ₹12 lakh?

On the new regime, a resident individual's tax is nil when taxable income is up to ₹12 lakh, through the rebate. Just above that, marginal relief caps the tax at the amount by which income exceeds ₹12 lakh.

In Frappe HR, the slab's tax relief limit handles the first part: at or below the limit, tax is zero. The second part is not in core Frappe HR v16. The hook calculate_tax_with_marginal_relief in hrms/hr/utils.py returns nothing and is left for localisation. The India Payroll app overrides only surcharge marginal relief.

Taxable incomeSlab tax + cess (what the default setup computes)With rebate marginal relief
₹12,10,000₹63,960₹10,400
₹12,50,000₹70,200₹52,000

For an employee in this band, the default setup deducts far more than the final tax. The employee gets it back as a refund, but your payroll has over-deducted all year. Until your version handles it, flag these employees from the Income Tax Computation report and adjust their monthly TDS with your CA's figure.

What should you check before every payroll run?

  • Income Tax Computation report: projected taxable income, exemptions and tax per employee. Read it before you submit the Payroll Entry.
  • Last month of the period: Frappe HR deducts tax on unsubmitted exemption proofs and unclaimed benefits in the final payroll, so March TDS can jump. Collect proofs in January.
  • Mid-year joiners: section 392(4) lets the employee give you the previous employer's salary and the TDS deducted on it, and you take both into account. Record that salary as Employee Other Income for the payroll period so the projection is right, and check with your CA how to carry the earlier TDS in your setup.
  • Regime changes: if an employee changes regime during the year, update the slab on their Salary Structure Assignment and check the next slip.

Frequently asked questions

+Why did TDS jump in March?

In the last payroll of the period Frappe HR deducts tax as if unsubmitted exemption proofs and unclaimed benefits don't exist. Any declaration without proof stops reducing the tax. Collect proofs before the final run.

+Does switching regime mid-year change TDS?

In Frappe HR, yes. The new slab applies from the next salary slip and the remaining tax is re-spread over the months left. Whether an employee can switch, and when, is a tax question for your CA.

+Where does a previous employer's income go?

Record it as Employee Other Income for the payroll period so the projection includes it. Otherwise the slab is applied to only part of the year's income and the employee is under-deducted. Section 392(4) also lets the employee give you the TDS the previous employer deducted, so the year's tax is not deducted twice.

+Is the 4% cess part of the slab or a separate component?

On v16 put it in the slab's "Taxes and Charges on Income Tax" table, so it's added to the slab tax before the monthly split. Older setups used a separate formula component. Use one, not both.

What is the bottom line?

The salary slip's TDS is a projection, not a fixed number. It moves with every raise, bonus and declaration. Check the Income Tax Computation report before each run, collect proofs early, and watch employees just above the rebate limit.

Running payroll on ERPNext?

We set up Frappe HR payroll for Indian companies: slabs, regimes, declarations and the checks that keep TDS right, with your CA signing off the figures.

Your next step

Running payroll on ERPNext?

See it live

Payday in one run

Salary, PF, ESI and TDS in one run, posted to the books and paid out.

You end with salary slips · 2 screens · about 3 min

No sign-up, no card, no account.

Next step · ERPNext how-to & fixes

Now see what an audit finds in yours

When the same problems keep coming back, tick what you see and get an audit of the ERPNext you have, then fixes in order of what costs you most.

Comments & ratings

No comments yet. Start a new discussion.

0

Manoj · Published on 29 October 2026

Worked with us? Leave a Google review

Questions about this? Talk to the team.

Book a 30-minute Google Meet, WhatsApp us, or send a message. The engineer who works on this replies.

Send us a message
Your details go to our team's CRM and are used only to reply.