← Charlie Yan

Working paper · 2026

Dollar-Correct, Time-Wrong: Twelve Backtest Bugs That Survive Reconciliation

A backtest whose P&L reconciles to the cent can still be wrong by 2–12× in risk-adjusted terms.

Headline result Exit-day lumping inflates Sharpe only when concurrent positions share shocks: 0.64 (i.i.d.) → 2.14 (fully common), bracketing the 2.1–2.4× seen in production.

Reconciling to the cent is the check most people stop at. It is not sufficient. A backtest can tie out exactly and still be wrong by 2–12× in risk-adjusted terms, or be measuring an exposure the strategy never claimed.

Twelve bug classes, each with a runtime-checkable invariant and a synthetic reproduction. The invariants ship as opentape, so the checks run inside your own backtest rather than living in a paper.

Reproducibility

Fully reproducible, no market data needed. pip install -e ".[test]" && pytest -q reproduces all thirteen synthetic bug reproductions, including the headline exhibit.

backtesting · reproducibility · accounting