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
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
| Season | Games | Events | Graded | With video |
|---|---|---|---|---|
| 2017-18 | 475 | 9,431 | 8,727 | 99.5% |
| 2018-19 | 455 | 10,432 | 9,780 | 70.5% |
| 2019-20 | 388 | 8,167 | 8,159 | 100% |
| 2020-21 | 405 | 7,904 | 7,899 | 100% |
| 2021-22 | 438 | 8,821 | 8,806 | 100% |
| 2022-23 | 474 | 11,502 | 11,483 | 100% |
| 2023-24 | 413 | 8,311 | 8,301 | 100% |
| 2024-25 | 430 | 7,323 | 7,321 | 100% |
| 2025-26 | 415 | 8,083 | 8,080 | 100% |
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.
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
| Season | Graded | CNC | CC | INC | IC |
|---|---|---|---|---|---|
| 2017-18 | 8,727 | 6,272 | 1,915 | 482 (5.52%) | 58 (0.66%) |
| 2018-19 | 9,780 | 7,411 | 1,703 | 597 (6.1%) | 69 (0.71%) |
| 2019-20 | 8,159 | 5,969 | 1,643 | 480 (5.88%) | 67 (0.82%) |
| 2020-21 | 7,899 | 5,735 | 1,681 | 395 (5%) | 88 (1.11%) |
| 2021-22 | 8,806 | 6,129 | 2,004 | 576 (6.54%) | 97 (1.1%) |
| 2022-23 | 11,483 | 8,429 | 2,349 | 616 (5.36%) | 89 (0.78%) |
| 2023-24 | 8,301 | 5,813 | 1,984 | 424 (5.11%) | 80 (0.96%) |
| 2024-25 | 7,321 | 4,914 | 2,074 | 265 (3.62%) | 68 (0.93%) |
| 2025-26 | 8,080 | 5,706 | 1,965 | 335 (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.
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
| Call type | Group | Graded | INC | INC rate | IC rate |
|---|---|---|---|---|---|
| Foul: Defense 3 Second | violation / other | 973 | 352 | 36.2% | 0.0% |
| Turnover: Traveling | violation / other | 1,614 | 497 | 30.8% | 1.9% |
| Turnover: 3 Second Violation | violation / other | 468 | 141 | 30.1% | 0.4% |
| Foul: Away from Play | contact foul | 608 | 48 | 7.9% | 1.0% |
| Foul: Loose Ball | contact foul | 7,428 | 436 | 5.9% | 0.3% |
| Foul: Shooting | contact foul | 21,116 | 963 | 4.6% | 1.2% |
| Foul: Offensive | contact foul | 15,233 | 511 | 3.4% | 0.2% |
| Foul: Personal | contact foul | 24,234 | 762 | 3.1% | 0.7% |
| Stoppage: Out-of-Bounds | violation / other | 1,236 | 11 | 0.9% | 6.6% |
| Foul: Personal Take | contact foul | 615 | 2 | 0.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.
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
| Clock | Graded | INC | IC | IC + INC rate |
|---|---|---|---|---|
| 2:00–1:30 | 15,752 | 816 | 134 | 6.0% |
| 1:30–1:00 | 15,903 | 888 | 141 | 6.5% |
| 1:00–0:30 | 17,913 | 1,044 | 143 | 6.6% |
| 0:30–0:00 | 28,949 | 1,420 | 272 | 5.8% |
Table · Error rate, 4th period vs overtime
| Period | Graded | INC | IC | IC + INC rate |
|---|---|---|---|---|
| 4th period | 71,096 | 3,748 | 603 | 6.1% |
| Overtime | 7,460 | 422 | 87 | 6.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).
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.
| Label | Graded events | INC | IC | IC + INC rate |
|---|---|---|---|---|
| Observable | 61,162 | 2,960 | 573 | 5.8% |
| Undetectable | 152 | 86 | 5 | 59.9% |
| Difficult | 21 | 3 | 0 | 14.3% |
| Technical | 1 | 1 | 0 | 100.0% |
| (blank) | 17,220 | 1,120 | 112 | 7.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.
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
| Season | Challenges | Overturned | Stands | Overturn rate |
|---|---|---|---|---|
| 2019-20 | 67 | 27 | 40 | 40.3% |
| 2020-21 | 696 | 333 | 363 | 47.8% |
| 2023-24 | 1,451 | 866 | 585 | 59.7% |
| 2024-25 | 1,842 | 1,155 | 687 | 62.7% |
| 2025-26 | 1,934 | 1,234 | 700 | 63.8% |
Table · Coach's challenges by trigger
| Trigger | Challenges | Overturned | Overturn rate |
|---|---|---|---|
| Called foul | 3,451 | 1,894 | 54.9% |
| Out of bounds | 1,649 | 1,277 | 77.4% |
| Goaltending / basket interference | 127 | 84 | 66.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.
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.
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.
- l2m-corpus-by-season.csv
- l2m-decisions-by-season.csv
- l2m-inc-rate-by-call-type.csv
- l2m-error-rate-by-clock.csv
- l2m-error-rate-by-period.csv
- l2m-by-difficulty.csv
- challenges-by-season.csv
- challenges-by-trigger.csv
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.
Proof-of-concept in development on public data. Applying to NBA Launchpad 2027.