Predicting NBA Salaries Part 2

In Part 1 of this series, I presented my NBA salary model which explains how salaries are allocated among NBA players.  As a refresher for those who skimmed Part 1, below is a summary of the variables I include to in the model to explain salaries.  Check out Part 1 if you want to understand these variables in more detail.

  • Numbers of years played in the NBA through the 2015-16 season
  • Minutes played per game during the 2015-16 regular season
  • Points scored per 36 minutes during the 2015-16 regular season
  • Career All-NBA awards through the 2015-16 season
  • Offensive win shares during the 2015-16 regular season
  • Defensive win shares during the 2015-16 regular season

To improve the predictive power and the insights to glean from this analysis, I adjusted the salary data to model how salaries would look if all players were unrestricted free agents prior to the 2016-17 season and signed one year deals for the 2016-17 season.  40% of players signed new deals before the 2016-17 season so this isn’t a radical adjustment.  This model strips away all of the provisions (except the salary cap) in the collective bargaining agreement that regulate how players earn their salaries.


I ran a linear regression on salary using the variables presented above to understand how each variable impacts the salaries allocated to NBA players during the 2016-17 season.  If you want the 8 year old interpretation of this, or the 5 year old version as Michael Scott requested, this means I performed voodoo magic and shook my magic 8 ball to conjure the effect of each variable, ignoring all of the other variables.  Below are the results of this model with the coefficients on each variable.

For the statistically-inclined folks, as shown by the p-values, note that all independent variable are statistically significant at the 90% confidence level except Career All-NBA awards through the 2015-16 season, which doesn’t mean a lot given the theoretical value of the Career All-NBA variable.

In Part 1, I presented this equation:

ln(salary) = a + b*years in league + c*years in league2 + d*minutes per game + e*points per 36 min + f*career All-NBA + g*offensive win shares + h*defensive win shares + e

The letters (a through h) are placeholders for the coefficients.  After including the coefficients, this equation now looks like this:

Expected ln(salary) = 13.15 + 0.19*years in league – 0.01*years in league2 + 0.05*minutes per game + 0.02*points per 36 min + 0.05*career All-NBA + 0.05*offensive win shares + 0.19*defensive win shares +0.5*e2

To put it roughly, the larger the coefficient (negative or positive), the greater the effect of that variable on salary.  This is important for drilling down to understand which variable(s) cause a player to have a higher predicted salary than another player.

However, this could be misleading in interpreting the effect of one variable compared to another variable.  For example, on average, offensive win shares are 12% larger than defensive win shares.  Since each coefficient is multiplied by the actual value (as shown in the equation above), defensive win shares are not 3.9 times larger than offensive win shares but actually have a 3.4 times larger effect on salary than offensive win shares.

Let’s run through an example by comparing LeBron James, who the model shows should be the highest paid player, and Stephen Curry, who the model thinks should be the second highest paid player.  For purposes of this demonstration, let’s ignore the intercept term and the error term since will be the same for all players.

Years of Experience

Through the 2015-16 season, Steph had played 7 years in the NBA which increased his expected salary by 0.85 before solving for the natural logarithm (I’m calling these “points”).  In comparison, LeBron had played 13 years which increased his expected salary by 0.79 points.  Both 7 years and 13 years are 3 years away from the peak of 10 years (see below).  LeBron is on the wrong side of the experience curve, especially since the curve drops more quickly than it increases.  This is a really interesting insight.  Below is the experience curve, which I originally presented in Part 1, with the percent change in salary imposed over the curve.

This curve is indexed to Year 10 so the values at Years 7 and 13, 0.93 and 0.87, will not match the values I showed above.  On average, NBA players receive salary increases through their Year 10 season.  After Year 10, salaries diminish as body parts begin to sag, wrinkles develop, and phrases like, I’m getting too old for this s**t, become more commonplace.

Let’s ponder the shape of this curve for a minute.  The curve suggests that players earn really high salary increases in their early years.  I would have loved to receive an 89.0% increase after my first year of work.  By the way, I would listen to offers that include 41.2%, 25.1%, or 16.7% raise also.

The high increases in the early year reflect the effect of undrafted players.  Drafted rookies receive a structured salary that includes structured salary increases.  Undrafted players, however, are free from the shackles of the rookie wage scale.  Unfortunately, they usually pay for their freedom with 10 day contracts, minimum salaries, and showing up on the Bachelorette after their career in the Bulgarian league flamed out.

For the undrafted rookie who makes it to Year 2 (or Year 3), salaries will increase dramatically.  Take Yogi Ferrell, for example.  As an undrafted rookie this past year, Yogi bounced between the Nets and the D-League for a few months until latching on with the Mavericks in late January via a 10 day contract.  At the expiration of that 10 day contract, Yogi played well enough to start for the blatantly tanking Mavericks and subsequently signed a contract for the rest of the season with a team option for the next season.  Between the Nets and Mavericks, Yogi earned $300k during his rookie season and is set to make $1.3 million during the 2017-18 season, a 323% salary increase.  Examples like Yogi’s exacerbate the difference between the salaries of rookies and Year 2 or Year 3 players.  While drafted rookie have the benefit of higher salaries, they will never see that large of a salary increase.

What about the other side of the curve?  Why do players’ salaries start to decrease so dramatically as their careers wind down?  Admittedly, the population of players who have played 10 or more years is very small.  Since I only included players who played in both the 2015-16 and 2016-17 seasons, the retirement, or extermination, of players like Tim Duncan, Kobe Bryant, and Kevin Garnett further decreased the population.  When NBA players are over the hill, their salaries decrease.  It’s hard to argue with this reasoning.  Some guys like Kobe and Dirk Nowitzki receive sweetheart deals but I think those are outliers.

Minutes Per Game

After that long detour, let’s go back to the Steph vs. LeBron comparison.  Steph played 34.2 minutes per game which increased his predicted salary by 1.64 points.  LeBron, on the other hand, played slightly more minutes per game, 35.6, and slightly higher increase of 1.71 points.

This isn’t a horse race, a track meet, or a reviewed offside call in the NHL so it’s fair to call it a dead heat and leave it at that.  Teams want their best players playing as many minutes as possible to maximize their contributions on the court.  By using minutes per game rather than total minutes per 82 games, this variable accounts for unplanned injuries, Spursian resting, and the resting of veterans for tanking purposes.

Points Per 36 Minutes

Steph scored 31.7 points per 36 minutes which increased his predicted salary by 0.61 points, compared to 25.5 points per 36 minutes and an increase of 0.49 points for LeBron.  As I discussed in Part 1, points per 36 minutes is a substitute for offensive usage.  Steph had an unbelievable MVP season, greatly due to his shooting and, in extension, his scoring ability.

Career All-NBA Points

Steph’s presence on any of the three All-NBA teams throughout his 7 year career increased his expected salary by 0.13 points which pales in comparison to the increase to LeBron’s of 0.54 points.  This category does not have a huge effect on the model, given the low coefficient and low All-NBA point totals.  If the coefficient was larger, LeBron’s salary would break the model.  Through the 2015-16 season (his thirteenth in the league), LeBron appeared on 10 first team All-NBA teams and 2 second All-NBA teams.  That is, other than his rookie year, he was deemed one of the 10 best players in the NBA every single year and one of the top 5 in almost all of those years.  No active player even comes to that.  The next closest to LeBron are Kevin Durant and Superman himself, Dwight Howard, with 5 first team All-NBA selections.  Through the current season, 2016-17, only Karl Malone and Kobe match LeBron’s 11 first team All-NBA awards.  Oh and did I mention he’s only 32?

Offensive Win Shares

Now that I’ve salivated over LeBron’s impressive consistency throughout his career, let’s talk about a category where Steph blew away LeBron.  LeBron’s 9.6 offensive win shares was still good enough for fifth in the NBA in 2015-16 and increased his expected salary by 0.48 points, compared to 0.69 for Steph.  LeBron’s was fifth best in 2015-16, so it’s not like he was some slouch.  It’s just that Steph’s 13.6 offensive win shares were just that good.  It’s the 31st best offensive win shares season ever and the third best season among active players.  Who bested him?  Surprise, surprise it’s LeBron in 2012-13 and Steph’s current teammate, Kevin Durant, a year later.

Defensive Win Shares

Surprisingly enough, Steph also beat LeBron in defensive win shares during the 2015-16 season.  However, I don’t read too much into this as it’s only by 0.02 win shares.  My surprise is fueled by Steph’s undeserved reputation as a lousy defender.  In actuality, Steph was tied for 10th in defensive win shares but benefitted from playing with wing defenders such as Andre Iguodala, Draymond Green, and Klay Thompson, making it easier to hide him on defense.  LeBron, tied for 12th in defensive win shares, to his credit, usually does take harder defensive assignments as necessary, which may notch him down the list.

Given the excitement over the NBA Finals, I’m using a Warriors vs. Cavaliers theme for these posts.  Stay tuned for Part 3 where I will discuss the real world implications of this model, including what the total salaries of the Cavaliers and Warriors would have looked like this past season under this model.

Leave a Reply

Your email address will not be published.