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.