Look-ahead bias is knowing the future without noticing. Nobody codes if date > today: peek() — the future arrives through data that was revised after the fact, timestamps that mean something other than assumed, and models trained on text written later. It is the second member of the bias family after survivorship, harder to spot because each leak has its own disguise. Here is the full taxonomy, each entry with its detection test.

1. Restated fundamentals — the classic

Companies restate earnings; standard data feeds silently overwrite history with the corrected numbers. Backtest on restated data and your value signal in March is using figures the market didn’t see until August. Point-in-time (PIT) data — as-reported values with their announcement dates and the full restatement trail — is the fix, and its availability is the sharpest quality line between data-vendor tiers.

Detection: pick a company with a known restatement; check whether your dataset shows the original or corrected figure for the original period. Also watch the tell in results: fundamental signals with implausibly fast reaction to information.

2. Reporting-lag compression

Even unrestated fundamentals leak if used at period-end rather than announcement date: Q4 earnings dated December 31 weren’t public until February. A signal formed “monthly” from quarter-end data is trading weeks before knowledge existed. Detection: lag all fundamental inputs to announcement date (or a conservative fixed lag) and rerun — the standard robustness check the best factor papers report by default.

3. Retroactive universe and membership

“S&P 500 since 2010, current membership” imports two biases at once — survivorship, plus the look-ahead of knowing who would be added: index inclusion itself moves prices, so a today’s-members universe pre-selects stocks before their inclusion pop. Detection: rebuild with as-of-date constituents; strategies that shrink meaningfully were harvesting membership foresight.

4. Same-bar execution

Signal computed on today’s close, filled at today’s close: information and execution occupy the same instant. Related: signals built on daily high/low (you can’t know the day’s high until it’s over), and stops filled at exact stop prices through gaps. Detection: the one-bar-lag test from the backtest framework — execute at the next bar’s open; collapse means the edge was timing leakage. Intraday mean-reversion backtests are the serial offenders.

5. Timestamp semantics

The subtle sibling of #4: fields that don’t mean what you assume. Is the daily “close” the 4:00pm auction or the last extended-hours tick? Is the bar stamped at open or close of its interval? Exchange time or vendor receipt time? Which timezone, and is it DST-stable? Our Monte Carlo audit shows the technique: cross-validate the coarse dataset against a finer one you can reconcile — one minute-bar request settles what documentation leaves open.

6. Normalization and statistics computed on the full sample

Z-scoring features with the whole sample’s mean and variance, selecting features by full-sample correlation, or scaling by full-period volatility — each quietly hands early observations knowledge of the future distribution. The ML-pipeline version of look-ahead, endemic in the machine-learning literature. Detection: every transform must be fit on data available at prediction time — expanding or rolling windows only. If the pipeline calls fit anywhere on the full dataset before splitting, it’s leaking. Related boundary leakage — overlapping windows straddling the train/test split — is covered in walk-forward testing.

7. LLM training-data leakage — the newest member

A 2024-trained language model “predicting” 2023 headlines has read the endings. Any pipeline using pretrained embeddings or LLM scores must ensure the model’s training cutoff predates the test period — or restrict claims to tasks (extraction, classification quality) where knowing the future doesn’t help. Many published LLM-trading backtests fail exactly this test; it’s the first thing we check in the NLP & LLMs hub. Detection: compare performance before vs after the model’s knowledge cutoff — a cliff at the cutoff date is the confession.

The point-in-time discipline, positively stated

The cure across the taxonomy is one rule: every input must carry the timestamp at which it became knowable, and the backtest may only read inputs whose knowable-time precedes decision-time. In practice: PIT fundamentals with announcement dates; as-of-date universes; next-bar execution; expanding-window transforms; cutoff-checked models; and an event-log data architecture where revisions append rather than overwrite — which is exactly how the raw zone and an append-only research database are designed.

The economics are asymmetric: PIT-clean data costs more and yields smaller backtested returns — which is precisely why it’s worth it. You’re not paying for better numbers; you’re paying to stop lying to yourself.


The bias family: Survivorship → · Walk-forward & OOS → · Data that supports PIT: vendor guide →