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.
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.