BANGER
Product status: Banger’s public beta is paper-only. References to live execution are future-looking. Venue rules and legal claims can change; verify current primary sources for your jurisdiction.
2026-10-23 · 6 min read · facts as of 2026-10-23

Avoid Future Information in External Strategy Inputs

If your prediction-market strategy reads an external number, the hard question is not what the number is. It is when you actually knew it. A backtest that joins a signal to a decision timestamp using the value you can download today is quietly answering a different question than the one the market faced in real time.

This is lookahead bias, and in finance it is the most common way a backtest lies to you. Treating it as the single most frequent backtesting mistake is standard practice in quantitative research pedagogy, defined as using information that was not available during the historical period being tested.

Four timestamps, not one

Any external observation carries several distinct clocks. Conflating them is where the leakage starts. Keep them separate for every input.

A decision made at time T can only legitimately use values whose release or revision time is at or before T. The reference period being earlier is not enough. March earnings announced in April cannot inform a March 31 decision, and the same logic applies to any macro print, poll, or scraped feed feeding an event-market model.

Revised data is the trap that hides best

The value you see today for a past date is often not the value that was published on that date. The data has been revised with hindsight, so a backtest built on it implicitly uses information that did not exist at the decision point.

This is not an edge case for economic series. The Chained CPI-U (C-CPI-U) is issued in preliminary form and its indexes for the past 10 to 12 months are subject to revision. The standard seasonally adjusted CPI-U series can be revised for up to five years: BLS recalculates seasonal factors each February and applies them to the last five years of data. The unadjusted CPI-U, by contrast, is considered final on release. PPI indexes are subject to monthly revisions up to four months after original publication. If your strategy keys off these numbers, the vintage you are reading and the vintage that existed at decision time may be different datasets.

Revisions can also be structural, not just numerical. During the 2025 lapse in appropriations, BLS could not collect October 2025 CPI survey data, did not publish an all-items estimate for that month, and stated it could not retroactively collect those data. A backtest that silently backfills a later-constructed value over that gap is fabricating knowledge the market never had.

Known-at-decision-time versus downloaded-later

The cleanest mental model is to ask a stricter question of every input: what was the value, as of this date, that was actually released and not yet superseded? That is the definition of point-in-time data. It records what each figure was at each historical date, keeping the release lag and later revisions separate from the original print.

Tooling exists for exactly this problem on public macro series. The St. Louis Fed's ALFRED archives vintage versions of economic data as they were available on specific past dates, storing the prior version each time a series is updated. Its records carry realtime_start and realtime_end windows so you can ask for a series as it appeared on a given vintage date, or just the first release. That is the difference between a known-at-decision-time observation and a downloaded-later one.

A worked, hypothetical example

Assume a strategy on a Kalshi binary tied to whether a monthly inflation print lands above a threshold. Suppose the first release for a reference month prints 0.2 percent, and a revision three months later restates it to 0.4 percent. These are illustrative inputs, not an observed series.

If your backtest joins the 0.4 percent revised figure to the decision timestamp before the first release, the simulated strategy appears to anticipate the move. It did not. It read a number that would not exist for another three months. The fix is not to discard the revision. Keep both values, each tagged with the release that carried it, and let the backtest resolve the value as of the decision date. Preserve provenance rather than overwrite it.

Practical rules for event-market backtests

Where Banger fits, and where it does not

Banger is a paper-research runtime for prediction-market strategies: you write or clone Python and run it in paper mode against Kalshi and Polymarket data, with simulated fills and risk controls, and no venue keys required for public market observations. Live execution is not available in the public beta. It is a place to test logic under an explicit data, fill, and fee model, not a profit guarantee.

One thing to be clear about: Banger does not ship built-in connectors for external macro feeds like CPI or ALFRED vintages. If your strategy depends on such inputs, the point-in-time discipline above is yours to enforce in how you source, timestamp, and store that data before it ever reaches a tick callback. A paper result is evidence under a particular model, and that evidence is only as honest as the timing of the inputs you fed it. Treat a marked value, a settlement claim, and hypothetical executable proceeds as distinct, and never let a revised number masquerade as something the market knew.

Sources

Keep reading

Run your first strategy free

Paper-trade on Polymarket and Kalshi market data without venue keys.

Start free