Two numbers separate "scored a lot" from "good at scoring": usage (how much of the offense runs through a player) and efficiency (how many points they produce per shot). The exciting players are high on both. The empty-calories scorers are high usage, low efficiency. Let's compute both from public box scores and build a leaderboard. Full code: scripts/cbb-player-usage-efficiency-python.py.

The two formulas

True Shooting %  = PTS / (2 * (FGA + 0.475 * FTA)) * 100
Shot load / 40   = (FGA + 0.475 * FTA + TOV) / MIN * 40

True shooting is the gold-standard efficiency stat: it counts twos, threes, and free throws together, so a 40% three-point shooter and a 55% two-point shooter are compared fairly. Shot load per 40 is a clean usage proxy — the scoring chances a player "uses" (shots, fouls drawn, turnovers) per 40 minutes. (Full usage rate scales this by team possessions; the per-40 version needs only the player's own line and ranks players almost identically.)

Aggregate the season

Pull player box scores, sum each player's totals, keep the rotation players, and compute:

import sportsdataverse.mbb as mbb
df = mbb.load_mbb_player_boxscore(seasons=[2025]).to_pandas()
agg = df.groupby("athlete_display_name").agg(
    MIN=("minutes","sum"), FGA=("field_goals_attempted","sum"),
    FTA=("free_throws_attempted","sum"), TOV=("turnovers","sum"),
    PTS=("points","sum")).reset_index()
agg = agg[agg.MIN >= 500]
agg["TS"]     = agg.PTS / (2 * (agg.FGA + 0.475 * agg.FTA)) * 100
agg["used40"] = (agg.FGA + 0.475 * agg.FTA + agg.TOV) / agg.MIN * 40

The result

Qualified players (>= 500 min): 2,386

Highest usage (shot load per 40 min):
  TY Johnson        used/40 30.7   TS% 48.1   pts/40 25.1
  Jemel Jones       used/40 28.3   TS% 55.9   pts/40 28.2
  Jordan Marsh      used/40 27.8   TS% 53.3   pts/40 26.3

Most efficient high-usage scorers (used/40 >= 18, by TS%):
  Daniel Batcho     TS% 72.0   used/40 19.7   pts/40 24.1
  Graham Ike        TS% 65.6   used/40 25.7   pts/40 30.1
  Vladislav Goldin  TS% 65.4   used/40 21.8   pts/40 24.1
Actual output, sportsdataverse / hoopR, 2024-25, retrieved June 2026.

The two lists tell different stories. The highest-usage players carry their offenses — TY Johnson used a remarkable 30.7 chances per 40 — but high volume doesn't guarantee efficiency (his 48.1% true shooting is below average). The efficient high-usage list is where stars live: Graham Ike at 25.7 used/40 and 65.6% true shooting is doing a lot, very well. That combination — heavy load, high efficiency — is what scouts and ratings prize, because it's hard and rare.

Use it well

  • Set a minutes floor. Without one, a walk-on who hit one shot tops the TS% list. We required 500 minutes; raise it for stars only.
  • Read the pair, not the single. TS% alone rewards low-usage role players; usage alone rewards chuckers. The interesting players are high on both.
  • Women's game: change mbb to wbb — same columns, same code.
  • Going further: true usage rate also needs team possessions while the player is on the floor; pull team box scores and scale by minutes for the textbook formula.

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 →