Skip to content
Learning path Silver Repeatable method

Point-in-time data

Historical data reconstructed from what was genuinely available at each decision: availability timestamps, vintages, universe membership, corporate actions and delistings without hindsight.

Who this is for — Anyone building a backtest, using fundamental or macroeconomic data, reconstructing an index or comparing historical signals. The issue is not knowing today what happened then, but knowing what could be consulted at the exact time of the decision.

Point-in-time data preserve history as it could have been observed at each moment. The date to which a value refers is not enough: one must record when it was published, when it became available to the system, which version was then valid and how long that version remained valid. A database that is correct and fully updated today can describe the past perfectly while being unsuitable for simulating a past decision.

In plain terms — A photograph restored today is not the photograph a trader saw yesterday. The backtest must receive only the image available then, including imperfections, delays and subsequent revisions.

Point-in-time data: what was knowableFinal value and economic date do not define availability by themselves. Examples of fields to version; conventions vary by source and asset class.Point-in-time data: what was knowableFinal value and economic date do not define availability by themselvesExamples of fields to version; conventions vary by source and asset class.Prices and tradesEvent, receipt, correction andvenue-quality timestamps.Corporate actionsAnnouncement, ex-date, paymentand adjustment are distinct.Historical universeEntries, exits, mergers anddelistings remain in thesample.Fundamentals andmacroInitial release, operating lagand later revisions areseparated.Calendars andtimezonesSessions, holidays and daylightsaving change alignments.Versions and hashesSnapshots, transformations andcode identify the dataset used.Cyclepedia · conditional teaching diagram, not a forecast or promise
Observation date, publication, availability and revision are separate events. The backtest cursor may read only what has already arrived.

Four dates not to confuse

Time field Question Error when it is missing
Observation period Which quarter, bar or event does the value describe? assigning the value to the wrong moment
Publication timestamp When did the source disseminate it? using a result before its announcement
Availability timestamp When did the data actually enter the pipeline, under the correct time zone and calendar? ignoring vendor latency, closures or delays
Vintage or version Which value was known before a correction? using today's final revision in the past

The availability timestamp is the operational one. A release published at 16:05 New York time cannot generate an order at the 16:00 close. If the system acquires the file at 16:08, the first admissible decision must also respect that latency. For daily data without a reliable time, a prudent approach is to state an explicit convention—such as “usable from the next session”—and document it.

Macroeconomic data illustrate the revision vintage problem. Output, employment and growth figures may be corrected many times. The latest series answers “what is today's best estimate of the past?” A point-in-time test asks “which estimate was public on that date?” These are different questions.


Universe, identifiers and membership

A current list of securities, funds or contracts cannot be projected backwards. The universe must be a temporal table with validity intervals:

Entity Required point-in-time information
Security permanent identifier, listing and termination dates, venue, currency
Index announcement and effective date for every addition and deletion
Fund inception, merger, liquidation, mandate change and fee series
Future specific contract, expiry, calendar and stated roll rule
Corporate data accounting period, original filing, amendments and dissemination timestamp

A ticker is a label, not a stable identity: it can change or be reused. Linking prices, financial statements and corporate actions requires persistent identifiers and a mapping with temporal validity. Sector classification or country membership can change too; applying today's classification to 2010 introduces retrospective information.


Corporate actions and delistings

Splits, dividends, spin-offs, mergers, offers, conversions and symbol changes involve several dates: announcement, ex-date, record date, payment and effectiveness. An adjusted-close series recalculated today is convenient for returns, but does not replace a causal event register. The adjustment factor must suit the purpose: comparing total returns is not the same as simulating observable limits, quantities and orders before an event.

A delisting does not justify deleting the last observation. The reason, date, any delisting return, distribution or recovery value, and the rule used when data are missing must be retained. A loss erased from the database makes the sample healthier than it was and connects directly to survivorship bias.


Point-in-time protocol

  1. Fix decision time. Define the time zone, calendar, cutoff and frequency of every strategy.
  2. Separate event and availability. Preserve event_time, published_at, available_at and ingested_at where available.
  3. Archive vintages. Do not overwrite a revision; add a new version with validity start and end.
  4. Use persistent identities. Map tickers and descriptions to stable identifiers with temporal intervals.
  5. Reconstruct the universe. Store membership, eligibility, announcements and effective dates; do not start from today's survivors.
  6. Treat corporate actions as events. Preserve terms, dates and sources, then generate the adjustments needed for the stated purpose.
  7. Keep failures and absences. Delistings, suspensions, closed funds and missing values are part of history.
  8. Model latency. Add vendor and processing delay and the next tradable window.
  9. Make the query repeatable. “Show what was known at 10:00 on date X” must always return the same snapshot.
  10. Freeze the test dataset. Store version, checksum, transformations and code with the out-of-sample results.

Illustrative example — A company closes its quarter on 31 March, files results on 7 May at 17:20 and amends them on 20 June. A quarterly-growth signal cannot use the figure on 31 March; for a close-only strategy, first use may be the session after 7 May. Decisions from 8 May through 19 June must use the original filing, not the June amendment. Dates and times are chosen solely to demonstrate the method.


Quick checks

Check Evidence to preserve
Had the source already published the data? timestamp and original document
Could the system have received it? ingestion log or stated delay
Was the value revised? vintage table
Did the instrument exist and trade? listing intervals and venue status
Did it belong to the universe then? membership with announcement and effectiveness
Does the return include exit or delisting? terminal event and valuation method
Does the adjustment use only events already known? corporate-action register

Limitations

A point-in-time database reduces look-ahead bias, but it does not certify a strategy. Late data may be wrong; a source may have selective coverage; the pipeline may apply future transformations; the universe may remain incomplete. Point-in-time data also do not model orders, liquidity, capacity or transaction costs in backtests. Every result remains conditional on documented sources, conventions and availability.


Sources