Forward window: 2026-08-01 .. 2026-08-31 (31 days, 14 LINK-gate60 long days). SPLIT moved to 2026-07-31 so this is a strict holdout: the data here was not used in the original study's selection or pre-registration. Pre-registered thresholds unchanged: look=168h, carry|z|>=1.5, basis|z|>=2.0, multipliers {0.5, 1.0, 1.25}.
Forward OOS variants
| Variant | Days | LongDays | Ret | Sharpe | PF | MaxDD |
|---|---|---|---|---|---|---|
| baseline (gate60, no overlay) | 31 | 14 | +18.63% | 3.55 | 2.37 | -7.13% |
| primary overlay (0.5/1.0/1.25) | 31 | 14 | +21.86% | 3.69 | 2.59 | -7.13% |
Forward bucket distribution (gate60-long days only)
| Bucket | Days | Share |
|---|---|---|
| 1.0x (no signal) | 12 | 85.7% |
| 1.0x (mixed) | 1 | 7.1% |
| 1.25x (both stretched short) | 1 | 7.1% |
Bootstrap p(forward overlay beats baseline): 0.351
Original study (for context)
Original OOS 2025-01..2026-07-31: Sharpe +1.01 -> +1.12, p=0.015, maxDD delta +0.00%, verdict=PASS (see reports/carry_basis_overlay_link.md).
Verdict
- Forward OOS baseline Sharpe: 3.55, ret +18.63%, maxDD -7.13%
- Forward OOS overlay Sharpe: 3.69, ret +21.86%, maxDD -7.13%
- Bootstrap p(forward): 0.351
- Result: CONFIRMED (forward Sharpe 3.69 >= baseline 3.55; pre-registered verdict holds in forward OOS, n_active=1)
Honest caveats
- 31 days is a small sample. The std error on a daily-Sharpe at 31 obs is roughly sqrt(252/31) ~ 2.85x the long-run std. A single lucky or unlucky day can move the verdict; the bootstrap p accounts for this but the absolute Sharpe has wide confidence intervals.
- Inert signal risk: if the bucket_active_frac is below 5%, the verdict is INERT and the overlay did not have a chance to confirm or refute itself.
- Forward verdict is NOT a promotion gate by itself. It is one more data point. The original study's pre-registered verdict (PASS) is the primary gate. A clean forward confirmation is a positive signal; a marginal or INERT forward is a yellow flag, not a veto.