Thursday, July 9, 2015

EU LCS W7D2 - Projections and Thoughts

Sign up for AlphaDraft here -> http://bit.ly/1D2g2Lc

Alright, EU Day 2! Despite going 100% against my model (told me to pick 4x UOL, 2x FNC) I still managed to come up positive thanks to some aggressive head-to-head choices. Anyway, on to Day 2.

Team Projections and Odds

As happened with today's games, my model is pretty much always going to tell me to play whoever is facing CW. While CW haven't necessarily given up the most kills when they lose, they are pretty much always heavy underdogs which means their opponents will be some of the safest plays you can make.


Anyway, it's never a good idea to just blindly pick SK (especially since they're relatively expensive tomorrow), so lets take a bit of a closer look at this particular match-up. A couple things I always look for is a simple check to determine whether a particular game has the potential to turn into a messy affair, which is obviously ideal for fantasy. To do this I take a look at a teams kills/game relative to their overall win rate. There's an extremely close relationship here, and by identifying whether teams land above or below their expected value we can say that they are sloppier or safer, more aggressive or more passive than average.
Yellow = CW ; Grey = SK
This chart shows us a couple things. First and foremost, there's an incredibly tight correlation between a team's winning percentage (total wins / total games in the current season) and their average kills-per-game. However, some teams, notably SK gaming, deviate pretty heavily from this average. What this chart essentially says is that obviously FNC players have the best aggregate stats, they're always winning! However, SK as a team is much more aggressive, getting many more kills per game (this data even includes today's lackluster affair) than their record would suggest.

Importantly, because this chart shows that SK outperforms their record, what it also means is that when SK is favored, we can similarly expect them to outperform their odds as far as kills are concerned.
Yellow = CW ; Grey = SK
This chart tells a similar story, but from the perspective of deaths, and the story makes sense. CW has played relatively cautiously this split, despite winning only 2 games (stick with what ... doesn't work I guess?) However, we again see that SK outperforms their record as far as deaths are concerned. This tells us that their aggression can also be to a fault. What's cool for us is that this means that SKs aggression has a chance to result in a game with more than expected kills and deaths, which is pretty much exactly what we're looking for in a DFS match-up.

Unsurprisingly my model really likes whoever is playing CW. This time around it's SK, so all aboard the CandyPanda train!

Alright, so now that we all know my favorite team for tomorrow, let's think about some of the other match-ups. Unsurprisingly my model likes the odds associated with H2K, UOL and FNC. For a tournament lineup, it could definitely make sense to run some stacks from the GIA / GMB game, as they'll likely be relatively low owned due to uncertainty around the outcome.

One thing I'll add here, with the news of Kikis leaving UOL, there's some risk there. However, this will also be his last game with them, so there's a chance he wants to go out on a bang. He and the team made the decision to part ways last week, and it very clearly didn't negatively affect his performance today. Take that for what you will.

Favorite Players by Position


Top: As far as average projections, there's verry little between Huni, Csacsi, freddy and Odoamne. So it's really a matter of preference here and who fits nicely into your lineup. Vizicsacsi and freddy122 even cost the same tomorrow, so feel free to literally flip a coin here, I might.

Jungle: Svenskeren and Kikis are by far my favorite two junglers today, especially after the disappointing performance Reignover put up on Rengar today, I'm probably putting him in the metaphorical doghouse for a few games. If you're playing in a tournament, Amazing and Jankos are great choices as far as potential production in the event they win (if you want to pay $8k for Amazing tomorrow, you better be playing in a tournament... that price is insane).

Mid: Same story, but I can't justify paying $9,500 for Ryu tomorrow. His value just isn't there, when Febiven and Fox are both substantially cheaper, and even PowerofEvil can be slotted in for a small amount of salary relief. Again, Froggen, Pepii and Nukeduck are all great value if you're playing a tournament lineup stacking their respective teams.

ADC: Alright, this will probably be my biggest point of debate tomorrow: do I pay up for Hjarnan or not. I absolutely love CandyPanda and Hjarnan, and even Rekkless is way up there. However, Hjarnan's price tag pretty much puts him out of the equation unless you want to supplement him with MrRallez. Honestly, Rallez is so cheap that it could make sense to roster both him and Hjarnan in a HWW. You know at least one of them will have a huge game, and possibly both if the game gets out of control.

Support: There's literally no difference between kaSing, nRated and YellOwStar. Pick whoever fits in your lineup, as there's a bit of a drop after those 3. Don't pick Mithy, he's crazy expensive. Unless you're playing in a tournament, in which case pick him, as zero others will and in the (31%) chance of an OG win, you'll win everything.


Alright, that's it for me, happy drafting! If you are still trying to figure out what I mean when I say cash game or tournament lineups, check out this brief little write-up here, and you can sign up for AlphaDraft here: http://bit.ly/1D2g2Lc. See you out there!

Wednesday, July 8, 2015

EU LCS W7D1 - Projections and Thoughts

Sign up for AlphaDraft here -> http://bit.ly/1D2g2Lc

I'm still in the process of deciding exactly how I'd like to structure this post and with what cadence I'll put these out, but for now I'm going to attempt to do every day there's EU or NA LCS action... In the future I might run through both days of EU and NA in one post each, but let's see how long I can keep this up with more individualized daily thought.

Team Projections and Odds

Let's take a look at what my model thinks of this weeks matchups. I'll provide a write-up on roughly how my model works, but for now that's my secret :) [it's not that complicated, you weight historic performance of players with their likelihood of winning using some voodoo math]:
W7D1 team aggregate stats and projections. Value is simply points per $. Coloration is provided for readability... Blue/Green is good, Red bad.
Unsurprisingly, the heaviest favorite of the night, UOL, is the best projected team for overall points. To those who have watched them play, especially in past LCS splits, this makes total sense. UOL historically has played in drawn-out, high kill matches. Last season they ranked 4th in EU in kills-per-game while also managing to rack up the 3rd most deaths-per-game. That's an impressive feat, and evidence of the blood-bath nature of their games.
There will be blood... of Unicorns and Wolves.

However... this current season is somewhat of a different story. This season they have the 4th fewest deaths and 4th fewest kills per game in EU. Their opponents, the Wolves, have also been somewhat tame, putting up only the 6th most deaths and fewest kills in EU. However, my model does take into account historic performance of players, and some of last seasons blood and gore is built out here. Additionally, because they are such heavy favorites to win (and knowing CW doesn't really ever kill anyone) they are still a very safe bet to put up decent points, but there's a chance my model is overselling their total point production if we believe they are 100% over their glorious spring-split blood baths.

As expected, I think Origen and Fnatic are also good bets, with my model strongly preferring rostering Fnatic due to their lower prices. While I really like ROC players when they win, they are currently not favored enough for me to roster many of them in cash games, but perhaps would make a solid tournament play.

Favorite Players by Position


Top: Unsurprisingly top laners in EU haven't particularly separated from each other in terms of carry ability, so I generally prefer them in the order of their likelihood of winning. There's honestly not much difference between Huni and Vizicsacsi statistically, so it's really a preference in terms of how you view each game will play out... I personally think csacsi has a wonderful matchup against Lenny (who has not been playing great), but that assumes they actually lane against eachother.

Jungle: Kikis, Reignover, Amazing and Jankos are all very close for me, separated only really by their salary and expectations of game flow. I really don't know if H2K will let Fnatic walk all over them, so there's a chance that game is more controlled and objective focused. On the other hand, Giants have given up the 2nd most deaths per game this split, while Origen have come out guns blazing putting up the 3rd most kills-per-game (and a propensity for late-game fountain-dives and BM'ing) making this match potentially bloody, which is always good for DFS.
Mid: Again here FNC and UOL come out on top, but based on game-flow it might be risky to pick Febiven despite his cheap price tag. However, my model likes him a lot, he's been playing pretty well and it would be silly to have no exposure to Fnatic. I may take a gamble on him to free up some cap space for more expensive ADCs, but Peke and PowerofEvil are solid alternatives.

ADC: If you're going to pay up for a position, do it at ADC in EU. At least according to my model. I rate Niels, Vardags and Rekkles very highly. Even CandyPanda shows up high on my list and at terrific value. There's always a chance Niels shows up higher than he should in my model due to his reduced sample size of just half a split, but never-the-less he's also a great choice as long as he keeps putting up big numbers in favorable matchups.

Support: Pick your poison here. I personally don't see much difference statistically between Mithy, Hylissang and YellOwstar... They're all decently priced with similar projections. For me it depends on 2 things: what type of game are you playing and who have you already picked. I'll generally use the support position to hedge on teams that I'm over-invested in with a cash lineup, while tournament lineups I'd just grab whoever is supporting my ADC of choice. For example, if I've only got 1-2 UOL players and 2+ FNC or OG players, I might grab Hylissang to give me a bit more exposure to the UOL game and make sure I'm not too invested in either FNC or OG.



Alright, that's it for me, happy drafting! If you are still trying to figure out what I mean when I say cash game or tournament lineups, check out this brief little write-up here. See you out there!

Sunday, July 5, 2015

DFS 101: eSports Edition

The past few weeks I've funneled almost all of my daily fantasy sports (DFS) volume away from MLB and into eSports, something I never thought would happen. Several AlphaDraft users have asked how I build my lineups, how I incorporate odds, etc. For someone who plays traditional DFS sports these are all super obvious questions and answers, but a majority of players on AlphaDraft seem to be going through the DFS learning curve for the first time, so I figured it would be a good time to provide a bit of an overview and introduction to some things that I've taken for granted after playing NFL, NHL and MLB at decent volume.

Building a Lineup:


There isn't one way to build a lineup. I'll go into much more detail down the line, but here are some really, really, really important things to keep in mind that will help you immeasurably in the long run:
  • Know what kind of contest you're playing in.
    • This sounds obvious, but there's a fundamental difference between a contest that pays out only the top few spots a lot of money (top-heavy payout style, I'll refer to these as "tournaments") and a 50/50 (half-win) or head-to-head. More below about what strategies you should use in these various contest formats.
  • Create a lineup-building process that's repeatable.
    • Treat DFS like a science experiment. The scientific method is actually really, really helpful here. Have a process, and follow it. If it works, know why it worked. If it doesn't work, know why it doesn't work, or at least where you can start looking to make changes.
  • Track your results.
    • This should be obvious, but a lot of people ignore this piece. Track your results. Know how you're doing. Importantly, what kind of contests you're doing well in and poorly in. If you're crushing 50/50s and head-to-heads but losing all your tournaments, you should be focusing your money on those formats that you're winning.
    • A corollary to this is track what buy-ins you're playing at as well. Maybe you're having much greater success playing several $\$5$ 50/50s (half-wins) rather than playing one or two $\$10$ contests.
  • Use data where you can.
    • Again, it's important that any lineup you build pass the eye-test, but it's also important to avoid overly relying "on your gut". It's not a bad thing if you're just great at picking lineups based on feel, but it makes it very hard to turn DFS into a repeatable process, and there's no reason to avoid data that's available to you if it's accurate and useful!
Overall team projections today... Unfortunately there were several upsets but because I didn't go too big on any one team I still came out way up in cash games.

Alright, now that I've written down these horribly vague guidelines, I'll go through exactly what these mean and how they apply to lineup building.

Contest-Specific Lineup Construction

The most important thing when building a lineup is knowing what type of contest it's going to be used in. For simplicity and industry continuity I'm going to refer to contests as one of two types:
  • Tournaments
    • Top-heavy payout curve where only the top 5-10% of the field make a good return. Here your goal is to finish at the very top. You don't really care if you come in the top 25th percentile vs the bottom 5th percentile. The return to you is the same for each: 0.
    • Because of the payout structure, the best strategy is to pick a high-risk, high-reward lineup. On AlphaDraft this means stacking 3-4 players from one team, and 2-3 players plus the "team" position from another team. I talk a little about the concept of "stacking" in my other post here.
    • Pick for correlated variance: in order to win first in one of these tournaments you need several players with 40+ points. If Piglet gets 45 points, it's very likely that Xpecial, Dominate, Fenix and/or Quas also had some really great point totals, as the game they played was likely very bloody and drawn-out. If Liquid loses in this situation, whatever. You will never win every tournament, but the goal is to find some teams like Liquid that could win in a bloody game, and when they do you want to have as many of them as possible. AlphaDraft lets you roster 4 players from a single team, so do that. In tournaments.
Example of "tournament" contest structure and my winning Liquid-Dignitas stack.
  • Cash Games
    • I use the term "cash games" to refer to 50/50s (half-win) or head-to-heads. The fundamental difference between cash games and tournaments is that your lineup should be constructed with a completely different goal in mind: you want to build a lineup that has the lowest possible chance of sucking, and finishing in the bottom-half.
    • This means correlated variance isn't a great idea. In the above roster, if Liquid lost quickly that lineup would be utterly worthless. This means it's generally a bad idea to pick more than 3 players from a single team (unless one team is drastically underpriced or in the easiest possible matchup).
    • Essentially, by picking players from 3-4 teams rather than 2 you're hedging - it's incredibly unlikely that all 6 of the players you select have amazing games, especially if they're on different teams, but it's also incredibly unlikely they all have horrible games. This means you shouldn't finish in 1st out of 100, but should hopefully finish in the top 50 more often than not.
Example of cash game. Top 5 win $180. Even though ROC lost, I only picked 3 of them, while many opponents picked 4x ROC - killing their chances of winning when ROC lost.

Just to reiterate, the goals for the different contest types are very different... I feel like too many people don't do this, and it's really important.
  • Tournaments: Win. If you ain't first, you're last.
    • Best strategy: high variance, boom or bust lineup with a "high ceiling".
  • Cash Games: Don't suck. You don't care if you win, just want to beat half the people.
    • Best strategy: safe picks across several teams for a "higher floor".
Alright, enough of that. Now that we know what kind of lineup we want to build, no we have to figure out how to build it.

The Lineup-Building Process

    I mentioned the scientific method mostly in jest, but it really is important to make sure that you know what you're doing so that you can adjust your play style or lineup construction process if you're not doing well, or be able to continue building the same way if your process is working.

    Defining the process:

    A lot of people seem to pick players based on gut feel. That's not the worst idea ever, but it's very, very hard to do this reliably and repeatably. Additionally, it makes decisions at the margin very difficult and often-times arbitrary.

    For example, Bjergsen is a God. We know that. But at what point is salary prohibitively expensive? Unless his matchup is awful he's almost always going to be one of the better mids in NA LCS (recent general disarray of TSM aside). However, if he's $\$10,000$ is he worth picking? What about $\$9,000$? What if Shiftur costs $\$7,000$ and is playing Team8? What if he's $\$8,500$ and playing Team8? It's very, very, very hard to determine whether a certain player is a "good value" if you don't have some objective expectation of how they will perform. If Bjergsen costs 25% more than your alternative, you need to be confident that he'll score 25% more points on average, and being confident in a statement like that is very hard if you're relying solely on your gut.
    The state of TSM right now: General Disarray. 
    Player Stats and Game Odds:

    In order to avoid relying solely on your gut, it's important to have some data to sift through. FantasyRift has pretty good stats on most leagues, and it's in a very clean form that already calculates AlphaDraft points for you... I'd suggest using that as a primary resource, and looking up match-history, etc, as a secondary check.

    Another important resources is a way of calculating team's odds of winning. This can be done subjectively, by gut, or by relying on external odds. I use a combination of several sportsbooks that offer betting on eSports to calculate a team's chance of winning a game. Sites like PinnacleNitrogen and Unikrn offer relatively real-time odds for upcoming LoL pro games that are reasonably accurate. No odds will be perfect, but using these as a baseline can be extremely helpful in determining which teams are expected to win, and where you might be able to find some value in a traditionally mediocre or poor team in a great match-up against an even worse team.

    Interpreting Odds:

    I already got several questions about how this is done, but it's quite simple. If we look at the upcoming Unicorns of Love vs Copenhagen Wolves match this week we see UOL at 1.08 and CW at 7.20 on Unikrn. This means that UOL is roughly a $1/1.08 = 92.5\%$ to win, while UOL is at $1/7.20 = 13.8\%$ to win. However, these two numbers add up to over 100%. This is because Unikrn takes a commission, so the odds are never going to add to 100% exactly. The ratio is still what we want, however. So $92.5\% / (92.5\% + 13.8\%) = 87.0\%$. Similarly CW can be calculated the same way at $13.0\%$.


    We can use odds like this to make the aggregate stats on FantasyRift more relevant. In this match, it would be relatively surprising if Vardags only scores 16.59 points (his current season average). The reason is that he is a heavy favorite in the match-up against Wolves, and as such should do better than his season-average would suggest. I use per-win and per-loss projections for each player weighted by their respective odds of winning and losing, but there are all types of things you can do.

    I'll typically look at the overall salaries of each of the odds-favored teams to get a sense for which teams may be under- or over-priced.

    Track Your Results

    This is a quick one, really just a reminder. Track your results. Keep a spreadsheet of how much you're depositing, winning, etc. Also, keep it updated by game-type. Are you crushing tournaments? 50/50s? Know where and how you're winning so you can focus your money into these types of contests. Pretend your a portfolio manager - you don't want to hold on to stock that keeps losing you money, you should sell it and invest in a game-type that you're (more) profitable in.

    I've been tracking my results pretty closely the past 4-5 weeks, and have been dumping a bunch more money into AlphaDraft than I had previously as my methodology has been proving quite successful and profitable. Here's a recap of the top-10 (gross, not net) winners each of the last 4 weeks. As I saw more success, I continued upping my play... 

    The Rise of nickyd

    Week 1 - 9th
    Week 2 - 6th
    Week 3 - 3rd
    Week 4 - 1st!

    Alright, that's it for tonight. If people have questions feel free to ask me on AlphaDraft if I'm in the chat, otherwise drop 'em off here. I'll try to help out when I can. Additionally, if you've got suggestions for further info on DFS eSports, drop 'em here as well.

    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.