Existing TS% Metrics in the NBA

In the NBA, efficiency metrics like True Shooting Percentage (TS%), Relative True Shooting Percentage (rTS), and True Shooting Plus (TS+) have been ubiquitous for evaluating player performance. However, these metrics have limitations that a Z-score normalized metric can address.

But before I get to these limitations, a brief review for what these metrics set to achieve -

True Shooting Percentage (TS%):

TS% is a shooting efficiency metric that accounts for field goals, three-point field goals, and free throws.

Limitations

  • TS% is a raw percentage and does not account for the context within the league or the variability among players. Nor does it account for league-wide growth
  • It treats all players equally without considering how they compare to the league average.

Relative True Shooting Percentage (rTS%):

rTS% measures a player’s TS% relative to the league average TS%.

Limitations

  • While it contextualizes a player’s performance, it does not account for the distribution or variability of TS% within the league.
  • It can be influenced by extreme values (outliers), skewing the perception of a player’s efficiency based on outliers.
  • Harder to interpret due to the lack of a normalized metric.

True Shooting Plus (TS+):

TS+ is an index where 100 represents the league average, and values above or below 100 indicate better or worse performance, respectively. It is widely considered the gold standard for comparing efficiency metrics across NBA eras, although it has similar limitations to the rTS%, it does normalize to some extent.

Creating the Z-score normalized TS%

Z-score normalization converts individual data points into a measure of standard deviations away from the mean which accounts for the distribution of scores and the variability.

Z-scores are a superior method for normalizing efficiency metrics in the NBA due to their ability to provide contextual relevance, robustness to outliers, enhanced comparability across eras, and clearer interpretation. While traditional metrics like TS%, rTS, and TS+ are valuable, they lack the depth and robustness that Z-scores offer. By adopting Z-score normalization, we can achieve a much more accurate and comprehensive understanding of player performance across eras with ease of interpretation.

To understand the process behind the estimation of the metric, here’s a stepwise list -

  1. All TS% scores filtered ordered and the top 90% based on the possession’s played were filtered for further analysis to remove smaller sample sizes and extreme outliers.

  2. All filtered TS% scores were scaled and centred based on the gaussian(normal) distribution. To examine how well the scores distributed, Shapiro-Wilk test for normality was conducted across 32 seasons and was significant at p<0.001. (NOTE: Shapiro-Wilk is fairly flawed but still a good rudimentary judge for examining the distribution).

  3. All the Z-scores were converted back to percentile norms for ease of comparison using the normal distribution. You can refer to the probabilities of a standard normal distribution to get a better idea for the conversion.

  4. The final output was a new zTS% metric that allows easier comparison across eras.

How is it an improvement?

  • Robustness to Outliers:
    • Outliers are extreme values that can disproportionately affect statistical analyses.
    • Z-scores reduce the impact of outliers by contextualizing each player’s performance within the league’s overall variability. Extreme values have less influence on the mean and standard deviation compared to how they would skew simple averages or ratios.
  • Enhanced Interpretability:
    • Z-scores standardize the scale of measurement, making it easier to compare performances across different seasons or contexts. A Z-score of 1.0, for example, consistently indicates one standard deviation above the mean, regardless of the underlying distribution’s specifics.
  • Translating Z-Scores into Percentiles:
    • By converting Z-scores to percentiles, we provide an intuitive measure of performance. A player with a zTS% of 85% is more easily understood as being in the top 15% of efficient players in the league.

Kobe, an inefficient chucker or a product of his era?

The only thing left was to put this new method to the test using the most controversial player of the modern era - Kobe Bryant. Kobe, who’s often considered an inefficient player compared to several stars.

PLAYER_NAME NICKNAME GP MIN POSS year TS_PCT TS_PCT_Z TS_PERC
Kobe Bryant Kobe 71 15.5 2211 1996-97 0.54 0.37 64.48
Kobe Bryant Kobe 79 26.1 4157 1997-98 0.55 0.73 76.79
Kobe Bryant Kobe 50 37.9 3676 1998-99 0.55 0.83 79.61
Kobe Bryant Kobe 66 38.2 5047 1999-00 0.55 0.70 75.87
Kobe Bryant Kobe 68 41.0 5460 2000-01 0.55 0.91 81.93
Kobe Bryant Kobe 80 38.3 5991 2001-02 0.54 0.72 76.47
Kobe Bryant Kobe 82 41.5 6699 2002-03 0.55 0.88 81.00
Kobe Bryant Kobe 65 37.7 4853 2003-04 0.55 0.94 82.72
Kobe Bryant Kobe 66 40.8 5196 2004-05 0.56 0.90 81.63
Kobe Bryant Kobe 80 41.0 6371 2005-06 0.56 0.74 77.06
Kobe Bryant Kobe 77 40.8 6263 2006-07 0.58 0.94 82.65
Kobe Bryant Kobe 82 38.9 6488 2007-08 0.58 0.92 82.04
Kobe Bryant Kobe 82 36.1 5911 2008-09 0.56 0.59 72.31
Kobe Bryant Kobe 73 38.8 5570 2009-10 0.54 0.23 59.12
Kobe Bryant Kobe 82 33.9 5361 2010-11 0.55 0.33 62.82
Kobe Bryant Kobe 58 38.5 4332 2011-12 0.53 0.21 58.42
Kobe Bryant Kobe 78 38.6 6020 2012-13 0.57 0.85 80.23
Kobe Bryant Kobe 35 34.5 2434 2014-15 0.48 -0.94 17.42
Kobe Bryant Kobe 66 28.2 3820 2015-16 0.47 -1.34 9.07

Based on the above, you can say that Kobe has always been around 80th percentile in terms of league efficiency across most of his prime, or you can simply state that he was more efficient than 80% of the league during his prime.

Similarly for Lebron -

PLAYER_NAME NICKNAME GP MIN POSS year TS_PCT TS_PCT_Z TS_PERC
LeBron James LeBron 79 39.6 6053 2003-04 0.49 -0.36 35.85
LeBron James LeBron 80 42.3 6423 2004-05 0.55 0.72 76.45
LeBron James LeBron 79 42.5 6404 2005-06 0.57 0.92 82.08
LeBron James LeBron 78 40.9 6124 2006-07 0.55 0.40 65.67
LeBron James LeBron 75 40.4 5831 2007-08 0.57 0.77 78.06
LeBron James LeBron 81 37.7 5769 2008-09 0.59 1.18 88.17
LeBron James LeBron 76 39.0 5728 2009-10 0.60 1.40 91.94
LeBron James LeBron 79 38.8 5916 2010-11 0.59 1.23 89.03
LeBron James LeBron 62 37.5 4533 2011-12 0.60 1.60 94.53
LeBron James LeBron 76 37.9 5549 2012-13 0.64 2.16 98.48
LeBron James LeBron 77 37.7 5634 2013-14 0.65 2.28 98.86
LeBron James LeBron 69 36.1 4889 2014-15 0.58 0.98 83.66
LeBron James LeBron 76 35.6 5344 2015-16 0.59 1.10 86.44
LeBron James LeBron 74 37.8 5655 2016-17 0.62 1.48 93.11
LeBron James LeBron 82 36.9 6250 2017-18 0.62 1.41 92.11
LeBron James LeBron 55 35.2 4218 2018-19 0.59 0.70 75.76
LeBron James LeBron 67 34.6 4910 2019-20 0.58 0.32 62.68
LeBron James LeBron 45 33.4 3145 2020-21 0.60 0.67 74.88
LeBron James LeBron 56 37.2 4380 2021-22 0.62 1.04 85.11

You can see that he’s hovered around the 90th percentile during his prime and that number jumps up to 98th percentile during 2012-13 and 2013-14.

Finally, for my favourite player Nikola Jokic -

PLAYER_NAME NICKNAME GP MIN POSS year TS_PCT TS_PCT_Z TS_PERC
Nikola Jokic Nikola 80 21.7 3488 2015-16 0.58 0.98 83.58
Nikola Jokic Nikola 73 27.9 4264 2016-17 0.64 1.90 97.10
Nikola Jokic Nikola 75 32.6 4983 2017-18 0.60 1.05 85.43
Nikola Jokic Nikola 80 31.3 5140 2018-19 0.59 0.72 76.37
Nikola Jokic Nikola 73 32.0 4733 2019-20 0.60 0.80 78.91
Nikola Jokic Nikola 72 34.6 5084 2020-21 0.65 1.47 92.93
Nikola Jokic Nikola 74 33.5 5136 2021-22 0.66 1.77 96.18
Nikola Jokic Nikola 69 33.7 4873 2022-23 0.70 2.14 98.40
Nikola Jokic Nikola 79 34.6 5599 2023-24 0.65 1.42 92.17

He’s an efficiency god, with multiple seasons in the 90th percentile.

How to Access the data

Unfortunately, I am still in the process of creating the app so all the data is publicly available but in the meantime if you’re interested in data for a single player, I created a hacky solution for you - https://codepen.io/Gareth-Bale-the-bashful/pen/qBzZejW

  • PonkMcSquigglesB
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 months ago

    Something that’s always bothered me about rTS% is that while correcting for eras having different scoring environments is a good idea, at least some of the recent spike in shooting percentages is due to improved decision making, right?

    If two players have the same rTS%, but the first guy did it back when his competition was regularly shooting contested 20 footers, isn’t the second guy still marginally better?