Payroll Software Migration: A Switchover Guide for SMBs
A step-by-step plan to move from spreadsheets or legacy tools to a new payroll system, including parallel runs and cutover.
Every growing Indian business reaches a point where the payroll spreadsheet starts to creak. Formulas break when someone inserts a column, the one person who understands the macros goes on leave, and a statutory return takes three days of manual stitching. Payroll software migration is the way out, but it is also one of the few projects where a mistake lands directly in your employees' bank accounts. Done well, it is a quiet, boring transition that nobody outside HR notices. Done badly, it produces wrong salaries, angry emails, and a messy year-end.
This guide is a practical, step-by-step playbook for Indian small and mid-sized businesses moving from spreadsheets, or from an ageing payroll package, to a modern HRMS and payroll platform in 2026. It covers when to switch, how to audit and clean your data, how to carry over mid-year balances for PF, ESI, TDS and Professional Tax, how to run a parallel payroll, and how to cut over safely. It also includes a timeline, a data-mapping table, an illustrative reconciliation, vendor questions, and a risk register you can copy.
A note before we begin: statutory rules in India change, and they differ by state and by establishment type. Everything here is general guidance. Always confirm current rates, thresholds, due dates, and forms with your chartered accountant, payroll consultant, or the relevant authority before you configure anything.
Why Indian SMBs outgrow spreadsheets and legacy payroll
Spreadsheets are not bad. For ten employees, a well-built workbook is cheap and flexible. The trouble begins when the business grows in ways the workbook was never designed for.
Typical warning signs include:
- Single point of failure. Only one person knows how the salary sheet works, and nobody has reviewed their formulas in years.
- Version chaos. Files named "SalaryFinalv3_REAL" circulate over email and chat, and nobody is sure which is current.
- Statutory fatigue. Each month you rebuild PF, ESI, PT and TDS working papers by hand, then re-key them into government portals.
- Weak audit trail. When an employee asks why last month's net pay changed, you cannot trace who edited what.
- Leave and attendance disconnect. Loss-of-pay days are calculated in a separate sheet and copied across, which invites errors.
- Multi-state complexity. A second office means a different Professional Tax slab, a different holiday list, and possibly different registrations.
- Employee self-service demand. Staff want payslips, Form 16, and leave balances on their phones rather than in an email request.
Legacy desktop payroll tools bring a different set of problems: no updates when rules change, a vendor who no longer answers the phone, a database that lives on one aging computer, and no mobile access. If any of this sounds familiar, you are a candidate for payroll software migration.
Step 1: Decide the right time to switch
Timing is the single most underrated decision in a migration. A technically perfect project started at the wrong moment can still go badly.
Month timing
Never cut over in the middle of a payroll cycle. Your cutover point should be the start of a pay period, so that a whole month is processed in one system. The ideal pattern is:
- Start the project early in a month.
- Run the first parallel payroll on a month that is already closed, as a rehearsal on historical data.
- Run a second parallel payroll alongside the live month.
- Go live from the first day of the next pay period.
Avoid starting go-live in a month with heavy disruptions such as large festival bonus runs, major appraisal-driven salary revisions, or a mass joining or exit event.
Quarter timing
Many compliance and reporting tasks cluster around quarter ends. TDS returns are filed quarterly, and the data you carry forward is easiest to reconcile when it aligns with a completed quarter. If you move at a quarter boundary, your TDS figures for the earlier quarters are already finalised and filed, which makes the opening balances cleaner and easier to verify.
Financial year timing
The financial year runs from April to March, and this affects migration more than any other calendar factor. There are two common choices:
- Start of a financial year (April). This is the cleanest option. Opening balances for tax and statutory contributions are essentially zero, and there is no mid-year history to carry over. The trade-off is that April is already busy with annual salary revisions, investment declarations, and prior-year tax filings, so your team's capacity may be stretched.
- Mid-year (any other month). This is perfectly feasible and often necessary, but you must load year-to-date (YTD) figures for each employee so that tax projections and annual caps compute correctly. This is the main source of migration errors, which is why a later section is devoted to it.
Many businesses wait for April and then discover they have no time. A reasonable compromise is to move at a quarter boundary, such as the start of the second, third, or fourth quarter, when the preceding quarter's filings are done.
Avoid the last quarter if you can
Moving in the final months of the financial year is risky because year-end tax calculations, Form 16 generation, and reconciliations all depend on a complete and accurate record for the full year. If you must migrate late in the year, plan to import every month's detail, not just totals, so that annual forms are generated correctly from the new system.
Questions to settle on the timing
- Is there a large bonus, arrear, or incentive payment due in the next two months?
- Are appraisals or salary revisions scheduled that will change the master data?
- Who will be on leave in HR, finance, and IT during the planned window?
- Is an audit or inspection approaching that needs data in the old format?
- Does your vendor contract or old software licence end soon, and can it be extended a month as a safety net?
Step 2: Build the migration team and plan
A migration is not an IT project and it is not purely an HR project. It needs at least four voices.
- Project owner. Usually the HR head or finance head. Makes decisions and unblocks problems.
- Payroll processor. The person who runs payroll today. They know the exceptions and the history.
- Finance or accounts representative. Owns the salary journal, bank files, and statutory payments.
- A reviewer who did not build the old process. A fresh pair of eyes, often a finance manager or external accountant, who will challenge assumptions during parallel runs.
In a small company, one person may play two roles, but avoid having the same person both prepare and approve reconciliation. Keep a simple project plan with named owners and dates, and agree a decision log so that choices such as "round off to the nearest rupee" are recorded rather than remembered.
A realistic timeline
The table below shows a typical timeline for a company of 50 to 300 employees. Smaller teams can compress it, and multi-state or complex-structure companies should stretch it. The durations are planning estimates, not guarantees.
| Phase | Typical duration | Key activities | Output |
|---|---|---|---|
| 1. Evaluate and select | 2 to 4 weeks | Define requirements, shortlist vendors, demos, reference checks, contract | Signed agreement, named implementation contact |
| 2. Data audit and cleanup | 2 to 3 weeks | Inventory sources, fix employee records, validate IDs, resolve duplicates | Clean master dataset |
| 3. Configuration | 1 to 2 weeks | Company setup, salary structures, statutory settings, leave policies, holidays | Configured test environment |
| 4. Data import | 1 week | Employee master, bank details, opening balances, leave, loans | Loaded and verified data |
| 5. Parallel run 1 (closed month) | 1 week | Process a past month in the new system, compare | Variance report |
| 6. Parallel run 2 (live month) | 2 to 3 weeks | Run live month in both systems, reconcile | Signed-off reconciliation |
| 7. UAT and training | 1 to 2 weeks | Test scenarios, train admins and employees | Test sign-off, trained users |
| 8. Cutover and go-live | 1 week | Freeze old system, final balances, first live payroll | First payroll in new system |
| 9. Hypercare and review | 4 to 8 weeks | Monitor, fix, first statutory filings, retrospective | Post go-live report |
Phases overlap in practice. Training can begin while the second parallel run is in progress, and data cleanup should start even before you finalise the vendor, because it is work you must do regardless of which tool you choose.
Step 3: Evaluate vendors with the right questions
Payroll is a trust product. You are handing over salary data, bank details, and statutory compliance. Do not choose purely on price or on the polish of a demo. Ask specific questions and request that the vendor demonstrate answers using your own sample data where possible.
Compliance and configuration
- How do you handle updates when statutory rates, slabs, or forms change, and how quickly are they applied?
- Can you configure PF, ESI, Professional Tax, and Labour Welfare Fund per state and per establishment?
- How do you support both the old and new income tax regimes, and the employee's ability to choose?
- Can you generate the files and reports needed for statutory filings, and in which formats?
- How are the recent labour code changes reflected in your wage definitions, and how will you support configuration changes as rules are notified?
Migration support
- What import templates do you provide, and who validates the data?
- Can you load year-to-date data for a mid-year start, including monthly splits for tax computation?
- Do you support parallel runs and, if so, are there extra charges?
- Who is our dedicated contact during implementation, and what are their typical response times?
- What does the data export look like if we leave in future? Can we get complete payroll history out in open formats?
Security and reliability
- Where is data hosted, and how is it encrypted in transit and at rest?
- How are user roles and approval workflows managed? Can we separate the preparer from the approver?
- What audit logs are available for edits to salary data?
- What is the backup and recovery approach, and what uptime commitment do you offer?
- How do you handle personal data under applicable Indian data protection requirements? Ask your legal advisor what you must verify in the contract.
Usability and ecosystem
- Is there employee self-service on mobile, covering payslips, tax declarations, leave, and reimbursements?
- Does it integrate with attendance devices, accounting software, and bank payment formats you use?
- What reporting can be built without developer help?
- How is support provided, in which languages, and during what hours?
Commercial terms
- Is pricing per employee per month, and how are joiners, leavers, and minimum commitments treated?
- Which services are charged separately: implementation, training, custom reports, integrations?
- What are the contract term, renewal terms, and exit provisions?
Ask for two or three references from companies of a similar size and industry, and actually call them. Ask what went wrong during their migration, not just what went right.
Step 4: Audit and clean your existing data
The most common cause of migration pain is not the software. It is dirty source data that nobody noticed because the old process quietly tolerated it. A spreadsheet will happily accept a PAN with a typo, a bank account with a missing digit, or a date of joining written as text. A structured system will not.
Inventory every data source
List every place that holds payroll-relevant information. Typical sources are:
- The main salary workbook or legacy payroll database
- Attendance and leave trackers
- Loan and advance registers
- Reimbursement and claim sheets
- Tax declaration forms and proof submissions
- Statutory challans, returns, and acknowledgements
- Offer letters and salary revision letters
- Bank payment advice files
For each source, record the owner, the update frequency, and whether it is considered the source of truth. When two sources disagree, decide in advance which wins.
Run a data quality audit
Check each field against a set of rules. The following items catch the majority of problems.
- Duplicates. Same person entered twice with different spellings or employee codes.
- Missing mandatory fields. Date of joining, date of birth, gender, designation, department, work location, and bank details.
- Identity numbers. PAN, Aadhaar-linked details where applicable, UAN, ESI insurance number. Check format and presence, and check names match across documents.
- Name consistency. The name on the bank account, PAN, and UAN records should match closely, since mismatches can cause failed payments and rejected filings.
- Bank details. Account number length and IFSC format. Validate with a small test credit before relying on them.
- Dates. Joining dates in the future, exit dates before joining dates, or dates stored as text.
- Status flags. Former employees still marked active, or active employees marked as exited.
- Salary structure integrity. Do components add up to the gross? Are there hidden manual overrides in cells?
- Statutory applicability. Is each employee correctly flagged for PF, ESI, and Professional Tax based on your own policies and current rules?
Cleanup rules of thumb
- Fix at the source first, then export. Do not patch errors inside import files only, or the old system and the new one will drift apart.
- Keep a change log showing what was corrected, by whom, and why. This becomes part of your audit trail.
- Do not delete former employees. You will likely need their data for full and final settlements, tax forms, and statutory queries.
- Freeze structural changes to the master data while you work, or maintain a clear list of changes made during the project so they can be reapplied.
- Confirm sensitive corrections with the employee. For example, if a name differs between documents, ask which is correct and request supporting proof.
A day spent cleaning data typically saves several days of debugging variances later.
Step 5: Map your data to the new system
Data mapping is the process of deciding which column in your old files becomes which field in the new platform. Do it deliberately and write it down. Below is an example mapping table; your actual fields will differ depending on your sources and the vendor's templates.
| Old source field | New HRMS field | Transformation or rule | Validation check |
|---|---|---|---|
| Emp No / Code | Employee ID | Keep the same code so history stays traceable | Unique, no blanks |
| Full Name | First, middle, last name | Split carefully; match PAN spelling | Compare to PAN record |
| DOJ | Date of joining | Convert text to a standard date format | Not in future, not after exit |
| DOB | Date of birth | Standard date format | Age plausible |
| Dept / Designation | Department, Designation | Map to master lists, fix spelling variants | No orphan values |
| Work location | Location / Branch | Link to state for PT and holiday rules | Matches registered address |
| Basic, HRA, Allowances | Salary components | Map each to a defined component with correct taxable and statutory flags | Gross equals old gross |
| PF applicable | PF flag, UAN, wage basis | Convert Yes/No to configuration; capture UAN | UAN present for flagged staff |
| ESI applicable | ESI flag, IP number | Based on current eligibility; capture IP number | IP number present if flagged |
| PT state | PT state setting | Use state of work location | Matches slab for state |
| Tax regime | Tax regime choice | Capture each employee's current choice | Choice recorded for all |
| Bank account / IFSC | Bank details | Store as text to preserve leading zeros | Test credit passes |
| Leave balances | Leave ledger opening balance | One entry per leave type with as-of date | Total matches old register |
| Loans | Loan master | Principal, EMI, balance, start date, interest rule | Balance reconciles |
| YTD earnings and deductions | Opening YTD balances | Monthly split preferred | Totals match old system |
Component mapping needs special care
The most common mapping errors involve salary components. Decide how each old component behaves:
- Is it fixed or variable, and is it paid monthly or periodically?
- Is it taxable, partly exempt, or fully exempt under the regime in use?
- Does it count toward the wage base for PF or ESI under your policy and current rules?
- Does it prorate for loss-of-pay days?
- Does it appear on the payslip as its own line?
If your old process had special cases, such as a flat conveyance amount for some grades or a custom attendance allowance, document them now. Parallel runs will expose any that you missed, but it is cheaper to catch them before.
Use text format for sensitive columns
When exporting from spreadsheets, bank account numbers, IFSC codes, UAN, and phone numbers should be stored as text. Otherwise, leading zeros vanish and long numbers may be shown in scientific notation. This sounds trivial and yet causes failed payments in many first runs.
Step 6: Load the employee master
The employee master is the foundation. Everything else, including salary, leave, loans, and statutory filings, hangs off it.
Core data groups
- Personal. Name, date of birth, gender, contact details, address, emergency contact.
- Employment. Date of joining, employee type, department, designation, reporting manager, location, confirmation status, notice period.
- Compensation. Annual CTC or monthly structure, component-wise values, effective date, revision history.
- Statutory identifiers. PAN, UAN, ESI IP number, and any state-specific numbers.
- Banking. Account number, IFSC, account holder name, payment mode.
- Tax. Chosen regime, declarations received so far, previous employer income if applicable.
- Documents. Offer letter, ID proofs, and contracts, if your platform stores them.
Import in layers
Do not load everything at once. A layered approach makes errors easier to find.
- Load a small pilot group of ten to twenty employees covering different cases: a new joiner, a long-service employee, someone with a loan, someone with a mid-year salary revision, a part-month joiner, and an employee with previous employer income.
- Check their records visually against source documents.
- Fix mapping issues, then load the remainder in batches.
- Run system validation reports and count totals: headcount, total gross, total by department.
Historical salary revisions
If employees received increments during the current financial year, record the effective dates and amounts. Tax projection and arrears logic depend on them. If you only load the current salary, the system may project the whole year at the new rate, which distorts tax calculations for the year.
Step 7: Carry over year-to-date balances in a mid-year migration
This is the section that separates smooth migrations from painful ones. When you move mid-year, the new system needs to know what has already happened in the financial year, because several calculations depend on the full year rather than the single month.
Why YTD balances matter
- TDS on salary. Tax is projected over the whole year and adjusted each month. If the new system does not know what has been earned and deducted so far, it will compute the wrong monthly TDS, sometimes dramatically so.
- Form 16 and annual returns. Annual certificates and returns must show the full year, including months processed elsewhere.
- Ceilings and caps. Some contributions and deductions have annual limits or wage ceilings. Prior months count toward them.
- Variable pay and bonus. Payments made earlier in the year affect eligibility and calculation of later ones.
- Gratuity and leave encashment accruals. Service history and balances need to be continuous.
What to carry over
Aim to load data month by month, not just as a single total. Monthly granularity gives better tax projection and makes annual forms easy to produce. If the vendor supports only totals, ask how that affects Form 16 and quarterly returns.
| Category | What to capture | Why it matters | Verification |
|---|---|---|---|
| Earnings | Gross by component, each month from April | Tax projection, annual forms | Sum equals old gross register |
| Income tax (TDS) | Tax deducted each month, including any cess | Prevents over- or under-deduction | Matches filed quarterly returns |
| Provident Fund | Employee and employer contributions each month, wages on which computed | Annual filings, ceiling checks | Matches filed monthly returns |
| ESI | Employee and employer contributions, contribution periods | Contribution period continuity | Matches filed returns |
| Professional Tax | Amount deducted each month by state | State-wise annual caps | Matches paid challans |
| Other deductions | Loan recoveries, advances, other recoveries | Balance tracking | Matches ledgers |
| Reimbursements | Paid amounts and tax treatment | Annual tax computation | Matches claim register |
| Exemptions and deductions | Proofs accepted so far, declared amounts | Tax computation | Matches declarations |
| Previous employer income | Salary and tax from earlier employment in the year | Tax computation | Matches documents submitted by employee |
Practical rules for YTD loading
- Reconcile to filings. Your YTD numbers should match what you have already filed and paid. Compare them to quarterly TDS returns, monthly PF and ESI returns, and PT challans. If they do not match, find out why before loading.
- Use the same cut-off date everywhere. Pick the last fully processed month and use it consistently across earnings, deductions, leave, and loans.
- Include exited employees from the same year. They may need Form 16 and appear in annual reconciliations.
- Handle in-year corrections. If you made arrears, reversals, or corrections, make sure the net effect is captured, not only the original amounts.
- Document the opening balance logic. Write a one-page note explaining the cut-off, sources, and checks, and have a second person review it.
State-specific professional tax
Professional Tax varies by state and is often based on salary slabs with specific rules for certain months. If you operate in more than one state, configure each location separately and load state-wise YTD deductions. Confirm current slabs and payment schedules with the state authority or your adviser rather than relying on old settings.
Test the TDS projection
After loading, run the tax projection for a sample of employees and compare with the old calculation. Include different scenarios: new joiners, employees with large bonuses, those who changed regime, and those with previous employer income. If the projections differ, dig into whether the cause is YTD data, regime settings, or component tax flags.
Step 8: Migrate leave balances
Leave looks simple, but it is a frequent source of employee complaints after go-live, because people notice their own balances quickly.
Decide the opening balance date
Choose a date that matches your cutover point, such as the first day of the new payroll month. Balances should reflect all approved leave up to the day before cutover, including leave already taken but not yet deducted from pay.
What to load
- Balance for each leave type per employee (casual, sick, earned or privilege, compensatory off, and others in your policy)
- Carry-forward limits and encashment rules
- Accrual schedule and credit date
- Any leave taken in advance (negative balance) that needs recovery
- Optional or restricted holidays used so far
Configure the policy, not just the numbers
Once balances are loaded, the system must apply the policy correctly going forward. Check accrual frequency, proration for new joiners, treatment of weekends and holidays falling within leave, and lapse or carry-forward at year end. Test a few scenarios, such as an employee applying leave across a holiday, or a half-day request.
Reconcile and communicate
Total leave days by type should match the old register. Once reconciled, share balances with employees before go-live and invite corrections for a short period. This gives you a chance to fix discrepancies before they become payroll disputes.
Step 9: Migrate loans and advances
Loans are another area where small errors cause irritation and distrust.
Data to capture
- Original principal and sanction date
- EMI amount and start month
- Number of instalments paid and remaining
- Outstanding balance
- Interest rate and method, if any, and any perquisite tax implications under current rules
- Whether recoveries are automatic or manual
- Approval details
Verify the schedule
Rebuild the repayment schedule in the new system and compare the outstanding balance to your ledger. Confirm that the next EMI due matches the old system's. Check what happens to the final instalment when rounding is involved, and what happens at full and final settlement if an employee leaves with an outstanding balance.
If your company provides interest-free or concessional loans, ask your tax adviser how the benefit should be treated and whether the new system's logic matches your approach.
Step 10: Configure statutory and policy settings
Before any parallel run, the new system must reflect your legal registrations and company policies. Treat this as a checklist and have a second person review.
Company and establishment setup
- Legal entity name, address, and registration numbers (PAN, TAN, PF code, ESI code, PT registration, Labour Welfare Fund registration where applicable)
- Multiple entities or branches, and which employees belong to which
- Financial year and payroll cycle dates
- Pay day and bank payment details
- Working days basis (calendar days or fixed days) and weekly offs
- Holiday calendars by location
Statutory configuration
Confirm each of the following against current rules, and document the source of each setting.
- Provident Fund. Applicability, wage definition for contribution, ceiling treatment as per your policy and current rules, employer and employee shares, administration charges, voluntary contributions.
- Employees' State Insurance. Eligibility thresholds, contribution rates, handling of employees who cross the threshold mid-period.
- Professional Tax. State slabs, frequency of payment, treatment of specific months.
- Labour Welfare Fund. State-wise applicability and periodicity.
- TDS on salary. Tax regime handling, standard deduction, rebate logic, surcharge and cess treatment, declarations workflow, and proof submission windows.
- Gratuity. Eligibility and calculation method per your policy and the applicable law.
- Bonus. Eligibility and calculation approach, if applicable.
- Labour codes. Understand how the wage definition and related provisions apply to your establishment under the current notified position, and ask your adviser to confirm your configuration.
Payslip and payment configuration
- Payslip layout, component names, and ordering
- Bank file format for salary transfer
- Approval workflow and cut-off dates
- Rounding rules
- Email or app delivery of payslips and password protection
Do not copy the old logic blindly
Migration is a good moment to question whether old practices are still right. A legacy sheet may have been calculating something in a way that was correct years ago but is no longer. Review each logic with your adviser rather than replicating it automatically. If you decide to change a calculation, record when and why, so that variances in parallel runs are explainable.
Step 11: Run the parallel payroll
A parallel run means processing the same payroll in both the old and new system, and comparing results line by line. It is your best defence against surprises.
How many runs
Two is a sound minimum for most SMBs:
- Run 1: a closed past month. Process a month that has already been paid, using that month's inputs. Because the right answer is already known, any difference is an error in configuration or data. This is the easiest place to find systematic problems.
- Run 2: the current live month. Process the actual month in both systems, with the old system still being the one that pays. This tests fresh inputs, such as new joiners, leavers, and attendance changes, and is the closest rehearsal to go-live.
If Run 2 still shows unexplained variances, run a third. It is better to delay go-live by a month than to pay incorrectly.
Preparing for the run
- Freeze the master data used for the test so that both systems start from the same facts.
- Use identical inputs: attendance, leave, variable pay, arrears, and reimbursements.
- Make sure opening balances and YTD data are loaded before the run.
- Agree on a tolerance for rounding differences, for example a rupee or less per employee, and record it.
What to compare
Compare at three levels:
- Totals. Total gross, total deductions, total net pay, total employer cost.
- Component totals. Basic, HRA, each allowance, PF, ESI, PT, TDS, loan recoveries.
- Employee level. Net pay for every employee, with a variance column.
Sort the employee-level list by absolute variance and investigate the largest first. Group the causes, since one configuration issue often explains many variances.
Common causes of variance
- A component flagged taxable in one system and exempt in the other
- Different wage bases for PF or ESI
- Rounding conventions (round each component versus round the total)
- Proration differences, such as calendar days versus fixed 30 days
- Missing YTD data, which skews TDS
- Attendance or leave input differences
- Manual overrides in the old spreadsheet that nobody remembered
- Loan EMI start-month mismatches
- Errors in the old system that the new system correctly does not repeat
That last point deserves a note. Sometimes the new system is right and the old one was wrong. When this happens, do not silently adjust. Decide with finance whether to correct employees going forward, whether any back-correction is needed, and document the decision.
Example: an illustrative parallel-run reconciliation
The numbers below are made up for illustration only. They show the structure of a reconciliation for a ten-person sample, not realistic benchmarks for any real company or any statutory rate.
Summary level
| Item | Old system (Rs) | New system (Rs) | Variance (Rs) | Status |
|---|---|---|---|---|
| Total gross earnings | 6,40,000 | 6,40,000 | 0 | Matched |
| Employee PF | 32,400 | 32,400 | 0 | Matched |
| Employee ESI | 1,150 | 1,150 | 0 | Matched |
| Professional Tax | 2,000 | 2,000 | 0 | Matched |
| TDS | 28,600 | 29,250 | 650 | Investigate |
| Loan recoveries | 15,000 | 15,000 | 0 | Matched |
| Total deductions | 79,150 | 79,800 | 650 | Investigate |
| Total net pay | 5,60,850 | 5,60,200 | -650 | Investigate |
Employee level for the variance
| Employee | Old TDS (Rs) | New TDS (Rs) | Variance (Rs) | Root cause | Action |
|---|---|---|---|---|---|
| Employee A | 4,200 | 4,200 | 0 | None | None |
| Employee B | 6,100 | 6,100 | 0 | None | None |
| Employee C | 3,800 | 4,450 | 650 | Previous employer income loaded in new system, not included in the old sheet | Confirm with documents; likely new system is correct |
| Employee D | 5,000 | 5,000 | 0 | None | None |
In this illustration, the whole variance traces to one employee. The old spreadsheet had ignored income from a previous employer, which the new system properly included after the document was loaded. The decision is to correct going forward and let finance decide whether any catch-up is needed for earlier months, with the tax adviser's input.
Notice the pattern that makes this a good reconciliation:
- Totals first, then drill down
- Each variance has a named root cause
- Each root cause has an action and an owner
- Status moves from "Investigate" to "Resolved" only with evidence
Keep these reconciliation sheets. They are valuable evidence of diligence if anyone later asks how your data was validated.
Sign-off criteria
Before you proceed to cutover, agree on explicit exit criteria. Examples:
- Net pay matches for all employees within the agreed rounding tolerance, or each difference is explained and approved
- Statutory totals match for PF, ESI, PT, and TDS
- Bank payment file passes the bank's validation in a test
- Payslips reviewed by HR and by a sample of employees
- All open defects are closed or accepted with a documented workaround
- Finance and HR heads have signed the reconciliation
Step 12: User acceptance testing (UAT)
Parallel runs test calculations. UAT tests everything else: workflows, permissions, reports, and the experience for employees and managers.
Build a test scenario list
Cover the real situations your payroll meets, not only the easy ones.
- New joiner mid-month, with and without prior employer income
- Employee exit mid-month, full and final settlement with notice recovery and leave encashment
- Salary revision with arrears
- Loss of pay days and unpaid leave
- Bonus or incentive payment with tax effect
- Employee switching tax regime during the year
- Reimbursement claim submitted, approved, and paid
- Loan disbursement and recovery
- Employee on notice with partial attendance
- Employee crossing a statutory threshold
- Payroll reopened after a correction
- Employee with a name mismatch or bank payment failure
Test roles and permissions
Confirm that each role sees only what it should. Employees should not see others' salaries. Managers should see only their teams. The approver should be different from the preparer. Try to break access rules deliberately.
Test outputs
Generate each statutory report, journal, bank file, and payslip format you need. Have your finance team check that the salary journal posts correctly into your accounting software. Check that reports reconcile with the processed payroll.
Record defects properly
Use a simple log with description, severity, owner, status, and retest result. Classify issues as blocking (must fix before go-live), important (fix soon), or cosmetic. Decide in advance who has authority to accept a known issue.
Step 13: Train administrators, managers, and employees
Even a perfect system fails if people do not know how to use it. Training should match each audience's needs.
HR and payroll administrators
- Daily and monthly workflows
- Processing payroll, approvals, and corrections
- Handling joiners, exits, and revisions
- Statutory reports and filings
- Master data governance and who may change what
- What to do when something looks wrong
Hands-on practice on the test environment beats slides. Give administrators realistic exercises, including making and fixing mistakes.
Managers
- Approving leave and attendance corrections
- Viewing team information
- Starting basic requests such as promotions or revisions, if your workflow supports it
Employees
- Logging in and setting up their profile
- Viewing and downloading payslips
- Submitting tax declarations and proofs
- Applying for leave and reimbursements
- Where to ask for help
Short guides and a ten-minute walkthrough often work better than long sessions. Record a screen demo and share it. Remember that some employees are not comfortable with apps, so plan a fallback such as a help desk hour for the first month.
Communicate early and often
Tell employees what is changing, when, and what they need to do. Explain that the payslip layout may look different but that pay is calculated the same way, and invite them to check their leave balances and personal details. A short, honest message before go-live prevents a flood of queries after.
Step 14: Plan and execute the cutover
Cutover is the moment you stop using the old system and start using the new one as the system of record. It should be a checklist-driven event, not an improvisation.
Pre-cutover checklist
- Parallel runs signed off and defects resolved
- Final master data refresh agreed, with a freeze date
- Opening balances finalised for the cutover month, including the last processed month's YTD figures
- Leave balances reconciled and communicated
- Loan balances confirmed
- Bank file tested and approved by the bank, if required
- Payslip templates approved
- Roles and approvals configured
- Employees invited and trained
- Backup of the old system and all spreadsheets taken and stored safely
- Support contacts for the vendor confirmed, including escalation path
- A rollback plan agreed in case the first payroll cannot be completed
The cutover sequence
- Close the old system. Finish the last payroll in the old system. Archive reports, payslips, statutory working papers, and filings.
- Freeze changes. Stop edits to the old system, and capture any late changes in a list.
- Refresh balances. Update opening balances in the new system with the final closed month.
- Apply late changes. Add any joiners, leavers, or revisions logged during the freeze.
- Run a final validation. Check headcount, totals, and a sample of employees against the old records.
- Process the first live payroll. Use the same discipline as the parallel run, with a second reviewer approving before payment.
- Release payments and payslips. Release bank files after approval, then share payslips.
- Monitor closely. Track queries, failed payments, and any unexpected variance.
Keep the old system alive, read-only
Do not delete or uninstall the old system or files. Keep them for reference, audits, and queries. Retention requirements vary by record type, so confirm how long to retain payroll records with your adviser.
First statutory filings
The first PF, ESI, PT, and TDS filings from the new system are high-stakes moments. Review them before submission, compare with the previous period's pattern, and be sure that filings covering both systems, such as a quarterly TDS return spanning months processed in each, are consolidated correctly. Plan extra time for these first filings.
Step 15: Hypercare and post go-live review
The first two or three payroll cycles after go-live need extra attention. Treat this as a defined phase with an end date, not an open-ended worry.
Hypercare activities
- Daily check-ins during the first week of the first live payroll, then weekly.
- A query log capturing employee questions and root causes. Patterns reveal training gaps or configuration problems.
- Re-reconciliation of the second month against expectations. Compare trends: headcount, gross, deductions, and statutory totals month on month.
- Vendor escalation. Use the dedicated contact and track open items to closure.
- Confirm bank success. Verify that all payments cleared and chase any failures promptly.
The post go-live review
Hold a structured review roughly four to eight weeks after go-live. Invite the project team, finance, and one or two employee representatives. Cover:
- What went as planned, and what did not
- Number and nature of employee queries
- Errors found after payment, how they were corrected, and the root cause
- Time taken to run payroll compared with before
- Statutory filings: any rejections, notices, or corrections
- Outstanding defects and the plan to close them
- Process changes to adopt permanently
- Lessons for the next system or entity you add
Write up the findings in a short report with owners and dates for each follow-up. When the first year-end arrives, use the same discipline to review Form 16 outputs and annual returns before releasing them.
Decommission the old process responsibly
After a few clean cycles and the first quarter-end filings, formally retire the old process. Archive data, remove access, and document where historical records live. Decide who is responsible for answering queries about pre-migration periods.
Risk register for payroll software migration
A risk register keeps worries visible and assigns owners. Here is a starter you can adapt. Likelihood and impact are rated qualitatively because they depend on your own situation.
| Risk | Likelihood | Impact | Early warning sign | Mitigation | Owner |
|---|---|---|---|---|---|
| Dirty source data causes import failures | High | Medium | Many validation errors in pilot load | Data audit and cleanup before import, pilot group first | Payroll lead |
| Incorrect YTD balances distort TDS | Medium | High | TDS variances in parallel run | Reconcile to filed returns, load by month, test projections | Finance head |
| Statutory configuration error | Medium | High | Statutory totals mismatch | Second-person review, adviser sign-off, compare to filings | HR head |
| Wrong salary or late payment at go-live | Low to medium | High | Unresolved variances before cutover | Strict exit criteria, extra parallel run, rollback plan | Project owner |
| Key person unavailable | Medium | Medium | Leave planned during project | Backup owner named, documented procedures | Project owner |
| Employee confusion and query overload | High | Low to medium | Many questions after demo | Early communication, guides, help desk hour | HR lead |
| Vendor delays or poor support | Medium | Medium | Missed milestones, slow replies | Clear plan with dates, escalation contacts, contract terms | Project owner |
| Data privacy or security lapse | Low | High | Shared files over email or chat | Controlled sharing, access roles, secure transfer, delete temporary files | IT or HR head |
| Integration failure with attendance or accounting | Medium | Medium | Test file rejects | Test integrations in UAT, manual fallback | Finance and IT |
| Scope creep and late changes | Medium | Medium | New requirements during parallel run | Change log and freeze dates | Project owner |
| Old data lost after cutover | Low | High | No archive plan | Backup before cutover, keep old system read-only | Finance head |
| Policy decisions made implicitly | Medium | Medium | Variances caused by undocumented rules | Decision log, adviser input | HR head |
Review the register at the start of every weekly project meeting. Retire risks as they are resolved and add new ones as they appear.
Common mistakes to avoid
Experienced implementers see the same errors repeatedly. Avoid these and you will be ahead of most.
- Starting without a clean data audit. The tool will not magically fix your records.
- Skipping the parallel run to save time. The time you save will be spent on corrections and apologies.
- Treating mid-year balances as an afterthought. YTD data is the heart of a mid-year migration.
- Replicating bad logic. Moving a mistake into a new system just automates it.
- Cutting over mid-cycle. Always switch at a clean boundary.
- Neglecting communication. Employees notice changes in payslips and leave quickly.
- Letting one person do everything. Segregate preparation and approval.
- Trusting configuration without adviser review. Have a qualified professional confirm statutory settings.
- Forgetting the exit path. Make sure you can export your data in a usable format.
- Ending support too early. Give the first quarter special attention.
A condensed migration checklist
Use this as a quick reference once you have read the detail above.
Before you start
- Choose a cutover month and confirm it avoids major disruptions
- Name the team and the backup for each role
- Shortlist vendors and get references
Prepare
- Inventory sources and run a data quality audit
- Fix errors at the source and log changes
- Complete the data mapping table
- Gather YTD data, reconciled to filings
Configure and load
- Set up the company, statutory settings, salary structures, leave policies, and holidays
- Load a pilot group, then the full employee master
- Load balances for YTD, leave, and loans
Validate
- Run a closed-month parallel payroll, then a live-month parallel
- Reconcile at total, component, and employee level
- Complete UAT with real scenarios
- Obtain written sign-off
Go live
- Train administrators, managers, and employees
- Freeze, refresh, and process the first live payroll
- Review statutory filings before submission
- Monitor through hypercare and hold a post go-live review
Frequently asked questions
How long does payroll software migration usually take?
For many small and mid-sized businesses, a realistic range is roughly six to twelve weeks from vendor selection to first live payroll, depending on headcount, number of locations, data quality, and how many parallel runs you need. Companies with clean data and a simple structure can move faster. Multi-state or complex-structure businesses should plan longer. Treat these as planning estimates and set your own timeline with your vendor.
Is it better to migrate at the start of the financial year or mid-year?
Starting in April is cleaner because you have no year-to-date balances to carry over. However, it is also a busy period, so it only works if you start preparation well before. Mid-year migration is entirely workable if you load accurate monthly YTD data for earnings, TDS, PF, ESI, and PT, and reconcile it to your filed returns. Many businesses choose a quarter boundary as a practical compromise.
Do I really need to run a parallel payroll?
For almost every business, yes. A parallel run is the only reliable way to prove that the new system calculates what you expect, using your real data. It surfaces configuration errors, undocumented manual adjustments, and data issues before they reach employees. If your team is very small, you can compress the exercise, but skipping it entirely is a gamble with people's pay.
What if the parallel run shows differences?
Small differences are normal in the first run. Sort variances by size, find the root cause, and fix configuration or data. Sometimes the old system or spreadsheet turns out to be wrong. When that happens, document the finding and agree with finance and your tax adviser how to handle it. Repeat the run until all variances are resolved or explained and approved.
How do I handle employees who joined from another employer during the year?
Capture the previous employer's income and tax deducted, based on documents the employee provides, so that tax is projected correctly for the full year. Load these details into the employee's tax record. Check that your new system uses them in the annual projection, and confirm the treatment with your tax adviser.
What happens to our historical payroll data?
You should retain it. Keep the old system or exported files in a secure, read-only archive, and load the data you need for ongoing calculations and annual forms into the new platform. Ask your vendor about historical data import, and about what export options exist if you ever move again. Confirm retention periods for payroll records with your adviser.
Can we migrate directly from Excel without cleaning the data first?
You can technically import messy data, but it is a poor idea. Errors in names, identity numbers, bank details, and dates tend to cause failed payments, rejected statutory filings, and distorted calculations. A short cleanup phase pays for itself many times over. Fix issues at the source and keep a change log.
Who should sign off before we go live?
At a minimum, the HR head and the finance head, with a reviewer who was not involved in building the reconciliation. For statutory settings, it is wise to get written confirmation from your chartered accountant or payroll consultant. Sign-off should be based on explicit exit criteria agreed at the start, not on a feeling that things look fine.
Conclusion: make the move boring
The best compliment a payroll migration can receive is that nobody noticed. Employees get paid on time, payslips look sensible, statutory filings go through, and HR spends less time wrestling with files. That outcome is rarely luck. It comes from choosing a sensible cutover date, cleaning your data, loading balances carefully, proving the numbers through parallel runs, training people, and reviewing honestly afterward.
If you are weighing a move, start with the data audit. It costs nothing, it benefits you whichever tool you choose, and it will tell you how big the project really is. Then map your fields, agree a timeline, and pick a vendor that is willing to show its work on your own data.
If you would like to see how this looks in practice, CozyHR is built for Indian SMBs that want HR and payroll in one place, with employee self-service, statutory support, and guided implementation. You are welcome to try CozyHR with a sample of your own data and see how your payroll would run before you commit to anything. Whatever you choose, take your time with the parallel run, verify your statutory settings with a qualified adviser, and make the migration the quietest payroll month your team has had.
