Hockey 201: What the Heck is Corsi?

Last year, I introduced a series called “Hockey 101” for THW. This collection introduced new fans to the concepts of hockey. Everything from the size of the rink to the penalties that can be enforced. Today, you have enrolled in your next semester of Hockey University. Welcome to your first day of Hockey 201. Our first lesson, Corsi.

James van Riemsdyk fights for position in front of Boston’s Tuukka Rask (Greg M. Cooper-USA TODAY Sports)

Advanced Statistics: A Player’s Corsi

Hockey doesn’t quite have the technology ready to analyze possession for a game. But thanks to advanced statistics, a concept introduced by Jim Corsi, this game has a new way to see a player’s impact.

Jim Corsi, whom the stat is named for, started tracking more than just the shots that a goalie had to save. He saw the game as more advanced than simply shots on goal. This research collided with a Berkeley engineer, Gabriel Desjardins, and Corsi numbers were born.

Desjardins’ website,, has endless numbers that track all sorts of player activity. The most famous of all these? The stat that launched this website: Corsi.

How is Corsi Calculated?

This is a typical Corsi chart. Here’s a little bit of insight into how these numbers come about.

CF CA C+/- CF% CF% Rel. CF% Off
Drew Doughty 1149 877 272 56.7 4.4 52.3
(Russell LaBounty-USA TODAY Sports)

Corsi refers to all shots. This is any time the puck is directed towards the net (whether it reaches the goalie, beats the goalie, is blocked by a skater, or misses the net entirely). A single player’s Corsi for is every one of the shot attempts that his team takes while he is on the ice. If he is in the penalty box or on the bench, shot attempts by his team are not added to his Corsi. However, this number is countered by “actions” from the opponent. When he is on the ice and an opponent attempts a shot, his Corsi for drops by one point.

For example, let’s say Wayne Gretzky is playing once again for the Edmonton Oilers. Number 99 plays the full game with about twenty minutes of ice time. The Oilers earned 34 shots on goal while their opponent mustered 28. Let’s say these were the numbers from the game:

  • Total shots on goal: EDM– 34; OPP– 28
  • Total shots blocked by opponent: EDM– 16; OPP– 12
  • Total shots that missed the net: EDM– 20; OPP– 16

You would not calculate all of these shots for Gretzky’s Corsi. Instead, isolate his time on the ice and count all shots for and against the Oilers. Here’s Gretzky’s imaginary ice time numbers:

  • Shots on goal w/ Gretzky on ice: EDM– 15; OPP– 8
  • Shots blocked by opponent w/ Gretzky on ice: EDM– 10; OPP– 2
  • Shots that missed net w/ Gretzky on ice: EDM– 12; OPP– 5



Now, here comes the math. Add up all of the numbers from Gretzky’s ice time. Taking the Edmonton numbers (15+10+12) you get a Corsi for number of 37. But the number isn’t done there. Gretzky’s Corsi is affected by the opponent’s actions (8+2+5) for a number of 15. You would then subtract 15 from 37 to get his Corsi for the game. Gretzky then gets a Corsi number of +22. Very good for today’s standards, the usual night for the Great One.

Plus 22? What About All These Percentages??

So, you have a plus 22 in a single game. This generally means that Wayne Gretzky dominated the game while he was on the ice (shocker, right?). But to calculate a Corsi For percentage, we gotta get more fancy than addition and subtraction.

(Kim Klement-USA TODAY Sports)

The Corsi For percentage is relatively simple to find. Going back to our imaginary Gretzky game, take his Corsi for (37) and divide it by total Corsi while he is on the ice (52). We come out with a Corsi For percentage of .7115 (71.2).

A score of 50 would mean that the player is dead even with his competition. Anything above implies that he is outplaying his opponent while all below the fifty percent mark implies he is defending more against an opponent and being outplayed. Gretzky’s 71.2 for that game is ridiculous.

Keep in mind, we have only discussed Gretzky’s single game stats. To see Corsi over the course of a season, simply take all the Corsi events over the year and do the same math. That’s why Drew Doughty’s (from the above chart) Corsi For percentage goes something like this:

1149 Corsi For; 877 Corsi Against (2026 total)

1149/2026= .567 (56.7 CF%)

Relative Corsi and a Player’s Impact

The Corsi numbers are great at determining how a player affects the game while he’s playing. But there is also a number that shows how much he means to his own team. A Corsi Relative is the difference of shot attempts when a player is on the ice versus when he is off the ice. It is calculated as follows:

(Player Corsi For% while on ice)-(Team’s Corsi For% while off ice)

Doughty: 56.7% (on ice Corsi For) – 52.3% (off ice Corsi For)= +4.4%

The way to read this stat is simple. If the number is positive, the team is better when he is on the ice than off it. High positive percentages are elite players. Closer to zero means the player is not making the team any better or worse. He is holding the status quo. A negative relative score implies that the player makes his team worse.

(Gary A. Vasquez-USA TODAY Sports)

So, when we look at Drew Doughty, who currently has the best Corsi differential in the league, we can put his numbers in perspective. Even though he is fantastic and dominating his competition, his 4.4 relative number implies that he is not that much better than his teammates. This explains why the LA Kings are a tough opponent. The best Corsi player in the NHL isn’t that much better than his teammates.