How it works

The Shot Report estimates the value of every field-goal attempt using publicly available shot data. Here is what the numbers mean and what they do not capture.

Data sources

The Shot Report does not use proprietary tracking data. Everything below is public or derived in-house. We are not affiliated with the WNBA, NBA, or ESPN.

What
Source
When
Shot locations, scores, and play-by-play
ESPN public site API (site.api.espn.com)
Pulled by ingest scripts and stored in local JSON for the site
Player season stats and game log
ESPN athlete stats and gamelog endpoints
Fetched when you open a player profile (Traditional tab)
Player headshots and team logos
WNBA CDN and ESPN CDN
Loaded in the browser at render time
Zone expected FG% baselines
Internal Phase 1 table in this product
Hardcoded in the model — not a live league API feed
Shot clock and touch time (optional)
WNBA Stats API (stats.wnba.com)
Used during ingest when available; unofficial and may be missing

ESPN's APIs are unofficial — endpoints can change without notice. If ingest fails or a profile stats request errors, some numbers may be stale or unavailable until we update the pipeline.

Expected points (xPts)

Every shot attempt has an expected point value based on where it was taken and what type of shot it was. A restricted-area layup is worth more in expectation than a contested long two.

expected_points = shot_value × expected_FG%

A corner three has an expected value of 1.14 points (3 × 38%). A long two has an expected value of 0.78 points (2 × 39%). The difference adds up across a full game.

Shot zone baselines

Expected FG% comes from league-average shooting percentages by shot zone. This is the Phase 1 model — simple, transparent, and easy to audit. Baselines will be updated as real league data becomes available.

Shot zone
Exp. FG%
xPts
Note
Restricted area
62%
1.24
Highest expected value
Paint (non-restricted)
42%
0.84
Short midrange
42%
0.84
Long midrange
39%
0.78
Low value 2-pointer
Corner three
38%
1.14
High value 3-pointer
Above-break three
34%
1.02
Backcourt heave
5%
0.15
Excluded from analysis

Shot-making over expected

Shot-making measures whether a team or player made more or fewer points than their shot diet suggested.

shot_making = actual_FG_points − expected_FG_points

A positive number means the team shot above average from their locations. A negative number means they shot below average. Neither is automatically good or bad process — hot shooting regresses, and creating great shots that do not fall is still good process.

Shot-quality edge

The shot-quality edge compares the two teams' total expected field-goal points.

shot_quality_edge = team_xPts − opponent_xPts

A positive edge means this team generated more valuable shot attempts than their opponent.

Clutch leverage (Final 5)

Clutch shots are attempts in the final 5:00 of the 4th quarter or overtime when the score was within 5 points. Win swingmeasures how much a shot moved the shooting team's estimated win probability — separate from shot quality (xPts).

expected_win_swing = P(make) × (WP_make − WP_before) + P(miss) × (WP_miss − WP_before)

Defaults in v1:

Rule
Value
Win probability perspective
Shooting team (not fixed to home)
Overtime
Same leverage curve as Q4
Clock after shot
Assume 14 seconds of possession burned; floor at 0:00
Score input
ESPN pre-shot home/away score on each play
Calibration
Heuristic (tanh margin × time sensitivity + home court); not yet fit to full WNBA history

A high-xPts miss can still carry a large negative win swing in a tie game. Both numbers are shown side by side — they answer different questions.

Team rankings columns

The team rankings table compares season-long shot quality on tracked field-goal attempts. Rate columns (xP/F) measure shot diet; game totals (xP/g) combine rate and volume.

Column
Meaning
Better
SQ wins
Games where expected points from the field beat the opponent (location model)
Higher
Edge
Average expected FG point margin per game on tracked attempts
Higher
Off xP/F
Expected points per FGA on offense — shot quality per attempt
Higher
Off xP/g
Total expected FG points generated per game
Higher
Def xP/F
Expected points per opponent FGA allowed
Lower
Def xP/g
Total expected FG points allowed per game
Lower
Opp FGA/g
Opponent field goal attempts allowed per game
Lower
Opp-adj
Opponent xP/F vs their season norm when facing this team
Higher suppression
Opp trn%
Share of opponent FGA in transition when facing this team
Lower
Trn xP/F
Expected points per transition FGA allowed
Lower
Making
Actual minus expected points per game on tracked FGA
Higher
FG%
Field-goal percentage on tracked attempts
Higher

Def xP/F vs Def xP/g vs Opp-adj:Def xP/F is the per-shot rate you allow. Def xP/g is rate × volume — a team can rank well on rate but poorly on total if opponents shoot often. Opp-adj compares each opponent's xP/F vs you to their season norm, so a strong raw Def xP/F that only faces weak shooters may rank lower on Opp-adj. Opp trn% / Trn xP/F split transition volume from transition shot quality allowed — inferred from play-by-play tags, not tracking data.

Based on tracked field goal attempts only — not free throws, turnovers, or possessions without a shot attempt.

Possession context (inferred)

Some team and game views tag each field-goal attempt with an inferred possession context from ESPN play-by-play order — not tracking data.

Tag
How it is inferred
Transition
Running shot type, or FGA within ~12s of a defensive rebound / live-ball turnover by the shooting team
After steal
Turnover play text includes a steal and the shooting team is the beneficiary
Second chance
Offensive rebound by the shooting team, or putback attempt type
Half court
Default when no earlier possession-start signal is found in the log

Tags are approximate — ESPN does not publish official possession ids. They are useful for comparing transition vs half-court xP/F allowed, not for possession-count stats.

What this model does not include

This product uses publicly available shot location data only. It does not include:

Not in model
Why it matters
Defender distance / contest quality
Open and contested threes look the same at a spot
Closeout speed, spacing, pass quality
Shot creation difficulty is invisible
Second Spectrum / tracking data
No proprietary player-tracking inputs
Full possession value (league ranks)
Still approximate — game scorecard and team process cards use ESPN box scores, not a unified points model

Shot quality should be understood as a public-data approximation, not a complete picture of offensive efficiency.

Player labels

Each player receives a label based on shot diet and shot-making in that game:

Label
Criteria
Efficient shot profile
High expected value per attempt (≥1.10 xPts/FGA) on 5+ attempts
Low-value shot diet
Low expected value per attempt (<0.90 xPts/FGA) on 5+ attempts
Made tough shots
2+ makes on low-value shots, finishing 3+ points above expected
Missed good looks
3+ misses on high-value shots, finishing 3+ points below expected
Neutral
No strong signal in shot quality or shot making