clock menu more-arrow no yes mobile

Filed under:

Advanced Stats 101: An explanation of common stats and the Ducks season leaders

I’ll explain some significant advanced stats in plain language, then look at the Ducks leaders in each one a quarter of the way into the season.

If you buy something from an SB Nation link, Vox Media may earn a commission. See our ethics statement.

San Jose Sharks v Anaheim Ducks Photo by Debora Robinson/NHLI via Getty Images

We’re now just past the 20 game mark of the 2019-20 NHL season. This is usually the point where there are enough games to judge the performance of a team to this point in the current campaign.

Most people are at least somewhat familiar with the concept of sample size: the larger the sample (in our case, more games), the more accurate conclusions can be made about a team’s play. Take the Ducks’ last two games as an example. Does them losing to the Sharks but then beating the defending Stanley Cup Champion St. Louis Blues tell us that they’re a good team? A bad team? You can’t use just those two games to determine the success of this team overall.

But now, we’re at a point where numbers mean something. Keep in mind, these numbers are not necessarily predictive of the performance of the team through the rest of the season. It’s very possible that they could improve. It’s also very possible that they could get worse. What these numbers through 20 games will tell us, however, is how they have played until this point in time and help give an indication of how they’ll trend moving forward.

You may have seen a lot of hoopla (HOOPLA) lately around analytics in hockey. We are at a transitional period in regards to how we evaluate the game. Traditional stats like shots on goal, +/-, blocks, face-offs, and others were the primary means of evaluating teams and players for decades. But somewhere along the way, some very smart people figured out that these numbers don’t tell a very accurate story.

Stats like number of shots on goal aren’t necessarily bad, but all shots are not created equal. A weak wrister from the boards in front of the blueline is not nearly as dangerous as a precision snipe from the low slot. A team can be technically “outshooting” another 30-20 in the shots on goal category, but if all of those shots are from distance or the perimeter, that does not really indicate that the team with the higher number is any better than their competition.

Baseball went through a similar transition back in the early 2000s when Oakland A’s General Manager Billy Beane brought sabermetrics to the forefront of MLB front offices around the league. Hockey is now at a point where metrics like corsi and scoring chances are being cited in NHL broadcasts, and multiple teams are beginning to build out analytics departments to find the next edge over their competition.

It’s time to push hockey forward. The traditional stats are easy to understand, but they aren’t informative enough.

So, to help push hockey forward, we’re going to dive into some of the more basic and foundational advanced stats that help paint a more a accurate picture of how a team or player is performing.

I’d like to issue a disclaimer, though, before we begin. I am a firm believer in stats with context. Context can include the eye test, traditional metrics, player deployment, game situation, etc. Stats in a vacuum are all well and good, but without the context of the game at hand that you can really only get by watching the actual play, they often times can be misleading. Further, using only one stat can lead someone to conclusions that do not actually exist. It’s critical that an observer look at different metrics to paint the clearest picture possible.

These stats are still being refined with great work by some brilliant people being done on a day to day basis, and are not the end-all-be-all for evaluation. What they do well, however, is shine light on aspects of a team and player that traditional stats used to have trouble reaching.

The numbers I will be using come from one of my personal favorite websites: Evolving Hockey. However there are plenty of other fantastic sites as well. Which ones you use are more of a personal choice than anything else. Some of my favorites are Natural Stat Trick, Corsica, MoneyPuck, and Charting Hockey.

Note: All numbers are current as of 11/17/2019


Many of you who are not very familiar with advanced stats may have heard this term before. Corsi is a foundational hockey analytics concept, which is why it’s widely used. Put simply, Corsi measures shot attempts.

Why is this stat so popular? Because it has been proven that Corsi, specifically Corsi For %, is actually better at predicting future goal scoring of a team than pure goals scored. Corsi can be used as an on-ice stat or as an individual stat, recording shot attempts taken by anyone on the ice, or by the specific player in question. The primary stat we use for this is CF% (corsi-for percentage) which measures the percentage of the shot share a team takes, whether it’s the team as a whole, or the team with a particular player on the ice. It is calculated by:

Shot attempts on opponent (includes shots on goal, missed shots, and blocked shots), divided by total number of shot attempts from both teams.

One of these shot attempts in favor of the player being looked at equals one CF (Corsi for event). One of these shot attempts taken by the other team while the player is on the ice is equal to one CA (Corsi against event)

Let’s look at everyone’s favorite player, Nick Ritchie. This season at five-on-five, the Ducks have attempted 238 shots with him on the ice, while opposing teams have gotten 218 shot attempts against with him on the ice. Keep in mind this is shot attempts taken by any player on the ice, not just Ritchie himself.

238 CF + 218 CA = 456

Now, we divide the 238 attempts in his favor by the 456 total attempts, and we get 0.5219, or a 52.19 CF%. Translated: When Nick Ritchie has been on the ice this season, the Ducks take 52.19% of the total amount of shot attempts in the game.

If a player is right at 50 CF%, it means that he’s been on the ice for as many shot attempts against as he has been for shot attempts in his team’s favor. Generally, this is considered average. So from these numbers we can conclude that when Ritchie is on the ice, the team attempts 2.19% more shot attempts than they give up. This is considered to be pretty good, given the high number of Corsi events on a game by game basis.

It is important to know that Corsi is usually evaluated at 5 on 5 play as opposed to all situations, which includes the power play and the penalty kill. Being up or down a man on special teams can unfairly influence a player’s numbers, as those context in which he is playing is generally of no fault of his own.

Corsi can also be used as an individual statistic to count how much a player actually contributes. iCF stands for ‘Individual Corsi For’ and counts how many shot attempts a player has taken on his own.

2019-20 Ducks CF% Leaders at 5v5 (minimum 10 games played)

  1. Ondrej Kase — 55.74%
  2. Adam Henrique — 54.58%
  3. Jakob Silfverberg — 52.69%

Points per 60

While goals are what wins or loses games, points in general are considered to be a better individual indicator of performance as they indicate both goals and a contribution towards goals (though there is now some debate amongst the stats community as to how important points should be in evaluating a player given how much a player getting a point depends on factors out of his control).

On an individual level, the rate at which players register points, combined with their time on ice, can show us how efficient a player is at scoring. The way we calculate this is:

Total points divided by time on ice multiplied by 60.

Why 60? Because there’s 60 minutes in a regulation 3 period hockey game. Would you look at that!

The great thing about these per 60 rate stats is that it puts players with different amounts of ice time on a level playing field to evaluate their production. If you are a fan of dumb comparisons that don’t make any logical sense, you can use this stat to compare the offensive output of Ryan Getzlaf to Nic Deslauriers and get a feel for how good their production is while removing the large time on ice difference between the two.

Keep in mind these per 60 rate applications can also be used for a number of stats to provide contexts for things like shot attempts for and against, expected goals (which we’ll cover soon), and more. It’s all about putting players on an even surface.

2019-20 Ducks P/60 Leaders (minimum 10 games played)

  1. Jakob Silfverberg — 2.72 per 60
  2. Adam Henrique — 2.41 per 60
  3. Rickard Rakell — 2.22 per 60

Scoring Chances & High Danger Scoring Chances

These statistics come from one of the most well-known advanced statistics websites in the game, Natural Stat Trick. These numbers were some of the first attempts to measure shot quality (i.e. location of the shot based on the NHL’s data). While expected goals is considered the next evolution of this stat, I am including them here because not only is it cited among the more casual stats community, but many NHL team broadcasts are beginning to use this metric. For as much grief as the Ducks get from some members in the community for their perceived dismissal of analytics, their Fox Sports broadcast has recently begun citing scoring chances, which is a massive step towards the general fanbase understanding and accepting these numbers.

Scoring chances, as well as high danger chances and a host of other versions of this metric, were first developed by one of the most prominent analytics sites (now no longer active), WAR On Ice, which was created by Alexandra Mandrycky, Director of Hockey Strategy and Research for the new Seattle expansion team, Andrew Thomas, formerly with the Minnesota Wild, and Sam Ventura, Director of Hockey Research for the Pittsburgh Penguins. That’s some serious brainpower working in the NHL. I won’t go into what exactly they define as a scoring chance, but if you are curious, Natural Stat Trick has a good write-up here.

The broadcasts have generally been using raw scoring chance numbers at 5v5 in their summaries, but you’ll often see it expressed in the community and on stats websites as SCF% (scoring chance for %) and HDCF% (high danger chance for %). These are calculated the same exact way as Corsi For % is, except the input is the scoring chance definition based on the shot location.

Scoring Chances on opponent (based on shot attempts from certain locations on the ice), divided by total number of scoring chances from both teams.

High danger chances (HDCF%) is calculated using the same formula, but only shots taken from even more dangerous areas (think low slot, right in front of the crease, off a rebound, etc.) are counted.

Like Corsi, these numbers can be represented as an on-ice statistic in the form of a percentage, a per 60 stat to show the rate in which a player is on the ice for chances for or against, or the rate in which a team generates these numbers.

Scoring chances and high-danger chances also can be used at the individual level to note how many individual scoring chances or high-danger chances a particular team creates (iSCF/iHDCF).

2019-20 Ducks SCF% Leaders

  1. Ondrej Kase – 56.11%
  2. Jakob Silfverberg – 55.27%
  3. Adam Henrique – 54.51%

2019-20 Ducks HDCF% Leaders

  1. Ondrej Kase – 59.21%
  2. Nick Ritchie – 57.78%
  3. Jacob Larsson – 55.79%

Goals For Percentage & Expected Goals For Percentage

Goals For (GF%) looks at the percentage of goals scored with a certain player on the ice. It is calculated similarly to CF%, but instead uses actual goals scored rather than Corsi events.

GF% tracks actual goals scored, while expected goals for percentage (xGF%) factors in what percentage of goals a player should be on the ice for when accounting for things like shot quality (shot type like wrister or slapshot, shot distance, location, etc).

The way to get the GF% number is:

Goals for player’s team while on the ice divided by the total number of goals for and against.

As for xGF%, the math is the same in terms of how to calculate it as a percentage or rate stat, but uses the stat publisher’s methodology for shot quality, which can vary slightly from site to site, utilizing xG (expected goals) in place of actual goals. Evolving Wild, for instance, looks at all the shots of that type and that location from the current season and past seasons using location data provided by the NHL, then uses that data to find the percentage chance of that shot going in the net to create an “expected goal value”. For example, a shot from in close with Ondrej Kase on the ice might give him an expected goals for (xGF) value of 0.35, because a shot of that type and that location has gone into the net 35% of the time based on all the historical shots taken from that specific location.

Comparing on-ice numbers like xGF% to actual GF% can help shed light on if a player is shooting the puck from dangerous areas, like right in front of the net or the slot as opposed to from the point. Whereas Corsi counts all shot attempts equally, expected goals try to find out if those shots are high quality. It can also be a predictor of future success. If a player has a much higher xGF% than his current GF%, there is a good chance that he will eventually start scoring at a higher rate in the near future. On the other hand, a player with a high GF% but much lower xGF% could indicate that his scoring rate might not continue.

Very important: GF% is purely a descriptive stat; it only will tell you what has happened in the past and will not tell you how they will perform in the future. Players with high GF% like Brendan Guhle may be on the ice for a lot of goals for and not many against, but these things can be influenced by limited ice time, quality of competition, and, as is especially apt in Anaheim case, the quality of goaltending behind them. xGF% helps remove some of those variables looking at the quality of shots and goals either for or against and is much more predictive of future success.

Another important note: since GF%, like CF%, is traditionally measured at 5v5, it is a much better metric than +/-. Why people continue to use +/- I have no idea. Old habits die hard, I guess. In calculating it, power play goals, penalty shot goals, and empty net goals are not taken into account. Yet short handed goals are counted in this metric as well as even strength (including 5v5. 4v4, 3v3). +/- as a metric is tallied at completely arbitrary situations during the game and has shown to have very little to no value in determining a player’s impact on the ice. So instead, it can be better measured as a percentage with GF% or goal differential.

2019-20 Ducks GF% Leaders (minimum 10 games played)

  1. Brendan Guhle — 77.78%
  2. Devin Shore — 75.00%
  3. Max Jones — 71.43%

2019-20 Ducks xGF% Leaders (minumum 10 games played)

  1. Jakob Silfverberg — 55.09%
  2. Nick Ritchie — 53.15%
  3. Cam Fowler — 52.15%

Game Score

What if I told you there was a way to summarize how well a player performed on any given night? That is exactly what game score is. Some of you may be familiar with this, as both basketball and baseball have developed similar versions of this stat.

Keep in mind that gamescore is not a measure of a player’s overall talent level, but is an easy way to measure how big of an impact a player had on a game.

There are a couple different versions of game score right now. However, the most popular one was developed by Dom Luszczyszyn, now an analyst for The Athletic, originally developed over at Hockey Graphs.

It looks at goals, total assists, individual expected goals, blocks, penalty +/-, face off +/-, expected goals for, expected goals against, actual goals for, and actual goals against. All of those numbers are weighted based on individual game impact, then combined to create a single number.

Gamescore can be totaled for single games, or measured over a period of time as an average. Take a player’s entire gamescore added together over the season, and divide by games played.

I can’t recommend following Anaheim Calling friend Cole Palmer on Twitter enough. He does some great advanced stats work and runs a fantastic site called Hockey Stat Cards, which has both daily and season game scores.

2019-20 Ducks Average Gamescore Leaders (minimum 10 games played)

  1. Jakob Silfverberg — 0.92
  2. Rickard Rakell — 0.90
  3. Adam Henrique — 0.86

Goals Saved Above Expected

We’re just going to scratch the surface on goaltending stats for now with one. Goaltending is traditionally measured by wins, save percentage, and goals against average. None of those numbers give a deep enough look into how a goaltender actually performed. So, I wanted to include this stat because it’s one of the more under-the-radar advanced metrics out there, but should be talked about much more in my opinion.

Goals Saves Above Expected (GSAx) attempts to quantify how many more goals a goaltender has saved when looking at expected goals allowed. The more quality shots that a goaltender faces and stops, the higher his GSAx. So, a goalie with a tough workload who stops a lot of dangerous shots behind a team that gives up a high rate of expected goals will rate very highly in this category.

*Important note: other goaltending statistics worth taking a deeper look at are Goals Saved Above Average (GSAA), which can be found on Evolving-Hockey, Natural Stat Trick, Corsica, and Hockey-Reference. It does not factor in shot quality, but measures how a netminder compared to the average goaltender against those shots. Expected save percentage, as well as delta/adjusted save percentage is another useful statistic to better measure goaltending.

As you can imagine, John Gibson was the NHL’s best in this metric last season with a staggering 26.9 GSAx in all situations, more than five goals ahead of second place Ben Bishop. Gibson’s raw .917 save percentage alone might not look outstanding, but when you pair it with his GSAx to show his workload, you can better understand that he performed incredibly well despite being put into a ridiculous line of fire night in and night out.

Ever wonder why we here at Anaheim Calling constantly and passionately support Gibson’s case as being far and away the best goalie on the planet? Since the 2015-16 season when Gibson began getting regular starts, he ranks first in the NHL with 91.5 GSAx. Sergei Bobrovsky is second in that time frame with...wait for it...

56.21 GSAx

Un. Freaking. Believable.

Obviously, Gibson hasn’t gotten off to quite the same start as we’re used to this season. But it’s only 22 games. Patience is key.

2019-20 Ducks Goaltender GSAx

  1. John Gibson — 0.28
  2. Ryan Miller — 0.13

This concludes today’s “Hockey Advanced Stats 101” class. There are MANY more advanced stats out there that I did not cover here. Visit or any of the other sites I mentioned above to get a glimpse at just how many there are and read up on these concepts over at The ones I covered are some of the more popular ones currently.

Advanced statistics in hockey, while still going through growing pains, is in an exciting transitional period as new ways of evaluating players arise and existing ones are refined at a rapid pace.

These stats allow us to appreciate certain players who might fly under the radar as well as players who may not have the greatest impact on the ice.

I wanted to give a huge thank you to Shayna Goldman, contributor to The Athletic, Blueshirt Banter, Hockey Graphs, and co-creator of Behind The Benches for editing this article and providing valuable feedback. This article is much better because of her.