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.

No comments:

Post a Comment