erpification.com  ·  the definition, and the service

Erpification  /  Guides  /  Data migration checklist

ERP data migration checklist

The largest block of work in most implementations, and the one most often treated as a technical task. It is mostly a business decision task, taken a few thousand times.

The rule that saves the most time

Migrate what you need to operate and to answer questions. Nothing else.

Every project starts with someone asking for all of the history, because it feels safer. It is not safer. A decade of transactions multiplies the cleansing work, imports every historical error into a clean system, and delays go-live while people argue about records from three managers ago. The safe version is to keep the old system readable for a defined period and migrate only what the business runs on.

What to migrate, what to archive

DataDecisionUsual cut
Chart of accountsMigrate, redesignedNot a copy of the old one
Customers and vendorsMigrateActive, plus anyone with an open balance or a contract
Items and materialsMigrateActive and sellable, plus anything on an open order
Bills of materials, routingsMigrateCurrent revisions only
Open receivables and payablesMigrateAll open items, at document level
Open sales and purchase ordersMigrateAll, including partially shipped
Inventory quantities and valuesMigrateAs counted at the freeze, not as recorded
Transaction historyUsually archiveSummary balances if anything
Closed orders, old quotesArchiveLeave them in the old system
Attachments and documentsDecide deliberatelyOften the biggest hidden volume

The loading order

Dependency order, not convenience order. Loading out of sequence creates orphan records that have to be deleted and reloaded, which is how a migration loses a week.

Foundations

  • 01Entities, sites, warehouses
  • 02Currencies
  • 03Chart of accounts
  • 04Fiscal calendar
  • 05Tax codes
  • 06Units of measure

Master data

  • 07Customers
  • 08Ship-to and bill-to
  • 09Vendors and terms
  • 10Items and materials
  • 11Bills of materials
  • 12Routings
  • 13Price lists and contracts

Balances

  • 14Opening trial balance
  • 15Open receivables
  • 16Open payables

Live transactions

  • 17Open sales orders
  • 18Open purchase orders
  • 19Inventory by location, lot or serial

Dependency orderTop to bottom. Nothing in a layer can be loaded until every layer above it exists, because the records below point at the records above. Loading out of sequence creates orphans that have to be deleted and reloaded.

  1. Company structure: entities, sites, warehouses, currencies
  2. Chart of accounts, fiscal calendar, tax codes
  3. Units of measure and conversions
  4. Customers, then customer ship-to and bill-to addresses
  5. Vendors, then purchasing terms
  6. Items and materials, with their units and default costing
  7. Bills of materials and routings
  8. Price lists, discounts and contracts
  9. Opening trial balance
  10. Open receivables and payables, at document level
  11. Open sales orders and purchase orders
  12. Inventory quantities, by location and lot or serial
  13. Anything historical you decided to keep, last

Cleansing, before you map anything

Cleansing is not a step in the middle. It runs ahead of everything and it has to be owned by the business, not by whoever is writing the load scripts.

The most underestimated taskDeciding which of four spellings of a customer is the real one. It looks clerical, it is a business decision, and it has to be made a few thousand times. Budget for it as a workstream with a named owner, not as a task in someone's spare afternoon.

Trial loads

Plan for at least three, and treat the first one as a discovery exercise rather than a failure.

  1. Trial one proves the pipeline works and surfaces the field mapping you got wrong. Expect it to be ugly.
  2. Trial two is about quality: does the data make sense to the people who use it? Have the function owner look at fifty real records, not a report about them.
  3. Trial three is the dress rehearsal, timed. If the full load takes eleven hours, you need to know that before the weekend you have allocated for cutover.

Every trial gets the same reconciliation pack as the real thing. A trial you do not reconcile has told you almost nothing.

The reconciliations that have to tie

This is the part that makes go-live defensible. Each one is signed by the person who owns that function.

ReconciliationTies toSigned by
Trial balance at cutoverOld system, same dateFinance
Receivables total and ageingAged listing from the old systemFinance
Payables total and ageingAged listing from the old systemFinance
Inventory valueGeneral ledger inventory accountFinance and operations
Inventory quantity by locationThe physical count at the freezeOperations
Open sales orders, count and valueOld system reportSales
Open purchase orders, count and valueOld system reportPurchasing
Active customer and vendor countsCleansed source listThe list owner

If one of them does not tie, do not go live and plan to fix it later. An unreconciled balance at go-live is the single most reliable cause of the shadow spreadsheets coming back, because the first person who spots the discrepancy tells everyone the new system is wrong.

Cutover and the freeze

§

Five ways this goes wrong

Where this sitsData migration is stage four of six. The stages before it decide what you are loading into and why. See the six stages of erpification.

Read next