Motion-blurred skater in a San Jose Sharks sweater
Breakdown · CGY at SJS

Sharks run the Flames off the ice on the underlying numbers

The verdict · earned

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

CGY 3 · SJS 6
◆ By the ModelJul 11, 8:38 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 Flames fired 30 shots against 26 for San Jose—and still lost 6-3. The gap wasn't volume; it was conversion. The Sharks generated 0.083 expected goals per shot to Calgary's 0.042, a lopsided quality advantage that the final margin reflected.

The underlying numbers vindicated the rout. San Jose controlled 63% of 5v5 expected goals (4.72–2.80) and dominated high-danger chances 7–4. Firing more shots only underscored Calgary's disadvantage where it mattered.

Goaltending had little to do with it. Y. Askarov stopped 27 of 30 for a 0.900 save percentage while D. Wolf posted 20 of 25 (0.800)—a gap, but not enormous. San Jose simply created the looks that end up in the net. They were 3-for-7 on high-danger chances (43%), then added two goals from spots no goalie should surrender. That's clinical finishing.

Calgary couldn't convert in the danger areas. San Jose finished two of three rebound chances; Calgary finished zero of four. Throw in the Sharks' three rush goals against Calgary's three, and the picture is clear: San Jose created more in every zone that matters.

Macklin Celebrini's wrist shot from the slot (P3, 18:50) was the turning point. M. Celebrini finished with 2G and 2A across 21:25 of ice time; B. Goodrow added 2G and 1A in just 12:59. Those two did enough for a convincing win on their own. M. Weegar's lone assist was a consolation for a Calgary defense overrun.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Dec 16
CGY
3
SJS
6

Sharks run the Flames off the ice on the underlying numbers

Chances 2.8 – 4.7Did they deserve it? →
Did they deserve it?

The Sharks earned this one.

Expected goals · chance value
CGY
2.80
SJS
4.72
37% of the chances63%

The board read CGY 3, SJS 6. The chances read CGY 2.8, SJS 4.7.

Our xG model · NHL play-by-play · all situations
Luck check
SJS
+1.3
goals above expected
SJS4.72 expected · 6 scored
Expected
Scored
CGY2.80 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. P1 01:02SJSJ. Klingberg0–1
  2. P1 06:00SJSB. Goodrow0–2
  3. P1 11:01CGYB. Coleman1–2
  4. P1 14:23CGYR. Lomberg2–2
  5. P1 19:41SJSB. Goodrow2–3
  6. P3 02:46SJSM. Celebrini2–4
  7. P3 12:53SJST. Toffoli2–5
+2 more on the full breakdown
NHL play-by-play · chance value from our xG model
Where the shots came from
CGY
39 shots
3
Final
83 shots
SJS
44 shots
6
CGY attackSJS attack
CGY SJS Goal
39
shots · 3 in
44
shots · 6 in
Every unblocked shot · press play to replay it
Chances by danger
CGYSJS
0 / 4
0.98 xG
High danger
3 / 7
2.32 xG
1 / 10
1.19 xG
Medium
1 / 17
1.87 xG
2 / 52
0.63 xG
Low
2 / 33
0.53 xG

The Flames went 0 for 4 from the slot.

Danger tiers by our xG model · high ≥ 20% chance
In the net
C
Y. Askarov
−0.2
SJS · 27/30
D
D. Wolf
−0.3
CGY · 20/25
The numbers, checked
BACKCHECK

Sharks 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 9–9
  1. 01:02SJSJ. Klingberg(M. Celebrini)0–1
  2. 06:00SJSB. Goodrow(Z. Ostapchuk, V. Iorio)0–2
  3. 11:01CGYB. Coleman(M. Weegar, C. Zary)1–2
  4. 14:23CGYR. Lomberg(A. Klapka)2–2
  5. 19:41SJSB. Goodrow(M. Celebrini, T. Dellandrea)2–3
2ndshots 8–7no goals
    3rdshots 13–10
    1. 02:46SJSM. Celebrini(C. Graf, I. Chernyshov)2–4
    2. 12:53SJST. Toffoli(W. Eklund, A. Wennberg)2–5
    3. 13:31CGYN. Kadri(J. Huberdeau)3–5
    4. 18:50SJSM. Celebriniempty net(D. Orlov, B. Goodrow)3–6

    score reads CGY–SJS

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

    The numbers

    XGBoost xG · NHL play-by-play
    4.72
    SJS chances
    Goals their shots were worth
    +1.3
    Finishing
    Goals above what those chances were worth
    1.060
    SJS puck luck
    Above 1.000 — the bounces went their way
    46.3%
    Shot attempts
    Under half — they were outshot
    Split by club

    Who controlled the game

    2.80Expected goals4.72
    SJS 63% of the chance quality
    30Shots on goal26
    4High-danger chances7
    66All attempts (Corsi)57
    Adjusted for score: CGY 59% · SJS 42%
    Faceoffs · SJS won48%off52%neu71%def
    Source · NHL play-by-play · XGBoost xG
    How the game was won

    The danger ladder

    shotsgoalsexpected
    High dangerslot & crease
    CGY0 / 4 · 0.98 xG
    SJS3 / 7 · 2.32 xG
    Medium dangermid-range
    CGY1 / 10 · 1.19 xG
    SJS1 / 17 · 1.87 xG
    Low dangerperimeter & point
    CGY2 / 52 · 0.63 xG
    SJS2 / 33 · 0.53 xG

    SJS went 2-for-33 from low danger on 0.53 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.80 xG · +0.2
    SJS
    6 G · 4.72 xG · +1.3
    01234567

    CGY finished +0.2 against expected, SJS +1.3.

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

    Shot diet

    goalsshots
    CGY
    WRIST1/26
    SLAP1/7
    TIP IN0/1
    SNAP1/2
    POKE0/2
    DEFLECTED0/1
    OTHER0/27
    SJS
    WRIST4/29
    SLAP0/4
    TIP IN0/5
    SNAP0/4
    POKE1/1
    DEFLECTED1/1
    OTHER0/13
    CGY
    SJS
    Off the rush
    3 G on 22
    1.75 xG
    3 G on 30
    3.53 xG
    Off rebounds
    0 G on 4
    0.76 xG
    2 G on 3
    0.66 xG

    Wrist shots carried the volume: CGY went 1-for-26, SJS 4-for-29. CGY 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 · 20/25 · .800
    -0.3
    saved above expected
    D
    the night
    By dangerG/attxGsaved
    High danger3/72.3-0.7
    Medium1/171.9+0.9
    Low2/330.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

    Y. Askarov
    SJS · 27/30 · .900
    -0.2
    saved above expected
    C
    the night
    By dangerG/attxGsaved
    High danger0/41.0+1.0
    Medium1/101.2+0.2
    Low2/520.6-1.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

    83 shots · press play to watch the game back

    Where the shots came from

    NHL play-by-play coordinates
    CGY
    39 shots
    3
    Final
    83 shots
    SJS
    44 shots
    6
    CGY attackSJS attack
    CGY SJS Goal

    Each club shoots toward its own end — CGY left, SJS 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. Celebrini
    #71 · C · SJS
    2 G · 2 A · 7 SOG · 21:25 on ice · +2
    B. Goodrow
    #23 · C · SJS
    2 G · 1 A · 2 SOG · 12:59 on ice · +3
    M. Weegar
    #52 · D · CGY
    0 G · 1 A · 3 SOG · 24:53 on ice · +1
    Ranked from the box score — points first · Backcheck
    What the model said beforehand

    Before the game

    Written Tue, Dec 16
    Open the pre-game read
    Written from the numbers

    The read

    Edited for clarity
    ◆ By the ModelJul 11, 8:36 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 see almost nothing to separate these teams. San Jose projects to a 2.5–2.6 goal range against Calgary, and the Sharks carry a 53% win probability—about as close to a true coin flip as the NHL gets.

    San Jose's recent metrics tell a cautionary tale. Over their last ten games, the Sharks sit at minus-10 in goal differential, a steep climb from which to find wins. Yet the underlying numbers show a competitive matchup: San Jose's 48.0% expected goals share and 47.0% Corsi percentage reflect a team capable of controlling possession despite recent results.

    Calgary's season numbers (47.0% xG%, 49.0% Corsi%) suggest tighter margins. More revealing is the Flames' 0.985 PDO—they're running cold and due for positive regression. That combination of controlled possession and unsustainably poor luck often precedes a run.

    The Flames lean on Blake Coleman, who carries 0.89 expected goals per 60 minutes and a team-leading 16 goals with 12 assists. His 11.4% shooting percentage leaves room for natural variance; so does Matt Coronato's 6.6%, attached to 10 goals and 16 assists on 0.80 xG/60. Both represent the type of mid-range volume and efficiency Calgary needs to sustain.

    San Jose counters with Pavol Regenda, whose 1.10 xG/60 leads the forward group despite just 5 goals and an assist. Regenda's 16.1% shooting suggests elevated variance—a regression candidate in the opposite direction. Igor Chernyshov (0.91 xG/60, 6 goals, 8 assists) anchors the secondary scoring, posting a healthy 15.0% conversion rate that will require monitoring.

    The Sharks' PDO of 0.998 sits nearly neutral, suggesting their underlying play has translated roughly as expected. Calgary's cold PDO represents the game's most obvious tilt. In a matchup this balanced, minor regression in either direction could tip the outcome.

    What the model said beforehand

    The model's lean

    SJS 53%
    53%
    SJS
    Model favorite
    47%
    53%
    CGY50SJS

    SJS by 6 points of win probability — a modest lean. Projected score CGY 2.5–2.6 SJS; 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 →SJS
    47.0%48.0%
    49.0%47.0%
    2.362.33
    2.662.56
    1.761.99
    2.152.32
    0.9850.998

    The season numbers split 3–3 — no clear process edge — and the luck row (0.985 vs 0.998) says SJS has been getting the bounces, which tends not to last.

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

    Keys to the game

    Regression watch
    • The Flames' PDO is 0.985 — running cold, due for positive regression.
    Things to watch
    • The Sharks are underwater at -10 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
    CGY
    Expected in goal
    D. Wolf
    2 days rest.955 last start
    Backup Dustin Wolf · -1.8 GSAx this season

    No completed game on file for this club yet.

    SJS
    Expected in goal
    Y. Askarov
    3 days rest.884 last start
    Backup Yaroslav Askarov · -18.9 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
    SJS
    Pavol Regenda5G 1A
    1.10 xG/60 · 2 HD · 16.1% sh
    Igor Chernyshov6G 8A
    0.91 xG/60 · 1 HD · 15.0% sh
    Keep going

    Where to next