If you run a factory in India, you employ at least three different kinds of people: permanent shop-floor workers on your own rolls, contract workers brought in through a labour contractor, and office staff (supervisors, QC, dispatch, accounts). Each group has a different attendance pattern, a different applicable wage definition, and — if you are not careful — a different person tracking their pay. That fragmentation is where almost every payroll dispute starts.
We have onboarded five factories onto OEMup’s HRMS so far — pumps, plastics, fabrication, food processing, chemicals — with anything from 18 to 140 workers on payroll. Every single one was running payroll in some combination of a Mantra biometric, a printed muster the supervisor signs daily, and an Excel that nobody but the accountant fully understands. The compliance was not wrong, exactly — it was just impossible to audit, because the source of truth depended on which tab of which file you opened first.
The five laws that decide your payroll
Most factory owners can name two of these five from memory. The other three are where the inspector finds something. In order of how often they are cited in notices:
| Law | What it governs | Trigger |
|---|---|---|
| Factories Act 1948 | Working hours, weekly off, overtime at 2x, leave with wages | 10+ workers with power, or 20+ without power |
| EPF & MP Act 1952 | 12% employer + 12% employee on basic+DA, EPS 8.33% diversion | Once headcount touches 20, mandatory forever |
| ESI Act 1948 | 3.25% employer + 0.75% employee, medical insurance | 10+ employees, gross ≤ ₹21,000 per month |
| Payment of Bonus Act 1965 | 8.33% minimum, 20% maximum annual bonus | Every factory; employee eligible if monthly wage ≤ ₹21,000 |
| Payment of Wages Act 1936 | Pay date, permissible deductions, wage register | All factory workers regardless of count |
State Shops & Establishment Acts apply on top of these for office staff, and the Contract Labour (Regulation & Abolition) Act 1970 applies if you engage workers through a contractor with 20 or more people. The Code on Wages 2019, the Industrial Relations Code 2020, the Social Security Code 2020 and the OSH Code 2020 have been notified but are not yet operative as a uniform regime across states — treat them as incoming rather than in force until your state notifies the rules.
PF, gratuity and bonus are computed on basic + dearness allowance, not on gross or CTC. Splitting wages with a low basic to reduce PF cost is technically possible but has been struck down repeatedly by the Supreme Court (Vivekananda Vidyamandir, 2019). The safer rule: basic + DA should be at least 50–60% of gross. Anything lower is an audit invitation.
Step 1 · Attendance is the source of truth
Every payroll calculation downstream depends on one number: paid days. Get paid days wrong and PF is wrong, ESI is wrong, bonus is wrong, and overtime is wrong. So before you fix anything else in payroll, fix attendance.
The factory attendance pipeline that works has five stages:
- Capture — biometric punch, RFID card, or mobile geofence for field staff. Whatever you use, it must produce a timestamped log per employee per day.
- Shift master — each worker is assigned to a shift (general 9–6, A 6–2, B 2–10, C 10–6) with grace minutes and lunch breaks defined once, applied to every punch automatically.
- Paid-days computation — full day, half day, late mark, absent, weekly off, paid leave, lop. Each combination has a wage impact; the system applies your factory’s rule book without the supervisor needing to remember it.
- Overtime calculation — hours beyond 9 in a day or 48 in a week, paid at 2x basic+DA. Most software gets this wrong because it counts total hours present instead of hours beyond the standard shift.
- Leave ledger update — earned leave, casual leave, sick leave, comp-off — each with its own opening balance, accrual rate and lapse rule.
The supervisor’s muster register has historically been step 2 to 5 combined, done by hand. It works until it doesn’t — usually around 40 workers, when one person can no longer hold the rules and the exceptions in their head simultaneously.
Step 2 · The seven calculations behind every payslip
This is where most factory payroll quietly drifts from the law. Each calculation below is small. Combined, they decide whether your monthly payroll is defensible.
1 · Per-day wage from monthly wage
The denominator matters. Most factories use 26 days (excluding paid weekly off), some use 30. The Karnataka High Court and the Bombay High Court have both held that 26 is the correct divisor for daily-rated and minimum-wage workers; using 30 short-pays the worker on lop days.
per_day_wage = monthly_wage / 262 · PF employer contribution
12% of basic+DA, capped at ₹1,800 per month when the basic+DA is at or above the ₹15,000 ceiling. Of the 12%, 8.33% (capped at ₹1,250) goes to the Employees’ Pension Scheme and the rest to the PF account. Employee contribution is a separate 12%, deducted from gross.
pf_employer = min(basic_da, 15000) * 0.12 eps_share = min(basic_da, 15000) * 0.0833 pf_account = pf_employer - eps_shareIf you pay PF on the actual wage (not capped at 15,000), declare it in the EPFO portal at enrolment. Switching back later is a documentation problem.
3 · ESI contribution
For any employee with gross wages of ₹21,000 or less, 3.25% employer + 0.75% employee. Crucially, the threshold check is at the start of each contribution period (April–September, October–March), not monthly — once an employee crosses ₹21,000 mid-period, contributions continue at the higher gross until that period ends.
esi_employer = gross_wage * 0.0325 esi_employee = gross_wage * 0.00754 · Overtime
Hours beyond 9 in a day or 48 in a week, paid at twice the ordinary rate. The ordinary rate is basic+DA divided by standard monthly hours (208 for a 26 × 8 schedule). Critically: overtime is computed per day or per week, not per month — you can owe overtime even if monthly hours are below 208.
hourly_rate = (basic + da) / 208 ot_amount = ot_hours * hourly_rate * 25 · Statutory bonus
Annual, paid within 8 months of the close of the accounting year. Minimum 8.33% of bonus-eligible wages (basic+DA), maximum 20%. The eligible-wage ceiling is ₹7,000 per month or the state minimum wage for scheduled employment, whichever is higher. Anyone earning above ₹21,000 per month is excluded.
eligible_wage_pm = max(basic_da, 7000, state_minimum_wage) annual_bonus = min(eligible_wage_pm * months_worked * 0.0833, allocable_surplus_share)6 · Gratuity accrual
Not paid monthly but accrued. Vests at 5 continuous years (4 years 240 days as per Madras HC precedent), paid as 15 days of last-drawn basic+DA per completed year of service, on a 26-day-month basis. Capped at ₹20 lakh tax-free under the Payment of Gratuity Act 1972.
gratuity = last_basic_da * (15 / 26) * completed_years7 · Professional tax
State-specific. Gujarat: ₹200/month for salaries > ₹12,000. Maharashtra: slab from ₹175 to ₹200/month. Karnataka, Tamil Nadu, Kerala, West Bengal each have their own slabs. Deduction is monthly, payment is monthly or annual depending on state. The accountant tends to remember this one; the software often forgets.
PF payment & ECR upload: by the 15th of the following month. ESI: by the 15th. Professional tax: state-specific. Wages: 7th for <1,000 workers, 10th otherwise. Late PF triggers damages at 5%–25% per annum under Section 14B — non-negotiable, non-condonable in most cases.
The seven payroll mistakes inspectors keep finding
Mistake 1 · Basic kept artificially low to reduce PF cost
Splitting wages so basic is 30% of gross and the rest is “other allowance” or “special allowance” that escapes PF. The 2019 Supreme Court ruling in Vivekananda Vidyamandir closed this loophole — if an allowance is universally and necessarily paid, it forms part of basic wages.
Fix: structure basic + DA at 50%+ of gross. Variable allowances (HRA, conveyance) stay separate. Performance-linked bonuses stay separate.Mistake 2 · Contract labour PF paid by the contractor, then never verified
The principal employer is liable if the contractor defaults. We have seen factories assessed for two years of unpaid PF on contract workers whose contractor had quietly stopped filing six months earlier.
Fix: monthly verification of the contractor’s ECR challan against your contract-worker headcount, with the challan filed in your records, not the contractor’s.Mistake 3 · ESI cut-off applied monthly instead of per contribution period
Worker’s gross crosses ₹21,000 in August, payroll stops cutting ESI from September. But the contribution period (April–September) is not over — ESI is short-paid for September.
Fix: contribution period rule must be coded into the payroll engine, not left to the accountant’s memory.Mistake 4 · Overtime calculated on total hours, not over-shift hours
Worker shows 230 hours in the month, payroll pays OT on 22 hours (230 minus 208). But across the month the worker had three days with under-8 hours and four days with 11 hours. The correct OT is on the daily and weekly excess, which is larger.
Fix: compute OT per day (>9) and per week (>48), then sum. Never compute on monthly totals alone.Mistake 5 · Bonus paid as a Diwali ad-hoc, not against the Bonus Act
₹5,000 “Diwali bonus” handed over in cash, no calculation, no register. Inspector finds no Form A (allocable surplus), Form B (set-on/set-off), Form C (employee-wise bonus). Treated as if no bonus was paid.
Fix: maintain Forms A/B/C even when the actual payment is generous. The forms are the proof; the cash is just the cash.Mistake 6 · Wage register kept in Excel with formula edits
Under Rule 26 of the Payment of Wages Rules, the wage register must be preserved for three years and not be alterable retrospectively. An Excel file where the accountant can change last month’s figures fails this test the moment it is examined.
Fix: a tamper-evident wage register — either a printed bound register signed monthly, or a digital register with an audit log of every change.Mistake 7 · Payslips issued only on request
Section 13A of the Payment of Wages Act requires the employer to maintain wage slips and issue them. Many factories print them only when a worker asks for one for a loan application. That is a violation regardless of whether anyone asks.
Fix: monthly payslip generated for every worker, distributed (printed or via SMS/WhatsApp link), and the dispatch logged.How OEMup closes the attendance-to-payslip loop
The fundamental insight is that payroll is not a monthly task — it is the output of a daily process. If attendance, leaves, overtime and exceptions are captured cleanly each day, payroll on the 1st is a one-click event. If they are not, payroll on the 1st is three days of reconciliation.
In OEMup the loop runs like this:
- The biometric device (any standard Mantra/eSSL/Realtime model) syncs punches to OEMup throughout the day.
- Each punch is mapped to the worker’s assigned shift via the shift master. Lateness, half days and absences are flagged automatically against your factory’s grace rules.
- Leave applications and approvals happen in the HR module, not on paper. The leave balance ledger updates immediately.
- Overtime is computed daily and weekly — not monthly — against Factories Act rules.
- On the 1st of the next month, the payroll engine applies PF, EPS, ESI, professional tax, TDS and any custom deductions to produce gross–net for every worker. The wage register, payslip PDF and bank-file (NEFT batch) are all generated together.
- PF ECR JSON, ESIC return JSON and PT challan are generated as exports on the 12th, so the accountant pays on the 15th without manual data entry.
The supervisor stops carrying a notebook. The accountant stops maintaining a 14-tab Excel. The owner stops finding out about discrepancies during inspection.
See the attendance-to-payslip loop on a 20-minute demo
Bring last month’s muster and one payslip. We’ll set up two workers (one permanent, one contract), import the biometric log, run the calculations live, and show you the PF ECR JSON and bank file at the end.
Book a Demo →A note on contract labour
Most Indian factories run a hybrid of permanent and contract workers — permanent on the rolls for skilled positions, contract for material handling, packaging, housekeeping, sometimes for production peaks. The Contract Labour (Regulation & Abolition) Act 1970 governs anything above 20 contract workers, but the principal employer’s liability does not depend on the count: if the contractor defaults, you pay.
Concretely:
- Keep a separate register for contract workers (Form XIII under the Central Rules).
- Verify the contractor’s monthly PF ECR and ESIC challan, signed by the contractor, before releasing their bill.
- If the contractor pays in cash, get a wage-payment certificate signed by the workers in your presence (Form XVIII).
- Renew the contractor’s licence under the Contract Labour Act and the Principal Employer’s Registration Certificate (Form II) when due.
An ERP cannot solve the trust problem with the contractor, but it can give you the paper trail that protects you when the trust breaks down.
The bottom line
Indian factory payroll is not difficult mathematically — the formulas above fit on a page. It is difficult operationally, because it requires that attendance, shifts, leaves, overtime, statutory rates and state rules all live in the same place and update together. When they live in five different places maintained by three different people, the answer comes out almost-right almost-every-month — which is exactly the failure mode that gets noticed at inspection.
If you are still running shop-floor payroll in Excel today, the question is not whether to move to an HRMS — it is whether you do it before or after the next inspector visit. The companion read for the GST side of the equation is Job Work and ITC-04, and for the broader Tally-replacement case see 5 Things Tally Cannot Do That a Manufacturing ERP Can.
FAQ
Is PF mandatory for a factory with fewer than 20 workers?
Once you cross 20 employees at any point, EPF registration is mandatory and stays mandatory even if headcount later drops. Below 20 you can register voluntarily, and many factories do so to attract better workers.
What is the current PF wage ceiling?
₹15,000 of basic + DA per month. Above that the contribution can be capped at ₹1,800 employer + ₹1,800 employee, or paid on the actual wage if both parties agree at enrolment.
Does Diwali bonus count toward the Bonus Act minimum?
Yes, if it is paid as statutory bonus with the prescribed Forms A/B/C maintained. If it is paid as an ex-gratia or gift without the forms, it does not discharge the statutory liability and the 8.33% minimum remains payable separately.
Can I run payroll on the 25th of the same month instead of the 1st of the next?
Yes, this is common in factories that pay on the 1st. The cut-off date for attendance is your choice — 25th of the month works as long as you reconcile the last few days of the month in the following payroll. Just be consistent and document it.
What is the difference between EPF and EPS?
EPF is the provident fund accumulation account. EPS is the Employees’ Pension Scheme that pays a monthly pension on superannuation. Of the 12% employer PF contribution, 8.33% (capped at ₹1,250 per month) is diverted to EPS; the rest goes to EPF. The employee’s 12% all goes to EPF.
Are payslips required to be in any particular format?
Form V under the Payment of Wages Rules prescribes the minimum content: gross wages, deductions itemised, net wages, period covered. The payslip must be issued before wages are paid. Soft copy (PDF, SMS link) is acceptable as long as it can be reproduced on demand.
Primary sources cited
- epfindia.gov.in — EPFO portal, ECR upload, wage ceiling and rate schedule
- esic.gov.in — ESIC portal, contribution rates, contribution period rules
- labour.gov.in — Ministry of Labour & Employment, statutes and notifications
- Factories Act 1948 — Sections 51 (weekly hours), 54 (daily hours), 59 (overtime)
- Employees’ Provident Funds and Miscellaneous Provisions Act 1952
- Employees’ State Insurance Act 1948 — threshold notification, contribution rate
- Payment of Bonus Act 1965 — Sections 2(13), 10, 11, 12 (eligibility, minimum, maximum, allocable surplus)
- Payment of Wages Act 1936 — Sections 4 (wage period), 5 (time of payment), 13A (records)
- Payment of Gratuity Act 1972 — Section 4 (eligibility and calculation)
- Contract Labour (Regulation & Abolition) Act 1970 — principal employer liability
- Regional Provident Fund Commissioner v. Vivekananda Vidyamandir (2019) SCC — basic-wage definition