Rim protection
Blocks are the highlight, but they're not the whole job. The best rim protectors also stop shots from happening and make the ones that do happen miss. This number counts all of it: rim points saved per 100 opponent possessions.
What it measures
Two things happen at the rim when a great big is on the floor. Opponents take fewer shots there (deterrence), and they make fewer of the ones they take (FG% saved). We measure both from every possession of the last two regular seasons, then turn them into points:
rim points saved per 100 = shots deterred × (1.31 − 1.00) + FG% saved × 25.6 rim attempts per 100
A rim shot is worth 1.31 points on average (65.5% in the restricted area); every other shot is worth about 1.00. So a deterred rim attempt saves about 0.31 points. 0 is league average, +2 is elite, +4 is historic.
Lineup-adjusted means we estimate every player at the same time from every 10-man combination on the floor (a ridge regression, the same idea as RAPM), so nobody gets credit just for sharing the floor with a great rim protector. Each defender's estimate is gently pulled toward what his block rate suggests, because blocks turn out to carry real signal about FG% at the rim.
- Rim pts saved/100Rim protection
- How many points a defender saves at the rim per 100 opponent possessions, from fewer shots at the rim and fewer makes on the ones that are taken. 0 is league average, +2 is elite, +4 is historic.
- Rim shots deterred/100Rim deterrence
- How many fewer shots opponents take at the rim (inside 4 feet) per 100 possessions when he is on defense, adjusted for all nine other players on the floor.
- Rim FG% ppRim FG% saved
- How many percentage points lower opponents shoot at the rim with him on defense, adjusted for teammates and opponents.
- Blocks per rim attempt
- Share of opponent rim attempts this player blocks while he is on the floor.
- On/off
- Opponent rim numbers with the player on the floor minus with him off. Not adjusted for teammates or opponents.
- Lineup-adjusted
- We estimate every player at once from every 10-man combination, so a defender doesn't get credit just for playing next to a great rim protector.
Graded the honest way
We graded the model the honest way. We built it on 2024-25 only, then asked it to predict 2025-26 lineups it had never seen. If it can't beat simple stats on games it hasn't seen, there's no reason to trust it.
| Predictor, built on 2024-25 | Rim attempt rate, 2025-26 | Rim FG%, 2025-26 |
|---|---|---|
| Spreadsheet Sports Rim Protection | .061 | .069 |
| Same model, no block prior | .057 | .059 |
| Blocks per rim attempt | .026 | .059 |
| Raw on/off | .028 | .033 |
Weighted correlation with what actually happened in every 2025-26 defensive unit. Single lineups are tiny samples, so every number is small; the comparison is what matters. Our metric beats block rate by +0.035 on deterrence and +0.011 on FG%, and raw on/off by +0.033 and +0.036. All four gaps have 95% confidence intervals above zero (bootstrap over games).
Year to year
Correlation between a player's 2024-25 and 2025-26 values (190 players with 1,000+ minutes in both).
| Metric | r |
|---|---|
| Rim protection (combined) | .864 |
| Rim deterrence | .589 |
| Rim FG% saved | .870 |
| Raw on/off, deterrence | .337 |
| Raw on/off, FG% | .294 |
| Blocks per rim attempt | .903 |
Block rate is very stable but predicts deterrence poorly. Ours is nearly as stable and predicts better. Being honest about the overlap: across qualified players the combined number tracks block rate closely (R² 0.85), so the FG% half is largely “blocks, adjusted for lineups and made predictive”. The new information lives in deterrence.
Top 10
- 1Victor WembanyamaSAS+5.1
- 2Chet HolmgrenOKC+4.3
- 3Isaiah StewartDET+3.7
- 4Daniel GaffordDAL+3.2
- 5Neemias QuetaBOS+2.8
- 6Donovan ClinganPOR+2.7
- 7Ryan KalkbrennerCHO+2.6
- 8Brook LopezLAC+2.5
- 9Clint CapelaHOU+2.5
- 10Evan MobleyCLE+2.5
Shot blockers teams still attack
Bigs in the top 15% for block rate whose deterrence ranks far lower: great at contesting, but opponents keep coming anyway.
- 1Matas BuzelisCHI93 / 8
- 2Jay HuffIND99 / 15
- 3Zeke NnajiDEN88 / 4
- 4Nic ClaxtonBRK89 / 22
- 5Yves MissiNOP99 / 40
- 6Derik QueenNOP87 / 31
- 7Moussa DiabatéCHO87 / 32
- 8Tristan VukcevicWAS92 / 46
What it can't see
- Team scheme. There's no team term, so scheme (drop vs switch, zone) is partly credited to players, and teammates who almost always share the floor split credit uncertainly.
- Uncertainty is model-based. The ± band is a 90% interval conditional on the model's shrinkage; it understates true uncertainty for low-minute players, whose estimates lean on the block prior. Treat percentile differences under about 10 points as ties.
- Deterrence is the noisiest part (year-to-year r 0.59), and it assumes a deterred shot becomes an average non-rim shot. Turnovers and kick-outs to corner threes aren't modeled separately.
- Rim = restricted-area field-goal attempts. Rim fouls without a recorded shot are left out, which slightly undervalues bigs who foul.
- Two seasons pooled (2024-25 + 2025-26, equal weight), so it doesn't capture aging or injury inside that window. The same number shows in both season views on player pages.
- Not yet cross-checked against the NBA's tracking-based opponent FG% at the rim, by design (licensing).
- Shown for players with 1,000+ minutes over the two seasons (405 players).
Play-by-play via the NBA's public game data (archived by shufinskiy/nba_data, Apache-2.0); all metrics computed by Spreadsheet Sports. Model v1.0, 2026-10-23.