Journal entriesClick any entry to read the full analysis
All
Milestones
Walk-forward
Improvements
Walk-forward validation
9 seasons tested. +1.3pp improvement. Here's everything we learned.
1 June 2026 Β· v26.0
Walk-forward validation across 2016β2024. Train on everything before the test year, predict, measure, retrain. The model improved from 80.6% to 81.9% across 9 seasons. Blocks remains the hardest category (68β74%). FG%/FT% consistently the strongest (93β95%). The 2019-20 bubble year shows the expected accuracy dip.
Read full entry β80.6% β 81.9% β
Milestone
The model has learned. Here's what it knows.
1 June 2026 Β· v26.0
Nine XGBoost models trained on 3,813 player-season records spanning 2001β2015 with recency weighting. First holdout test on 2016 data. Rankings sanity gate passed β Wembanyama #1, JokiΔ #3. This is the model's first look at real NBA history.
Read full entry β80.6% overall
Milestone
347 features across 12 layers β the pipeline that feeds the model.
May 2026 Β· v26.0-pre
The complete feature engineering pipeline powering the prediction model. 347 features spanning player talent baseline, rolling momentum windows, opportunity signals, lineup context, injury ripple effects, team and coach context, opponent matchups, schedule effects, age curves, volatility modelling, market signals, and archetype embeddings. Zero DB errors across 150-player integration test.
Read full entry β347 features Β· 9/10 checks
Walk-forward validation historyThe honest proof β 9 independent test seasons
What walk-forward validation means
Train on data up to 2015. Predict 2016 without ever having seen it. Measure the error. Retrain incorporating 2016. Predict 2017. Repeat through 2024. Nine completely independent test seasons. The numbers below are real β every season we ran, in order, nothing removed.
9
Independent test seasons
+1.3pp
Improvement across all seasons
2,345
Player-season predictions made
Overall accuracy by season
β 2018β19 = COVID bubble Β· β
2022β23 = peak season
| Season | PTS | REB | AST | STL | BLK | 3PM | FG% | FT% | TO | Overall |
|---|
| 2015β16 | 82.3% | 80.7% | 76.3% | 78.3% | 68.3% | 72.7% | 93.8% | 94.8% | 78.3% | 80.6% |
| 2016β17 | 82.5% | 81.1% | 77.1% | 76.8% | 74.2% | 73.2% | 94% | 94.9% | 78.7% | 81.4% |
| 2017β18 | 84.7% | 82.8% | 78% | 76.9% | 72.4% | 75.6% | 94.1% | 94.7% | 80.8% | 82.2% |
| 2018β19β bubble | 82.4% | 82.8% | 76.8% | 76.9% | 71.4% | 72.9% | 94.1% | 94.3% | 80.2% | 81.3% |
| 2019β20 | 84.2% | 83.5% | 78.3% | 78.3% | 70.6% | 76.4% | 94% | 94.3% | 79.1% | 82.1% |
| 2020β21 | 81.7% | 83.1% | 75.9% | 77.5% | 71.5% | 75% | 94% | 94.8% | 78.7% | 81.4% |
| 2021β22 | 83.4% | 81.9% | 77.6% | 77.8% | 69.4% | 76% | 93.6% | 94.8% | 81% | 81.7% |
| 2022β23β
peak | 84% | 84.1% | 78.6% | 79% | 70.7% | 75.8% | 94.2% | 95.2% | 79.5% | 82.3% |
| 2023β24 | 83.4% | 83.4% | 77.1% | 75.3% | 73.6% | 76.9% | 94.4% | 94.3% | 78.8% | 81.9% |
| Average | 83.2% | 82.6% | 77.3% | 77.4% | 71.3% | 75% | 94% | 94.7% | 79.5% | 81.6% |
Season diaryWhat we found and what we changed after each test
2015β16 β First testBaseline Β· trained on 2001β2015
80.6%
What we found
Strong baseline. FG%/FT% excellent β percentage categories are inherently stable. Blocks at 68% was our biggest gap β high game-to-game variance makes it genuinely hard. FG% was systematically under-predicting for forwards across all usage tiers. Retrained with 2016 data incorporated before next test.
Biggest miss: Rashad Vaughn FT% β projected 60.6, actual 40.0 (Ξ +20.6pp). Erratic young shooter.
2018β19 β Bubble seasonCOVID / Orlando bubble Β· unusual conditions
81.3%β0.9pp
What we found
The bubble was genuinely unpredictable. No home court, no crowds, neutral site for all games β conditions our model had never seen in training data. PTS dropped 2.3pp, 3PM dropped 2.7pp. This is an expected and honest result, not a model failure. We flagged 2019-20 as a reduced-weight season in subsequent training. Did not try to βfixβ the model on unprecedented data.
Biggest miss: Thabo Sefolosha FT% β projected 71.0, actual 37.5 (Ξ +33.5pp). Bubble conditions affected free throw mechanics.
2022β23 β Peak season
82.3%β
best
What we found
Our best season yet. Broad gains across REB (+2.2pp), STL (+1.2pp), BLK (+1.3pp), AST (+1.0pp). No systematic bias detected in any category β the most balanced result across the full walk-forward run. The archetype clustering (Layer 12) contributed significantly to REB and BLK improvement. No changes required β model incorporated 2023 data and continued.
Biggest miss: Reggie Bullock Jr. FT% β projected 77.4, actual 100.0 (Ξ β22.6pp). Perfect FT% shooter we underestimated.
SHAP analysisWhat features drove the model's biggest decisions
SHAP waterfall β FT% projectionHassan Whiteside Β· 2018-19 season
Our biggest systematic miss category is FT% for erratic shooters. This SHAP chart shows exactly why the model overestimated Whiteside's FT% β it correctly weighted his prior year data, but that data couldn't predict the dramatic drop that followed.
is_known_poor_ft_shooterβ4.8pp ft_pct_sustainabilityβ1.9pp Base value: 68.3% (league avg FT%) β Projected: 66.5% β Actual: 44.9% Miss: Actual FT% was 44.9% β a 21.6pp gap. The model had no feature to capture the kind of dramatic intra-career FT% collapse that Whiteside experienced. This motivated the ft_pct_sustainability feature investigation.