Monday, March 30, 2015

A New Challenger Has Arrived - League of Legends Edition

Daily Fantasy League of Legends, or 'Take That Mom & Dad, I Told You Playing Video Games Would Payoff'

As if we needed another signal that the Daily Fantasy Sports (DFS) industry is continuing to explode, I learned last week that Daily Fantasy eSports is now a thing at a few small, newer niche sites. Alphadraft and Vulcun are both offering paid and free contests in daily fantasy League of Legends, one of the most popular computer games, and one I used to play quite a bit.

When I first saw this I thought it was a bit ridiculous. I mean, I play DFS and follow sports in general pretty closely now that I work at DraftKings, but fantasy esports seems like a totally different animal. Are there really enough people out there not just playing but watching professional league of legends to create a reasonable DFS universe? Apparently the answer is a resounding YES, as not only have both sites grown quickly since their launch but they actually have bigger contests than DraftKings does in sports like Premier League Soccer.

Yes. the English Premier League has fewer users and smaller contests on DraftKings (the only DFS site to offer soccer in the US) than these new sites have in the LCS (League of Legends Championship Series - the top professional league). I thought that was a pretty impressive stat, so I dug around a bit more and found some pretty wild figures surrounding the crazy popularity of League of Legends and eSports:

The 2013 World Championships were held at the Staples Center in LA

2013 World Championships saw 8.7 million concurrent viewers tuning into the livestream to watch from around the world. 2014 Saw 11.2 million peak concurrent viewers. The World Championships brought in 32 and 27 million total viewers each year respectively. Here is a pretty nifty infographic on these viewership figures.

Another interesting data point is that of the 70M total worldwide viewers of eSports, nearly half of them come from the United States. Given how big eSports are in China and Korea I would have expected the USA to make up a much smaller portion of the global viewing pie. This is also fantastic news for DFS eSports, as current legal restrictions prevent overseas players from entering these contests on most sites.

Speaking of which, let's get to the meat of this blog post:

How To Win at DFS League of Legends

First things first, if you don't know what League of Legends is, here is quick and dirty explanation:

League of Legends (LoL) is a 10-player online computer game in which two teams of 5-players fight head to head in a 30-40 minute match. Each team has a base that they are trying to defend while destroying that of their opponents. It's based on a custom map that some folks built for WarCraft 3 called DotA (please click on that link) a good while ago.

If you like really awesome data visualizations, the following NYTimes article has a really cool video that I've attached, as well as a more detailed explanation of what's going on.



Basically, the game has two teams, in this video illustrated by blue and pink. There are three main paths on the map that connect the two bases, known as Top, Mid and Bottom (pretty easy so far). Additionally, you'll notice a good deal of buzzing going on in between the lanes. This is known as the "Jungle".

The five players on each team are given dedicated roles and positions. Again, conveniently these positions are known as Top, Mid, Bottom and Support. Typically, each team will send two players to the Bottom lane, with one person each designated to Top, Mid and Jungle. The reason for this is strategy around global map objectives that exist on the bottom half of the map, but it has become very standard. Additionally, those two bottom lane players are known as AD carry and Support. I won't get into detail, but basically AD carry (ADC) is a role that is very vulnerable and weak in the early stages of the game, but scales very, very well as the game progresses. The Support player follows the ADC around during the early game to assist them and make sure they can survive the early game and reach their huge late-game power level.

Cool, so how does DFS work? Good question.

Here's what a roster looks like on AlphaDraft.


It has the same look at feel to a traditional DFS site. You have a salary cap and several roster positions you need to fill out using players from the games that are happening that day. On AlphdaDraft, the roster requirements are pretty simple:

  • One of each role (Top, Mid, Jungle, ADC, Support)
  • One Flex player (any role)
  • One Team (think of this as a Defense in traditional fantasy NFL games)

The players are given points based on how they do in their respective games, while the team you select is given points based on team-based global objectives in the game. As you can imagine, the success of all these roster spots is highly correlated to winning the game (the more kills, assists and fewer deaths you accrue as a team, the more time you have to secure map-objectives and ultimately win the game).

League of Legends DFS Strategy

Now that we know how the game works and rosters are built, it's important to think about what strategies we want to adopt when building a lineup.

Most important thing is to consider what type of contest you are playing in. As usual, I will focus exclusively on playing in top-heavy payout tournaments, or GPPs. The reason I do this is that it is easier to use simple game theory to give yourself a big edge. You don't need a particularly powerful model or understanding of the game flow or players as long as you understand the game theory behind your choices.


Take this lineup as an example. This particular team tied for 2nd in a recent GPP on AlphaDraft and let's understand why. First, the goal of GPPs is always to create lineups with the most "upside". This is just a shitty way of saying "pick lineups with high correlated players". You want to do this to give yourself the best possible chance of finishing at the very top of the leaderboard, where all the payouts are. Highly correlated players lead to high variance teams as either all or none of them will have productive fantasy outings. If one does extremely well, they likely all will do extremely well.

This is most obviously reminiscent to NHL and MLB DFS, where the optimal GPP strategies are to stack players from the same team in MLB, or same line in NHL. The idea being that if the 3rd batter for the Indians hits a homerun and 2RBIs, it's very likely that the guys nearby him in the batting order are also doing well. Additionally, the better a team does the more at bats they will accrue, giving them even more options to score fantasy points. In NHL, because goals are so infrequent and each goal is accompanied by up to two assists, you want to play players who are (almost) always on the ice together. Thus, if one scores a goal you are maximizing the chance that your other players will secure one or both assists.

In League of Legends, this stacking most obviously manifests itself in the Support + ADC combination. You should always have only one support, and you should always pair that support with the ADC that they will babysit throughout most of the game. Thus, if the support does extremely well, it's likely because their ADC and team is doing incredibly well, as Support players almost exclusively accrue fantasy points through assists.



On AlphaDraft, you're only allowed to play three position-players from the same team. Thus, the optimal strategy is to select three players from two different teams (not playing each other so as to prevent kills causing deaths among your team).

Additionally, due to the fact that, in order to win, you will need one of the games you are playing to last a very long time so as to maximize the number of kills and assists. During very long games, AD Carries reach their highest power level, and are thus the most likely to accrue a massive amount of fantasy points. Some teams have very strong Mid laners, and will see the Mid laner carry the game when it goes late, but usually it's the ADC.

What this means is that your Flex position should always be an ADC or Mid, as they have the highest "ceiling" among all positions in long games.

Simplifying this, the following rules will let you become a winning tournament player in DFS League of Legends:

  • Pick two teams
    • Pick teams expected to win, or teams you think are under-hyped
      • This information can be found by looking at the differences between betting odds on LCS games from sites like Pinnacle and the fan-vote results from League of Legends themselves. Games where a team is under-represented by the fan-vote relative to their implied odds of winning from Pinnacle are great choices.
  • Pick the ADC and Support from one of the two teams
  • Pick three players from the 2nd team, including either Mid or ADC
  • Round out your roster with players from each of the two teams
  • Make sure you have either 2 Mids or 2 ADCs when you complete
  • Pick the "Team" position of one of the two teams you drafted.
    • The Team score is highly correlated with game length and success, both things your counting on by stacking 3x of each team.

There might be some interesting correlation between Jungle, Top or Mid but at this point there's not enough data to prove anything conclusive, and in general it will depend on which positions are better represented within various teams based on historical stats.

Anyway, that's about it. The secret to being good at LoL DFS is simple: stacks on stacks.


Saturday, January 31, 2015

Hockey Night in DFS

I've been spending a lot of time recently building out a model to project NHL player and team performance so that I can keep playing DFS now that there is no more NFL season is over from a fantasy perspective.

I've learned a lot about the sport, the current state of teams, but mostly I've learned that projecting a sport with as much variance as hockey is relatively futile, and when it comes to playing DFS the game theory and strategy of roster construction is far more important than having a good model to project the results of players or games.

To understand what I mean about variability, let's just take a quick look at the current standings in the NBA and NHL:


Obviously the NBA is on the opposite end of the spectrum, but it's quite obvious that in the NHL the dominant teams are much, much less dominant than those in basketball. This manifests itself in very important ways in DFS, but I'll get into that a little bit later. For this particular purposes, it kind of underlines how difficult it is to correctly project the winner of a given game - the teams are much closer, the games are relatively low scoring, and the winners are less predictable.

However, while projecting games out is relatively difficult, the parity in the sport makes it extremely fun to watch. Not only is the sport ridiculously fast, but it's also ruthless and brutal while still filled with some of the most incredible finesse and athletic feats I've seen in any sport (Odell Beckham Jr. aside).


Alright, now that I've got the obligatory Tarasenko .gif into the post, let's get into the gritty DFS nature of hockey.

Hockey and DFS

The first step on my adventure in daily fantasy NHL was building a model that could roughly project how players are expected to score, how games are expected to go. This is primarily for the purpose of 1) identifying the best projected players with the best matchups, and 2) identifying the best value players by comparing projections to salary.

Because hockey has so much variability I decided to keep my model super simple. Here's how it works:

  • I compare each teams average goals-for and average shots-for against the league average, both overall and home/away specific, to get a simple scalar for how much better or worse they are than the league average. For example, my favorite matchup tonight is Tampa Bay playing at home vs Columbus. Columbus scores 8% fewer goals than league average, and gives up 13% more than league average. Tampa Bay scores 18% more than average and gives up 9% fewer. When you combine these with league average home/away goals per game, you can roughly estimate that the final score to this game will be (I won't edit this, so let's see how close I am):
Carolina 2.17 - 3.63 Tampa Bay


  • I also use the goals / game scalars and shots / game scalars and apply them to the average goals, shots, etc. per game for each player on each of those teams to roughly get an idea what each players' stat-line is expected to look like. Using various sites' fantasy scoring rules you can then multiply out expected stats to get a rough projection on fantasy points for each player.
The final output of this is a list of players, and projected fantasy points. The points below aren't real - I actually weight certain things differently from the sites I play on, but use it as a guide to figure out which players and teams have the best matchups and best value.


For example, my favorite player tonight is Claude Giroux of the Flyers. Not only does he have a fantastic per-game stat-line so far this season, but he's also playing at home against a team (Toronto) that gives up 11% more goals than the average team, and 10% more shots than the average team, so his associate stats are given a boost, putting him at the top of my list.




In general, I try to keep the model as simple as possible, to prevent bias in over-fitting and over-trusting data, and because I know that no matter how precise and complicated I build the model, the amount of noise in variance is going to horribly outweigh any added precision that I can provide. This piece of the model is more a guide to see, generally speaking, which players have good matchups and projections, and might be over- or under-priced.

So... if the projections are relatively simple and highly variable, how can you get an edge playing DFS hockey? Well, specifically because the sport is hard to predict and highly variable. The best and easiest way I've found to find an edge so far is in larger-field tournaments with top-heavy prize pools, and the edge I've created is almost entirely in roster construction rather than player or game projections.

NHL Tournament Strategy

Before we talk about specific strategy, let's think about how scoring works and how that affects how we build a roster. Linked are the NHL scoring rules for DraftKings and FanDuel. They're generally similar in that goals and assists are given huge importance, with shots less so. FanDuel offers an additional point for +/-, which is anytime you are on the ice when a goal is scored (excluding power-play goals).

Now, this is very interesting because NHL games are relatively low-scoring, averaging a bit over 5 total goals per game. Additionally, hockey is relatively unique in that each goal can be assisted by up to 2 players. So far this year the average goal has 1.73 assists. Perhaps most importantly is the consistency with which different players are on the ice with each other, due obviously to be being on the same line. Hockey is the only sport I can think of in which groupings of players are so consistently obvious and memorable in this way. Think about the Legion of Doom, the famous Lindros-LeClair-Renberg line from the 90s. When one of these players is on the ice, there's a 90%+ chance that the other two are as well. That's incredibly important for fantasy.


Think about this, in order to cash a large-field tournament you need about ~30+ fantasy points, depending on the night. In order to get that many points you're going to need some production from almost all of your players. If you have 6 random forwards and 2 random defensemen, the likelihood that they all do well the same night is extremely low as their individual performance will be independent from one-another. That's not what you want if you're trying to finish in the top 10% of a large field of contestants.

To do well in a large field you need to correlate the variance among your roster. I talked about this in NFL earlier this year with the recommendation to pair a QB and WR from the same team. Whenever your WR catches a touchdown, it's going to have been thrown by that QB, thus correlated their fantasy output. Stacking 3 players from the same line in NHL correlates the variance too, but much more significantly.



Think about this, whenever Ovechkin scores a sick one-timer like above, it's going to be assisted by 1-2 of his linemates (or defensemen). In order to do well in a tournament, you're going to need some goals from your players, so that's a prerequisite. If you play Ovechkin, you're almost always going to pair him with Backstrom and Burakovsky, his two linemates, as anytime he scores a goal there's a huge chance they're on the ice with him, and a good chance that one or both end up with an assist. On sites like FanDuel where you also get points for +/-, line stacking becomes even more obvious as not only do they get a potential assist on his goal, but they get guaranteed points from +/-.

The correlation between players on the same line is absolutely insane, which is why it's the most obvious optimal strategy to do decently in large tournaments. In fact, I don't even stop there. For the past month I've been testing a strategy in which I play 3 players from the same line (hopefully some of whom also play on their team's power play) and a defensemen from that same team (preferably the defensemen that plays on the power play as well). Do this for two different teams, and stick in a goalie of your choice, and boom, you've got a sick team.

To figure out which lines and teams to stack, I take my player projections, plug in team lines from Daily Faceoff, and figure out which lines have the best projections. Here are a few of my top choices for tonight:

Bold indicates players on a team's first power play line

By writing down a dozen or so lines and pairing them with associated power play defenders, I can quickly take these stacks of 4 players and pair them with other 4-stacks and a goalie to create full fantasy rosters with extremely correlated variance. To do well in a tournament I no longer need 8 skaters to all do well, I simply need 1 person on each of 2 lines to do well, as the rest will follow.

So far over the past month I've built and played 140 such line combinations in large-field tournaments. The histogram below represents the finishing percentile of each of those lineups. For example, the first bar shows the % of my 140 lineups that have finished in the top-5% of the tournament in which they were entered. So far 21.4% of my lineups have finished inside the top 10%, while a full 40% have finished inside the top 25%.


The black line at 5% represents the expected average if each lines finishing percentile was perfectly random. The coolest thing about this graph is that not only does it show that an extremely simple strategy (stacking a full line and defender from two different teams) is extremely profitable, but it the general distribution is exactly what we'd expect from a strategy that correlates variance:

I have more lineups finishing in the bottom 20% than average and more lineups in the top 25% than average. That's exactly the strategy you want to adopt when you play in large-field tournaments in which only the top 15-25% of entries win cash. If you're not in the top 15%, it really doesn't matter whether your lineup finishes in the 40th percentile or 99th, and that's exactly what this stacking strategy is showing.

Anyway, I just wanted to show some cool results from a simple strategy test I've been doing. I ended up outright winning my very first tournament last night (although I unfortunately tied with 3 other users that had the exact same lineup!) and figured it was as good a time as any to share some of my thoughts on strategy and roster construction in the NHL.

Monday, September 1, 2014

DFS Strategy Overview

DFS is a big multiplayer game. You enter a lineup into a contest with the goal of winning money. You make this lineup based on player projections, gut feel, or whatever sport-specific knowledge you can leverage to give yourself an edge over the competition. However, beyond improving your player projections or getting a new gut that can feel better, how else can you give yourself an edge in DFS contests? To answer this let me first describe a few basic concepts.

  • Cash Games

Contests in which ~50% of the field ~doubles their initial buy-in are referred to as cash games among the DFS community. These games are primarily head-to-head contests and larger-field 50/50s and double-ups. Basically, you need to beat 50-55% of the field (or one person in a heads-up game) and you get 180-200% of your initial buy-in if you do so.

  • GPPs

A GPP (Guaranteed Prize Pool) is the name used to describe a large-field contest with a top-heavy payout structure. Typically these contests only payout the top 10-20% of the entire field, with a very top-heavy distribution of winning prizes. First place wins generally 5-20% of the total prize pool, with decreased winnings for progressively worse finishers.

  • Overlay
Overlay is when a contest brings in fewer dollars in entry fees than it is paying out prizes. To understand why this would ever happen, it's a legal requirement of the industry to advertise total prizes and payouts in GPPs up front. For example, when DraftKings runs a $\$$100 buy-in contest with $\$$10,000 of total prizes, we'll set the maximum number of entrants at 110. If this contest fills (110 people enter it) we will gross $\$$11,000 in contest revenue, and will then payout $\$$10,000 in prizes at the conclusion of the contest, netting us $\$$1,000 in net contest revenue. This 10% rake figure is fairly standard across the industry.


However, because GPP prize totals are guaranteed (thus the name), such a contest will payout $\$$10,000 no matter how many entries it receives. In the case when the contest fills, you're paying $\$$100 for essentially $\$$10,000/110 entries, or $\$$90.91 in expected prizes if you are an exactly average-skilled player. When the contest exactly breaks even (100 total entrants) your $\$$100 entry fee has a $\$$100 expected value. However, when such a contest has fewer total entrants than prizes, the expected value on a bet becomes positive assuming your even just an average player! If only 90 people enter the contest, only $\$$9,000 of revenue is being generated and turned into $\$$10,000 in prizes. In such a situation, your $\$$100 entry fee has an expected value of $\$$111.11! If you think your even an average-skilled player, you should always look for and enter overlaying contests, as the expected value of your bets becomes positive via the guaranteed nature of the total prizes. If you think you are a positive EV player even in full rake contests, seeing overlay is very exciting as your existing edge over the average player can help boost that EV even further. This is how it's possible to generate 10-20% ROI over an entire season while only being a slightly above-average player.

Game Theory in DFS

As mentioned earlier, DFS is a multiplayer game. As such we can think about it from a game theory perspective to better understand how we should optimally build lineups in the various contest types.

Let's consider cash games for a second. As a player you don't care whether you come in the 1st percentile or 49th percentile. As long as you finish in the top half you're going to double your initial buy-in. When you build a lineup for a cash game rather than trying to build a lineup with the highest point potential you want to build a lineup with the lowest chance of doing terribly. The fewer busts you field the better chance you have of finishing in the top half.

Thus the game becomes much, much more about fielding a consistent lineup of efficiently priced players with high floors. A high floor essentially means that a player will never perform horribly. More rigorously this means that the standard deviation of expected fantasy point production is going to be smaller while the total expected point value might be higher.

Obviously this is a very, very rough diagram, but consider this distribution of expected fantasy point production of two players. Player B has an average expected point value of 12.0, while Player A has an average expectation of 11.0 points. Assuming these players have similar salaries on a DFS site, we'd want to pick player B in cash games as his average expected point value is higher, even though player A has a higher chance of scoring 15+ points.

My 'optimal lineups' and player projections from last year were a good example of how one should go about building a cash lineup: look to maximize expected fantasy point performance by finding under-priced players and maximize expected fantasy point production.

GPP Strategy

While cash games have elements of strategy, they're not multiplayer games that would necessitate game theoretic thinking. You're essentially playing against a static salary cap in an effort to find efficiently priced players via a model or intuition. Regardless of your opponents' decisions, you will likely pick the same cash game lineup. The same is not true for GPPs.

Consider the distribution of prizes for the $200 buy-in Sunday Millions contest for week 1. Most GPPs follow a similar curve, with somewhere in the neighborhood of 5-20% of total payouts going to first  place and 10-20% of the total field getting paid. This specific contest pays out 20% of the field, with 10% going to first.

Because of this ridiculously top-heavy payout structure it is incredibly important to finish in the very top if you want to make decent money. Finishing in the 33rd percentile every week is fantastic if you're a cash game player, but consistently finishing above average means nothing in GPPs. If you're not finishing in the top 5-10% every once and a while you're likely not going to be profitable in this format.

This is where things get interesting. The optimal strategy shifts from consistent value plays to players with big play potential. Typically these players are slightly devalued in traditional fantasy because of their boom & bust nature. One week they'll put up 25+ fantasy points proceeded by 5 the following week. T.Y. Hilton fits into this category: over the first 7 weeks last year he scored 1.3, 2.0, 2.7, 4.3, 5.1, 12.4 and 26.0 fantasy points in standard scoring. In a cash game this isn't exactly the type of performance you get excited about, but as a GPP player you're looking at that 26.0 point performance and hoping it happens every once and a while. You don't need to cash every lineup you play, you just need to hit it big every once and a while.

However, in GPP games it's also very important to think about the game theory involved. Because you're trying to win big some of the time (rather than doing pretty well all of the time) you  need to think about the strategies your opponents are employing. Let's consider Jeremy Maclin for a second - he's the defacto deep threat in the Chip  Kelly's high powered offense, which means he has the potential to have a monster game any given week. This is exactly the type of player you want to roster in a GPP. Unfortunately, FanDuel made the mistake of pricing Jeremy Maclin at $\$$5,000, which is just barely above the minimum salary for a WR on their site.

Most people would see a mispriced player like this and immediately snap him up, rostering him across the board, freeing up salary cap space for an extra stud like Demaryius Thomas. However, in a GPP you need to think about how many people are going to identify Maclin as a value play. I would bet money that Jeremy Maclin is one of the 2 or 3 most-owned players in week 1 - I am definitely not the only person who noticed his price tag.

This puts us in quite a predicament. Let's consider the scenario in which Maclin goes beast and puts up 20+ points against the hapless Jaguars of Jacksonville next weekend. Awesome! If you rostered Maclin your lineup is now doing great... but so is everyone else's lineup who had Maclin rostered. If Maclin is owned by 50% of the field, that really doesn't help you at all. On the other hand, when Maclin throws up a dud and scores fewer than 5 points (not unlikely given the inconsistent nature of deep receivers), those who opted to "fade" Maclin (not roster an obvious pick) will have a huge leg-up over 50% of the field!

Fading players who you think will be highly owned or over-owned is one of the best ways to give yourself an edge and make money in GPPs. Just as important as the performance projections (which everyone does in their own way whether it's a model, research or intuition), very few players think about player ownership in this way. In large-field GPPs with very top-heavy payouts you want to play the contrarian strategy and look for players you think will have low ownership percentages.

For me, this means taking a hard look at guys like Geno Smith in week 1. The unglamorous players who still have the potential to put up big numbers against weaker competition, in this case Oakland.

Correlated Variance

Another way to increase the boom & bust potential of your lineup is to find ways to correlated the variance among your picks. To explain this I'll start with a common concept in Baseball GPP strategy: stacking a team.

"Stacking" in MLB DFS refers to choosing several players from the same team in your lineup, typically players who are near one another on their team's batting order. The reason is quite simple: when one player gets a hit, the likelihood of the following player getting either a hit or RBI is substantially increased. Importantly you also receive fantasy points for RBIs and runs that your players score, so if one of your players bats in another you are effectively getting double the points for that one run. Finally, when a team does well and scores runs, they move through the batting order more quickly. In 9 innings of play each player will receive more at bats in a game that is a blow out. More at bats = more opportunities for fantasy points.

Stacking in this manner correlates the variance associated with each pick. Instead of banking on one player doing well, you are banking on the whole team doing well. When one player does well, it's more likely they all will. And when one does poorly, it's more likely they all do poorly. In a cash game this is an awful strategy - you are trying to minimize risk, minimize variance, and minimize the times your lineups perform poorly. In GPPs this is exactly what you want. Most of the time it won't work, but when it does work, it works well for your whole lineup! This is the kind of boom & bust play you look for in GPPs, and it's a very common strategy in MLB DFS.

The NFL equivalent of stacking follows the same reasoning, except instead of fielding positing players from the same team you want to try and pair your QB with his top receiver. When a QB does well in fantasy it typically means that they threw for several touchdowns. That means several touchdowns were caught by the various players on that team. Rostering the top WR from the team of your QB is a great idea in GPPs as it greatly increases the chances of one of your WRs doing well in the situation when your QB does well. Since you want all or most of your players to do well to win big cash, this is very helpful. In cash games, this isn't necessarily advised, but isn't something you should actively look to avoid.

That's more than enough for this post. In the next few days I'll get down and dirty in the FanDuel and DraftKings salaries and look for some value plays as well as potential players to fade in GPPs.

Saturday, August 30, 2014

What is DFS?

I didn't know what DFS was at this time last year. After much research, some fortuitous timing, and a little luck I now work at one of the biggest companies in this rapidly growing industry.

Daily Fantasy Sports (DFS) represents this weird microcosm of year-long fantasy sports and sports-betting, offering a vehicle for fans to leverage their (fantasy) sports knowledge against others for cash. Unlike the online poker boom of a decade ago DFS has seen huge support from the major professional support leagues. Leagues know that the more time fans and spectators spend thinking about and researching sports the more their own industries will grow and flourish. DFS enhances the way fans experience spectator sports, which is very much in line with the motivations of the individual leagues and sports entertainment industry as a whole.


I learned about the industry last fall when I saw a few ads for various sites while watching TV and while doing fantasy football research for a league with my buddies. I thought it was neat, partly because I had a ton of free time on my hands (I had just leftNorthBridge, my first post-college job) and partly because I love statistics and making unnecessary models for everything.

The concept behind DFS contests is very simple. Each week in the NFL, for example, real players are assigned DFS salaries based on their projected fantasy performance. As a contestant you effectively playing the role of GM or Head Coach. You are given a salary cap and your goal is to build a lineup (given certain roster requirements) of players that will score the most combined fantasy points in that week’s contests.

It’s a big optimization problem

On the surface DFS is a very simple optimization problem: maximizing fantasy point output under salary and roster position constraints. As such, if you have accurate fantasy point projections for each player, you can create a simple linear optimization model that will create the ideal lineup for you under the various constraints.

This is what I set out to do last fall, and it was quite fun. The point projection model was very simplistic – fantasy ‘expert’ opinions were aggregated (truth in the masses) and average projections were used for each player to determine a baseline level of expected fantasy output. These were then plugged into a linear optimization model in which player projections were matched up with player salaries from various DFS sites, and an optimal lineup was created. This optimal lineup represented the ideal combination of inexpensive value players and high-profile superstars that would be expected to maximize total fantasy point production. Awesome.
 
Player salary vs. projected rank with trend line.
Blue dots above the orange line represent players who are priced higher than their projected performance. Dots below the trend line represent under-priced players who are projected to out-perform their salary.
Unfortunately, when I entered these lineups into the big contests on a few different sites, I never seemed to win much of anything. This is where my simplistic modeling and projection from last year was sub-optimal – there’s a huge amount of game theory involved in DFS, and I wasn't thinking about that aspect in the slightest. More important than an optimization model is a coherent strategy with sound reasoning tailored to the specific contest you are entering. My next post will overview the different types of contests in the DFS world and how to approach them each strategically.

Saturday, December 14, 2013

Week 15 Rankings and Projections

Brief overview of the rankings can be found here, and an oultine of the linear optimization algorithm can be found here.

As the season progresses it looks as though the $/pt value for players is starting to settle down - there are fewer outlandish outliers to take advantage of at this point in the season. However, you can still find some value if you look hard enough. Chris Ogbonnaya is a must-buy if you're playing on DraftKings this week simply because he's priced incredibly low with his easiest matchup of the year with a home game versus a porous Bears run defense. When you consider that "lead" Browns runningback Willis McGahee out with a concussion, Ogbonnaya will be playing a lot of downs. Don't expect him to carry your team to victory this week, but as a bargain bin pickup he'll allow you to upgrade elsewhere in your lineup. In this case, it looks like Shane Vereen and Dez Bryant offer the best value of the elite talents at RB and WR.

Elsewhere it looks like Brandon Marshall is great value at DraftStreet, but this is a potentially risky pick. It seems like part of his value is due to the fact that it's unclear which of Marshall and Jeffery Browns CB Joe Haden will shadow tomorrow afternoon. In fact, if Marshall is stuck on Haden Island, look to replace him with Alshon Jeffery, as #2 WRs have fared incredibly well vs the Browns all year long, and Jeffery is one of the most capable #2s in the entire league.

Pierre Garcon and Roddy are also fairly well priced across the board, but with a new QB in Washington it may be a slightly risky pick with potentially high reward. Both Washington and Atlanta have pretty terrible defenses, so both players could be in for big days.


Thursday, November 21, 2013

Week 12 Forecasts

Week 12 is here, and since I'll be unable to update my rankings and projections this weekend (vacation in Cleveland!) I've got some preliminary Thursday projections for everyone.

This week Victor Cruz is great value across all sites, so if you can fit him into your lineup that would be highly recommended. Chris Ogbonnaya is also priced very well across the board, but it's hard to recommend him as more than an efficient and cheap fill-in who could allow you to upgrade at another position like QB. Speaking of which, Brees and Peyton are on a level of their own this week, so it would definitely be advisable to try and pick one of them up, especially Brees (who's priced lower). However, as Brees is playing Thursday, it's still slightly risky.
Results from last week:
  • Antonio Brown was priced extremely well in all leagues, and showed last week why it's a good idea to trust the high-volume WRs when the price is right.
  • Ray Rice finally payed off for those willing to trust him. Unfortunately his performance bumped up his price in all leagues, and he's no longer a good value.

Saturday, November 9, 2013

Week 10 Projections

Another week brings with it new projections! While I didn't have time to put together projections before Thursday nights game between the Redskins and Vikings, if that game is a sign of things to come, this week will be great for fantasy players. Garcon, Reed and Peterson all had great games, and unsurprisingly were all ranked quite highly going into the game.

Anyway, with those players out of the picture, the landscape changes slightly. While Garcon's price has been rising across most sites recently, he generally still holds very decent value. That might change after his second 20+ point performance, however.

A couple players to keep an eye out for this week are Cecil Shorts, Keenan Allen, and Mike James. These three guys are priced relatively well across almost all sites. Allen is a particularly good buy if priced well, as he's proved over his past 4-5 games that he's not only a great red-zone threat but has been able to rack up the targets and yardage extremely consistently. It's very surprising he's still being priced as a WR2-3 when he's clearly in the WR1-2 range.
Cecil Shorts is a slightly different story. After teammate Justin Blackmon was suspended last week for repeated violation of the NFLs substance abuse policy (marijuana) Shorts will step right back into the #1 role at Jacksonville. Fortunately for him, he now has Chad Henne hucking the ball rather than the indomitable Blaine Gabbert. While both Jacksonville and Henne are still terrible, Henne is a massive step up from Gabbert. Since JAX will still be playing from behind every game, Shorts should see an uptick in targets and some (hopefully) impressive garbage time points. Another much deeper sleeper to keep an eye on in Jacksonville is Mike Brown, the team's third receiver who will be playing in the spot of Blackmon.

Mike James is final value pick who is under-priced at almost every site. With news this week that Doug Martin has been placed on the season-ending IR in Tampa, James is now the teams one and only back, and will be the focal point of their run game for the rest of the season. With another week to train as the primary back, James should be good for some solid points in favorable matchups. This week vs. the Dolphins is definitely one of those favorable matchups. Pick him up.
The last guy I want to talk about is Jimmy Graham. With Gronk on bye and Gonzalez in a difficult matchup vs the Seahawks Graham is by far the best TE pickup this week. However, he's still priced very high in most leagues, so picking him up will necessitate some bargains and value-picks in other positions. However, despite his steep price tag, he's still worth a pickup in most sites due to his ridiculous ability. Graham is one of those guys you can count on for 1-2 touchdowns every game. It's not fair. If you can afford him, pick him up.

Anyway, without further ado, the full week 10 value rankings and lineup optimizations: