ID: S017
Slug: russell-reconstitution-drift-v1
Failed at: Stage 1 (Quick-screen)
Fail reason: magnitude
Date: 2026-06-13
Verdict
Failed at Stage 1 — estimated Russell 2000 additions showed no positive drift into reconstitution: mean excess return −4.5% over five years (0 of 5 years positive) against a +1.5% gate; even after stripping newly-listed names the clean subset was −1.6%.
The setup we were testing
Buy a basket of likely Russell 2000 additions — built from a pre-announcement float-adjusted market-cap ranking that estimates the membership cutoff — hold from the build window through the reconstitution effective date, exit shortly after, expecting positive excess return over an equal-weighted Russell benchmark. The thesis: index funds tracking the Russell must rebalance to the new membership on a fixed date, buying additions regardless of price, and in the small-cap Russell this is softer/less-arbitraged than the S&P 500 case because reproducing the float-adjusted ranking before the announcement is itself the work.
How it was tested
- Data. Daily closes from
ohlcv_daily(Tiingo, ~5,000 US names, 2010→). Point-in-time shares outstanding from SEC EDGARcompanyfacts(the newedgar_factslayer, 94% universe coverage), keyed by filing date so each year's ranking uses only data public on the rank day. - Ranking. Float-adjusted cap approximated as total market cap = PIT shares × rank-day close (a Stage-1 detect-or-kill approximation; float not applied). Ranked desc; Russell 2000 band = ranks 1001–3000.
- Additions. Names in the band this year that were not in the top 3,000 the prior year.
- Window. Entry at the rank-day close (~last business day of April), exit ~2 trading days after the effective date (~last Friday of June).
- Metric. Per-addition excess return vs the equal-weighted return of the estimated band over the same window; gate on the pre-registered S017 thresholds.
What we found
910 estimated additions across 2021–2025.
| Metric | Result | Gate |
|---|---|---|
| Mean excess return | −4.48% | ≥ +1.5% ✗ |
| Hit rate | 30.4% | ≥ 58% ✗ |
| t-test p vs 0 | 0.017 (mean negative) | p<0.05 and mean>0 ✗ |
| Years positive | 0 / 5 | ≥ 4 / 5 ✗ |
Per-year mean excess: 2021 −5.99%, 2022 −6.01%, 2023 −3.72%, 2024 −6.27%, 2025 −0.22%. Not a single positive year.
Robustness check (new-listing contamination). Our "additions" set inevitably includes recently-listed / newly-covered small caps, which underperform for reasons unrelated to index flow. Splitting on whether the name had ≥1 year of trading history before the rank day:
- Newly listed (<1yr), 433 names: −7.66% — drags the headline down hard.
- Mature (≥1yr), 477 names: −1.59%, hit 31%, 2 of 5 years positive (2021 +1.0%, 2025 +5.2%; 2022–24 negative).
So new-listings inflated the negative, but the cleaner mature subset still shows no positive drift and fails the gate — the result is not merely an IPO artifact.
Why the gate didn't pass
The most likely explanation is the one the setup's own pre-registration feared: the effect, to the extent it ever existed in single-name small caps, is arbitraged/decayed — anyone can run the ranking, so the drift is priced before the date. Two further reads: (1) holding from late April is too early — buying pressure concentrates in the final pre-effective days, so a ~two-month hold drowns the signal in idiosyncratic small-cap noise; (2) our membership is estimated, not official, so the basket mixes genuine cutoff-crossers with names that merely entered our coverage. But the direction and consistency (negative in 5/5 years; mature subset 2/5) make a tradeable positive drift implausible at this magnitude.
One thing we learned
Forced-flow edges that are trivial to model (a public ranking, a fixed date) tend to be exactly the ones already priced in — the "moat is the work" argument fails when the work is a spreadsheet anyone can build.
Was there anything close to working?
Only weakly: among mature names, 2021 (+1.0%) and 2025 (+5.2%) were positive, hinting the effect may be regime-dependent rather than uniformly dead. Not enough to reopen — a real test would need official FTSE Russell historical membership + float and a tighter pre-effective entry window, which we judged not worth buying for a setup with a ~45% prior and a decaying edge.
For the specialist — methodology details (click to expand)
- Reconstitution calendar computed from FTSE Russell's published rule (rank day ≈ last business day of April; effective ≈ last Friday of June), not the exact published dates — adequate for a Stage-1 read; exact dates differ by a day or two.
- PIT shares:
src/data/edgar_facts.pyselects the latestEntityCommonStockSharesOutstandingvalue withfiled_date ≤ rank_dayfrom SECcompanyfacts. Public float (EntityPublicFloat) was collected but not applied (float factor = 1.0); a total-cap proxy is the agreed Stage-1 approximation. - Coverage per year (covered / band / additions): 2021 2880/1880/139, 2022 3230/2000/267, 2023 3428/2000/162, 2024 3621/2000/159, 2025 3864/2000/183.
- Universe is the Finnhub-sourced ~5k US common stocks; survivorship/coverage-expansion is a known limitation (coverage grows 2,880→3,864 over the window), which is what motivated the maturity-split robustness check above.
- Backtest:
src/lab/russell_recon.py; per-event excess returns inevents.parquetbeside this file.