Switching payroll software mid-year is one of the most stressful things an HR or finance team can do. Get it wrong and you’re dealing with incorrect salary calculations, missed statutory filings, confused employees, and a parallel-run that drags on for three months. Get it right and the new system is live before the next salary cycle with no one noticing the transition happened.
Most migrations fail not because the new software is bad, but because the data going in was wrong or incomplete. This checklist is built around what to verify, clean, and confirm before you flip the switch.
| Best time to migrate: start of a new financial year (April) or at the very least the start of a new month. Never mid-month. If you must migrate mid-year, ensure YTD (year-to-date) figures for every employee are entered in the new system before running the first payroll. Missing YTD data leads to incorrect TDS calculations for the full year. |
Phase 1 Before You Start
Before touching any data, three decisions need to be made. Which month is the go-live month? Who owns the migration internally HR, finance, or both? And is someone from the new vendor assigned to support the data upload, or is the company doing it alone?
The parallel run question: most vendors recommend running the old and new system simultaneously for one month. It sounds safe. In practice it doubles the work and often creates confusion about which system is authoritative. A better approach if your data preparation is thorough is to test on a sample of 10–15 employees in the new system, verify the output against the old system manually, and then do a full cutover. Parallel runs tend to extend indefinitely.
| Pre-Migration Decisions Confirm go-live date ideally start of April or start of a new month Assign internal owner for the migration (one person, not a committee) Confirm vendor support availability during migration month Decide: parallel run or clean cutover after testing Inform employees about the system change and what (if anything) they need to do |
Phase 2 Data to Export from the Old System
This is where most migrations go wrong. Companies export whatever the old system gives them and assume it’s complete. It usually isn’t. Before exporting anything, run a headcount reconciliation the number of active employees in the old payroll system should match your actual headcount exactly. Any mismatch needs to be resolved before data moves.
| Employee Master Data Full name (as per PAN card spelling matters for TDS) Employee code Date of joining Date of birth PAN number verify format (5 letters, 4 digits, 1 letter) Aadhaar number (for ESI and EPFO linkage) UAN number (EPF) critical, cannot be regenerated ESI number (if applicable) Bank account number and IFSC code verify against cancelled cheque Designation and department Employment type (permanent / fixed-term / contractual) Work location and state (for Professional Tax applicability) |
| Salary Structure per Employee Basic salary (used for PF, gratuity calculation verify it’s at least 50% of gross) HRA amount Special allowance / other fixed components Variable pay structure (if any) CTC breakup as agreed in appointment letter compare with what’s actually being paid Any advance salary outstanding Any loan deductions active |
| YTD (Year-to-Date) Figures Critical for Mid-Year Migrations Gross salary paid month by month from April to migration month PF contributed employee and employer share separately ESI contributed employee and employer share separately Professional Tax deducted per state TDS deducted so far this financial year Investment declarations submitted under Section 80C, 80D etc. Previous employer income declared (for new joiners in current year) LOP days taken month by month Leave balance as of migration date earned, casual, sick separately |
Phase 3 Compliance Data
Statutory filings don’t pause during a migration. The PF ECR (Electronic Challan cum Return) is due by the 15th of every month. ESI challan by the 15th. If your go-live is on the 5th and you haven’t configured the new system’s compliance settings, you’re filing late. This is the part most migration checklists skip.
| Statutory Compliance Setup in New System EPFO establishment registration number ESIC employer code Professional Tax registration numbers state-wise if multiple states TAN number (for TDS filing) GSTIN (if payroll invoices are generated for contractors) Confirm PT slab configuration per state matches current state notifications Confirm PF wage ceiling settings (₹15,000 voluntary above this) Confirm ESI wage ceiling (₹21,000 gross/month) Configure payment modes bank transfer details for PF and ESI challans Verify ECR file format matches EPFO’s current requirement |
Phase 4 Testing Before Go-Live
Run a test payroll in the new system for 10–15 employees across different salary bands and employment types. Don’t test only the simple cases. Pick someone with a loan deduction, someone with an LOP, someone who joined mid-month, someone on ESI, someone above the PF ceiling. Those edge cases are where errors hide.
What to verify in the test run: gross salary matches the old system for the same inputs. PF deductions match (employee 12%, employer ~13.5% total including admin and EDLI). ESI at 0.75% employee and 3.25% employer. TDS calculation based on projected annual income and declarations. Net take-home matches. Leave balance carries forward correctly.
| Test Payroll Verification Gross salary matches old system output for same month inputs PF employee deduction: 12% of basic PF employer contribution: 3.67% EPF + 8.33% EPS (capped ₹1,250) + 0.50% admin + 0.50% EDLI ESI calculation correct for employees below ₹21,000 gross Professional Tax deducted at correct slab for employee’s state TDS projected correctly based on YTD income and declarations Mid-month joiners prorated correctly LOP deduction calculated on correct divisor (26 or 30 confirm which) Leave balances visible and matching old system records Payslip format shows all statutory deductions as separate line items Bulk payslip generation working Bank transfer file generates in correct format for your bank |
Phase 5 Go-Live Month
First payroll on the new system. Keep the old system accessible (read-only is fine) for at least three months you will need to look up historical data. Do not delete or archive the old system immediately.
The first month’s payslips should be manually spot-checked against the previous month not by running a full parallel, but by picking 8–10 employees and comparing line by line. If anything is off, catch it before the bank transfer runs.
| Go-Live Checklist Old system in read-only mode (not deleted) First payroll processed and verified against spot-check sample Bank transfer file generated and reviewed before upload PF ECR file generated, verified, uploaded to EPFO unified portal by 15th ESI challan generated and paid by 15th PT payment done as per state schedule TDS challan (Form 281) paid by 7th of following month Payslips distributed to employees Employees informed of any change in payslip format or self-service login Vendor support contact confirmed for post-go-live issues |
The Two Things That Derail Every Migration
Dirty data. Bank account numbers with typos, PAN numbers that don’t match the employee’s name, UAN numbers that were never updated after an employee changed jobs these surface during migration and add days to the timeline. The solution is to audit the data in the old system before you start the migration, not after. A simple exercise: pull the employee list, cross-reference PAN numbers against the income tax portal, and verify bank accounts by running a penny-test transfer. Takes two days and saves two weeks.
No single owner. Migrations that involve HR, finance, the old vendor, and the new vendor simultaneously with no single person accountable tend to drift. Someone has to own the checklist, set the deadlines, and make decisions when the old vendor is slow to export data or the new vendor’s import template has a column mismatch. Without that person, the migration takes three months instead of three weeks.
For companies switching to Waggex: the onboarding team configures the salary structures, compliance settings, and YTD data in the first month. The dedicated account manager runs the first payroll alongside your team so any issues are caught before they reach employees. Setup typically takes 1–3 days depending on headcount and salary structure complexity.




