SystemField Inventory & Supply Chain

ERP Migration Data Validation

Data migration validation that traces sampled ERP records back to the agreement, drawing or batch record, states a bound for each stratum and sweeps the ones above the line.

Follow mock cutover 3 from the trace to a signed object ↓
Watch with transcript →
The problem

A perfect copy of the old ERP passes each report, even where it was wrong

When an acquired device maker moves onto the buyer’s ERP, its item masters, lots, kit bills, hospital consignment locations, prices and approved suppliers move with it. Reconciliation reports compare old against new, so a faithful copy passes. The agreement, the drawing and the batch record behind each value are rarely opened.

Stewards check spreadsheets for weeks and sign a summary with no stated confidence. A status code with no mapping row falls to a default and frees a held lot. An amendment signed during the master-data freeze waits in a log while the old record is loaded, and the errors show up after go-live as wrong prices and stock sent to the wrong room.

Built forMaster data stewardsProcess ownersData migration analystsValidation leadsERP program managers

The Problem Today

Migration reports prove only that the new ERP matches the old one, and the old ERP was never the source.

18,000 h
of validation work in one large maker’s migration year our estimate

Reconciled by hand today

  • Spreadsheet
  • Old ERP
  • Contracts
  • Drawings
  • Sign-off without confidenceA fixed count of checks, with nothing stated
  • Holds lost in mappingA status with no mapping row goes live as free

The Solution

  1. Sample each stratumRecords drawn at random in each stratum, with the seed recorded
  2. Trace each to its sourceThe agreement, the drawing or the batch record, not the old ERP
  3. Bound each stratumAn exact upper bound against the go-live line; failures swept in full
  4. Owners sign each objectThe steward verifies, the process owner approves, quality signs

Built-in controls

  • Signers open the records drawn for them
  • Agents never load, sign or approve a cutover
  • Holds and expiry checked for each record

What You Get

Each object goes live on evidence a signer can defend, and each correction cites its document.

9,000 h
of those validation hours saved in that migration year our estimate
  • One plot for all strataSee which strata are under the line, and why
  • Checks continue after go-liveNew orders and receipts sampled daily against source
  • Evidence for the auditorEach signer, what they opened and what they signed for
One mock cutover, one morning

Data migration validation on mock cutover 3: three strata above the line

An acquired device maker moves onto its buyer’s ERP at go-live in the new year. The third rehearsal load finished overnight, and this is the morning after.

demoBoth companies, their hospitals and the people here are sample data, and so is every count.

  1. 01Trace

    Twenty-one strata clear the line at 4.9%, and three sit above it

    Data migration analyst

    Mock cutover 3 loaded 419,320 records in six objects and 24 strata. The analyst starts the trace: 60 records per stratum drawn at random, seed recorded, each traced to its source document. Twenty-one strata come back 0 of 60, a bound of 4.9%. Hospital consignment locations, local prices and pump-set kits stop above the 5% line.

  2. 02Trace

    Seven of 60 hospital locations wrong puts the bound at 20.8%

    Data migration analyst

    One health system’s consignment stratum holds 2,140 locations. Seven of the 60 sampled differ from their source, so the 95% upper bound on the error rate is 20.8%. The plan, approved by quality before any load, says two or more errors mean sweeping the whole stratum. The other sampled rows match their schedule rows.

  3. 03Trace

    The new ERP copied the old one faithfully, and both are wrong

    Data migration analyst

    The record opens in three columns: new ERP, old ERP and the source. Both systems show the location active, replenished weekly, at par 2. An amendment to the location agreement closed that storage room and moved the stock to another hospital’s cath lab. It was signed after the master-data freeze, so it sat in the freeze log. A compare of old against new passes it.

  4. 0409:30

    Three lots on hold in the old ERP arrive unrestricted in the new one

    Computer system validation lead

    Critical fields are compared on each record, with no errors allowed. Of 412 held lots, 3 read unrestricted: 444 units under the old system’s investigation hold code, which mapping table v4 had no row for, so it fell to the default. She blocks all three in the rehearsal copy at once. The agents compare the status and hold record number only.

  5. 0509:38

    Sweeping all 2,140 locations finds 214 wrong, all from one closed room

    Data migration analyst

    The sweep runner checks every location in the stratum against the agreement. It finds 214 wrong, 10.0%, each one a location in the closed storage room, still active at par in both ERPs. The correction drafter writes each fix from Schedule B, grouped by the rack it moves to: 61, 58, 52 and 43, which add up to 214.

  6. 0609:43

    The steward reads the amendment and its schedule before any rack opens

    Master data steward

    Accept stays locked until she has read the amendment. Section 2.1 closes the room from its effective date, and Schedule B maps each closed location to a rack position at the receiving hospital, 214 rows in all. The old ERP and the load both carry the record from before the freeze, so the paper is the only place the change exists.

  7. 0709:53

    Four racks accepted, and the re-check finds 0 of 2,140 left

    Master data steward

    She accepts the drafted corrections rack by rack, each card marked with her name. The sweep runner then checks all 2,140 locations against the agreement again: 214 now closed and mapped to the receiving hospital, 1,926 unchanged, none differing from source. Nothing reaches the new ERP until the object is approved.

  8. 0810:03

    The process owner opens corrections he did not make, drawn at random

    Process owner

    On a medium-risk object each signer opens two drawn records in his own session. The steward’s two were clean records; the process owner’s are corrections from the sweep. This one shows the new ERP now holding the source values, the old ERP still holding the old ones, and the schedule row that decides it.

  9. 0910:08

    Consignment locations approved for go-live, one object of six

    Process owner

    He signs approved for go-live with his password. His signature says what it rests on: two of the 214 corrections opened by him, the rest covered by the sweep runner’s re-check. The object turns approved. The other five still wait for their signers, and quality signs the validation summary only once all six are approved.

Zero in 60 clears a 5% line, and seven in 60 means sweeping all 2,140

Exact one-sided bounds, from the validation plan quality approved on the first day after the acquisition. A record whose source cannot be found counts as an error.

Found in the sample95% upper boundWhat the plan does
0 of 604.9%Passes the go-live line
1 of 607.7%Draws 60 more
1 of 1203.9%Passes after the second draw
7 of 6020.8%Sweeps the whole stratum

demoSample data, from the working solution. The second draw makes it a two-stage plan, so its 95% is nominal. The plan says so, and quality accepted it.

Three errors a clean old-against-new compare carried straight through

Each was found by reading the document that created the record.

A price from a replaced exhibit

One local hospital price loaded at $1,180. The agreement’s amended exhibit says $1,145, and the old pricing team never keyed it.

A kit line with no released drawing

One pump-set kit line had no released kit drawing. The tracer found a candidate under the old numbering and did not choose it; the steward attached it.

A hold code with no mapping row

The old system’s investigation hold code had no row in the status mapping, so three held lots fell to unrestricted.

demoSample data, from the working solution.

Around the cutover

The plan, the corrections and the go or no-go behind one ERP cutover

Where the program stands once consignment locations are approved.

Bound plot after the sweepThe swept stratum jumps right to 2,140 traced and drops to zero after the corrections. Two strata still sit above the line, waiting for their second draw.
Objects, strata and the planSix objects and 24 strata, each with its risk, its source of truth and its sample, and how many strata sat above the line after each mock cutover.
Correction logEach correction with its source passage, who accepted it and what the process owner opened. The rest are marked as covered by the full re-check.
Go or no-goEight gates with who signed and when, the clock to the go or no-go meeting, and the cutover load verification still to come before business go-live.
Checks after go-liveFor the first month after go-live, new orders, replenishments, receipts and held lots are sampled daily against the same sources.
Audit trailEach opening, verification and approval with its meaning, reason and session. Typed reasons are kept word for word and flagged as not compared.

demoSample data, from the working solution.

Steward verifies, process owner approves, quality signs the summary

Nobody checks their own work, and each signer opens records drawn for them in their own session.

Master data steward
Sees
Each drafted correction with its source passage
Signs
Accepts corrections, then verifies each object
Process owner
Sees
Records drawn for him, including corrections he did not make
Signs
Approves each object for go-live
Computer system validation lead
Sees
The plan, the full checks and the lost holds
Signs
Blocks held lots, approves mapping changes, signs the summary
ERP program manager
Sees
The gates and who signed each
Signs
Records go to cutover or no-go, with a reason
Internal audit
Sees
The evidence and the trail
Signs
Nothing: read only, with exports
The agents

Seven agents draw, trace and bound, and none of them loads a record

Each hands its result to a named person.

Sample drawer

Draws random records per stratum with a recorded seed, and draws each signer’s records.

  • Never picks records by hand
  • Never draws again for a better result
Source tracer

Finds each sampled record’s source document, quotes the passage and compares new, old and source.

  • Never treats the old ERP as the source
  • Never chooses a candidate source
Bound calculator

Counts errors and computes each stratum’s exact upper bound against the line.

  • Never changes the line or the plan
Full-check runner

Compares the critical fields on each record.

  • Never samples a critical field
  • Never reads why a lot is held
Sweep runner

Checks each record of a failed stratum against its source, groups differences by cause and re-checks after corrections.

  • Never corrects anything
Correction drafter

Drafts each correction from its source passage into the correction file.

  • Never loads to the new ERP
  • Never accepts its own drafts
After go-live watcher

Samples new orders, replenishments and receipts daily after go-live.

  • Never holds, releases or changes a transaction

What migration teams ask about data migration validation

What is data migration validation?

Data migration validation shows that migrated records are right, beyond showing they match the old system. Here agents draw a random sample from each stratum of each object, trace each record to the document that created it, state an upper bound on each stratum’s error rate, and sweep a stratum that sits above the go-live line.

Why is a reconciliation report not enough?

It compares old against new, so a faithful copy passes even where the old ERP was wrong. An amendment held in the freeze log or an exhibit nobody keyed only shows up when the record is traced to its agreement or drawing.

Who sets the sample size and the go-live line?

Quality, in the validation plan, before the load. The plan fixes the records per stratum, the line, the second draw and the sweep rule, and it cannot be relaxed during a check.

Which fields are checked on every record?

Hold and quarantine status, expiry dates and service life, batch record links, device identifiers, shelf life, sterilization and legal manufacturer, and supplier approval status. Each is compared in full with no errors allowed.

Does it change data in the new ERP?

No. The correction drafter writes each fix into a correction file with its source passage. The steward accepts it, and nothing is loaded before the object is approved.

What happens after go-live?

For the first month the after go-live watcher samples new orders, replenishments and receipts daily against the same sources, and sends findings to the process owner.

Does it read why a lot is on hold?

No. It compares the hold status and the hold record number only. Whether a held lot may be released stays with the quality release lead.

Pick one migrated object
and the documents behind it.

We’ll trace a sample to source and show you where your bound sits against the line.