2017-12-01 → 2026-06-01 · every 3 months · horizons 3m / 6m / 12m · universe 552 · generated 2026-10-01
Hindcast
Point-in-time replay of the signals and the portfolio rules · 35 anchor dates
Point-in-time: fundamentals by SEC filing date, prices and macro by observation date. Equal-weight top 20 by expectations gap among Reality >= 55, rebalanced each anchor.
CAGR
23.7%
S&P 500 13.2%+10.5 ptsequal-weight universe 15.9%
Max drawdown
-11.2%
S&P 500 -12.6%, at rebalance dates
Sharpe
1.50
annualised, strategy
Turnover
305%
strategy, annualised
Hit rate
68%
periods ahead of the benchmark
Equity curve
Strategy vs benchmark · both rebased to 100 at the first anchor
StrategyBenchmarkindex, 100 at 2017-12-01
Show the data (35 points)
| Date | Strategy | Benchmark | Gap |
|---|---|---|---|
| 2017-12-01 | 100.0 | 100.0 | 0.0 |
| 2018-03-01 | 109.7 | 101.2 | +8.5 |
| 2018-06-01 | 117.9 | 103.5 | +14.4 |
| 2018-09-01 | 129.7 | 109.8 | +19.9 |
| 2018-12-01 | 118.8 | 104.2 | +14.6 |
| 2019-03-01 | 121.2 | 106.0 | +15.2 |
| 2019-06-01 | 115.1 | 104.1 | +11.0 |
| 2019-09-01 | 119.8 | 110.6 | +9.2 |
| 2019-12-01 | 128.3 | 118.8 | +9.5 |
| 2020-03-01 | 125.9 | 112.0 | +13.9 |
| 2020-06-01 | 131.7 | 115.5 | +16.2 |
| 2020-09-01 | 154.4 | 133.3 | +21.1 |
| 2020-12-01 | 163.8 | 138.4 | +25.4 |
| 2021-03-01 | 174.3 | 147.3 | +27.0 |
| 2021-06-01 | 202.7 | 158.7 | +44.0 |
| 2021-09-01 | 220.8 | 170.8 | +50.0 |
| 2021-12-01 | 228.7 | 170.3 | +58.4 |
| 2022-03-01 | 208.9 | 162.6 | +46.3 |
| 2022-06-01 | 214.0 | 154.9 | +59.1 |
| 2022-09-01 | 206.2 | 149.9 | +56.3 |
| 2022-12-01 | 218.6 | 154.0 | +64.6 |
| 2023-03-01 | 214.4 | 149.3 | +65.1 |
| 2023-06-01 | 221.5 | 159.5 | +62.0 |
| 2023-09-01 | 250.1 | 170.6 | +79.5 |
| 2023-12-01 | 268.8 | 173.6 | +95.2 |
| 2024-03-01 | 341.7 | 193.9 | +147.8 |
| 2024-06-01 | 370.9 | 199.4 | +171.5 |
| 2024-09-01 | 380.3 | 213.1 | +167.2 |
| 2024-12-01 | 450.8 | 227.8 | +223.0 |
| 2025-03-01 | 417.8 | 224.7 | +193.1 |
| 2025-06-01 | 442.8 | 222.9 | +219.9 |
| 2025-09-01 | 487.3 | 243.9 | +243.4 |
| 2025-12-01 | 509.0 | 257.2 | +251.8 |
| 2026-03-01 | 542.0 | 259.4 | +282.6 |
| 2026-06-01 | 611.5 | 286.8 | +324.7 |
Signal information
Rank IC of each signal against forward returns · t-stat in brackets · hit = share of anchors with a positive IC · quintile bars show the mean 12m forward return (%) from the lowest (Q1) to the highest (Q5) signal bucket
| Signal | 3m forward | 6m forward | 12m forward | Quintiles · 12m | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| IC (t) | Hit | n | IC (t) | Hit | n | IC (t) | Hit | n | ||
| Qualityquality | +0.002(0.1) | 60% | 35 | -0.003(-0.1) | 53% | 34 | -0.009(-0.5) | 44% | 32 | |
| Growthgrowth | +0.008(0.3) | 60% | 35 | +0.013(0.5) | 56% | 34 | +0.015(0.9) | 59% | 32 | |
| Value (sector-relative + own history)value | +0.023(0.9) | 51% | 35 | +0.025(1.1) | 53% | 34 | +0.030(1.4) | 53% | 32 | |
| Fundamental accelerationacceleration | +0.005(0.2) | 60% | 35 | +0.002(0.1) | 59% | 34 | -0.008(-0.5) | 56% | 32 | |
| Price momentumprice_momentum | +0.004(0.1) | 54% | 35 | +0.021(0.7) | 62% | 34 | +0.016(0.6) | 53% | 32 | |
| Expectations gap (Reality - Pricing)expectations_gap | +0.020(0.9) | 51% | 35 | +0.017(0.8) | 56% | 34 | +0.019(1.3) | 69% | 32 | |
| Trend template (0-100)trend_template | -0.001(-0.0) | 54% | 35 | +0.007(0.2) | 56% | 34 | +0.004(0.1) | 53% | 32 | |
| Scenario expected returnexpected_return | +0.029(1.1) | 51% | 35 | +0.034(1.2) | 59% | 34 | +0.055(2.1) | 59% | 32 | |
Regime calibration
Predicted probability of a growth-negative regime (Stagflation + Contraction) vs how often industrial production lower six months later, quarterly since 2004
Brier
0.221
| Bin | n | Predicted | Realised | Gap |
|---|---|---|---|---|
| <30% | 25 | 19% | 24% | +5 pts |
| 30-40% | 15 | 34% | 7% | -27 pts |
| 40-50% | 14 | 47% | 21% | -25 pts |
| 50-60% | 18 | 55% | 50% | -5 pts |
| >60% | 17 | 78% | 59% | -19 pts |
Caveats
What this replay cannot tell you
- ·Survivorship: the universe is today's list; companies that failed or were removed are missing, which flatters results. Judge the strategy against the equal-weight universe (same bias), not only against the S&P 500.
- ·Drawdowns are measured at rebalance dates only, so intra-quarter falls (March 2020) are understated.
- ·Share counts before today come from XBRL filings, which are unreliable for multi-class companies; live runs use exchange market caps instead.
- ·Macro series use observation dates without revision vintages (ALFRED would fix this).
- ·Stops, intra-period exits, transaction costs and taxes are not simulated; positions are held between anchors.
- ·The LLM engines (brief, theses, Human Futures Engine) are not hindcast: the model knows the past. They are scored prospectively in the thesis ledger.
- ·A short window with few anchors gives wide error bars: treat information coefficients with |t| below 2 as unproven.
Rule ablation
The replay with each rule on vs the same replay with only that rule switched off
| Rule | With the rule | Without it | Note | ||||||
|---|---|---|---|---|---|---|---|---|---|
| CAGR | Max DD | Sharpe | Turnover | CAGR | Max DD | Sharpe | Turnover | ||
| Trend-template entry gate | 23.7% | -11.2% | 1.50 | 305% | 22.4% | -10.2% | 1.39 | 312% | With the rule: CAGR +1.4 pts, max drawdown -1.0 pts (positive = shallower) |
| Index regime gate (half exposure when closed) | 23.7% | -11.2% | 1.50 | 305% | 25.7% | -11.2% | 1.56 | 305% | With the rule: CAGR -2.0 pts, max drawdown +0.0 pts (positive = shallower) |
| Expected-return valuation gate | 23.7% | -11.2% | 1.50 | 305% | 25.8% | -12.8% | 1.35 | 308% | With the rule: CAGR -2.1 pts, max drawdown +1.6 pts (positive = shallower) |