← 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 #1 LeBron James 2000s–2020s
  • SG1 #2 Michael Jordan 1980s–1990s
  • C1 #3 Kareem Abdul-Jabbar 1970s–1980s
  • C2 #4 Shaquille O'Neal 1990s–2000s
  • PF1 #5 Tim Duncan 2000s–2010s
  • SG2 #6 Kobe Bryant 2000s–2010s
  • SF2 #7 Larry Bird 1980s
  • PG1 #8 Magic Johnson 1980s
  • C3 #9 Bill Russell 1950s–1960s
  • PG2 #10 Stephen Curry 2010s–2020s
  • C4 #11 Hakeem Olajuwon 1980s–1990s
  • C5 #12 Wilt Chamberlain 1960s–1970s
  • SF3 #13 Kevin Durant 2010s–2020s
  • C6 #14 Nikola Jokić 2010s–2020s
  • C7 #15 Moses Malone 1970s–1980s
  • PF2 #16 Giannis Antetokounmpo 2010s–2020s
  • PF3 #17 Dirk Nowitzki 2000s–2010s
  • PF4 #18 Kevin Garnett 1990s–2010s
  • SF4 #19 Scottie Pippen 1980s–2000s
  • SF5 #20 Kawhi Leonard 2010s–2020s
  • PG3 #21 Chris Paul 2000s–2020s
  • PF5 #22 Charles Barkley 1980s–1990s
  • PG4 #23 Oscar Robertson 1960s–1970s
  • SG3 #24 Jerry West 1960s–1970s
  • SG4 #25 Dwyane Wade 2000s–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.