Motion-blurred skater in a Calgary Flames sweater
Breakdown · BUF at CGY

Flames pull away from the Sabres

The verdict · earned

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

BUF 4 · CGY 7
◆ By the ModelJul 11, 7:33 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

Calgary's 7–4 victory masked a much tighter game underneath. Expected goals favored the Flames only narrowly—4.71–4.34, a 52–48 split—yet the scoreboard read 7–4. That gap reflects Calgary's elite finishing and Buffalo's goaltending deterioration.

The underlying play was competitive. Calgary claimed 49% of shot attempts (28–29 on goal) and held a narrow edge in high-danger chances (8–7). Precision separated them: Calgary generated 0.100 xG per shot to Buffalo's 0.066. That quality advantage compounded.

U. Luukkonen (BUF) surrendered 1.0 goals beyond expected on his workload. A. Lyon (BUF), summoned in relief, posted 4.7 goals above expected. D. Wolf (CGY) was steady: 25/29 saves, 0.862 SV%.

Calgary's rush play decided it: 3 goals on 22 chances. Buffalo answered with 4 on 36—more volume, comparable conversion, but Calgary's total efficiency was superior. On rebounds, the Flames crashed harder: 4 opportunities, 1 converted. Buffalo created 3 and converted none.

Calgary's power play was surgical: 2 goals on 7 shots, 0.65 xG. Yegor Sharangovich's wrist shot from the wing (P3, 19:53) epitomized the conversion that swung it—the moment Calgary seized control.

The Flames' precision and discipline proved decisive. Luukkonen's 1.0-goal deficit on his workload was the margin.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Dec 8
BUF
4
CGY
7

Flames pull away from the Sabres

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

The Flames earned this one.

Expected goals · chance value
BUF
4.34
CGY
4.71
48% of the chances52%

The board read BUF 4, CGY 7. The chances read BUF 4.3, CGY 4.7.

Our xG model · NHL play-by-play · all situations
Luck check
CGY
+2.3
goals above expected
CGY4.71 expected · 7 scored
Expected
Scored
BUF4.34 expected · 4 scored
Expected
Scored

The Flames scored 2.3 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 09:54CGYY. Sharangovich0–1
  2. P1 13:22CGYR. AnderssonPP0–2
  3. P2 04:24BUFT. ThompsonPP1–2
  4. P2 07:05CGYJ. HuberdeauPP1–3
  5. P2 13:43BUFO. Power2–3
  6. P2 14:14CGYN. Kadri2–4
  7. P2 16:32BUFR. Dahlin3–4
+4 more on the full breakdown
NHL play-by-play · chance value from our xG model
Where the shots came from
BUF
48 shots
4
Final
87 shots
CGY
39 shots
7
BUF attackCGY attack
BUF CGY Goal
48
shots · 4 in
39
shots · 7 in
Every unblocked shot · press play to replay it
Chances by danger
BUFCGY
1 / 7
1.44 xG
High danger
3 / 8
2.56 xG
3 / 21
2.39 xG
Medium
4 / 16
1.85 xG
0 / 38
0.51 xG
Low
0 / 23
0.30 xG

The Flames buried 3 of 8 high-danger looks.

Danger tiers by our xG model · high ≥ 20% chance
In the net
A+
A. Lyon
+4.7
BUF · 4/4
B
D. Wolf
+0.3
CGY · 25/29
+1 more on the full breakdown
The numbers, checked
BACKCHECK

Flames pull away from the Sabres

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–12
  1. 09:54CGYY. Sharangovich(M. Weegar, N. Kadri)0–1
  2. 13:22CGYR. Anderssonpower play(M. Coronato, N. Kadri)0–2
2ndshots 15–10
  1. 04:24BUFT. Thompsonpower play(J. Zucker, J. Norris)1–2
  2. 07:05CGYJ. Huberdeaupower play(M. Coronato, M. Frost)1–3
  3. 13:43BUFO. Power(P. Krebs, J. Bryson)2–3
  4. 14:14CGYN. Kadri(J. Farabee, Y. Sharangovich)2–4
  5. 16:32BUFR. Dahlin(J. Doan, J. Norris)3–4
  6. 17:27CGYY. Kuznetsov(B. Coleman)3–5
3rdshots 7–6
  1. 17:29BUFA. Tuchpower play(R. Dahlin, J. Zucker)4–5
  2. 18:12CGYM. Backlundempty net4–6
  3. 19:53CGYY. Sharangovichempty net(Y. Kuznetsov)4–7

score reads BUF–CGY

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

The numbers

XGBoost xG · NHL play-by-play
4.71
CGY chances
Goals their shots were worth
+2.3
Finishing
Goals above what those chances were worth
1.088
CGY puck luck
Above 1.000 — the bounces went their way
41.6%
Shot attempts
Under half — they were outshot
Split by club

Who controlled the game

4.34Expected goals4.71
CGY 52% of the chance quality
29Shots on goal28
7High-danger chances8
66All attempts (Corsi)47
Adjusted for score: BUF 64% · CGY 36%
Faceoffs · CGY won50%off52%neu57%def
Source · NHL play-by-play · XGBoost xG
How the game was won

The danger ladder

shotsgoalsexpected
High dangerslot & crease
BUF1 / 7 · 1.44 xG
CGY3 / 8 · 2.56 xG
Medium dangermid-range
BUF3 / 21 · 2.39 xG
CGY4 / 16 · 1.85 xG
Low dangerperimeter & point
BUF0 / 38 · 0.51 xG
CGY0 / 23 · 0.30 xG

CGY went 4-for-16 from medium danger on 1.85 expected goals — 2.1 above expected.

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

Finishing vs expected

expectedactual
BUF
4 G · 4.34 xG · -0.3
CGY
7 G · 4.71 xG · +2.3
012345678

BUF finished -0.3 against expected, CGY +2.3.

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

Shot diet

goalsshots
BUF
WRIST2/27
TIP IN2/9
SLAP0/3
SNAP0/5
BACKHAND0/0
DEFLECTED0/2
WRAP AROUND0/1
BAT0/1
POKE0/0
OTHER0/18
CGY
WRIST2/13
TIP IN2/9
SLAP1/8
SNAP0/3
BACKHAND0/4
DEFLECTED1/1
WRAP AROUND0/0
BAT0/0
POKE1/1
OTHER0/8
BUF
CGY
Off the rush
4 G on 36
3.08 xG
3 G on 22
2.38 xG
Off rebounds
0 G on 3
0.41 xG
1 G on 4
0.56 xG

Wrist shots carried the volume: BUF went 2-for-27, CGY 2-for-13. BUF scored 4 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
U. Luukkonen
BUF · 17/22 · .773
-0.3
saved above expected
D
the night
By dangerG/attxGsaved
High danger3/82.6-0.4
Medium4/161.9-2.1
Low0/230.3+0.3

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

A. Lyon
BUF · 4/4 · 1.000
+4.7
saved above expected
A+
the night
By dangerG/attxGsaved
High danger3/82.6-0.4
Medium4/161.9-2.1
Low0/230.3+0.3

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 · 25/29 · .862
+0.3
saved above expected
B
the night
By dangerG/attxGsaved
High danger1/71.4+0.4
Medium3/212.4-0.6
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

87 shots · press play to watch the game back

Where the shots came from

NHL play-by-play coordinates
BUF
48 shots
4
Final
87 shots
CGY
39 shots
7
BUF attackCGY attack
BUF CGY Goal

Each club shoots toward its own end — BUF 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
N. Kadri
#91 · C · CGY
1 G · 2 A · 2 SOG · 18:32 on ice · +2
Y. Sharangovich
#17 · C · CGY
2 G · 1 A · 2 SOG · 15:27 on ice · +2
R. Dahlin
#26 · D · BUF
1 G · 1 A · 2 SOG · 24:51 on ice · -3
Ranked from the box score — points first · Backcheck
What the model said beforehand

Before the game

Written Mon, Dec 8
Open the pre-game read
Written from the numbers

The read

Edited for clarity
◆ By the ModelJul 11, 7:32 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 model projects a 2.6–2.6 tie with Buffalo at exactly 50% win probability—a pickup game dressed as a regular-season matchup. Buffalo has the edges in subtle play: 50.0% xG compared to Calgary's 47.0%, translating to a narrow advantage in shot creation where it matters most. The Flames, meanwhile, are running cold—a 0.985 PDO suggests positive regression is coming—while Buffalo has benefited from a 1.020 mark that will likely decline. This is essentially a coin flip where variance may decide more than skill.

The Sabres own the underlying play, generating chances at a higher rate, but shot quality and goaltending will determine the gap between model and scoreboard. Jason Zucker is the top fire source for Buffalo: 1.07 xG per 60 minutes, 14 goals, 14 assists, and 6 high-danger goals on a 15.1% shooting rate. Josh Doan operates at similar volume (1.01 xG/60) with 15 goals and 18 assists, though his high-danger production is modest (2 HD goals, 11.5% shooting), suggesting he benefits more from volume than elite positioning.

Calgary counters with Blake Coleman's 0.89 xG/60 and 16 goals with 12 assists already banked—he's lethal from lower-volume looks (2 HD goals, 11.4% shooting)—and Matt Coronato, who operates from deeper areas (0.80 xG/60, 10 goals, 16 assists, 6.6% shooting). Coleman's efficiency from modest opportunity explains Calgary's ability to stay competitive despite xG deficits.

D. Wolf's status looms large here. Back-to-back appearances often see backups inserted or starters running on fumes. If Wolf is rested, Calgary's depth is tested; if he plays tired, the margin narrows in a game already projected as a toss-up. This single variable could swing the entire outcome.

Buffalo's underlying advantage is real but marginal. Calgary's regression window—due for positive variance—makes them dangerous in a game where neither team has a commanding claim to victory.

What the model said beforehand

The model's lean

BUF 50%
50%
BUF
Model favorite
50%
50%
BUF50CGY

BUF by 0 points of win probability — effectively a coin flip. Projected score BUF 2.6–2.6 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
BUF← edge
edge →CGY
50.0%47.0%
49.0%49.0%
2.552.36
2.552.66
2.351.76
1.902.15
1.0200.985

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

Source · NHL stats API + our xG · 5v5
Form · Last 10
BUF
5-5-0
+1 GD · 2d rest
CGY
6-3-1
+3 GD · 1d rest
1.020
BUF 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 Sabres own the underlying play — 50.0% 5v5 xG vs 47.0%.
Regression watch
  • The Flames' PDO is 0.985 — running cold, due for positive regression.
  • The Sabres' PDO is 1.020 — running hot, expect some regression.
Things to watch
  • The Sabres own the underlying play — 50.0% 5v5 xG vs 47.0%.
  • D. Wolf is on a back-to-back — watch for a backup start or a tired starter.
  • The Flames' PDO is 0.985 — running cold, due for positive regression.
Last game's lineup · confirmed at warm-up

Lineups

NHL box score
BUF
Expected in goal
U. Luukkonen
2 days rest.864 last start
Backup Ukko-Pekka Luukkonen · +10.5 GSAx this season

No completed game on file for this club yet.

CGY
Expected in goal
D. Wolf
back-to-back1.000 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
BUF
Jason Zucker14G 14A
1.07 xG/60 · 6 HD · 15.1% sh
Josh Doan15G 18A
1.01 xG/60 · 2 HD · 11.5% 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