Daad Consulting
← All posts
Implementation29 July 202612 min read

The data migration checklist we run before every go-live

Eleven checks between a passing test migration and a live cutover. Skipping any one of them has cost someone a weekend.

Delivery Team
Daad Consulting

A test migration that passes proves the mapping works. It does not prove the cutover will. The gap between the two is where most go-live incidents live: reconciliation nobody owns, sequence errors, and balances that move while the extract is running.

01Freeze the source, or account for the drift

Either the source system is read-only during extraction, or you have a documented delta process. There is no third option, and "the team was told not to enter anything" is not the first option.

Sequence that survives dependencies

  1. Reference and configuration data — chart of accounts, codes, calendars
  2. Master data — people, suppliers, items, students
  3. Open balances and open transactions
  4. History, in whatever depth was actually scoped

History depth is the most commonly renegotiated item on this list. Decide it in writing, early, with the finance and audit owners in the room.

02Reconcile in the language of the business

Row counts are necessary and insufficient. Reconciliation should produce numbers the finance lead recognizes: trial balance by account, receivables ageing totals, headcount by department, enrolled students by program.

bash■ ■ ■
# every load run writes its own evidence file
daad-migrate run --stage master \
  --source legacy.finance \
  --reconcile trial-balance,ar-ageing \
  --out ./evidence/2026-07-29/
A migration is finished when the finance lead signs a reconciliation, not when the loader exits zero.

03The eleven checks

  • Source frozen or delta process documented and rehearsed
  • Full dry run completed on production-scale volumes, timed
  • Rollback tested — restore, not theory
  • Identity duplicates resolved and merge rules signed off
  • Open items reconciled to the cent, by owner
  • Attachments and documents accounted for, with storage sized
  • Integrations pointed at the new system and re-authorized
  • Permissions and role mapping reviewed against leavers list
  • Reports validated against the last closed period
  • Support rota published for the first ten working days
  • Communications sent, with the freeze window stated in local time

04After cutover

Keep the legacy system readable for at least one full reporting cycle, and keep the migration evidence with it. The first month-end close on a new platform generates questions that only the old data can answer.