A paper you’ve read is a story; a paper you’ve reproduced is a result. The gap between the two is where most published alpha lives — and dies. This is the checklist we use when a paper survives triage and the backtest looks real: six stages, each with its characteristic trap. A condensed version is downloadable at the end.
Stage 1 — Acquire: establish what exists
- ☐ Paper version: get the latest revision (arXiv papers mutate; results sometimes soften between v1 and v4 — diff the tables).
- ☐ Code: linked repo? Note the commit hash and whether it actually produces the paper’s tables or is “illustrative.” Most repos are the latter.
- ☐ Data: can you buy or download the same data — same vendor, frequency, adjustments? “CRSP 1963–2018” is reproducible; “proprietary tick data” ends the exercise honestly (mark it unreproducible, not wrong).
- ☐ Compute budget: estimate before starting. A 5-minute daily-bars study and a GPU-month of deep-model training are different commitments — price it first.
The trap: starting the reimplementation before confirming the data is obtainable. Data access decides reproducibility more often than method complexity does — which is why vendor choice is a research-methodology issue, not procurement.
Stage 2 — Align: match their world before testing it
- ☐ Universe construction rules (exchanges, price floors, liquidity filters, share classes) reproduced as of each date — survivorship-clean.
- ☐ Sample dates exactly; note anything the window conveniently excludes (2008? 2020? 2022?).
- ☐ Definitions pinned: “monthly return” (close-to-close? which day?), “volatility” (realized? which estimator?), “momentum” (12-1? 6-1?). Every undefined term is a fork in the road.
- ☐ Adjustment policy: splits, dividends, restatements — matched to what the paper’s vendor would have shown at the time.
The trap: silently using your own conventions. When your numbers diverge later, you won’t know if the paper is wrong or your alignment is.
Stage 3 — Reimplement: independently, on purpose
- ☐ Write the pipeline from the paper’s description before reading their code. Their code is the answer key, and answer keys teach nothing when copied — worse, porting their code ports their bugs. (Our T-KAN replication review found the headline comparison rested on a baseline whose LSTM was never trained — invisible unless you reimplement or audit, not copy.)
- ☐ One reproducible environment: pinned dependencies, fixed seeds, logged config — the same discipline as taking a strategy live.
- ☐ Where the paper is ambiguous, log the decision and both interpretations. The ambiguity list is a research artifact.
Stage 4 — Reconcile: match statistics before results
The order matters enormously and everyone gets it backwards:
- ☐ First match descriptive statistics: universe size per year, mean/vol of returns, coverage. If your universe has 2,900 stocks and theirs 3,400, stop — nothing downstream is interpretable.
- ☐ Then match intermediate artifacts: signal distributions, factor loadings, portfolio turnover.
- ☐ Only then compare headline results — with tolerance bands agreed in advance (sign and rough magnitude are success; the third decimal is not).
- ☐ Feed the pipeline a case with a known answer and demand machine precision — the strongest validation pattern we know, per the Monte Carlo audit.
The trap: jumping straight to the Sharpe ratio. When it doesn’t match, you now have one uninterpretable number and no idea which of forty upstream choices caused it.
Stage 5 — Stress: the part the paper didn’t do
Reproduction confirms the claim as stated; stress testing asks whether it matters:
- ☐ Costs at 1×/2×/3× (the sensitivity curve).
- ☐ Subperiods and regimes — does it exist outside one lucky era?
- ☐ Parameter neighborhood — plateau or spike?
- ☐ Seeds and data perturbations for ML papers (multiple runs, not one).
- ☐ Post-publication sample: the cleanest out-of-sample there is, and the reason reproducing older papers is more informative than reproducing last month’s.
Stage 6 — Document: make your reproduction reproducible
- ☐ A short report: what matched, what diverged, the ambiguity list, the stress results.
- ☐ Publish it if you can — replication notes are among the most valuable, least supplied artifacts in the field (and exactly what the discussion sections on our paper pages exist for).
- ☐ Archive data snapshots and environment — per the raw-zone discipline.
The honest outcome distribution
Expect roughly: a third of attempts reproduce cleanly, a third reproduce weaker (the median published effect shrinks out of the author’s hands), and a third fail on data access, ambiguity, or genuine error. All three outcomes are wins — the failed reproduction that costs you two weeks is the strategy that would have cost you a drawdown.
📥 Take it with you: download the condensed checklist (.md) — drop it into the repo of your next reproduction attempt.
Companion frameworks: Is the backtest real? → · Auditing a Monte Carlo →