Skip to main content
GullySystem
A practical guide

Data migration checklist: before, during and after cutover

Ganesh HSStrategy and Technology, GullySystem
Practical advice · 5 min read

In this guide 6 sections
The short answer

List every source file and freeze a copy of each, then run test loads and a parallel run before anything goes live, so no surprise reaches a customer. At cutover, freeze entry, load the delta, check totals, then open the new system and keep every held-back row on a named list. Write the way back.

Before: inventory every source and freeze a copy

List every file that holds business data: the sales workbooks, the stock sheet on the warehouse laptop, the old Access database and the phone contact export. Note who edits each.

Freeze a read-only copy of every file. Put the date in its name. These frozen copies become your evidence when someone swears a customer vanished, so keep them on a separate drive, away from the working folder.

Then write down what each column means. Names like Status2 or Old Rate need a person who still remembers them, and that person may leave next quarter, taking the only copy of the meaning along. Ask now.

  • File name, owner and last edit date
  • Sheet and column list with a meaning for each
  • Row count per sheet
  • Formulas that feed other files
  • Frozen copy location

Before: run test loads until the numbers hold

A test load puts a slice of real data into the new system’s staging area, where nobody works yet and nothing can reach a customer. It will fail first time. Dates arrive as text, phone numbers lose a leading zero, and a comma inside an address splits one column into two.

Fix the mapping and load again. After every pass, compare record counts and control totals with the source, usually receivables, stock quantity and open order value, then read the exception report line by line.

Never hide bad rows. They go on a held-back list with the reason beside each row, such as a duplicate customer code or an orphan invoice with no parent account. One named person owns that list. It is a work queue, not a bin.

  • Count of records read, loaded and held back
  • Control totals against a report you already trust
  • Ten sample records traced by hand
  • Exception list with an owner per row

During: parallel run, freeze window and delta load

In a parallel run, both systems take every entry for a set period, and each day someone compares invoices, receipts and stock moves in both. Every difference exposes a mapping error. Log each one.

On cutover day, announce the freeze window. From the stated hour nobody edits the spreadsheets while one person takes the final copy and loads only what changed since the last full load. That slice is the delta load.

Check totals before anyone logs in. If they disagree, stop. Do not open the doors on numbers you cannot explain, however late the hour has become or however many staff are waiting to start.

  • Freeze start time and who confirms it
  • Final copy taken and named
  • Delta load run and logged
  • Totals signed by the owner of each ledger

After: write the way back and keep the old files

Write the way back before cutover. It names who may call a rollback. It also says what happens to entries already made in the new system, which must be keyed back or exported to the old files, otherwise they vanish.

Keep the spreadsheets read-only for at least one full period close, inside an archive folder beside the frozen copies and the signed totals from cutover day. Delete nothing in your most confident week. Confidence arrives before the errors do.

Check with the users, not for them. Ask each team what looked wrong, which screens confused them and which report did not match the old one, then write every answer down.

Close out the held-back rows

Every migration leaves some rows behind: a customer with no name, a part number used twice, an invoice dated next year. Review the held-back list weekly through the first month, and mark each row loaded, corrected or discarded, with a reason.

Only the data owner may discard. A clerk working alone should never decide that a supplier balance is junk, since a small unpaid bill can become a dispute months later.

Sign the migration off when the list is empty and the first month end matches the old books in every control total. Pin the final list beside the frozen copies. Then diarise an archive review.

Cutover checklist sheet

A one page sheet in three blocks. They are before, during and after. Each row carries a task, an owner, a due time, a done tick and a notes column, so nothing floats between people. A strip at the foot holds the freeze hour, the rollback decision maker, the count of held-back rows and the signature of each ledger owner.

Open a blank worksheet to print

Questions owners ask

How long should the freeze window be?

Long enough to take the final copy, run the delta load and check every control total before staff return to their desks on the next working morning. Small firms often need an evening or a weekend, and one dry run on a copy of the data will expose the slow steps early.

Should we migrate all the history?

Not always. Load open items and recent periods, then keep older years as read-only reports, and ask your accountant how long old records must stay reachable. Archive the rest.

What if the totals do not match at cutover?

Stop and find the difference using the exception list and sample tracing, however tired the team is and however many customers are waiting for the doors to open. If it cannot be explained inside the window, follow the written way back, restore the frozen copies and try again on another date.

Who signs off the migration?

The owner of each ledger or list signs for its totals, and one senior person signs for the whole migration after the first month end. No sign, no archive deletion.

Browse all guidesBack to top ↑
Next step

Have a specific situation to work through?

This article covers the general case. Tell us what you’re actually dealing with and we’ll respond directly.

Share Your Requirements