Motion-blurred skater in a green sweater
Breakdown · DAL at CGY

Stars run the Flames off the ice on the underlying numbers

The verdict · earned

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

DAL 6 · CGY 1
◆ By the ModelJul 12, 5:30 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

Dallas's 6–1 scoreline overstates the quality gap. The Stars dominated underlying play (66% of 5v5 expected goals, 4.21–2.16) but finished with elite precision: they outscored their xG by 1.79 goals, while Calgary's goaltending collapsed.

The shot attempts told a tighter story. Calgary held 38% (21–35), but the Stars' looks were cleaner: 0.061 xG per shot versus Calgary's 0.045. Dallas squeezed three goals from low-danger areas—routine saves for a sharp goalie. They were lethally efficient on the rush, converting 6 of 24 chances into goals.

Goaltending swung the result hard. D. Cooley stole the show for Calgary, saving 2.2 goals above expected. D. Wolf gave up 2.0 more than expected with 0.765 save percentage. C. DeSmith stopped 1.2 goals above expected on 20 of 21.

The Stars scored where they should have, and Calgary didn't—a formula for lopsided margins even within a narrower expected-goal range.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Mar 3
DAL
6
CGY
1

Stars run the Flames off the ice on the underlying numbers

Chances 4.2 – 2.2Did they deserve it? →
Did they deserve it?

The Stars earned this one.

Expected goals · chance value
DAL
4.21
CGY
2.16
66% of the chances34%

The board read DAL 6, CGY 1. The chances read DAL 4.2, CGY 2.2.

Our xG model · NHL play-by-play · all situations
Luck check
DAL
+1.8
goals above expected
DAL4.21 expected · 6 scored
Expected
Scored
CGY2.16 expected · 1 scored
Expected
Scored

The Stars scored 1.8 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 08:44DALS. Steel1–0
  2. P1 09:52CGYM. Frost1–1
  3. P1 11:54DALJ. Benn2–1
  4. P2 02:26DALM. Bourque3–1
  5. P2 06:02DALS. Steel4–1
  6. P2 08:48DALN. Bastian5–1
  7. P2 19:41DALW. JohnstonPP6–1
NHL play-by-play · chance value from our xG model
Where the shots came from
DAL
44 shots
6
Final
78 shots
CGY
34 shots
1
DAL attackCGY attack
DAL CGY Goal
44
shots · 6 in
34
shots · 1 in
Every unblocked shot · press play to replay it
Chances by danger
DALCGY
1 / 6
1.46 xG
High danger
0 / 2
0.46 xG
2 / 19
2.19 xG
Medium
1 / 9
1.06 xG
3 / 44
0.56 xG
Low
0 / 37
0.65 xG

High-danger looks: DAL 1 of 6, CGY 0 of 2.

Danger tiers by our xG model · high ≥ 20% chance
In the net
A
D. Cooley
+2.2
CGY · 16/18
B+
C. DeSmith
+1.2
DAL · 20/21
+1 more on the full breakdown
The numbers, checked
BACKCHECK

Stars 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 11–9
  1. 08:44DALS. Steel(M. Duchene, J. Benn)1–0
  2. 09:52CGYM. Frost(B. Coleman, A. Klapka)1–1
  3. 11:54DALJ. Benn(M. Duchene, S. Steel)2–1
2ndshots 11–5
  1. 02:26DALM. Bourque(J. Robertson, W. Johnston)3–1
  2. 06:02DALS. Steel(M. Duchene, E. Lindell)4–1
  3. 08:48DALN. Bastian(N. Lundkvist, T. Harley)5–1
  4. 19:41DALW. Johnstonpower play(M. Duchene, J. Robertson)6–1
3rdshots 13–7no goals

    score reads DAL–CGY

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

    The numbers

    XGBoost xG · NHL play-by-play
    4.21
    DAL chances
    Goals their shots were worth
    +1.8
    Finishing
    Goals above what those chances were worth
    1.066
    DAL puck luck
    Above 1.000 — the bounces went their way
    59.0%
    Shot attempts
    Over half — they had the puck more
    Split by club

    Who controlled the game

    4.21Expected goals2.16
    DAL 66% of the chance quality
    35Shots on goal21
    6High-danger chances2
    69All attempts (Corsi)48
    Adjusted for score: DAL 53% · CGY 47%
    Faceoffs · CGY won46%off43%neu30%def
    Source · NHL play-by-play · XGBoost xG
    How the game was won

    The danger ladder

    shotsgoalsexpected
    High dangerslot & crease
    DAL1 / 6 · 1.46 xG
    CGY0 / 2 · 0.46 xG
    Medium dangermid-range
    DAL2 / 19 · 2.19 xG
    CGY1 / 9 · 1.06 xG
    Low dangerperimeter & point
    DAL3 / 44 · 0.56 xG
    CGY0 / 37 · 0.65 xG

    DAL went 3-for-44 from low danger on 0.56 expected goals — 2.4 above expected.

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

    Finishing vs expected

    expectedactual
    DAL
    6 G · 4.21 xG · +1.8
    CGY
    1 G · 2.16 xG · -1.2
    01234567

    DAL finished +1.8 against expected, CGY -1.2.

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

    Shot diet

    goalsshots
    DAL
    WRIST0/21
    TIP IN2/8
    SNAP2/5
    BACKHAND1/6
    DEFLECTED1/3
    SLAP0/1
    WRAP AROUND0/0
    OTHER0/25
    CGY
    WRIST0/24
    TIP IN1/3
    SNAP0/3
    BACKHAND0/2
    DEFLECTED0/0
    SLAP0/1
    WRAP AROUND0/1
    OTHER0/14
    DAL
    CGY
    Off the rush
    6 G on 24
    2.72 xG
    1 G on 23
    1.79 xG
    Off rebounds
    0 G on 5
    0.61 xG
    0 G on 2
    0.20 xG

    Wrist shots carried the volume: DAL went 0-for-21, CGY 0-for-24. DAL scored 6 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
    C. DeSmith
    DAL · 20/21 · .952
    +1.2
    saved above expected
    B+
    the night
    By dangerG/attxGsaved
    High danger0/20.5+0.5
    Medium1/91.1+0.1
    Low0/370.7+0.7

    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. Cooley
    CGY · 16/18 · .889
    +2.2
    saved above expected
    A
    the night
    By dangerG/attxGsaved
    High danger1/61.5+0.5
    Medium2/192.2+0.2
    Low3/440.6-2.4

    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 · 13/17 · .765
    +0.2
    saved above expected
    C
    the night
    By dangerG/attxGsaved
    High danger1/61.5+0.5
    Medium2/192.2+0.2
    Low3/440.6-2.4

    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

    78 shots · press play to watch the game back

    Where the shots came from

    NHL play-by-play coordinates
    DAL
    44 shots
    6
    Final
    78 shots
    CGY
    34 shots
    1
    DAL attackCGY attack
    DAL CGY Goal

    Each club shoots toward its own end — DAL 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. Duchene
    #95 · C · DAL
    0 G · 4 A · 0 SOG · 13:07 on ice · +3
    S. Steel
    #18 · C · DAL
    2 G · 1 A · 3 SOG · 13:52 on ice · +3
    J. Robertson
    #21 · L · DAL
    0 G · 2 A · 3 SOG · 18:02 on ice
    Ranked from the box score — points first · Backcheck
    What the model said beforehand

    Before the game

    Written Tue, Mar 3
    Open the pre-game read
    Written from the numbers

    The read

    Edited for clarity
    ◆ By the ModelJul 12, 5:19 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

    Dallas and Calgary project almost identically: 2.5 goals for the Stars, 2.4 for the Flames, with Dallas holding a 51% win probability. This matchup has no clear edge.

    The Stars arrive as the hotter team by recent record, going 9-1-0 over their last 10 games, while Calgary sits underwater at minus-9 goal differential over the same stretch. But Dallas's underlying advantage is narrower than its win column suggests. The Stars control 5v5 expected goals at 51.0% to Calgary's 47.0%—a legitimate edge, but not dominant. The Flames counter with a 49.0% Corsi advantage, meaning they're generating more shot volume at even strength, even if those chances are lower-quality.

    The regression angle matters here. Dallas is running hot with a 1.024 PDO, suggesting positive variance in puck luck; expect that to regress downward. Calgary's 0.985 PDO reflects negative variance—the Flames are due for the bounce-back, at least statistically.

    The goaltending story adds uncertainty. D. Cooley is playing on a back-to-back, which could mean a backup start or a tired starter carrying the load.

    For Dallas, Jason Robertson remains the engine—0.96 expected goals per 60 minutes, 25 goals, 21 assists, 2 high-danger goals, and an elite 12.4% shooting rate. Michael Bunting (0.83 xG/60, 8 goals, 14 assists) provides complementary scoring but at a more modest 7.6% shooting rate, well below Robertson's volume. Calgary counters with Blake Coleman, who generates at a 0.89 xG/60 clip with 16 goals and 12 assists against 2 high-danger goals and 11.4% shooting—a reliable contributor on a tighter margin than Robertson's. Matt Coronato (0.80 xG/60, 10 goals, 16 assists) chips in secondary offense at 6.6% shooting.

    Neither team is converting high-danger chances efficiently. Dallas sits at 0% for high-danger and rebound goals, Calgary equally flat there. Dallas's defensive weak link is Tyler Myers; Calgary's is Matt Coronato.

    This is the definition of a symmetric matchup—one team gaining points pace while the other dominates underlying metrics, neither offense primed to separate decisively, and regression pressures pointing in opposite directions. The Stars' 51% projection is essentially neutral.

    What the model said beforehand

    The model's lean

    DAL 51%
    51%
    DAL
    Model favorite
    51%
    49%
    DAL50CGY

    DAL by 2 points of win probability — effectively a coin flip. Projected score DAL 2.5–2.4 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
    DAL← edge
    edge →CGY
    51.0%47.0%
    47.0%49.0%
    2.362.36
    2.292.66
    2.071.76
    1.682.15
    1.0240.985

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

    Source · NHL stats API + our xG · 5v5
    Form · Last 10
    DAL
    9-1-0
    +13 GD · 2d rest
    CGY
    3-5-2
    -9 GD · 1d rest
    1.024
    DAL 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 Stars own the underlying play — 51.0% 5v5 xG vs 47.0%.
    Regression watch
    • The Flames' PDO is 0.985 — running cold, due for positive regression.
    • The Stars' PDO is 1.024 — running hot, expect some regression.
    Things to watch
    • The Stars own the underlying play — 51.0% 5v5 xG vs 47.0%.
    • D. Cooley is on a back-to-back — watch for a backup start or a tired starter.
    • The Stars are the hotter team by points pace (9-1-0 in their last 10).
    • The Flames are underwater at -9 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
    DAL
    Expected in goal
    J. Oettinger
    2 days rest.926 last start
    Backup Jake Oettinger · +5.7 GSAx this season

    No completed game on file for this club yet.

    CGY
    Expected in goal
    D. Cooley
    back-to-back.944 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
    DAL
    Jason Robertson25G 21A
    0.96 xG/60 · 2 HD · 12.4% sh
    Michael Bunting8G 14A
    0.83 xG/60 · 0 HD · 7.6% 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