Skip to main content Skip to Footer


September 09, 2015
Get an Edge in Fantasy Football with Analytics
By: Derek Nelson

The NFL season starts tomorrow tonight. Like millions of others, I enjoy playing fantasy football. For the uninitiated, fantasy football is a game played among groups of friends, family, and strangers where each person selects a group of NFL players to be on their team, and then your team is awarded points based on the performance of those players in the actual games. For example, your team will gain points if players on your team score touchdowns, rush/pass for yards, etc.

This past weekend, I took part in two fantasy football drafts where my optimization algorithm made all the picks. Granted, I created the optimization program, but during the actual draft, the model suggested all the picks.

A quick google search shows that I am not the first one to think about using analytics for fantasy football. However, all use Predictive Analytics, not Prescriptive Analytics as described in here. That is, their models are aimed at predicting how well players will do for the upcoming season. This is certainly very valuable. However, nobody talked about building an optimization model on top of these predictions that would prescribe the best choices. In my approach, I wanted to take the predictive models that people have been building for years and improve on it using prescriptive analytics.

So, here is what I did:

Goal (Objective Function)

  • I set my objective function to be the weighted sum of my Expected Starters Points (95 percent) and my Expected Bench Players Points (5 percent). Obviously the weighting is arbitrary. I don’t know how I would figure out the “correct” weighting.

Choices (Decision Variables)

  • The optimization model decided if I should choose a given player to be on my team, and whether they should be a Starter or a Bench player.

Input Data

  • Predicted season point totals based on my leagues’ scoring system for all players from [Name Redacted] (host site of my leagues)

  • Average Draft Positions (ADP) of all players based on the type of leagues I am in (one league using a Point Per Reception (PPR), the other allows two quarterbacks)

  • Number of starters allowed at each position (including FLEX positions), number of total roster spots, and number of total allowed per position, etc.

  • My draft positions (like most fantasy drafts, we use a “snake format”)


  • Must abide by the starting position requirements, roster size requirements, and maximum allowed per position

  • Must not plan to draft someone unless they are expected to be available when I draft at that position

During the Draft

When the draft begins, my expectation is that each player will be drafted based on their ADP as collected in my input data. As the draft unfolds, I mark each player that was drafted and the players’ expected draft positions are updated (for example, Le’Veon Bell had an ADP of one. If two other players are drafted first and second, his expected draft position becomes three. Every time I ran my optimization model, the model would recommend not only my current pick, but also all future picks based on who would be expected to be available when I made my future picks.

I believe this is the key advantage of using this model…. humans have a hard time seeing many steps ahead, while algorithms can do it easily. What I mean by this is that when I was drafting in Round One, the algorithm produced a plan for all sixteen picks. This would be updated each time, based on which players were picked in the interim, but nevertheless the algorithm is able to consider scarcity of positions, marginal value of one player over another, etc. and look at the entire draft as a whole, not just one pick at a time.

The Results

  • Recall, my objective was heavily weighted towards maximizing Starter points.


Draft 1:

  • Starters: Highest expected points, about four percent higher than nearest competitor, about seven percent above average (or 2.2 standard deviations above average)

  • Bench: Third highest expected points, about twenty one percent above average (1.1 standard deviations)







Team 2



Team 3



Team 4



Team 5



Team 6



Team 7



Team 8



Team 9



Team 10



Team 11



Team 12




Draft 2:

  • Starters: Highest expected points, about six percent higher than the nearest competitor, about ten percent above average (or 2.4 standard deviations above average)

  • Bench: third highest expected points, about eleven percent above average (1.1 standard deviations)







Team 2



Team 3



Team 4



Team 5



Team 6



Team 7



Team 8



Team 9



Team 10



Team 11



Team 12




Being a Chicago Bears fan, I considered not allowing any of the hated Green Bay Packers to be drafted, but resisted…. Fortunately, none ended up on my team. I guess math was on my side!

Hopefully this “bears” well for the season.

About Accenture

Accenture is a leading global professional services company, providing a broad range of services and solutions in strategy, consulting, digital, technology and operations. Combining unmatched experience and specialized skills across more than 40 industries and all business functions—underpinned by the world's largest delivery network—Accenture works at the intersection of business and technology to help clients improve their performance and create sustainable value for their stakeholders. With approximately 373,000 people serving clients in more than 120 countries, Accenture drives innovation to improve the way the world works and lives. Visit us at

Accenture Digital, comprised of Accenture Analytics, Accenture Interactive and Accenture Mobility, offers a comprehensive portfolio of business and technology services across digital marketing, mobility and analytics. From developing digital strategies to implementing digital technologies and running digital processes on their behalf, Accenture Digital helps clients leverage connected and mobile devices; extract insights from data using analytics; and enrich end-customer experiences and interactions, delivering tangible results from the virtual world and driving growth. Learn more about Accenture Digital at


About Accenture Analytics

Accenture Analytics, part of Accenture Digital, delivers insight-driven outcomes at scale to help organizations improve their performance. With deep industry, functional, business process and technical experience, Accenture Analytics develops innovative consulting and outsourcing services for clients to help ensure they receive returns on their analytics investments. For more information follow us @ISpeakAnalytics and visit

This document makes descriptive reference to trademarks that may be owned by others. The use of such trademarks herein is not an assertion of ownership of such trademarks by Accenture and is not intended to represent or imply the existence of an association between Accenture and the lawful owners of such trademarks.

This blogpost is produced by consultants at Accenture as general guidance. It is not intended to provide specific advice on your circumstances. If you require advice or further details on any matters referred to, please contact your Accenture representative.

Popular Tags

    More blogs on this topic