BEHIND THE DATA · SHOT VALUE

Shot value

What a shot from a given spot on the floor is worth, league-wide. This is shot location value — not shot quality, and the difference matters.

WHAT IS COMPUTEDxeFG% PER CELL

The half court is divided into a grid of one-foot cells. For each cell, the model estimates the probability a shot from there goes in, and converts that to an expected effective field goal percentage — so a cell behind the arc is credited at 1.5 times a cell inside it.

xeFG% = P(make) × (1.5 if the cell is behind the three-point line, else 1)

Expected eFG% is what an average shooter converts from a given spot. The gap between what a team actually shot and what the surface expected from those same spots is shots above expected — shot-making measured against shot selection, rather than mixed in with it.

Because the value is expressed as eFG%, the long mid-range reads as the worst real estate on the floor even though its make probability beats a three. That is the well-known result the metric exists to make visible, not a quirk of this implementation.

TWO SURFACESMEASURED 2026-07-02

The page renders two models side by side, on purpose. The zone baseline assigns every cell the average of its official zone, so its colour changes in blocky steps at zone boundaries. The gradient-boosted model reads location continuously, so its surface varies smoothly.

Location modelgbm-v1gradient boosting
Baselinebaseline-zone-v1official zone averages
Model's edge~1%log-loss / Brier

The baseline is not a straw man — it is genuinely hard to beat, because zones were drawn around real differences in the first place. The location model wins by roughly one percent on log-loss and Brier score, which is a calibration improvement, not an accuracy jump. It is stated that way on the page rather than dressed up. Inside any one zone a single shot stays close to a coin flip, and no reordering of the surface changes that.

Both surfaces are trained on prior seasons under an expanding window, so a season is never scored by a model that has seen it. Shot efficiency drifts upward over time, which means the most recent season’s expected values can run slightly low — shots above expected for the current season are therefore biased a little high.

WHAT THIS IS NOTTHE NAME IS DELIBERATE

Real shot quality models use defender distance, shot clock, touch time and dribbles — the tracking data that decides whether a shot was open. None of that is in public NBA data. A wide-open corner three and a contested one off the dribble are the same shot to this model, because from the floor plan alone they are indistinguishable.

That is why it is called shot value rather than shot quality: it answers “what is a shot from here worth on average”, never “was this a good shot”.

WHAT THIS CANNOT SEETHE HONEST LIMITS
  • Defender distance and contest level — the single biggest determinant of whether a shot goes in.
  • Shot clock, touch time, dribbles, and whether the shot was assisted.
  • Who took it. This is a league-wide surface, so a career 42% shooter and a career 30% shooter get the same expected value from the same cell.
  • Game context: score, period, and whether the possession was a scramble or a set play.
  • Cells with few attempts are noisy by construction. The corners of the chart carry far less data than the paint.