We’re going to talk about the technique of Monte Carlo simulations in computer generated mock drafts. We’re going to sketch out the algorithm in words, not code. We might make reference to bits of code for those who might try to implement what I’m speaking of. To note, my open source C++ code here does exactly that, and has since 2001.

A computer mock draft, in football (there is nothing about these algorithms specific to any particular sport), is nothing more than selecting the top entry from an ordered list. To note, with each and every team the ordering changes, but the fact it’s a simple selection does not change. Therefore, to compute a mock draft, you need a list, and an ordering rule.

If needs are taken into consideration then the top element of the list may not be taken. This adds a selection rule to the algorithm, and therefore, the mock draft becomes the selection of the highest rated player to match the selection rule. We mention all this because such a process is ordinarily deterministic. It doesn’t generate any kind of probability distribution.

Let’s say you have, oh, 5 scouts. For now, we’ll choose the name of a player in this upcoming draft. How about Von Miller? These five scouts have rated Von Miller 2nd, 3rd, 5th, 7th, and 11th best in the draft. Now we have a distribution of opinions about Von Miller, and we can form a model to describe this player’s worth. The model is:

*The function that models how Von Miller, or any player would be rated by an infinite number of scouts is the normal distribution (i.e. bell curve).*

We’re choosing this model for convenience. A much less restrictive model might be:

*The function that models how Von Miller, or any player, would be rated by an infinite number of scouts is a continuous probability distribution.*

The latter definition would allow for players that split groups of scouts in two, some rating player X as a second rounder and others as a fourth rounder, perhaps forming a bimodal curve. But that’s a finesse to the argument we can worry about later.

Now that we have a model, we can apply this process:

For Von Miller, we calculate the mean and standard deviation of the ratings. That would be a mean of 5.6 and a standard deviation of 3.57. Using this, we can now calculate any number of normally distributed random numbers that represent the ranking of Von Miller. This could be done in Perl with:

`#!/usr/bin/perl`

use warnings;

use strict;

use Math::Random qw(:all);

` `

`my $Von_Miller_value = 3.57*random_normal() + 5.6;`

We can do this for every other player in the mock draft as well. Order the list by ranking and run the mock draft on that set. Store the results and repeat the process as many times as needed. At the end, you have a probability distribution of where Von Miller might actually fall in the draft, to the extent your draft analysts have given you a reasonable representation of the player’s draft value.

Why go through all this trouble to do what an individual can do? There are a couple reasons. The first is that people are human and let their emotions blind themselves to the needs of other teams. Human mock drafts tend to reflect the human biases of their creators (i.e. how many times are we going to see top 5 players fall to the mid or late first rounds?). The second is that you’re looking for condition in which value could indeed fall. In other words, what players are the Moneyball play? What players could indeed fall in the draft? Where could your team get the best value overall? For a player or a player agent, it would allow them to understand more accurately where they might actually be picked in the real draft, assuming they were to obtain reasonable scouting data to feed into the process.

March 23, 2011 at 8:37 pm

[...] but also the distribution of player estimates is valuable. With that distribution, you can do Monte Carlo simulations (pages 685-686 of this book) of a player’s worth, push those simulations against the set of [...]

May 20, 2011 at 9:41 am

[...] approach for getting at the value and variability of players, we discussed here in the context of Monte Carlo draft simulations. Simply collect a group of scouts and let them [...]

April 29, 2013 at 6:52 pm

[...] 2. In the early 2000s, I wrote a Monte Carlo simulator of the draft, which explicitly used those distributions to estimate where players would be drafted. More discussion of that code, released as a Sourceforge project, is here. [...]