Anatomy of a Fantasy Football Score
Fantasy Football has been used recently to help students learn math, but it is more of the basic stuff like how to calculate a player’s fantasy score from a boxscore. Not much has been written on the actual mathematics of how a player’s individual fantasy score is determined for an individual game. I thought I would go ahead and take a stab at it, and possibly break some new ground in the process.
You can spend hours and hours projecting out player fantasy football scores for the week, but then you get Arian Foster putting up 41 fantasy points last weekend, and Andre Johnson putting up 3 fantasy points and most people just start shaking their head at a problem that seems unsolvable. Well it is not an unsolvable problem, its just the math will never lead you to an exact answer for a players upcoming fantasy score due to modeling accuracy issues and most importantly variance. So let’s take a look at what factors determine a player’s weekly fantasy football score, and how you would go about solving for those factors.
Baseline Fantasy Score (Bfs)
A player's Baseline Fantasy Score is the average fantasy score they would put up if unlimited trials were run against a perfectly neutral match-up. This is the score you would expect the player to make against a match-up that was not favorable or unfavorable to that player, and before game variance is applied. If you could run unlimited trials you could remove the variance factor, but that is not practical in the NFL.
Match Up Factor (MUx)
The Match Up Factor is an aggregate of all of the factors that would tend to cause the player to score higher or lower than their Baseline Fantasy Score in the upcoming match-up. This is where all aspects of the match up are accounted for. Sub factors can include the opponent’s defensive strength, if the game is at home or away, if the player has been running hot or cold lately, if the player will be getting more or less snaps, and other match-up factors. When you have an accurate Match Up Factor you multiply it by the players Baseline Fantasy Score, and you will get the players average fantasy score if the game could be played an unlimited amount of times.
Game Variance (GV)
Game Variance is what accounts for all of the crazy and unexpected things that actually happen in a specific game. It is also different for each player depending on how consistent that they are. What this does is cause a spread of actual fantasy scores around the average fantasy score obtained over multiple trials. This is how Arian Foster who was expected to score in the 10s puts up a 41 last weekend. If you ran that game 10 more times, it is likely he would not score that high again. His large unexpected score was a product of his Baseline Fantasy Score being underestimated, his match-up factor being not favorable enough, and most importantly him catching the right side of variance in a big way. Over the long run (1000s of games) an equal amount of good and bad things that can’t be accounted for will happen to your player during the game washing away the variance. However, over an individual game, the variance component can easily outweigh all other factors and become the predominant determination of a players fantasy score.
Fantasy Score Equation
At long last I present the equation for a players fantasy score.
Fantasy Score = Bfs x MUx x GV
A player’s fantasy score is entirely determined by his Fantasy Scoring Baseline, multiplied by an aggregate of the Match Up Factors affecting his upcoming fantasy score, multiplied by a Game Variance factor that is the single trial deviation from the player’s average expected score.
How are Bfs, MUx, and GV determined?
The first thing required if you would like to solve the Fantasy Score equation is an analytical player projection model that includes as many match-up factors as possible. You then need to run player projections for the top 25 or so players at each position, and compare the actual fantasy football score results to your score projections for all of the players. Using 100s of players and multiple weeks, you can get close enough to the long-term where the variance term drops out of the equation. If you sum up your projection errors over all of these trials you will find that you are either projecting too high or too low, and you can go back and play around with your match-up factors until your projection errors sum out to near zero. At that point you will have a pretty good projection model where MUx can be determined with decent accuracy. You then go ahead and assume that MUx is perfectly accurate and try to back your way into each players Baseline Fantasy Score.
The Baseline Fantasy Score is much tougher to get for Fantasy Football than other sports, because to get it you need many weeks of data (to remove the variance), but the season is way to short to get enough data. Your only hope is to assume that variance has washed away in your small sample size, and use the equation below. As the season progresses your Bfs values will become more accurate, but you will need to accept that there will always be some errors in your estimates due to a lack of data.
Bfs = Average (Fantasy Score 1 / MUx1, Fantasy Score 2 / MUx2, Fantasy Score 3 / MUx3, …)
Once you have the Bfs for each player and an accurate model for MUx you can use simple statistics (correction advanced statistics) to determine the standard deviation of the projection errors for each fantasy player, and solve for their Game Variance (GV). The math gets pretty tough because you are not running multiple identical trials, with the same median value, but independent trials with independent medians based on MUx. You can just accept that there will be variance, but if you go to the trouble to determine a player’s individual Game Variance, it can be very helpful. Players with low variance are better selections than high variance players, if you are a good fantasy player. Bad fantasy players would prefer the opposite because high variance players give them a better chance of beating a better opponent. A skillful player does not need variance on his side to win long-term, but a poor fantasy football player will need variance on their side to win short-term.
Once you have done all of the legwork, picking your weekly fantasy team at Fantasy Sports Live is a simple. You select the team that will score the highest (Bfs x MUx) that fits under the cap while preferring players with lower standard deviations where possible. To do this properly you will need the cap values of each player so you can calculate the cost per fantasy point, and minimize that value on your team, while spending the entire cap amount.