Before you close
Migration Reconciliation Checker
Check that a data migration moved every record, and moved it intact, before anyone signs off the load.
Open the source extract from the old system and the target extract from the new one. They are read inside your browser; nothing is uploaded, which matters for customer and employee data.
Source extract
Drop a spreadsheet here
The records as they were in the old system: one row per record, with a key column.
Target extract
Drop a spreadsheet here
The same records as the new system exports them. Column names can differ; they are paired by name and can be changed.
Counts are not enough
A trial load that moved 60,000 records out of 60,000 can still have mangled the accented names, cut the long ones at 30 characters, and moved every opening date back a day. Matching counts say the records arrived; they say nothing about whether the values survived. This checks both, record by record.
Sorted by cause
Values are compared by meaning, so a date written two ways or an amount with an extra decimal place is not a difference. What is left is sorted by the kind of damage, because each has its own fix: broken characters point to the file encoding, text cut short to a field length, dates one day out to a time zone, lost leading zeros to a spreadsheet somewhere in the pipeline, and blanks to a mapping that was never filled in.
Control totals
Record counts and the sum of every number column, overall and by a grouping you choose, source against target: the figures a finance or data owner expects to see before sign-off. When the totals differ, the page says how much comes from missing records and how much from values that changed.
What this does not do
It compares two extracts; it does not connect to either system, and it only knows what the extracts contain. It does not decide whether the load is fit to go live, and it does not check business rules the new system should enforce. Columns are paired by name and can be changed before comparing.