Motion-blurred skater in a Colorado Avalanche sweater
Breakdown · CGY at COL

Avalanche run the Flames off the ice on the underlying numbers

The verdict · earned

The Avalanche earned it — the game and the expected-goals battle both.

CGY 1 · COL 3
◆ By the ModelJul 12, 11:21 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

D. Wolf's 0.950 save percentage turned a 6.72–3.02 expected-goals romp into a 3-1 scoreline. The Avalanche dominated possession (69% xG) but only half-converted their chances; Calgary's goaltender stole the show.

Colorado controlled this game from the start. They generated 6.72 expected goals at 5-on-5 against just 3.02, holding 59% of shot attempts (41–29) and winning the high-danger battle 11–5. Every underlying metric pointed the same direction: this was not close.

Yet D. Wolf (CGY) stopped 4.72 goals above expected, posting a 0.950 save percentage. He faced a barrage of quality chances and answered nearly every one. Meanwhile, M. Blackwood (COL) stopped 2.02 above expected with a 0.966 SV%, but his team wasted the net-front real estate they earned.

The Avalanche were especially lethal on the rush, converting 3 goals on 30 attempts. That efficiency compensated for their xG underperformance (they scored 3 on 6.72 expected). Colorado also crashed effectively—creating 6 rebound chances—but converted zero of them, a missed opportunity given how thoroughly they controlled the ice.

For Calgary, the story is simpler: they generated fewer and lower-quality chances (0.050 xG per shot vs Colorado's 0.086), and the few dangerous opportunities they created (5 high-danger chances) converted zero times. That won't hold up in future games. The Flames outworked nobody; they just faced a superior offensive team and leaned on Wolf to keep it respectable.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Apr 9
CGY
1
COL
3

Avalanche run the Flames off the ice on the underlying numbers

Chances 3.0 – 6.7Did they deserve it? →
Did they deserve it?

The Avalanche earned this one.

Expected goals · chance value
CGY
3.02
COL
6.72
31% of the chances69%

The board read CGY 1, COL 3. The chances read CGY 3.0, COL 6.7.

Our xG model · NHL play-by-play · all situations
Luck check
COL
−3.7
goals above expected
COL6.72 expected · 3 scored
Expected
Scored
CGY3.02 expected · 1 scored
Expected
Scored

The Flames left 2.0 goals on the table against what their chances were worth.

PDO = sh% + sv% · drifts to 1.000 over a season
Every goal, in order
  1. P1 18:44COLG. LandeskogPP0–1
  2. P2 15:01COLM. Necas0–2
  3. P3 17:08CGYT. GrossPP1–2
  4. P3 19:05COLN. MacKinnonEN1–3
NHL play-by-play · chance value from our xG model
Where the shots came from
CGY
47 shots
1
Final
105 shots
COL
58 shots
3
CGY attackCOL attack
CGY COL Goal
47
shots · 1 in
58
shots · 3 in
Every unblocked shot · press play to replay it
Chances by danger
CGYCOL
0 / 5
1.10 xG
High danger
2 / 11
3.96 xG
1 / 11
1.17 xG
Medium
1 / 18
1.99 xG
0 / 44
0.75 xG
Low
0 / 49
0.76 xG

The Flames went 0 for 5 from the slot.

Danger tiers by our xG model · high ≥ 20% chance
In the net
A+
D. Wolf
+4.7
CGY · 38/40
A
M. Blackwood
+2.0
COL · 28/29
The numbers, checked
BACKCHECK

Avalanche run the Flames off the ice on the underlying numbers

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 8–12
  1. 18:44COLG. Landeskogpower play(N. MacKinnon, M. Necas)0–1
2ndshots 9–20
  1. 15:01COLM. Necas(N. MacKinnon, B. Burns)0–2
3rdshots 12–9
  1. 17:08CGYT. Grosspower play(M. Gridin, M. Coronato)1–2
  2. 19:05COLN. MacKinnonempty net(M. Necas)1–3

score reads CGY–COL

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

The numbers

XGBoost xG · NHL play-by-play
6.72
COL chances
Goals their shots were worth
−3.7
Finishing
Goals below what those chances were worth
1.022
COL puck luck
Above 1.000 — the bounces went their way
56.5%
Shot attempts
Over half — they had the puck more
Split by club

Who controlled the game

3.02Expected goals6.72
COL 69% of the chance quality
29Shots on goal41
5High-danger chances11
60All attempts (Corsi)78
Adjusted for score: CGY 48% · COL 52%
Faceoffs · COL won58%off47%neu41%def
Source · NHL play-by-play · XGBoost xG
How the game was won

The danger ladder

shotsgoalsexpected
High dangerslot & crease
CGY0 / 5 · 1.10 xG
COL2 / 11 · 3.96 xG
Medium dangermid-range
CGY1 / 11 · 1.17 xG
COL1 / 18 · 1.99 xG
Low dangerperimeter & point
CGY0 / 44 · 0.75 xG
COL0 / 49 · 0.76 xG

COL went 2-for-11 from high danger on 3.96 expected goals — 2.0 left on the table.

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

Finishing vs expected

expectedactual
CGY
1 G · 3.02 xG · -2.0
COL
3 G · 6.72 xG · -3.7
012345678

CGY finished -2.0 against expected, COL -3.7.

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

Shot diet

goalsshots
CGY
WRIST0/28
SNAP0/8
SLAP0/7
TIP IN0/0
BACKHAND1/3
POKE0/1
OTHER0/13
COL
WRIST1/21
SNAP1/17
SLAP0/8
TIP IN0/8
BACKHAND1/3
POKE0/1
OTHER0/20
CGY
COL
Off the rush
0 G on 29
2.11 xG
3 G on 30
3.93 xG
Off rebounds
1 G on 5
0.64 xG
0 G on 6
1.47 xG

Wrist shots carried the volume: CGY went 0-for-28, COL 1-for-21. COL scored 3 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
D. Wolf
CGY · 38/40 · .950
+4.7
saved above expected
A+
the night
By dangerG/attxGsaved
High danger2/114.0+2.0
Medium1/182.0+1.0
Low0/490.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

M. Blackwood
COL · 28/29 · .966
+2.0
saved above expected
A
the night
By dangerG/attxGsaved
High danger0/51.1+1.1
Medium1/111.2+0.2
Low0/440.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

105 shots · press play to watch the game back

Where the shots came from

NHL play-by-play coordinates
CGY
47 shots
1
Final
105 shots
COL
58 shots
3
CGY attackCOL attack
CGY COL Goal

Each club shoots toward its own end — CGY left, COL 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
N. MacKinnon
#29 · C · COL
1 G · 2 A · 6 SOG · 22:23 on ice · +1
M. Necas
#88 · C · COL
1 G · 2 A · 4 SOG · 19:59 on ice · +2
M. Coronato
#27 · R · CGY
0 G · 1 A · 5 SOG · 19:15 on ice
Ranked from the box score — points first · Backcheck
What the model said beforehand

Before the game

Written Thu, Apr 9
Open the pre-game read
Written from the numbers

The read

Edited for clarity
◆ By the ModelJul 12, 11:04 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 model projects a 2.3–3.0 Avalanche win at 61% win probability. Colorado's edge is territorial: the Avalanche control 57.0% of 5v5 expected goals versus Calgary's 47.0%, the same gap that shows in Corsi at 57.0% versus 49.0%. That degree of dominance in volume usually translates to sustainable scoring pressure.

The regression risk is where it gets complicated. Colorado's PDO sits at 1.021, meaning the Avalanche are outscoring their underlying metrics. Calgary sits at 0.985, meaning the Flames are underperforming theirs. Both suggest variance is in play: Colorado gives back a goal or two, Calgary banks on gaining one.

Blake Coleman is Calgary's pulse—16 goals on 0.89 xG per 60 minutes, including 2 high-danger goals, shooting at 11.4%. That shooting percentage suggests execution above fair value. Matt Coronato (10 goals, 6.6% shooting) is the secondary weapon, and also the defensive weak link the model flags.

Colorado counters with Artturi Lehkonen at 1.11 xG per 60 minutes, 18 goals, 22 assists, 6 high-danger goals, shooting 14.9%—elite offensive output. Ross Colton runs adjacent (1.10 xG/60, 7 goals, 15 assists, 1 high-danger goal, 4.9% shooting). Nazem Kadri is Colorado's defensive liability.

Both S. Wedgewood (CGY) and D. Cooley (COL) are on back-to-backs—typically a signal of either a backup start or a fatigued starter. Backup depth at goalie is thin, and fatigue is usually invisible until it isn't.

The model's lean on Colorado is reasonable: the underlying data supports a structural edge in volume. Calgary's path requires Coleman and Coronato sustaining their luck while staying ahead of Lehkonen and Colton. In a 2.3–3.0 range, that's a narrow margin.

What the model said beforehand

The model's lean

COL 61%
61%
COL
Model favorite
39%
61%
CGY50COL

COL by 22 points of win probability — a clear lean. Projected score CGY 2.3–3.0 COL; 17% 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
CGY← edge
edge →COL
47.0%57.0%
49.0%57.0%
2.363.03
2.662.30
1.762.63
2.151.56
0.9851.021

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

Source · NHL stats API + our xG · 5v5
Form · Last 10
CGY
6-2-2
+0 GD · 1d rest
COL
7-3-0
+15 GD · 1d rest
0.985
CGY PDO
Luck gauge · drifts to 1.000
1.021
COL PDO
Luck gauge · drifts to 1.000
What decides it

Keys to the game

Where the edges live
  • The Avalanche own the underlying play — 57.0% 5v5 xG vs 47.0%.
  • The Avalanche drive Corsi at 57.0% — expect territorial tilt.
Regression watch
  • The Avalanche's PDO is 1.021 — running hot, expect some regression.
  • The Flames' PDO is 0.985 — running cold, due for positive regression.
Things to watch
  • The Avalanche own the underlying play — 57.0% 5v5 xG vs 47.0%.
  • The Avalanche drive Corsi at 57.0% — expect territorial tilt.
  • S. Wedgewood is on a back-to-back — watch for a backup start or a tired starter.
  • D. Cooley is on a back-to-back — watch for a backup start or a tired starter.
  • The Avalanche's PDO is 1.021 — running hot, expect some regression.
Last game's lineup · confirmed at warm-up

Lineups

NHL box score
CGY
Expected in goal
D. Cooley
back-to-back.840 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.

COL
Expected in goal
S. Wedgewood
back-to-back.947 last start
Backup Scott Wedgewood · +23.1 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
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
COL
Artturi Lehkonen18G 22A
1.11 xG/60 · 6 HD · 14.9% sh
Ross Colton7G 15A
1.10 xG/60 · 1 HD · 4.9% sh
Keep going

Where to next