Every Business Central project has a data migration and every project underestimates it. What to bring, what to leave behind, how to clean it, and why "reconciled to the penny, twice" is the only acceptable standard.
Ask a project team what they are least looking forward to and the answer is the data migration. It is tedious, it exposes fifteen years of bad housekeeping, and it is where go-lives are lost. It is also the part of the project where a bit of discipline pays back most. Here is how we do it.
The instinct is to bring everything, because leaving data behind feels like losing it. Resist it. Every record you migrate has to be cleaned, mapped, loaded, tested and reconciled, and most old data is never looked at again. The question is not "might we need it" but "what would we do with it in the new system".
| Data | Bring | Leave (keep the old system or an archive for reference) |
|---|---|---|
| Customers, suppliers | Active in the last 24 months, plus anything with a balance or open order | Dormant accounts, duplicates, the 400 prospects sales never called |
| Items | Anything sold, bought or held in the last 24 months, plus BOM components | Discontinued lines, one-off specials, "misc" codes |
| G/L | Opening balances at cut-over; monthly balances for the current and prior year for comparatives | Transaction-level history older than that |
| Debtors and creditors | Open items only, as individual documents, so they can be allocated and chased | Paid history; it adds nothing and clutters every screen |
| Stock | Quantity by item and location, cost, lot and serial where tracked, as a counted opening position | Movement history |
| Open orders | Open sales, purchase, production and transfer orders, with remaining quantities | Completed orders |
| Fixed assets | Asset register with cost and accumulated depreciation to date | Depreciation history |
| Documents and attachments | Contracts, certificates, drawings linked to live items and customers | Everything else, in a read-only archive |
The old system does not get switched off. It goes read-only, somebody keeps a licence, and for seven years it is where you look up a 2019 invoice. That is cheaper than migrating it and safer than deleting it.
Data is cleaned where the people who understand it can see it, which is the old system, not a spreadsheet the consultant sends round. Credit control cleans customers (duplicates merged, addresses fixed, terms correct, contacts current). Purchasing cleans suppliers. The warehouse cleans items (units of measure, barcodes, weights, locations, the two hundred items with "see notes" in the description). Finance cleans the chart of accounts, which is the one place where migrating is a chance to start again: fewer accounts, dimensions instead of a nine-digit code, and a structure the management accounts actually use.
This starts in the Analysis phase and runs alongside design. If it starts in Development it is too late.
Every field in the old system either maps to a field in Business Central, maps to a dimension, or is dropped, and that mapping is written down and signed off before the first load. Loads are done with configuration packages or a migration tool, from the same extract files, by the same script, every time. No hand-editing in between, because the next rehearsal has to produce the same result.
The migration is run in full at least twice before the weekend: once into the SIT environment, so that end-to-end testing runs on real data, and once as a dress rehearsal on the production environment timed against the clock. Each time, five numbers are reconciled and signed by finance: the trial balance, aged debtors, aged creditors, stock value (and quantity by location), and the bank. To the penny. "Within a few pounds" is not reconciled; it is a difference you have not found yet, and it will be larger on the day.
Every rehearsal produces a defects list (a mapping that lost the VAT code, a unit of measure that doubled the stock, a customer with two ledger entries) and the script is fixed, not the data. By the dress rehearsal the list should be empty and the timings known. That is what makes the go-live weekend boring, which is the aim.
Moving from Xero, Sage 50 or QuickBooks is the migration we see most, and it follows exactly this pattern; the migration section has the specifics. If your migration is the part of the plan with the fewest lines against it, that is worth a conversation.