Hoops Auction The ratings

How a 1962 season is compared to a 2026 one

Wilt Chamberlain averaged 50.4 points in 1961–62. He did it in a league running about 126 possessions a game. Today's runs about 99. Any rating system that puts those two seasons on one scale has to answer for that gap — and most of them quietly do not.

Every player in Hoops Auction carries a number between roughly 68 and 99, plus six attribute bars. This page explains exactly where those numbers come from, because a rating you cannot interrogate is just an opinion with a decimal point.

Nobody is compared to history. Everybody is compared to his own league.

The foundation is a season-relative z-score. For every statistic, we take the mean and standard deviation of that season, among players who cleared 500 minutes, and ask how many standard deviations above his own league a player sat.

This is the only defensible cross-era comparison. League-average true shooting has climbed from about .440 to about .580 over the history of the sport. A .530 true shooting season was outstanding in 1975 and is below average now. The raw number moved; what it meant is what we score.

Z-scores are clamped at ±3.5. Basketball produces genuine statistical freaks — Wilt's rebounding, Rodman's rebounding, Stockton's assists — and without a clamp a single 6-sigma season would compress everybody else into a narrow band underneath it.

Six attributes, each a blend

The bars on a player's card are not raw statistics. Each is a weighted blend of season-relative z-scores, chosen so that no single stat can carry an attribute on its own.

AttributeBuilt from
Scoring Points per game (55%), points per 36 (20%), usage (15%), true shooting (10%)
Playmaking Assist percentage (45%), assists per game (30%), turnover percentage (−25%)
Rebounding Offensive (30%), defensive (35%) and total rebound percentage (35%)
Perimeter D Steal percentage (55%), defensive box plus/minus (45%)
Interior D Block percentage (45%), defensive rebound percentage (25%), DBPM (20%), height (10%)
Efficiency True shooting (35%), win shares per 48 (30%), BPM (25%), turnover percentage (−10%)

Negative weights mean lower is better. Turnovers genuinely subtract from playmaking rather than merely failing to add.

Points per game leads scoring, ahead of per-36 rates, and that is a deliberate choice with a real cost. Per-36 alone quietly rewards not playing: a centre scoring 19.5 in 28 minutes rates identically to a guard scoring 26.0 in 35, even though one of them put six more points on the board every night. Per-36 stays as a smaller term so genuine bench scorers remain visible.

A centre is not marked down for passing like a centre

This is the part most rating systems get wrong, and it took a rewrite to fix here.

Each position is judged on what that position is actually asked to do. Rebounding is worth 22% of a centre's blend and 5% of a point guard's. Playmaking is 30% for a point guard and 8% for a centre.

But lowering a weight is not the same as excusing an attribute, and that distinction is where the first version broke. A point guard grabbing three rebounds a game sits far below the league mean, so even at a 5% weight that deficit kept dragging on his rating. Meanwhile a centre was never docked for not passing, because his weak attributes are ones bigs are collectively bad at. Guards were being structurally penalised by a system that looked fair on paper.

So each attribute is now scored within its own position before being weighted. The question asked is not "how good is he at rebounding" but "how good is he at rebounding for a point guard".

The trade-off is real and worth stating: this flattens cross-positional greatness. A centre who passes like a point guard is compared on passing only to other centres, at centre's 8% weight.

For an auction that is arguably the point. It keeps genuine talent at all five positions, so bidding stays live at every slot instead of collapsing onto whichever position the maths happens to favour.

One deliberate split: only the overall rating is position-relative. The six bars you see on the card stay absolute. Because the blend already protects a guard from being punished for his rebounding, the bars are free to describe him honestly — which is why centres show a wall of rebounding and rim protection, guards show playmaking, and you can tell what a player is from three feet away.

Rate statistics flatter small roles

Every input above is a rate, and rates reward narrow, easy jobs. A backup centre who only ever shoots dunks and chases rebounds posts a better true shooting percentage and rebound rate than most stars, without ever creating a shot or being gameplanned against.

So the composite is scaled by share of a full role, defined as 31 minutes per game. Below that, a player is shrunk toward league average; at or above it, he is untouched.

Measured per game rather than by season totals, deliberately. Totals conflate role with availability, which craters a star who missed half a season to injury even though he shouldered a full load in every game he played. Missing games costs a player nothing here. Only playing a smaller role does.

Production, then impact

The six attributes describe what a player did. The impact metrics — box plus/minus, VORP and win shares per 48 — describe what happened when he played. The final composite is 70% attributes, 30% impact.

The tilt toward attributes is corrective. Impact metrics are efficiency-driven and systematically favour low-usage bigs who finish plays rather than create them. At an even split, rim-running centres floated above guards scoring 26 a night.

What about eras with no data?

Steals and blocks were not recorded before 1973–74, which is also why box plus/minus and VORP cannot be computed that far back. Treating those as zero would rate every pre-1974 player as exactly league-average on defence — and worse, it would shrink their spread on every composite that includes them, so Wilt could never reach the top of the scale no matter what he did.

Instead each player is scored on the metrics his era actually recorded, and the weights are scaled back up to full. A player measured on half the inputs is judged on that half, not punished for the missing half.

From a composite to a number you would recognise

Averaging six attributes and an impact anchor produces a very tight bell curve. Map that linearly onto 0–99 and almost the entire league lands in the 40s and 50s. That is statistically honest and miserable to play with: winning a bid feels like a consolation prize.

So the final number comes from a player's rank in the pool, mapped through a deliberately generous curve.

Ranked aboveRatingAll-time pool
Top 0.05%99the top two, and nobody else
Top 0.4%97about the top 11
Top 1%95about the top 27
Top 5%90about the top 134
Top 20%84
Everyone else68+nobody in the game is a write-off

The ordering is completely untouched by this. It is still earned by the metrics, the accolades and the championships. Only the number printed on the card moves.

Because the anchors are expressed as fractions of the pool, the same curve works for the 2,682-player all-time pool and the 379-player current one. And the six bars run through the identical curve, so a 90 means the same thing wherever it appears. An earlier version rated the bars on a separate scale and put a 77 overall above six bars in the 60s — neither was wrong alone, but together they made every overall look inflated.

The all-time scale: peak, not career

Career averages punish long declines, so an all-time player is represented by his best three-season window, weighted by minutes. Kareem is rated on Kareem at his peak, not on the 38-year-old.

Accolades, at 35%

Box scores measure production. Traditional all-time lists measure who was recognised as the best player of his era — and an MVP vote is era-neutral by construction, because it says "you beat the people you actually played against". That is the one calibration a within-season z-score cannot capture. A modern stat-padder can post elite rates and never make All-NBA, and only the accolade record notices.

HonourPoints
MVP vote share (per unit, career)6.0
All-NBA First / Second / Third3.0 / 2.0 / 1.0
Championship, weighted by role2.5
Defensive Player of the Year share2.0
Hall of Fame2.0
All-Defense First / Second1.5 / 1.0
Finals appearance, weighted by role1.0
All-Star selection0.5

Championships matter more than any single box-score line, and they are the one thing no box score records. Without them Bill Russell — whose defensive greatness predates both blocks being tracked and the awards that would have honoured it — ranks nowhere at all.

Sixth Man, Most Improved and Rookie of the Year are excluded. They describe a role or a starting point, not a peak.

Accolades are held to a minority of the blend on purpose. They correct the metrics; they do not replace them. Past about a third, this stops being a stats-driven game and becomes a reproduction of the consensus it is meant to test.

The current scale: what a player is doing now

On the this-season scale a player is rated on this season alone, so the number says what he is doing right now rather than what he once was.

Postseason play is added on top as two separate signals: how far the team went, and how the player actually performed. Teams that missed the playoffs get nothing, and that gap is the point. A four-game first-round exit is also discounted as the small sample it is — without that, someone averaging 26 in a sweep loss would outrank a player who carried a team through 19 games.

A player who missed the entire season is still someone you would bid on, so he carries forward on his last season played and is docked for every season since. Two seasons out and he leaves the pool, which is what keeps "this season" meaning something.

What this deliberately does not do

The fastest way to judge any of this is to go and look at the numbers on players you have opinions about.

Open the saleroom

How to play Play now