+++
title = "Point-in-time data: the history a backtest was allowed to know"
description = "A backtest must use what was knowable at the time. Separate event dates, publication times, revisions and historical data availability."
date = 2026-09-11
draft = false
[taxonomies]
topics = ["historical-data-corporate-actions", "batch-ingestion-etl-cdc", "time-series-tick-stores", "backtesting-simulation"]
kinds = ["advanced-explainer"]
[extra]
tier = "public"
schema_type = "Article"
article_class = "advanced-explainer"
related_concepts = ["event time", "availability time", "bitemporal data", "look-ahead bias"]
sources = ["https://www.nyse.com/data-products/catalog/daily-taq", "https://www.lseg.com/en/data-catalogue/corporate-actions", "https://clickhouse.com/docs/guides/clickhouse/working-with-joins", "https://fivetran.com/docs/core-concepts/sync-modes/history-mode", "https://www.quantconnect.com/docs/v2/writing-algorithms/reality-modeling/key-concepts"]
source_details = [{ title = "Daily TAQ", publisher = "NYSE / ICE", url = "https://www.nyse.com/data-products/catalog/daily-taq", checked = "2026-09-09" }, { title = "Corporate Actions Data", publisher = "LSEG", url = "https://www.lseg.com/en/data-catalogue/corporate-actions", checked = "2026-09-09" }, { title = "Working with JOINs in ClickHouse", publisher = "ClickHouse", url = "https://clickhouse.com/docs/guides/clickhouse/working-with-joins", checked = "2026-09-09" }, { title = "History Mode", publisher = "Fivetran", url = "https://fivetran.com/docs/core-concepts/sync-modes/history-mode", checked = "2026-09-09" }, { title = "Reality Modeling: Key Concepts", publisher = "QuantConnect", url = "https://www.quantconnect.com/docs/v2/writing-algorithms/reality-modeling/key-concepts", checked = "2026-09-09" }]
faq = [{ question = "Is the most accurate current history always the right backtest input?", answer = "No. A historical decision must use the versions available at its specified information boundary." }, { question = "Does an as-of join prevent look-ahead bias?", answer = "No. It selects on the supplied time axis; event time alone can admit information that arrived later." }, { question = "Does point-in-time data prove a strategy would have worked?", answer = "No. Execution assumptions, costs and strategy-selection effects remain separate questions." }]
evidence_as_of = "2026-09-09"
related_articles = ["market-data-api-access", "notebook-to-model-service", "reproducible-data-rights"]
category_slug = "data-access"
category_name = "Data & access"
+++

Point-in-time data represents the information available to a specified decision maker at a specified historical time. A record can be correct about an earlier event while having become available only after that decision.

## Event time and information availability

Event time describes when something happened or became economically effective. Publication time describes when information was announced. Vendor arrival and local receipt describe later delivery boundaries. A correction has its own availability time even when it refers to the same original event.

A backtest needs the boundary relevant to its simulated decision. A public announcement timestamp does not prove that a particular participant received and processed the information at that instant. Conversely, a current database entry describing an old event does not establish that the entry existed in that form at the old date.

Historical files and adjusted price series can be useful inputs without reproducing the exact information sequence available to a live participant. The reconstruction must preserve the distinction between the event being described and the version that was knowable.

## Selecting the historically available version

Take a decision at 09:00, a corporate-action record received at 08:50 and a correction received at 10:00. Both versions describe the same event date. The 09:00 decision can use the first version under the stated receipt boundary. It cannot use the correction received an hour later.

A historical selection therefore needs two questions. Which event or effective period is relevant to the decision? Among the versions satisfying that relationship, which version was available by the decision cutoff? Selecting the latest stored correction answers a different question: what is the best current account of that past event?

An as-of join can select a preceding observation on a chosen time axis. The operator does not choose the correct axis for the analyst. Joining by event time when the question concerns availability can admit a later correction even though the join is syntactically valid.

## Revision history and identifier mappings

Corporate-action adjustments need the original observation, event information, revision history and transformation rule. Replacing a stored adjusted series in place can remove the earlier version needed to reproduce an earlier calculation.

Identifier relationships also have effective dates and revisions. A current instrument mapping cannot silently supply historical context that the decision process did not have. The price record and the security relationship need a consistent temporal basis.

Take an earlier run stored only with a dataset name. If that name later resolves to corrected contents, rerunning the same code can change the result. A retained version or snapshot identifies which contents the earlier run used, while the availability rules determine whether those contents were eligible for the historical decision.

## Temporal integrity and simulation validity

Temporal integrity removes one source of look-ahead: using information that had not reached the selected decision boundary. It does not establish realistic fills, transaction costs, liquidity assumptions or the validity of strategy selection.

A simulation can use correctly timed data and still assume an order would fill when its execution model provides no adequate basis for that fill. Reproducibility likewise means the calculation can be repeated under its specification; it does not show that the specification describes a viable trading process.

What changes is the information boundary being reconstructed. The conclusion must retain the decision time, availability definition and version-selection rule so a corrected history is not mistaken for historically available knowledge.

## Questions about event time

### Is the most accurate current history always the right backtest input?

No. A historical decision must use the versions available at its specified information boundary.

### Does an as-of join prevent look-ahead bias?

No. It selects on the supplied time axis; event time alone can admit information that arrived later.

### Does point-in-time data prove a strategy would have worked?

No. Execution assumptions, costs and strategy-selection effects remain separate questions.
