Basketball Data Science All studies Scouting one-pagers Code on GitHub
218,701 shots (+ G League, + WNBA)

Pricing every shot, and finding out which shooting skills are real

A box score tells you what went in. It cannot tell you whether the shooter was good or the shots were easy. That distinction is worth real money. It is the difference between a cold shooter and a broken shot diet, between a breakout and a hot streak. This study prices all 218,701 field-goal attempts of 2023-24 with a logistic xMake model built from location, distance, angle, and nine action families, with the game clock deliberately left out. Then it follows the consequences across three NBA seasons, the G League, and the WNBA.

Terms used in this analysis
Shots priced
218,701
Every 2023-24 field-goal attempt, scored by a calibrated xMake model.
What repeats
.91 vs .60
Year-over-year correlation of shot selection versus shot-making.
Projection gain
11.4%
EB rule's edge over naive carry-forward in mean absolute error (10.0% on the second season pair).
Corner threes
25.5% → 12.9%
Share of all threes, NBA versus WNBA. Shot selection follows the rulebook.
The price check

First, prove the prices are right

Nothing downstream matters if the pricing is wrong, so the first figure is the least glamorous and most important one.

Predicted versus actual make rate by prediction decile. The license for everything else on this page: the model's prices match reality within a point at the worst decile, and the same calibration holds on two later seasons the model never saw (worst out-of-season gap 0.014). An uncalibrated pricer would make every following chart meaningless.
Two skills

Selection and making have different rosters

With every shot priced, player skill splits cleanly in two. Selection (xPPS) is the value of the shots a player chooses; making is conversion above what those shots should yield. The two skills have different rosters, and that is the decomposition's whole point. The make-above-expected list is Jokić, Curry, Dončić: players who convert hard shots. The best-diet list is rim-runners like Gafford, whose value is standing in the right place. Box-score efficiency mixes the two; this separates them.

How a shot is priced, and how Jokic and Gobert split into selection and making1. Every shot gets a priceThe shotwhere it was taken,distance, angle, andaction familyThe modelthe chance a shot like itgoes in (xMake)The pricexMake times 2 or 3:expected pointsDearest shot type: dunk, 1.78 expected points. Cheapest: long two, 16+ ft, 0.82.2. Add up a player's shotsPoints per shot, against the league average. Selection: the price of the shots he takes.Making: what he scores above that price.Nikola Jokic1,411 shotsselection -6.1making +19.2Rudy Gobert614 shotsselection +28.8making -5.9league average 1.0931.01.11.21.31.4points per shotBoth steps in points per 100 shots. The dot is what he scored.
How a shot is priced, and how Jokic and Gobert split into selection and making1. Every shot gets a priceThe shotwhere it was taken, distance, angle, andaction familyThe modelthe chance a shot like it goes in (xMake)The pricexMake times 2 or 3: expected pointsDearest shot type: dunk, 1.78 expected points.Cheapest: long two, 16+ ft, 0.82.2. Add up a player's shotsPoints per shot, against the league average.Selection: the price of the shots he takes.Making: what he scores above that price.Nikola Jokic, 1,411 shotsselection -6.1,making +19.2Rudy Gobert, 614 shotsselection +28.8,making -5.9league average 1.0931.01.11.21.31.4points per shotBoth steps in points per 100 shots. The dot iswhat he scored.
How the decomposition works. The model prices every shot from where and how it was taken; a player's points per shot then split into selection (the price of the shots he takes, against the league average) and making (what he scores above that price). Jokić takes slightly cheaper shots than average and makes far more of them than their price says. Gobert takes the most valuable diet of any qualifying player and scores slightly below its price.
Every qualifying player placed by shot selection (x) and shot-making (y). The figure that makes the decomposition concrete: the upper region is shot-makers, the right region is diet merchants, and the near-empty upper-right is the superstar corner. Two different skills, two different leaderboards, one chart.
The clock

Heaves are doubly bad. The 2-for-1 is nearly free.

The model's most quotable tactical result comes from what was left out of it. Because the clock is not a feature, end-of-period effects appear in the residuals, where they decompose: final-four-second heaves are worse shots (−17 expected points per 100 by selection) and worse-executed shots (a further −22 per 100). The 2-for-1 launch window at 25–36 seconds, meanwhile, costs almost nothing (~−0.8 per 100), upgrading the sibling play-by-play study's eFG-proxy finding with a real per-shot price.

End-of-period shots split into selection and execution: the final four seconds lose -16.9 and -22.3 per 100Points per shot, starting from normal playSelection: the price of the shots taken. Execution: how they convert against that price.Final 4 seconds: 4,684 shots1.104normal play-16.9selection-22.3executionends at 0.7122-for-1 window, 25 to 36 s: 4,607 shots1.104normal play-0.8selection-6.5executionends at 1.031Selection and execution steps in points per 100 shots, against normal play.
End-of-period shots split into selection and execution: the final four seconds lose -16.9 and -22.3 per 100Points per shot, starting from normal playSelection: the price of the shots taken.Execution: how they convert against that price.Final 4 seconds: 4,684 shots1.104normal play-16.9selection-22.3executionends at 0.7122-for-1 window, 25 to 36 s: 4,607 shots1.104normal play-0.8selection-6.5executionends at 1.031Selection and execution steps in points per 100shots, against normal play.
End-of-period shots measured against normal play in two steps: selection (are the shots cheaper?) and execution (do they go in less often than their price?). In the final four seconds both steps drop. In the 2-for-1 window the selection step is close to zero, which is the near-free part; its shots still convert below their price, by about as much as other late-clock shots.
What repeats

Trust the diet, regress the making

Then comes the question that turns a descriptive model into a projection tool: which of these skills repeats? Each season is scored with its own refit model, so level drift cannot masquerade as skill. Shot selection correlates at r ≈ .91/.87 year over year. Shot-making correlates at only r ≈ .60/.59. And raw points per shot persists no better than making, because box-score efficiency inherits all of making's noise.

Shot-making in 2023-24 versus 2024-25, player by player. The study's most consequential scatter: the cloud is wide because making only half-repeats (r ≈ .60), while the equivalent selection plot is a tight diagonal (r ≈ .91). This single contrast dictates the projection rule: trust the diet, regress the making.

The persistence finding then becomes a rule. An empirical-Bayes projection carries each player's diet forward and shrinks his making toward the league mean in proportion to its sampling noise; its two fixed-weight corners are the natural baselines (weight 1 is naive carry-forward, weight 0 is diet-only). On both held-out season pairs, the EB rule beats naive carry-forward by 11.4% and 10.0% in mean absolute error, and beats both corners, meaning the gain comes precisely from regressing the noisy component and only that component.

Trust the diet, regress the making: Jokic keeps 85% of his making, Kennard 42%1. What repeats from 2023-24 to 2024-25Selection: r = .91Repeats almost fully: carry it forwardwhole.Making: r = .60Half repeats: shrink it toward the leaguemean.2. Shrink each player's making by how noisy it isShare kept = τ² / (τ² + SE²), where τ = 6.7 points per 100 is the league's spread of truemaking and SE is the player's own noise. More shots, smaller SE, more of his number kept.Nikola Jokic1,411 shots, SE 2.8keeps 85%: +19.2 to +16.4Luke Kennard315 shots, SE 7.8keeps 42%: +15.0 to +6.5league mean +0.30+5+10+15+20+25making, points above expected per 100 shotsobserved, with 1 SE either sideafter shrinking3. Project next season, then checkJokic: diet 1.032 plus shrunk making 0.164 projects 1.196 points per shot; he scored 1.254.Across all 215 players, the rule's average miss is 11.4% smaller than carrying raw points pershot forward.
Trust the diet, regress the making: Jokic keeps 85% of his making, Kennard 42%1. What repeats from 2023-24 to 2024-25Selection: r = .91Repeats almost fully: carry it forward whole.Making: r = .60Half repeats: shrink it toward the leaguemean.2. Shrink each player's making by how noisy it isShare kept = τ² / (τ² + SE²), where τ = 6.7 pointsper 100 is the league's spread of true making andSE is the player's own noise. More shots, smallerSE, more of his number kept.Nikola Jokic: 1,411 shots, SE 2.8keeps 85%: +19.2 to +16.4Luke Kennard: 315 shots, SE 7.8keeps 42%: +15.0 to +6.50+5+10+15+20+25making, points above expected per 100 shotsobserved, with 1 SE either sideafter shrinkingleague mean +0.33. Project next season, then checkJokic: diet 1.032 plus shrunk making 0.164projects 1.196 points per shot; he scored 1.254.Across all 215 players, the rule's average miss is11.4% smaller than carrying raw points per shotforward.
From what repeats to the projection rule. Because selection repeats almost fully and making only about half, the rule carries a player's diet forward whole and pulls his making toward the league mean in proportion to its noise. Jokić and Kennard both posted high making numbers; with far more shots behind his, Jokić keeps most of it, while Kennard keeps less than half.
Observed shot-making versus its empirical-Bayes posterior, sized by shot volume. The shrinkage rule made visible: high-volume shooters keep their number, small samples are pulled toward the league mean. This picture is why the projection beats carrying raw numbers forward.
The rulebook test

Shot selection follows the rulebook

Finally, the same pipeline refit on the WNBA (with its own play-by-play gate) shows the deepest structural result: shot selection follows the rulebook. The WNBA's three-point line is nearly uniform (the corner discount that defines NBA geometry barely exists), and corner threes are 12.9% of WNBA threes versus 25.5% in the NBA.

Corner threes are 25.5% of NBA threes and 12.9% of WNBA threes: the corner is only closer in the NBAWhere the three-point line sits, and what shooters do with itNBA 2024-25Corner threes are taken a median 3 ftcloser than arc threes.Of every 100 threes, 26 come from a cornerWNBA 2025Corner threes are taken a median 1 ftcloser than arc threes.Of every 100 threes, 13 come from a cornerShaded: the corner zones, where the line runs straight along the sideline. One dot perthree-point attempt; filled dots are corner threes.
Corner threes are 25.5% of NBA threes and 12.9% of WNBA threes: the corner is only closer in the NBAWhere the three-point line sits, and whatshooters do with itNBA 2024-25Corner threes are taken a median 3 ft closerthan arc threes.Of every 100 threes, 26 come from a cornerWNBA 2025Corner threes are taken a median 1 ft closerthan arc threes.Of every 100 threes, 13 come from a cornerShaded: the corner zones, where the line runsstraight along the sideline. One dot perthree-point attempt; filled dots are cornerthrees.
Why the corner economy is a rulebook effect. In the NBA the three-point line runs straight along each sideline, closer to the basket than the arc, and corner threes are taken from there. The WNBA line sits at nearly the same distance all the way round, and its corner share of threes is about half the NBA's.
NBA and WNBA shot diets side by side. Necessary because it shows shot selection is not a style preference: where the rulebook removes the corner-three geometry discount, the corner-three economy disappears with it. The persistence ordering (selection ≈ .80, making ≈ .66) also replicates in the WNBA: the finding is about basketball, not one league.

What this study cannot claim, it says out loud: the public feed has no defender positions, so "selection" bundles openness with location. The team-tracking versions of this model separate those, and this is the public-data ceiling.

Method, code, and verification

The full technical write-up (data provenance, model specification, validation gates, and stated limitations) is the README. The analysis is implemented independently in R and Python and reconciled to numeric tolerance; run_checks.sh replays every gate.