Skip to content

The part of ERP migration nobody budgets for

2 min readtheaifoundry

Data cleaning is usually the largest task in an ERP implementation and the one most likely to blow the timeline. What to profile before you commit to a date.

Ask why an ERP implementation slipped and you will rarely hear “the software was harder than we thought”. You will hear something about the data.

Why it always surprises people

The system you are leaving has been running for years. Over that time it has accumulated duplicate customer records, products with three different SKU conventions, suppliers entered slightly differently by four people, and a “notes” field carrying information the business depends on in a format nothing can parse.

None of this was a problem, because humans were reading it and quietly compensating. A new system will not compensate. It will import all of it faithfully and then behave strangely in ways that take weeks to trace.

Profile before you promise a date

We now do this during discovery, before any timeline is agreed:

  • Count the duplicates. Fuzzy-match customers and suppliers on name, address and tax ID. The number is always higher than anyone expects.
  • Check referential integrity. Orders pointing at deleted products, invoices against customers that no longer exist.
  • Sample the free-text fields. If load-bearing information is sitting in a notes column, somebody has to decide where it goes.
  • Reconcile the money. Take the balance from the old system and the sum of its transactions. If they disagree, find out why before migrating, not after.

This takes a few days and it is the highest-return few days in the whole project.

Who does the cleaning

Not the implementation partner alone. We can identify and deduplicate mechanically, but only someone from your business can say which of two customer records is the real one, or what an abbreviation in a notes field means.

Budget your team’s time for this explicitly. The projects that go smoothly are the ones where somebody on the client side owned data quality as their actual job for a few weeks.

Migrate less than you think

You do not need fifteen years of transaction history in the new system. Open balances, active records and a defined window of history are usually enough, with the old system kept read-only for archive queries.

Every record you choose not to migrate is one you do not have to clean, validate or explain.


This is a seeded example post, included to show the blog’s formatting and set the editorial tone. Replace or delete it before launch.

Keep reading

Example post

When not to use AI

Most problems described to us as AI problems are not. A practical test for whether a model is the right tool, from a company with AI in its name.

Ready to build something that lasts?

Tell us what you're trying to solve. We'll come back with a straight answer on whether we're the right people for it — and what it would take.