Fantasy Football Start/Sit Monte Carlo Simulation

Laughable I know, but fantasy sport is one of the fastest growing hobbies worldwide.   Even fantasy soccer exists which is mostly focused around La Liga or the English Premier League.  The Fantasy Sports Trade Association estimates that there are 35 million Americans playing fantasy football this year.  That is a huge percentage of the population for a potential market.

A fundamental part of playing fantasy football is deciding what players to start.  You have more players on your team than positions to fill for your upcoming match up against another team.  The current industry standards used by all of the major networks are merely experts guessing at what they think a player will do this week.  These “projections” are placed in a rank or list form, and players use their own knowledge and these to determine who they want to start.  These are literally aggregated numbers from a group of people.  This is nothing scientific or customized to the individual customer’s team.  There is no statistical distribution, no confidence intervals, just a number.  In order to get this data, a Monte Carlo simulation is needed.

As if this wasn’t bad enough, the problem of starting and sitting players is incorrectly defined by everyone in the industry.  To those unaware, it is generally played as a head to head match up between a player’s team and an opponent’s team, with the higher score winning.  The problem isn’t to maximize your score.  It is to maximize the chance that your score is higher than your opponents.  This is a game theory problem!

I am in the process of refining an algorithm that I developed after seeing a lack of scientific principles in fantasy football advice websites.  Using a large amount of football knowledge and statistical analysis, I am/have developed an algorithm to give a projected score total but also a projected variance using a Monte Carlo Simulation.  This data is then used to help the user select the best team.  The concept is to have a customer go to a website and select all of the players on their roster, as well as their weekly opponent’s players.  Using projections the user will then be given the lineup which maximizes his chance of winning.

For example, consider the following hypothetical head to head match up between Team A and Team B.  The two teams each have 2 players, but only 1 player can start for each team (i.e. only 1 player from each team’s score counts towards the team’s score).  The player data from the simulation results is given below, which player should Team A start to have the best chance of beating Team B?


Based on statistical analysis the answer is obvious.  For Team A to have the best chance of winning he should start Player 2 despite the fact that Player 1 has a higher average.   This is the recommendation from my site.  Every other site and their traditional ranked list form would recommend Team A start Player 1.

 I hope to have this in beta for the 2013 NFL season in order to benchmark the improvement over the recommendations provided by the big name websites.  Stay tuned.