★★★★★Bespoke software for B2B·One-off build fee, low monthly retainer·You own the software

Legacy systems and migration

Data migration: how to move years of records without losing any

Data migration is the craft of moving years of records from an old system into a new one without losing, duplicating or corrupting any of it. It's slower and more manual than most timelines assume, and it's where most system replacement projects actually go wrong.

Haystak · 12 August 2026 · Updated 12 August 2026 · 9 min read

Illustration of records flowing from an old database into a new system during data migration

Data migration means taking the customer, order, stock, financial and historical records held in an old system and moving them accurately into a new one, so the business can operate on day one without a gap in its history.

It sounds mechanical, but the difficulty is almost never technical. It's that source data is inconsistent, duplicated and sometimes simply wrong in ways nobody noticed while the old system was quietly working around them. Migration is where that gets found and fixed, or where it gets carried forward and causes problems for years.

How this is different from replacing the system itself

If you're deciding whether to replace an old system at all - weighing up cost, risk and timing - our guide to legacy system migration covers that decision. This page assumes the decision is made and focuses purely on the craft of moving the data itself: profiling it, cleansing it, mapping it, reconciling it and verifying it landed correctly.

The stages of a proper migration

StageWhat happensWhat goes wrong if it's skipped
ProfilingAssess what data exists, its quality, and where it livesNasty surprises discovered mid-migration instead of before it
MappingMatch every field in the old system to its home in the new oneData lands in the wrong place, or fields silently get dropped
CleansingFix duplicates, inconsistent formats, missing or contradictory valuesBad data moves cleanly into the new system and looks trustworthy
Migration (the move itself)Extract, transform and load the data, usually in stagesDoing it all at once with no rehearsal, and no way back if it fails
ReconciliationCompare totals and record counts between old and newMissing records go unnoticed until someone needs them
VerificationSpot-check individual records for accuracy, not just totalsRecords that reconcile in total but are wrong in detail
CutoverFreeze the old system, run the final migration, switch overData entered in the gap between final extract and go-live gets lost

Profiling: knowing what you're actually moving

Before writing a single mapping rule, look properly at the source data. How many customer records are there, really, once duplicates are accounted for? How far back does usable order history go? Are stock counts in the system trustworthy, or has the warehouse been working around known discrepancies for years?

This is the stage most timelines skip or rush, and it's the one that most reliably predicts how long the rest of the migration will actually take. A quick sample of a few hundred records, checked by hand, tells you far more than assuming the data is fine because the old system never complained.

Mapping: where every field ends up

Old and new systems almost never structure data identically. A single 'address' field might need splitting into several; a status field with six legacy values might collapse into three in the new system, and someone has to decide the rule for that collapse. Mapping should be documented explicitly, field by field, and agreed with someone who understands both what the old data means and how the new system will use it.

Cleansing: the stage that takes longest and matters most

Duplicate customers under slightly different names, suppliers with several inconsistent code formats, stock items with descriptions that drifted over years of manual edits - all of this has to be resolved before migration, not after. Cleansing is manual, judgement-heavy work. Software can flag likely duplicates or inconsistencies, but deciding which of two customer records is the correct one usually needs someone who knows the business.

  • Deduplicate customers, suppliers and stock items using more than one matching rule - name alone will miss variants and typos.
  • Standardise formats for dates, addresses, phone numbers and codes before mapping, not after.
  • Decide explicitly what happens to genuinely incomplete records: migrate with gaps flagged, or leave behind and handle manually.
  • Keep a log of every cleansing decision, so questions after go-live can be traced back to a reason rather than guessed at.

Migrating in stages, not one leap

A full rehearsal migration into a test environment, well before the real cutover, is what turns a risky one-shot move into a controlled process. Run it, check it, fix what's wrong, and run it again. By the time the real cutover happens, there should be no surprises left, because they've already been found and fixed in rehearsal.

Large or historic datasets are often migrated in phases - recent, actively-used records first, older archival history afterwards - so the business can go live without waiting for every year of history to be perfect.

Reconciliation and verification

Reconciliation checks that nothing was dropped: record counts, financial totals, stock quantities matching between old and new. Verification goes further and checks that individual records are actually correct, by sampling a meaningful number and checking them field by field against the source. Both are needed; neither replaces the other.

Cutover: the moment of highest risk

Cutover is when the old system is frozen, a final extract is taken, and the business switches to the new one. The main risk is the gap between that final extract and go-live - anything entered into the old system during that window can be lost if it isn't accounted for. Planning cutover for a genuinely quiet period, and having a clear process for capturing anything entered during the freeze, closes that gap.

If your migration is part of a wider ERP implementation, the migration timeline needs to sit alongside configuration and testing from the start, not be treated as a separate workstream bolted on at the end. Get in touch if you're planning a migration and want an honest view of how long it will really take.

✦ Where this fits

More on this from us: legacy software modernisation.

Questions we get asked

Common questions

How long does data migration usually take?

It depends far more on data quality than data volume. Clean, well-structured data in a single source system can migrate quickly; messy data spread across several sources with years of inconsistency takes considerably longer, mostly in the cleansing stage.

Can data migration be fully automated?

The extract, transform and load steps can be automated, but profiling and cleansing almost always need human judgement, especially for deduplication and deciding how to handle incomplete or contradictory records.

What happens if we skip cleansing to save time?

Bad data moves cleanly into the new system and looks trustworthy because it's now in a modern interface. The underlying problems - duplicates, wrong values - remain and often become harder to fix once embedded in a new system that other data now references.

Do we need a full rehearsal migration?

For anything beyond a very small, simple dataset, yes. A rehearsal into a test environment is what finds mapping errors and data issues while there's still time to fix them, rather than during the real cutover.

What's the biggest risk during cutover itself?

Data entered into the old system in the gap between the final extract and go-live. Planning cutover for a quiet period and having a clear process for capturing anything entered during the freeze avoids this.

Is this different from a general system replacement project?

Yes. Data migration is one workstream within a wider replacement or implementation project. Our [legacy system migration](/insights/legacy-system-migration) guide covers the broader decision of whether and how to replace an old system.

Planning a data migration? We'll tell you what we'd build.

Tell us about your current data and the system you're moving to, and we'll give you a realistic view of the work involved.

No pitch deck · We map your process · You own the software