Model Journal

How our model gets smarter every week.

Every projection tracked against reality. Every miss investigated. Every improvement documented here β€” with the data, reasoning, and SHAP analysis to prove it worked.

Looking for the season scorecard? That's on the Transparency page β†’
81.9%
Current accuracy
v26.0
Model version
9
Seasons validated
πŸ“‹Journal vs Transparency page: This journal documents how the model evolves β€” improvement log, walk-forward validation history, SHAP analysis. The Transparency page is the permanent season record β€” locked projections vs actuals.
All entries
Walk-forward history
Improvement log
Weekly digestSeason start Oct
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
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.
PTS
83%
REB
83%
AST
77%
STL
77%
BLK
71%
3PM
75%
FG%
94%
FT%
95%
TO
79%
Read full entry β†’80.6% β†’ 81.9% ↑
Milestone
The model has learned. Here's what it knows.
1 June 2026 Β· v26.0
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.
PTS
82%
REB
81%
AST
76%
STL
78%
BLK
68%
3PM
73%
FG%
94%
FT%
95%
TO
78%
Read full entry β†’80.6% overall
Milestone
347 features across 12 layers β€” the pipeline that feeds the model.
May 2026 Β· v26.0-pre
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
80.6
15–
81.4
16–
82.2
17–
81.3
18β€“βš‘
82.1
19–
81.4
20–
81.7
21–
82.3
22β€“β˜…
81.9
23–
βš‘ 2018–19 = COVID bubble Β· β˜… 2022–23 = peak season
SeasonPTSREBASTSTLBLK3PMFG%FT%TOOverall
2015–1682.3%80.7%76.3%78.3%68.3%72.7%93.8%94.8%78.3%80.6%
2016–1782.5%81.1%77.1%76.8%74.2%73.2%94%94.9%78.7%81.4%
2017–1884.7%82.8%78%76.9%72.4%75.6%94.1%94.7%80.8%82.2%
2018–19βš‘ bubble82.4%82.8%76.8%76.9%71.4%72.9%94.1%94.3%80.2%81.3%
2019–2084.2%83.5%78.3%78.3%70.6%76.4%94%94.3%79.1%82.1%
2020–2181.7%83.1%75.9%77.5%71.5%75%94%94.8%78.7%81.4%
2021–2283.4%81.9%77.6%77.8%69.4%76%93.6%94.8%81%81.7%
2022–23β˜… peak84%84.1%78.6%79%70.7%75.8%94.2%95.2%79.5%82.3%
2023–2483.4%83.4%77.1%75.3%73.6%76.9%94.4%94.3%78.8%81.9%
Average83.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%
Accuracy by category
PTS
82%
REB
81%
AST
76%
STL
78%
BLK
68%
3PM
73%
FG%
94%
FT%
95%
TO
78%
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
Accuracy by category
PTS
82%
REB
83%
AST
77%
STL
77%
BLK
71%
3PM
73%
FG%
94%
FT%
94%
TO
80%
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
Accuracy by category
PTS
84%
REB
84%
AST
79%
STL
79%
BLK
71%
3PM
76%
FG%
94%
FT%
95%
TO
80%
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.

Pushes projection higher
Pushes projection lower
ft_pct_last_season
+9.1pp
ft_pct_career_avg
+6.3pp
ft_pct_3yr_avg
+3.8pp
ft_attempt_rate
+2.2pp
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%
Projected FT%
66.5%
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.
Current season accuracy
Loading grades…
Model status Β· v26.0
81.9%
Overall
71.3%
BLK ⚠️
βœ“
Gate
Blocks is our persistent weakest category (68–74% across all test seasons). Active development area for v26.1.
Walk-forward validationComplete βœ“
Rankings sanity gatePassed βœ“
Models in R216 files βœ“
Confidence intervalsNext up
SHAP explanationsNext up
Season projectionsOct 2026
Accuracy by category
9-season average across walk-forward
FT%
94.7%
FG%
94%
PTS
83.2%
REB
82.6%
TO
79.5%
STL
77.4%
AST
77.3%
3PM
75%
BLK
71.3%
Version history
v26.0 β€” baseline
9 XGBoost models trained 2001–2015. Walk-forward validated 2016–2024. Gate passed.
1 Jun 2026
v26.0-pre β€” feature pipeline
347 features across 12 layers. 9/10 integration checks. Zero DB errors.
May 2026
Coming next
NextConfidence intervals β€” low/mid/high range per projection. Wide CI = model is uncertain.
ThenSHAP explanations β€” plain English reasons for every projection, per category.
ThenFantasy value translation β€” what the raw stats are actually worth in your specific league.
Oct 262026-27 projection lock ceremony. Season projections published and immutable.
What is SHAP?

SHAP (SHapley Additive exPlanations) shows which features drove each prediction and by how much. Blue bars push the projection higher. Pink bars lower. The length shows the magnitude. It makes the model's reasoning visible β€” not just what we predicted, but exactly why.