How Your Employer Calculates Monthly TDS on Salary
In this article (6 sections)
Related programme: the Data Science course (6 months; ₹1,30,000 (inclusive of GST) · EMI from ₹5,000/month).
Your employer does not tax each month's salary on its own. Under section 392(1) of the Income-tax Act, 2025, it estimates your salary for the whole tax year and works out the tax on that estimate. It then deducts it across the year, so each month's TDS is the tax still due divided by the months left. On a hypothetical ₹1,50,000 a month in tax year 2026-27, that is ₹12,567 a month. A hike to ₹1,75,000 from October raises it to ₹17,767 for the last six months.
The formula
For any month:
monthly TDS = (tax on estimated annual salary − TDS already deducted this year) ÷ months remaining, including this one
In April, nothing has been deducted and twelve months remain, so it reduces to one twelfth of the annual tax. Every later revision uses the same formula. Section 392(5)(c) of the Income-tax Act, 2025_Bill.pdf) lets the employer adjust for earlier excess or shortfall within the year, which is what the subtraction does.
April: the first projection
All figures are hypothetical, on the new regime.
| Step | Amount |
|---|---|
| Estimated salary, 12 × ₹1,50,000 | ₹18,00,000 |
| Less standard deduction | ₹75,000 |
| Taxable estimate | ₹17,25,000 |
| Tax: ₹20,000 + ₹40,000 + ₹60,000 + 20% of ₹1,25,000 | ₹1,45,000 |
| With 4% cess | ₹1,50,800 |
| Monthly TDS, ÷ 12 | ₹12,566.67 |
The slab rates are on the department's rates page. By the end of September, six deductions have gone: ₹75,400.
October: a hike to ₹1,75,000
Payroll re-estimates the year as six months at the old pay and six at the new.
| Step | Amount |
|---|---|
| Estimated salary, 6 × ₹1,50,000 + 6 × ₹1,75,000 | ₹19,50,000 |
| Taxable estimate after ₹75,000 | ₹18,75,000 |
| Tax with cess | ₹1,82,000 |
| Less TDS April–September | ₹75,400 |
| Left for October–March | ₹1,06,600 |
| Monthly TDS, ÷ 6 | ₹17,766.67 |
Your gross rose by ₹25,000 a month, but TDS rose by ₹5,200. In-hand therefore rises by ₹19,800, before any change in PF. The extra ₹31,200 of annual tax is all collected in six payslips, which is why the jump looks steep.
December: the same hike, told late
Now suppose the October hike is approved in December with arrears. October and November were paid, and taxed, at the old rate. The arrears of ₹50,000 arrive in December's payslip.
| Step | Amount |
|---|---|
| Estimated salary for the year | ₹19,50,000, unchanged |
| Tax with cess | ₹1,82,000 |
| Less TDS April–November, 8 × ₹12,566.67 | ₹1,00,533 |
| Left for December–March | ₹81,467 |
| Monthly TDS, ÷ 4 | ₹20,366.67 |
The year's tax is the same. Only the spread changes: fewer months remain, so each carries more. December's in-hand also includes the arrears, so the higher TDS will not be obvious that month. January is where you will notice it.
# Hypothetical salary and hike. New regime, tax year 2026-27.
RATES = ((400000, 0), (800000, .05), (1200000, .10), (1600000, .15),
(2000000, .20), (2400000, .25), (float("inf"), .30))
def annual_tax(taxable):
tax, below = 0.0, 0
for upto, r in RATES:
tax += max(0, min(taxable, upto) - below) * r
below = upto
return 0.0 if taxable <= 1200000 else min(tax, taxable - 1200000) * 1.04
def tds_schedule(monthly_pay, known_from):
"""monthly_pay: 12 actual amounts, April first.
known_from[m]: the pay payroll assumes for month m when it runs month m."""
deducted, out = 0.0, []
for m in range(12):
estimate = sum(monthly_pay[:m]) + sum(known_from[m][m:])
due = annual_tax(estimate - 75000) - deducted
tds = due / (12 - m)
deducted += tds
out.append(round(tds, 2))
return out, round(deducted, 2)
pay = [150000] * 6 + [175000] * 6
told_in_oct = [[150000] * 12 if m < 6 else pay for m in range(12)]
print(tds_schedule(pay, told_in_oct))
pay_late = [150000] * 8 + [175000 + 50000] + [175000] * 3 # arrears in Dec
told_in_dec = [[150000] * 12 if m < 8 else pay_late for m in range(12)]
print(tds_schedule(pay_late, told_in_dec))Both schedules end with ₹1,82,000 deducted, which matches the tax on the actual year.
Checking your own payslip
Take three figures from your latest payslip: this month's TDS, the year-to-date TDS, and the projected annual salary if payroll shows it. Compute the tax on the projection less ₹75,000, subtract year-to-date TDS before this month, and divide by the months left including this one. If your answer differs from the payslip by more than a few rupees, ask payroll which salary figure they projected. The difference is usually an item you did not expect, such as a bonus.
What else moves the projection
- Variable pay. If payroll includes a bonus in the estimate from April, TDS is higher all year. If it adds it only in the month paid, the rest of the year jumps. Variable pay and monthly in-hand works this through.
- Earlier employers. Salary from a previous job in the same year enters only if you declare it under section 392(4). Switching jobs mid-year shows what happens when you do not.
- Regime and claims. On the old regime, the employer collects proof of claims under section 392(5)(b), and late proof can cause a spike near the end of the year.
At year-end, the TDS in your salary certificate should equal the sum of your monthly deductions. Form 16 Part B against your payslips is the check.
Building a function that reproduces someone else's calculation, and testing it against their numbers, is how a data scientist learns to trust or question a pipeline. It is practised throughout our Data Science programme, live online with optional in-person labs at our Noida centre.
Frequently asked questions
Why did my TDS jump after a hike even though the hike was small?
Because the extra tax for the whole year is recovered over the months that remain. A hike from October adds its full-year tax effect to six payslips, not twelve, so the monthly TDS rises by more than the tax on one month's increase.
Does an employer have to deduct exactly one twelfth each month?
The Act asks for deduction at the average rate on the estimated salary for the year, and section 392(5)(c) allows adjustment within the year for earlier excess or shortfall. Spreading evenly is the common method, and the one this article models, but check your own payslips.
Pankit Kumar has 10 years in Data Science & AI, building and shipping production systems in regulated pharma and clinical environments. He is a freelance trainer at Boston Institute of Analytics, AnalytixLabs and Scaler, and has taught this material to thousands of working professionals.
This article is part of our Data Science programme — 6 months. From data foundations to machine learning, deep learning and deployment.
Explore Data Science