Multi-season post-mortem · 2016–2025
10 seasons of misses. Every one investigated.
Before retraining for v27.1, we ran a post-mortem across 10 walk-forward holdout seasons. 1,549 player-seasons. Every miss over 30% error was pulled and investigated individually. Here's what we found.
10
Holdout seasons
2016–2025
1,549
Player-seasons
All investigated
67%
Big misses
Had gp < 55 prior season
Accuracy by season · big-miss analysis
The trend is clear. The outlier is honest.
| Season | Within 10% | Note |
|---|
| 2016 | 68.6% | |
| 2017 | 76.4% | |
| 2018 | 70.6% | |
| 2019 | 74.4% | |
| 2020 | 65.3% | ⚑ COVID bubble |
| 2021 | 77.2% | |
| 2022 | 72% | |
| 2023 | 82.7% | ★ peak season |
| 2024 | 80.2% | |
| 2025 | 81.3% | |
Accuracy has improved consistently from 2020 onward as more training data accumulates. The 2020 COVID bubble season remains the clear outlier — no model trained on 20 years of normal basketball could anticipate a 70-game season played in an Orlando bubble with no home court advantage and no crowd noise. We don't try to explain it away.
The primary finding
67% of big misses had one thing in common.
Primary finding
67% of all big misses (>30% error) had one thing in common:
prior season games played < 55
When a player has a truncated prior season, our model anchors to their healthy output and projects it to repeat. Often it doesn't. The injury/availability signal is the single most actionable finding from a decade of honest testing.
Three miss clusters
What drove the errors.
Players returning from injury. Model anchors to pre-injury production. Often it doesn't repeat.
Fix applied in v27.1: prior_season_gp_pct, injury_return_flag, two_yr_avg_gp, age×injury compound flag.
The worst 15 misses across the decade are dominated by players aged 30+ who had injury-shortened seasons. Isaiah Thomas 2018 (−71.8%), Kemba Walker 2022 (−52.3%), DeMarcus Cousins 2019 (−52.1%).
Fix applied in v27.1: age_x_injury_flag compound feature — appears in 11 of 15 worst misses.
78% of big misses are under-projections. The model consistently misses breakouts and injury returns in the positive direction. It catches players who disappoint but misses players who outperform.
Fix applied in v27.1: Structural bias — model is conservatively calibrated. Recency weighting partially addresses this.
The surprise finding
U24 development variance is NOT a systemic weakness.
Hypothesis rejected
The U24 development variance we identified from the 2025 holdout alone is NOT a systemic weakness. Across 10 seasons, players aged ≤23 have the lowest big-miss rate (1.5%) and lowest mean error (6.7%). Cam Thomas and GG Jackson were outliers, not a pattern.
← Back to Model Journal