Methodology

How Hoopology tags shots into zones, for shot charts, game zone splits, lineups and scoring profiles.

Shot zones

Every shot lands in one of five zones:

What counts as a rim attempt

The NBA logs each shot at the spot the scorer marks. For a layup or dunk that is often where the play started, not where it finished. A cut is marked where the pass was caught, and a drive where the player gathered. So a dunk can be logged 5 feet out, just outside the 4-foot restricted area, even though the ball went in at the rim. Counting only the restricted area misses about a quarter of all layups.

So Hoopology uses the type of shot as well as where it was logged:

ShotCounts as Rim when logged
Any shotinside the restricted area (4 ft)
Dunks, alley-oops, tip-ins, putbacksanywhere within 12 ft
Cutting layups6 ft or closer
Driving and running layups5 ft or closer
Other layups4 ft or closer

Distances are rounded to the nearest foot, the same as shown on shot details across the site. A layup shown at 5 ft is 5 ft here too. Floaters, hooks and jumpers never count as Rim outside the restricted area: a floater is the opposite of a rim attempt.

Why these numbers

They come from every shot of the 2025-26 regular season (220,000 shots):

Rim FG% comes out about 2 points lower than restricted-area FG%. That is expected. The layups that move into Rim are contested, off-balance finishes that go in about 40% of the time. Before, those misses were charged to the Paint.

Where it applies

From the 2013-14 season on, the rule applies everywhere on Hoopology: shot charts, game zone tables, Team Comparison, Lineups, On/Off, scoring profiles, the dashboards, the stats tables, leaders and date ranges. Every zone count is rebuilt from the shots themselves. “Paint (Non-Rim)” is the rest of the lane, and “Paint (Incl. Rim)” is the whole lane.

Seasons before 2013-14 still use the NBA's own splits in their stored stats, with the strict 4-ft restricted area, so their Rim numbers run a little lower. Their shot charts use the rule.