A team reruns last quarter’s dashboard using what appears to be the same query and gets a different answer. The SQL may be unchanged. The underlying evidence usually is not.
Transactions may have been corrected after the reporting cutoff. A customer may have been reassigned to a new territory. A product may have moved into a different category. A lookup table or inclusion rule may have changed. The current table now answers a different question than the one the organization answered last quarter.
The practical test is straightforward: can someone retrieve the inputs used at the time, rerun the analysis, and get the prior result—or clearly explain an intentional difference? If not, the dataset was never fully versioned for analytical use.
Treat a dataset release as an evidence package
A business dataset should not be treated only as a living table that is continually updated. For recurring reporting, forecasting, pricing, or consequential decisions, it should also have named releases: fixed sets of inputs that analysts can cite later.
Each release needs a durable ID, such as sales_pipeline_2026-10-21_r03. Avoid relying on labels like “latest,” a mutable folder path, or a date alone. A release ID gives a report, dashboard, or model run something precise to reference.
The release itself can take different forms. It might be a complete snapshot, a set of immutable partition files, or a retained source extract plus a manifest that identifies the exact files. The right choice depends on data volume, update patterns, cost, and the risk attached to the decision.
The essential rule is simpler: do not overwrite an analytical input and keep calling it the same version.
Put a small manifest beside every release
The data files are only part of the record. A release also needs a short manifest that explains what they mean. Without one, a preserved extract can still be difficult to interpret months later.
At a minimum, include:
- dataset and release ID;
- publication timestamp, including time zone;
- data or extraction cutoff;
- source systems or source extract IDs;
- row grain, such as one row per transaction or one row per account-month;
- schema version and primary-key rule;
- record count and key quality-check results;
- versions of reference data and definitions;
- known exclusions or limitations; and
- an immutable storage reference or checksum where feasible.
A checksum can establish that a retrieved artifact matches the one that was stored. It does not prove the data were correct, complete, or based on a sound business definition. The manifest still needs to state those limits plainly.
Consider a monthly board metric. On October 21, finance publishes revenue_monthly_2026-10-21_r01. Its manifest says transactions were extracted through October 20 at 23:59:59 Eastern Time, later-received refunds are excluded, and territory map version 12 was used. The board deck cites that release ID.
In January, a late refund changes the current warehouse total. That does not make the October board number wrong. It means the current view and the October release answer different questions. A later rerun can either reproduce the original figure or produce a clearly labeled restatement.
Do not confuse releases, row history, and time travel
These ideas are related, but they solve different problems.
A dataset release version identifies what analysts received. It is the citation needed to reproduce a report or model input.
Row-level history records how an entity changed. It matters when the question is what was true, or what the organization knew, at an earlier moment. If a current customer table says “active,” it cannot by itself show whether that customer was active when an eligibility decision was made three weeks ago.
For mutable entities, preserve both dates when they differ. A status correction entered on October 21 may say the status became effective on October 1. The effective date describes the business event. The observed date describes when the organization’s system recorded it. Neither is a substitute for the other.
Finally, warehouse time travel, backups, and table snapshots are platform recovery features. They can be useful, but their retention windows and behavior vary. Some systems retain only a short lookback period. In lakehouse formats, older table states can also become unavailable after maintenance removes historical files or snapshots.
That makes time travel a helpful tool, not a complete long-term reproduction plan. Record the release ID or explicit table version used by the analysis, then retain it for as long as the organization may need to explain the result.
Version the data that gives facts their meaning
A fact table alone often cannot recreate an old analysis. The meaning may have depended on a territory map, category crosswalk, currency conversion table, inclusion list, status definition, or a deduplication decision.
For example, revenue by product category may change when today’s taxonomy is applied to prior-year sales. Recreating the original report requires the category crosswalk that accompanied the original release. Recalculating with the new taxonomy can be useful, but it should be labeled as a restatement rather than quietly replacing history.
The same discipline applies downstream. Every recurring report should retain its run date, dataset release ID, and definition version. If a report is refreshed with newer inputs, say so. A historical decision record should not silently become a current-state dashboard.
Start where recreation matters most
There is no need to copy every dataset in full every day. Historical retention can create cost, privacy, contractual, and deletion obligations. Design the approach around the decisions that may need to be audited, challenged, or explained.
Start with datasets behind executive metrics, regulated reporting, forecasts, pricing, and high-impact customer or operational decisions. Then test the process: select an older report, retrieve its cited release and definitions, rerun it, and document any difference.
That test turns versioning from an archive that looks reassuring into evidence that can actually be used when a past number needs to be defended.
Morrow Creek Data Services handles paid research, cleanup, verification, and structured delivery projects.
Start a data project