← All postsProjects ยท 3 November 2026

The data migration nobody wants to do

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.

What to bring, and what to leave

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".

DataBringLeave (keep the old system or an archive for reference)
Customers, suppliersActive in the last 24 months, plus anything with a balance or open orderDormant accounts, duplicates, the 400 prospects sales never called
ItemsAnything sold, bought or held in the last 24 months, plus BOM componentsDiscontinued lines, one-off specials, "misc" codes
G/LOpening balances at cut-over; monthly balances for the current and prior year for comparativesTransaction-level history older than that
Debtors and creditorsOpen items only, as individual documents, so they can be allocated and chasedPaid history; it adds nothing and clutters every screen
StockQuantity by item and location, cost, lot and serial where tracked, as a counted opening positionMovement history
Open ordersOpen sales, purchase, production and transfer orders, with remaining quantitiesCompleted orders
Fixed assetsAsset register with cost and accumulated depreciation to dateDepreciation history
Documents and attachmentsContracts, certificates, drawings linked to live items and customersEverything 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.

Clean it in the old system, by the people who know 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.

Map it once, load it by machine

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.

Rehearse at least twice, reconcile to the penny

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.

The three migrations that go wrong

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.

Talk to us
Want this done in your Business Central?
Book a 30 minute callGet the monthly newsletter

More from the blog