Glossary · Advanced stat

Corsi in Hockey and Corsi For Percentage (CF%)

Corsi in hockey is a count of every shot attempt, on goal, missed or blocked, that a team takes and allows, or that happens while a given player is on the ice. Corsi for percentage (CF%) is the team's share of those attempts, so 50% is break-even. The NHL calls the same hockey stat SAT, for shot attempts.

At five-on-five last season the league logged 121,106 shot attempts and 5,367 goals, about 23 attempts for every goal. That bigger sample is most of the case for Corsi, and it's still the steadiest read on which team spent the night in the other team's end.

Also calledSAT · CF%the NHL's name, and the share
CountsAttemptson goal, missed and blocked
Team average50%5v5 CF%, by construction
Best team, 2025-2659.8%Carolina, 5v5 CF%
Worst team, 2025-2644.8%Toronto, 5v5 CF%
Detroit, 2025-2648.8%21st of 32 at 5v5
Named forJim Corsithe Sabres' goalie coach, picked for his mustache
This site usesMoneyPuckrebuilt nightly

Where Corsi comes from

Corsi got its name almost by accident. Tim Barnes, a Chicago financial analyst who blogged as Vic Ferrari at Irreverent Oiler Fans, started tracking shot-attempt differential after hearing Sabres general manager Darcy Regier talk about shot attempts on the radio. He told Bob McKenzie he thought about calling it the Regier number, then the Ruff number after coach Lindy Ruff, before he settled on a photo on the Sabres' website of Jim Corsi, the team's longtime goaltending coach. "I just liked his moustache," Ferrari said.

The name fit better than Ferrari knew. Corsi had been adding shots on goal, missed shots and blocked shots together to measure how hard his goalies worked, because shots on goal alone left part of the workload out (he later walked NBC Sports through the method). Ferrari didn't learn that until McKenzie told him in a 2014 interview. There's one more coincidence in the story. Corsi played 26 games in goal for the Oilers in 1979-80, and the stat with his name was born on an Oilers blog.

It went mainstream fast. Corsi was a working tool on the Alberta blogs by November 2007, when Matt Fenwick proposed the version that drops blocked shots. Washington hired Barnes as an analytics consultant in October 2014, and in February 2015 NHL.com launched an enhanced-stats section that renamed Corsi SAT, short for shot attempts. The league's stats site still files it that way, with numbers back to 2009-10. Natural Stat Trick, MoneyPuck, Evolving-Hockey and Hockey-Reference all publish it under the blogger's name, built from the same NHL play-by-play feed.

How Corsi is calculated

The arithmetic is simple, which is half its appeal. Every shot attempt goes in one of two columns, for or against, and the share is your team's column divided by both. The NHL counts only five-on-five attempts for SAT, and this site does the same, since power-play time varies so much from team to team. These are the inputs:

  • Shots on goal, goals included
  • Missed shots, including posts and crossbars
  • Blocked attempts, credited to the team that shot
  • Five-on-five ice time, for per-60 rates
  • For a player, which attempts happened while he was on the ice
Corsi forCF = shots on goal + missed shots + blocked attempts
DifferentialCorsi = CF − CA
ShareCF% = CF ÷ (CF + CA)
RateCF/60 = CF ÷ five-on-five minutes × 60

Here's a worked example, with invented round numbers. Say Detroit and an opponent play a game's worth of five-on-five. The Wings put 20 shots on goal, miss the net 10 times and get 15 attempts blocked, so their Corsi for is 45. The other team finishes with 40 attempts of its own. Detroit's CF% for the night is 45 ÷ 85, or 52.9%, and its Corsi differential is plus-five.

Goals count, since every goal is a shot on goal. Shootout attempts never do, and the NHL's version drops everything outside five-on-five, so power plays and pulled-goalie stretches are out. The individual version, iCF, keeps only the attempts a player takes himself.

CF
Corsi for. Every attempt a team takes, or takes while a given player is on the ice.
CA
Corsi against. The same count for the attempts aimed at your net.
CF%
Corsi for percentage, the share. The NHL's stats site lists it as SAT%. 50% is break-even.
Rel CF%
A player's on-ice CF% minus his team's CF% with him on the bench.
iCF
Individual Corsi for. Only the attempts a player takes himself.

What Corsi tells you

Corsi measures territory. A team taking most of the attempts is spending more of the night in the other team's end, and the NHL's glossary calls SAT a common proxy for puck possession, though it adds that the stat doesn't time possession itself. What Corsi can't tell you is whether those attempts were any good.

At five-on-five last season, Carolina led the league with 59.8% of the shot attempts in its games and Toronto finished last at 44.8%. Detroit was 21st at 48.8%, which works out to about two more attempts against than for on an average night. Players spread wider. Among the 598 skaters who logged at least 500 five-on-five minutes, the median on-ice CF% was 49.6%, the top tenth cleared 55.3% and the bottom tenth sat at or below 45.1%. Carolina's K'Andre Miller topped the list at 61.9%, and 20 of the top 50 were Hurricanes, which says how much of a player's raw Corsi belongs to his team.

Why did analysts trust it in the first place? Because it repeats. Across the last three seasons, 96 team-seasons in all, a team's CF% over the first half of its schedule correlated at 0.81 with its CF% over the second half (a perfect match would score one), against 0.56 for goal share. The NHL's glossary still credits shot-attempt possession with a high correlation with winning and with predicting future performance.

As a forecast of goals, plain Corsi has been passed. In the same sample, first-half CF% correlated at 0.42 with second-half goal share, score-adjusted Corsi at 0.47, expected goals at 0.52 and first-half goal share itself at 0.56. Corsi, with or without the score adjustment, is the most stable number in the family. It's no longer the one that tells you the most about who'll outscore whom.

How analysts use Corsi

Reading a team's process

Detroit's last season splits cleanly. The Wings took 48.8% of the five-on-five attempts, 21st in the league, and the same 48.8% of the expected goals, so shot volume and shot quality told the same story. Their goal share was 45.5%, 26th, because they converted 8.1% of their shots on goal, the third-worst rate in the league. Corsi says Detroit was a little below average at tilting the ice. The scoreboard said worse.

Comparing players on one roster

Corsi gets more useful once you split it by who's on the ice. Moritz Seider was on for 53.0% of the five-on-five attempts while he played, the best mark among Detroit's regulars, and the Wings managed 46.2% with him on the bench. That gap is his relative Corsi, and it ranked 12th among the league's 598 skaters with 500 minutes. Ben Chiarot, second among Detroit defensemen in five-on-five minutes, ran the other way, at 46.3% on the ice and 50.4% off it.

Adjusting for the score

Trailing teams pile up attempts and leading teams sit back, the pattern the NHL's glossary calls score effects. By the league's own count, Detroit took 53.5% of the five-on-five attempts while trailing last season and 42.9% while leading. The average team ran 52.4% and 47.4%, so the Wings sat back harder than most with a lead. Score-adjusted Corsi reweights each attempt by game state (Natural Stat Trick and Evolving-Hockey both use Micah Blake McCurdy's method), and it held up better than raw Corsi in the split-season test above.

Corsi on the Red Wings

Rebuilt every night from MoneyPuck, with games played from the NHL API. Detroit's five-on-five Corsi share comes first with its league rank, then the all-situations number and the expected-goals share for comparison, then the Red Wings skaters with the best on-ice CF% so far.

Detroit has played 6 games. Corsi steadies faster than goals do, but a few games of attempts is still a small sample, and a skater with little ice time can top this table. Read it as a record of what's happened so far.

5v5 Corsi share (CF%)52.0%13th of 32
All-situations CF%52.0%power play and penalty kill included
5v5 expected-goal share51.0%17th of 32
Red Wings skaters by on-ice CF%, five-on-five, 2026-27
PlayerGP5v5 minOn-ice CF%On-ice xGF%
Marco Kasper19.178.0%71.0%
William Wallinder224.169.0%65.0%
Mason Appleton215.668.0%72.0%
J.T. Compher224.261.0%50.0%
Michael Brandsegg-Nygård682.359.0%65.0%
Alex DeBrincat692.056.0%60.0%
Albert Johansson683.056.0%55.0%
Lucas Raymond690.154.0%44.0%

Data: NHL API and MoneyPuck, rebuilt October 15, 2026.

What Corsi can't tell you

Every attempt counts the same

A point shot through three bodies counts exactly as much as a one-timer from the slot. Expected goals exists to fix that, and it beat raw Corsi as a forecast of second-half goal share in the test on this page (0.52 to 0.42).

Blocks and misses depend on the scorer

Shots on goal get logged about the same way in every rink. Blocks and misses don't. In six seasons of league data ending in 2012-13, Michael Schuckers and Brian Macdonald found persistent rink effects for blocked shots in 15 arenas and for missed shots in nine, against two for shots on goal.

A player's number is mostly his team's

How much of it? Among the 598 skaters with 500 five-on-five minutes last season, on-ice CF% correlated at 0.74 with the team's CF%. Usage matters too. The NHL's glossary notes that players who start more shifts in the offensive zone should expect a slight bump in SAT%.

It doesn't time possession

The NHL's glossary says outright that SAT doesn't measure possession time, so a team that cycles for 40 seconds without a shot gets nothing for it.

Goals still decide the standings

Goal share tracks the standings far more closely, correlating at 0.86 with points percentage across the 32 teams last season, against 0.57 for CF%.

Sources

  1. McKenzie on how Corsi got its name (Hockey Confidential excerpt), Die By The Blade (SB Nation), October 6, 2014, quoting Bob McKenzie, TSN. Regier on the radio, the Regier and Ruff numbers, the Sabres website photo, the moustache quote, Corsi's workload count
  2. Corsi (statistic), Wikipedia, citing McKenzie, TSN, October 6, 2014. Tim Barnes, a Chicago financial analyst writing as Vic Ferrari
  3. Caps hire analytics pioneer Tim Barnes, aka Vic Ferrari, Russian Machine Never Breaks, October 11, 2014. Barnes is Vic Ferrari, ran Irreverent Oilers Fans, hired by Washington
  4. Jim Corsi, the man behind Corsi numbers, NBC Sports (James O'Brien), April 30, 2010. Corsi as Sabres goalie coach, his workload method
  5. Jim Corsi player page, Hockey-Reference. 26 games for Edmonton in 1979-80
  6. Flames thru 20, Battle of Alberta, November 2007. Corsi in use and the case for dropping blocked shots
  7. Revenge of the Nerds: NHL.com embraces advanced analytics, Sports Illustrated (Allan Muir), February 20, 2015. the NHL renames Corsi SAT and Fenwick USAT
  8. NHL stats glossary (SAT, SAT%, score effects, puck possession, OZ Start%), NHL.com stats API. definitions, 5-on-5 only, available since 2009-10, possession and score-effects notes
  9. Team percentages report, 2025-26, NHL.com stats API. SAT% while leading and trailing
  10. Glossary, MoneyPuck. Corsi definition, on-ice and off-ice
  11. General Terms, Evolving-Hockey. CF and CA definitions, McCurdy score and venue adjustment
  12. Player and team glossary, Natural Stat Trick (read from a January 2025 Wayback Machine capture). Corsi, CF%, shootout excluded, McCurdy score adjustment
  13. Skater and team analytics, Hockey-Reference. publishes Corsi
  14. Accounting for Rink Effects in the National Hockey League's Real Time Scoring System, Michael Schuckers and Brian Macdonald, arXiv 1412.1035. rink effects for blocks, misses and shots, 2007-08 through 2012-13
  15. 2025-26 team, skater and game-by-game files, MoneyPuck data. every league figure on this page

League figures are Wes & Woodward's calculations from MoneyPuck's 2025-26 regular-season team and skater files and its team game-by-game files for 2023-24 through 2025-26, all downloaded October 9, 2026. Team CF% is CF ÷ (CF + CA) at five-on-five from attempt counts; player figures cover the 598 skaters with 500 or more five-on-five minutes. The split-season test cuts each of 96 team-seasons (all 82-game seasons, 2023-24 through 2025-26) into its first 41 and last 41 games and reports Pearson correlations. Points percentage and SAT% by score state come from the NHL stats API, downloaded the same day. The Red Wings section rebuilds nightly from MoneyPuck and the NHL API.

Last reviewed October 9, 2026.