A Migration Shouldn’t Rewrite the Company’s History

An archival timeline passes intact from an older structure into a clean modern one.

A location dimension that has been in production for a decade accumulates more than locations. It accumulates manual adjustments, reorganizations, renamed regions, stores that moved between districts, and ownership changes that altered how the location’s history should be read.

Migrating that dimension forces a question a stable system can avoid indefinitely: does every historical adjustment still deserve to be carried forward?

Two changes that look identical in the data

In an recent warehouse migration, years of overrides contained two fundamentally different kinds of change.

A correction meant the original record was never true. Applying the fix retroactively made the history more accurate.

A reclassification meant the original record was true at the time, but the organization changed later. Rewriting the past to match today’s structure would erase a real historical decision.

A dimension table does not know the difference. Both can appear as updates to the same row. Only the surrounding business history reveals whether the old value was wrong or merely old.

A test before rewriting history

A useful question is: if today’s value were applied to yesterday’s event, would it change how someone at the time understood that event?

If the answer is no because the old record was simply erroneous, the change is probably a correction. If the answer is yes because the organizational context genuinely changed, the difference belongs in history.

We reviewed the material changes with people who remembered them and modeled the two classes differently. Corrections were applied consistently across history. Reclassifications were preserved as tracked changes, allowing a report to describe what a location was called and who owned it when an event occurred.

This is slower than a blanket “current values only” migration. It is also the difference between honestly answering “What did this look like in 2021?” and insidiously rewriting 2021 to resemble today.

A migration should not treat this only as an SCD configuration choice. It is an editorial decision about what the company’s recorded history is allowed to mean.