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

M. Blackwood stands tall as the Avalanche edge the Flames

The verdict · earned

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

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

The Flames held 45% of shot attempts but lost 3-1, a result that looked closer than it was. Colorado controlled 64% of expected goals (6.44–3.56) and dominated high-danger chances (13–5), gaps that don't narrow on the road. M. Blackwood (COL) finished with a 0.968 SV% (+2.56 vs expected), and his elite play sealed the margin.

Calgary generated high-danger looks but converted none: 0 for 5. That's a threshold performance; in a single game it can feel like luck, but it cost them. D. Wolf posted a 0.946 SV% (+4.44 vs expected), actually outperforming Blackwood, yet it didn't matter when the shot volume wasn't there. The Flames underperformed their 3.56 xG by 2.56 goals. Colorado underperformed their 6.44 xG by 3.44, yet still scored three—a margin that absorbed the inefficiency.

Nathan MacKinnon's wrist shot from the slot (P3, 19:43) was the turning point, the look that crystallized what the metrics had already declared. It arrived in the third period when Calgary was pressing, when Calgary might have clawed back. It sealed the game. The Flames brought precision on their chances and won some battles on the board, but Colorado's edge in chance quality was insurmountable.

The breakdown in twelve frames

Swipe it

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

M. Blackwood stands tall as the Avalanche edge the Flames

Chances 6.4 – 3.6Did they deserve it? →
Did they deserve it?

The Avalanche earned this one.

Expected goals · chance value
COL
6.44
CGY
3.56
64% of the chances36%

The board read COL 3, CGY 1. The chances read COL 6.4, CGY 3.6.

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

The Flames left 2.6 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. P2 07:22CGYB. Coleman0–1
  2. P2 11:25COLA. Lehkonen1–1
  3. P3 15:07COLG. Landeskog2–1
  4. P3 19:43COLN. MacKinnonEN3–1
NHL play-by-play · chance value from our xG model
Where the shots came from
COL
53 shots
3
Final
95 shots
CGY
42 shots
1
COL attackCGY attack
COL CGY Goal
53
shots · 3 in
42
shots · 1 in
Every unblocked shot · press play to replay it
Chances by danger
COLCGY
2 / 13
4.05 xG
High danger
0 / 5
1.10 xG
1 / 16
1.62 xG
Medium
1 / 16
1.82 xG
0 / 35
0.77 xG
Low
0 / 30
0.64 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.4
CGY · 35/37
A+
M. Blackwood
+2.6
COL · 30/31
The numbers, checked
BACKCHECK

M. Blackwood stands tall as the Avalanche edge the Flames

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–6no goals
    2ndshots 16–11
    1. 07:22CGYB. Coleman(M. Backlund)0–1
    2. 11:25COLA. Lehkonen(C. Makar, S. Malinski)1–1
    3rdshots 12–14
    1. 15:07COLG. Landeskog(B. Kulak, C. Makar)2–1
    2. 19:43COLN. MacKinnonempty net(C. Makar, M. Necas)3–1

    score reads COL–CGY

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

    The numbers

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

    Who controlled the game

    6.44Expected goals3.56
    COL 64% of the chance quality
    38Shots on goal31
    13High-danger chances5
    64All attempts (Corsi)51
    Adjusted for score: COL 56% · CGY 44%
    Faceoffs · CGY won48%off64%neu39%def
    Source · NHL play-by-play · XGBoost xG
    How the game was won

    The danger ladder

    shotsgoalsexpected
    High dangerslot & crease
    COL2 / 13 · 4.05 xG
    CGY0 / 5 · 1.10 xG
    Medium dangermid-range
    COL1 / 16 · 1.62 xG
    CGY1 / 16 · 1.82 xG
    Low dangerperimeter & point
    COL0 / 35 · 0.77 xG
    CGY0 / 30 · 0.64 xG

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

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

    Finishing vs expected

    expectedactual
    COL
    3 G · 6.44 xG · -3.4
    CGY
    1 G · 3.56 xG · -2.6
    01234567

    COL finished -3.4 against expected, CGY -2.6.

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

    Shot diet

    goalsshots
    COL
    WRIST1/23
    TIP IN1/10
    SNAP1/10
    SLAP0/6
    BACKHAND0/3
    DEFLECTED0/1
    OTHER0/11
    CGY
    WRIST0/27
    TIP IN1/8
    SNAP0/3
    SLAP0/3
    BACKHAND0/1
    DEFLECTED0/0
    OTHER0/9
    COL
    CGY
    Off the rush
    2 G on 39
    5.46 xG
    0 G on 29
    2.72 xG
    Off rebounds
    0 G on 3
    0.49 xG
    0 G on 3
    0.33 xG

    Wrist shots carried the volume: COL went 1-for-23, CGY 0-for-27. COL scored 2 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
    M. Blackwood
    COL · 30/31 · .968
    +2.6
    saved above expected
    A+
    the night
    By dangerG/attxGsaved
    High danger0/51.1+1.1
    Medium1/161.8+0.8
    Low0/300.6+0.6

    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 · 35/37 · .946
    +4.4
    saved above expected
    A+
    the night
    By dangerG/attxGsaved
    High danger2/134.0+2.0
    Medium1/161.6+0.6
    Low0/350.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

    95 shots · press play to watch the game back

    Where the shots came from

    NHL play-by-play coordinates
    COL
    53 shots
    3
    Final
    95 shots
    CGY
    42 shots
    1
    COL attackCGY attack
    COL CGY Goal

    Each club shoots toward its own end — COL 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
    C. Makar
    #8 · D · COL
    0 G · 3 A · 4 SOG · 25:35 on ice · +2
    M. Necas
    #88 · C · COL
    0 G · 1 A · 5 SOG · 22:36 on ice · +2
    A. Lehkonen
    #62 · L · COL
    1 G · 0 A · 3 SOG · 22:17 on ice
    Ranked from the box score — points first · Backcheck
    What the model said beforehand

    Before the game

    Written Tue, Apr 14
    Open the pre-game read
    Written from the numbers

    The read

    Edited for clarity
    ◆ By the ModelJul 12, 11:42 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 favors Colorado at 57% win probability, projecting a 2.9–2.5 Avalanche victory. The edge is territorial and offensive; PDO regression is the variable that threatens to compress it.

    Colorado's 57.0% 5v5 expected goals share is where this game lives. That metric isolates shot quality and volume from both teams; the Avalanche generate higher-danger chances at a rate Calgary cannot match (47.0%). Corsi widens the gap—Colorado at 57.0% to Calgary's 49.0% means Colorado controls not just shot volume but the zones where shots originate. The Avalanche will spend more of the game in Calgary's defensive zone. When possession advantages compound across 60 minutes, the territorial margin grows.

    But PDO regression threatens that advantage. Colorado's 1.021 PDO—a composite of shooting percentage and save percentage—is unsustainably hot. The Avalanche have converted and been goaltended at rates their underlying chances do not justify; that luck surplus regresses downward. Calgary's 0.985 PDO is the inverse: a team running cold, shooting below its expected rate and receiving average goaltending from a below-average baseline. The Flames' -7 goal differential over their last 10 games is PDO drag rendered on the scoreboard, yet mean reversion should drift in their favor.

    D. Wolf faces a back-to-back for Calgary. That scheduling reality may force rotation or extract fatigue from an overworked starter—a detail to track for how Calgary responds in net.

    Artturi Lehkonen is Colorado's offensive engine. His 1.11 expected goals per 60 minutes generates elite scoring chances; 18 goals and 22 assists hide the mechanism. Six high-danger goals on 14.9% shooting expose a player who creates and finishes at above-average rates simultaneously. Ross Colton generates similar chances (1.10 xG/60, 7 goals, 15 assists) but shoots 4.9%—his goal total exceeds his chance quality, a regression vector. Both are central to Colorado's edge, but one runs on luck above his baseline.

    Calgary's Blake Coleman and Matt Coronato are functional secondary performers. Coleman's 0.89 xG/60 on 16 goals and 12 assists is steady for a scoring line. Coronato (0.80 xG/60, 10 goals, 16 assists, 6.6% shooting) generates fewer chances per 60 and converts below average. The Flames lack a Lehkonen-caliber creator—a structural gap the model's projection reflects.

    What the model said beforehand

    The model's lean

    COL 57%
    57%
    COL
    Model favorite
    57%
    43%
    COL50CGY

    COL by 14 points of win probability — a modest lean. Projected score COL 2.9–2.5 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
    COL← edge
    edge →CGY
    57.0%47.0%
    57.0%49.0%
    3.032.36
    2.302.66
    2.631.76
    1.562.15
    1.0210.985

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

    Source · NHL stats API + our xG · 5v5
    Form · Last 10
    COL
    6-3-1
    +12 GD · 2d rest
    CGY
    4-4-2
    -7 GD · 1d rest
    1.021
    COL PDO
    Luck gauge · drifts to 1.000
    0.985
    CGY 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 Flames' PDO is 0.985 — running cold, due for positive regression.
    • The Avalanche's PDO is 1.021 — running hot, expect some 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.
    • D. Wolf is on a back-to-back — watch for a backup start or a tired starter.
    • The Flames are underwater at -7 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
    COL
    Expected in goal
    M. Blackwood
    2 days rest.897 last start
    Backup Scott Wedgewood · +23.1 GSAx this season

    No completed game on file for this club yet.

    CGY
    Expected in goal
    D. Wolf
    back-to-back.966 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
    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
    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