The Predictive Power of the NBA Draft Combine: A Statistical Analysis

Does good performance in the NBA Draft Combine actually predict for better players? Read on to find out.

Wilson Wang
6 min readDec 3, 2021
Photo by Joel Muniz on Unsplash

I’ve always wondered how NBA teams select their rookies each year. A large part of the evaluation process is the NBA draft combine, where rookies perform a series of athletic tests: sprint speed, wingspan/height/weight measurements, vertical jump height, and more. But is good performance on these tests actually correlated with better players? Stephen Curry doesn’t grade highly on any of these tests, but Curry is one of the greatest NBA players of all time. To settle this question, I did a statistical analysis of all NBA rookies from 2000 onwards to determine how much predictive power each draft combine test has on a player’s impact.

To do this analysis, I first decided on a measure of player impact. This is harder than it looks — basketball is a complicated game, so there’s no single stat (points, rebounds, assists, etc.) that encapsulates how good/bad a player is. You also have to factor in teammates. For example, if you’re on a team with good players, your shots tend to be easier, so your scoring stats will be inflated. Fortunately, some research has already been done for this problem (determining a player’s true impact). One approach by fivethirtyeight.com gives us a single number, the so-called “Raptor WAR (wins-above-replacement)”, that describes a player’s positive/negative impact for a given year.

Because different players have different career lengths, for each player we can add up their yearly WARs to get a career WAR number, and use that for our analysis. However, I think it makes more sense to divide career WAR by career year length and use the result, which is average yearly WAR. Average yearly WAR has an advantage over career WAR: it shrinks outliers (Jordan, Lebron, etc.), making graphs easier to visualize.

With our player impact metric settled, we next examine the draft combine data (fetched using nba_api). The draft combine has many tests, but some of these tests have sparse data, and some others were only introduced recently. Because of this, we’ll only look at tests that most of the players have done. These tests are: weight, wingspan, height, vertical leap, lane agility, three quarter court sprint speed, and bench press. Wingspan and weight are highly correlated with height, so instead of considering all three tests separately, we’ll consider two ratios instead: wingspan/height (call this the “wingspan ratio”) and weight/height (call this the “weight ratio”). So the final tests we consider are: wingspan ratio, weight ratio, vertical leap, lane agility, three quarter court sprint speed, and bench press.

For each of these tests, we’ll do a regression of average yearly Raptor WAR (y) on the test result (x). Here are the results:

Wingspan ratio:

Image by Author.

LinregressResult(slope=1.4505606641786846, intercept=-0.6640345114855697, rvalue=0.02201261320267329, pvalue=0.26116096329951916, stderr=2.2663693803869074, intercept_stderr=2.410710602804869)

The regression shows a slightly positive correlation (positive slope and r-squared). The p-value is high (0.26). At best, high wingspan ratio is weak positive predictor of player impact.

Weight Ratio:

Image by Author.

LinregressResult(slope=-0.12476455820543673, intercept=1.2238449813067072, rvalue=-0.016623216435407845, pvalue=0.6852875191609613, stderr=0.2584653760980683, intercept_stderr=0.7183219229641925)

The regression shows a slight negative correlation (negative slope and r-squared). The p-value is extremely high (0.68). Therefore, we can’t say much — weight ratio is an unreliable predictor of player impact.

Vertical Jump:

Image by Author.

LinregressResult(slope=0.025410184318041883, intercept=-0.01803282552779295, rvalue=0.050504460213941865, pvalue=0.0835324606899612, stderr=0.01837268789009219, intercept_stderr=0.6435772754658553)

From the graph, there is clearly a positive association between jump height and yearly WAR. The p-value is low (0.08 is quite strong). Vertical jump is the best predictor we’ve found so far.

Lane Agility:

Image by Author.

LinregressResult(slope=-0.1813322482449946, intercept=2.926403889772524, rvalue=-0.056535915063362786, pvalue=0.06207153798927837, stderr=0.11779672592120535, intercept_stderr=1.3379238156119606)

The regression result has a strong p-value (0.06) and a negative slope, which makes sense (a lower lane agility test time means you are more agile, which should be good for basketball).

Sprint Speed:

Image by Author.

LinregressResult(slope=-1.002036393302773, intercept=4.154726620467415, rvalue=-0.07114669583732541, pvalue=0.02604234327523524, stderr=0.5150392573876919, intercept_stderr=1.6888587419401393)

This regression has the lowest (strongest) p-value so far, at 0.02. We can be pretty confident that sprint speed (faster is better) is a good predictor of basketball impact.

Bench Press:

Image by Author.

LinregressResult(slope=-0.010679660098798557, intercept=1.0443483843217973, rvalue=-0.030006371262976516, pvalue=0.7811256813221414, stderr=0.013754198562327093, intercept_stderr=0.1587615089384421)

Both from the graph and the regression result (super high p-value), it’s pretty clear bench press is not a useful predictor.

Let’s summarize the results:

  • Useless predictors: bench press, weight ratio.
  • Might be useful: wingspan ratio.
  • Strong: vertical jump, lane agility, sprint speed.

If I’m a NBA general manager at the draft combine, I now know what I should focus on.

We aren’t done yet — there’s a more specific case I want to look at next. In the NBA draft, there is usually a consensus among scouts on which players are lottery picks — i.e. people already have an idea which players are good. Let’s say I’m a NBA general manager with the #1 pick. My job is to distinguish among this preidentified set of good players and pick the best one. How should I do that?

We’re going to do the same regressions as before, only this time we’ll restrict the player dataset to be only good players. I’ve defined “good player” as someone who has an average yearly Raptor WAR in the top 30% of players. Here are results:

Image by Author.

Wingspan Ratio:

LinregressResult(slope=6.068342634118329, intercept=-3.4689658415194615, rvalue=0.07951196101462614, pvalue=0.10285134938111248, stderr=4.782997711365175, intercept_stderr=5.087777206093004)

Weight Ratio:

LinregressResult(slope=0.4800493186086068, intercept=1.6724300469922453, rvalue=0.05191666528073808, pvalue=0.2050010043413717, stderr=0.5816915061826724, intercept_stderr=1.6032815614159162)

Vertical Jump:

LinregressResult(slope=0.019312020853139787, intercept=2.2761920431434874, rvalue=0.030920844989632705, pvalue=0.32227746537588864, stderr=0.041803844450607135, intercept_stderr=1.4803362481439737)

Lane Agility:

LinregressResult(slope=-0.07377349619464574, intercept=3.7896491679309876, rvalue=-0.01865877738779306, pvalue=0.3908542739893831, stderr=0.26591658970960347, intercept_stderr=3.0051956892346263)

Sprint Speed:

LinregressResult(slope=0.4167952820299596, intercept=1.6094556399237967, rvalue=0.02451426755204889, pvalue=0.6424062719439474, stderr=1.1407667429279802, intercept_stderr=3.7162171315599455)

Bench Press:

LinregressResult(slope=-0.004948830771720042, intercept=3.1532629201745275, rvalue=-0.01144547364075338, pvalue=0.5642157706492331, stderr=0.030572108192200118, intercept_stderr=0.34171855953015495)

Let’s summarize these results (for good players):

  • Useless predictors: bench press, sprint speed, lane agility, vertical jump,
  • Might be useful: weight ratio.
  • Strong: wingspan ratio.

The interesting thing about these results (for good players) is their similarities/differences compared to the results for all players:

  • Bench press is useless in both cases.
  • Weight ratio is useless for all players, but may be useful for good players (and the sign of the slope is positive, meaning heavier players might be better)
  • Wingspan ratio may be useful for all players, and is a strong predictor for good players
  • Most notably, vertical jump, lane agility, and sprint speed are strong predictors for all players, but useless for good players.

Overall, what conclusions can we draw? First, the NBA draft combine is not useless. Some tests at the combine do predict future player impact. With that being said, not all the tests are useful. Bench press in particular seems to have no predictive power at all. Also, there is a huge difference in the predictive tests for all players vs. good players. Why a particular test is predictive for all players vs. good players (or vice versa) is hard to explain without deep basketball knowledge, so we won’t go into that here.

In the future, I’ll continue this analysis by position group, and try to find more nuanced predictors that aren’t just singular draft combine tests. If you have any questions/comments/suggestions, please feel free to leave a comment! Thanks for reading.

--

--

Wilson Wang
Wilson Wang

Written by Wilson Wang

Amazon Engineer. I was into data before it was big.

No responses yet