Motion-blurred skater in a Calgary Flames sweater
Breakdown · VAN at CGY

Flames pull away from the Canucks

The verdict · stolen

The Flames stole one. They lost the expected-goals battle 3.79–2.26 and won anyway.

VAN 3 · CGY 7
◆ By the ModelJul 12, 9:24 AMxG: xgboost-0.758Edited for clarityDrafted from NHL play-by-play by Backcheck's model, worded for clarity by an AI editor that may not change a number. Nobody at Backcheck was at the rink. How this works

Calgary's 7-3 victory over Vancouver masks a striking reality: the Canucks controlled 63% of expected goals at 5v5. This was a heist.

The Flames held 40% of shot attempts (23–34 on goal), yet won by four goals. Expected goals finished 2.26–3.79 in Vancouver's favor, a 37–63 split. Calgary overperformed its xG by 4.74 goals.

Goaltending tells much of the story. D. Wolf (CGY) posted a 0.912 SV%, exceeding expected by 0.79 goals. Vancouver's crease cratered: K. Lankinen stopped just 0.750 SV%, 1.82 goals short of expected, and N. Tolopilo posted 0.636, another 2.92 goals underwater.

Calgary finished where it mattered. The Flames scored two low-danger goals—looks the opposing goalie typically saves. On rush chances, Calgary went 4-for-24; Vancouver went 2-for-33. Calgary's power play was dominant: 2 PPG on 6 PP shots. High-danger chances tilted Calgary at 3–2.

Adam Klapka's wrist shot from the slot (P3, 19:52) marked the turning point.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Mar 28
VAN
3
CGY
7

Flames pull away from the Canucks

Chances 3.8 – 2.3Did they deserve it? →
Did they deserve it?

The Canucks deserved better.

Expected goals · chance value
VAN
3.79
CGY
2.26
63% of the chances37%

The board read VAN 3, CGY 7. The chances read VAN 3.8, CGY 2.3.

Our xG model · NHL play-by-play · all situations
Luck check
CGY
+4.7
goals above expected
CGY2.26 expected · 7 scored
Expected
Scored
VAN3.79 expected · 3 scored
Expected
Scored

The Flames scored 4.7 more than their chances were worth. That does not repeat.

PDO = sh% + sv% · drifts to 1.000 over a season
Every goal, in order
  1. P1 03:04CGYM. Coronato0–1
  2. P1 04:59CGYJ. Farabee0–2
  3. P1 18:53VANL. Ohgren1–2
  4. P2 01:32CGYR. Strome1–3
  5. P2 04:36CGYO. Maatta1–4
  6. P2 04:47CGYM. Frost1–5
  7. P2 13:36VANJ. DeBruskPP2–5
+3 more on the full breakdown
NHL play-by-play · chance value from our xG model
Where the shots came from
VAN
49 shots
3
Final
79 shots
CGY
30 shots
7
VAN attackCGY attack
VAN CGY Goal
49
shots · 3 in
30
shots · 7 in
Every unblocked shot · press play to replay it
Chances by danger
VANCGY
0 / 2
0.44 xG
High danger
3 / 3
0.65 xG
3 / 21
2.58 xG
Medium
2 / 9
1.07 xG
0 / 38
0.77 xG
Low
2 / 30
0.54 xG

The Flames buried 3 of 3 high-danger looks.

Danger tiers by our xG model · high ≥ 20% chance
In the net
B+
D. Wolf
+0.8
CGY · 31/34
D
K. Lankinen
−0.7
VAN · 9/12
+1 more on the full breakdown
The numbers, checked
BACKCHECK

Flames pull away from the Canucks

A model, not a newsroom. Every number on these frames comes from the NHL's play-by-play and our own models. Nothing was watched, guessed or heard from anyone.

Read the full breakdown
backcheckreport.com
01 / 08 · Final
Every goal, in order

How it happened

NHL play-by-play
1stshots 10–7
  1. 03:04CGYM. Coronato(Z. Parekh, M. Frost)0–1
  2. 04:59CGYJ. Farabee(Z. Whitecloud, M. Backlund)0–2
  3. 18:53VANL. Ohgren(L. Karlsson, E. Pettersson)1–2
2ndshots 14–9
  1. 01:32CGYR. Strome(O. Maatta, Y. Sharangovich)1–3
  2. 04:36CGYO. Maatta(R. Strome, H. Brzustewicz)1–4
  3. 04:47CGYM. Frost(M. Coronato, M. Gridin)1–5
  4. 13:36VANJ. DeBruskpower play(B. Boeser, E. Pettersson)2–5
  5. 19:23CGYZ. Parekhpower play(M. Coronato, M. Frost)2–6
3rdshots 10–7
  1. 12:40VANN. Hoglander(V. Mancini, Z. Buium)3–6
  2. 19:52CGYA. Klapkapower play(B. Othmann, H. Brzustewicz)3–7

score reads VAN–CGY

Source · NHL play-by-play (api-web.nhle.com)
Process vs result

The numbers

XGBoost xG · NHL play-by-play
2.26
CGY chances
Goals their shots were worth
+4.7
Finishing
Goals above what those chances were worth
1.117
CGY puck luck
Above 1.000 — the bounces went their way
40.8%
Shot attempts
Under half — they were outshot
Split by club

Who controlled the game

3.79Expected goals2.26
VAN 63% of the chance quality
34Shots on goal23
2High-danger chances3
61All attempts (Corsi)42
Adjusted for score: VAN 66% · CGY 34%
Faceoffs · CGY won33%off55%neu70%def
Source · NHL play-by-play · XGBoost xG
How the game was won

The danger ladder

shotsgoalsexpected
High dangerslot & crease
VAN0 / 2 · 0.44 xG
CGY3 / 3 · 0.65 xG
Medium dangermid-range
VAN3 / 21 · 2.58 xG
CGY2 / 9 · 1.07 xG
Low dangerperimeter & point
VAN0 / 38 · 0.77 xG
CGY2 / 30 · 0.54 xG

CGY went 3-for-3 from high danger on 0.65 expected goals — 2.4 above expected.

Source · Backcheck xG model · NHL play-by-play
The luck layer

Finishing vs expected

expectedactual
VAN
3 G · 3.79 xG · -0.8
CGY
7 G · 2.26 xG · +4.7
012345678

VAN finished -0.8 against expected, CGY +4.7.

Source · Backcheck xG model
Shot types · rush and rebound chancesopen +
What they shot — and what went in

Shot diet

goalsshots
VAN
WRIST0/27
TIP IN2/5
SNAP1/7
SLAP0/5
BACKHAND0/2
DEFLECTED0/2
WRAP AROUND0/1
POKE0/0
OTHER0/12
CGY
WRIST3/19
TIP IN2/7
SNAP0/0
SLAP0/0
BACKHAND1/3
DEFLECTED0/0
WRAP AROUND0/0
POKE1/1
OTHER0/12
VAN
CGY
Off the rush
2 G on 33
2.79 xG
4 G on 24
1.75 xG
Off rebounds
0 G on 4
0.61 xG
2 G on 2
0.41 xG

Wrist shots carried the volume: VAN went 0-for-27, CGY 3-for-19. CGY scored 4 of theirs off the rush.

Source · Backcheck xG model · NHL shot types
New to these numbers?

Two things happened in this game: who created the better chances, and who put the puck in the net. They are not the same thing, and this page separates them on purpose.

The one to watch is expected goals— the best single read on who deserved to win. When it disagrees with the scoreboard, that disagreement is usually the story. Nothing here is a projection; every figure is computed from this game's play-by-play. Full glossary →

xG
Expected goals. Every shot scored by how often that exact look goes in. 2.5 xG means the chances were worth about two and a half goals.
HD
High-danger chances — shots from the slot and the crease, where shots actually become goals.
Corsi
Every shot attempt, including the ones that missed or got blocked. A rough read on who had the puck.
Adj.
Score-adjusted. Teams that trail shoot more and teams that lead sit back, so this corrects the attempt count for the scoreboard.
GSAx
Goals saved above expected. A positive number means the goalie stopped more than an average goalie would have on those shots.
PDO
Shooting % plus save % — a luck gauge. It sits near 1.000 over a season, so a game far from it usually means the bounces decided it.
Shot by shot

In the net

Graded on goals saved above expected
K. Lankinen
VAN · 9/12 · .750
-0.7
saved above expected
D
the night
By dangerG/attxGsaved
High danger3/30.7-2.4
Medium2/91.1-0.9
Low2/300.5-1.5

A+ ≥ +2.5 saved above expected · A ≥ +1.5 · B+ ≥ +0.75 · B ≥ +0.25 · C ≥ −0.25 · D ≥ −0.75 · F below −1.5

N. Tolopilo
VAN · 7/11 · .636
-1.7
saved above expected
F
the night
By dangerG/attxGsaved
High danger3/30.7-2.4
Medium2/91.1-0.9
Low2/300.5-1.5

A+ ≥ +2.5 saved above expected · A ≥ +1.5 · B+ ≥ +0.75 · B ≥ +0.25 · C ≥ −0.25 · D ≥ −0.75 · F below −1.5

D. Wolf
CGY · 31/34 · .912
+0.8
saved above expected
B+
the night
By dangerG/attxGsaved
High danger0/20.4+0.4
Medium3/212.6-0.4
Low0/380.8+0.8

A+ ≥ +2.5 saved above expected · A ≥ +1.5 · B+ ≥ +0.75 · B ≥ +0.25 · C ≥ −0.25 · D ≥ −0.75 · F below −1.5

79 shots · press play to watch the game back

Where the shots came from

NHL play-by-play coordinates
VAN
49 shots
3
Final
79 shots
CGY
30 shots
7
VAN attackCGY attack
VAN CGY Goal

Each club shoots toward its own end — VAN left, CGY right — the way you would watch it. A dot's size is how dangerous the look was, from distance and angle; it is a proxy for shot quality, not the xG model the article is written from. Hover a dot for the shooter and the clock.

Ranked from the box score

Three stars

Points first
Three stars · computed, not voted
M. Coronato
#27 · R · CGY
1 G · 2 A · 1 SOG · 15:42 on ice · +2
M. Frost
#16 · C · CGY
1 G · 2 A · 1 SOG · 14:05 on ice · +2
O. Maatta
#3 · D · CGY
1 G · 1 A · 2 SOG · 20:55 on ice · +2
Ranked from the box score — points first · Backcheck
What the model said beforehand

Before the game

Written Sat, Mar 28
Open the pre-game read
Written from the numbers

The read

Edited for clarity
◆ By the ModelJul 12, 9:23 AMEdited for clarityDrafted from NHL play-by-play by Backcheck's model, worded for clarity by an AI editor that may not change a number. Nobody at Backcheck was at the rink. How this works

The models project a VAN 2.4 - 2.7 CGY game with the Flames at 55% win probability. This is about as close to a pick'em as you'll find.

Calgary has won more recently—5-4-1 in their last 10—but points pace lies. Their -6 goal differential over the same span reveals they're winning despite playing worse. Vancouver fares worse, at -11. Both teams have a structural problem they haven't solved.

The season-long 5v5 metrics confirm Calgary's edge in generation. They run 47.0% xG% and 49.0% Corsi% to Vancouver's 44.0% xG% and 46.0% Corsi%. Yet both are running cold: CGY at 0.985 PDO and VAN at 0.974. When PDO is this low, conversion is lagging possession—both teams are candidates for upward regression.

Goaltending is the deciding variable. D. Cooley and K. Lankinen are both on back-to-backs, which raises the probability of a backup start or a tired starter. Whichever team manages fresher goaltending gains an edge.

Filip Chytil (3G 0A, 1.03 xG/60, 15.0% shooting) won't play—he's been out 54 days—so Vancouver's offensive load falls to Drew O'Connor. O'Connor carries the load: 13G 11A at 11.8% shooting, generating 0.85 xG/60. Blake Coleman anchors Calgary's attack with 16G 12A at 11.4% shooting and a 0.89 xG/60 rate. Matt Coronato (10G 16A) operates at 0.80 xG/60, though his 6.6% shooting rate flags him as likely to regress.

Victor Mancini is Vancouver's defensive liability. Calgary's depth is more forgiving—if Coronato stumbles, the Flames have cover.

This is a tight matchup between two flawed teams. The models' coin flip is the right call.

What the model said beforehand

The model's lean

CGY 55%
55%
CGY
Model favorite
45%
55%
VAN50CGY

CGY by 10 points of win probability — a modest lean. Projected score VAN 2.4–2.7 CGY; 18% chance it's tied after 60.

Source · Backcheck Poisson projection · season scoring rates
Season rates · 5v5

Tale of the tape

NHL stats API · our xG
VAN← edge
edge →CGY
44.0%47.0%
46.0%49.0%
2.222.36
2.812.66
1.601.76
2.562.15
0.9740.985

CGY holds 6 of 6 process categories — and the luck row (0.974 vs 0.985) says CGY has been getting the bounces, which tends not to last.

Source · NHL stats API + our xG · 5v5
Form · Last 10
VAN
3-6-1
-11 GD · 1d rest
CGY
5-4-1
-6 GD · 1d rest
0.974
VAN PDO
Luck gauge · drifts to 1.000
0.985
CGY PDO
Luck gauge · drifts to 1.000
What decides it

Keys to the game

Regression watch
  • The Flames' PDO is 0.985 — running cold, due for positive regression.
  • The Canucks' PDO is 0.974 — running cold, due for positive regression.
Things to watch
  • D. Cooley is on a back-to-back — watch for a backup start or a tired starter.
  • K. Lankinen is on a back-to-back — watch for a backup start or a tired starter.
  • The Flames are the hotter team by points pace (5-4-1 in their last 10).
  • The Flames are underwater at -6 goal differential over their last 10.
  • The Flames' PDO is 0.985 — running cold, due for positive regression.
Last game's lineup · confirmed at warm-up

Lineups

NHL box score
VAN
Expected in goal
K. Lankinen
back-to-back.919 last start
Backup Kevin Lankinen · -19.3 GSAx this season
Back-to-back: the backup often gets this one. Treat the starter as unconfirmed.

No completed game on file for this club yet.

CGY
Expected in goal
D. Cooley
back-to-back.909 last start
Backup Dustin Wolf · -1.8 GSAx this season
Back-to-back: the backup often gets this one. Treat the starter as unconfirmed.

No completed game on file for this club yet.

Lineups are the players who dressed in each club's last game, with their minutes; clubs confirm tonight's at warm-up. Every player this preview names was in that lineup.

Computed danger · scouting

Players to watch

NHL stats API · our xG
VAN
Filip Chytil3G 0A
1.03 xG/60 · 1 HD · 15.0% sh
Drew O'Connor13G 11A
0.85 xG/60 · 3 HD · 11.8% sh
CGY
Blake Coleman16G 12A
0.89 xG/60 · 2 HD · 11.4% sh
Matt Coronato10G 16A
0.80 xG/60 · 0 HD · 6.6% sh
Keep going

Where to next