Motion-blurred skater in a gold and black sweater
Breakdown · CGY at BOS

Bruins pull away from the Flames

The verdict · earned

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

CGY 1 · BOS 4
◆ By the ModelJul 11, 11:46 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

J. Korpisalo stole this game. The Bruins beat the Flames 4-1. Korpisalo's 0.966 save percentage (28/29) and +2.1 goals above expected made the difference. At 5v5, the Bruins controlled 56% of expected goals (3.99–3.10). They also held 51% of shot attempts (30–29). This framework suggested a close game, yet the Flames underperformed their expected goals by 2.1. They squandered their 3 high-danger chances against Boston's 7.

Bruins offensive efficiency compounded the goaltending gap. They converted 3 of 24 rush attempts, exploiting transition play. They generated 10 rebound opportunities, converting one. Twice they scored from low-danger spots, moments that demand exceptional play from the opposing goalie.

S. Kuraly led the attack with 1 goal and 1 assist in 14:28. T. Jeannot created chances with 2 assists in 12:23. C. McAvoy contributed 1 assist in 24:01. For Calgary, D. Wolf's 0.867 save percentage on 26 of 30 shots could not overcome Boston's execution and Korpisalo's play.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Jan 8
CGY
1
BOS
4

Bruins pull away from the Flames

Chances 3.1 – 4.0Did they deserve it? →
Did they deserve it?

The Bruins earned this one.

Expected goals · chance value
CGY
3.10
BOS
3.99
44% of the chances56%

The board read CGY 1, BOS 4. The chances read CGY 3.1, BOS 4.0.

Our xG model · NHL play-by-play · all situations
Luck check
BOS
+0.0
goals above expected
BOS3.99 expected · 4 scored
Expected
Scored
CGY3.10 expected · 1 scored
Expected
Scored

The Flames left 2.1 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 09:48BOSS. Kuraly0–1
  2. P1 12:06BOSE. Lindholm0–2
  3. P2 14:02BOSM. Lohrei0–3
  4. P2 17:59BOSC. Mittelstadt0–4
  5. P2 18:44CGYC. Zary1–4
NHL play-by-play · chance value from our xG model
Where the shots came from
CGY
39 shots
1
Final
92 shots
BOS
53 shots
4
CGY attackBOS attack
CGY BOS Goal
39
shots · 1 in
53
shots · 4 in
Every unblocked shot · press play to replay it
Chances by danger
CGYBOS
1 / 3
0.76 xG
High danger
1 / 7
1.62 xG
0 / 16
1.84 xG
Medium
1 / 12
1.40 xG
0 / 38
0.50 xG
Low
2 / 56
0.97 xG

High-danger looks: CGY 1 of 3, BOS 1 of 7.

Danger tiers by our xG model · high ≥ 20% chance
In the net
A
J. Korpisalo
+2.1
BOS · 28/29
C
D. Wolf
−0.0
CGY · 26/30
The numbers, checked
BACKCHECK

Bruins pull away from 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 7–13
  1. 09:48BOSS. Kuraly(T. Jeannot, C. McAvoy)0–1
  2. 12:06BOSE. Lindholm(D. Pastrnak, M. Khusnutdinov)0–2
2ndshots 9–10
  1. 14:02BOSM. Lohrei(S. Kuraly, T. Jeannot)0–3
  2. 17:59BOSC. Mittelstadt(V. Arvidsson, P. Zacha)0–4
  3. 18:44CGYC. Zary(M. Frost, K. Bahl)1–4
3rdshots 13–7no goals

    score reads CGY–BOS

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

    The numbers

    XGBoost xG · NHL play-by-play
    3.99
    BOS chances
    Goals their shots were worth
    +0.0
    Finishing
    Goals above what those chances were worth
    1.036
    BOS puck luck
    Above 1.000 — the bounces went their way
    56.8%
    Shot attempts
    Over half — they had the puck more
    Split by club

    Who controlled the game

    3.10Expected goals3.99
    BOS 56% of the chance quality
    29Shots on goal30
    3High-danger chances7
    57All attempts (Corsi)75
    Adjusted for score: CGY 50% · BOS 50%
    Faceoffs · BOS won59%off33%neu63%def
    Source · NHL play-by-play · XGBoost xG
    How the game was won

    The danger ladder

    shotsgoalsexpected
    High dangerslot & crease
    CGY1 / 3 · 0.76 xG
    BOS1 / 7 · 1.62 xG
    Medium dangermid-range
    CGY0 / 16 · 1.84 xG
    BOS1 / 12 · 1.40 xG
    Low dangerperimeter & point
    CGY0 / 38 · 0.50 xG
    BOS2 / 56 · 0.97 xG

    CGY went 0-for-16 from medium danger on 1.84 expected goals — 1.8 left on the table.

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

    Finishing vs expected

    expectedactual
    CGY
    1 G · 3.10 xG · -2.1
    BOS
    4 G · 3.99 xG · +0.0
    012345

    CGY finished -2.1 against expected, BOS +0.0.

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

    Shot diet

    goalsshots
    CGY
    SNAP1/23
    WRIST0/2
    TIP IN0/7
    SLAP0/4
    BACKHAND0/2
    DEFLECTED0/1
    BAT0/0
    OTHER0/18
    BOS
    SNAP1/8
    WRIST3/29
    TIP IN0/5
    SLAP0/5
    BACKHAND0/3
    DEFLECTED0/1
    BAT0/2
    OTHER0/22
    CGY
    BOS
    Off the rush
    0 G on 28
    2.02 xG
    3 G on 24
    2.18 xG
    Off rebounds
    0 G on 0
    0.00 xG
    1 G on 10
    1.33 xG

    Snap shots carried the volume: CGY went 1-for-23, BOS 1-for-8. BOS 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 · 26/30 · .867
    -0.0
    saved above expected
    C
    the night
    By dangerG/attxGsaved
    High danger1/71.6+0.6
    Medium1/121.4+0.4
    Low2/561.0-1.0

    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. Korpisalo
    BOS · 28/29 · .966
    +2.1
    saved above expected
    A
    the night
    By dangerG/attxGsaved
    High danger1/30.8-0.2
    Medium0/161.8+1.8
    Low0/380.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

    92 shots · press play to watch the game back

    Where the shots came from

    NHL play-by-play coordinates
    CGY
    39 shots
    1
    Final
    92 shots
    BOS
    53 shots
    4
    CGY attackBOS attack
    CGY BOS Goal

    Each club shoots toward its own end — CGY left, BOS 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. Kuraly
    #52 · C · BOS
    1 G · 1 A · 2 SOG · 14:28 on ice · +1
    T. Jeannot
    #84 · L · BOS
    0 G · 2 A · 0 SOG · 12:23 on ice · +1
    C. McAvoy
    #73 · D · BOS
    0 G · 1 A · 0 SOG · 24:01 on ice · +1
    Ranked from the box score — points first · Backcheck
    What the model said beforehand

    Before the game

    Written Thu, Jan 8
    Open the pre-game read
    Written from the numbers

    The read

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

    The models call this a genuine pick'em. The projection sits at 2.5–2.7 goals for each team, with Boston holding just 53% win probability. This is as close to even money as playoff positioning gets.

    Recent form favors Boston. The Bruins have fallen to -10 goal differential over their last 10 games, a skid that raises questions about their trajectory. Yet at even strength over the full season, they match Calgary exactly: 47.0% expected goals and 49.0% Corsi. The divergence emerges in PDO. Boston's marks 1.023, suggesting they're cashing in above their chances and theoretically due for regression. Calgary sits at 0.985, running cold and primed for positive variance. When two teams share identical underlying shot metrics, luck becomes the only variable—and luck reverts.

    Watch J. Swayman's workload. The Bruins' starter is on a back-to-back, which could result in a backup start or a tired No. 1 between the pipes. Both scenarios offer Calgary an opening.

    The forwards will decide this game. Blake Coleman leads Calgary at 0.89 xG per 60 with 16 goals and 12 assists, accumulating two high-danger chances while sustaining an 11.4% shooting rate. That rate only persists if his shot quality is genuinely elite. Matt Coronato generates at 0.80 xG per 60 with 10 goals and 16 assists, but his 6.6% shooting rate lags his opportunity, a volume-to-results mismatch that typically corrects.

    Boston's Viktor Arvidsson counters decisively at 1.04 xG per 60 with 18 goals and 24 assists, two high-danger markers, and a 13.0% shooting rate that reflects skill rather than variance alone. Tanner Jeannot sits at 0.75 xG per 60 with 6 goals and 14 assists, including two high-danger chances, converting at 8.3%. Boston's forwards have been efficient with their volume. Neither team has generated meaningful high-danger or rebound goals, meaning all scoring flows through primary chances—and those are scarce.

    The central contest: Blake Coleman against Elias Lindholm, Boston's defensive liability. Arvidsson against Matt Coronato, Calgary's defensive weakness. Both pairings carry clear advantage; both could pivot the outcome.

    Recent momentum says Boston. Underlying metrics say even money. PDO regression gives Calgary a theoretical case. Pick your bias. In a game this close, you're not predicting the outcome—you're guessing which component of the model proves accurate first.

    What the model said beforehand

    The model's lean

    BOS 53%
    53%
    BOS
    Model favorite
    47%
    53%
    CGY50BOS

    BOS by 6 points of win probability — a modest lean. Projected score CGY 2.5–2.7 BOS; 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 →BOS
    47.0%47.0%
    49.0%49.0%
    2.362.39
    2.662.67
    1.762.22
    2.151.82
    0.9851.023

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

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

    Keys to the game

    Regression watch
    • The Bruins' PDO is 1.023 — running hot, expect some regression.
    • The Flames' PDO is 0.985 — running cold, due for positive regression.
    Things to watch
    • J. Swayman is on a back-to-back — watch for a backup start or a tired starter.
    • The Bruins are underwater at -10 goal differential over their last 10.
    • The Bruins' PDO is 1.023 — running hot, expect some regression.
    Last game's lineup · confirmed at warm-up

    Lineups

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

    No completed game on file for this club yet.

    BOS
    Expected in goal
    J. Swayman
    back-to-back.769 last start
    Backup Jeremy Swayman · +28.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
    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
    BOS
    Viktor Arvidsson18G 24A
    1.04 xG/60 · 2 HD · 13.0% sh
    Tanner Jeannot6G 14A
    0.75 xG/60 · 2 HD · 8.3% sh
    Keep going

    Where to next