← Back to the top 25

Off the clock

How the top 25 actually gets built

Ranking 25 players across seven decades directly is hopeless — you end up comparing a 1960s center to a 2020s point guard with nothing in common. Two phases make it tractable instead.

  1. Position battles. Build a depth chart — every point guard stacked against every other point guard, same for each position. Comparable skill sets, comparable roles.
  2. Era duels. Where two or three players overlapped and both have a real case for "best in the league right now," settle it head-to-head before merging everyone into one list.

Phase 1: the depth chart

Same 25 players as the top 25, just sorted into position groups first. Hit the button to watch them merge back into the actual ranking.

Point Guard
Shooting Guard
Small Forward
Power Forward
Center
  • SF1#1LeBron James2000s–2020s
  • SG1#2Michael Jordan1980s–1990s
  • C1#3Kareem Abdul-Jabbar1970s–1980s
  • C2#4Shaquille O'Neal1990s–2000s
  • PF1#5Tim Duncan2000s–2010s
  • SG2#6Kobe Bryant2000s–2010s
  • SF2#7Larry Bird1980s
  • PG1#8Magic Johnson1980s
  • C3#9Bill Russell1950s–1960s
  • PG2#10Stephen Curry2010s–2020s
  • C4#11Hakeem Olajuwon1980s–1990s
  • C5#12Wilt Chamberlain1960s–1970s
  • SF3#13Kevin Durant2010s–2020s
  • C6#14Nikola Jokić2010s–2020s
  • C7#15Moses Malone1970s–1980s
  • PF2#16Giannis Antetokounmpo2010s–2020s
  • PF3#17Dirk Nowitzki2000s–2010s
  • PF4#18Kevin Garnett1990s–2010s
  • SF4#19Scottie Pippen1980s–2000s
  • SF5#20Kawhi Leonard2010s–2020s
  • PG3#21Chris Paul2000s–2020s
  • PF5#22Charles Barkley1980s–1990s
  • PG4#23Oscar Robertson1960s–1970s
  • SG3#24Jerry West1960s–1970s
  • SG4#25Dwyane Wade2000s–2010s

Runs on the View Transitions API — same static HTML/CSS/JS GitHub Pages already serves, no server needed. Falls back to an instant snap if a browser (or reduced-motion setting) doesn't support it.

Phase 2: era duels

The depth chart still leaves ties — players who overlapped and both have a real claim to "best in the league" in a given stretch. Two of those calls, straight from the reasoning already behind the rankings above:

1980s · SF/PG

Bird vs. Magic

Bird gets the nod (#7 vs. #8) — better defender, ahead-of-his-time shooter, and did it with lesser teams around him. Magic's case is the best-passer-ever argument and a Swiss-army-knife game; he just never had to do it without Kareem and Worthy next to him.

2000s · C/PF/SG

Shaq vs. Duncan vs. Kobe

Landed #4, #5, #6 — in that order, back-to-back. Shaq's peak was the most dominant of the three, which is exactly why neither Duncan nor Kobe was ever really considered the best player in the league in a given year despite both being inner-circle greats. Duncan edges Kobe on longevity and two-way impact; Kobe's efficiency and playing Robin to Shaq's Batman cost him the last half-step.

Do that for every position and every overlapping era, merge the results by rank, and you get the top 25.