Motion-blurred skater in a Carolina Hurricanes sweater
Breakdown · CGY at CAR

Hurricanes shut out the Flames, 1-0

The verdict · earned

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

CGY 0 · CAR 1
◆ By the ModelJul 11, 6:23 PMxG: 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 Hurricanes' 1-0 overtime win masks a brutal evening of underperformance at both ends. Carolina controlled 55% of expected goals (3.51–2.85) but still needed a 02:52 OT snipe from Nikolaj Ehlers to escape. Calgary was worse: zero goals on 2.85 xG, nearly pulling off the impossible.

Both teams left massive performances on the ice. The Hurricanes underperformed their xG by 2.51 goals. Calgary underperformed theirs by 2.85. When a 1-0 game features that much unfulfilled potential, you're watching two teams execute poorly in the final moment.

The gap reflected the play. Calgary generated higher-quality chances — 0.073 xG per shot versus Carolina's 0.051 — a rare case where the losing team brought the better looks. But Calgary couldn't convert: 0-for-5 on high-danger attempts. Carolina's high-danger tally matched it at 5, though the Hurricanes' eventual breakthrough came in overtime, not from the slot.

Goaltending became the amplifier. B. Bussi saved 2.85 goals above expected, stopping all 16 shots to steal what could have been a loss. D. Cooley responded with 2.51 above expected (16-for-17), outplaying the scoreboard on an evening when Calgary's offense had no answers. Both stopped anything they faced; their teams simply couldn't finish elsewhere.

The Hurricanes generated three rebound opportunities but converted zero. Calgary created five and converted zero. Neither team could build momentum from chaos in front, a symptom of the broader offensive drought.

Ehlers settled it at 02:52 of overtime with a snap shot from the doorstep — the only finish that stuck all night. Carolina's depth answered: S. Walker (1A, 23:41) and T. Hall (1A, 13:01) got assists, spreading credit across the roster.

The result flatters Carolina. In the xG column, they deserved a comfortable win. On the scoreboard, they scraped by on efficiency and goaltending. That's what a 1-0 overtime game looks like when both teams waste a season's worth of chances.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · OT · Nov 30
CGY
0
CAR
1

Hurricanes shut out the Flames, 1-0

Chances 2.9 – 3.5Did they deserve it? →
Did they deserve it?

The Hurricanes earned this one.

Expected goals · chance value
CGY
2.85
CAR
3.51
45% of the chances55%

The board read CGY 0, CAR 1. The chances read CGY 2.9, CAR 3.5.

Our xG model · NHL play-by-play · all situations
Luck check
CAR
−2.5
goals above expected
CAR3.51 expected · 1 scored
Expected
Scored
CGY2.85 expected · 0 scored
Expected
Scored

The Flames left 2.9 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. OT 02:52CARN. Ehlers0–1
NHL play-by-play · chance value from our xG model
Where the shots came from
CGY
31 shots
0
Final
72 shots
CAR
41 shots
1
CGY attackCAR attack
CGY CAR Goal
31
shots · 0 in
41
shots · 1 in
Every unblocked shot · press play to replay it
Chances by danger
CGYCAR
0 / 5
1.15 xG
High danger
1 / 5
1.30 xG
0 / 11
1.23 xG
Medium
0 / 16
1.65 xG
0 / 23
0.46 xG
Low
0 / 48
0.57 xG

The Flames went 0 for 5 from the slot.

Danger tiers by our xG model · high ≥ 20% chance
In the net
A+
B. Bussi
+2.9
CAR · 16/16
A+
D. Cooley
+2.5
CGY · 16/17
The numbers, checked
BACKCHECK

Hurricanes shut out the Flames, 1-0

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 3–6no goals
    2ndshots 8–4no goals
      3rdshots 5–5no goals
        OTshots 0–2
        1. 02:52CARN. Ehlers(T. Hall, S. Walker)0–1

        score reads CGY–CAR

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

        The numbers

        XGBoost xG · NHL play-by-play
        3.51
        CAR chances
        Goals their shots were worth
        −2.5
        Finishing
        Goals below what those chances were worth
        1.014
        CAR puck luck
        About 1.000 — a normal night for bounces
        63.9%
        Shot attempts
        Over half — they had the puck more
        Split by club

        Who controlled the game

        2.85Expected goals3.51
        CAR 55% of the chance quality
        16Shots on goal17
        5High-danger chances5
        39All attempts (Corsi)69
        Adjusted for score: CGY 36% · CAR 64%
        Faceoffs · CAR won82%off58%neu31%def
        Source · NHL play-by-play · XGBoost xG
        How the game was won

        The danger ladder

        shotsgoalsexpected
        High dangerslot & crease
        CGY0 / 5 · 1.15 xG
        CAR1 / 5 · 1.30 xG
        Medium dangermid-range
        CGY0 / 11 · 1.23 xG
        CAR0 / 16 · 1.65 xG
        Low dangerperimeter & point
        CGY0 / 23 · 0.46 xG
        CAR0 / 48 · 0.57 xG

        CAR went 0-for-16 from medium danger on 1.65 expected goals — 1.6 left on the table.

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

        Finishing vs expected

        expectedactual
        CGY
        0 G · 2.85 xG · -2.9
        CAR
        1 G · 3.51 xG · -2.5
        01234

        CGY finished -2.9 against expected, CAR -2.5.

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

        Shot diet

        goalsshots
        CGY
        WRIST0/11
        SNAP0/10
        SLAP0/4
        BACKHAND0/2
        TIP IN0/3
        DEFLECTED0/1
        OTHER0/8
        CAR
        WRIST0/20
        SNAP1/14
        SLAP0/3
        BACKHAND0/2
        TIP IN0/1
        DEFLECTED0/1
        OTHER0/28
        CGY
        CAR
        Off the rush
        0 G on 20
        1.54 xG
        1 G on 30
        2.82 xG
        Off rebounds
        0 G on 5
        0.94 xG
        0 G on 3
        0.27 xG

        Wrist shots carried the volume: CGY went 0-for-11, CAR 0-for-20.

        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. Cooley
        CGY · 16/17 · .941
        +2.5
        saved above expected
        A+
        the night
        By dangerG/attxGsaved
        High danger1/51.3+0.3
        Medium0/161.6+1.6
        Low0/480.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

        B. Bussi
        CAR · 16/16 · 1.000
        +2.9
        saved above expected
        A+
        the night
        By dangerG/attxGsaved
        High danger0/51.1+1.1
        Medium0/111.2+1.2
        Low0/230.5+0.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

        72 shots · press play to watch the game back

        Where the shots came from

        NHL play-by-play coordinates
        CGY
        31 shots
        0
        Final
        72 shots
        CAR
        41 shots
        1
        CGY attackCAR attack
        CGY CAR Goal

        Each club shoots toward its own end — CGY left, CAR 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
        S. Walker
        #26 · D · CAR
        0 G · 1 A · 2 SOG · 23:41 on ice · +1
        N. Ehlers
        #27 · L · CAR
        1 G · 0 A · 2 SOG · 15:38 on ice · +1
        T. Hall
        #71 · L · CAR
        0 G · 1 A · 1 SOG · 13:01 on ice · +1
        Ranked from the box score — points first · Backcheck
        What the model said beforehand

        Before the game

        Written Sun, Nov 30
        Open the pre-game read
        Written from the numbers

        The read

        Edited for clarity
        ◆ By the ModelJul 11, 6:22 PMEdited 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

        Carolina enters favored at 60% win probability, with the model projecting a 2.3–3.0 score line. The edge rests on superior underlying play: the Hurricanes are generating 56.0% of expected goals at 5v5 versus Calgary's 47.0%, and controlling play at 60.0% Corsi versus the Flames' 49.0%. That's a territorial mismatch that should favor the visitors.

        Both teams are running cold. Carolina's PDO sits at 0.984, suggesting their results have lagged their shot quality. Calgary's 0.985 PDO tells the same story. Whoever regresses closer to league average first wins the variance battle.

        The offensive edge sharpens with Carolina's depth. Jackson Blake (1.06 xG/60, 14G 19A) is generating chances at an elite rate, backed by 2 high-danger goals. Seth Jarvis (0.98 xG/60, 17G 12A) has been even more efficient with 11.9% shooting, though he owns just 1 HD goal. Calgary's Blake Coleman (0.89 xG/60, 16G 12A, 2 HD goals) is a reliable 60-minute performer, while Matt Coronato (0.80 xG/60, 10G 16A) presents an outlier—6.6% shooting that masks a less impressive underlying game.

        The defensive picture seals it for Carolina. Matt Coronato is Calgary's liability; Charles Alexis Legault carries the same burden for the Hurricanes. When either team attacks those weak links, the math improves. Coronato's elevated shooting rate will regress; that's a Carolina advantage in extended play.

        The model likes what it sees: territorial control, a nine-percentage-point expected-goal advantage, and two PDOs bound for regression. Carolina should hold court here.

        What the model said beforehand

        The model's lean

        CAR 61%
        61%
        CAR
        Model favorite
        39%
        61%
        CGY50CAR

        CAR by 22 points of win probability — a clear lean. Projected score CGY 2.3–3.0 CAR; 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 →CAR
        47.0%56.0%
        49.0%60.0%
        2.362.98
        2.662.31
        1.762.26
        2.151.95
        0.9850.984

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

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

        Keys to the game

        Where the edges live
        • The Hurricanes own the underlying play — 56.0% 5v5 xG vs 47.0%.
        • The Hurricanes drive Corsi at 60.0% — expect territorial tilt.
        Regression watch
        • The Hurricanes' PDO is 0.984 — running cold, due for positive regression.
        • The Flames' PDO is 0.985 — running cold, due for positive regression.
        Things to watch
        • The Hurricanes own the underlying play — 56.0% 5v5 xG vs 47.0%.
        • The Hurricanes drive Corsi at 60.0% — expect territorial tilt.
        • The Hurricanes' PDO is 0.984 — running cold, due for positive regression.
        Last game's lineup · confirmed at warm-up

        Lineups

        NHL box score
        CGY
        Expected in goal
        D. Cooley
        2 days rest.927 last start
        Backup Dustin Wolf · -1.8 GSAx this season

        No completed game on file for this club yet.

        CAR
        Expected in goal
        B. Bussi
        2 days rest.923 last start
        Backup Brandon Bussi · +2.8 GSAx this season

        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
        CAR
        Jackson Blake14G 19A
        1.06 xG/60 · 2 HD · 10.9% sh
        Seth Jarvis17G 12A
        0.98 xG/60 · 1 HD · 11.9% sh
        Keep going

        Where to next