Tool

Who is the greatest NBA player of all time?

Every published ranking that could be found and verified, pooled into one. of them, from publications, placements.

    rankings · publications · expert, statistical · all-time · updated 11 August 2026 · download the data · every ranking included

    Talking points

    What the rankings say when you read them together

    Each of these is computed from whatever sample is currently selected, so they change as you change the rules further down.

    The result

    The consensus ranking

    Score is relative: the leader is set to 100. Ballots shows how many of the selected rankings named the player, against how many they were eligible for — the honest denominator, since a list published in 1996 cannot name a player who debuted in 2003. Switch on the era or position breakdowns and those rankings count toward a player’s denominator only when they name him: a ranking of the best 1960s players, or the best centers, cannot be read as having weighed Michael Jordan and left him out, so it is never counted against him. You can also remove individual rankings: open “show every one” below and click any of them. The table then shows how far each player moved as a result.

    Show me
    Bars show the meta-score. Click any player to see where every ranking placed them.
    #Player Ballots Meta-score

    Change the rules

    Narrow the evidence further

    Beyond the breakdown above, two blunter instruments: count only rankings published recently, or require a player to appear on a minimum number of them before they show up at all. Nothing is recomputed on a server — the whole ranking is rebuilt in your browser from the underlying placements.

    Published
    Minimum ballots
     

    Scoring from rankings (). Statistical leaderboards are always held out of the score, and fan votes are excluded from the corpus entirely — these are expert and editorial rankings only.

    RankingYearNames CoversCounting?

    The independent check

    The eye test against the box score

    The horizontal axis scores players the same way but from career statistical leaderboards — Win Shares, VORP, BPM, PER and volume totals — which are never part of the ranking. Points off the diagonal are where reputation and production disagree.

    Two structural cautions: cumulative metrics reward long careers, and BPM and VORP cannot be computed before 1973–74 because the underlying data was never recorded, so the earliest players are systematically understated on the horizontal axis. The ten largest departures from parity are labelled.

    Agreement

    Where the sources agree, and where they argue

    Each bar is the span between a player’s best and worst placement, with the median marked. Only rankings at least 50 names long count here, to a depth of 50, so every ranking drawn stops at the same point and the numbers are comparable. A short bar is consensus; a long one is an argument.

    The shape of it

    The full distribution, player by player

    The same evidence as a density: where the rankings actually put each player, with the individual placements drawn underneath so you can see how many there are. A tall narrow peak on the left is agreement; a long tail to the right is dissent.

    Two kinds of greatness

    Breadth against peak

    Across is how many rankings name the player at all. Up is the single best placement they achieved anywhere. Being named everywhere and being named first are different achievements, and the players who manage both sit in the top right.

    Reputation over time

    How the canon updates itself

    The same players scored twice: once from the older half of the rankings, once from the newer half. Above the line means more recent writers rate them higher. Active and recently retired players are necessarily favored, since the older rankings could not name them.

    What it is built on

    The evidence base

    Every ranking in the corpus, placed by how many names were captured from it. Hover any point for the publication and year; the rankings currently feeding the score are solid, the rest are faded.

    Does the method matter

    Robustness

    Rank correlation between different ways of scoring the same placements. If the answer only holds under one formula it is an artefact of the formula; these mostly agree, which is the point. The informative exception is the career statistics, which are held out of the score.

    Who is in the sample

    Composition

    Both panels describe the players in the current sample — and both are controls. Click a bar to restrict the ranking to that decade or position; click it again, or use the chip in the toolbar, to clear it.

    By decade of NBA debut. Click a bar to filter.
    By primary position, where one is recorded. Click a bar to filter.

    Take the data

    Download

    All three files are generated in your browser from the data already loaded — no request leaves the page. The ranking reflects your current selection; the other two are the full corpus.

    The placements file is the real unit of evidence: one row per player per ranking, with the published rank and the credit it earned. Everything on this page is derived from it, so you can reproduce or replace the scoring rule entirely.

    Method

    How it works, and what it can’t tell you

    Nothing was recorded from memory. Where a page yielded only part of a list, the partial capture was recorded and the shortfall noted rather than padded.

    The scoring rule

    For a player at rank r on a list of captured length N, that listing earns

    credit = w × [ 0.40 + 0.60 × (1 − log(r) / log(N + 1)) ]

    and the player's score is the total credit divided by the ballots they were eligible for, shrunk toward the corpus mean:

    score = ( Σ credit + K · mean ) / ( Σ eligible weight + K ), K = 5
    • The 0.40 floor is what a player earns for being named at all, so broad agreement can outweigh one spectacular placement.
    • Dividing by log(N + 1) puts long and short lists on equal footing — ranking #40 on a list of 100 is an achievement; #40 of 40 is last place.
    • The logarithm in r makes #1-versus-#10 matter far more than #90-versus-#100.
    • Dividing by eligible ballots stops a player being punished for lists published before they debuted. The shrinkage term is what prevents someone eligible for three ballots and named first on all three from scoring a perfect 100.
    • Only lists with a formal rank order are included. The NBA's own 35th Anniversary Team (1980) and 50 Greatest Players (1996) were captured and then excluded: they name members and decline to order them, and a list that ranks nobody has no rank information to aggregate. Scoring them meant inventing a position for every member — each of the 50 Greatest was credited as if he had finished seventh of fifty — which flattered the players who make honour rolls but place modestly on real rankings.
    • w is 1.0 for every expert list — fan votes are excluded from the corpus rather than down-weighted — multiplied by a length weight of log(N)/log(100). A ten-name listicle inflates the eligible-ballot denominator of every player it was never going to name, so it counts as a fraction of a ballot on both sides of the ratio. This barely touches the top (Spearman 0.998 against equal weighting; the top four do not move) and lifts exactly the mid-table players it should — Elvin Hayes, Kevin McHale, Jason Kidd. It is a precision correction, not a bias one: short and long lists name the same kind of player, with a median debut of 1984 in both.
    Why the default is all-time lists only

    Era and position lists answer a different question, and they introduce an eligibility asymmetry: a point-guard list cannot name Michael Jordan and a 1960s list cannot either. Turn them on with the filters above and see for yourself.

    Worth knowing which way this cuts. Era lists were quietly handing modern players extra bites at the apple — a 2020s player can appear on the 2010s list, the 2020s list and the 21st-century list, while a 1960s player has one. Including them makes the ranking friendlier to recent players, not to older ones, which is the opposite of what most people expect.

    Record linkage: telling players apart

    The hazard is not spelling but family. Tim Hardaway and Tim Hardaway Jr. are different players, as are Gary Payton and Gary Payton II. Any normalization that treats a generational suffix as decoration merges a father with his son, so the suffix is part of the identity key and nothing crosses it.

    Matching thresholds were calibrated against hand-labelled pairs rather than chosen by feel, and the calibration changed the design twice. Full-name edit distance proved unusable: genuine misspellings reach Jaro–Winkler 0.068 while different players start at 0.041, so the ranges overlap and a first version merged Charles Barkley with Charles Oakley. Surname distance separates cleanly, but surname alone then merged Dale Davis with Walter Davis. The final rule requires both to match closely.

    De-duplicating sources: why overlap alone is the wrong test

    The pool of plausible all-time greats is small, so two independent top-75 lists naturally share about 90% of their names. That agreement is the signal, not a double capture. What separates a re-capture from agreement is order: two captures of one published list rank the shared players almost identically, while two independent lists agree on membership and argue about the order. Sources are merged only when overlap is high and rank correlation is near-perfect. One pair correlated 0.982 across 73 shared players and is treated as a reprint; genuinely independent lists correlating 0.62 to 0.93 were all kept.

    Limitations
    • Recency runs one way. A list from 2011 cannot name a player who debuted in 2018. Dividing by eligible ballots corrects the arithmetic, but it cannot manufacture the judgement that was never made.
    • Coverage is Anglophone and US-dominated. Several major outlets block automated access, so no UK or Spanish broadsheet ranking is here.
    • Two players can share a name. One source lists two different Eddie Johnsons at adjacent ranks; without birth dates there is no way to separate them, so they are pooled. An acknowledged error, deep in the tail.
    • Cumulative statistics are not neutral. They reward longevity, and BPM and VORP do not exist before 1973–74.
    • Position coding is consequential. Whether Tim Duncan is filed at center or power forward changes which position looks strongest; his reference page lists both.