Who is the Regular Season GOAT of the NBA (for the last 50 years)?

Despite the fact that LeBron James has now scored more total points than anyone in the history of the NBA, it appears that a consensus has been reached that his longevity and consistent greatness has never quite reached the Michael Jordan level.  Recently, Jordan’s rookie card has skyrocketed in value, the MVP trophy has been redesigned in his likeness, and the majority of players asked have given him the nod, usually mentioning his playoff dominance (including two three-peats as champion and six Finals MVPs) or the intimidation factor his opponents experienced, playing against someone who was simultaneously the league’s best offensive player as well as the best defensive player.

However, as a data scientist, I can’t help but wonder how you’d rank players in a completely objective way. What if you just measured players based on their average performance during the regular season over their careers? They say there’s no “I” in team, but certainly the best player have collected all of the points, assists, rebounds, steals, and blocks that they could. Maybe calling it a ranking of the “best” players is too much, but you could certainly argue that it would be an interesting list of the most “productive” players. Would ranking players this way create a list similar to ESPN’s recent ranking of the 74 best players of all time or would it be completely different?

Unfortunately, I could only find complete data back to 1973 (NBA.com only had data back to 1996(?!)), so I missed Kareem Abdul-Jabbar’s first four seasons. However, I do have all of the stats necessary to compare LeBron and MJ and rank them among all of the players who had careers in the last 50 years. I know they say you can’t compare players across eras, but we’re going to do it anyway…

And yes, I know that more players averaged over 30 points per game this season than any season since the 1960s. When measuring productivity, it seems that with the modern higher-paced game, statistics would be easier to come by. I considered controlling for that, but I’m not so sure that it’s fair. What if modern-day players are generally just better than players were 20 years ago? My approach is: when in doubt, just keep it simple. It’s always okay to add asterisks later if something looks weird.

One last thing: in addition to adding up all of the points, assists, rebounds, blocks, and steals for every season played (“Total Production”), I also divided that by the number of games played in each season (for lack of a better name for the stat, let’s call it “Fantasy Points per Game”) and also by the number of minutes played (“Fantasy Points per Minute”). This will give us a few different ways to compare players. Total Production would favor durable players, FPPG would take durability out of it and measure what players do when they’re healthy, while FPPM would benefit players who may not play a lot, but definitely filled the stats sheets while they were on the floor.

Before we get to the “most productive players” list, there were quite a few interesting Top 10 lists that you may have never seen…

Some guy named Michael Jordan had 4 of the top 10 seasons of all time.

First thing to note is that Kareem of 1975 was a beast: 28 points, 17 rebounds, 5 assists, and 4 blocks per game, and played 81 out of the 82 possible games. And #2 all-time goes to Russell Westbrook’s massive triple double season in 2016. Then there’s a lot of Michael Jordan. Notice that he’s the only player who played all 82 games on this list and he did it three times. Except for his broken foot season, the guy just wouldn’t take a day off (except for baseball, sigh).

Hey, while we’re here, let’s take a little trip through history and see who was the most productive player (MPP) each season for the last 50 years…

The first 20 seasons in my dataset

And the last 30. Congrats Luka on your first MPP this year!

Shouldn’t this be an award?

In the last 50 years, these would be the top recipients of the MPP trophy:

Michael Jordan: 6

Kareem Abdul-Jabbar: 6

LeBron James: 5

James Harden(!): 4

Kobe Bryant: 3

Shaquille O’Neal: 3

Kevin Durant: 3

Larry Bird: 3

David Robinson: 3

Not a bad list. It’s interesting to see that Jordan’s statistical reign of terror was when he 24-29 (at which point the big men took over the productivity title) and when he was 28, his championship reign of terror began and he won the NBA Finals in his next six complete seasons (stretching over 8 years because of the baseball hiatus). This might be the strongest argument for his GOAT status: For a stretch of a dozen straight years, MJ was either the statistically most productive NBA player or the leader of the championship team (or off playing baseball, sigh).

Another interesting “most productive of all-time” list is to compare by age, from the most productive 18-year-old (Kobe) to the most productive 44-year-old (Kevin Willis, who played 5 games and averaged a whopping 2.4 points per game, this game is not kind to “old” players!)…

The Most Productive Seasons of the Last 50 Years by Age
Does Kevin Willis know he’s an all-time great 44 year old?

Look at that TotalProduction column. It ramps up to a peak at 28-29 years old and then it’s “over the hill” in terms of nba productivity! No 30 year old in history has surpassed 4000 total stats (although LeBron fought father time and got close at age 33). Also surprising is to see Karl Malone own the ages 36-39, where I would think LeBron would take over the list. The key is the Games column: Karl pretty much played ALL the games and was just as durable and age-resistant as LBJ.

The top seasons of the last 50 years in terms of FPPG…

A couple recent seasons sneak into the list

Bob McAdoo, there’s a name from the past! He only played half the season, but I wonder how he feels being sandwiched between Michael Jordan and Michael Jordan? The guy was a badass: scored 34 points and collected 14 rebounds per game that season! Also, we see a couple more recent seasons in the list, which might help explain how so many players can be averaging 30 points per game these days: “Load Management”. If it’s true that teams are resting their stars more than they used to (and it appears that way), then it looks like the idea of ranking players based on total production during a season instead of per game statistics won’t give the modern player the boost we’d expect based on the higher scoring averages.

For completeness, here are the TOP FPPM seasons in the last 50 years…

Just kidding! The statistical pitfall of small sample size in all of its glory – Mr. Mitrou-Long played 30 seconds and got three points. Best season ever! 

How about a minimum of 10 games?

Greek Freak! And all recent seasons (half of the list is in the last two seasons)!

So THIS is what the game has evolved towards. No seasons are on this list before 2016. It looks like the modern approach is: play 85% of the games and play 70% of the minutes so you can just go full throttle. Each of the Greek Freak’s last 5 seasons is on the list of the 10 most productive seasons per minute since 1973. We should probably just rename the stat “GF” in his honor.

And I’m assuming this would be the “MJ” stat…Pretty much.

Wow, if it weren’t for the fact that it’s based on one season, that’s a pretty good looking GOAT list right there. These are the players with the highest output per minute, who also played every single game in a season. I suppose if you want an exclusive MJ list, you could just do this…

But this is data-mining (don’t tell Gary Smith on me)

Anyway, without further ado, here’s the list of the top 50 players, ranked by their career average productivity per season. Note: there are some partial careers here (like Kareem) and players currently active (like LeBron and Luka) who can rise or fall in this list in the future.

The Top Average Productivity Ranking (Last 50 Years)

Rank Player Name  Avg Season
1 Michael Jordan               3,201
2 Karl Malone               3,179
3 LeBron James               3,149
4 L. Doncic               3,013
5 Kareem Abdul-Jabbar*               2,968
6 N. Jokic               2,929
7 Russell Westbrook               2,915
8 Larry Bird               2,856
9 Giannis Antetokounmpo               2,829
10 James Harden               2,816
11 Trae Young               2,793
12 Magic Johnson               2,776
13 Hakeem Olajuwon               2,762
14 David Robinson               2,719
15 Charles Barkley               2,694
16 Kevin Durant               2,685
17 Tim Duncan               2,625
18 Damian Lillard               2,616
19 Dominique Wilkins               2,568
20 Allen Iverson               2,538
21 Shaquille O’Neal               2,536
22 Isiah Thomas               2,534
23 Clyde Drexler               2,529
24 J. Tatum               2,527
25 K. Towns               2,525
26 D. Issel               2,519
27 Patrick Ewing               2,511
28 J. Embiid               2,500
29 Kobe Bryant               2,478
30 Julius Erving**               2,445
31 J. Randle               2,440
32 Alex English               2,439
33 A. Edwards               2,429
34 Anthony Davis               2,426
35 Donovan Mitchell               2,399
36 Kevin Garnett               2,386
37 Stephen Curry               2,373
38 Dirk Nowitzki               2,344
39 Rick Barry               2,331
40 B. Daugherty               2,308
41 Chris Paul               2,304
42 P. Banchero               2,297
43 Gary Payton               2,283
44 John Stockton               2,273
45 Antoine Walker               2,271
46 Dwyane Wade               2,269
47 D. DeRozan               2,264
48 D. Booker               2,239
49 J. Morant               2,228
50 N. Vucevic               2,198

*Kareem’s first four years were better than his average years, so his true productivity average based on known statistics would be a little over 3075. However, steals and blocks weren’t tracked over 50 years ago, so you could argue that he missed #1 here based on a technicality!

**I also just peeked at Dr. J’s lifetime statistics and his average total productivity, including his ABA years, actually puts him above Michael Jordan! However, there’s big asterisk: in three of his four ABA years, he played 84 games, which isn’t possible in the NBA. If you prorate his stats down for those years to 82 games, he drops into the #2 slot below Michael. Then again, they didn’t count steals and blocks in 1971… it never ends!

I looked at this list a month ago and LeBron was #2, so his injury-shortened season this year dropped him down a slot. If he can stay healthy, I expect him to regain that #2 slot next year. And look at Luka Magic and Jokic!  Jokic is closing in on that “over the hill” age and can be expected to start drifting down the list in a few years, but Luka is only 24 years old! Considering the season he just had, he may be starting his own reign of terror in the league right now.

If we were looking at the complete set of historical NBA stats, Wilt Chamberlain would almost certainly be the regular season productivity GOAT. I have a friend who’s constantly pushing the “Wilt is GOAT” narrative online. Rather than argue with him about championships and stuff, I usually respond with “I have eyes”.  If you’ll open your mind to subjective arguments for a second, pretend you’re an NBA scout and that Wilt’s highlight reel actually came from a college prospect you were thinking about drafting:

Be honest. How skilled does he look and how skilled do his opponents look?

Wilt’s highlight reel

For comparison, here’s a highlight reel from a single game from Victor Wembanyama a couple weeks ago…

Wemby highlight reel (one game)

The game has clearly changed, and modern players are much more skilled than the average player 50+ years ago. Evidently the “economics of pro basketball exploded” in the 1970’s, so it’s hardly surprising that the quality and skill of the average athlete would explode as well. You can argue Wilt was the most “dominant” player of all time. But not GOAT.

Anyway, I digress.

For the “LeBron is GOAT” people out there, here’s the list you want to see: top players by TOTAL productivity.

The Iron Men of the NBA (last 50 years)…

Rank PlayerName  Lifetime Productivity
1 LeBron James                                   62,974
2 Karl Malone                                   60,408
3 Kevin Garnett                                   50,114
4 Tim Duncan                                   49,871
5 Hakeem Olajuwon                                   49,719
6 Kobe Bryant                                   49,566
7 Dirk Nowitzki                                   49,216
8 Shaquille O’Neal                                   48,186
9 Michael Jordan                                   48,012
10 Kareem Abdul-Jabbar*                                   47,491
11 Russell Westbrook                                   43,730
12 John Stockton                                   43,184
13 Charles Barkley                                   43,101
14 Patrick Ewing                                   42,679
15 Jason Kidd                                   41,503
16 Chris Paul                                   41,478
17 Carmelo Anthony                                   41,411
18 Paul Pierce                                   41,143
19 Kevin Durant                                   40,281
20 Robert Parish                                   39,863
21 Vince Carter                                   39,445
22 James Harden                                   39,426
23 D. Howard                                   39,089
24 Gary Payton                                   38,805
25 Pau Gasol                                   38,690
26 Dominique Wilkins                                   38,526
27 David Robinson                                   38,063
28 Clyde Drexler                                   37,937
29 Moses Malone                                   37,392
30 Larry Bird                                   37,126
31 Alex English                                   36,590
32 Dwyane Wade                                   36,306
33 Magic Johnson                                   36,089
34 Scottie Pippen                                   35,841
35 Ray Allen                                   35,824
36 Allen Iverson                                   35,535
37 Reggie Miller                                   35,391
38 L. Aldridge                                   33,315
39 Buck Williams                                   33,107
40 S. Marion                                   32,978
41 Isiah Thomas                                   32,939
42 Steve Nash                                   32,393
43 Kevin Willis                                   32,190
44 O. Thorpe                                   32,069
45 Z. Randolph                                   31,966
46 T. Cummings                                   31,905
47 Joe Johnson                                   31,807
48 Clifford Robinson                                   31,778
49 D. DeRozan                                   31,690
50 A. Jamison                                   31,391

*Actually, when adding Kareem’s missing first four years, even his known statistics would put him at the top here with 65,854. So LeBron needs another year or two before he can safely say that there is no asterisk and that he’s definitely the all-time total productivity leader of the NBA.

Maybe this is the way you rank the players, but I don’t think people generally agree with that. Actually, we can quantify how close these lists approximate what people think of as the GOAT by looking at the correlation between these lists and the ESPN list (the gaps in the ESPN list below are players who didn’t play in the last 50 years).

Side-by-Side Comparison with ESPN’s list (in ESPN order)

So a few takeaways here:

(1) The Average Productivity list correlates better with the ESPN list (0.56 correlation > 0.43 correlation), which makes sense. People usually think of basketball as a sprint, not a marathon.

(2) Karl Malone is #2 on both my lists and #17 on the ESPN list. Is he underrated? Statistically, I suppose so, but I also know why ESPN has him lower than you’d expect. I remember the experience of watching him play. Let’s just say that the hardest all-time record LeBron to break may be Malone’s free throw record. Basically, he found a stats-hack and rode that puppy for years. Not entertaining, but effective, I’ll give him that. It’s also possible that ESPN penalized him for his trademark hand behind the head dunk.

(3) My ranking is not kind to players who have a lot of injury-shortened seasons. I’m actually a little surprised Jordan comes out on top in spite of two very short seasons: broken foot and returning from baseball. Those two seasons brought his average down a lot and don’t forget that he even played for the Wizards at age 40! Other players with a handful of injury seasons like Moses Malone get thrown far down the list.

(4) Kawhi Leonard! ESPN has him at #25 and I’ve got him at #167. What’s going on there? This is clearly a case where winning rings is highly respected in the sports community, but they’re not reflected in the regular season statistics my number-crunching is focused on. In the case of Steve Nash, MVP trophies carry a lot of weight in the ESPN rankings as well.

(5) As I look down the list for underrated players, it’s mostly players who are currently playing and may regress towards the ends of their careers. However, there are a few exceptions worth noting: Dominique Wilkins (my rank = 19, ESPN rank = 46), Clyde Drexler (my rank = 23, ESPN rank = 57), and Alex English (my rank = 32, ESPN rank = 67). These guys seem to have filled up the stat sheet much more than ESPN recognizes. Here’s a comparison between Dominique Wilkins (ESPN rank 46) and Kawhi Leonard (ESPN rank 25)…

Too small to read, click here!

It’ll probably take a second to make sense of what I did here. I joined Dominique’s career stats with Kawhi’s career stats by age. For example, how did 23-year-old ‘Nique compare with Kawhi at 23? If you look at the PlayersAge column and find 23, you’ll see that Dominique had 17.5 ppg, 5.8 rpg, 1.6 apg, while Kawhi had 12.8 ppg, 6.2 rpg, and 2 apg. In terms of my summary statistics, they were dead even in terms of stats per minute. However, Dominique played 4 minutes more per game on average, so his stats per game was higher. And he played 16 more games (the full 82), so his total productivity is much higher (+622).

It turns out that this same pattern pretty much holds for every year in common between the two players. The only year in which Kawhi had higher total productivity was when they were both 32, Dominique played only 42 games and put 168 fewer points on the stat sheet than Kawhi. Over their careers on average, the players are even per minute, but Dominque is +912 in total annual productivity. Basically, Dominque = Kawhi + minutes + games. My list doesn’t consider championships, so it’s like “where’s the love for ‘Nique and Drexler?”

Let’s be honest though, you’re not reading this blog to see the comparison of Dominque vs. Kawhi. It’s this one…

Who’s more productive, MJ or LeBron?

In terms of overall averages, there’s actually not a lot of statistical daylight between these two! However, LeBron made up huge chunks of his productivity deficit in two years: (1) when they were 23, MJ broke his foot and played limited minutes in 18 games and (2) when they were 32, MJ came back for the last 17 games of the season in “baseball shape.”

However, it’s fair to say that in terms of total productivity, Jordan gets the clear nod. In the 13 ages they played in common, MJ was more productive in 9 of them. The only other season LeBron was more productive than MJ was the year after the baseball return. So you could say that MJ went 10-3 against LeBron in a head-to-head productivity competition.

However, there is something for LeBron fans here. Notice the FPPM and FPPG statistics. There is a significant difference between BB (“before baseball”) and AB (“after baseball”). MJ beat LeBron in both of these stats in every single season BB (except for the broken foot season when there was a cap on MJ’s minutes, much to his frustration). However, LeBron has been beating MJ in both of these stats every single season AB. The only reason Jordan comes out ahead in overall productivity after baseball is because he played 82 games per season. After baseball, Michael transitioned a bit from Air Jordan to Chill Jordan, but still came to play every game. That said, kudos to LeBron for coming to work every single season.

It’ll be interesting to see if LeBron can keep it up and outperform MJ’s Washington Wizard years. In particular, Jordan’s final year at 40 years old was pretty remarkable: 82 games played with 20 ppg, 6.1 rpg, and 3.8 apg. In fact, it puts him on top of this list, which you’ve probably never seen:

The most productive final years in the last 50 yearsThis could be called the “why did they retire again?” list

These guys left the game with their heads held high. As a kid I remember being pretty upset about Dr. J retiring, thinking “this guy is still great, why is he leaving?” It’s rare for a star to be able to swallow their pride like Vince Carter did and try to push their rickety 40-year-old bodies to keep up with the young guns.

For symmetry, here are the most productive rookie seasons of the last 50 years…

A lot of familiar names here

David Robinson spoiled Jordan’s potential “best first year and best last year” flex. He came into the league as a 24-year-old after his active duty in the Navy was complete, ready to dominate. He even surpassed his idol Ralph Sampson’s first year stats (Sampson is the reason Robinson wore the #50). Also of note, Dr. J’s “first year” here is his NBA rookie year. He was in the ABA from 1971-1976.

I’ve probably worn you guys out with the endless stats here, but I’ve got a couple last good ones for you. I like the idea above of head-to-head comparisons “by age”, so a question came to mind. What if I compare ESPN’s top players to each other in a round-robin tournament in which all of them matched up against every other one and I calculated their “productive season win %” (recall that MJ had a 10/13 = 77% win rate against LeBron – it’s in the list below).

Match-up results…

PlayerName1 PlayerName2  Win Percentage
Kareem Abdul-Jabbar Kobe Bryant                      72.73
Kareem Abdul-Jabbar Larry Bird                      77.78
Kareem Abdul-Jabbar LeBron James                      66.67
Kareem Abdul-Jabbar Magic Johnson                      83.33
Kareem Abdul-Jabbar Michael Jordan                      50.00
Kareem Abdul-Jabbar Shaquille O’Neal                      84.62
Kareem Abdul-Jabbar Tim Duncan                      92.86
Kobe Bryant Kareem Abdul-Jabbar                      27.27
Kobe Bryant Larry Bird                      38.46
Kobe Bryant LeBron James                      31.58
Kobe Bryant Magic Johnson                      46.15
Kobe Bryant Michael Jordan                      15.38
Kobe Bryant Shaquille O’Neal                      41.18
Kobe Bryant Tim Duncan                      50.00
Larry Bird Kareem Abdul-Jabbar                      22.22
Larry Bird Kobe Bryant                      61.54
Larry Bird LeBron James                      38.46
Larry Bird Magic Johnson                      77.78
Larry Bird Michael Jordan                      25.00
Larry Bird Shaquille O’Neal                      76.92
Larry Bird Tim Duncan                      46.15
LeBron James Kareem Abdul-Jabbar                      33.33
LeBron James Kobe Bryant                      68.42
LeBron James Larry Bird                      61.54
LeBron James Magic Johnson                      69.23
LeBron James Michael Jordan                      23.08
LeBron James Shaquille O’Neal                      72.22
LeBron James Tim Duncan                      76.47
Magic Johnson Kareem Abdul-Jabbar                      16.67
Magic Johnson Kobe Bryant                      53.85
Magic Johnson Larry Bird                      22.22
Magic Johnson LeBron James                      30.77
Magic Johnson Michael Jordan                      11.11
Magic Johnson Shaquille O’Neal                      50.00
Magic Johnson Tim Duncan                      45.45
Michael Jordan Kareem Abdul-Jabbar                      50.00
Michael Jordan Kobe Bryant                      84.62
Michael Jordan Larry Bird                      75.00
Michael Jordan LeBron James                      76.92
Michael Jordan Magic Johnson                      88.89
Michael Jordan Shaquille O’Neal                      71.43
Michael Jordan Tim Duncan                      80.00
Shaquille O’Neal Kareem Abdul-Jabbar                      15.38
Shaquille O’Neal Kobe Bryant                      58.82
Shaquille O’Neal Larry Bird                      23.08
Shaquille O’Neal LeBron James                      27.78
Shaquille O’Neal Magic Johnson                      50.00
Shaquille O’Neal Michael Jordan                      28.57
Shaquille O’Neal Tim Duncan                      38.89
Tim Duncan Kareem Abdul-Jabbar                        7.14
Tim Duncan Kobe Bryant                      50.00
Tim Duncan Larry Bird                      53.85
Tim Duncan LeBron James                      23.53
Tim Duncan Magic Johnson                      54.55
Tim Duncan Michael Jordan                      20.00
Tim Duncan Shaquille O’Neal                      61.11

Which can be summarized neatly like this…

Player Name  Avg Win %
Kareem Abdul-Jabbar               75.43
Michael Jordan               75.27
LeBron James               57.76
Larry Bird               49.73
Tim Duncan               38.60
Kobe Bryant               35.72
Shaquille O’Neal               34.65
Magic Johnson               32.87

Kareem and Michael are in a virtual tie for first place in this “tournament.” Keep in mind that each of these players is matching up against other players only for the ages they both played, so this is a complicated statistic to calculate. In fact, for the SQL geeks out there, enjoy the gory details behind this query at the bottom of this article.

One last thing. For those of you curious what such a “round-robin tournament” list would look like right now with some of today’s stars, you’re welcome…

Player Name  Avg Win %
LeBron James                                   81.80
Giannis Antetokounmpo                                   59.85
Kevin Durant                                   59.47
K. Towns                                   56.81
N. Jokic                                   55.79
L. Doncic                                   52.14
James Harden                                   51.99
Russell Westbrook                                   51.69
L. Ball                                   50.00
Damian Lillard                                   47.50
Trae Young                                   47.22
J. Morant                                   44.79
Anthony Davis                                   42.80
Stephen Curry                                   41.24
J. Embiid                                   36.62
K. Irving                                   23.05

Okay, enough already with the stats overload. Go take a nap! (And let me know what I overlooked and need to include in my next blog).

– J

“The SQL Query”…

–TotalProduction Summarized!…………………………………
WITH Players AS (
        SELECT * FROM nba WHERE PlayerName IN (‘Kareem Abdul-Jabbar’, ‘Larry Bird’, ‘Kobe Bryant’, ‘Magic Johnson’, ‘Michael Jordan’, ‘Shaquille O’Neal’, ‘Tim Duncan’,  ‘LeBron James’)
    ),
    PlayerCombinations AS (
        SELECT
            P1.PlayerName AS PlayerName1,
            P2.PlayerName AS PlayerName2,
            P1.Age AS Age1,
            P2.Age AS Age2,
            P1.TotalProduction – P2.TotalProduction AS TotalProductionDiff
        FROM
            Players P1
            CROSS JOIN Players P2
        WHERE
            P1.PlayerName <> P2.PlayerName
            AND ROUND(P1.Age, 0) = ROUND(P2.Age, 0)
    ),
    WinCount AS (
        SELECT PlayerName1, PlayerName2, COUNT(*) AS Wins
        FROM PlayerCombinations
        WHERE TotalProductionDiff > 0
        GROUP BY PlayerName1, PlayerName2
    ),
    LossCount AS (
        SELECT PlayerName1, PlayerName2, COUNT(*) AS Losses
        FROM PlayerCombinations
        WHERE TotalProductionDiff < 0
        GROUP BY PlayerName1, PlayerName2
    ),
    TotalCount AS (
        SELECT
            W.PlayerName1,
            W.PlayerName2,
            W.Wins,
            L.Losses,
            W.Wins + L.Losses AS Total
        FROM
            WinCount W
            INNER JOIN LossCount L ON W.PlayerName1 = L.PlayerName1 AND W.PlayerName2 = L.PlayerName2
    ),
AllWins as (
SELECT
PlayerName1,
PlayerName2,
Wins * 100.0 / Total AS WinPercentage
FROM
TotalCount
)
SELECT PlayerName1, avg(Winpercentage)
FROM AllWins
GROUP BY PlayerName1
ORDER BY avg(Winpercentage) DESC;

Comparing NBA Players Across Decades

A couple days ago, college basketball player J. J. Culver made the news by scoring an astounding 100 points in a game. Since it was against Southwestern Adventist University and not the New York Knicks, it’s not as impressive as Wilt Chamberlain’s 100-point game in the NBA. However, players at every level have progressed a lot since 1962. Or have they?

It’s incredibly difficult to compare players across different eras, since the defense evolves along with the offense. It certainly appears in video footage that NBA players in the 1960s are light-years behind modern players. Even the championship teams of that era subjectively look like Division I college teams at best. However there are two statistics that can be compared across decades: free throw percentage and the NBA Three-Point Contest shooting percentage. If players have gotten better over the years, there’s no reason to think that they only improved in some ways and not others, so their improvement should be statistically apparent across the board, including these two.

Well, it turns out that I’ve compiled a nice dataset with all of the scores in history from the NBA 3-Point Contest from various sources (including watching videos) and historical NBA free throw stats are readily available. Unfortunately, there are various numbers of 2-point “money balls” in the shooting contest, so I don’t have the exact shooting percentage, just the percentage of possible points scored. However, it’s reasonable to use this as a very good approximation of shooting percentage, since it’s hard to imagine why a player would shoot significantly better or worse when he knows the ball is worth two points. So let’s do this!

Starting with the less interesting stats, there is a significant improvement in league-wide free throw percentage over the years…

It’s not a big difference, but it’s there. The trendline shows a historical 0.06% improvement per year with a p-value of less than 0.0001, which means that it’s extremely unlikely that there would be a trend like this if the year the stats were collected were unrelated to shooting percentage. However, it looks like there were a few really bad years at the beginning that could be making all the difference. So let’s look at it since 1950.

The slope has definitely decreased (it’s now at 0.04% per year), but it’s still statistically significant at the p=0.0001 level). Of course, it would’ve been easier to simply average the shooting percentage of the last five years in the dataset and compare it to the average for the first five years and show that it’s improved by 6.9% since then. However, doing a linear regression like this provides a more accurate estimate of the actual improvement (73*0.0006 = 4.4% improvement since the beginning) since it considers all of the data. It also tells you whether or not the relationship is statistically significant. So you can see why linear regressions are a statistician’s best friend; it’s easily interpretable and fun! (BTW, the R-Squared metric is a “goodness of fit” measure that ranges from 0 to 1 (perfect fit) and this is saying that the year explains 30% of the variance in free throw scores. The other 70% probably being the presence of Wilt Chamberlain or Shaquille O’Neal dragging the percentage down. Joking!)

Okay, now for the fun one: Are NBA 3-point shooters getting better as well? During the first years of the NBA 3-Point Shootout first took place, there were some incredible performances from shooters like Craig Hodges (made 19 straight shots in one round) and Larry Bird (won the first three contests). Maybe the “splash brothers” from Golden State are outliers and that the long-distance shooting accuracy has generally remained stable since the 1980s.

It doesn’t look like it! Due to the small number of shots in the contest each year, the data is much noisier than the free throw percentage, but the trend is still clear: recent players are better shooters. The slope is steeper than the free throw trend, with an improvement of 0.26% per year, but because of the volatility in the data, the p-value isn’t as small (p=0.0013). Another way to think of the level of statistical significance is to say that we have provided strong evidence against the hypothesis that shooters are equally skilled across the decades. In science, you can’t really prove a hypothesis is true, you can only provide evidence that’s consistent with it or falsify it.

We can’t talk about the history of the NBA three-point contest without addressing the question: who is the best shooter in the contest’s history? If you simply sort by shooting percentage, this is what you get:

So, the highest shooting percentage in the contest history is Joe Harris, with an astonishing 75% accuracy. However, this isn’t the whole story. Here is the same list, with important piece of additional data: the total number of shots taken:

There is a statistical tendency for the tops (and bottoms) of ranked lists to be monopolized by the smallest sets of data. This is because it’s easier to achieve extreme results with only a few tries. Intuitively, this makes sense. If someone says “I’m the best shooter in basketball; I’m shooting 100% this year”, you already know that they’ve only made a couple baskets at most. In this case, the effect is not as extreme as it normally is, because if a shooter was on fire in one shooting round, they probably advanced to another round (it’s truly remarkable that Danny Green didn’t make it to the finals in 2019 after shooting 68%!). However, you do see a lot of players at the top of the list who only shot a couple rounds. So, how do we adjust for this “small sample size effect” and compare shooters with varying numbers of shots?

I don’t think we can. How can you say who’s a better shooter, between Joe Harris, who made 75% of his 50 shots, or Steph Curry, who made 65% of 250 shots? The only thing I think we can do is to control for the number of shots and compare players who shot the same number of rounds. Starting with the most shots and working backwards, the winner of the “475 shots” category is…

Craig Hodges! Of course, it’s hard to call him the best shooter since there’s nobody with that many shots to compare him with, and his 56% shooting isn’t particularly noteworthy (the overall average was 52%). However, he did leave us with this unforgettable performance, so he deserves recognition for that.

Similarly, Dale Ellis, and Dirk Nowitzki were the only shooters with their number of shots and only shot about 50%. However, when we get down to players with 250 shots, it gets interesting…

These shooters are no clowns. Who could have imagined that Reggie Miller would rank last on any 3-Point Shooting ranking? So, we have our first candidate for best shooter in the Three-Point Contest history. Steph Curry, with 65% accuracy, ranks best in the first contested category.

Next up is the 200-shot category.

With a 60% shooting accuracy, Kyrie Irving edges out Curry’s coach Steve Kerr. Now, I realized that I lied earlier. We can compare across these categories, if the shooter with more shots also has a higher percentage! We can unquestionably state that Curry’s 65% with 250 shots is more impressive than Irving’s 60% performance with 200 shots. So, Curry can still be considered the top shooter.

Next up: 175 Shots.

Klay Thompson takes this title with 63% shooting. Now, it’s unclear whether his higher percentage would hold up if she shot another 25 times, so we can’t clearly rank him above Kyrie Irving. However, we can say that Curry’s higher percentage is still objectively the best.

150 Shots…

We finally have a true contender for Curry. Tim Legler has technically shot a higher percentage than Curry (66% to 65%), however if he took another 100 shots, it’s fairly likely that he would regress toward the mean a bit and fail to keep up his accuracy. Since we don’t truly know what his mean is, I don’t think there’s an objective way to judge who’s more impressive unless we got Tim out there to shoot a few more rounds.

125 shots…

In the 125-shot category, Devin Booker takes it with 62% shooting. Both Curry and Legler outperformed this with more shots, so this means we can leave Booker out of the overall “most impressive shooter” contention.

100 shots…

Marco Belinelli takes this category, with a Steph-matching 65% accuracy. However, it’s more impressive to shoot 65% over 250 shots than to do it with 100 shots, so Steph and Legler’s performances are still the best.

75 shots…

Jim Les wins this one with 56% shooting, but again falls behind Steph and Legler.

Next up is the highly-contested 50-shot category. These are all the remaining players who won at least one shootout round.

Joe Harris shot a remarkable 75%, so even though the sample size is so small, we can’t rule out that his performance gives him the title for most impressive 3-Point Contest shooter in history.

So we’ve boiled it down to three contenders. Who do you consider most impressive? Your guess is as good as mine…

Steph Curry: 65% of 250 shots

Tim Legler: 66% of 150 shots

Joe Harris: 75% of 50 shots

UPDATE: Since publishing this blog article, my co-author Gary Smith (he knows a lot of things) pointed out that there is a statistical way to compare Joe Harris to Steph Curry here. He said “there is a difference-in-proportions test for the null hypothesis that two probabilities are equal” which is another way of saying that you can attempt to falsify the hypothesis that Curry’s and Harris’s shooting percentages are the same. Here’s what I get when I plug in Curry’s and Harris’s shooting percentages…

So, this is saying that the shot data we have is not sufficient to argue that Harris’s shooting performance was significantly better than Curry’s. However, it is suggestive that he may be better; in fact, if he had made two more shots out of the 50, this test would have supported the idea that Harris’s performance was significantly better than Curry’s. Time will tell!

(Below is the data I used… enjoy! Oh yeah, and buy my book, thanks!)

YearRoundPlayerScoreMaxPossibleTotalShotsPercentage
19861st RoundCraig Hodges25302583%
19861st RoundDale Ellis17302557%
19861st RoundKyle Macy13302543%
19861st RoundLarry Bird16302553%
19861st RoundLeon Wood13302543%
19861st RoundNorm Nixon9302530%
19861st RoundSleepy Floyd13302543%
19861st RoundTrent Tucker19302563%
19862nd RoundCraig Hodges14302547%
19862nd RoundDale Ellis14302547%
19862nd RoundLarry Bird18302560%
19862nd RoundTrent Tucker13302543%
1986FinalsCraig Hodges12302540%
1986FinalsLarry Bird22302573%
19871st RoundByron Scott9302530%
19871st RoundCraig Hodges13302543%
19871st RoundDale Ellis13302543%
19871st RoundDanny Ainge14302547%
19871st RoundDetlef Schrempf19302563%
19871st RoundKiki Vanderweghe12302540%
19871st RoundLarry Bird13302543%
19871st RoundMichael Cooper15302550%
19872nd RoundDanny Ainge8302527%
19872nd RoundDetlef Schrempf16302553%
19872nd RoundLarry Bird18302560%
19872nd RoundMichael Cooper10302533%
1987FinalsDetlef Schrempf14302547%
1987FinalsLarry Bird16302553%
19881st RoundBrent Price14302547%
19881st RoundByron Scott19302563%
19881st RoundCraig Hodges10302533%
19881st RoundDale Ellis16302553%
19881st RoundDanny Ainge14302547%
19881st RoundDetlef Schrempf15302550%
19881st RoundLarry Bird17302557%
19881st RoundTrent Tucker11302537%
19882nd RoundByron Scott11302537%
19882nd RoundDale Ellis12302540%
19882nd RoundDetlef Schrempf5302517%
19882nd RoundLarry Bird23302577%
1988FinalsDale Ellis15302550%
1988FinalsLarry Bird17302557%
19891st RoundCraig Hodges20302567%
19891st RoundDale Ellis19302563%
19891st RoundDanny Ainge11302537%
19891st RoundDerek Harper12302540%
19891st RoundGerald Henderson17302557%
19891st RoundJon Sundvold12302540%
19891st RoundMichael Adams12302540%
19891st RoundReggie Miller15302550%
19891st RoundRimas Kurtinaitis9302530%
19892nd RoundCraig Hodges18302560%
19892nd RoundDale Ellis18302560%
19892nd RoundGerald Henderson13302543%
19892nd RoundReggie Miller11302537%
1989FinalsCraig Hodges15302550%
1989FinalsDale Ellis19302563%
19901st RoundBobby Hansen15302550%
19901st RoundCraig Ehlo14302547%
19901st RoundCraig Hodges20302567%
19901st RoundJon Sundvold15302550%
19901st RoundLarry Bird13302543%
19901st RoundMark Price11302537%
19901st RoundMichael Jordan5302517%
19901st RoundReggie Miller16302553%
19902nd RoundBobby Hansen14302547%
19902nd RoundCraig Hodges17302557%
19902nd RoundJon Sundvold17302557%
19902nd RoundReggie Miller18302560%
1990FinalsCraig Hodges19302563%
1990FinalsReggie Miller18302560%
19911st RoundClyde Drexler8302527%
19911st RoundCraig Hodges20302567%
19911st RoundDanny Ainge18302560%
19911st RoundDennis Scott16302553%
19911st RoundGlen Rice9302530%
19911st RoundHersey Hawkins14302547%
19911st RoundTerry Porter15302550%
19911st RoundTim Hardaway15302550%
19912nd RoundCraig Hodges24302580%
19912nd RoundDanny Ainge11302537%
19912nd RoundDennis Scott12302540%
19912nd RoundTerry Porter14302547%
1991FinalsCraig Hodges17302557%
1991FinalsTerry Porter12302540%
19921st RoundCraig Ehlo10302533%
19921st RoundCraig Hodges16302553%
19921st RoundDell Curry11302537%
19921st RoundDrazen Petrovic13302543%
19921st RoundJeff Hornacek7302523%
19921st RoundJim Les15302550%
19921st RoundJohn Stockton11302537%
19921st RoundMitch Richmond12302540%
19922nd RoundCraig Hodges15302550%
19922nd RoundDrazen Petrovic8302527%
19922nd RoundJim Les20302567%
19922nd RoundMitch Richmond11302537%
1992FinalsCraig Hodges16302553%
1992FinalsJim Les15302550%
19931st RoundB.J. Armstrong11302537%
19931st RoundCraig Hodges14302547%
19931st RoundDan Majerle10302533%
19931st RoundDana Barros15302550%
19931st RoundKenny Smith12302540%
19931st RoundMark Price19302563%
19931st RoundReggie Miller14302547%
19931st RoundTerry Porter16302553%
19932nd RoundCraig Hodges16302553%
19932nd RoundDana Barros15302550%
19932nd RoundMark Price21302570%
19932nd RoundTerry Porter17302557%
1993FinalsMark Price18302560%
1993FinalsTerry Porter17302557%
19941st RoundB.J. Armstrong8302527%
19941st RoundDale Ellis20302567%
19941st RoundDana Barros13302543%
19941st RoundDell Curry12302540%
19941st RoundEric Murdock13302543%
19941st RoundMark Price15302550%
19941st RoundMitch Richmond12302540%
19941st RoundSteve Kerr18302560%
19942nd RoundDale Ellis10302533%
19942nd RoundDana Barros17302557%
19942nd RoundMark Price21302570%
19942nd RoundSteve Kerr13302543%
1994FinalsDana Barros13302543%
1994FinalsMark Price24302580%
19951st RoundChuck Person15302550%
19951st RoundDan Majerle9302530%
19951st RoundDana Barros9302530%
19951st RoundGlen Rice14302547%
19951st RoundNick Anderson12302540%
19951st RoundReggie Miller17302557%
19951st RoundScott Burrell19302563%
19951st RoundSteve Kerr13302543%
19952nd RoundChuck Person16302553%
19952nd RoundGlen Rice19302563%
19952nd RoundReggie Miller19302563%
19952nd RoundScott Burrell17302557%
1995FinalsGlen Rice17302557%
1995FinalsReggie Miller16302553%
19961st RoundClifford Robinson11302537%
19961st RoundDana Barros18302560%
19961st RoundDennis Scott19302563%
19961st RoundGeorge McCloud18302560%
19961st RoundGlen Rice17302557%
19961st RoundHubert Davis17302557%
19961st RoundSteve Kerr18302560%
19961st RoundTim Legler23302577%
19962nd RoundDennis Scott19302563%
19962nd RoundGeorge McCloud17302557%
19962nd RoundSteve Kerr17302557%
19962nd RoundTim Legler22302573%
1996FinalsDennis Scott18302560%
1996FinalsTim Legler20302567%
19971st RoundDale Ellis12302540%
19971st RoundGlen Rice16302553%
19971st RoundJohn Stockton13302543%
19971st RoundSam Perkins8302527%
19971st RoundSteve Kerr15302550%
19971st RoundTerry Mills11302537%
19971st RoundTim Legler17302557%
19971st RoundWalt Williams18302560%
19972nd RoundGlen Rice14302547%
19972nd RoundSteve Kerr21302570%
19972nd RoundTim Legler19302563%
19972nd RoundWalt Williams12302540%
1997FinalsSteve Kerr22302573%
1997FinalsTim Legler18302560%
19981st RoundCharlie Ward15302550%
19981st RoundDale Ellis18302560%
19981st RoundGlen Rice13302543%
19981st RoundHubert Davis15302550%
19981st RoundJeff Hornacek17302557%
19981st RoundReggie Miller12302540%
19981st RoundSam Mack14302547%
19981st RoundTracy Murray12302540%
19982nd RoundCharlie Ward11302537%
19982nd RoundDale Ellis15302550%
19982nd RoundHubert Davis24302580%
19982nd RoundJeff Hornacek15302550%
1998FinalsHubert Davis10302533%
1998FinalsJeff Hornacek16302553%
20001st RoundAllen Iverson10302533%
20001st RoundBob Sura9302530%
20001st RoundDirk Nowitzki18302560%
20001st RoundHubert Davis14302547%
20001st RoundJeff Hornacek17302557%
20001st RoundMike Bibby15302550%
20001st RoundRay Allen16302553%
20001st RoundTerry Porter15302550%
2000FinalsDirk Nowitzki11302537%
2000FinalsJeff Hornacek13302543%
2000FinalsRay Allen10302533%
20011st RoundAllan Houston11302537%
20011st RoundBryon Russell10302533%
20011st RoundDirk Nowitzki17302557%
20011st RoundPat Garrity15302550%
20011st RoundPeja Stojakovic19302563%
20011st RoundRashard Lewis12302540%
20011st RoundRay Allen20302567%
20011st RoundSteve Nash14302547%
2001FinalsDirk Nowitzki10302533%
2001FinalsPeja Stojakovic17302557%
2001FinalsRay Allen19302563%
20021st RoundMike Miller10302533%
20021st RoundPaul Pierce8302527%
20021st RoundPeja Stojakovic20302567%
20021st RoundQuentin Richardson14302547%
20021st RoundRay Allen14302547%
20021st RoundSteve Nash15302550%
20021st RoundSteve Smith8302527%
20021st RoundWesley Person21302570%
2002FinalsPeja Stojakovic19302563%
2002FinalsSteve Nash18302560%
2002FinalsWesley Person19302563%
20031st RoundAntoine Walker7302523%
20031st RoundBrent Barry19302563%
20031st RoundDavid Wesley12302540%
20031st RoundPat Garrity13302543%
20031st RoundPeja Stojakovic19302563%
20031st RoundWesley Person14302547%
2003FinalsBrent Barry17302557%
2003FinalsPeja Stojakovic20302567%
2003FinalsWesley Person20302567%
2003Finals-OvertimePeja Stojakovic22302573%
2003Finals-OvertimeWesley Person16302553%
20041st RoundChauncey Billups12302540%
20041st RoundCuttino Mobley13302543%
20041st RoundKyle Korver19302563%
20041st RoundPeja Stojakovic21302570%
20041st RoundRashard Lewis16302553%
20041st RoundVoshon Lenard18302560%
2004FinalsKyle Korver15302550%
2004FinalsPeja Stojakovic16302553%
2004FinalsVoshon Lenard18302560%
20051st RoundJoe Johnson8302527%
20051st RoundKyle Korver14302547%
20051st RoundQuentin Richardson14302547%
20051st RoundRay Allen13302543%
20051st RoundVladimir Radmanovic6302520%
20051st RoundVoshon Lenard17302557%
2005FinalsKyle Korver18302560%
2005FinalsQuentin Richardson19302563%
2005FinalsVoshon Lenard17302557%
20061st RoundChauncey Billups12302540%
20061st RoundDirk Nowitzki14302547%
20061st RoundGilbert Arenas14302547%
20061st RoundJason Terry13302543%
20061st RoundQuentin Richardson12302540%
20061st RoundRay Allen19302563%
2006FinalsDirk Nowitzki18302560%
2006FinalsGilbert Arenas16302553%
2006FinalsRay Allen14302547%
20071st RoundDamon Jones15302550%
20071st RoundDirk Nowitzki20302567%
20071st RoundGilbert Arenas23302577%
20071st RoundJason Kapono19302563%
20071st RoundJason Terry10302533%
20071st RoundMike Miller18302560%
2007FinalsDirk Nowitzki9302530%
2007FinalsGilbert Arenas17302557%
2007FinalsJason Kapono24302580%
20081st RoundDaniel Gibson17302557%
20081st RoundDirk Nowitzki17302557%
20081st RoundJason Kapono20302567%
20081st RoundPeja Stojakovic15302550%
20081st RoundRichard Hamilton14302547%
20081st RoundSteve Nash9302530%
2008FinalsDaniel Gibson17302557%
2008FinalsDirk Nowitzki14302547%
2008FinalsJason Kapono24302580%
20091st RoundDaequan Cook18302560%
20091st RoundDanny Granger13302543%
20091st RoundJason Kapono16302553%
20091st RoundMike Bibby14302547%
20091st RoundRashard Lewis17302557%
20091st RoundRoger Mason13302543%
2009FinalsDaequan Cook15302550%
2009FinalsJason Kapono14302547%
2009FinalsRashard Lewis15302550%
2009Finals-OvertimeDaequan Cook19302563%
2009Finals-OvertimeRashard Lewis7302523%
20101st RoundChanning Frye15302550%
20101st RoundChauncey Billups17302557%
20101st RoundDaequan Cook15302550%
20101st RoundDanilo Gallinari15302550%
20101st RoundPaul Pierce17302557%
20101st RoundStephen Curry18302560%
2010FinalsChauncey Billups14302547%
2010FinalsPaul Pierce20302567%
2010FinalsStephen Curry17302557%
20111st RoundDaniel Gibson7302523%
20111st RoundDorell Wright11302537%
20111st RoundJames Jones16302553%
20111st RoundKevin Durant6302520%
20111st RoundPaul Pierce12302540%
20111st RoundRay Allen20302567%
2011FinalsJames Jones20302567%
2011FinalsPaul Pierce18302560%
2011FinalsRay Allen15302550%
20121st RoundAnthony Morrow14302547%
20121st RoundJames Jones22302573%
20121st RoundKevin Durant20302567%
20121st RoundKevin Love18302560%
20121st RoundMario Chalmers18302560%
20121st RoundRyan Anderson17302557%
2012FinalsJames Jones12302540%
2012FinalsKevin Durant16302553%
2012FinalsKevin Love16302553%
2012Finals-OvertimeKevin Durant16302553%
2012Finals-OvertimeKevin Love17302557%
20131st RoundKyrie Irving18302560%
20131st RoundMatt Bonner19302563%
20131st RoundPaul George10302533%
20131st RoundRyan Anderson18302560%
20131st RoundStephen Curry17302557%
20131st RoundSteve Novak17302557%
2013FinalsKyrie Irving23302577%
2013FinalsMatt Bonner20302567%
20141st RoundArron Afflalo15302550%
20141st RoundBradley Beal21302570%
20141st RoundDamian Lillard18302560%
20141st RoundJoe Johnson11302537%
20141st RoundKevin Love16302553%
20141st RoundKyrie Irving17302557%
20141st RoundMarco Belinelli19302563%
20141st RoundStephen Curry16302553%
2014FinalsBradley Beal19302563%
2014FinalsMarco Belinelli19302563%
2014Finals-OvertimeBradley Beal18302560%
2014Finals-OvertimeMarco Belinelli24302580%
20151st RoundJames Harden15342544%
20151st RoundJJ Redick18342553%
20151st RoundKlay Thompson24342571%
20151st RoundKyle Korver18342553%
20151st RoundKyrie Irving23342568%
20151st RoundMarco Belinelli18342553%
20151st RoundStephen Curry23342568%
20151st RoundWes Matthews22342565%
2015FinalsKlay Thompson14342541%
2015FinalsKyrie Irving17342550%
2015FinalsStephen Curry27342579%
20161st RoundCJ McCollum14342541%
20161st RoundDevin Booker20342559%
20161st RoundJames Harden20342559%
20161st RoundJJ Redick20342559%
20161st RoundKhris Middleton13342538%
20161st RoundKlay Thompson22342565%
20161st RoundKyle Lowry15342544%
20161st RoundStephen Curry21342562%
2016FinalsDevin Booker16342547%
2016FinalsKlay Thompson27342579%
2016FinalsStephen Curry23342568%
20171st RoundCJ McCollum10342529%
20171st RoundEric Gordon25342574%
20171st RoundKemba Walker19342556%
20171st RoundKlay Thompson18342553%
20171st RoundKyle Lowry9342526%
20171st RoundKyrie Irving20342559%
20171st RoundNick Young18342553%
20171st RoundWes Matthews11342532%
2017FinalsEric Gordon20342559%
2017FinalsKemba Walker17342550%
2017FinalsKyrie Irving20342559%
2017Finals-OvertimeEric Gordon21342562%
2017Finals-OvertimeKyrie Irving18342553%
20181st RoundBradley Beal15342544%
20181st RoundDevin Booker19342556%
20181st RoundEric Gordon12342535%
20181st RoundKlay Thompson19342556%
20181st RoundKyle Lowry11342532%
20181st RoundPaul George9342526%
20181st RoundTobias Harris18342553%
20181st RoundWayne Ellington17342550%
2018FinalsDevin Booker28342582%
2018FinalsKlay Thompson25342574%
2018FinalsTobias Harris17342550%
20191st RoundBuddy Hield26342576%
20191st RoundDanny Green23342568%
20191st RoundDevin Booker23342568%
20191st RoundDirk Nowitzki17342550%
20191st RoundJoe Harris25342574%
20191st RoundKemba Walker15342544%
20191st RoundKhris Middleton11342532%
20191st RoundStephen Curry27342579%
2019FinalsBuddy Hield19342556%
2019FinalsJoe Harris26342576%
2019FinalsStephen Curry24342571%