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

Flames pull away from the Sabres

The verdict · earned

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

CGY 6 · BUF 2
◆ By the ModelJul 11, 4:48 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 6–2 scoreline flattered Calgary. Expected goals split nearly evenly—2.92–2.39 for the Flames—yet Calgary's finishing outpaced its underlying play while Buffalo's goaltending collapsed.

Calgary overperformed its expected goals by 3.08. D. Cooley stopped 28 of 30 shots (0.933 SV%), but Buffalo scored 2 from low-danger spots; those are the saves that decide margins. Worse: C. Ellis faced 35 shots and registered −3.08 expected performance, giving up nearly a full game's worth of surplus goals. Ellis stopped just 29.

The underlying play suggested a tighter affair. Buffalo controlled 46% of shot attempts (30–35 on goal) and generated high-danger chances at 1–4. Calgary's edge came from finishing system: four goals on 27 rush chances. Buffalo generated four rebound opportunities and converted none—crashing the net without result.

R. Andersson anchored Calgary's advantage with 1 goal and 2 assists in 23:51, performing the two-way discipline of a player in command. J. Farabee added 2 goals in 18:27, operating in transition. Buffalo's M. Samuelsson posted 1 goal and 1 assist in 22:44—activity enough to register but insufficient against Calgary's execution.

This was a game divided by goaltending performance and finishing precision. One team converted; the other did not. When 6–2 and near-even underlying metrics coexist, one team's technical execution in both ends has run sharply hot.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Nov 19
CGY
6
BUF
2

Flames pull away from the Sabres

Chances 2.9 – 2.4Did they deserve it? →
Did they deserve it?

The Flames earned this one.

Expected goals · chance value
CGY
2.92
BUF
2.39
55% of the chances45%

The board read CGY 6, BUF 2. The chances read CGY 2.9, BUF 2.4.

Our xG model · NHL play-by-play · all situations
Luck check
CGY
+3.1
goals above expected
CGY2.92 expected · 6 scored
Expected
Scored
BUF2.39 expected · 2 scored
Expected
Scored

The Flames scored 3.1 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 05:58CGYR. Andersson1–0
  2. P1 12:04CGYJ. Farabee2–0
  3. P2 10:21BUFM. Samuelsson2–1
  4. P2 15:57BUFT. Thompson2–2
  5. P3 02:02CGYM. Frost3–2
  6. P3 07:34CGYM. Backlund4–2
  7. P3 09:50CGYJ. Farabee5–2
+1 more on the full breakdown
NHL play-by-play · chance value from our xG model
Where the shots came from
CGY
48 shots
6
Final
91 shots
BUF
43 shots
2
CGY attackBUF attack
CGY BUF Goal
48
shots · 6 in
43
shots · 2 in
Every unblocked shot · press play to replay it
Chances by danger
CGYBUF
1 / 4
0.94 xG
High danger
0 / 1
0.32 xG
5 / 15
1.40 xG
Medium
0 / 14
1.34 xG
0 / 54
0.58 xG
Low
2 / 45
0.73 xG

High-danger looks: CGY 1 of 4, BUF 0 of 1.

Danger tiers by our xG model · high ≥ 20% chance
In the net
B
D. Cooley
+0.4
CGY · 28/30
F
C. Ellis
−3.1
BUF · 29/35
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 11–5
  1. 05:58CGYR. Andersson(Y. Sharangovich, K. Bahl)1–0
  2. 12:04CGYJ. Farabee(N. Kadri, Y. Sharangovich)2–0
2ndshots 10–12
  1. 10:21BUFM. Samuelsson2–1
  2. 15:57BUFT. Thompson(M. Samuelsson, R. Dahlin)2–2
3rdshots 14–13
  1. 02:02CGYM. Frost(J. Huberdeau, M. Coronato)3–2
  2. 07:34CGYM. Backlund(R. Andersson)4–2
  3. 09:50CGYJ. Farabee(R. Andersson, N. Kadri)5–2
  4. 17:49CGYM. Coronato(J. Huberdeau, M. Frost)6–2

score reads CGY–BUF

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

The numbers

XGBoost xG · NHL play-by-play
2.92
CGY chances
Goals their shots were worth
+3.1
Finishing
Goals above what those chances were worth
1.049
CGY puck luck
Above 1.000 — the bounces went their way
54.9%
Shot attempts
Over half — they had the puck more
Split by club

Who controlled the game

2.92Expected goals2.39
CGY 55% of the chance quality
35Shots on goal30
4High-danger chances1
73All attempts (Corsi)60
Adjusted for score: CGY 49% · BUF 51%
Faceoffs · BUF won26%off73%neu37%def
Source · NHL play-by-play · XGBoost xG
How the game was won

The danger ladder

shotsgoalsexpected
High dangerslot & crease
CGY1 / 4 · 0.94 xG
BUF0 / 1 · 0.32 xG
Medium dangermid-range
CGY5 / 15 · 1.40 xG
BUF0 / 14 · 1.34 xG
Low dangerperimeter & point
CGY0 / 54 · 0.58 xG
BUF2 / 45 · 0.73 xG

CGY went 5-for-15 from medium danger on 1.40 expected goals — 3.6 above expected.

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

Finishing vs expected

expectedactual
CGY
6 G · 2.92 xG · +3.1
BUF
2 G · 2.39 xG · -0.4
01234567

CGY finished +3.1 against expected, BUF -0.4.

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

Shot diet

goalsshots
CGY
WRIST3/31
SLAP1/7
SNAP1/6
TIP IN1/3
BACKHAND0/1
BAT0/0
OTHER0/25
BUF
WRIST0/25
SLAP1/6
SNAP1/6
TIP IN0/3
BACKHAND0/2
BAT0/1
OTHER0/17
CGY
BUF
Off the rush
4 G on 27
1.88 xG
1 G on 27
1.67 xG
Off rebounds
1 G on 2
0.55 xG
0 G on 4
0.36 xG

Wrist shots carried the volume: CGY went 3-for-31, BUF 0-for-25. CGY 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
D. Cooley
CGY · 28/30 · .933
+0.4
saved above expected
B
the night
By dangerG/attxGsaved
High danger0/10.3+0.3
Medium0/141.3+1.3
Low2/450.7-1.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

C. Ellis
BUF · 29/35 · .829
-3.1
saved above expected
F
the night
By dangerG/attxGsaved
High danger1/40.9-0.1
Medium5/151.4-3.6
Low0/540.6+0.6

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

91 shots · press play to watch the game back

Where the shots came from

NHL play-by-play coordinates
CGY
48 shots
6
Final
91 shots
BUF
43 shots
2
CGY attackBUF attack
CGY BUF Goal

Each club shoots toward its own end — CGY left, BUF 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
R. Andersson
#4 · D · CGY
1 G · 2 A · 3 SOG · 23:51 on ice · +2
M. Samuelsson
#23 · D · BUF
1 G · 1 A · 3 SOG · 22:44 on ice · +1
J. Farabee
#86 · L · CGY
2 G · 0 A · 4 SOG · 18:27 on ice · +2
Ranked from the box score — points first · Backcheck
What the model said beforehand

Before the game

Written Wed, Nov 19
Open the pre-game read
Written from the numbers

The read

Edited for clarity
◆ By the ModelJul 11, 4:47 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 calls 55% Sabres, a 2.5–2.7 goal spread. This is as close to a pick-'em as you'll find.

Where underlying play leaves off. Buffalo controls the expected-goals battle, 50.0% to Calgary's 47.0%, but both teams sit at 49.0% Corsi%, meaning shot volume is nearly even despite Buffalo's marginal edge in quality. Over their last ten games, Calgary is -5 in goal differential; Buffalo is -9. The Sabres possess structural superiority but recent execution has abandoned them.

PDO regression is the leveler. Buffalo's 1.020 PDO means it's finishing at an unsustainable rate—luck is inflating its record. Calgary's 0.985 sits below expectation, luck deflating its results. Regression theory says the Sabres have room to fall and the Flames room to rise. That invisible edge works against Buffalo's favorites status.

Rest and goaltending. Buffalo arrives on one day of rest; Calgary had three. That's measurable. C. Ellis is on a back-to-back, so a backup start or tired starter is possible—either way, an advantage for the Flames.

The scorers. Blake Coleman leads Calgary with 16 goals on 0.89 expected goals-per-60, but his 11.4% shooting rate suggests his finish is running hot. Matt Coronato (10 goals, 0.80 xG/60) is stuck at 6.6% shooting—well below his talent line, positive regression pending. Jason Zucker (1.07 xG/60, 14 goals) generates elite volume for Buffalo. Josh Doan (1.01 xG/60, 15 goals) converts his looks cleanly. Buffalo's star power leans forward; Calgary's depth production is more reliable.

The model got the game right: flip a coin. Buffalo's edge in underlying play is offset by Calgary's rest advantage, better PDO trajectory, and the Sabres' recent collapse. This is the purest toss-up the board offers.

What the model said beforehand

The model's lean

BUF 55%
55%
BUF
Model favorite
45%
55%
CGY50BUF

BUF by 10 points of win probability — a modest lean. Projected score CGY 2.5–2.7 BUF; 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 →BUF
47.0%50.0%
49.0%49.0%
2.362.55
2.662.55
1.762.35
2.151.90
0.9851.020

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

Source · NHL stats API + our xG · 5v5
Form · Last 10
CGY
3-5-2
-5 GD · 3d rest
BUF
3-4-3
-9 GD · 1d rest
0.985
CGY PDO
Luck gauge · drifts to 1.000
1.020
BUF 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 Sabres' PDO is 1.020 — running hot, expect some regression.
  • The Flames' PDO is 0.985 — running cold, due for positive regression.
Things to watch
  • The Sabres own the underlying play — 50.0% 5v5 xG vs 47.0%.
  • C. Ellis is on a back-to-back — watch for a backup start or a tired starter.
  • The Sabres are underwater at -9 goal differential over their last 10.
  • The Flames are underwater at -5 goal differential over their last 10.
  • The Sabres' PDO is 1.020 — running hot, expect some regression.
  • The Flames have 2 more days of rest.
Last game's lineup · confirmed at warm-up

Lineups

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

No completed game on file for this club yet.

BUF
Expected in goal
C. Ellis
back-to-back.970 last start
Backup Ukko-Pekka Luukkonen · +10.5 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
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
Keep going

Where to next