Skip to content
← Back to all concepts

Concepts / AI look-ahead bias

AI look-ahead bias: why AI can't be trusted to backtest the past

3 min read · Concept

In everyday words

Betting on a football match after reading the final score. Your picks look brilliant, and they say nothing about a match that has not been played.

An example in pounds

Say a test shows an AI turning £1,000 into £1,800 by rating the news of 2022. The AI had already read how 2022 turned out. Nobody trading that year knew the ending, so the £1,800 is not a fair figure.

The short version

An AI model has already read how past events turned out, so it cannot fairly test the past.

DrawingA drawing of the idea, not a real result.
The model learned from text written up to its training cutoff. The test years come before it, so the model has already read how they turned out.

What it is

A backtest is a replay of a rule on past prices. A fair one uses only what was known on each day. Using anything learned later is called look-ahead bias. It makes a rule look cleverer than it was.

AI language models bring a quiet version of this. A language model learns from a huge pile of text, collected up to a certain date. That date is called its training cutoff. Everything written before it is in the pile. That includes how 2020, 2022 and early 2025 turned out.

So when a model is asked to judge a news story from 2022, it cannot forget what happened next. It is not cheating on purpose. It has read the ending.

A concrete example

Picture a rule that buys a share when an AI model rates the day's news about it as good. It is tested on 2021 to 2024, with a model whose training runs to the middle of 2025.

Late in 2022 there is a gloomy headline about a chip maker. The model has also read about the recovery that followed. That can nudge its rating up.

One nudge is nothing. Thousands of them, all leaning the right way, add up. The test then shows a result that nobody trading at the time could have had.

What it does not tell you

  • That a figure from after the cutoff is firm. The clean stretch is short. For today's models it is a little over a year. Any figure from so short a stretch is rough.
  • Exactly where the cutoff is. A model's knowledge thins out towards the date. It does not stop cleanly.
  • What the model carries past the cutoff. It still holds views formed by everything it read before: which companies lasted, which ideas paid off.

This leaves out each step of the guard, the list of models and the guard's other limits. The exact version is below.

How Quantis guards against it

Quantis keeps a list of every AI model it uses, with each one's cutoff. Any input to a test that comes from an AI model is split at that date. Only the part after the cutoff can be the headline result. The part before it is shown apart and marked.

Today no Quantis strategy uses inputs made by AI at all. They use prices and company figures only.

The exact detailFor anyone who wants the detail. Nothing above depends on reading it.

The classic forms, and the AI one

Look-ahead bias is using information in a backtest that wasn't available at the time. The classic versions are mechanical: trading on today's close at today's open, or using earnings figures before they were published. Large language models add a quieter version. A model is trained on text up to a date, its training-data cutoff. Everything written before that date, including every article about how 2020, 2022 or early 2025 turned out, is part of what it learned. So when a model scores a 2022 headline for sentiment (how good or bad the news reads), explains “what drove the 2023 rally”, or picks stocks “as of” some past date, it can't switch that knowledge off.

We use an extreme version of this in our own test suite. A synthetic signal “knows” the next day's return for every date up to the cutoff and flips a coin after it. Before the cutoff it shows a Sharpe ratio above 10 with no drawdown; after the cutoff it looks like what it is, noise. Real leakage is far subtler than that, which is exactly why it is easy to miss: a Sharpe of 1.4 that would have been 0.9 without it doesn't look suspicious.

The guard, step by step

  • A model registry with published cutoffs. Every model the platform calls is listed. Where its training-data cutoff has been read from the provider's documentation, the cutoff is shown with a link to the source. Where it has not, the registry records the cutoff as unknown and the guard assumes the model may know everything up to its release date or, failing that, up to the moment it wrote. A test fails if code starts using a model that isn't in the registry. We use the training-data cutoff, not the earlier “reliable knowledge” date, because the model may know about an event even if that knowledge is patchy.
  • Provenance on everything an AI writes. Research answers, deep-research syntheses and backtest verdicts record which model wrote them, its cutoff and when.
  • Hindsight labels in research. When an AI-written answer judges a period before the model's cutoff (“did X do well in 2022”, “what caused the SVB collapse”), it carries a label saying it is an explanation written with hindsight, and no evidence that a strategy would have worked. Data answers (prices, fundamentals, macro series from our database) never get the label, even when an AI writes the sentence around them. The check is deterministic: dates, years, quarters, relative phrases like “last year” and a short list of named events such as “during COVID”.
  • A backtest guard for AI-derived signals. A strategy input marked as coming from an AI model is split at the model's cutoff (the last day of the cutoff month). Only the window after it can be the headline. The earlier window is shown separately and marked contaminated. If the clean window is shorter than the result card's usual minimum (60 daily or 6 monthly bars), no headline is shown at all. A signal type that looks AI-derived but doesn't name its model is refused, and so is a model we have no verified cutoff for.
  • No AI-derived strategies yet. Today's strategies use price and fundamental data only. Ask the strategy agent for a news, sentiment or AI-picked strategy and it says it isn't available yet, and why this matters.

The models we use today

ModelTraining data toReliable knowledge toSource
claude-haiku-4-5Jul 2025Feb 2025Claude Haiku 4.5 docs (checked 2026-09-26)
claude-sonnet-4-5Jul 2025Jan 2025Claude Sonnet 4.5 docs (checked 2026-09-26)
claude-opus-5-5not recordednot recordedClaude Opus 5.5 docs (no cutoff recorded as of 2026-10-04)
claude-sonnet-5-5not recordednot recordedClaude Sonnet 5.5 docs (no cutoff recorded as of 2026-10-04)

Where a cutoff reads “not recorded”, the registry holds no cutoff for that model yet. The guard then draws the line at the latest date the model could know about: its release date or, failing that, the moment it wrote.

The limits of the guard

  • The cutoff is a fuzzy line. Providers publish it to the month, and a model's knowledge thins out towards it rather than stopping cleanly. We draw the line at the end of the published month; that is a convention, not a measurement.
  • General knowledge still leaks. Even for dates after the cutoff, a model carries beliefs formed by what it read before: which companies survived, which themes paid off, how the last rate cycle went. Those priors shape its judgement in ways no date split can remove.
  • The clean window is short. It only covers the time since the model's cutoff: a little over a year for the models with a recorded cutoff above, at the time of writing (September 2026). Any AI-derived backtest has wide error bars. The guard makes the number honest; it can't make it precise.
  • The research label is a rule, not a reader. It spots dates and question types from wording. An unusual phrasing can slip past it, fiscal years are treated as calendar years, and a question with no date gets no label even if the answer leans on the past.
  • Cutoffs come from the provider. If a provider's published date is wrong, our boundary is wrong. Where no cutoff is published we assume the model may know everything up to its release date.

Read next