Numbered Days: October 19th

Numbered Days is a new (and hopefully recurring) weekly feature looking back at the statistical week that was in the NHL. Raw data was extracted from War On Ice, Natural Stat Trick and Hockey Reference.

Sunday, October 12: Jets goalies post an 0.840 even-strength save percentage in a 4-1 loss to the Kings. This is the 137th time in 378 games since Ondrej Pavelec became a fixture in the Thrasher/Jets’ net that the team has posted a sub-0.900 5v5 Sv%.

Monday, October 13: Steven Stamkos records 12 shots and 14 shot attempts versus the Canadians. Since the 04-05 lockout, only 41 other players have recorded at least 12 shots in a game, and only 4 players have done it in less time than Stamkos’ 17:16.

Tuesday, October 14: The Leafs attempt 20 more shots than the Avs, and win the game. This was only the 7th time in 159 games since Randy Carlyle was hired that the Leafs have out-Corsi’d their opponents and won.

Wednesday, October 15: Chicago dominates the Flames, out-Corsi-ing them 96-33 in a 2-1 OT Loss. Chicago managed to hit the net with 50 of their shots, while only allowing 18 to get through to netminder Corey Crawford. In the entire history of the NHL only 14 other teams have managed to lose while putting 50+ shots on net and giving up less than 20. I think it might seriously be time to call the cops, Joel Quenneville.

Thursday, Oct 16: 20-year old Damon Severson scores 2 goals in a 6-2 loss to the Caps, becoming the 14th youngest defenseman in NHL history to accomplish that feat. Perhaps more impressively, he becomes only the 7th defenseman aged 20 or younger to record 8 shots in a game.

Friday, October 17: Nick Bjugstad puts up a perfect (Corsi) game after the Sabres fail to put even a single attempt towards the Panthers’ net while he was on the ice. Bjugstad’s overall Corsi of +23 is the most shot attempts for a player has ever recorded without allowing a single shot attempt against in the BTN era.

via Mike O’Brand

Saturday, October 18: The Sabres suffer their second consecutive shutout loss, losing the even-strength Corsi battle 52-37. Over their 4 games this week, the Sabres managed to pull out only a single point after facing 228 even strength shot attempts against and only putting 128 towards their opponents’ nets.

Tagged with: , , , ,
Posted in Numbered Days

2014-2015 Season Predictions

Hockey is almost back! Hurray! With the pointlessness of the preseason finally behind us, and with the start of the real games less than 24 hours away, I thought I’d throw my hat into the ring and offer my best attempt at crystal ball gazing. I wanted to come up with a methodology that was relatively straightforward for 2 completely selfish reasons: 1) I ran out of time to do a more complicated methodology that I was planning; and 2) I’ll hopefully be able to blame the simplicity of the model when everything goes wrong. The basic approach that I took (which is certainly full of holes that I’ll elaborate on below) was:

  • I downloaded each team’s current roster from Wikipedia (possible source of error #1)
  • For each player, I estimated their even-strength time on ice by taking their historical TOI Pct over the past 3 years and adjusting that for their current team. In other words:

    Est TOI = Lg Avg Tm TOI * (Ind. Avg TOI Percent)/(Total 3-Year Avg TOI Percent for Current Team)

    For players without a TOI prediction, I used the average forward or defenceman rate in the calculation above (possible source of error #2)

  • I then classified each team’s goalie as either a starter, 1A, 1B or backup. Based on that classification, I assigned each goalie an expected games played (possible source of error #3), and used the projections from Hockey Graph’s Marcels system to estimate a team level Save Percentage for the year.
  • Lastly, I took each player’s weighted average xGD20 (possible source of error #4) over the past 3 years (using a 5-4-3 and TOI based weighting), adjusted it for the team-level Save Percentage I calculated above, and used it to calculate an expected goal differential. For players without a prediction (rookies, for example), I just assumed they’d be league average players over the coming year. I then ranked the teams by expected goal differential, and presented the (sometimes somewhat unbelievable) results below.

As I said, there’s a lot of areas where this prediction could go wrong:

  • First, the rosters I used are likely incorrect, and if not, they almost certainly will be within the week.
  • Second, my goalie playing time projections are going to be off, and possibly significantly so. And while the Marcels system provides us with a good estimate of where we expect a goalie to be, single season save percentages are incredibly variable (and hence, incredibly difficult to predict).
  • Third, while xGD20 is a metric that tends to persist fairly strongly season-over-season, it is based on relative statistics rather than absolutes. This is an issue as putting together a group of good-player-from-bad-teams won’t necessarily yield a good team, and vice-versa.
  • Fourth, none of this takes into account special teams or shootout ability. A project for next year I suppose.
  • And lastly, of course, predictions for a whole season of hockey are really, really hard to do, so cut me some slack with the output. What’s presented below are the results of the model I described above, with no other tweaks or inputs from me whatsoever. I hope that over the course of the year I’ll be able to improve upon my methodology to the point where I can actually make predictions on the number of points a team will earn, but at this point you’ll have to live with my duct-taped together solution.

So without any further delay, here goes: Read more ›

Tagged with: , ,
Posted in Predictions

Is Jonathan Quick Overrated? Shot counting bias and save percentages

Travis Yost, TSNs newest hockey analytics writer, recently posted a piece outlining his most overrated and underrated players from a fancy stats point of view (related note, Travis’ piece on Nathan Mackinnon is a must read, provided they actually fix the link on the new site). His lists contained a lot of names that will be familiar to those who keep up to date with the analytics world: Benoit Pouliot, fancy stat darling of the 2014 free agent class, and Marc-Edouard Vlasic both make appearances in his group deserving of more respect, while Andrew Macdonald and eternal stats whipping boy Jack Johnson are pointed out as having more eye test value than actual value on the ice.

One player who Travis called out as being overrated, Kings goaltender Jonathan Quick, caught my attention in particular though. While Travis isn’t the only analyst who has accused Quick of getting too much media praise (and his critique about Quick’s 5v5 save percentage is certainly a valid point), I’ve always felt that Quick doesn’t tend to get a fair shake from the stats community given that his shots against numbers have been so far from the norm in recent years. As I’ve written about in the past, save percentage tends to increase as shots against go up, and Quick is a goalie who has faced an unusually low number of shots over the past few years. If we look at the 38 goalies who have played at least 3000 total minutes over the past 3 years, only 2 (Brian Elliott and Martin Brodeur) have faced fewer even-strength shots on a per 20 minute basis than Quick. Part of this is certainly due to the fact that he’s played behind LA’s puck possession machine for the past few seasons, but when we’re presented with data like this it does beg the question of whether his shots against data is accurate (or more precisely, whether there’s any bias in the data recorded by the LA scorer at home).

Read more ›

Tagged with: , ,
Posted in Goaltending

Player Comparison Tool/Salary Generator

Every NHL contract negotiation will always feature at least 2 common events: 1) reporters listing off subjectively-determined comparable players to peg a player to a given salary (“He’s going to be looking for Andrew MacDonald money”); and 2) fans picking-and-choosing stats to poke holes in the analysis performed by the media and come up with their own valuation. While the player evaluation tools available to the hockey community have grown over the past few years, the use of these tools to value players has always been somewhat lacking-should we look at a player’s Corsi-Rel, or his raw CF%? How do we include contextual factors like zone starts in our analysis? And what if there’s something that our stats don’t measure, that really should be included in a proper valuation? On the other hand, while finding comparable players is an admirable approach, the comparisons that are often used include such factors as “playing the tough minutes” or “bringing heart into the dressing room” or “he’s not Russian”. While these make for nice storylines (except the last one), they don’t always translate into good decisions (as the Flyers will likely find out with the aforementioned Mr. MacDonald).

As a fancy stats enthusiast and someone generally interested in tinkering in Excel, I wanted to look at whether we could blend the approaches to come up with a way to turn advanced statistics into comparable players. While I used a nearest neighbour analysis to find comparable players in my free agent preview this year,  I found that it was tough to translate the results of a single variable (in this case, xGD20) into a salary, particularly considering that important factors such as usage weren’t included in the analysis. I wanted to put something together that was flexible enough that it could be modified to take different variables into account depending on the kind of analysis that was being undertaken (for example, comparing players on usage or comparing players on performance) to allow any analyst to decide which were the stats that mattered when determining player salary. And so, after the usual few weeks of procrastination, I’ve finally built a working Player Comparables Tool, which I’ve put up for download here.

The underlying spreadsheet that drives the whole tool was put together by the amazing Rob Vollman, who literally wrote the books on hockey analytics (which you should go purchase immediately if you haven’t yet). Pretty much every piece of data you could want to include is in there, including both stats of the fancy and non-fancy variety. The tool is setup to allow you to choose up to 10 stats to include in your analysis, and to weight them as you see fit. All changes should be made to the highlighted cells on the Player Comparables tab for best use-if you’re an NHL exec whose tinkering leads to a bad deal, I’m not giving refunds.

The approach the calculator takes is to find a given player’s “nearest neighbours” across the selected variables, calculating a z-score for each variable to ensure that everything is scaled the same way. I’ll spare you the rest of the nitty-gritty details of the calculations, but if you want to dig into it a bit more, the calculation “steps” are more or less outlined in columns O-AR of the “Consolidated” sheet.

The one piece of data that’s missing is a differentiation between contracts that cover UFA years, versus deals that are only for a player’s RFA seasons. This unfortunately tends to understate the salary of some of the UFA deals that get signed, but with the data at hand it’s a necessary limitation.

A few other things to note:

  • If you choose only a few stats you’re likely to get wonky results and/or errors (this is due to ties in the nearest neighbour ranking).
  • If you want to add your own stats all you need to do is add them onto one of the tables (Main, PP, EV, PK), and they should automatically appear in the dropdowns.
  • If you want to use more than 10 players in the calculation, you just need to add rows below the 1-10 names, and adjust the formulas as appropriate.
  • All of the salaries in the sheet are based on 2013 cap hits. If you want to update, edit the Cap Cost column (CX) of the Main Page.

So how well does the predictor do in actually guessing free agent salaries? I took a very basic approach, equally weighting OZ%, ES CF%-Rel, ES TOI%, PP TOI%, PK TOI%, ES IPP, Total Sh%, ES PenD/60, ES Pts/60 and PP Pts/60, and compared the actual salaries with the nearest-neighbour predicted top 60 free agents from TSN. While this model is obviously a fairly basic one, it does do a decent job, generating an R^2 between predicted and actual of 0.25. With a bit of tweaking of the weights (and ideally, the inclusion of UFA/RFA deal info), it would likely get a lot better.

Actual vs. Predicted Salary for Top 60 Free Agents (salary data from

Actual vs. Predicted Salary for Top 60 Free Agents (salary data from

If you have any questions or issues with the sheet (or, if you find any bugs) don’t hesitate to let me know either in the comments or at puckplusplus AT gmail DOT com.

Tagged with: , ,
Posted in Free Agency, Predictions

When should teams attempt to block shots? Looking at the break-even success rate for shot-blocking

The 2013-2014 season was a painful one for Ottawa Senators fans. After reaching the playoffs in both of the previous two seasons, many analysts predicted that the Sens were on the verge of breaking through into the league’s elite. Instead, the Sens struggled to string wins together, and finished the year 11th in the Eastern conference in spite of posting a 52.4% 5v5 Corsi percentage, a number that had them 7th in the league.

One major reason that the Sens failed to capitalize on their relatively strong possession numbers is that their Corsi advantage failed to translate into recording more shots than their opponents. Much of this had to do with the fact that the Sens blocked shots at a rate that was significantly lower than the rest of the league. While the league average block rate was 25.6% (total blocks/total Corsi attempts against), the Sens only got in the way of 20.5% of the shot attempts directed towards their net. And while some of this may be bad luck, we do know that blocked shots show a reasonably strong repeatability at the team level. Moreover, there’s ample evidence to suggest that this reluctance to block shots was an intentional decision on coach Paul Maclean’s part.

Now there’s definitely an argument to be made that attempting to block shots can be a risky proposition. You may end up screening the goalie or deflecting the puck on your own net, both of which increase the odds that your goalie isn’t going to stop it. Letting the goalie see the puck and staying out of the way is a mantra that’s oft repeated, in particular by a certain Saturday night first intermission hockey host. But there are obvious benefits to blocking a shot too: a successful shot block has a 0.00% chance of going in.

The question then is, how successful do we need to be when blocking shots to make up for the increased risk of a screened or deflected shot. If we consider only two possible outcomes, a successful block that prevents a Fenwick attempt, or a failed attempt that results in either a miss (we’re not worried) or a shot on goal with an increased probability of going in, then we can calculate the rate that we need to be successful at in order to make the attempt worthwhile.

Read more ›

Tagged with:
Posted in Theoretical

What’s a goalie worth these days? Determining replacement level goaltending

The concept of a replacement level player is one of the most important ideas in sports analytics, but one that unfortunately is used relatively infrequently in hockey. Replacement level is meant to represent the level of talent that’s widely available to any team at little or no cost. Comparing players against replacement level is important because it essentially tells us whether a player is worth keeping or not – anyone performing below replacement level should be discarded, since it’s likely that any free-agent or waiver wire pickup would perform better. It’s important to note that this is different than comparing against the average player – when we compare against the average we know whether a player is better or worse than most of the players eating up minutes throughout the league, but it doesn’t give us any indication of whether he’s worth keeping around.

For position players figuring out an appropriate replacement level is extremely difficult – there’s no broad agreement as to what individual statistics should be used, let alone any idea of how to determine who a replacement level player is. For goalies, however, we have a half-decent metric (Even Strength Save Percentage), that’s broadly accepted as being representative of individual talent, even if it is somewhat more variable in the short term than we’d like.

Read more ›

Posted in Uncategorized

Why is it so hard for good teams to get better? Looking at the value of a marginal goal

We’re now three days into free agency and with most of the marquee names on the market already signed on for the coming year and beyond, teams and fans alike are starting to look over their rosters trying to figure out whether they’re sitting in a better position than they were on June 30th. With some teams the improvement is fairly obvious: after finishing 8th in the West last year the Dallas Stars have added Jason Spezza and Ales Hemsky and looked poised to take a run at the Blues and Blackhawks for Central Division supremacy. The Anaheim Ducks also made a big splash, bringing in Ryan Kesler from the Canucks while only sacrificing Nick Bonino and Lucas Sbisa. Having added a big name to take some of the pressure off of Ryan Getlaf, should we expect a similar bump to elevate the Ducks to President’s Trophy champions next year?

This type of situation comes up frequently not just in the NHL but across professional sports: fringe team adds a few key pieces and turns into championship contenders, while a team that finished the previous year on the edge of winning it all can’t turn their added potential into dominance. Ultimately, what this comes down to is that the value of a given player isn’t the same to each team: adding on additional goals (or allowing fewer goals, depending on which way you look at it), has different effects on a team’s record depending on how good they were before. Adding Brad Richards to the Blackhawks isn’t the same as adding Brad Richards to the Blue Jackets would be. To put it another way, the value of a marginal goal decreases as a team’s goal differential increases (and in a non-linear manner, as we’ll see later).

To illustrate this point, I put together a quick simulation to look at how the value of an extra goal varies based on team strength. I began by generating 82 games, picking a random number of goals for and against between 0 and 5. I assumed that we were only looking at regulation play, and so allowed the game to finish tied in this case (while this isn’t perfect, practically it shouldn’t make much difference). I totalled up the initial goal differential across the 82 games, and then chose one of the 82 games to randomly add a goal to. If the game had initially finished in a tie, or with our simulated team down by 1 goal, I added one point on to their overall point total. Then, I repeated this process 50,000,000 times and counted how many times a team got an extra point by adding an additional goal. If we take that number and divide it by the total number of times we added an extra goal, we can figure out the marginal value of an added goal for a team with a given goal differential.

Pts. Per Marginal Goal

Pts. Per Marginal Goal

As we’d assume, what we see is that the number of additional points we expect a team to earn for adding an extra goal decreases as our imaginary team’s goal differential increases, and the relationship isn’t linear. A team that is sitting on a +20 goal differential gets less benefit from adding one additional goal than a team with a -20 goal differential. From a practical perspective, this means that it’s a lot easier for a bad team to improve than it is for a good team.

What’s interesting to note though is that the graph doesn’t actually peak at 0 as you might expect. While a team with just as many goals for and against might expect to each 0.36 additional points from adding one more goal, a team with a -50 goal differential will get about 0.37 additional points. On the other hand, a team with a +50 goal differential is only going to earn approximately 0.32 additional points from scoring once more over the course of a season. This might explain why teams are able to go from the bottom of the league to near the playoff cut-off so quickly while the teams that dominate are often a lot harder to knock of their perch.

Another way to look at this is by considering how many goals you need to add one extra win. While we commonly use a constant goals per win number when discussing player value in the analytics community (usually about 6), looking at the data above we know we shouldn’t expect the number of goals per win to be the same for each team. If we take the inverse of each number above and multiply it by 2, we can translate our marginal goal value into the number of goals needed to add one additional win (or 2 standings points in this case) for different team strengths.

Goals Per Win

Goals Per Win

Looking at it this way makes things slightly more obvious: a team with a -50 goal differential needs to bring on 5.3 additional goals to increase their win total by 1, while a team with a positive 50 goal differential needs to add over 6 goals to achieve the same result.

One thing to keep in mind here is that the values in both graphs above will change depending on the goal scoring environment. While in our model we assumed that each team had an equal chance of scoring and allowing anywhere between 0 and 5 goals, in reality the probabilities are different and while the results should generally look the same, the fitted curves that we generate will be different.

Nevertheless, the implications for teams shopping the free agent market should be obvious: while it might make sense for a team struggling at the edge of the playoff picture to look for one or two big pieces to propel them forward, for a team at the top it’s a lot more difficult to improve their place in the standings by spending money. This is of course complicated by the fact that it’s harder to find pieces to replace on a good team: even if you can go out and add a top line player forward, the player whose minutes they’ll be taking is likely to have been a useful player already. All of which is to say that it’s not all that surprising that teams often fail to strike gold and establish dominance through free agency: it’s not that they’re not getting better, it’s just that the numbers are often stacked against them from the start.

Posted in Theoretical

Get every new post delivered to your Inbox.