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 โ†’
80.0%
Current accuracy
v27.1
Model version
10
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
New Model
The Rookie Identity. Building a player from signals alone.
4 June 2026 ยท v27.1
v27.1
Every NBA rookie enters the league as an unknown. No career stats. No track record. Just signals. The Rookie Identity model builds a player from scratch โ€” NBA Combine measurements, KenPom-adjusted college stats, and 25 years of historical comps. 550 training examples. FG%/FT% highly predictable. 3PM at 19.0% is the hardest rookie stat in all of sports analytics.
PTS
41.7%
REB
38.1%
AST
35.7%
STL
48.8%
BLK
44%
3PM
19%
FG%
90.5%
FT%
94%
TO
28.6%
Read full entry โ†’Rookie Identity ยท /rookie-identity live
Model Update
v27.1: +1pp improvement. Here's what 10 seasons of misses taught us.
4 June 2026 ยท v27.1
v27.1
Before retraining, we ran a post-mortem across 10 walk-forward holdout seasons (2016โ€“2025). 1,549 player-seasons. Every miss investigated. 67% of all big misses (>30% error) had one thing in common: prior season games played < 55. The injury/availability signal is the single most actionable finding from a decade of honest testing.
PTS
83.2%
REB
82.6%
AST
77.3%
STL
77.4%
BLK
71.3%
3PM
75%
FG%
94%
FT%
94.7%
TO
79.5%
Read full entry โ†’10-season avg ยท 81.6% overall
Model Update
374 features. Real contract data. 80.0% overall. Here's what changed.
4 June 2026 ยท v27.1
v27.1
v27.1 adds 27 new features across two new passes of Layer 14 โ€” directly addressing the three miss clusters from the multi-season post-mortem. Injury/availability flags, team context, teammate zero-sum signals, and 459 players with real 2026 contract data. 6 of 9 categories improved. Injury-return MAE still 23.8% โ€” honest gap documented here.
PTS
79.7%
REB
80.9%
AST
75.8%
STL
76.4%
BLK
68.5%
3PM
73.8%
FG%
93.9%
FT%
95%
TO
76.4%
Read full entry โ†’80.0% overall ยท +0.1pp
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 ยท v27.1
80.0%
Overall
68.5%
BLK โš ๏ธ
โœ“
Gate
Injury-return MAE still 23.8% (target 9.5%). Only ~200 injury-return training examples across 24 seasons. Gap narrows each year. v27.2 target: <15%.
Walk-forward validation10 seasons โœ“
SHAP explanations374 features โœ“
Contract data459 players โœ“
Rookie IdentityLive โœ“
Injury-return MAE< 15% target
Season projectionsOct 2026
Accuracy by category
v27.1 ยท 10-season walk-forward
FT%
95%
FG%
93.9%
REB
80.9%
PTS
79.7%
STL
76.4%
TO
76.4%
AST
75.8%
3PM
73.8%
BLK
68.5%
Version history
v27.1 โ€” 374 features + contract
27 new Layer 14 features. Injury/availability flags. Contract data for 459 players. 80.0% overall.
4 Jun 2026
v26.0 โ€” baseline
9 XGBoost models trained 2001โ€“2015. Walk-forward validated 2016โ€“2024. 81.9% overall.
1 Jun 2026
v26.0-pre โ€” feature pipeline
347 features across 12 layers. 9/10 integration checks. Zero DB errors.
May 2026
Coming next
NextInjury-return MAE to <15% โ€” v27.2 target. More training examples accumulate each season.
ThenHistorical contract data โ€” Spotrac API ($TBD/quarter) closes the 2016โ€“2025 gap.
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.