← all research

Pre-registered 2026-09-09. Double-sort: monthly top-20 live-momentum (resid+sector) -> 10 lowest-accrual (Study-7 Q3, frozen annual), fallback fill by momentum rank (2842 fallback days in-sample). 101 universe (99 matched), top-10, hold=21, next-open, 10bps, sqrt(252). Split 2016-01-01. Guard PASS.

VariantOOS RetOOS SharpeOOS MaxDDTurn/yrCorrMktCorrBaseResidShp vs BASE
BASE_live resid+sector H21+1507.27%1.29-30.87%8.240.751.000.74-
TILT mom-top20 x low-accrual+623.78%1.02-32.36%8.390.800.920.280.9978

IS (pre-2016) reference

VariantIS RetIS SharpeIS MaxDD
BASE_live resid+sector H21+284.38%0.68-62.35%
TILT mom-top20 x low-accrual+197.22%0.58-62.35%

Bar (pre-registered): PORT PASS = OOS p<0.05 vs BASE_live with resid >= BASE resid and sane turnover. Else REJECT.

Verdict (2026-09-09) — REJECT (tilt dilutes; live stays)

TILT 1.02 vs BASE_live 1.29, p=0.9978, resid 0.28 vs 0.74, IS also worse (0.58 vs 0.68). Third confirmation of the Study-6 lesson: the live resid+sector selector is already sharp — constraining it (hold incumbents, filter by accruals) cuts winners, not noise. Coverage audit sharpens the point: OOS the mom-top-20 pool averages only 11.5 names with accruals (59-70 eligible of 99; 558/2667 days below 10 trigger the momentum fallback), so the double-sort operates at untradable thinness AND the wrong direction. Accruals is closed as a selection device (standalone MARGINAL-beta-plus, tilt REJECT). No live change.