Why this step blows up most often
Among the reasons ERP rollouts fail, going live on uncleaned data ranks second — and the effort is routinely underestimated by three to five times.
The reason is simple. In the spreadsheet era every inconsistency was worked around from memory: "that customer is the same as this one", "that SKU is old, we do not use it". That knowledge lives in colleagues' heads, not in the file. A system will not work around it. On day one, every workaround becomes an error message or a wrong number.
This is a checklist you can work through. Do it in order — later items depend on earlier ones.
1. SKUs: establish a unique rule first
This is the foundation. If SKUs are wrong, stock, cost and sales analysis are all wrong.
What to handle:
- Duplicate SKUs — one item with two or three codes, typically created by different people at different times
- One code, several items — more dangerous than duplication
- Inconsistent rules — some use supplier codes, some use internal sequences, some mix in local-language text
- Discontinued items not flagged — lines with no movement for three years still sitting in the master
How to check: pivot the SKU column and look for same-name-different-code and same-code-different-name. That finds most of it.
Pick one rule and stop changing it. Whether the rule is elegant matters far less than consistency.
2. Units and conversions
Mixed units are the invisible reason stock counts never reconcile.
Also handle multi-level units: purchased by the case, sold by the piece. The conversion has to be written down explicitly. If the conversion ever changed because a supplier altered packaging, historic documents must keep the old rate — settle this before go-live, because fixing it afterwards is painful.
3. Customer and supplier masters
- Duplicates — the same company recorded three times under different spellings
- Missing or wrong tax IDs — affects invoicing and is hard to correct later
- Contacts mixed with companies — a person's name recorded as the customer
- Dormant records not archived — still in dropdowns, inviting mis-selection
Be careful when merging duplicates: each one has historic documents attached. After deciding which record survives, the documents must move with it, or they become orphans.
4. Opening stock: do not skip this
Opening stock must come from a fresh physical count. Do not carry over a number from three years ago.
Everything the system calculates afterwards is derived from this figure. If the starting point is wrong, every later number is wrong — and the error gets buried by subsequent transactions, so it cannot be traced.
Quantity is not the only thing to prepare:
| Item | Why it is needed |
|---|---|
| Quantity | The starting point |
| Warehouse / bin | Required once there is more than one location |
| Cost | The basis for margin and stock valuation |
| Batch / expiry | Only if batch-managed, but impossible to reconstruct later |
Count at the quietest trading moment, and record movements between the count and go-live separately so they can be added.
5. Open documents
Anything still in flight at go-live has to come across:
- Purchase orders placed but not received
- Sales orders taken but not shipped
- Receivables invoiced but not collected
- Payables received but not paid
This is the most commonly missed category, because it does not fit the idea of a "master file". The symptom afterwards is "we definitely ordered this but the system does not know".
6. Chart of accounts and opening balances
Only needed if the accounting modules will be used. The chart has to line up with how books are currently kept — if an external accountant does the books, involve them rather than guessing.
Who does this work
It cannot be outsourced. Only people who understand the business know whether two SKUs are the same thing. An external consultant can supply the checklist and the tooling; the judgement has to be yours.
In practice it works better to put one person in charge of the whole dataset, working on it for a fixed slot each day, than to split it across everyone — the latter creates fresh inconsistencies.

