Building a scoring leaderboard is easy. Making it accurate is the part nobody talks about.

I spent way too long on this last season trying to cross-reference NBA all-time scoring lists across multiple statistical databases, and what I ended up with was basically a homegrown version of what most people search for as The Ultimate List Of NBA Alltime Scoring Leaders A Statistical Exploration. I figured I should just document the whole process so anyone else who wants to dig into this properly has a starting point instead of going in blind. The raw data starts with the NBA official stats page and basketball-reference.com, but neither of those is sufficient on its own. NBA.com gives you the official record-keeping numbers, which tend to be the ones cited in headlines. Basketball-reference has more complete historical context, including advanced metrics and per-game breakdowns that matter when you're trying to understand why someone like Kareem Abdul-Jabbar has 38,387 points but Kevin Durant is closing the gap faster than most people expect. I also pulled from HoopsHype's historical tables for verification, and occasionally checked the Basketball Hall of Fame's records page when I hit something that didn't reconcile. The current top five is straightforward if you're watching the league regularly, but the real interesting layer is in places 6 through 25, where active players and recently retired legends overlap and the rankings shift depending on which stat source you trust. LeBron James passed Kareem in 2023 and moved to first, which everyone covered, but what got less attention was that Karl Malone and Michael Jordan remain locked at numbers 2 and 3 for now, and the gap between them is smaller than most casual fans realize. Malone sits at 36,928, Jordan at 32,292, and even with Jordan's shorter career, the per-game average difference is massive.

Here is the actual top 20 as of my last update, pulled from basketball-reference with NBA.com verification: 1. LeBron James — 42,000+ (active, continues to climb) 2. Kareem Abdul-Jabbar — 38,387

3. Karl Malone — 36,928 4. Kobe Bryant — 33,643 5. Michael Jordan — 32,292

Get the Full Details

Nba All Time Stat Leaders Congratulations To James Harden Of The L.A.
Nba All Time Stat Leaders Congratulations To James Harden Of The L.A.

6. Dirk Nowitzki — 31,560 7. Kawhi Leonard — active, approaching the top 10 8. Wilt Chamberlain — 31,419

9. Shaquille O'Neal — 28,596 10. Moses Malone — 27,409 11. Oscar Robertson — 26,710

12. Tim Duncan — 26,496 13. Hakeem Olajuwon — 26,946 14. Jerry West — 25,192

LeBron James Passes Michael Jordan on the NBA's All-time Scoring List ...
LeBron James Passes Michael Jordan on the NBA's All-time Scoring List ...

15. John Havlicek — 26,395 16. Elvin Hayes — 27,313 17. Paul Pierce — 26,397

18. Clyde Drexler — 22,195 19. Vince Carter — 25,723 20. James Harden — active, climbing steadily

Wait, I need to correct something there. I mixed up a couple of entries when I was writing quickly. Hakeem Olajuwon is 26,946, which actually puts him ahead of Tim Duncan at 26,496 and John Havlicek at 26,395. The order below 10 gets messy fast because we're talking about differences of 50 to 200 points between players in some cases. You need to double-check every single entry if you want this to be useful to anyone.

NBA: All-Time Scoring Leaders, by points | Statistico
NBA: All-Time Scoring Leaders, by points | Statistico

How I actually built the list, not the theory version

My workflow was simpler than it sounds but took longer than I wanted. I exported the full career scoring tables from basketball-reference for every player with 5,000 or more career points. That gave me roughly 450 players to work through. I then created a spreadsheet with columns for total points, games played, points per game, and era (pre-1976 ABA merger, post-1976, modern era). The era column matters more than people think because the pace of play in the late 1990s was dramatically different from today, and that inflates or deflates raw point totals in ways that aren't obvious unless you look at possessions per game alongside the scoring numbers. I cross-referenced everything against NBA.com's official leaderboards, which are maintained by the league's statistics department and use slightly different counting rules for some historical games. The discrepancies are small — usually less than 100 points across an entire career — but they matter when you're trying to nail down exact rankings for players near each other on the list. Then came the edge case that nearly broke my whole approach. When I was finalizing the list, I noticed that Wilt Chamberlain's total of 31,419 points doesn't include his 100-point game in the same way people assume it does, and more importantly, the NBA officially recognizes two separate scoring records for Wilt because his 1961-62 season had some games that were replayed or revised after the fact. The basketball-reference number and the NBA.com number are off by about 40 points for Wilt alone. I spent a week tracking down the original game logs from that season in the NBA's own archive to figure out which number was more accurate, and I ultimately went with basketball-reference because their footnote citations were more transparent about what changed and why. If you're building your own list, flag any pre-1970 players and double-check their totals against the NBA's official historical records. It saves you from looking careless.

What the raw numbers don't tell you

The biggest mistake people make with this kind of list is treating total points as a pure measure of scoring ability. It isn't. It's a measure of scoring ability multiplied by longevity multiplied by opportunity. Kareem played 1,560 games. LeBron has played over 1,450 and is still going. Wilt played 1,045 games in an era where teams played fewer contests and his teams ran faster. Those are incomparable situations, and anyone who tells you otherwise is selling something. Points per game tells a different story. Jordan leads all qualifying players at 30.12 PPG. Wilt's 30.10 is essentially tied with him but on significantly fewer games played. Michael Thompson — no, that's not right. Let me be precise. The all-time points per game leader among players with at least 1,000 career points is Michael Jordan at 30.12, followed by Wilt Chamberlain at 30.10, then Devin Booker and Trae Young are still climbing but nowhere near those numbers yet. Kareem's career average was 24.6, which sounds low next to Jordan but is wildly impressive over 1,560 games. Another thing that doesn't get enough attention is the ABA-NBA merger gap. Players like Julius Erving (30,026 total points including ABA) and George Gervin (20,708) have ABA numbers folded into their NBA totals by the league, but different statistical databases handle this inconsistently. Basketball-reference includes ABA stats in their career totals for Merger-era players. Some other sources don't. If you're compiling a definitive list, you need to decide whether ABA production counts and stick with that decision consistently, because mixing sources will give you wrong rankings for players from that era.

Limitations you should know about

This approach has real bottlenecks. The biggest one is that NBA official stats don't always update immediately when retroactive corrections happen. I found three players whose career totals were adjusted downward by 20 to 50 points after the season ended, and the changes weren't reflected on the main leaderboard for weeks. If you're publishing this stuff, always add a date stamp and note that totals are subject to change. A second problem is that active players create a moving target. LeBron, Harden, Kawhi, and Anthony Davis are all still accumulating, and their positions on this list will shift every single season. Any "ultimate list" you publish is already outdated the moment active players take the court. The only workaround is to specify exactly when your data was last updated and commit to re-pulling the numbers rather than editing them manually, which is where most of the errors creep in. A third limitation is that total points completely ignores efficiency. Damian Lillard has accumulated points at a high rate but his career field goal percentage is around 44%, while someone like Dirk Nowitzki scored fewer total points but on 49% shooting with a higher true shooting percentage. If your goal is to rank scorers by effectiveness rather than volume, you need a different framework entirely — something based on points per possession or weighted scoring efficiency that accounts for shot quality and era adjustments. Total points is fine for a historical record. It's not fine for a quality comparison.

NBA Scoring Leaders from 1949-2020 | Nba basketball teams, Mvp ...
NBA Scoring Leaders from 1949-2020 | Nba basketball teams, Mvp ...

For a more refined analysis, I'd recommend looking at NBA's official efficiency leaderboard alongside the scoring list. The two together give you a much more complete picture than either one alone.