Methodology
Garbage time
In any blowout result in an NBA game there is usually a point in the game at which one or both teams wave the white flag and insert their second or third string players in to the game. Beyond this point, there are usually no meaningful competitive sequences and the on-court players are going through the motions until the final buzzer sounds.
This is commonly referred to as "garbage time". The game's outcome has already been decided and the remaining plays provide very little meaningful data for use in analytics.
On the back of the pioneering work of Ben Falk of Cleaning the Glass, Hoops Junkie identifies garbage time using the same thresholds as Cleaning The Glass. I hope that this is taken in good faith since Ben has more or less defined an industry standard which today is accepted in much the same way as clutch.
Garbage time in play-by-play
Keep an eye out for the trash icon icon in the play-by-play feed to identify which plays qualify as garbage time.
This is noted below in the "Retroactive unflagging" section but exact garbage time stretches are only confirmed once a game is finalised so while a game is live you may notice the trash icon is shown in a lighter shade to indicate that it is only provisionally marked as garbage time. In short, this is because at any point the garbage time conditions can be broken and the stretch will be retroactively unflagged.
Garbage time toggle
Throughout the site, advanced efficiency ratings (ORtg, DRtg, and NRtg) can be toggled between "filtered" and "raw" views using the garbage time toggle in the site header. The filtered view excludes garbage time possessions from the calculation and is the default. The raw view includes all possessions regardless of game context.
Filtered Raw
This toggle affects efficiency ratings wherever they appear:
Game box scores
Advanced player and team stats within individual game pages can be switched between filtered and raw.
Stat leaders
Season-level ORtg, DRtg, and NRtg leaderboards in the stats section support the toggle. This includes ORtg, DRtg, and NRtg ratings differential pages.
Player profiles
Advanced stats on a player's career page reflect the selected filter mode.
Observing stat changes
Try looking at one of the above-listed pages and toggle garbage time on / off to see the differences in stats. Note that it's usually bench players who see the most significant ratings shifts since they're more likely to be on-court during garbage time. By definition if more than 2 starters are on the court, the play is not considered garbage time.
Clutch and high leverage stats
It's worth noting that clutch and high leverage statistics are not affected by the garbage time toggle. These contexts have their own independent possession counting logic — by definition, clutch and high leverage possessions occur in competitive game states that would never overlap with garbage time.
Garbage time conditions
Garbage time is only evaluated in the fourth quarter and overtime periods. For any given play to be considered garbage time, two conditions must both be met simultaneously:
1. The margin exceeds a time-based threshold. As the clock winds down, the required margin decreases. A 25-point lead with 6 minutes left is garbage, but a 12-point lead with 30 seconds left is also garbage. The thresholds are:
| Time remaining | Margin threshold |
|---|---|
| 12:00 to 9:01 | ≥ 25 points |
| 9:00 to 6:01 | ≥ 20 points |
| 6:00 and under | ≥ 10 points |
2. Two or fewer starters are on the court. This is counted across both teams combined. If three or more of the game's original ten starters are still on the floor, the play is not considered garbage time regardless of the margin. This condition captures the intent behind garbage time. Teams have conceded the result and pulled their key players.
Excluding short-clock possessions
Following the lead of Darryl Blackport, we exclude short-clock possessions from filtered possession-based calculations. Any possession that begins with less than 2 seconds remaining on the game clock in the 1st, 2nd, or 3rd quarter is excluded. These are typically end-of-quarter heaves or desperation plays that don't reflect meaningful basketball.
Excluding heaves
Separately from short-clock possessions, we also exclude heaves from filtered possession-based calculations. A heave is identified when a field goal attempt is attributed to a team rather than an individual player in the NBA's play-by-play data. These are typically desperation full-court or half-court shots launched before the buzzer that don't represent a real offensive possession.
It's worth noting that the NBA only began attributing these shot types to the team (rather than the player) in the 2025-26 season. In prior seasons, heaves were credited to the shooter like any other field goal attempt, so this exclusion does not apply to historical data.
Retroactive unflagging
Garbage time is not simply "everything after the conditions are first met." It is evaluated as a rolling window, and if at any point the conditions are broken, the entire preceding garbage stretch is retroactively discarded. Only the final unbroken stretch that survives to the end of the game is marked as garbage time.
This is a critical design decision. It means garbage time is identified conservatively, and if a team mounts even a brief comeback or re-inserts starters, the slate is wiped clean.
Example 1: a clean garbage time cutoff
Imagine a game where with 7:30 remaining in Q4, the score is 105-78 (a 27-point margin). The threshold for 12:00 to 9:01 remaining is 25, so the margin condition is met (27 ≥ 25). Both teams have subbed out their starters and only 1 starter remains on the court, so the starter condition is also met (1 ≤ 2).
The remaining minutes play out with bench players and the margin stays at or above the threshold. Since both conditions hold from 7:30 all the way to the final buzzer, this entire stretch is marked as garbage time.
Example 2: a comeback breaks garbage time
Now imagine a different scenario. With 8:00 left in Q4, the score is 110-83 (a 27-point margin). Both teams have pulled their starters (0 starters on court). Garbage time conditions are met (27 ≥ 25 and 0 ≤ 2), so the stretch begins.
At 5:30, the trailing team has gone on a run. The score is now 112-104, an 8-point margin. The threshold for 6:00 and under is 10, and 8 is less than 10. The margin condition is no longer met.
At this point, the entire stretch from 8:00 to 5:30 is retroactively unflagged. Those plays are no longer considered garbage time, even though they met the conditions when they occurred. The comeback proved the game was not yet decided.
If conditions are subsequently met again later (say the leading team restores a large margin and benches their starters with 2:00 left), a new garbage time stretch can begin. Only this final unbroken stretch would be marked as garbage time.
Example 3: starters re-enter the game
In another scenario, with 4:00 left and a 22-point margin, both conditions are met (22 ≥ 10 and only 2 starters on court). Garbage time begins.
At 2:30, the trailing team's coach puts 2 starters back in hoping for a late push. There are now 3 starters on the court across both teams. Even though the margin still exceeds the threshold (22 ≥ 10 at 2:30), the starter condition is broken (3 > 2).
The entire stretch from 4:00 to 2:30 is retroactively unflagged. If the starters are later pulled again and conditions are re-met, a new stretch would begin from that point.