← Back to case study

Implementation · Data quality · Worked artifact

A small migration file, made reviewable.

This is the kind of compact review record I want a handoff to carry: source rows stay traceable, straightforward mappings are visible, and unresolved decisions have an owner.

Fictional demonstration. This 10-row fixture uses invented identifiers and neutral categories. It illustrates a review method, not a historical client file, a measured employer result, or a claim about data accuracy.

The Excel workbook includes editable fictional inputs, working formulas, and an exception review. The CSVs preserve the original example below.

Start with the question.

Can every row be traced, categorized, and related to another record without a reviewer having to invent an answer?

Scenario

A migration owner receives a small legacy export of generic records. Before loading it into a new system, the reviewer checks the category vocabulary, identifier uniqueness, and parent-child relationships.

The output is not a “cleaned” file that hides uncertainty. It is a decision record: rows that pass can move forward, explicit corrections are visible, and holds say exactly what someone still needs to decide.

Source rows
10
Output rows
10
Ready
2
Corrected
3
Held
5
Dropped
0

Reconciles: 2 ready + 3 corrected + 5 held for review = 10 output rows; 10 input rows − 0 dropped = 10 output rows.

Write the rules before the edits.

The same checks drive the visible decisions below, so another reviewer can reproduce the result.

Input rules

  1. Lineage: source_row_id is required and unique. Each input row appears once in the output.
  2. Identifier: legacy_record_id must be unique. A duplicate group is held together; no survivor is guessed.
  3. Category: legacy_category is required and must appear in the explicit map. Blank or unmapped values are held.
  4. Relationship: standalone has no parent; child needs an existing, different parent ID. A self-reference is held.
  5. Status: only rows passing every rule are ready. A mapped value is corrected; any unresolved issue is held-for-review.

Explicit category map

Legacy category to reviewed category
Legacy valueReviewed valueAction
StandardstandardPass through when all other checks pass.
CorestandardCorrect with the explicit map.
AddonsupplementalCorrect with the explicit map.
ArchivedhistoricalCorrect with the explicit map.
Legacy-Blue—Hold; no approved mapping exists.

A category map can propose a value; it cannot override a separate relationship hold.

Input: preserve the source.

These are the ten fictional rows as supplied. The blank category, duplicate identifier, unmapped value, and self-reference remain visible.

Download input CSV
Input rows — 10 records
source_row_idlegacy_record_idlegacy_categoryrelationship_typeparent_legacy_idactive_flag
IN-001LEG-1001Standardstandalone—Y
IN-002LEG-1002CorechildLEG-1001Y
IN-003LEG-1003AddonchildLEG-1001Y
IN-004LEG-1004Standardstandalone—Y
IN-005LEG-1004Standardstandalone—Y
IN-006LEG-1006—childLEG-1001Y
IN-007LEG-1007Legacy-Bluestandalone—Y
IN-008LEG-1008ArchivedchildLEG-1008Y
IN-009LEG-1009ArchivedchildLEG-1001N
IN-010LEG-1010StandardchildLEG-1001Y

Source row IDs are synthetic and are carried into the reviewed file as the lineage key.

Checks become decisions.

Each issue has a visible disposition. “Held” means the next owner has a question to answer, not that the reviewer silently fixed it.

1 group · 2 rows

Duplicate identifier

Affected rows: IN-004 and IN-005

LEG-1004 appears twice. Both rows stay in the output; no survivor is selected and no row is deleted.

1 row

Blank required category

Affected rows: IN-006

The missing category is not guessed. A category steward must provide the source value before loading.

1 row

Unmapped legacy category

Affected rows: IN-007

Legacy-Blue is absent from the map. The mapping owner must decide; the row remains held.

1 row

Relationship inconsistency

Affected rows: IN-008

LEG-1008 points to itself as its parent. The implementation owner must correct the relationship.

Why not choose a duplicate survivor?

The fixture has no evidence for which copy of LEG-1004 is authoritative. Retaining both rows protects lineage and makes the decision explicit; a migration owner can later document a merge or survivor rule.

Reviewed output: ready, corrected, held.

The output keeps one row for every input row. Status is text, not color alone, and the decision plus source lineage travel with each record.

Download reviewed CSV
  • Ready all rules pass
  • Corrected explicit mapping applied
  • Held for review decision still needed
Reviewed output — 10 records with source lineage
source_row_idlegacy_record_idlegacy_categoryrelationship_typeparent_legacy_idreviewed_categoryreview_statusdecisionsource_lineage
IN-001LEG-1001Standardstandalone—standardReadyAll checks pass; no value changed.Input row IN-001 retained.
IN-002LEG-1002CorechildLEG-1001standardCorrectedMapped Core to standard using the explicit category map.Input row IN-002 retained.
IN-003LEG-1003AddonchildLEG-1001supplementalCorrectedMapped Addon to supplemental using the explicit category map.Input row IN-003 retained.
IN-004LEG-1004Standardstandalone—standardHeld for reviewDuplicate identifier LEG-1004 with IN-005; retain both rows and select no survivor.Input row IN-004 retained; duplicate group with IN-005.
IN-005LEG-1004Standardstandalone—standardHeld for reviewDuplicate identifier LEG-1004 with IN-004; retain both rows and select no survivor.Input row IN-005 retained; duplicate group with IN-004.
IN-006LEG-1006—childLEG-1001—Held for reviewRequired legacy_category is blank; category steward must provide the source value.Input row IN-006 retained.
IN-007LEG-1007Legacy-Bluestandalone——Held for reviewLegacy category Legacy-Blue has no approved mapping; mapping owner must decide.Input row IN-007 retained.
IN-008LEG-1008ArchivedchildLEG-1008historicalHeld for reviewChild row points to itself (LEG-1008); implementation owner must correct the relationship.Input row IN-008 retained.
IN-009LEG-1009ArchivedchildLEG-1001historicalCorrectedMapped Archived to historical using the explicit category map.Input row IN-009 retained.
IN-010LEG-1010StandardchildLEG-1001standardReadyAll checks pass; no value changed.Input row IN-010 retained.

The reviewed CSV preserves all ten input rows. The two-row duplicate group is held intact, and the unmapped Legacy-Blue value remains blank until an owner approves a mapping.

End with a usable handoff.

The next person should know what is unresolved, who can decide it, and what to check afterward.

Next check

After the owners update the authorized source record, rerun all five rules against the reviewed CSV and reconcile source-row lineage before loading.

Guardrail: no row is load-ready merely because a category can be mapped; every relationship and identifier check must also pass.

Unresolved decisions
Confirm a survivor or merge rule for LEG-1004; supply IN-006’s category; approve a target for Legacy-Blue; correct IN-008’s self-reference.
Responsible role
Migration owner coordinates the duplicate decision; category steward supplies the blank value; mapping owner approves the unmapped value; implementation owner corrects the relationship.
Evidence to carry forward
Keep the source row ID, the reviewed status, the decision text, and the owner’s resolution note with the next check.

This fixture demonstrates a method, not a client outcome. The separate case study describes Paylocity platform support and the 100+ / month client-call workload signal; this sample does not measure data accuracy.

← Return to the SaaS support example

Composite, anonymized examples. No real member information. Views are my own and don't represent HCSC (HealthSpring).