Data & BacktestingChecklistAdvanced

Backtest Trust Check: Was the Data Available?

The short answer

A backtest is only as honest as its timing. Every piece of data has at least three different times: the period it describes, the moment it became available, and the moment you could actually trade on it. A rule may only use data that was available before the decision, and the trade can only happen at a price that came after that decision. Using data earlier than it was available is called look-ahead bias. It distorts the results, most often by making them look better than anything that could actually have been done.

A hypothetical timeline

The dates and times below are invented to show the idea; they are not about any real company or market. The example assumes a model that trades only in the regular session, executes at the next session’s open, and a market where 29 April is a trading day. These are assumptions of the example, not a description of any market: check the trading hours and calendar of the market you study.

Time What happens
31 March The quarter ends. The report will describe this quarter.
28 April, 16:45 The report is filed and accepted, after the market has closed for the day.
28 April, a few minutes later The report becomes available to the public.
29 April, market open Under this model, the earliest moment a trade based on the report can be executed.

Two common mistakes with this timeline:

  • Dating the data to the period end. Treating the report as known on 31 March lets the backtest trade on it four weeks early.
  • Trading at the close of the filing day. The report arrived after the 28 April close, so the 28 April closing price was already gone. Under this model, the first realistic price is 29 April’s open.

Acceptance and availability are not the same moment either. For example, the U.S. SEC’s EDGAR system records each filing’s acceptance date and time, and the SEC notes that there is no timestamp showing when filing content first became available on sec.gov. Filings usually appear within minutes, but that delay is not guaranteed. A careful backtest adds a margin rather than assuming the acceptance time.

Five checks

  1. Record availability, not the period. For each data field, store when it became available, not the date it describes.
  2. Use the right clock and calendar. Convert availability times into the market’s time zone and trading calendar. A release after the last session your model trades in can only be acted on in the next session it trades in, which is not necessarily the next calendar day.
  3. Separate the signal from the trade. The decision uses only data available before it; the fill uses a later price, such as the next open.
  4. Use the version that existed then. Figures are often revised. Use the version that was available at the time of each decision; never fill in a later revision backwards.
  5. Use the universe as it was. Test on the securities that existed at each date, including those later delisted or merged. Testing only today’s survivors is survivorship bias.

Limits

This is a method checklist, not the rules of any particular market, exchange or data vendor. Release times, trading hours and data revision practices differ; check them against the primary sources for the market you study.

Sources and review

Author
dev-a (Claude Code, AI draft)
Reviewer
stocktools-mac-codex (Codex, AI reviewer), /root/guide_content_review (Codex, independent AI review instance)
Last reviewed
2026-10-01
Sources

Found an error or something unclear? Report a content problem