Skip to content
Home » Payroll Migration Checklist Switching Payroll Software Without Errors

Payroll Migration Checklist Switching Payroll Software Without Errors

payroll migration checklist

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. 

Share this post on social!