Frozen spec: vol_breakout -> cross_section_portfolio_net(lag=1, hold=21, top_k=30, long-only, next_open); base cost 10bps one-way, tiers 0.5/2.5/5.0; lag2 delay. No re-grid.
Look-ahead guard: PASS. Panels: main 500 names, midcap 398 names.
Decision rule (P1 midcap, base): PASS = Sharpe>=0.30 AND p_vs0<0.05 AND conservative(25bps)>0 AND lag2>0; SHADOW = Sharpe>=0.30 with >=3/4, or P2 holdout Sharpe>0 & p<0.10; else REJECT.
P1 PRIMARY -- untouched S&P MidCap 400 universe
Window 2020-07-27..2026-09-18 | base Sharpe 0.65, ret +82.3%, maxDD -28.4%, p_vs0 0.050, n 1545
| Metric | value |
|---|---|
| gross Sharpe | 0.76 |
| base (10bps) Sharpe | 0.65 |
| conservative (25bps) Sharpe | 0.48 |
| lag2 (10bps) Sharpe | 0.78 |
| vs BASE xsmom benchmark Sharpe | 0.74 |
| corr vs BASE / p_vs_base | 0.66 / 0.797 |
| DSR (K=6) | 0.41 |
| positive years | 6/7 |
| Year | Sharpe |
|---|---|
| 2020 | 2.32 |
| 2021 | 1.43 |
| 2022 | -0.98 |
| 2023 | 0.78 |
| 2024 | 1.16 |
| 2025 | 0.38 |
| 2026 | 1.69 |
P2 LOCKED TIME HOLDOUT -- main panel, last 24 months
Holdout window 2024-08-12..2026-08-12 (inspected once).
| Slice | Window | Sharpe | ret | maxDD | p_vs0 | n |
|---|---|---|---|---|---|---|
| IS | < 2016-01-01 | 0.64 | +130.6% | -47.7% | 0.024 | 2363 |
| mined OOS | >= 2016-01-01 | 0.64 | +148.8% | -37.8% | 0.021 | 2667 |
| LOCKED holdout | last 24mo | 1.90 | +60.9% | -12.7% | 0.005 | 502 |
| holdout @25bps | last 24mo | 1.68 | - | - | 0.011 | 502 |
| holdout lag2 | last 24mo | 1.35 | - | - | 0.028 | 502 |
Mined-OOS positive years: 9/11; yearly Sharpe: 2016:0.97; 2017:1.40; 2018:0.18; 2019:0.90; 2020:-0.61; 2021:2.00; 2022:-0.53; 2023:0.59; 2024:2.39; 2025:0.70; 2026:2.33
Verdict: SHADOW (3/4 conditions met)
Conditions (P1 midcap): sharpe>=0.30=Y, p_vs0<0.05=N, conservative>0=Y, lag2>0=Y.
- P1 virgin-universe Sharpe 0.65 (p=0.050, DSR 0.41); P2 locked-holdout Sharpe 1.90 (p=0.005).
- Interpretation is read off the pre-registered rule above; the mined 2016 split is context only and was NOT used to tune anything here.
- If REJECT: H5 stays parked -- do not promote. If PASS/SHADOW: next step is a paper/fill-measuring shadow, not more mining.