Ask any consultant what sinks go-lives and you will hear the same answer: data. Software can be reconfigured in a day; a corrupted item master poisons every transaction that touches it. Here is the checklist we use on every migration.
Before you start
- Inventory your sources. Old ERP, accounting package, spreadsheets, the CRM nobody admits to using, list every place data lives.
- Assign owners. Every data domain (customers, suppliers, items, chart of accounts) needs one accountable person who signs off on its quality.
- Decide what history to bring. Open transactions must come across; years of closed history often should not. Archive it instead.
Cleaning
- Deduplicate customers and suppliers first, they infect everything downstream.
- Standardize item codes and units of measure. One product, one code.
- Verify tax registrations, payment terms and currencies on every partner.
- Reconcile stock counts physically before migrating quantities.
Budget rule: cleaning takes three times longer than anyone expects. Start it the week the project kicks off, not the week before go-live.
Mapping and loading
- Map every source field to a destination field, and write down the transformations.
- Load master data first, then opening balances, then open transactions.
- Use the platform's import tooling or APIs, never manual re-entry for anything over a hundred records.
Validation
- Reconcile control totals: customer balances, supplier balances, stock valuation and trial balance must match the source to the cent.
- Have the data owners spot-check real records they know well.
- Run at least one full rehearsal migration before the real one. Time it, so cutover weekend has no surprises.
Cutover
Freeze changes in the old system, run the final migration, validate the control totals again, and only then open the new system to users. Keep the old system available read-only for reference during the first months.
Handled this way, migration becomes a controlled engineering task instead of a leap of faith, and go-live day is genuinely boring, which is exactly what you want.

