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

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.

CGY 3 · DAL 4
◆ By the ModelJul 12, 10:45 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 won a one-goal game but dominated the underlying metrics: 66% of 5v5 expected goals (4.64–2.34) and high-danger chances (10–4). The scoreboard flatters Calgary.

The quality gap explains the control gap. Dallas generated 0.089 xG per shot; Calgary managed 0.049. One team was hunting chances at the slot, the other taking what it could find.

Goaltending told conflicting stories. J. Oettinger (17/20, 0.850 SV%) notched a strong percentage but played 0.66 goals worse than expected. D. Cooley (21/25, 0.840 SV%) recorded a lower percentage yet played 0.64 goals better than expected.

Both teams were opportunistic off the rush. Dallas scored 3 of 29 chances; Calgary made 2 of 19. Rebound traffic was nearly even — Dallas created four chances (one goal), Calgary three (one goal). The game's full control remained with Dallas.

The game turned on a single shot. Wyatt Johnston's backhander from the doorstep at 03:39 of overtime ended it — the kind of chance the underlying numbers promised Dallas would have all night, finally finished at the end.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · OT · Apr 7
CGY
3
DAL
4

Stars run the Flames off the ice on the underlying numbers

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

The Stars earned this one.

Expected goals · chance value
CGY
2.34
DAL
4.64
34% of the chances67%

The board read CGY 3, DAL 4. The chances read CGY 2.3, DAL 4.6.

Our xG model · NHL play-by-play · all situations
Luck check
DAL
−0.6
goals above expected
DAL4.64 expected · 4 scored
Expected
Scored
CGY2.34 expected · 3 scored
Expected
Scored

Both sides finished close to what their chances were worth. This one was earned on the ice.

PDO = sh% + sv% · drifts to 1.000 over a season
Every goal, in order
  1. P2 04:30DALJ. Hryckowian0–1
  2. P2 12:38CGYJ. Farabee1–1
  3. P2 18:52CGYY. Sharangovich2–1
  4. P3 00:26CGYZ. ParekhPP3–1
  5. P3 01:16DALW. Johnston3–2
  6. P3 04:51DALJ. Robertson3–3
  7. OT 03:39DALW. JohnstonPP3–4
NHL play-by-play · chance value from our xG model
Where the shots came from
CGY
31 shots
3
Final
68 shots
DAL
37 shots
4
CGY attackDAL attack
CGY DAL Goal
31
shots · 3 in
37
shots · 4 in
Every unblocked shot · press play to replay it
Chances by danger
CGYDAL
0 / 4
0.89 xG
High danger
3 / 10
2.69 xG
1 / 8
0.95 xG
Medium
1 / 15
1.54 xG
2 / 36
0.50 xG
Low
0 / 27
0.40 xG

The Flames went 0 for 4 from the slot.

Danger tiers by our xG model · high ≥ 20% chance
In the net
B
D. Cooley
+0.6
CGY · 21/25
D
J. Oettinger
−0.7
DAL · 17/20
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 4–2no goals
    2ndshots 8–6
    1. 04:30DALJ. Hryckowian(T. Harley, N. Lundkvist)0–1
    2. 12:38CGYJ. Farabee(A. Klapka, O. Maatta)1–1
    3. 18:52CGYY. Sharangovich(A. Klapka, Z. Whitecloud)2–1
    3rdshots 8–7
    1. 00:26CGYZ. Parekhpower play(M. Coronato, M. Gridin)3–1
    2. 01:16DALW. Johnston(M. Rantanen)3–2
    3. 04:51DALJ. Robertson(M. Duchene, T. Myers)3–3
    OTshots 0–10
    1. 03:39DALW. Johnstonpower play(J. Robertson, M. Heiskanen)3–4

    score reads CGY–DAL

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

    The numbers

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

    Who controlled the game

    2.34Expected goals4.64
    DAL 67% of the chance quality
    20Shots on goal25
    4High-danger chances10
    48All attempts (Corsi)52
    Adjusted for score: CGY 48% · DAL 52%
    Faceoffs · DAL won50%off67%neu69%def
    Source · NHL play-by-play · XGBoost xG
    How the game was won

    The danger ladder

    shotsgoalsexpected
    High dangerslot & crease
    CGY0 / 4 · 0.89 xG
    DAL3 / 10 · 2.69 xG
    Medium dangermid-range
    CGY1 / 8 · 0.95 xG
    DAL1 / 15 · 1.54 xG
    Low dangerperimeter & point
    CGY2 / 36 · 0.50 xG
    DAL0 / 27 · 0.40 xG

    CGY went 2-for-36 from low danger on 0.50 expected goals — 1.5 above expected.

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

    Finishing vs expected

    expectedactual
    CGY
    3 G · 2.34 xG · +0.7
    DAL
    4 G · 4.64 xG · -0.6
    012345

    CGY finished +0.7 against expected, DAL -0.6.

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

    Shot diet

    goalsshots
    CGY
    SNAP2/20
    TIP IN0/3
    WRIST0/1
    BACKHAND1/3
    SLAP0/2
    DEFLECTED0/1
    WRAP AROUND0/1
    POKE0/0
    OTHER0/17
    DAL
    SNAP3/25
    TIP IN0/4
    WRIST0/5
    BACKHAND1/1
    SLAP0/1
    DEFLECTED0/0
    WRAP AROUND0/0
    POKE0/1
    OTHER0/15
    CGY
    DAL
    Off the rush
    2 G on 19
    1.46 xG
    3 G on 29
    3.78 xG
    Off rebounds
    1 G on 3
    0.59 xG
    1 G on 4
    0.71 xG

    Snap shots carried the volume: CGY went 2-for-20, DAL 3-for-25. DAL 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. Cooley
    CGY · 21/25 · .840
    +0.6
    saved above expected
    B
    the night
    By dangerG/attxGsaved
    High danger3/102.7-0.3
    Medium1/151.5+0.5
    Low0/270.4+0.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

    J. Oettinger
    DAL · 17/20 · .850
    -0.7
    saved above expected
    D
    the night
    By dangerG/attxGsaved
    High danger0/40.9+0.9
    Medium1/80.9-0.1
    Low2/360.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

    68 shots · press play to watch the game back

    Where the shots came from

    NHL play-by-play coordinates
    CGY
    31 shots
    3
    Final
    68 shots
    DAL
    37 shots
    4
    CGY attackDAL attack
    CGY DAL Goal

    Each club shoots toward its own end — CGY left, DAL 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
    J. Robertson
    #21 · L · DAL
    1 G · 1 A · 6 SOG · 24:14 on ice
    W. Johnston
    #53 · C · DAL
    2 G · 0 A · 5 SOG · 22:12 on ice
    A. Klapka
    #43 · R · CGY
    0 G · 2 A · 2 SOG · 09:12 on ice · +2
    Ranked from the box score — points first · Backcheck
    What the model said beforehand

    Before the game

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

    The read

    Edited for clarity
    ◆ By the ModelJul 12, 10:44 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 Dallas win between 2.3 and 2.6 goals, giving the Stars 56% win probability. Dallas edges Calgary in underlying shot quality, though both teams face regression headwinds. Dallas's PDO is 1.024—running hot and due for comedown. Calgary's PDO is 0.985—running cold and primed for positive regression. The Flames arrive hotter by recent pace, going 6-3-1 in their last 10, which narrows Dallas's advantage.

    The Stars' edge resides in expected goals: 51.0% xG to Calgary's 47.0%. Yet Calgary maintains 49.0% Corsi—an edge in possession—while Dallas sits at 47.0%. This split between possession and shot merit reveals the matchup's dynamic: the Stars convert their limited chances more efficiently.

    Regression threatens Dallas's baseline. Their 1.024 PDO cannot hold; statistical reversion will erode their advantage. Calgary should see positive movement from 0.985, meaning they outproduce their underlying xG going forward. PDO swings are inherently volatile—Dallas's current run is fragile.

    The player matchup leans toward Dallas. Jason Robertson carries 0.96 xG per 60 minutes with 25 goals and 21 assists, including 2 high-danger goals. Michael Bunting adds 0.83 xG per 60, 8 goals, and 14 assists at 7.6% shooting. Blake Coleman anchors Calgary at 0.89 xG per 60 with 16 goals and 12 assists and 2 high-danger goals, but shoots at 11.4%—above Robertson's 12.4%. Matt Coronato supports at 0.80 xG per 60 with 10 goals and 16 assists, yet operates at just 6.6% shooting.

    Coleman and Coronato depend on shooting rates that cannot persist. Coleman's 11.4% sits above league average; Coronato's 6.6% sits below. Robertson's 12.4% and Bunting's 7.6% will normalize too. When they do, Dallas's technical edge should prevail.

    What the model said beforehand

    The model's lean

    DAL 56%
    56%
    DAL
    Model favorite
    44%
    56%
    CGY50DAL

    DAL by 12 points of win probability — a modest lean. Projected score CGY 2.3–2.6 DAL; 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
    CGY← edge
    edge →DAL
    47.0%51.0%
    49.0%47.0%
    2.362.36
    2.662.29
    1.762.07
    2.151.68
    0.9851.024

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

    Source · NHL stats API + our xG · 5v5
    Form · Last 10
    CGY
    6-3-1
    -2 GD · 2d rest
    DAL
    3-5-2
    -4 GD · 3d rest
    0.985
    CGY PDO
    Luck gauge · drifts to 1.000
    1.024
    DAL 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 Stars' PDO is 1.024 — running hot, expect some regression.
    • The Flames' PDO is 0.985 — running cold, due for positive regression.
    Things to watch
    • The Stars own the underlying play — 51.0% 5v5 xG vs 47.0%.
    • The Flames are the hotter team by points pace (6-3-1 in their last 10).
    • The Stars' PDO is 1.024 — running hot, expect some regression.
    Last game's lineup · confirmed at warm-up

    Lineups

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

    No completed game on file for this club yet.

    DAL
    Expected in goal
    C. DeSmith
    3 days rest.952 last start
    Backup Jake Oettinger · +5.7 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
    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
    Keep going

    Where to next