Take a Shot and Making It Count (Part 1)

Getting a goal in the NHL is an incredible feat.

Every player is flying on the ice, half of them looking to hit you, possibly in some way that the Department of Player Safety should really look at but won’t; a pass hits your stick just barely before you have to shoot; there’s a 6 foot-and-some guy covered in pads with lightning reflexes standing right in front of the goal; and 17,000 people just yelled "you suck" at you. That the puck ever gets in the net is a miracle.

In fact, the puck almost never does go in the net. There will be hundreds of touches of the puck during a game by a team, perhaps 3 of which result in a goal. In this post, we’re going to look at shots and goals and how to get more of them.

This post is an exploratory look at the process from shot attempts (Corsi) to goals based upon a play-by-play database for the season with 71 columns with over 2 million rows. It's from Corsica, before the site was taken down. This part looks at the filters on shots focusing at a team level. It starts with stats the are readily available elsewhere, but then moves to an area which is, to my knowledge, not calculated by others. In future parts of this series, I’ll dig deeper and look at shot location and type by team, and then everything on a player-by-player level, particularly for the Preds.

Let’s start with the Big Picture, examining all shots for the whole league. That’s right, it’s bigger. To make it a level playing field across teams, we’ll just look at the regular season so that every team gets a full 82 games and no more. Apologies to Freddy Hockey and Colton Sissons who did more in the playoffs than the regular season.

For the trivia buffs out there, the players across the league took 138,856 total shots during the regular season. Someone’s going to have to stage an intervention with that many shots. Players missed the goal on 29,070 of those shots and a player did an intervention, i.e. blocked the shot, 34,946 times. All of this results in 74,840 shots on goal over 1228 games. Now, the math whizzes out there might be saying, "hey! There should be 1230 games, because 15 pairs*82 = 1230. Where’s the missing 2 games?!" To which I say… stop being good with math.

Okay, I don’t know where those 2 games went from the database, but we can struggle on without them. We're looking for giant trends and if 2 games affects those trends, it means we haven't actually found anything yet.

Now, of those 74,840 shots, 6,920 of them were goals, about 9%. Okay, it’s 0.09246392. You math whizzes are going to cause trouble, aren’t you? Let’s summarise it all in a table.

Shot Type


Per team


Per Player





















Per Team simply takes the number and divides by 30 teams. Per Team & Per Game divides that by 82 games. Per Player counts up all the players who had a shot attempt, no matter how few (there are 882 of them) and divides the count again.

It’s a lot of numbers, but I think that seeing what’s average will help us understand what the Predators actually did as this series develops.

Notice how many shot attempts it takes to get a goal. If a player takes 157 shots over the course of a season, only about 8 of them should be expected to go in (the Per Player column of the table). Indeed, about 1/5 of shot attempts will be misses. Of the ones that are aimed well, about 1/3 of those will be blocked. And then of the ones that make it to the goalie, only 9% will go in. (The goalie saves 91% of them.) In total, only 5% of all shot attempts turn into a goal. (0.049835801, math sticklers.) So, on average, to get a single goal in the NHL, you should shoot 20 times.

When we see those numbers, it’s amazing that something like a Forsberg hat trick can ever happen, much less happen consecutively. The Prince would have to generate 60 shot attempts in a game if it was only based on averages to pot 3 goals.

So, let’s take a closer look at the process of getting from a shot attempt to an actual goal.

The player shoots the puck at the wise advice of the fan yelling from the stands. ("Stop skating around and shoot the puck!!"). When they do, the puck could miss the net, could be blocked, or could be stopped by the goalie. We can think of this as a series of filters on shot attempts.

The Miss filter

The Block filter

The Stop filter

There’s two basic ways to get more goals: (1) Take more shot attempts or (2) Increase your efficiency getting through these filters. The more advanced way to get more goals is to hope an elite defender or a 4th line center joins the play and accidentally puts it in the net for you. That method will not be a focus of this post. Indeed, I’m trying to scrub it from memory still.

So, how do the Predators do in attempting a shot and getting it past the censors filters?

Good news! The Preds were one of the best in taking a shot, ranking 8th in shot attempts (Corsi) across the league.

Figure 1. Shot attempts (Corsi) for each team (High numbers are good).

Boston and LA top out the list, while New Jersey and Vancouver bottom out. If you take out the misses (not shown), Nashville still ranked 8th. That doesn’t seem interesting, but it is. In fact, really getting a feel for this pattern is the whole point of this post. To put the Preds's misses in context, let’s look at the misses for each team as a proportion of their shot attempts.

Figure 2. Proportion of misses by team (low numbers are good)

The good news is that the Preds rank 13th here on missing shots, which is right about average. Not great, not horrible. Just fine. Chicago and Pittsburgh, however, rank right at the top -- and in an exceptional way. Note how the line slants more quickly at that edge. Those teams miss the goal less than any other team in a notable way.

A theme is going to emerge with this post that will bring up difficult memories. If you need to step away at any point from this analysis, please feel free to do so. I won’t encourage you to drink alcohol, but I won't argue against it either.

On the other hand, L.A. and Toronto can’t hit a barn door and end up in the bottom ranks (far right on the graph). What does the 2% difference between Chicago and Nashville mean? About 100 shots more for the Preds getting on net. Or at least to the next filter. The Block filter.

Figure 3. Proportion of blocks by team (low numbers are good)

A rather different set of teams shows up at the top of the list here: Florida, New Jersey, Buffalo… but then Pittsburgh again. Again, this is the blocked proportion of each team's Shot Attempts, so shooting more or less doesn't directly move the team up or down the blocked ranks.

At the opposite end, San Jose and Montreal are having a ton of shots blocked. I don’t know if Brent Burns and Shea Weber are trying to blast a hole through defending players or what. (I'll move to player-by-player in part 3, probably.) Either way, those teams are having a lot of shots blocked.

The Preds? Pretty much average again. 19th. Not good. Not horrible. Be nice to be 15 or above at least.

Our last filter: The goalie.

Figure 4. Proportion of shots stopped by opposing goalie (Low numbers are good)

Chicago, Washington, and Minnesota are shining at getting the puck past the goalie. L.A., Florida, and Colorado are… not.This is a good place to shine because the goalie stop filter (91%) is much bigger than the other two filters (20% and 33% roughly).

Preds? You guessed it! Right in the middle.

So there’s an obvious story to tell so far. The Predators are top 10 in the league at taking shots and completely average at getting those shots in the net. That’s not bad. It’s just normal. They do what you’d expect from an NHL team if you didn’t know anything about the team (but somehow still knew detailed averages about shooting statistics over a season. It doesn’t make any real sense, but work with me here.)

Do any teams consistently do better than other teams on all filters? Yes. But only four of them: Winnipeg, St. Louis, Columbus, and Pittsburgh. On each filter, they are in the top half of teams, so doing average or better.

In fact, we can quantify this: Just who outperforms and underperforms their shot attempts, by how much, and where?

To get a summary view of the filters, the calculation needs a couple steps. First, we need to weight the different filters. Getting past the goalie is a lot harder than simply getting the shot on net, so the team gets more credit if they can do the former rather than the latter. Secondly, we compare the team’s individual success at the filter against the mean. This tells you if you’re doing better than teams do in general. This is really the key idea. Third, add it all up to a single number.

Here’s the weighted sums over our filters:

Figure 5. A measure of getting through filters better than average (Big numbers are good.)

We see… sigh… Pittsburgh right at the top, even with a gap before Minnesota. They outperformed their Corsi relative to all the other teams over the whole regular season. At each filter, they were better than average and it all sums up to having the top "overperformance" indicator. Los Angeles and San Jose on the other hand severely underperformed their Corsi numbers. Considering the Kings’ very strong possession numbers (Figure 1), you would have expected more goals than they actually achieved. If they were just average at the filters, they would have a lot more. But they are way below average.

The Preds? Right in the middle. Number 16 of 30. In fact, they are so much in the middle, it takes 4 decimal places for their number to get off 0. Again, Nashville was quite strong on shot attempts, but quite average on all the filters after that. Not bad, just normal.

We can wrap this up with one more view of the data. There’s a big difference in underperforming when you are ranked near the top for shot attempts versus near the bottom. So we compare an adjusted Corsi value and a real Corsi value. The real is the actual (Corsi). (This is getting deep, man.) The adjusted Corsi is the Corsi modified by the weighted sum values above.

The idea is to boost the Corsi value if the team overperforms other teams at getting it in the net and reduce the Corsi value if they underperform the average. It’s sort of "if Corsi reflected success by the team at the filters as well." If you are really good at getting past the filters, your shot attempts are worth more.

We can then calculate the difference between Real and Adjusted (Real Adjusted Difference, RAD; I did not plan that) to see what the effect on a team for over or under performing their Corsi is.

Figure 6. Real and Adjusted Difference in Shot Attempts

Well, Pittsburgh is at the top. They started at 7th in the league in real Corsi and, with their above average success getting it in the net, ended with 1st in adjusted Corsi. According to the RAD, that’s like an extra 232 shot attempts. This matches their #1 Goals For ranking.

Figure 7. Goals For by team (Big numbers are good).

Los Angeles, on the other hand, strongly underperformed their Corsi. The RAD puts them at the bottom. In the case of the Kings, they didn’t actually end up with the lowest goal totals (25th). That distinction went to the Avalanche. The reason, of course, is that Los Angeles is a shot attempt monster. 2nd best in the whole league! But they had one of the worst times actually getting a goal out of it. It must have been a horrible season for a Kings fan.

The Predators by being completely normal on RAD get no boost. Their Corsi rank is about the same as their Goals rank, a bit less.

What do we do with all of this?

First, comparing the Preds and the Penguins is informative. The two teams start off basically equal in possession, i.e., shooting the puck. However, the Penguins steadily move up the ranks to the top of RAD and the top of Goals for the whole league. The Preds stay about average with the filters, so their goals total essentially reflect their shots total.

An obvious claim is that the Preds could focus on their filters more if possible. That is non-trivial. If they start skating around looking for the perfect shot, they might reduce their overall shot attempts, which is where they in fact excel. I’ll leave that conundrum to Lavi and future analysis. Also, is any of this over/underperformance "unsustainable", so my numbers just show luck, or is it good play? I will pass that to another time as well.

Is looking at each filter informative? You could simply compare goals to Corsi to get the same overall picture. But compare San Jose and Los Angeles. Both teams start near the top of the league at shooting the puck. Both move down in actual goals. The reason that Los Angeles moves down so very, very far is that they are bad at every single filter. 2nd worst at misses, 3rd worst at blocks, 3rd worst at stops. San Jose is bad at Misses and Blocks, but okay at Stops, which is the most important filter.

For the Preds, we're at least top 15 for everything but blocks. Is the number of blocks caused by the reliance on Preds defensemen shooting the puck? Another part of this series will look at that.

That's plenty for this part. Please view these numbers as exploratory, a testing of concepts. They are likely to be tweaked as I go. If you have thoughts on how to improve the analysis or just interesting follow-up questions, please let me know in the comments. I can also give details of the formulas being used for those interested.

This FanPost was written by an OTF reader, and does not represent the views of the editorial staff. Got something you'd like to share? Post your own!