A Pilot Study


Statistical analysis of NHL hockey has come a long way, even in the relatively short period of time that I’ve been writing. But where should it go next?

There is a lot of information that our current knowledge doesn’t capture, and I have an idea to remedy some of that ignorance, at least for one team.

Advertisement - Continue Reading Below


I’ve spent that last few seasons hand-tracking various stats. In 2012-13, I recorded zone entries, determining who got the puck into the offensive zone, how he did it and what the outcomes were afterward. This season in Oklahoma, I hand-tracked unblocked shot attempts (Fenwick) while Barons players were on the ice. I’ve done things too like track every puck movement in a playoff series, and naturally I’ve covered scoring chances for years.

It’s something I encourage anybody interested in the game to do, because it lends focus to observation. There’s so much going on in a hockey game that it’s hard to catch and remember it all; the enforced discipline of something as simple as following scoring chances has made following the game a richer experience for me personally.

Of course, that’s one benefit; the greater one is gathering useful information.

There is a lot we can do with statistical analysis in its current state. Tyler Dellow has moved to the next critical step with Corsi – breaking it down situationally and combining it with video to determine what has happened (this for instance, though not including video, is awfully cool).

Advertisement - Continue Reading Below

But there’s also a lot that we can’t do.

One remarkable example is the work of Eric Tulsky and others on zone entries (moving beyond play-by-play data and into privately-recorded stats). The latest evolution of it to suss out defensive performance is a fantastic additional refinement. This is all data that goes beyond what the NHL tracks, and that helps tell us not just how a player is performing but starts offering us glimpses into why.

As I write about the Oilers, I’m naturally interested in the same sort of information about them, but I wanted to expand the scope to capture more data. The following is what I have in mind.

The Test Run


I went back to the game between the Oilers and Senators on March 4 (Ales Hemsky’s final game – might as well pick one of the entertaining contests for an exercise like this), and broke down the following from the first period:

  • Every territorial change or attempted territorial change (i.e. moving from the defensive zone to the offensive zone) 
  • Every possession change (turnovers, takeaways, etc.) 
  • Every shot attempt (goals, shots, misses and blocks)

There were 258 such events in the first period of the game; it took about three hours to log them all (if history is any guide, I can cut that down as I get better at this). In addition to time-stamping each one, I noted who was on the ice, which Oiler was closest to the play and added an explanatory remark to the play.

Advertisement - Continue Reading Below

The Results


The things we can take from this kind of data are, in my view, exceptional. Consider these three examples:

  • Getting into shooting lanes. In our 20 minute test run, a shooter to whom Jeff Petry was closest tried to shoot the puck four times. Of those four shots, two were blocked by Petry, one went wide, and in a fourth case Petry was able to force it to a bad angle but couldn’t close off the lane. In contrast, Mark Fraser (who played fewer minutes) was the defending Oiler on two Ottawa shots; both times the Senators got the puck on net.
  • Holding the defensive blue line. I’m stealing this idea from Tulsky and co. because it’s an excellent one. In our 20 minutes, the Senators attempted to gain the Oilers’ zone six times on Martin Marincin’s side of the ice. Three times, he broke up the play and once he pressured them enough to force a dump; the other two times they gained the zone with possession couldn’t stop it at the line. In contrast, Mark Fraser was on the receiving end of four of these and in three cases the Senators gained the zone with possession.
  • Turnovers. We aren’t just capturing turnovers and takeaways (something the NHL is brutally inconsistent at) but we’re capturing context, because we can compare them to exits and entries. We know Andrew Ference made three zone exits and two zone entries, but we also know he lost possession of the puck three times – once by losing a puck battle, twice by making poor passes. Over time, we’d be able to compare how frequently players make bad possession decisions relative to how much of the puck-moving load they’re carrying.

One game provides an interesting snipped, but over the course of the season we’d be able to learn a lot about the players involved – including items like defensive performance that can be hard to measure. This should also make our current statistics more valuable – for instance, a player who consistently plays too conservatively at his own blue line is going to run up a terrible Corsi, even if he’s great in other areas.

We’ll also be able to compare the Oilers to their opposition, because we have all this data for the other team.

What It Looks Like/Suggestions

5.1.14 OTTEDM

The shot above shows how I tracked the data; the sequence is from the Oilers’ first period power play. Apart from what we’ve already illustrated above, we get an idea of the Oilers problems. The Oilers scored here, but the gaps between their entries and the Senators’ exits – four seconds, four seconds – show how they struggled to get setup in the zone. Even on the goal, Hemsky carried the puck in on the rush and scored three seconds later; it was a moment of personal brilliance rather than power play efficiency.

Advertisement - Continue Reading Below

I’ve put this here in a search for suggested improvements. I’m hoping to do this kind of breakdown for all 82 Oilers games next year, and it would be great to know what other information would be considered valuable.


  • Wow. Great stuff JW. Things like this are exactly where stat tracking in hockey needs to go next.

    When it comes to deep analytics there’s no question in my mind that baseball has come the furthest, but to see people like yourself taking the initiative to push the issue is really encouraging. Great stuff!

  • I’ve always thought a play completion% would be a great stat for hockey players.

    I would break it down to six categories based on where the play is and which player has the puck.
    1.Offensive zone/with possession:
    example: Eberle has the puck at the half wall. If he completes a pass(regardless of difficulty) it is 1/1. If he gets the puck on net it is 1/1. Anything else is 0/1. If the pass is good but his teammate bobbles it, I would charge that player with an error.

    2. Offensive Zone/ without possession: The non possession part is tricky. If a player has an opportunity to create a turnover and fails, that is 0/1 (criteria would need to be made very clear for what is considered ‘an opportunity)

    3. Neutal Zone/with possession
    4. Neutral Zone/without possession
    5.Dzone/w possession
    6.Dzone/without possession

    Knowing a player’s likelihood of completing a play or creating a turnover is huge in my opinion. Over time, the value of all the plays would hopefully balance out, although some players tend to take risks more than others and I’m curious what that would mean for the numbers.

    Something I hate about corsi is: When a team holds the zone for 3 minutes and only generates 1 shot, but the opposition may generate 3 shots with only 20 seconds of zone time. Corsi doesnt factor that in at all.

  • One area I have tracked has been Own Zone turnovers. I felt that this was the key to transitionning to offence.
    The Oilers have been very poor compared to their opposition in turning over the puck and often the advantage of the opposition is overwhelming.
    If you look at the top teams their breakouts are much better against high pressure teams. The Oilers look like a Keystone cop film.
    This is one area where data could help identify the issue and coaching strategies implemented to improve.