The
Math
of Hockey
Points, plus-minus and save percentage are only the start. This module takes you from the box score to shot attempts, expected goals and tracking data, then into the geometry of the rink and the physics of the famous "Michigan" goal.
- 00First Principlesp.2
- 01The box score & plus-minusp.4
- 02Percentages & puck luckp.5
- 03Shot attempts: Corsi & Fenwickp.6
- 04Expected goals (xG)p.7
- 05Shot maps, WAR & trackingp.8
- 06Rink geometry & anglesp.9
- 07The goalie's anglep.10
- 08The physics of the Michiganp.11
- ✦Self-check · Make it · 5 Questions · Side Questp.13
You'll need: pencil, calculator (a phone is fine), ruler, protractor, a coin, and a game to watch (on TV, online or at your local rink).
Principles
A first principle is a basic truth you can build on. Strip a big topic down to its building blocks, then build back up. Hockey looks fast and chaotic, but underneath it's counting, rates, chances and angles. Three questions. Be honest; nobody's grading this.
What do I already know?
What is necessary?
Everything in this module is built from four math bricks. Rate yourself on each one, then check the example to see if your rating holds up.
What is the objective?
By the end, you'll be able to watch a game and see the numbers, chances and angles behind it.
- 01Calculate points, plus-minus and GAA, and explain what plus-minus misses.
- 02Work out shooting % and save %, and spot when luck is doing the talking.
- 03Count shot attempts and calculate Corsi and Fenwick percentages.
- 04Add up expected goals (xG) with a simple model.
- 05Read a shot map and explain WAR and tracking data in plain words.
- 06Calculate the angle a shooter sees, and how a goalie cuts it down.
- 07Explain the physics that keeps a puck on the blade in a "Michigan".
The list on the left is ours. Now make it yours. What do you want out of this?
How much do you know about the math of hockey right now? Shade the boxes in pencil. You'll come back at the end (p.13) and shade it again in pen.
Why start this way? When you know what you already have (1), what you need (2) and where you're going (3), you learn faster and notice the gaps. Every module on the Hockey Path starts with these same three questions, so it becomes a habit.
The box score
Every goal gets one scorer and up to two assists (the last teammates to touch the puck before the scorer). Points = goals + assists. Simple, and a great place to start.
| Stat | What it counts | How |
|---|---|---|
| G · A · P | Goals, assists, points | P = G + A |
| P/GP | Points per game played | P ÷ GP |
| +/− | Goals for minus goals against while you're on the ice (see right) | GF − GA |
| GAA | Goalie's goals against per 60 minutes | GA × 60 ÷ min |
It mixes up you with your linemates, your goalie and your opponents. It skips power-play goals. A defender who always faces the other team's best line can look bad, and over a few games a lucky bounce can swing it a lot. Most analysts treat it as a rough clue, not a verdict. GAA has a similar problem: it depends on the whole team's defence, not just the goalie.
+1 if you're on the ice when your team scores at even strength or shorthanded. −1 if the other team does. Power-play goals don't count either way, and nor do penalty-shot goals. Empty-net goals count.
Example: on ice for 3 even-strength goals for, 1 shorthanded goal for, 2 even-strength goals against and 2 power-play goals for:
+3 + 1 − 2 + 0 = +2
You're on the ice for all six (made-up) goals. What's your plus-minus?
- Your team scores at 5-on-5
- Opponents score at 5-on-5
- Your team scores on the power play
- Your team scores at 4-on-4
- You're on the power play; they score shorthanded
- Your team scores into an empty net at 5-on-5
My total:
Some players get 22 minutes a night, others get 9, so analysts compare per 60 minutes of ice time: P × 60 ÷ minutes. A (made-up) player has 50 points in 1,200 minutes. What's that per 60?
Why might "per 60" be fairer than "per game"? When could it mislead?
Percentages & luck
Every shot on goal ends one of two ways: a goal or a save. So shooting percentage and save percentage are two sides of the same coin, and both bounce around more than people think.
Shooting % = goals ÷ shots on goal
30 ÷ 250 = 0.120 = 12.0%
Save % = saves ÷ shots against
1,800 − 160 = 1,640 saves
1,640 ÷ 1,800 ≈ .911 (written without the 0)
In recent NHL seasons, league-wide save % has hovered around .900 (it drifts a little year to year). That means roughly 1 shot on goal in 10 goes in.
Add a team's shooting % and save % (usually at 5-on-5): 11.0 + 93.5 = 104.5. Over a long season most teams end up near 100, so a team far above it is often riding hot shooting and hot goaltending that may not last. (The name comes from the online handle of the blogger who popularized it; the NHL calls it SPSV%.)
Extreme results over a short stretch are usually part skill, part luck. Next time, the luck part tends to fade, so results drift back toward average. That's regression to the mean.
Example: a player scores 10 goals on 50 shots (20%). A typical shooter scores about 10%. One simple trick: pretend they also took 100 average shots.
(10 + 100 × 0.10) ÷ (50 + 100) = 20 ÷ 150 ≈ 13.3%
So over the next 100 shots, expect about 13 goals, not 20. (The "100 shots" is an example; analysts estimate how many to add.)
Flip a coin 20 times and write H or T each time. What's your longest streak in a row? Compare with friends.
Pure chance gives a streak of 4 or more in about 77% of 20-flip runs (we checked in code). Hot and cold "streaks" can happen with no change in skill at all.
0 for 20
A shooter scores on 10% of shots. What's the chance they go 20 shots with no goal? (Hint: miss chance is 0.9 each time, so multiply.)
One goal a game
A goalie faces 30 shots a game. At .900 they allow 3 goals. What save % would allow only 2?
Shot attempts
Goals are rare: a handful a game. Shot attempts happen dozens of times, so they give analysts far more to work with. Teams that keep the puck tend to shoot more, which makes attempts a handy stand-in for puck possession.
saved or scored
wide or over the net
stopped by a skater
Corsi counts all three. Fenwick counts only the unblocked ones (on goal + missed). CF% is a team's share of all the attempts while it's on the ice: CF ÷ (CF + CA). Above 50% means you're out-shooting the other side.
| Team | On goal | Missed | Blocked | Corsi |
|---|---|---|---|---|
| Us | 28 | 12 | 14 | 54 |
| Them | 22 | 9 | 10 | 41 |
CF% = 54 ÷ (54 + 41) = 54 ÷ 95 ≈ 56.8%
Corsi treats a long shot from the blue line the same as a tap-in at the side of the net (that's what expected goals fixes, next page). And the score matters: teams that are losing often pile up attempts while the leading team sits back, so analysts often adjust for the score.
Hockey bloggers built these stats in the 2000s. "Corsi" was named by Tim Barnes (writing as "Vic Ferrari") after Buffalo Sabres goalie coach Jim Corsi, who had used shot counts to measure a goalie's workload. "Fenwick" comes from Calgary blogger Matt Fenwick. NHL.com calls them shot attempts (SAT) and unblocked shot attempts (USAT).
Getting into the offensive zone with control (carrying or passing the puck in) usually beats a dump-in. A well-known 2013 study that tracked entries by hand found controlled entries led to more than twice as many shots, on average.
With example rates near that study's: 20 × 0.55 = 11 shots from carries vs 20 × 0.25 = 5 from dump-ins. Exits work the same way: skating or passing it out beats a blind clear off the glass.
Watch one period. Make a tally mark for each time your team enters the offensive zone, and circle it if a shot attempt followed.
Carry: Pass: Dump:
Use the table to find each team's unblocked attempts and FF%. Is it close to the CF%? Why might someone prefer one or the other?
Expected goals (xG)
An xG model looks at thousands of past shots and asks: from here, taken like this, how often did it go in? That fraction is the shot's xG, a probability from 0 to 1. Add up a team's xG and you get the goals an average shooter would expect from those chances.
| Zone (toy model) | xG per shot |
|---|---|
| A · inner slot | 0.25 |
| B · slot ("home plate") | 0.12 |
| C · sides & circles | 0.05 |
| D · up high, the point | 0.02 |
| E · behind the goal line | 0.01 |
| Rebound? Double it. These toy numbers are made up, but in a realistic ballpark. | |
| Zone | Shots | xG each | Total |
|---|---|---|---|
| A | 1 | 0.25 | 0.25 |
| B | 2 | 0.12 | 0.24 |
| C | 3 | 0.05 | 0.15 |
| D | 4 | 0.02 | 0.08 |
| B (rebound ×2) | 1 | 0.12 × 2 | 0.24 |
| Total | 11 | 0.96 |
About 1 goal expected from 11 shots. If they scored 2, they beat their xG by about 1: skill, luck, or (usually) both.
The slot is the area right in front of the net, between the faceoff dots. Shots from close and central, especially rebounds and quick passes across, are called high-danger chances. Each stats site draws the high-danger area a little differently, so their counts don't always match.
Public models (MoneyPuck, Evolving-Hockey and Natural Stat Trick, among others) use distance, angle, shot type, rebounds, rushes and more, and they don't always agree. For goalies, goals saved above expected = xG against − goals against. Example: 32.5 − 28 = +4.5.
Tape a small goal on a wall or garage door. Take 10 shots (ball or puck) from close, middle and far. Your goals ÷ 10 at each spot is your xG model.
Close Middle Far
Three shots, each worth 0.25 xG, add up to 0.75 xG. What's the chance at least one goes in? (Hint: 1 − chance all three miss.)
Maps, WAR & tracking
Made-up shot map, one team, several games. Each square is 8.5 × 7.5 ft; the number is the shots taken from it.
Here the 16 squares around the slot hold 32 ÷ 50 ≈ 64% of all 50 shots. Real heat maps usually show shots per 60 minutes compared with league average: red where a team shoots more than average, blue where it shoots less.
Pick a player on NHL.com/EDGE. Note their top skating speed and hardest shot, then convert to km/h (× 1.609).
Speed mph = km/h
Shot mph = km/h
Goals Above Replacement adds up a player's value (scoring, setting up chances, defence, drawing and taking penalties) compared with a replacement player: someone a team could easily call up or sign cheaply.
Wins Above Replacement turns goals into wins. In recent seasons, roughly 5 to 6 extra goals ≈ 1 extra win (it shifts with how much scoring there is). Example: 12 GAR ÷ 5.5 ≈ 2.2 WAR.
Each site builds its model differently and the numbers come with plenty of uncertainty, so treat one season's WAR as an estimate.
Since the 2021–22 season, every NHL arena has tracked the game with sensors in the puck and in players' jerseys plus infrared cameras above the ice. The public site NHL.com/EDGE shows skating speed and bursts, distance skated, shot speed, shot locations, zone time, high-danger shots and goalie save % by shot location.
The raw, frame-by-frame position data isn't published (as of fall 2026, as far as we can tell). Microstats such as zone entries, exits and passes are still often tracked by hand from video by analysts and volunteer projects.
For scale: Zdeno Chara's 108.8 mph (175 km/h) at the 2012 NHL All-Star Skills Competition is the best-known "hardest shot" record.
A model says a defender added 9 goals above replacement in a season where about 5.2 goals ≈ 1 win. How many wins is that? If the model's uncertainty is ±4 goals, what range of WAR is that?
Rink geometry
| NHL rink (rulebook) | Size |
|---|---|
| Ice surface | 200 × 85 ft |
| End boards to goal line | 11 ft |
| Goal line to blue line | 64 ft |
| Faceoff circle radius | 15 ft |
| End-zone dots (out, over) | 20, 22 ft |
| Net opening | 6 × 4 ft |
| Puck | 3 × 1 in |
A puck weighs 5.5 to 6 oz (156–170 g). International (IIHF) rules allow rinks 60 m long and 26 to 30 m wide; 85 ft is about 25.9 m.
The shooting angle is how wide the net looks from where you are: the angle between your lines to the two posts. Straight out in front, the posts are 3 ft either side of centre, so
From the dot, the net looks barely wider than from the blue line, and that's before the goalie steps in.
On the rink drawing, pick any spot in the right-hand end. Rule a line to each post and measure the angle between them. Where in the zone is the angle biggest?
My spot's angle: Biggest near:
Find the angle from 10 ft out and 10 ft to one side. (Far post is 13 ft over, near post 7 ft over.) Then explain why standing on the goal line beside the net gives an angle of 0°.
The goalie's angle
A goalie can't grow, but they can move. Stepping out toward the shooter blocks more of the shooter's view of the net, the same way a thumb held close to your eye can hide a whole building.
Top view · goalie 3 ft wide (example) · height ignored
With similar triangles, the goalie's "shadow" on the goal line is goalie width × D ÷ (D − d), where D is the shooter's distance and d is how far out the goalie stands.
| Goalie stands | Shadow on goal line | Net covered |
|---|---|---|
| On the goal line | 3 × 15 ÷ 15 = 3.0 ft | 50% |
| 4 ft out | 3 × 15 ÷ 11 ≈ 4.1 ft | 68% |
| 6 ft out | 3 × 15 ÷ 9 = 5.0 ft | 83% |
Net covered = shadow ÷ 6 ft. Side to side only; the net is also 4 ft tall.
The further out a goalie plays, the further they have to travel when the puck is passed across or bounces off the end boards. That's why goalies pick their depth carefully, and why passes across the slot are so dangerous.
Behind the goal line, a shooter can't see the opening at all: the angle is 0°. So when an attacker carries the puck behind the net, goalies usually seal the post, pressing a pad and skate against it to shut the bottom of the net. That's a smart answer to the low wraparound, and exactly what the "Michigan" (next page) tries to beat by going high.
Scale: 1 cm = 1 ft. Stand two pencils 6 cm apart (the posts) and put a 3 cm eraser (the goalie) between them. Stretch strings from a "shooter" 15 cm out past both sides of the eraser. Slide the eraser out. When does it hide the whole net?
It covers it all at cm out
Same goalie, 4 ft out, but now the shooter is 30 ft away. What share of the net's width is covered? Why does stepping out help less against a far shot?
The physics of the Michigan
In an NCAA tournament game against Minnesota at Munn Ice Arena in East Lansing, University of Michigan forward Mike Legg was alone behind the Minnesota net. He scooped the puck onto his blade, swung it around the post and tucked it under the crossbar past goalie Steve DeBus. It tied the game 2–2; Michigan won 4–3 and went on to win the national championship.
Legg has said he got the idea from watching another player, Billy Armstrong, try something like it at a summer skate, so his was the first famous one rather than the first ever. The first in the NHL is credited to Andrei Svechnikov (Carolina) against Calgary on October 29, 2019. Today it's called "the Michigan" or a lacrosse-style goal.
How does the puck stay on the blade?
End-on view of the blade, with the centre of the swing off to the left. Tilting the blade aims its push partly toward the centre.
Yes, if the stick stays low. Under the high-sticking rules, a goal doesn't count if the puck is batted in with the stick above the crossbar (4 ft), so the tuck has to happen below bar height. Leagues word this slightly differently, so check your league's rulebook.
Put a coin on a flat plastic plate and slowly swing the plate in a flat circle at arm's length. Speed up until the coin slides off. Now tilt the plate so its surface faces in toward you and try again. What changes? (Use a plastic plate and give yourself room.)
Lacrosse players "cradle" the ball by rocking the stick so the ball is always being pushed toward the pocket of the mesh, which is the same centripetal idea. The hockey version swaps the mesh pocket for the blade's curve, tape and a lot of practice.
The Michigan by the numbers
A simple model with example values. Real blades are curved, taped and moving in three dimensions, so treat this as ballpark physics, not measurement.
| Example value | Number |
|---|---|
| Puck mass, m (real: 0.156–0.170 kg) | 0.165 kg |
| Blade speed in the swing, v | 4.0 m/s |
| Swing radius, r (centre to blade) | 1.2 m |
| Gravity, g | 9.81 m/s² |
| Friction coefficient, μ (a guess) | 0.5 |
When the player lets go, the puck leaves in a straight line along the swing (the tangent) at about blade speed, and gravity pulls it down. Over 1 m to the far side of the net:
A slow flick has to be aimed higher to stay under the bar but over the goalie. A fast one flies flatter and gives the goalie less time.
v² ÷ r = 4.0² ÷ 1.2 ≈ 13.3 m/s²
F = m × 13.3 = 0.165 × 13.3 ≈ 2.2 N
μ × weight = 0.5 × 1.62 ≈ 0.81 N
Not enough: the puck slides off. Friction alone only holds up to √(μ g r) ≈ 2.4 m/s.
tan θ = v² ÷ (g r) ≈ 1.36 → θ ≈ 54°
Friction and the cup let real players tilt less than that.
Why it beats goalies
- Sealing the post shuts the low wraparound but can leave room up high.
- The goalie has to turn their head to follow a puck that's behind them.
- The puck appears at shoulder height from very close, so there's very little time to react.
- If a goalie's shoulder is about 3 ft up (example), there's up to about a foot of open net under the 4 ft bar.
Double the blade speed to 8 m/s. How much more centripetal force is needed? What tilt would a slower 3 m/s swing need?
On a smooth driveway or floor, with a stick and a ball or light street puck: tilt the blade over it, roll your wrists to scoop it up, then cradle it as you turn, slowly then faster. How long can you keep it on? Clear space, nobody in the line of fire, no shooting at people or windows.
Quick self-check
Six questions from across the module. Show your work. Answers are upside down at the bottom; no peeking till you're done.
1 · A player has 18 goals and 27 assists in 60 games. How many points, and how many points per game?
2 · A goalie faces 28 shots and saves 25. What's the save percentage, written the hockey way?
3 · While a line is on the ice, its team takes 48 shot attempts and allows 32. What's its CF%?
4 · Using the toy model on p.7, add up the xG for 1 shot from zone A, 2 from zone B and 5 from zone D.
5 · How wide (in degrees) does the net look from 12 ft straight out in front?
6 · Example values: a 0.165 kg puck swings at 3 m/s on a 1.0 m radius. What centripetal force does it need?
Re-shade your knowledge meter
Flip back to p.3 and shade the meter again, this time in pen (or shade this one). Then look at the four bricks on p.2. Did any move from "Not yet" to "Got it"?
Be the analyst
Chart one period of real hockey: on TV, at a local rink, in the driveway or on a table-hockey game. Mark every shot attempt by both teams, then run the numbers like an analytics department.
1 · Chart the shots
● goal ○ saved × missed ▲ blocked · use one colour per team. Dashed lines show toy-model zones A–E from p.7.
2 · Tally it
Game:
| One period | Us | Them |
|---|---|---|
| Shots on goal (incl. goals) | ||
| Missed the net | ||
| Blocked | ||
| Shot attempts (Corsi) = total | ||
| CF% = us ÷ (us + them) | ||
| Toy xG (add up zone values) | ||
| Actual goals |
3 · Explain it
4 · Your must-haves
- Every attempt on the chart, both teams
- CF% and toy xG worked out for both teams
- One sentence that uses the word "probably"
- Explain your chart to someone in 60 seconds
Charting a local or minor-hockey game? Keep your notes about the team, not about individual young players, and ask the coach before sharing. If you're under 18, check with a parent or guardian before posting anything online. Keeping it in this book is totally fine.
5 Questions
I Still Have
This module didn't answer everything. Good. Write 5 new questions it didn't answer, one of each type below. There are no wrong questions, only ones nobody's asked yet.
★ Star the one question you'd most like answered. You'll need it on the next page.
1What I'll find out
Break your big question into 2 or 3 smaller ones you could actually answer.
2Where I'll look
3How I'll share it
Who I'll share it with:
Done by: