In 2005, Allen Iverson averaged 33.0 points per game for the Philadelphia 76ers. He shot 42.4% from the field, 30.8% from three, and 81.6% from the line. His true shooting percentage was .520, which was barely league average. He used 35.9% of his team’s possessions, which is the kind of usage rate that, twenty years later, only a handful of players a generation can carry without their teams falling apart. The Sixers went 43-39 and got swept in the first round.
That same year, somewhere down the East Coast, a 21-year-old Dwyane Wade was putting up 24 points per game on a .555 true shooting and 28% usage. His team made the Eastern Conference Finals. Iverson’s stat line was louder. Wade’s was the one that scaled to a championship two years later.
This is the lesson the box score keeps refusing to teach. The numbers that tell you who scored the most are not the numbers that tell you who played the best. They are not the same question. They have not been the same question for at least forty years. Reading player stats well, in any sport, is mostly the discipline of refusing to be impressed by the wrong column.
The trap of per-game stats
Points per game is a function of three things: how well you played, how much you played, and how much your team played. A guy averaging 28 points on a 100-possession team is doing different work than a guy averaging 28 points on a 95-possession team. The first guy is producing fewer points per opportunity. The box score does not tell you that.
The fix is per-100-possessions, per-90-minutes, per-game with minutes-played context, or per-team-possession-while-on-floor. These are not exotic stats. They are the same numbers, divided differently, so that the comparison is apples to apples.
A working example. Two players average 20 points per game. Player A plays 36 minutes a night for a team that runs 102 possessions per game. Player B plays 28 minutes a night for a team that runs 96 possessions per game. Player B is, almost certainly, scoring at a meaningfully higher rate per opportunity. The box score makes them look equivalent. They are not.
If you do nothing else with the rest of this article, get into the habit of asking, when you see a per-game number, “per how much of the game?” It is the single highest-yield correction available to a fan.
Efficiency, the only number you actually need to memorize
Effective field goal percentage. True shooting percentage. Goals per shot. Expected goals per shot. Whatever the sport, the family of metrics that tells you how efficiently a player turns attempts into points is the most stable, most predictive, most useful family of stats in the public data.
The reason is simple. A high-volume scorer with poor efficiency is, mathematically, hurting his team relative to a competent role player at the same usage. A player taking 18 shots a game at a .500 true shooting is producing fewer points per possession than a player taking 18 shots at .580. Over an 82-game season, that gap is the difference between a top-six seed and the lottery, repeated across an entire team’s distribution of possessions.
The discipline, when you see a flashy scoring line, is to immediately ask “on how many shots?” A 32-point game on 19 attempts is a great night. A 32-point game on 30 attempts is, often, a loss disguised as a highlight.
Role, minutes, and the most common honest mistake
The most common honest mistake in evaluating player stats — the one made by smart fans, not just the talk-radio crowd — is forgetting that numbers are produced inside a role.
A spot-up shooter playing 22 minutes a night next to a star creator is going to post a higher effective field goal percentage than the same player would if you gave him 30 minutes as a secondary ball-handler. The catches are easier. The looks are cleaner. The defenders are not loading up on him. The stat sheet does not warn you when the role changes.
This is what makes trade evaluations and free agent signings so difficult. A team buys a player based on his last role and discovers, six weeks in, that his numbers were structurally tied to the team he left. Some players travel. Some do not. The shape of the production matters as much as the production itself.
A short rule, for fans evaluating their team’s offseason: be skeptical of stat lines produced in a role the new team will not replicate. A 16-point-a-game wing on a team with two All-NBA creators is not the same player as a 16-point-a-game wing asked to be the third option on a team that already has two ball-dominant guards. The number is real. The role it was produced inside is also real. They are both part of the package.
Opponent quality, hidden in plain sight
Every box score is produced against a defense. The defenses are not interchangeable. A 28-point game against a top-three defense is, in some practical sense, a 35-point game against league-average competition. A 22-point game against the worst defense in the league is, depending on your priors, maybe a 16-point performance against a real opponent.
Public stat databases have caught up on this. Basketball Reference publishes player splits by opponent defensive rating. The NBA’s official stats site lets you filter by opponent quality. Use them.
The version of this most likely to bite you, as a fan, is in the late season. Teams resting starters, teams playing their G-League call-ups twenty minutes a night, teams tanking actively for the lottery — all of these produce stat lines for the opposing star players that look like superhuman runs and, in the playoffs, never replicate. The numbers earned against full-strength playoff opponents are the numbers that mean something. The numbers earned against the late-March Pistons in a game where Cade Cunningham is rested are, charitably, decoration.
On/off, with the appropriate caveats
Plus/minus is one of the noisiest stats in the public data. On/off splits — the comparison between a team’s net rating with a player on the court versus off — are signal you can actually use, but only with caveats.
The first caveat is sample size. On/off splits stabilize slowly. A 200-minute on/off split is a hint. A 2,000-minute split is an argument.
The second caveat is who the player is on the floor with. A reserve point guard whose on-court minutes are spent alongside three starters will show a much better on/off than a starter whose off-court minutes are spent next to the bench unit. Always check the lineup compositions before you take an on/off number at face value.
The third caveat is that on/off can be the best available number for measuring contributions that the box score misses. Defensive playmakers who do not rack up steals and blocks, screen-setting bigs who do not score in the box-score-friendly ways, gravity-creating shooters who do not always take the shot — these players’ contributions often live in the on/off column and nowhere else. The number is imperfect. It is also, frequently, the most honest number a particular player has.
The all-in-ones, used responsibly
BPM, RAPTOR, EPM, LEBRON, DARKO, EPV — these all-in-one stats are attempts to compress a player’s contribution into a single number. They are, individually, not the answer. Treated as panel data, they get useful.
If a player grades out as +4 in BPM, +3.5 in EPM, +5 in LEBRON, and +3 in on/off — you have a coherent picture. If the same player grades out as +4 in BPM and -1 in EPM, you have a question, not an answer. Public stat coverage frequently quotes whichever metric flatters the writer’s argument. Reading multiple metrics together, and noting when they disagree, is the actual practice.
For more on how these stats are constructed and what they miss, our NBA advanced stats deep dive covers the architecture in detail.
Where this gets weird
A few places the conventional wisdom on player stats breaks down.
Defense is, structurally, undermeasured. Offensive efficiency stats are mature. Individual defensive stats are not. Steals are noisy. Blocks are systematic but limited to one position group. Defensive RAPTOR and EPM-D are improvements but still miss communication, switching IQ, and the gravity of a great rim protector. Beat writers who watch film often have a more accurate read on individual defensive value than the public defensive numbers.
Garbage time can rescue or destroy a season-long stat line. Some players pile up production in 25-point blowouts that look identical on the leaderboard to high-leverage minutes. Filter for it when you can. Cleaning the Glass built its public profile largely on the value of garbage-time-filtered data.
Playoffs are a different sport. A regular-season stat profile that survives a seven-game series is a different animal than one that does not. Players who scale up in the playoffs — Jimmy Butler’s reputation is built on exactly this — are different from players whose regular season numbers were inflated by minutes against second-unit defenses and rotation flexibility that does not exist in May.
Per-game stats in soccer are particularly misleading. A midfielder averaging 1.5 goal contributions per match across 18 starts is producing differently than one averaging the same across 32 starts. Cup competitions, mid-table opponents, fixture congestion — all of it gets washed out of the headline number. Per-90 stats in football, especially from FBref, are an order of magnitude more honest.
The five-question test for any player stat line
Before you decide a player had a great season, run this list:
- Per how much of the game? Per-game, per-36, per-100, per-90 — which one am I looking at?
- How efficient was the production? eFG%, TS%, npxG/Sh, whatever the sport-appropriate version is.
- Inside what role? Primary creator, secondary ball-handler, spot-up shooter, fourth option — what was the job?
- Against what opposition? Top-ten defenses, bottom-ten defenses, full-strength teams, resting-starter teams?
- Does the all-in-one panel agree? If BPM, EPM, and on/off all sing the same song, the case is strong. If they do not, what is the dissenting evidence saying?
Iverson, again, twenty years later
The 2004-05 Iverson season is one of the most beloved stat lines in NBA history. It is also, by every modern metric, a season in which a great player was being asked to do too much, at a usage his efficiency could not support, on a team built around him because no one had yet figured out how to build around anyone else. The numbers were genuinely awe-inspiring. The team did not win.
That is, in miniature, the whole argument. The box score will sell you a player. The efficiency, the role, the opposition, and the panel of all-in-ones will tell you whether the box score was right. For the team-level version of the same conversation, our guide to reading team trends covers the parallel logic. Numbers are not the story. Numbers are how you find the story you were not yet sure you were watching.



