Building Your Own Vintage Archive
If a vendor will not sell you point-in-time history, the fallback is to start snapshotting their data yourself, every day, from today onward.
Prerequisites: Revision Analysis: How Much Does History Change?
A vendor's database only stores the current, fully-revised version of every field. There is no way to ask it "what did this look like on March 3rd, 2021" because it never kept that answer. The only reliable fix, once you notice this gap, is to stop asking the vendor and start keeping the history yourself: every day, save a full snapshot of the data as it stood that day, and never overwrite an old snapshot. That growing stack of dated snapshots is a vintage archive.
A vintage archive is not a backup — a backup preserves the current state in case of loss. A vintage archive deliberately preserves every past state, on purpose, because the past states are themselves the research asset.
What a vintage looks like
Each entry in the archive is a full copy of the dataset, tagged with the date it was captured, not the date the underlying data claims to describe:
In words: the archive is a list of pairs, each one a capture date and the complete dataset as it looked on that date. Querying "what was known as of March 3rd" later becomes a simple lookup of the snapshot tagged March 3rd, rather than a guess based on today's revised numbers.
Worked example
A team starts archiving a broker's daily analyst price-target file on January 1st, 2023, saving the raw CSV to dated storage each morning before any processing. By January 1st, 2025 they have 500 trading days of true point-in-time snapshots. A researcher testing a signal in mid-2025 can now honestly reconstruct exactly what price targets were known on any day in that two-year window — but for anything before January 2023, they still only have the vendor's current, revised view, because the archive did not exist yet. Vintage archives have no way to retroactively cover a period before collection started; the earlier the team begins, the longer the honest backtest window becomes.
What this means in practice
Start archiving any dataset you might one day want point-in-time history for, even before you have a specific use for it — the cost of a few gigabytes of daily snapshots is small, and the alternative is permanently losing the ability to answer "what did we know then" for every day that passes without a snapshot.
Snapshot the raw vendor file exactly as delivered, before any of your own cleaning or joins — reprocessing an old raw snapshot with today's cleaning code is fine; there is no way to reprocess a snapshot that only kept the cleaned output.
Related concepts
Practice in interviews
Further reading
- Croushore and Stark, 'A Real-Time Data Set for Macroeconomists'