Whistle Physics Contact measurement · Los Angeles

Numbers · Descriptive, public data only

What 9 seasons of graded calls say, in aggregate.

The league grades every call and non-call in the last two minutes of close games and publishes the result. We collected all of it, 2017-18 to 2025-26, plus every published coach's challenge. The counts below are the problem, measured: 6.2% of graded decisions are wrong, and 86% of the wrong ones are a whistle that should have blown and didn't. No model. Nothing here is a prediction; it is the league's own grading, added up.

  • Graded L2M events79,974

    3,893 games · 96% with a broadcast clip

  • Incorrect non-calls5.3%

    4,170 fouls or violations the review says were missed

  • Incorrect calls0.9%

    690 whistles the review says were wrong

  • Coach's challenges5,990

    60% overturned · 40.3% in 2019-20 to 63.8% in 2025-26

01 / Corpus

Scale

One row per graded event in a Last Two Minute report. Every season since the JSON feed began is complete; the two before it exist only as PDFs.

What this shows. 79,974 events across 3,893 games, about 20 graded decisions per report, and a broadcast clip for 96% of them.

under each season: games, then the share with a broadcast clip

Table · Corpus by season
Corpus by season
SeasonGamesEventsGradedWith video
2017-184759,4318,72799.5%
2018-1945510,4329,78070.5%
2019-203888,1678,159100%
2020-214057,9047,899100%
2021-224388,8218,806100%
2022-2347411,50211,483100%
2023-244138,3118,301100%
2024-254307,3237,321100%
2025-264158,0838,080100%

Method. Events and games from the official L2M index pages and per-game JSON (2017-18 and early 2018-19 from the archived PDFs). "With video" means the event row links to a downloadable clip; the 2018-19 gap is PDF-era rows whose clip link could not be matched, not missing footage.

02 / Decisions

Decision mix

Four grades: correct non-call, correct call, incorrect non-call, incorrect call. The errors are mostly silence. Across the corpus, incorrect calls are 0.9% of graded events and incorrect non-calls 5.3%.

What this shows. Share of each grade per season. The incorrect share runs 4–8% every season; the pale tick at the end of each bar is incorrect calls, never above 1.1%.

  • CNC · correct non-call
  • CC · correct call
  • INC · incorrect non-call
  • IC · incorrect call
Table · Decision mix by season
Decision mix by season
SeasonGradedCNCCCINCIC
2017-188,7276,2721,915482 (5.52%)58 (0.66%)
2018-199,7807,4111,703597 (6.1%)69 (0.71%)
2019-208,1595,9691,643480 (5.88%)67 (0.82%)
2020-217,8995,7351,681395 (5%)88 (1.11%)
2021-228,8066,1292,004576 (6.54%)97 (1.1%)
2022-2311,4838,4292,349616 (5.36%)89 (0.78%)
2023-248,3015,8131,984424 (5.11%)80 (0.96%)
2024-257,3214,9142,074265 (3.62%)68 (0.93%)
2025-268,0805,7061,965335 (4.15%)74 (0.92%)

Method. Denominator is graded events only (78,556): the 1,415 rows with a blank or unparsed decision (1.8%) and 3 stray labels are excluded. Shares are of the row's season.

What this shows. The two error types on their own scales. Missed calls move season to season; wrong whistles barely do.

Incorrect non-calls (INC), % of graded events

Incorrect calls (IC), % of graded events

Method. Same denominator as above. The two panels use different y-axes on purpose: IC would be a flat line at the bottom of the INC chart.

03 / Misses

What gets missed

Incorrect non-call rate for the ten call types with the most graded events. Every miss here is a judgment made by eye, and the rate is highest where the referee has to count or track position while watching the ball.

What this shows. Contact fouls are 88% of graded events and 65% of all missed calls, missed on 0.3–7.9% of events by type. Defensive three seconds (36.2%) and Traveling (30.8%) are missed on three in ten.

  • Contact foul
  • Violation / other
Table · Incorrect non-call rate, ten largest call types
Incorrect non-call rate, ten largest call types
Call typeGroupGradedINCINC rateIC rate
Foul: Defense 3 Secondviolation / other97335236.2%0.0%
Turnover: Travelingviolation / other1,61449730.8%1.9%
Turnover: 3 Second Violationviolation / other46814130.1%0.4%
Foul: Away from Playcontact foul608487.9%1.0%
Foul: Loose Ballcontact foul7,4284365.9%0.3%
Foul: Shootingcontact foul21,1169634.6%1.2%
Foul: Offensivecontact foul15,2335113.4%0.2%
Foul: Personalcontact foul24,2347623.1%0.7%
Stoppage: Out-of-Boundsviolation / other1,236110.9%6.6%
Foul: Personal Takecontact foul61520.3%0.3%

Method. Call type as written in the report, top ten by graded events, sorted by incorrect non-call rate. Incorrect calls are in the table. Out-of-bounds stoppages are low here because an out-of-bounds error is usually a wrong call, not a missed one.

04 / Clock

Clock pressure

Combined error rate (incorrect calls plus incorrect non-calls) by where the event sits in the final two minutes, and in overtime.

What this shows. The error rate is flat to within 0.8 points across the four clock windows, highest at 1:00–0:30 (6.6%) and lowest in the last thirty seconds (0:30–0:00 (5.8%)). Overtime runs 6.8% against 6.1% in the fourth.

By game clock (IC + INC, % of graded events)

4th period vs overtime

Table · Error rate by game clock
Error rate by game clock
ClockGradedINCICIC + INC rate
2:00–1:3015,7528161346.0%
1:30–1:0015,9038881416.5%
1:00–0:3017,9131,0441436.6%
0:30–0:0028,9491,4202725.8%
Table · Error rate, 4th period vs overtime
Error rate, 4th period vs overtime
PeriodGradedINCICIC + INC rate
4th period71,0963,7486036.1%
Overtime7,460422876.8%

Method. Game clock parsed from the report's time field; 36 events logged above 2:00 are excluded. The last thirty seconds has the most events and a different mix: correct calls are 31% of its events against 16% in the first window, because intentional fouls are whistled and graded correct. Overtime is any period after the fourth (7,460 graded events).

05 / Difficulty

The league's own difficulty label

Reports since 2018-19 carry a difficulty field. It is not populated enough to separate hard calls from easy ones.

What this shows. 99.7% of labelled events are "Observable". "Undetectable" (152 events) is mostly a miss by definition, and "Difficult" appears 21 times in 61,336 labelled rows.

League difficulty label vs error rate (2018-19 to 2025-26)
LabelGraded eventsINCICIC + INC rate
Observable61,1622,9605735.8%
Undetectable15286559.9%
Difficult213014.3%
Technical110100.0%
(blank)17,2201,1201127.2%

Method. Labelled graded events, 2018-19 to 2025-26. The field is blank for all of 2017-18 and for part of 2018-19. We report the table and draw no chart: with one label covering nearly everything, a difficulty-versus-error comparison would be a comparison of a population against a footnote.

06 / Challenges

Coach's challenges

A challenge is a second graded label: an overturn means the call on the floor was wrong. The overturn rate rose from 40.3% in 2019-20 to 63.8% in 2025-26 as coaches learned what to challenge.

What this shows. Volume and outcome per season, and the outcome by what was challenged. The most successful trigger is out of bounds (77.4%); called fouls, the judgment call, are overturned 54.9% of the time.

Challenges per season, overturned vs stands

cap label: overturn rate

Overturn rate by trigger, 2023-24 to 2025-26

  • Overturned
  • Call stands
Table · Coach's challenges by season
Coach's challenges by season
SeasonChallengesOverturnedStandsOverturn rate
2019-2067274040.3%
2020-2169633336347.8%
2023-241,45186658559.7%
2024-251,8421,15568762.7%
2025-261,9341,23470063.8%
Table · Coach's challenges by trigger
Coach's challenges by trigger
TriggerChallengesOverturnedOverturn rate
Called foul3,4511,89454.9%
Out of bounds1,6491,27777.4%
Goaltending / basket interference1278466.1%

Method. Every row of the league's published challenge results, 2019-20, 2020-21, 2023-24, 2024-25, 2025-26. "Overturned" is the result column as published. 2019-20 covers the bubble playoffs only (67 challenges). Trigger type is recorded from 2023-24 on (5,227 challenges); the 763 earlier rows have no trigger field and are excluded from the right-hand panel only.

07 / Why now

For 2026-27 the league has made flopping its leading point of emphasis, telling referees to penalise secondary, theatrical or exaggerated movement and reviewing missed flops after games for fines.

Paraphrased from the league memo, Oct 2026. The review is done by eye and after the fact; the rows above are what that process has produced so far.

08 / Methods

Sources, counts, gaps

Aggregates only. Nothing on this page identifies an official, a player or a team.

Sources. Last Two Minute reports from the official NBA officiating site: season index pages, the per-game JSON feed (2018-19 onward) and the PDF reports it replaced (2017-18, early 2018-19). Coach's challenge results from the season PDFs on the same site, with the 2023-24 and 2024-25 pages recovered from the Internet Archive after their live URLs began redirecting. Public pages only, requested at about one per second with an identifying user agent, every download cached so re-runs are offline.

Counts. 79,974 L2M events in 3,893 games, 2017-18 to 2025-26; 78,556 carry one of the four grades (CNC 56,378, CC 17,318, INC 4,170, IC 690). 5,990 coach's challenges across five seasons.

Known gaps. The 2015-16 and 2016-17 L2M index pages return 404, so the corpus starts at 2017-18. The 2021-22 and 2022-23 challenge PDFs were not found live or in any archive. 1,415 L2M rows (1.8%) have a blank decision: bracketed "undetectable" entries and PDF rows that did not parse. 3,053 PDF-era 2018-19 rows carry no game id, so that season's games are counted by date and teams. Seven rows are exact duplicates and are left in. The difficulty field is empty before 2018-19 and almost always "Observable" after.

Reading the rates. L2M grades only the last two minutes of games within three points, so none of this describes a full game or a typical possession. A decision is "graded" when the league published one of the four grades; the review standard is the league's, not ours.

Aggregated tables only; the per-event corpus is the league's publication, not ours to redistribute. Built 2026-10-16 from the corpus on disk.

09 / Status

Proof-of-concept in development on public data. Applying to NBA Launchpad 2027.