With the NBA recently announcing the tie-breaking procedures, we finally obtain the draft orders up to the first three spots, decided by the lottery. That is, after the first three teams are selected, the remaining eleven spots of the draft lottery are in order of tie-broken winning percentages. If the Minnesota Timberwolves and the New York Knicks both lose the lottery, then the Timberwolves get one spot higher in the draft than the Knicks.

## How Does the NBA Draft Work?

Before we begin, let’s recap how the NBA draft works. The fourteen teams that do not make the NBA playoffs are given a certain number of lottery odds. Think of 1,000 lottery balls, each with a team logo on them. The number of balls with a particular team logo is the probability of that team being selected. For instance, the worst team in the league (Brooklyn) gets 250 balls. With 250 of the 1,000 balls with the Nets logo, the Nets have a 0.250 probability of winning the first pick in the draft.

In reality, each team is given a random selection of numbers between 0000 through 9999 and four balls are drawn, each with a digit. That four number selection is drawn and the team with that combination wins the pick. In case balls outside of the 0000 to 9999 region are selected (yes, they do exist because the NBA is wonky sometimes), that collection of numbers is thrown out and the balls are re-selected. Also, if a team’s number is picked for a second or third time, that collection of numbers is also thrown out and the balls are re-selected. You can see why the hypothetical solution is easier to understand.

The standard weighting system for the recent NBA drafts, including the 2017 NBA draft is

1. Brooklyn Nets | 250 / 1000 |

2. Phoenix Suns | 199 / 1000 |

3. Los Angeles Lakers | 156 / 1000 |

4. Philadelphia 76ers | 119 / 1000 |

5. Orlando Magic | 88 / 1000 |

6. Minnesota Timberwolves | 53 / 1000 |

7. New York Knicks | 53 / 1000 |

8. Sacramento Kings | 28 / 1000 |

9. Dallas Mavericks | 17 / 1000 |

10. New Orleans Pelicans | 11 / 1000 |

11. Charlotte Hornets | 8 / 1000 |

12. Detroit Pistons | 7 / 1000 |

13. Denver Nuggets | 6 / 1000 |

14. Miami Heat | 5 / 1000 |

Note that the Timberwolves / Knicks tie-breaker is included with not only the Timberwolves being ranked ahead of the Knicks, but also the two teams having the same odds due to their tie records.

Now, once the first three teams are selected, the remaining eleven positions are placed in the order of odds. That is, say the Magic, Kings, and Mavericks are selected as numbers 1, 2, and 3. Then Brooklyn gets the fourth pick, Phoenix the 5th, Los Angeles the 6th, Philadelphia the 7th, Minnesota the 8th, and so on. This ensures that no team falls lower than three spots from their odds. That is, Brooklyn cannot be worse than fourth. Phoenix cannot be worse than fifth, and so on.

## Lottery Odds:

Given the distribution of balls above, it’s relatively straightforward to calculate the probabilities of a team getting first, second, third, and so on. Wikipedia also has the standard (non-tie-breaking) probabilities for the NBA draft lottery:

Bleacher Report presented the odds for each team getting the first pick, as well as a top three pick.In their article, they used Tankathon’s calculator to present the probabilities.

The Bleacher Report article is a little closer to the truth for the lottery odds, but they are also wrong. The reason is that they (and Tankathon) only consider one trade. The solution presented in their article for accounting other trades are to put stars and disclaimers; which actually state that the probabilities are **wrong**.

For example, the Sacramento Kings **cannot get the first pick in the draft**. But yet, they are represented as having 2.8%. That’s a huge difference. But why can’t the Kings gets the first pick in the draft? Because the Philadelphia 76ers own the rights to the Kings first draft pick under a conditional pick swap. If the Kings get the first pick, then the 76ers take the Kings’ pick and give the Kings their lower seed.

## 2017 Lottery Odds Adjustments:

### 1. Boston owns Brooklyn’s Pick Via Swap

The most well-known adjustment to the 2017 NBA Draft Lottery is the Boston Celtics rights to the Brooklyn Nets first round pick. In an ill-advised trade for aging superstars Paul Pierce and Kevin Garnett, the Nets gave their first round rights outright to the Boston Celtics. The Nets, losing both Pierce and Garnett are now the worst team in the NBA and cannot even reap their rewards. In return, the Nets gain the Celtics’ first round pick; well outside the lottery.

### 2. Philadelphia Conditional Swap with Sacramento

However, in a similar ill-advised trade of Nik Stauskas, the Philadelphia 76ers raided the Kings lottery picks in a more conservative manner. In this case for the 2017 season, if the Sacramento Kings’ pick is ahead of the Philadelphia 76ers’ pick, then the 76ers can swap picks with the Kings.

With the Kings finishing 8th in the odds and the 76ers finishing 4, this means that the Kings can only finish ahead of the 76ers if they are selected in the first three picks before the 76ers are selected. In this case, at least the Kings keep a lottery pick. Or do they…

### 3. Chicago Owns Sacramento’s Pick, Conditionally

If the Sacramento Kings manage to free-fall into the eleventh pick, then the Chicago Bulls gain a lottery selection. With the ‘drop no more than three spots’ rule in the NBA Draft Lottery, and the Kings’ 8th spot, it is possible for the Kings to fall to 11th and lose their pick. However…

### 4. Sacramento Owns New Orleans’ Pick, Conditionally

The Sacramento Kings can gain a lottery pick if the New Orleans Pelicans obtain a pick outside of the top three. That is, if New Orleans loses the lottery and is does not win a top three seed, they lose their pick to the Kings. This means, the Kings could either end up with no picks, one pick, or two picks in the lottery. Similarly…

### 5. Philadelphia Owns Los Angeles’ Lakers Pick, Conditionally

Philadelphia could end up with two picks in the lottery if the Los Angeles Lakers’ pick falls outside the top three. Here, the Lakers finished fourth in the draft lottery odds and have a good chance of getting into the top three. However, it is still very possible for the 76ers to have the first and fourth picks in the NBA draft!

### There Are Others But Not In The Lottery

In total, there are twelve conditions on the first round of the draft. But only five affect the lottery directly. The other first round conditions are:

- Portland gains Cleveland’s pick
- Portland gains Golden State’s pick
- Los Angeles Lakers gains Houston’s pick
- Toronto gains Los Angeles Clipper’s pick
- Portland gains Memphis’ pick
- Orlando gains Toronto’s pick
- Brooklyn gains Washington’s pick

This means that Cleveland, Golden State, Houston, LA Clippers, Memphis, and Washington all are guaranteed to not have first round picks. Similarly, the Kings have a chance of being in this company with no picks.

## Apply Adjustments to Calculate Real Probabilities

With these five conditions in place, we can now work out the probabilities for each team obtaining each pick in the NBA draft lottery.

### First Three Picks

Here’s the code for the first pick:

balls = {‘BKN’:250., ‘PHX’:199., ‘LAL’: 156., ‘PHI’: 119., ‘ORL’:88., ‘MIN’:53., ‘NYK’:53.,

‘SAC’:28., ‘DAL’:17., ‘NOP’:11., ‘CHA’:8., ‘DET’:7., ‘DEN’: 6., ‘MIA’:5.}first = {‘BKN’:0, ‘PHX’:0, ‘LAL’: 0, ‘PHI’: 0, ‘ORL’:0, ‘MIN’:0, ‘NYK’:0,

‘SAC’:0, ‘DAL’:0, ‘NOP’:0, ‘CHA’:0, ‘DET’:0, ‘DEN’: 0, ‘MIA’:0}second = {‘BKN’:0, ‘PHX’:0, ‘LAL’: 0, ‘PHI’: 0, ‘ORL’:0, ‘MIN’:0, ‘NYK’:0,

‘SAC’:0, ‘DAL’:0, ‘NOP’:0, ‘CHA’:0, ‘DET’:0, ‘DEN’: 0, ‘MIA’:0}top3 = {‘BKN’:0, ‘PHX’:0, ‘LAL’: 0, ‘PHI’: 0, ‘ORL’:0, ‘MIN’:0, ‘NYK’:0,

‘SAC’:0, ‘DAL’:0, ‘NOP’:0, ‘CHA’:0, ‘DET’:0, ‘DEN’: 0, ‘MIA’:0}for team in balls:

for team2 in balls:

picks = [team]

if team2 not in picks:

# team2 gets first pick!

p = (balls[team]/1000.)*(balls[team2]/ (1000. – balls[team2]))

first[team] = first[team] + p

if team2 == ‘SAC’ and team == ‘PHI’:

#Then SAC is first, PHI is second…

sac1phi2 = sac1phi2 + p

for team3 in balls:

# team 3 gets second pick!

picks = [team, team2]

if team3 not in picks:

p2 = (balls[team3] / (1000. – balls[team3] – balls[team2]))

second[team] = second[team] + p2*p

if team3 == ‘SAC’ and team == ‘PHI’:

sac2phi3 = sac2phi3 + p2*p

if team2 == ‘SAC’ and team == ‘PHI’:

sac1phi3 = sac1phi3 + p2*p

print p2*p, sac1phi3

picks = [team,team2,team3]

for squad in picks:

if squad == ‘SAC’ and ‘PHI’ not in picks:

top3[‘PHI’] = top3[‘PHI’] + (balls[team]/1000.)*(balls[team2]/ (1000. – balls[team2]))*(balls[team3]/(1000. – balls[team2] – balls[team3]))

else:

top3[squad] = top3[squad] + (balls[team]/1000.)*(balls[team2]/ (1000. – balls[team2]))*(balls[team3]/(1000. – balls[team2] – balls[team3]))

This code will not only walk through every first-second-third pairing, but also identifies situation where the Sacramento Kings gain a pick (and swap) ahead of the Philadelphia 76ers. This results in a top three odds of:

What do we see here? First off, **Sacramento** **has no chance of winning the top spot.** Furthermore, **they have less than a 0.0245% chance of getting the second pick.** In fact, the only chance for **Sacramento to get the second pick is if the 76ers get the first pick in the draft**.

What else is evident? The **Los Angeles Lakers have a 53.0887% chance of losing their first round pick to the Philadelphia 76ers. **This means that the Philadelphia 76ers have over 53% chance of having two picks in the draft. And, even better for the 76ers, they have a **24.0328% chance of getting two of the first four picks of the draft**.

Similarly, the **New Orleans Pelicans have a 96.0226% chance of losing their first round pick to the Sacramento Kings**. This would be great for the Kings as they are in a rebuilding mode with four talented early career players in Willie Cauley-Stein, Buddy Hield, Skal Labissiere, and Gerogios Papagiannis. If Malachi Richardson gets healthy and builds strength up, the Kings have a solid young five that they can build around. Requiring a proper floor general and a stretch four would compliment the Cauley-Stein / Papagiannis rotation with Hield as a primary scorer and Labissiere as their lengthy three.

### Remainder of the Picks (4 through 14)

After the first three picks are selected, we are then interested in the remaining picks. This is a simple four team conditional, that can be coded primitively as:

#Fourth Pick: BKN, PHX, LAL, PHI

if ‘BKN’ not in picks:

third[‘BKN’] = third[‘BKN’] + (balls[team]/1000.)*(balls[team2]/ (1000. – balls[team2]))*(balls[team3]/(1000. – balls[team2] – balls[team3]))

picks.append(‘BKN’)

elif ‘PHX’ not in picks:

third[‘PHX’] = third[‘PHX’] + (balls[team]/1000.)*(balls[team2]/ (1000. – balls[team2]))*(balls[team3]/(1000. – balls[team2] – balls[team3]))

picks.append(‘PHX’)

elif ‘LAL’ not in picks:

third[‘LAL’] = third[‘LAL’] + (balls[team]/1000.)*(balls[team2]/ (1000. – balls[team2]))*(balls[team3]/(1000. – balls[team2] – balls[team3]))

picks.append(‘LAL’)

else:

third[‘PHI’] = third[‘PHI’] + (balls[team]/1000.)*(balls[team2]/ (1000. – balls[team2]))*(balls[team3]/(1000. – balls[team2] – balls[team3]))

picks.append(‘PHI’)

We don’t put the coding labor completely here in the post. This can be done repetitively; or if we use object-oriented programming, passing the data structure by making this a conditional loop. Note, it’s relatively easy to do; **we just have to not violate the five lottery rules noted above**.

By executing this code, we obtain the full probability distribution for every pick in the NBA Draft Lottery:

## Team By Team Analysis

In case that image looks small. Let’s break down each team’s scenarios:

- Boston Celtics
- 1st Pick: 25.0000%
- 2nd Pick: 21.5042%
- 3rd Pick: 17.7626%
- 4th Pick: 35.7332%

- Phoenix Suns:
- 1st Pick: 19.9000%
- 2nd Pick: 18.8068%
- 3rd Pick: 17.1126%
- 4th Pick: 31.8540%
- 5th Pick: 12.3267%

- Los Angeles Lakers
- 1st Pick: 15.6000%
- 2nd Pick: 15.7352%
- 3rd Pick: 15.5760%
**No Pick:**53.0887%

- Philadelphia
- 1st Pick: 14.7000%
- 2nd Pick: 15.8320%
- 3rd Pick: 15.4337%
- 4th Pick: 32.4128% (Combined with LA Lakers adjustment)
- 5th Pick: 58.0698% (Combined with LA Lakers adjustment)
- 6th Pick: 15.8429% (Combined with LA Lakers adjustment)
- 7th Pick: 0.7975%

- Orlando Magic
- 1st Pick: 8.8000%
- 2nd Pick: 9.6537%
- 3rd Pick: 10.6743%
- 5th Pick: 26.1484%
- 6th Pick: 35.9453%
- 7th Pick: 8.4069%
- 8th Pick: 0.3715%

- Minnesota Timberwolves
- 1st Pick: 5.3000%
- 2nd Pick: 6.0289%
- 3rd Pick: 6.9780%
- 6th Pick: 43.9476%
- 7th Pick: 33.0932%
- 8th Pick: 4.5307%
- 9th Pick: 0.1215%

- New York Knicks
- 1st Pick: 5.3000%
- 2nd Pick: 6.0289%
- 3rd Pick: 6.9780%
- 7th Pick: 57.2429%
- 8th Pick: 22.6457%
- 9th Pick: 1.7758%
- 10th Pick: 0.0286%

- Sacramento Kings
- 1st Pick: 0.0000%
- 2nd Pick: 0.0245%
- 3rd Pick: 1.7420%
- 5th Pick: 3.4551% (Combined with Philadelphia adjustment)
- 6th Pick: 4.2463% (Combined with Philadelphia adjustment)
- 7th Pick: 0.4594% (Combined with Philadelphia adjustment)
- 8th Pick: 72.4521%
- 9th Pick: 16.7898%
- 10th Pick: 87.7737% (Combined with New Orleans adjustment)
- 11th Pick: 8.8742% (Combined with New Orleans and Chicago adjustments)
- 12th Pick: 0.1790% (Combined with New Orleans adjustment)
- 13th Pick: 0.0007% (Combined with New Orleans adjustment)

- Dallas Mavericks
- 1st Pick: 1.7000%
- 2nd Pick: 1.9996%
- 3rd Pick: 2.4093%
- 9th Pick: 81.3128%
- 10th Pick: 12.1977%
- 11th Pick: 0.3782%
- 12th Pick: 0.0023%

- New Orleans Pelicans
- 1st Pick: 1.1000%
- 2nd Pick: 1.3006%
- 3rd Pick: 1.5768%
**No Pick:**96.0226%

- Charlotte Hornets
- 1st Pick: 0.8000%
- 2nd Pick: 0.9484%
- 3rd Pick: 1.1532%
- 11th Pick: 90.7396%
- 12th Pick: 6.2819%
- 13th Pick: 0.0769%

- Detroit Pistons
- 1st Pick: 0.7000%
- 2nd Pick: 0.8305%
- 3rd Pick: 1.0109%
- 12th Pick: 93.5368%
- 13th Pick: 3.9001%

- Denver Nuggets
- 1st Pick: 0.6000%
- 2nd Pick: 0.7125%
- 3rd Pick: 0.8681%
- 13th Pick: 96.0223%
- 14th Pick: 1.7971%

- Miami Heat
- 1st Pick: 0.5000%
- 2nd Pick: 0.5942%
- 3rd Pick: 0.7247%
- 14th Pick: 98.18180%

- Chicago Bulls
- 1st Pick: 0.0000%
- 2nd Pick: 0.0000%
- 3rd Pick: 0.0000%
- 11th Pick: 0.0080% (Combined with Sacramento Kings adjustment)

There we are, corrected probabilities for all 15 teams in the NBA Lottery (remember Chicago has a lottery odd!). Who do you think will win the lottery? Will Philly get two picks? Will Sacramento get a top five lottery pick? Will the Knicks select Patrick Ewing again? Sound off in the comments below!

Good stuff. I had known the numbers were a bit off in the articles you cited, but hadn’t gone thru the mental exertion to try to get them right. Thanks for doing that btw!

Another thought, angle, is the dependence upon who gets #1. For instance, if BOS (thru BRK) gets the #1 pick, then their 250 balls drop out, thus each team’s likelihood would jump dramatically of getting the #2 pick by comparison to say, if the NYK jumped up and got the #1 pick. Is that correct?

e.g. the use case: If BOS gets #1 pick, Phx is more likely to get #2 than they would if NYK got #1 pick.

LikeLike

Thanks for the response! So the Python code does indeed capture that aspect you’re interested in. The model that describes the NBA draft process is called the Plackett-Luce model of selecting permutations of teams.

The example you give with Boston is captured using the “p” variable in the Python code I quoted in the post. ALlow me to walk through it to show how that part works!

Suppose the variable “team” is NYK. Then we walk through all other 13 teams as “team2.” The first iteration is Boston. Then, it’s exactly as you say:

At 25% chance, Boston gets that pick. That’s “balls[team2] / 1000”. OK… so what’s NYK’s chances of getting the second pick?

balls[team] / (1000 – balls[team2])

So in this case, NYK has a 53 / 750 chance of securing the second pick **given Boston has the first pick** That latter half is important! In this case, and in this case alone… the Knicks improved their odds from getting selected in the top 3 from 5.3% to 7.07%. Similarly, with Boston having the first pick, the Suns improve from 19.9% to 26.53%.

Thanks again for the comment!

LikeLike

Sorry, should have finished out your example!

Boston gets first pick: Phoenix has a 26.53% chance of getting the second pick (199 / 750)

Knicks get first pick: Phoenix has a 21.01% chance of getting the second pick (199 / 947)

LikeLike