The Lab
Every trading day at 9:25 ET the Lab forecasts where SPY will be at 10:00, noon, 2:00 and the close, then learns from what actually happened. The bar it has to clear is the simplest honest forecast: the latest pre-market price holds.
Skill at the close +1.5% ± 1.2% · promising, not proven
Edge hit rate 65% direction beyond the latest price, 51 leaned days
Range coverage 71% target 68%
Days learned 110 first 15 are warmup and not counted
Call
Tue, Sep 8, 2026 Graded 1 input missingClose target $767.41, range $763.33 to $771.51, 28% chance of closing above the prior close ($770.19). Closed at $765.96.
This call was made without everything it normally sees. Each one was read as an average day (no signal), so the call leaned on the rest:
- WSB euphoria (Jev) missing
| Checkpoint | P(up) | Target | Range | Actual | In range | vs naive |
|---|---|---|---|---|---|---|
| 10:00 | 16% | $767.99 | $766.43 – $769.56 | $769.32 | Yes | Beat (0.293 vs 0.470) |
| Noon | 25% | $767.71 | $764.61 – $770.82 | $767.82 | Yes | Beat (0.232 vs 0.249) |
| 2:00 | 26% | $767.56 | $764.14 – $771.00 | $767.39 | Yes | Beat (0.214 vs 0.235) |
| Close | 28% | $767.41 | $763.33 – $771.51 | $765.96 | Yes | Lost (0.257 vs 0.253) |
pushes downpushes up
- Distance to gamma flip
- Gamma above vs below spot
- Put skew
- Baseline lean
- Put/call ratio (log)
- Net dealer gamma
- Long bonds (TLT) yesterday
- Implied vs realized vol
Track record
-10.0%-5.0%+0.0%+5.0%+10.0%
naive+1.5%
May 22Jul 8Aug 19Oct 1
40%60%80%100%
68% target70%
May 22Jul 8Aug 19Oct 1
- Kalman: options positioning 17%
- Kalman: everything, slow memory 15%
- Gaps keep going 11%
- Yesterday's move reverses 9%
- Analog days (10 nearest) 8%
- Everyone else 39%
0%50%100%
Apr 27Jun 17Aug 11Oct 1
0%50%100%
16
14
14
17
34
0%25%50%75%100%
Leaderboard
Average CRPS at the close in sigma units (lower is better), and each expert's edge over "latest price holds". Weight is how much the ensemble listens to it today.
| Expert | CRPS | vs naive | Weight | Verdict |
|---|---|---|---|---|
| Kalman: everything, slow memory | 0.4819 | +0.0100 ± 0.0106 | 15.5% | ~332 more days to confirm |
| Kalman: options positioning | 0.4823 | +0.0096 ± 0.0085 | 16.6% | ~207 more days to confirm |
| Gaps keep going | 0.4845 | +0.0074 ± 0.0085 | 11.5% | ~410 more days to confirm |
| Yesterday's move reverses | 0.4902 | +0.0017 ± 0.0050 | 8.6% | ~3202 more days to confirm |
| Kalman: price action | 0.4914 | +0.0005 ± 0.0095 | 7.3% | ~141544 more days to confirm |
| Latest price holds (random walk) | 0.4919 | — | 8.0% | the benchmark |
| Analog days (10 nearest) | 0.4932 | -0.0013 ± 0.0094 | 8.4% | no edge so far |
| Kalman: Jev text reads | 0.4959 | -0.0041 ± 0.0035 | 6.1% | no edge so far |
| Dealer hedging drift | 0.4987 | -0.0068 ± 0.0055 | 5.2% | no edge so far |
| Kalman: everything, fast memory | 0.5005 | -0.0086 ± 0.0159 | 4.1% | no edge so far |
| Yesterday's direction continues | 0.5007 | -0.0088 ± 0.0052 | 5.4% | no edge so far |
| Gaps fade | 0.5147 | -0.0228 ± 0.0090 | 3.3% | no edge so far |
By checkpoint
| Checkpoint | Skill | From range | From edge | Coverage | Edge hit rate |
|---|---|---|---|---|---|
| 10:00 | +8.5% ± 1.7% | +2.4% | +6.1% | 72% | 74% (54) |
| 12:00 | +1.7% ± 1.1% | +0.6% | +1.0% | 71% | 63% (32) |
| 14:00 | +2.1% ± 1.0% | +1.7% | +0.4% | 72% | 52% (25) |
| Close | +1.5% ± 1.2% | +0.5% | +1.0% | 71% | 65% (51) |
How it learns
- Senses. Options positioning from the 9:25 snapshot, yesterday's moves in stocks, bonds, credit, the dollar and VIX, and Jev's reads of the morning headlines and WSB.
- Experts. Simple fixed hypotheses ("gaps fade"), Kalman filters whose weights drift slowly with the market, and an analog expert that asks what happened on the most similar past days.
- Ensemble. Experts earn weight by forecasting better (Hedge), and every expert keeps a small share so one that fell out of favor can come back when the market changes.
- Range. The range widens after a close lands outside it and narrows after one lands inside, so over time about 68% of closes fall inside it.