Payroll Reconciliation: A Month-End Close Checklist
A practical month-end payroll close checklist for HR and finance teams in India: input freeze, headcount and attendance reconciliation, gross-to-net control totals, variance bri...
Payroll Reconciliation: A Month-End Close Checklist
Every payroll manager knows the feeling. It is the 26th, the bank file is due tomorrow, three cost centres are still arguing about attendance, and someone has just remembered that two people resigned mid-month. This is exactly the moment a payroll reconciliation checklist earns its keep. Payroll reconciliation is the disciplined comparison of what should have been paid against what the payroll engine has actually calculated, done before money leaves the account and before a single statutory return is filed. It is not a formality, and it is not the same thing as "checking the payroll register." It is a structured set of controls that converts a black-box calculation into something a finance controller can sign.
This guide lays out a complete month-end payroll close for Indian HR and finance teams: the calendar, the control totals, the headcount movement schedule, the variance thresholds, the statutory tie-outs, the bank file check, the general ledger posting, and the sign-off evidence pack. Every number used in the worked examples below is illustrative only — invented to show the arithmetic of a control, not to represent any real organisation, benchmark or statutory rate. Wherever statutory matters come up, treat the guidance as structural and confirm current rates, thresholds and due dates with official government sources or your compliance advisor before you act on them.
---
What Payroll Reconciliation Actually Is
Payroll reconciliation is the process of proving three things:
- Completeness — everyone who should be paid is in the run, and nobody who should not be paid is in the run.
- Accuracy — each person's gross, deductions and net are calculated from approved, current inputs.
- Consistency — the numbers in the payroll register, the bank file, the statutory challans and the general ledger all agree with each other, and any differences are explained.
Notice what is not on that list. Reconciliation is not the same as recalculating every employee's salary from scratch. Nobody has time for that, and the payroll engine is usually better at arithmetic than a human with a spreadsheet. Reconciliation is about proving relationships between totals and then investigating only the exceptions. You are looking for the handful of records where the relationship breaks.
A useful mental model: payroll is a system of linked balances. Opening headcount plus joiners minus exits equals closing headcount. Last month's gross plus explained changes equals this month's gross. Total net pay equals the sum of the bank file. Total employer cost equals the total debited to the general ledger. If every one of those equations holds and every difference has a name attached to it, your payroll is reconciled. If any of them does not hold, you have found your error before your employees did.
Reconciliation vs. verification vs. audit
These three words get used interchangeably and they should not be.
- Verification is checking a single input against its source — does this employee's revised CTC match the signed increment letter?
- Reconciliation is checking that two independently produced totals agree — does the sum of the bank file equal the net pay column of the register?
- Audit is an after-the-fact examination of whether the controls themselves were performed and evidenced.
A good month-end close does verification on a sample and exception basis, reconciliation on 100% of totals, and leaves behind enough evidence that the audit is boring. Teams that try to verify everything run out of time and end up reconciling nothing.
---
Why Month-on-Month Variance Analysis Catches Most Errors
If you only have time for one control, make it month-on-month variance analysis. Here is the logic: in a stable organisation, payroll is a highly repetitive process. The same people get paid roughly the same amounts every month. Genuine change in the total comes from a small, knowable set of causes — joiners, exits, increments, promotions, variable pay cycles, arrears, attendance loss, and statutory changes. Everything else is an error.
So instead of asking "is this employee's salary correct?" (an unbounded question), you ask "why is this month's total different from last month's?" (a bounded question with a finite list of legitimate answers). If you can explain the entire delta with named causes, the payroll is almost certainly right. If you have an unexplained residual, that residual is your error, and it usually points straight at the employee or component that caused it.
This works at two levels:
- Aggregate variance — total gross, total deductions, total net, total employer cost, month over month, with a bridge that explains the movement.
- Employee-level variance — every employee whose net pay moved by more than a defined threshold appears on an exception report and must be explained by name.
The aggregate check tells you whether something is wrong. The employee-level check tells you what. You need both. A payroll where five people were overpaid and five were underpaid by similar amounts will show a clean aggregate variance and a filthy employee-level one.
The variance bridge, illustrated
Here is an illustrative variance bridge for a fictional 500-person company. All figures are made up for demonstration.
| Bridge item | Amount (INR, illustrative) | Explanation source |
|---|---|---|
| Previous month total gross | 3,10,00,000 | Prior month's signed register |
| Add: 9 joiners (part-month) | +11,40,000 | Joiner list from HRMS |
| Less: 6 exits (part-month) | -7,80,000 | Exit list + F&F schedule |
| Add: annual increment effective this month (128 employees) | +9,60,000 | Increment master |
| Add: arrears for increments effective last month, processed now | +2,15,000 | Arrears report |
| Add: quarterly incentive payout | +6,50,000 | Approved incentive file |
| Less: loss of pay (unapproved absence) | -1,05,000 | Attendance-to-payroll extract |
| Add: one-off relocation payment (2 employees) | +1,20,000 | Approved reimbursement claim |
| Expected current month gross | 3,31,00,000 | Sum of above |
| Actual current month gross per register | 3,31,42,000 | Payroll register |
| Unexplained residual | 42,000 | Must be investigated before release |
That 42,000 residual is the entire point of the exercise. In this illustrative case, investigation might reveal that a shift allowance was applied at the revised rate to employees who had already been paid it at the old rate, or that a single employee's basic was entered as an annual figure instead of a monthly one. Either way, you found it because the bridge did not close — not because someone happened to look at the right row.
Rule of thumb for the bridge: every line item must trace to a document or system report that exists independently of the payroll engine. A bridge built from numbers the payroll engine itself produced proves nothing.
---
The Month-End Payroll Close Calendar: D-10 to D+7
A payroll close fails for scheduling reasons far more often than for technical ones. Inputs arrive late, approvals arrive later, and the reconciliation gets compressed into the last four hours before the bank cut-off — which is precisely when nobody has the bandwidth to investigate a 42,000 residual properly.
Fix the calendar first. Define D as the disbursement date (say, the last working day of the month, or the 1st of the following month, whichever your policy states). Then work backwards.
| Day | Activity | Owner | Output / gate |
|---|---|---|---|
| D-10 | Publish close calendar reminder to all input owners; open input collection window | Payroll lead | Calendar acknowledged by managers |
| D-9 | Attendance and leave regularisation window opens for employees | HR ops | Employee self-service reminder sent |
| D-7 | Attendance/leave regularisation window closes for employees | HR ops | Employee inputs locked |
| D-6 | Manager approval deadline for attendance, overtime, shift claims | Reporting managers | Pending-approval report at zero |
| D-6 | Reimbursement claim submission deadline | Employees | Claims queue frozen |
| D-5 | Input freeze — master data, joiners, exits, increments, one-time payments all locked | Payroll lead | Signed input freeze declaration |
| D-5 | Headcount movement schedule prepared | HR ops | Joiner/exit/transfer reconciliation |
| D-4 | Trial payroll run #1 | Payroll executive | Draft register, error log |
| D-4 | Exception reports generated: negative net, zero net, high variance, missing bank details | Payroll executive | Exception log with owners |
| D-3 | Exception resolution and corrections; trial payroll run #2 | Payroll executive + HR ops | Cleared exception log |
| D-3 | Variance bridge prepared vs. prior month | Payroll lead | Bridge with residual explained |
| D-2 | Statutory computation review (PF, ESI, PT, TDS) at aggregate level | Payroll lead + finance | Statutory summary schedule |
| D-2 | Gross-to-net control totals reconciled | Finance analyst | Control total sheet |
| D-2 | Four-eyes review by an independent reviewer | Finance controller / senior HR | Review notes, queries raised |
| D-1 | Final payroll run and lock; register frozen | Payroll lead | Locked final register |
| D-1 | Bank file generated, hash/control totals matched to register | Payroll lead + treasury | Bank file with matched totals |
| D-1 | Authorised sign-off (dual signature) | Controller + HR head | Signed payroll authorisation |
| D | Bank file uploaded and released; payslips published | Treasury + payroll | Disbursement confirmation |
| D+1 | Bank confirmation reconciliation — successful vs. failed credits | Treasury | Failed-credit action list |
| D+1 | Payroll journal posted to general ledger | Finance | Posted JV with reference |
| D+2 | Failed credits reissued; payslip queries triaged | Payroll ops | Reissue log |
| D+3 | GL-to-payroll reconciliation; cost-centre allocation check | Finance | Reconciliation statement |
| D+3 | Statutory payment preparation and challan generation | Compliance | Challan working papers |
| D+5 | Statutory payments made per applicable due dates | Finance | Payment confirmations filed |
| D+7 | Close pack archived; post-close review of exceptions and root causes | Payroll lead | Evidence pack + action items |
Two notes on this calendar. First, adjust the absolute dates to your own disbursement policy and to applicable statutory due dates, which vary by contribution type and can change — always confirm them against current official notifications. Second, resist the temptation to compress D-5 through D-2. Those four days are where the reconciliation actually happens. If you squeeze them, you are not saving time; you are converting a controlled process into a gamble.
---
Step 1: Input Freeze and Cut-Off Discipline
Nothing in this checklist works if inputs keep changing. The single highest-leverage control in payroll is a hard input freeze, publicly declared and consistently enforced.
What "frozen" means
At the freeze point, the following are locked and no longer editable without an exception approval:
- Employee master data — name, bank account, PAN, statutory identifiers, department, cost centre, location
- Compensation master — CTC, salary structure, component-wise breakup, effective dates
- Joiner and exit records, including exact dates of joining and last working day
- Attendance and leave data for the pay period
- Overtime, shift allowance and other variable claims
- Reimbursement claims approved for this cycle
- One-time payments — bonuses, incentives, retention payouts, relocation
- Recovery instructions — notice pay, asset recovery, advance repayment, loan EMIs
The exception route
You will always get post-freeze changes. The answer is not to refuse them absolutely — it is to route them through a slower, noisier, documented path so that the default becomes "wait for next cycle."
A workable rule set:
- Post-freeze changes require written approval from a named authority (typically the HR head or finance controller, not the requester's manager).
- Only two categories qualify: (a) a change that would cause a legal or statutory breach, and (b) a change where an employee would receive materially wrong pay — for example, a joiner missed entirely, or a salary keyed at ten times its correct value.
- Everything else moves to arrears next month. A delayed reimbursement is an inconvenience. A rushed change to a locked register is a control failure.
- Every exception is logged with requester, approver, reason, timestamp and the record changed. Review the log monthly. If the same team generates five exceptions every cycle, the problem is their upstream process, not your freeze.
Cut-off boundary problems to watch
Cut-off dates create their own class of error. Watch for:
- Attendance periods that do not match the pay period. If you pay for the calendar month but capture attendance from the 21st to the 20th, every exit and joiner near the boundary needs careful handling — and every new payroll executive will get it wrong at least once.
- Joiners between freeze and disbursement. Decide the policy in advance: pay in the current cycle via an off-cycle run, or pay next month with arrears. Write it down. Ambiguity here produces both missed payments and duplicate payments.
- Exits after freeze. An employee who resigns on D-3 may already be in the run. If their last working day falls before month-end, you have an overpayment to recover — which is far harder than not paying in the first place.
- Retrospective attendance approvals. A manager approving leave for a past month after the books are closed creates an arrears or recovery item, not a change to the closed period.
---
Step 2: Headcount Reconciliation — Joiners, Exits and Transfers
Headcount reconciliation is the completeness control. It answers: is the right population in this payroll? It is also the control most often skipped, because it feels administrative. It is not. Missing joiners and paid-after-exit employees are among the most common and most expensive payroll errors.
The schedule is simple arithmetic that must tie exactly.
| Line | Description | Count (illustrative) | Source document |
|---|---|---|---|
| A | Opening headcount (paid in prior month's register) | 500 | Prior month locked register |
| B | Add: joiners in current period | +14 | Onboarding report / offer acceptance list |
| C | Less: exits in current period | -9 | Exit clearance / resignation approvals |
| D | Add: rejoiners / returns from unpaid leave | +2 | HR case records |
| E | Less: employees moved to unpaid leave (full month) | -3 | Leave register |
| F | Less: employees transferred to another payroll entity | -4 | Inter-company transfer approvals |
| G | Add: employees transferred in from another entity | +3 | Inter-company transfer approvals |
| H | Expected closing headcount (A+B-C+D-E-F+G) | 503 | Calculated |
| I | Actual employee count in current payroll register | 505 | Payroll register |
| J | Difference (I - H) | 2 | Investigate before release |
In this illustrative case, a difference of 2 might mean two exited employees were not deactivated, or two transferred employees are being paid by both entities, or two records were duplicated during a data import. Any of those is a real problem, and none of them would be caught by looking at salary calculations.
Sub-checks within headcount reconciliation
- Joiner completeness. Cross-check the joiner list from the recruitment or onboarding system against the payroll additions. Anyone onboarded but not added is about to receive zero on their first payday — a memorable experience for the wrong reasons.
- Joiner pro-ration. For a mid-month joiner, confirm the pro-ration basis (calendar days, working days, or fixed 30-day convention) matches policy and is applied consistently. Mixed conventions across components is a classic silent error.
- Exit completeness. Cross-check exits against the register: no exited employee should appear with a regular salary line unless their last working day falls within the pay period.
- Full and final settlements. Confirm whether F&F is processed in the regular run or separately. Either is fine; both at once is not. Employees settled in both places get paid twice.
- Notice pay recovery. Where an employee leaves without serving notice, confirm the recovery is applied and that the resulting net is not negative in a way the system silently suppresses.
- Transfers. For an intra-group transfer, the sending entity must stop and the receiving entity must start, on adjacent dates with no gap and no overlap. Reconcile both sides.
- Dormant records. Employees on long unpaid leave, sabbatical or suspension should be explicitly flagged, not simply absent. An absent record is indistinguishable from a deleted one.
---
Step 3: Attendance and Leave-to-Payroll Reconciliation
This step proves that the days you paid for match the days the attendance system recorded.
The core identity for each employee:
Payable days + Loss-of-pay days + Unpaid-leave days = Total days in the pay period
If that does not hold for every employee, something is wrong with either the attendance extract or the payroll import. Run it as a computed check across the entire population, not as a spot check.
The reconciliation sequence
- Freeze the attendance period and generate the extract. Note the exact timestamp — you will need it for the evidence pack.
- Check for unapproved records. Any attendance entry still pending manager approval at freeze must be resolved by policy — either treated as present, treated as loss of pay, or held for arrears. Whichever you choose, apply it uniformly and document it.
- Reconcile record counts. Number of employees in the attendance extract should equal number of active employees in payroll, allowing for documented exclusions (for example, employees on retainer contracts outside the attendance system).
- Reconcile total days. Sum of payable days across all employees, compared against expected days multiplied by headcount, adjusted for joiners and exits. An unexplained gap means a mismatched calendar or a partially imported file.
- Check leave balances. Leave availed in the period should reduce leave balance by the same quantum. A leave that reduces pay but not balance (or vice versa) indicates a broken integration.
- Check holiday and week-off calendars. Different locations often have different holiday lists. If your payroll applies a single calendar to a multi-state workforce, employees at some locations will be marked absent on their own public holidays.
- Reconcile overtime and shift claims. Total claimed hours from the attendance system should equal total hours paid, at the approved rate. Confirm the rate itself against policy — overtime rate errors are silent and repeat every month.
Illustrative attendance reconciliation
| Check | Expected (illustrative) | Actual (illustrative) | Status |
|---|---|---|---|
| Active employees in attendance extract | 505 | 501 | 4 missing — investigate |
| Total payable days (all employees) | 15,140 | 15,092 | Gap of 48 days |
| Employees with loss of pay | 22 | 22 | Match |
| Total LOP days | 48 | 48 | Match |
| Overtime hours claimed | 1,260 | 1,260 | Match |
| Employees with zero payable days | 3 | 5 | 2 unexpected — investigate |
Reading this illustrative table: the 48-day gap is fully explained by the LOP days, so that is fine. The four missing employees and the two unexpected zero-payable-day employees are not explained, and both must be resolved before the run is finalised. Zero-payable-day cases deserve particular attention — they usually mean either a genuine full-month absence, or an employee whose attendance simply failed to import.
---
Step 4: Gross-to-Net Control Totals
Control totals are the arithmetic backbone of the close. The principle is that the payroll register must internally balance, and each balancing relationship should be computed independently of the payroll engine — ideally in a spreadsheet or BI report fed by an export, so that an engine bug cannot hide itself.
| Control | Relationship to prove | Amount (INR, illustrative) | Tie-out |
|---|---|---|---|
| C1 | Sum of all earning components = Total gross earnings | 3,31,42,000 | Must equal register gross |
| C2 | Sum of all pre-tax deductions (employee PF, professional tax, etc.) | 24,86,000 | Feeds taxable income calc |
| C3 | Sum of all post-tax deductions (loans, advances, recoveries) | 3,42,000 | No impact on taxable income |
| C4 | Total income tax deducted at source | 41,20,000 | Feeds TDS liability |
| C5 | Total gross - total deductions = Total net pay | 2,61,94,000 | C1 - (C2+C3+C4) |
| C6 | Sum of bank file amounts | 2,61,94,000 | Must equal C5 exactly |
| C7 | Employee count in register | 505 | Must equal headcount schedule |
| C8 | Payment record count in bank file | 503 | 2 held for bank detail issues |
| C9 | Total employer statutory contributions | 18,74,000 | Employer cost, not deducted from net |
| C10 | Total employer cost (C1 + C9) | 3,50,16,000 | Must equal GL debit total |
The two relationships that matter most are C5 = C6 and C10 = GL debit. If net pay per the register does not equal the sum of the bank file to the rupee, do not release the file — no exceptions, no "we'll adjust next month." A mismatch here means either the file was generated from stale data or some employees were dropped in export.
Note the deliberate difference between C7 (505) and C8 (503) in the illustration. Two employees are held back because of bank detail issues. That is a legitimate difference, but it must be named: which two, why, and when will they be paid? An unnamed count difference is an error; a named one is a controlled exclusion. Track held payments on a separate schedule and clear them within a defined number of days.
Component-level sanity checks
Alongside the totals, run a component-level scan:
- Negative earnings. A negative value in an earnings component almost always indicates a botched retro calculation.
- Negative net pay. Deductions exceeding gross. Usually loan EMI or notice recovery applied to a low-pay month. Needs a policy decision, not a silent suppression.
- Zero net pay with non-zero gross. Everything was deducted. Investigate.
- Components outside expected range. For each component, compute minimum, maximum and median across the population and eyeball the extremes. A house rent allowance ten times the median usually means a data entry slip.
- Ratio checks. Basic as a percentage of gross should sit in a narrow band across employees on the same structure. Outliers indicate structure misassignment.
- Duplicate bank accounts. Two employees with the same account number is either a genuine family arrangement or a fraud indicator. Either way, it should be reviewed by a human every cycle, not ignored.
---
Step 5: Variance Analysis and Exception Thresholds
Once totals balance, move to variance. Aggregate variance tells you the payroll is plausible; employee-level variance tells you which records to open.
Set thresholds in advance and apply them mechanically. Thresholds set after seeing the results are not controls — they are rationalisations.
| Variance test | Suggested threshold (set your own) | Action if breached |
|---|---|---|
| Total gross vs. prior month | Movement beyond a defined percentage band | Prepare full bridge; residual must be zero |
| Total net vs. prior month | Movement beyond a defined percentage band | Reconcile to bridge and deduction changes |
| Individual net pay vs. prior month | Change above a defined percentage or absolute rupee value, whichever is lower | Named explanation per employee |
| New employee with unusually high first-month pay | First-month net exceeding expected pro-rated value | Verify joining date and pro-ration basis |
| Employee paid this month but not last month | Any occurrence | Confirm against joiner list |
| Employee paid last month but not this month | Any occurrence | Confirm against exit list |
| Component appearing for the first time | Any occurrence | Confirm approval document exists |
| Component disappearing | Any occurrence | Confirm intended, not a master data wipe |
| Employer cost per employee | Movement outside band | Check statutory master changes |
| Deduction as a share of gross, per employee | Outside defined band | Check loan, recovery and tax setup |
Two design notes. First, use "percentage or absolute, whichever is lower." A pure percentage threshold ignores large-rupee changes on high salaries; a pure rupee threshold floods you with junior-employee noise. The combination gives you a workable list. Second, calibrate the thresholds so that the exception list is long enough to be useful and short enough to be read. If your exception report has 300 rows, nobody reads it, and the control has quietly failed while appearing to operate.
Worked illustrative example: employee-level variance
Assume a threshold of "net pay change greater than 10% or INR 5,000, whichever is lower."
| Employee (illustrative) | Prior net | Current net | Change | Explanation | Cleared? |
|---|---|---|---|---|---|
| E-1042 | 62,400 | 78,900 | +16,500 | Promotion effective this month plus one month arrears | Yes — increment letter on file |
| E-2277 | 45,000 | 22,500 | -22,500 | 15 days loss of pay | Yes — attendance record |
| E-3391 | 88,000 | 88,000 | 0 | No change | Not on report |
| E-4108 | 51,200 | 91,200 | +40,000 | No documented cause | No — investigate |
| E-5560 | 0 | 34,800 | +34,800 | New joiner, part month | Yes — joiner list |
| E-6023 | 73,500 | 66,100 | -7,400 | Revised tax projection increased TDS | Yes — tax computation |
Row E-4108 is the reason the control exists. In this illustration, an investigation might reveal that a one-time bonus intended for a different employee with a similar ID was applied here, or that a monthly figure was entered where an annual one belonged. Either way, it was caught before disbursement, which is the difference between a corrected line and an awkward recovery conversation.
---
Step 6: Arrears, Retro Pay and Off-Cycle Runs
Arrears are where most payroll errors are born, because they involve recalculating a closed period and layering the difference onto an open one.
The arrears checklist
- Confirm the effective date of every retro change. An increment effective from the 1st of a past month generates a different arrear than one effective mid-month.
- Confirm which components are retro-eligible. Basic and allowances typically recalculate; some fixed reimbursements do not. Get the rule stated in policy, not decided per case.
- Recalculate the old period, not just the difference. Applying a flat difference ignores attendance in the retro period. An employee who had loss of pay in the retro month should not receive full arrears for it.
- Check statutory impact. Retro earnings change the base for statutory contributions and for tax in the periods affected. Confirm how your system treats this and whether prior-period contributions require adjustment. Treatment varies by contribution type — verify against current official guidance.
- Check for double-counting. The most common arrears error is paying the same arrear twice: once when it was manually processed as a one-time payment, and again when the effective-dated master change triggered an automatic retro. Reconcile the arrears report against the one-time payment file before finalising.
- Cap and disclose. Show arrears as a separate line on the payslip with the period it relates to. Employees who cannot see what they were paid for will raise queries, and query volume is a hidden cost of the close.
Off-cycle discipline
Off-cycle runs — for missed joiners, corrections, or urgent settlements — must go through the same reconciliation as the main run, in miniature: control totals, variance against expectation, bank file tie-out, and independent sign-off. The shortcut version of this is where an unrecorded payment enters the ledger. Also confirm that off-cycle payments are picked up in the same month's statutory computations and GL posting, not orphaned between periods.
| Off-cycle control | What to check |
|---|---|
| Authorisation | Named approver, documented reason, before processing |
| Population | Explicit employee list, no "all active" defaults |
| Duplication | Confirm employee not already paid in main run for same period |
| Statutory | Contributions and tax computed on combined monthly earnings, not in isolation |
| Bank file | Separate file, separate control total, separate release approval |
| GL | Posted to the same period as the main run |
---
Step 7: Reimbursements and Non-Payroll Components
Reimbursements sit awkwardly between payroll and accounts payable, and that ambiguity is exactly where controls fall through.
Checklist:
- Claim-to-payment tie-out. Total approved claims in the claims system must equal total reimbursement amounts in the payroll register. Any difference means claims were dropped, duplicated, or partially processed.
- Approval completeness. No claim should reach the register without an approval record. Run a report of reimbursements paid with no matching approval — it should be empty.
- Eligibility and limits. Confirm each claim sits within the employee's entitlement for the component and the period. Systems that allow limit overrides need an override report reviewed every cycle.
- Supporting documentation. Where policy requires proofs, confirm that the proof-verification status is complete. A claim paid with unverified proofs may create a tax treatment problem later.
- Correct routing. Reimbursements paid through payroll versus through accounts payable must not overlap. Reconcile both, because an employee who claims in both systems will be paid twice and will not necessarily tell you.
- Tax treatment. Confirm the taxable/non-taxable classification of each reimbursement component matches current rules and your declared policy. Misclassification here surfaces months later during annual tax reconciliation, when it is expensive to fix. Confirm current treatment with official sources or your tax advisor.
- Carry-forward. Unclaimed entitlements and unprocessed claims should be tracked as a schedule, not lost at month-end.
---
Step 8: Statutory Reconciliation — PF, ESI, Professional Tax and TDS
This section is structural on purpose. Contribution rates, wage ceilings, eligibility thresholds, state-wise professional tax slabs and filing due dates are all subject to change and vary by state and by employee category. Do not take any rate or date from a blog post, including this one. Verify against the current official notifications from the relevant authority, or with your compliance advisor, before every filing cycle.
What does not change is the shape of the reconciliation. For each statutory item you should be able to answer four questions:
- Population — who is covered, and does the covered count in payroll match the eligibility rules?
- Base — what earnings form the contribution or tax base, and does the computed base tie to the register?
- Computation — does the amount equal base multiplied by the applicable rate, within rounding?
- Payment and filing — does the amount paid equal the amount computed, and does the return filed equal the amount paid?
| Statutory item | Population check | Base check | Computation check | Payment/filing check |
|---|---|---|---|---|
| Provident fund | Covered employee count vs. eligibility rules; new joiner enrolment; excluded employees documented | Wage base per applicable definition ties to register components | Employee and employer shares recomputed independently; ceiling/opt-out cases reviewed | Challan total = computed total; return employee count = payroll covered count |
| ESI | Employees within applicable wage threshold; contribution-period rules for those crossing the threshold mid-period | Gross as defined for ESI ties to register | Employee and employer shares recomputed | Challan total = computed; coverage list matches |
| Professional tax | State-wise applicable population by work location | Slab-determining earnings figure | Per-state slab applied to correct location | State-wise challans total to payroll deduction |
| Income tax (TDS) | All employees with taxable income; new joiners with prior-employer income | Annual projected income, declarations, proofs | Monthly deduction = projected annual liability apportioned over remaining months | Challan total = register TDS total; quarterly return ties to challans |
Common statutory reconciliation failures
- Multi-state professional tax applied by employer HQ rather than employee work location. Remote and hybrid working has made this materially harder; decide and document the basis.
- Employees crossing an eligibility threshold mid-year being handled inconsistently across months. Contribution-period rules exist precisely for this — check them.
- New joiners with previous-employer income who did not declare it, producing under-deduction that only surfaces at year-end. Build a declaration step into onboarding.
- Investment declaration versus proof mismatch. Declarations drive deduction early in the year; proofs must be reconciled before the final quarter, and unproved declarations reversed.
- Statutory amounts computed on a base that includes a component it should exclude (or vice versa) — this repeats silently every month until someone recomputes independently.
- Challan paid but return not filed, or filed with a different figure. Reconcile the three-way relationship: computed, paid, filed.
- Arrears and off-cycle payments excluded from the month's statutory base.
Keep a rolling statutory reconciliation register: for each month and each item, record computed amount, paid amount, payment date, filing reference and filing date, plus any difference with its explanation. When an assessment or audit query arrives eighteen months later, this register is the difference between an afternoon's work and a week of archaeology.
---
Step 9: Bank File and Payment Reconciliation
The bank file is the last point at which an error is cheap to fix.
Before release
- Sum check. Total of the bank file equals total net pay in the locked register, to the rupee.
- Count check. Number of payment lines equals number of employees due payment, with any exclusions named and approved.
- Format validation. Account numbers, IFSC codes and beneficiary names match the master. Run a validation pass in the bank's portal or your HRMS before upload, not after.
- Duplicate detection. No duplicate combination of employee and amount, and no duplicate account number without documented justification.
- Zero and negative amounts. Neither should exist in the file.
- Value date. Confirm the value date and the cut-off time for the bank's processing window. A file uploaded after cut-off pays a day late regardless of when you generated it.
- Funding check. Confirm cleared funds are available in the disbursement account before release. A rejected file for insufficient funds delays everyone, not just the shortfall.
- Authorisation. Dual authorisation on release, with the authorisers being different people from the preparer.
After release
| Post-payment check | Timing | What "done" looks like |
|---|---|---|
| Bank confirmation report obtained | D+1 | File status confirmed as processed |
| Successful credits reconciled to bank file | D+1 | Success count + failure count = file count |
| Failed credits listed with reasons | D+1 | Named list with root cause per record |
| Bank statement debit reconciled to file total | D+1 | Single or batched debit equals file total |
| Failed credits corrected and reissued | D+2 | Reissue log with new payment reference |
| Bank charges identified and posted | D+2 | Charges booked separately, not netted |
| Unclaimed/returned amounts tracked | D+3 | Suspense schedule with ageing |
Failed credits deserve a formal process. They are usually caused by closed accounts, name mismatches or incorrect IFSC codes — all master data problems. Fix the master, not just the payment, or the same record fails again next month.
---
Step 10: GL Posting and Cost-Centre Reconciliation
Payroll's output is a journal entry. If that entry is wrong, the management accounts are wrong, and the error is usually discovered by an FP&A analyst asking why one department's cost jumped.
The payroll journal, in structure
| GL account (illustrative mapping) | Debit / Credit | Source figure | Amount (INR, illustrative) |
|---|---|---|---|
| Salaries and wages expense | Debit | Total gross earnings | 3,31,42,000 |
| Employer statutory contributions expense | Debit | Employer contributions | 18,74,000 |
| Salary payable / bank clearing | Credit | Total net pay | 2,61,94,000 |
| Statutory payable — provident fund | Credit | Employee + employer PF | 27,10,000 |
| Statutory payable — ESI | Credit | Employee + employer ESI | 2,90,000 |
| Statutory payable — professional tax | Credit | PT deducted | 1,02,000 |
| Statutory payable — TDS | Credit | TDS deducted | 41,20,000 |
| Employee loans / advances receivable | Credit | Recoveries | 3,42,000 |
| Reimbursement expense (by category) | Debit | Reimbursement components | Included in gross above |
| Total debits | 3,50,16,000 | ||
| Total credits | 3,50,16,000 |
Checks to run on the journal:
- Debits equal credits. Obvious, but a partially posted journal is a real failure mode when postings are split by cost centre.
- Total debit equals total employer cost (control C10). This is the tie between payroll and finance.
- Each payable account balance equals the amount due for the month. Then confirm it clears to zero when the payment is made. A statutory payable account with a growing unexplained balance is a red flag that either payments or postings are being missed.
- Cost centre allocation totals to the payroll total. Every employee must map to exactly one valid, active cost centre. Run an unmapped-employee report — it should be empty. Employees mapped to closed cost centres are a common month-end surprise.
- Cost-centre movement analysis. Compare each cost centre's payroll cost to prior month. Large moves should correspond to known transfers, hiring or exits.
- Accruals. Where the pay period and the accounting period differ, confirm the accrual and its reversal. Also reconcile leave encashment liability, gratuity provision and bonus provision as separate schedules — these are balance-sheet items that payroll feeds but does not usually settle monthly.
- Inter-company recharges. If employees work for a different legal entity than the one paying them, confirm the recharge is raised in the same period.
---
Step 11: Four-Eyes Review, RACI and Sign-Off
A reconciliation performed by the person who prepared the payroll is not a control. Independence is the whole point.
Minimum segregation
- The person who maintains master data should not be the person who runs payroll.
- The person who runs payroll should not be the person who releases the bank file.
- The person who releases the bank file should not be the sole person who reconciles the bank statement.
Small teams cannot always achieve full segregation. Where you cannot segregate, compensate: add a monthly review by someone outside the payroll function (the controller, a founder, an external accountant), focused on exception reports and the variance bridge rather than on re-doing the work.
RACI for the monthly close
| Activity | Responsible | Accountable | Consulted | Informed |
|---|---|---|---|---|
| Input collection and chasing | HR ops executive | Payroll lead | Line managers | Employees |
| Master data changes | HR ops | HR head | Payroll lead | Finance |
| Input freeze declaration | Payroll lead | HR head | Finance controller | All managers |
| Trial run and exception clearing | Payroll executive | Payroll lead | HR ops | — |
| Headcount reconciliation | HR ops | Payroll lead | Talent acquisition | Finance |
| Variance bridge | Payroll lead | Finance controller | HR head | — |
| Statutory computation review | Compliance/payroll lead | Finance controller | External advisor | HR head |
| Independent review (four-eyes) | Finance controller | CFO / founder | Payroll lead | — |
| Bank file release | Treasury | Finance controller | Payroll lead | HR head |
| GL posting and reconciliation | Finance analyst | Finance controller | Payroll lead | — |
| Statutory payment and filing | Compliance | Finance controller | External advisor | HR head |
| Evidence pack archival | Payroll lead | Finance controller | — | Internal audit |
What the reviewer actually reviews
Give the reviewer a defined pack, not a database login. A workable review pack:
- Variance bridge with residual and explanations
- Headcount movement schedule with differences resolved
- Exception report with disposition per line
- Gross-to-net control total sheet
- Statutory summary with prior-month comparison
- Bank file control totals and exclusions list
- Post-freeze exception log
- List of manual adjustments with approvals
The reviewer signs a short statement: reviewed the above, queries raised and resolved as noted, approved for release. Date it. Keep it.
---
Step 12: Audit Trail and the Evidence Pack
If the close was performed but not evidenced, you will re-perform it under pressure at audit time.
Archive the following as a single dated pack per pay period:
- Locked payroll register (with a version identifier and lock timestamp)
- Input freeze declaration and post-freeze exception log
- Headcount movement schedule
- Attendance extract with generation timestamp
- Variance bridge and employee-level exception report with dispositions
- Control total sheet
- Statutory computation summary and, once available, challans and filing acknowledgements
- Bank file control totals, release authorisation, bank confirmation and failed-credit log
- Posted GL journal with reference number and cost-centre allocation summary
- Signed review and authorisation
- List of all manual overrides and adjustments with approver and reason
Two properties matter more than completeness. Immutability — the archived register must not change after the fact; if a correction is needed, it goes into the next period as a documented adjustment. Retrievability — you should be able to answer "what did we pay employee E-4108 in this month, and why" in minutes, not days. Store the pack in a controlled location with restricted access, since it contains sensitive personal and financial data.
Also keep a system audit trail distinct from the document pack: who changed which field, from what value to what value, when, and under what approval. Payroll systems that do not maintain field-level history make certain investigations effectively impossible.
---
Quarter-End and Year-End Extras
The monthly checklist stays constant. Certain periods add work on top.
| Period | Additional activities |
|---|---|
| Quarter-end | Reconcile quarterly tax returns to the sum of three months' deductions and challans; resolve any short deduction before filing; reconcile provisions (bonus, leave, gratuity) to actuarial or policy-based computations; review variable pay accruals against expected payouts |
| Pre-year-end (final quarter) | Collect and verify investment proofs against declarations; reverse unproved declarations and recompute remaining months' deduction; flag employees with large residual tax liabilities early enough to spread the deduction |
| Year-end | Reconcile full-year gross, deductions and tax per employee to the sum of twelve monthly registers; reconcile total tax deducted to total deposited and to what will appear on employee tax statements; issue employee tax certificates; reconcile full-year statutory contributions to annual filings |
| New financial year | Refresh tax computation parameters and statutory masters per current official notifications; reset annual entitlements and reimbursement limits; recompute projections for all employees; run a parallel calculation for a sample before the first live run of the year |
| Any structural change | When salary structures, statutory rules or the payroll system change, run a parallel run — old and new computed side by side for the same period, differences explained line by line before switching |
The year-end reconciliation deserves special emphasis because it is the one that reaches employees directly. A mismatch between what was deducted, what was deposited and what appears on an employee's tax statement generates individual queries that are painful to resolve in bulk. Reconciling monthly makes year-end a formality; skipping monthly makes year-end a project.
---
Common Errors and How They Slip Through
Most payroll errors are not exotic. They are the same handful of failures, and each one slips through because of a specific missing control.
| Error | How it typically happens | Control that catches it |
|---|---|---|
| Exited employee paid | Exit recorded in HR system after payroll freeze; no deactivation step | Headcount movement schedule; "paid last month, exited this month" report |
| Joiner not paid | Onboarding completed after freeze; no cross-check against recruitment system | Joiner completeness reconciliation |
| Duplicate payment | Employee paid in both main run and off-cycle/F&F run | Duplicate employee-account-amount scan across all runs in the period |
| Wrong pro-ration | Mixed conventions (calendar vs. working days) across components | Recompute a sample of joiners and exits independently |
| Annual figure entered as monthly | Data entry during increment upload | Employee-level variance threshold; component range scan |
| Arrears paid twice | Manual one-time payment plus automatic retro from effective-dated change | Arrears report reconciled to one-time payment file |
| Loss of pay not applied | Attendance not imported or import partially failed | Attendance record count and total days reconciliation |
| Overtime at wrong rate | Rate master not updated after policy change | Independent recompute of total OT hours x approved rate |
| Statutory computed on wrong base | Component wrongly included in or excluded from the base | Independent recomputation of base from register components |
| Multi-state PT applied incorrectly | Location field stale after transfer or remote move | State-wise PT reconciliation by employee work location |
| TDS under-deducted | Declarations accepted without proof; prior-employer income undeclared | Declaration-to-proof reconciliation before final quarter |
| Bank file mismatch | File generated from a pre-correction version of the run | Bank file total vs. locked register total, to the rupee |
| Payment to wrong account | Bank details changed without verification | Change-of-bank-detail report reviewed every cycle |
| Cost centre misallocation | Employee mapped to closed or default cost centre | Unmapped/invalid cost centre report; cost centre movement analysis |
| Statutory payable not cleared | Payment made but posting missed, or vice versa | Payable account roll-forward: opening + accrued - paid = closing |
| Reimbursement paid twice | Claimed through both payroll and accounts payable | Cross-system claim reconciliation |
The pattern across all of these is worth naming: errors slip through when a number is only ever produced once. A figure that exists in exactly one place, computed by exactly one system, checked by exactly one person, has no way of being wrong-proofed. Reconciliation works by forcing important numbers to be produced twice, by different routes, and then insisting the two agree.
The "it netted off" trap
Watch for a particular reviewer failure mode: a variance that looks small at the total level because two errors offset. In one illustrative case, a company sees total gross move by only 0.1% month over month and passes it as normal. Underneath, a departmental restructure moved 40 employees onto a new structure at slightly higher pay while a delayed incentive payout of a similar magnitude was omitted entirely. The aggregate looked calm; two material errors were live. This is why employee-level variance is not optional, and why aggregate variance should be explained by a bridge, not merely accepted because it is small.
---
Automation and Exception Reports in an HRMS
Everything above can be done in spreadsheets. It is just slower, more error-prone, and dependent on whichever person built the workbook still working there.
The parts worth automating, roughly in order of return:
- Integrated attendance and leave. If attendance flows into payroll without a manual export-import step, an entire error class disappears. Most loss-of-pay errors are file-handling errors.
- Effective-dated master data. Systems that store changes with effective dates handle retro correctly by construction, rather than depending on someone remembering to compute arrears.
- Standing exception reports. Configure these once and have them run automatically on every trial run: negative net, zero net, high variance, missing bank details, missing statutory identifiers, unmapped cost centre, paid-this-month-not-last, paid-last-month-not-this, duplicate accounts.
- Automated control totals. The system should present gross-to-net totals and headcount movement as a report, not as something you assemble by exporting and pivoting.
- Workflow-based approvals with audit trail. Approvals captured in the system, timestamped and immutable, remove most of the evidence-gathering effort at audit time.
- Bank file generation from the locked register. Generating the file directly from the frozen run eliminates version mismatch entirely.
- Configurable GL mapping. Component-to-account and employee-to-cost-centre mapping maintained in the system produces a postable journal without manual re-keying.
- Statutory computation with maintained masters. Rates and slabs maintained centrally and updated when official notifications change, rather than hard-coded in a formula somewhere.
This is the practical case for running payroll inside an HRMS rather than beside one. A platform like CozyHR keeps attendance, leave, employee master data and payroll in a single system, so the reconciliation stops being an exercise in matching exports and becomes a set of reports you read. The value is not that the software is smarter than your team — it is that it removes the manual handoffs where errors are created in the first place.
A caution, though: automation does not remove the need for the control, it removes the labour. Someone still has to read the exception report, explain the residual, and sign. Teams that automate and then stop looking have replaced a slow control with a fast blind spot.
---
KPIs for Payroll Accuracy
Measure the process, not just the outcome. Define each metric yourself, compute it consistently, and track your own trend — do not chase external benchmark figures, which are rarely comparable across organisations of different size, structure and industry.
| KPI | How to compute it | Why it matters |
|---|---|---|
| Payroll accuracy rate | (Total payslips issued minus payslips requiring correction) / total payslips issued, per cycle | Headline quality measure; define "correction" precisely and apply it consistently |
| Error rate by root cause | Count of errors grouped by cause (master data, attendance, statutory, system, manual entry) / total errors | Tells you where to invest; most teams find one or two causes dominate |
| Off-cycle payment ratio | Number of off-cycle payments / total payments in the period | A rising ratio means the main run is not capturing reality |
| Post-freeze change count | Number of approved post-freeze exceptions per cycle | Measures cut-off discipline; trend matters more than level |
| Exception clearance time | Average hours from exception report generation to disposition | Long clearance times compress the review window |
| Variance residual | Absolute unexplained residual in the bridge / total gross | Should trend toward zero; a persistent residual means a persistent problem |
| Failed credit rate | Failed credits / total payment lines | Proxy for master data quality on bank details |
| Query volume per 100 employees | Payroll queries raised in the cycle / (headcount / 100) | Employee-facing quality signal; spikes follow structural changes |
| Query resolution time | Average time from query raised to resolved | Trust is built on responsiveness as much as accuracy |
| Close cycle time | Working days from input freeze to signed authorisation | Shorter is better only if exception clearance stays complete |
| Statutory payment timeliness | Payments made on or before the applicable due date / total payments due | Binary and unforgiving; track at 100% or explain |
| Reconciliation completion | Reconciliation steps evidenced / steps in the checklist | Measures whether the control operated, not just whether payroll ran |
Two habits make these useful. Compute them the same way every month — a metric whose definition drifts is worse than no metric. And review them in a short post-close meeting on around D+7, where each recurring error gets an owner and a fix, rather than being corrected in isolation and repeated next cycle.
---
Putting It Together: A One-Page Payroll Reconciliation Checklist
Print this. Tick it. File it.
Before the run (D-5 to D-4)
- Input freeze declared and communicated
- All manager approvals complete; pending-approval report at zero
- Master data changes for the period reviewed and approved
- Headcount movement schedule prepared and tied
- Attendance extract generated, timestamped and reconciled
- Reimbursement claims reconciled to approvals
- One-time payments and recoveries reconciled to approval file
During the run (D-4 to D-2)
- Trial run completed; system error log cleared
- Exception reports generated and every line dispositioned
- Gross-to-net control totals computed independently and tied
- Variance bridge prepared; residual explained to zero
- Employee-level variance exceptions explained by name
- Arrears reconciled against one-time payments — no double-count
- Statutory computations reviewed at aggregate and sample level
- Negative/zero net and out-of-range component scans complete
Before release (D-2 to D-1)
- Independent four-eyes review complete; queries closed
- Run locked; register version recorded
- Bank file generated from locked run; total and count tied
- Bank details validated; held payments named and approved
- Funding confirmed; dual authorisation obtained
- Sign-off signed and dated
After release (D to D+7)
- Bank confirmation obtained; success + failure = file count
- Failed credits logged, root-caused and reissued
- Payslips published; query channel monitored
- GL journal posted; debits = credits; total = employer cost
- Cost-centre allocation reconciled; no unmapped employees
- Statutory payables reconciled and cleared on payment
- Statutory payments made per applicable due dates; challans filed
- Evidence pack archived
- Post-close review held; recurring errors assigned owners
Thirty items. Most take minutes. The two that take real time — the variance bridge and the exception dispositions — are the two that catch the errors.
---
Frequently Asked Questions
1. How long should a payroll reconciliation take?
For a stable organisation with clean inputs and an integrated system, the core reconciliation work — control totals, headcount schedule, variance bridge, exception dispositions — is typically a few hours of focused effort spread over two to three days, plus the independent review. The variable is not the size of the workforce; it is the messiness of the inputs. Teams that spend a full week reconciling are usually spending it chasing approvals and fixing master data, which is an upstream problem wearing a reconciliation costume.
2. We are a 30-person startup. Is all of this overkill?
Scale it, do not skip it. At 30 people, the headcount schedule takes ten minutes, the variance bridge fits on one screen, and the exception scan is a glance. What you must not skip at any size is the input freeze, the bank-file-to-register tie-out, and independent sign-off by someone other than the preparer. Those three catch the errors that hurt most, and none of them requires a large team. Small organisations actually have the higher concentration risk, because one person often does everything.
3. What is the difference between payroll reconciliation and a payroll audit?
Reconciliation is a preventive control performed inside the close, before money moves. An audit is a detective review performed after the fact, usually by someone independent of the process, checking whether the controls operated and were evidenced. Reconciliation stops errors reaching employees; audit tells you whether your reconciliation is real. You need reconciliation monthly. Audit can be periodic.
4. How do we handle a payroll error discovered after disbursement?
Follow a fixed sequence: quantify the error and the affected population; inform affected employees before they discover it themselves; decide the correction route (off-cycle payment for underpayments, staged recovery for overpayments, in line with your policy and applicable law); document the approval; correct the underlying cause, not just the symptom; and record it in your error log for the post-close review. Recovery of overpayments involves legal and contractual considerations — take advice rather than improvising, particularly where the employee has already left.
5. Should full and final settlements go through the regular payroll run?
Either approach works as long as it is consistent and reconciled. If F&F runs separately, the critical control is a duplicate check confirming the employee was not also paid in the main run, and confirming that the statutory and GL treatment covers both runs in the same period. Whichever route you choose, F&F needs its own reconciliation — notice pay, leave encashment, recoveries, gratuity where applicable, and final tax computation are all easy to get wrong, and there is no next month in which to correct them.
6. How do we reconcile payroll when employees work across multiple states or entities?
Anchor everything to a well-maintained work-location field and a well-maintained legal-entity field on the employee master, because state-specific obligations and entity-level filings both follow from them. Then reconcile per state and per entity, not just in total: state-wise professional tax deduction totals to state-wise challans, entity-wise gross to entity-wise GL and statutory registers. Remote and hybrid arrangements make the location field harder to keep current — build a periodic confirmation step, and verify state-specific obligations with official sources since they differ meaningfully.
7. What should we do differently in a month with a mass event — an appraisal cycle, restructure or bulk hiring?
Expand the bridge and tighten the review. Before the run, obtain the definitive change file (increment master, restructure mapping, bulk joiner list) and reconcile record counts against it. After the run, reconcile the number of employees whose pay changed to the number in the change file — a mismatch either way is an error. Also expect arrears, and reconcile them separately. Mass-event months are when the "it netted off" trap is most dangerous, because large legitimate movements provide cover for errors of similar size.
8. Can we rely on the payroll system's own validation reports?
Use them, but do not treat them as the reconciliation. A system's internal checks validate its own logic against its own data — they cannot detect that the data itself was wrong, that a population was missing, or that an approved change never made it in. The controls with real assurance value are the ones that compare the system's output to something produced outside it: the recruitment system's joiner list, the claims system's approval totals, the bank's confirmation, the general ledger, the signed increment letters. Keep at least one independent source in every material tie-out.
---
Conclusion: Make the Close Boring
A good month-end payroll close is unremarkable. Inputs freeze on time, the bridge closes to zero, the exception report has eleven rows and all eleven have names against them, the bank file total matches the register to the rupee, and the reviewer signs at 4pm on D-1 without drama. That is the target state, and it is reachable by almost any team willing to fix the calendar and hold the freeze.
The payroll reconciliation checklist in this article is deliberately structural, because the specifics — rates, slabs, thresholds, due dates — change, and change at different times for different obligations. Confirm those against current official sources every cycle, or with an advisor who does it for a living. What does not change is the logic: prove completeness with a headcount schedule, prove accuracy with variance analysis and exception reports, prove consistency by tying register to bank file to challan to ledger, and prove that you did all of it by keeping the evidence.
If your reconciliation currently lives in a workbook that only one person understands, the highest-value change is not a better workbook — it is removing the manual handoffs that create the errors. CozyHR brings attendance, leave, employee records and payroll into one system so control totals, headcount movement and exception reports come out of the platform instead of out of a pivot table, and the audit trail builds itself as people work. If you would like to see what your month-end close looks like when the reconciliation is a report rather than a project, take CozyHR for a spin with your own structures and run a parallel cycle alongside your current process.
Freeze the inputs. Explain the variance. Sign the pack. Then go home on time.
---
This article is general guidance for HR, payroll and finance practitioners and is not legal, tax or accounting advice. All figures, employee identifiers and scenarios used are illustrative and invented for demonstration. Statutory rates, wage ceilings, eligibility thresholds, state-specific rules and filing due dates change and vary by jurisdiction and employee category — verify current requirements with official government sources or a qualified advisor before acting.
