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:

Tuesday, November 5, 2013

Week 9 Rankings

Week 9 player rankings have finally taken a more consistent turn as the ideal "buy low" candidates like Keenan Allen, Zac Stacy and Fred Jackson have finally decisively emerged as solid starters with a high volume of targets and touches. Going forward it will be interesting to see how the changing RB landscape at teams like Philly (Riley Cooper), St. Louis (Zac Stacy),  Arizona (Andre Ellington) and New York (Andre Brown) evolves for the rest of the season.

Before I crunch the numbers for week 9 (consensus rankings haven't been adequately updated at this point in time) we should make sure to keep an eye out on the following players:

QB:
  • Nick Foles (possibly solidified is start ahead of Vick even when he returns to health)
  • Jay Cutler (coming back from injury earlier than expected, Alshon Jeffery showing he's the real deal)
  • Tom Brady (was priced extremely low due to his horrible first half of the season)
  • Case Keenum (great showing as a solid QB option for Texas)
RB:
  • Zac Stacy (a few great games in a row, now the obvious starter and focal point of STL offense)
  • Andre Ellington (this is riskier, depends on how he is utilized by the AZ coaches)
  • Andre Brown (coming back from injury, might now get full workload immediately but the only back in NY and very talented)
  • Lamar Miller (finally getting consistent 15-18 carries a game, a solid option if priced reasonably)
WR:
  • Riley Cooper (Foles loves this guy so much that he'll be a solid pick every week)
  • Alshon Jeffery (looked the part of a legit WR1, if Jay Cutler comes back could do even better)
  • Keenan Allen (if he's still priced dirt cheap he'll be a great option)
  • Antonio Brown (finally showed what kind of numbers he's capable of if he finds the end zone)
Anyway, this is all purely speculative, it might not make sense to pick up most of these guys if they're not priced advantageously at the various websites.

Week 9 Optimized Lineups and Player Value Rankings:

Sunday, October 27, 2013

Linear Programming and an Optimization Model

I finally taught myself how to create a linear optimization model in Excel (it's excessively easy with an Add-In I just learned about). This is pretty cool because it allows my fantasy football predictive model to evolve from a series of gut-feelings and potentially fruitful lineups to a solitary optimized lineup. Obviously an optimized lineup does not guarantee success, but over the (infinitely) long term, consensus rankings should be approximately accurate and optimizing those rankings should result in success.

How it works:

Linear programming and optimization models in general attempt to maximize (or minimize) a calculated value given a set of constraints. For fantasy football this translates very simply: we want to maximize the projected points in a starting lineup given that the players in the lineup meet all relevant salary cap and player-position restrictions.

I've already discussed how the projected points are calculated (from FantasyPros consensus rankings), and the player salary cap data comes directly from the different daily/weekly fantasy sites. The one somewhat tricky piece of this puzzle was to figure out how to tell the model that certain players can only play in certain positions and that there are restrictions on how many players of each position can be drafted into the starting lineup.

This turned out to be relatively easy; I created a list of all available players with their position, projected points and salary. The model makes a binary choice with respect to each player as to whether or not to draft them. I then added certain position constraints depending on the format of the website. For example, DraftKings requires a lineup be composed of 1 QB, 2 RBs, 2 WRs, 1 TE, 1 FLEX, 1 K,  and 1 D/ST. The FLEX spot can be either a runningback, receiver or tight end.

Thus, I added the following constraints: QB = 1, RB ≥ 2, WR ≥ 2, TE ≥ 1, K = 1, and D/ST = 1. Then, to satisfy the FLEX requirements the following constraint needed to be added as well: RB + WR + TE = 6.


These constraints are easy to adjust depending on the format of the various websites, and the results were fantastic. The following lineup is the optimized projections for DraftKings, and even some of the professional Fantasy pundits seem to think it's got potential. My plan is to update my optimization model each Saturday or Sunday in preparation for the week's games. At the end of the season I'll try to aggregate all my optimal lineups and see how well the performed and whether or not it is feasible to consistently win money in the weekly/daily fantasy pools using this strategy.
















Wednesday, October 23, 2013

Week 8 Projections - Thursday Edition

As always, Thursday projections are very far from ideal, as we really don't know exactly who will be starting and who will be 100% until closer to Sunday. However, since the first game of the week is Thursday many leagues lock at this point, so having a good idea of where to find value picks is extremely important.

FanDuel lineups and value projections: http://imgur.com/a/rZecP

DraftStreet lineups and value projections: http://imgur.com/a/2vuzm

DraftKings lineups and value projections: http://imgur.com/a/biLWq

DraftDay lineups and value projections: http://imgur.com/a/CwQi2

DailyDraft lineups and value projections: http://imgur.com/a/sDkMO

Happy drafting, and as always make sure to pay attention to breaking injury news up until Sunday, as one player starting or sitting can have a huge impact on your lineup. I'll try to make a final update either Saturday night or Sunday morning if I can use a computer with my sling.