On expectation at the moment of the decision, never on what happened next. With 1, 2, 3 points to make up and at most 35 seconds left in the fourth, the model compares the win probability of a two against a three using that team's own conversion rates. 1364 such decisions across 30 teams.
score_decision is never handed whether the shot went in. tests/test_hindsight_guard.py re-scores every decision with the outcome flipped and asserts an identical result, so a well-chosen shot that missed scores the same as one that fell.
| Down by | Decisions | Three was optimal | Three was chosen |
|---|---|---|---|
| 1 point | 407 | 7.6% | 57.5% |
| 2 points | 467 | 83.3% | 55.5% |
| 3 points | 490 | 99.8% | 54.7% |
This, not the team table, is the finding: what teams should do swings from 7.6% to 99.8% across the deficit while what they choose barely moves. Down one they shoot the three far too often; down three, too rarely.
With ~45 decisions per team the intervals are wide enough that a 1-to-30 ranking would assert precision the data does not have. Teams resolve into 2 tiers, from TOR at 0.97 to ATL at 3.23 points of win probability given up per decision. A "distinguishably worse than optimal" test is deliberately not reported as a finding: the metric is non-negative by construction, so all 30 teams would pass it.
Decision expected-value, not a coach rating; negative ETM means lower expected win probability than the alternative given that team's own conversion rates.
Over Expected is a basketball shot-value platform covering NBA, EuroLeague, EuroCup, Liga ACB, Lega Basket Serie A, Basketball Bundesliga, Greek Basket League, ABA Liga, WNBA.