Every basketball team has a style, and two numbers capture most of it: how fast they play (tempo) and how much they live behind the arc (three-point rate). Plot all of Division I on those two axes and the sport's stylistic map appears — the plodding defensive grinders in one corner, the run-and-gun bombers in another. Here's how to build that chart. Full code: scripts/cbb-tempo-shot-profile-python.py.

Two numbers per team

pace            = FGA - OREB + TOV + 0.475 * FTA     # possessions per game
three_pt_rate   = 3PA / FGA                          # share of shots from deep

Average each over a team's season and you have its profile coordinates. From sportsdataverse's team box scores:

import sportsdataverse.mbb as mbb
df = mbb.load_mbb_team_boxscore(seasons=[2025]).to_pandas()
df = df[df.team_score > 0]
# per game: poss and 3PA/FGA, then average by team_display_name

Scatter the league

Plot pace on the x-axis, three-point rate on the y-axis, one dot per team, and highlight a few names:

ax.scatter(paces, three_rates, s=14, alpha=0.45)
for team in highlight:
    ax.scatter([pace[team]], [rate[team]], s=60)   # call out a few
ax.set_xlabel("Pace (possessions per game)")
ax.set_ylabel("Three-point rate (3PA / FGA, %)")

The result

Slowest 3:  North Texas 61, Drake 61, Virginia 62
Fastest 3:  Winthrop 75, Cal Poly 76, Alabama 76
Most 3-reliant 3:  William & Mary 51%, North Dakota St 53%, North Florida 54%
Actual output, sportsdataverse / hoopR, 2024-25, retrieved June 2026.
Scatter plot of every team's pace versus three-point rate, with Alabama, Houston, Florida, and Saint Mary's highlighted.
Tempo vs. shot selection, 2024-25 — each dot a team. Data: sportsdataverse / hoopR, retrieved June 2026.

The extremes are exactly who you'd guess, which is how you know the method works: Virginia anchors the slow end (~62 possessions, the famously methodical pack-line style), while Alabama sits at the fast end (~76, a track meet). Some mid-majors push three-point rate past 50% — taking more than half their shots from deep, the ultimate variance strategy that fuels March upsets (see what upsets have in common). A team's location on this map tells you, before tip-off, what kind of game to expect.

Read the map

  • Pace is not quality. Fast and slow teams can both be great; tempo is style, not strength. Pair it with adjusted efficiency.
  • High three-rate = high variance. These teams have the widest range of outcomes — dangerous underdogs, frustrating favorites.
  • Add a third dimension with color or size: free-throw rate, or defensive efficiency, to enrich the map.

Sources & further reading

The CollegeAthleteInsider Analyst

I'm an independent analyst covering college football and basketball through public data. Every number here traces to a script in /scripts. More about the methodology →