One of my favorite topics when it comes to sports is player comparison. Was Barry Bonds a better hitter than Babe Ruth? Was Jim Brown the best running back of all time? Who was the most efficient scorer in basketball history?

In a sport such as baseball, questions similar to those above are easier to answer thanks to the detailed statistical history of the game.

But in basketball, we are left with a very incomplete statistical record prior to the mid-1970s. The NBA did not record offensive rebounds, steals, or blocks until the 1973-74 season, and player turnovers were not recorded until the 1977-78 season.*

** It should be noted that the ABA was ahead of the game in this regard. Player turnovers are available for all ABA seasons; offensive rebounds are available for all players starting with the 1968-69 season; and steals and blocks are available for all players starting with the 1973-74 season.*

Since most of the advanced player evaluation tools require the use of these statistics, it is difficult to compare an Oscar Robertson to a Magic Johnson.

One statistic that has become popular for evaluating a player’s scoring efficiency is his True Shooting Percentage (TS%). The formula for TS% is rather simple:

TS% = PTS / (2 × (FGA + 0.44 × FTA))

This is essentially an estimate of points per scoring attempt, with the “2” in the denominator forcing the value to have a scale similar to that of field goal percentage.

One of the nice things about TS% is that the statistics required to calculate it are available for all NBA seasons, allowing for comparisons across eras. Let’s start by looking at the top ten single-season true shooting percentages*:

Rk | Name | Season | TS% |
---|---|---|---|

1 | Artis Gilmore | 1981-82 | .702 |

2 | Artis Gilmore | 1980-81 | .700 |

3 | Tyson Chandler | 2010-11 | .697 |

4 | Wilt Chamberlain | 1972-73 | .689 |

5 | Dave Twardzik | 1976-77 | .689 |

6 | Tim Legler | 1995-96 | .688 |

7 | Darryl Dawkins | 1985-86 | .680 |

8 | Artis Gilmore | 1984-85 | .680 |

9 | Cedric Maxwell | 1979-80 | .679 |

10 | James Donaldson | 1984-85 | .679 |

** Minimum 500 scoring attempts (FGA + 0.44 × FTA).*

The list is dominated by post players, with Dave Twardzik and Tim Legler being the lone guards to show up on the list.

Artis Gilmore — who has three of the top eight seasons — was not a great free throw shooter, shooting .713 from the line for his NBA career. But Gilmore was incredibly efficient from the floor, with a career field goal percentage of .599, the highest in NBA history.

One of the problems with looking at raw TS% is the bias toward modern players. Of the top 100 seasons, 94 occurred since the 1979-80 season — thanks in large part to the 3-point shot — and none prior to the 1966-67 season.

One way to adjust for this is to take into account the league average TS%. A simple adjustment is to divide each player’s TS% by the league average TS%:

TS%+ = 100 × (TS% / (league TS%))

Players with a TS% above the league average will have a score above 100, while players with a TS% below the league average will have a score below 100. The top ten seasons after making this adjustment appear below*:

Rk | Name | Season | TS%+ |
---|---|---|---|

1 | Bob Feerick | 1946-47 | 138.8 |

2 | Wilt Chamberlain | 1972-73 | 138.4 |

3 | Dave Twardzik | 1976-77 | 135.0 |

4 | Buddy Jeannette | 1947-48 | 134.7 |

5 | Alex Groza | 1949-50 | 133.8 |

6 | Arnie Johnson | 1950-51 | 131.9 |

7 | Artis Gilmore | 1980-81 | 130.9 |

8 | Artis Gilmore | 1981-82 | 130.4 |

9 | Jake Pelkington | 1948-49 | 130.3 |

10 | Ed Sadowski | 1946-47 | 129.8 |

** Minimum 500 scoring attempts (FGA + 0.44 × FTA).*

It is obvious after glancing at this list that we have replaced a bias for modern players with a bias for players from the 1940s and 1950s. In fact, 33 of the top 100 seasons occurred prior to the 1959-60 season.

Why did this happen? A statistic called the coefficient of variation (CV) measures the variability around the mean of a distribution. It is calculated as follows:

CV = 100 × ((standard deviation) / mean)

For example, a CV of 10.0 means that the value of the standard deviation (SD) is 10 percent of the value of the mean.

The CV allows us to compare the variation of distributions that have different mean values. The greater the CV, the greater the variability around the mean. The plot below illustrates how the CV of the distribution of TS% has changed over time*:

** Technical note: To calculate the SD of TS%, I weighted each player’s TS% by his scoring attempts.*

As the plot shows, variability around the mean TS% steadily decreased until the 1970s. In other words, extreme TS% performances relative to the mean were much more likely in the 1940s and 1950s than they are today. We can account for this by calculating a standard score (or z-score) for each player:

z = (TS% – (mean TS%)) / (SD TS%)

A z-score measures the number of SDs an observation is from the mean. Here are the top ten single-season TS% z-scores*:

Rk | Name | Season | z |
---|---|---|---|

1 | Wilt Chamberlain | 1972-73 | 4.73 |

2 | Dave Twardzik | 1976-77 | 4.10 |

3 | Artis Gilmore | 1981-82 | 3.74 |

4 | Artis Gilmore | 1980-81 | 3.65 |

5 | Tyson Chandler | 2010-11 | 3.57 |

6 | Cedric Maxwell | 1978-79 | 3.51 |

7 | Cedric Maxwell | 1979-80 | 3.38 |

8 | Tim Legler | 1995-96 | 3.37 |

9 | Wilt Chamberlain | 1966-67 | 3.35 |

10 | Dave Twardzik | 1977-78 | 3.26 |

** Minimum 500 scoring attempts (FGA + 0.44 × FTA).*

This list is very similar to the first list. But of the top 100 seasons, 69 occurred since the 1979-80 season and 12 occurred prior to the 1959-60 season. This seems reasonable to me given that among all qualifying player-seasons, 67.2 percent have occurred since the 1979-80 season and 9.1 percent occurred prior to the 1966-67 season. By using z-scores we have reduced the bias toward players from a particular era.

I also calculated a career TS% z-score for each player. To do this I calculated a z-score for each player-season, then calculated a weighted mean of these seasonal z-scores using each season’s scoring attempts as the weights. Below are the top ten career TS% z-scores*:

Rk | Name | z |
---|---|---|

1 | Artis Gilmore | 2.57 |

2 | Cedric Maxwell | 2.16 |

3 | Kenny Sears | 1.93 |

4 | Reggie Miller | 1.91 |

5 | Adrian Dantley | 1.87 |

6 | Brent Barry | 1.84 |

7 | Tyson Chandler | 1.81 |

8 | Neil Johnston | 1.81 |

9 | James Donaldson | 1.78 |

10 | John Stockton | 1.73 |

** Minimum 5000 career scoring attempts (FGA + 0.44 × FTA).*

This is an interesting list that includes players ranging from the 1950s (Neil Johnston) to players that are active today (Tyson Chandler).

One player on the list above who readers may not be familiar with is Kenny Sears. Sears was a forward for the New York Knicks and San Francisco Warriors from the 1955-56 through 1963-64 seasons.* He finished in the top ten in TS% six times, including three consecutive seasons as the league leader (1957-58 through 1959-60).

** Sears played in the competing ABL in 1962, then returned to the NBA for the 1962-63 and 1963-64 seasons.*

This list also provides further evidence of the greatness of John Stockton. Not only is Stockton the all-time leader in both assists and steals, but he was also one of the most efficient scorers in basketball history.

Let’s return to the one of the questions I asked at the beginning of this article: Who was the most efficient scorer in basketball history?

My choice would be Artis Gilmore. Gilmore has the top two single-season true shooting percentages; the third- and fourth-best single-season z-scores; and the best career z-score. He also finished in the top five in TS% in 10 of his 13 NBA seasons, including leading the league for five consecutive seasons (1980-81 through 1984-85). Gilmore can’t reasonably be considered the best scorer in basketball history, but I believe there is a compelling case that he was the most efficient.

by
You just knew that Dantley would be on this list.

Good breakdown of the applicability of TS% across the eras.

Have you considered factoring in turnovers or turnover rate to this calculation? Turnovers put a real damper on scoring opportunities. I’m sure this would also require some kind of era adjustment.

You could — and possibly should — do that, but I wanted to cover the entire history of the NBA.

Oh yeah. Forgot that TO data only goes back to the mid-70s.

The z-scoring might take care of the issue (if it is one), but the .44 value on free throws is an estimate, and I could see that estimate changing over time (and I know the rules for free throws has also changed). Is there a way to adjust the .44 per season, or is that information lost to time?

You would need the play-by-play, which unfortunately does not exist.