clock menu more-arrow no yes mobile

Filed under:

Using Time To Track Shot Attempts In A Hockey Game

We know how much players shoot, but do we know when?

NHL: Nashville Predators at Dallas Stars Jerome Miron-USA TODAY Sports

The hockey analytics community spends a lot of time trying to evaluate players and teams. Innovations include everything from old school plus/minus to medium school Corsi/shot attempts to new school expected goals, HERO charts, and more. This work is so useful that a few of the analysts get picked up by the teams themselves (and we all lose their public data when it happens... sigh).

Much less effort is spent analyzing the game as a game, studying the patterns of how it works, regardless of how good a player or a team is. One critical feature that disappears from most player evaluation metrics is time. Hockey takes place over 60 minutes and 82 games. Are there ebbs and flows over a game and a season that we can predict? Moreover, is there any way that a coach or player can use those trends to help their team succeed?

This post is just a quick glance at patterns over the course of a game, looking at how many shots are attempted every 20 seconds. It’s looking across all teams and all games for the regular season in 2016-2017. I will put the plots for each period here, and then the plot for the whole game at the bottom.

To read these, the x-axis is time (20-second groups) and the y-axis is Corsi or shot attempts. A period is 20 minutes long, which means that there are 20 groups of 60 seconds each, or 20 x 60. If there’s twenty 60-second groupings in a period, then there’s sixty 20-second groupings in a period (20 x 60 = 60 x 20, yay, commutative property). That’s why there’s 60 points along the horizontal axis. Every vertical grid line is 10 groups or 200 seconds or a little over 3 minutes of the period.

Period 1

Corsi over time for all players and all teams, Period 1
Author (pacatrue) using ggplot2

Period 2

Corsi over time for all players and all teams, Period 2
Author (pacatrue) using ggplot2

Period 3

Corsi over time for all players and all teams, Period 3
Author (pacatrue) using ggplot2

Do we see anything at all?

Yes, and most of it is quite understandable. The pattern can be hard to see in the black dots, so I’ve added a smoothing line over them, the blue line on each plot.

In all three periods, things are a bit slow to start: it’s hard to get a shot off 5 seconds into the game. Similarly, there’s a mad scramble in the last couple minutes of each period, where you throw a lot at the net. Any casual fan has observed this.

In between, anything interesting? Yes. If you focus on the blue line, you can see that shot attempts peak at 2-3 minutes into every period. So basically, they come out raring to go and shooting as much as they can. It takes a bit to get going, but that’s your burst. Then, following the blue line, things start decreasing. It’s one more shift after your last. You’re getting more tired. A few less shots are being attempted. Then… the mad scramble at the end, followed by a rest. After the rest, you come out flying again.

This pattern of flying out there, getting slower, and then a final burst makes total sense.

There’s a bit more of a pattern. You can see it in the graphs for each period, but you can see it more clearly in the graph for the whole game. That pattern is simply that things dip more in the third period than anywhere else. You would guess this is mostly because they are tired, but game situations and strategies might also influence it.

Whole Game

Corsi over time for all players and all teams, entire game
Author (pacatrue) using ggplot2

Can anything be done with it?

Maybe. If a coach knows that the natural point for the other team to dip is about 15 minutes into a period, particularly the 3rd, could anything be constructed to exploit that? Maybe, an Arvy-style attack that is timed against the natural flows of the game?

This opens up analysis to other possibilities: teams, players, the course of a season, corsi against vs corsi for… I have a few in mind. What would you like to see? Let me know in the comments.