Anomaly Replication Lab
  • The zoo
  • Screener
  • Multiple testing
  • Correlations
  • Composite
  • Methodology
  • Guides
  • Resources
Sign in
Anomaly Replication LabSign in
  • The zoo
  • Screener
  • Multiple testing
  • Correlations
  • Composite
  • Methodology
  • Guides
  • Resources

Educational replication, not advice. Long-short returns are decile spreads or published factor series from the Kenneth R. French Data Library and AQR, value-weighted, US equities, and gross of transaction and shorting costs — which for high-turnover signals like short-term reversal is the whole story. Reproducing a premium in-sample is not evidence it will persist. Past performance does not predict future results.

© 2026 Austin Levenberg. All rights reserved. This site’s code, design, written analysis, and computed results are not licensed for reuse or redistribution — terms of use · privacy.

Data: Kenneth R. French Data Library, AQR Capital Management public data sets.

Part of austinlev.dev — four research tools, and a note on where this is headed.

Multiple testing

A t-stat of 2 means “1-in-20 by chance”. The field has run far more than 20 tests.

The convention that a result is “significant” at a t-statistic of about 2 assumes you ran one test. Run 20 independent tests on random data and, on average, one clears that bar. Harvey, Liu and Zhu (2016) counted more than 300 published return predictors — and that only covers what made it into journals. Under that much searching, the threshold for genuine significance is much higher.

Their recommendation, after adjusting for the count and for the ones that were never published: a t-stat of about 3.0. The slider below lets you set your own assumed number of tests and see the Bonferroni bar move — and which of our 18 replications stay above it.

18 (just these)~3162,000
t ≥ 2.99
Bonferroni threshold for N = 18 tests at 5%

Each row is one replicated anomaly, its bar the full-sample |t|. Green clears the bar, red doesn’t. Click a row to open its full record.

5 of 18 clear the barthe naive case
Pass t > 2
13/18
the naive bar
Pass t > 3
5/18
Harvey–Liu–Zhu
Pass Benjamini–Hochberg
11/18
5% false-discovery rate
Pass B–H–Yekutieli
8/18
the dependence-robust version

The corrections, briefly

Four ways to draw the line, from most permissive to most conservative.

No correction|t| > 1.96

Controls the chance of one false positive on a single test. Fine for a pre-registered hypothesis; far too loose for a data-mined predictor.

Bonferroni|t| > 2.99 here · 3.84 for the full literature

Divide your 5% budget across all N tests. Controls the chance of any false positive at all (family-wise error). Simple, and quite conservative when the tests are correlated — as factor returns very much are.

Benjamini–Hochbergstep-up on ranked p-values

Controls the false-discovery rate — the expected share of your 'discoveries' that are wrong — rather than the chance of any error. More powerful, and the right target when you expect some real effects in the pile.

Benjamini–Hochberg–YekutieliB–H with a log-factor penalty

The version that stays valid when the tests are arbitrarily dependent. Harvey, Liu & Zhu lean on this one. It's what the site uses for its headline 'survives multiple testing' count.

p-values here come from a normal approximation to the t-distribution (our samples are long, so the two are close). The “literature N” of 400 follows Harvey, Liu & Zhu (2016) and the ongoing count in the Open Source Asset Pricing project.