Motion-blurred skater in a Buffalo Sabres sweater
Breakdown · PHI at BUF

Sabres hold off the Flyers

The verdict · earned

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

PHI 3 · BUF 5
◆ By the ModelJul 11, 8:56 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

Buffalo's 5–3 win masked a narrow territorial edge. The Sabres held just 51% of shot attempts (28–27), yet controlled the game where it mattered—at the net. They generated 4.32 expected goals to Philadelphia's 3.22, a 57–43 split, and high-danger chances favored them 7–3.

The difference was shot quality. Buffalo's offense created 0.080 expected goals per shot; Philadelphia generated 0.056. That efficiency advantage held up in the rush, where Buffalo scored five times on 29 chances while Philadelphia converted three of 25.

Neither team capitalized on rebounds. Buffalo created three rebound opportunities, Philadelphia six—both proved empty despite effective net-front tactics. A. Lyon saved 24 of 27 for Buffalo (0.889 SV%). S. Ersson made 23 stops for Philadelphia (0.852 SV%).

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Dec 18
PHI
3
BUF
5

Sabres hold off the Flyers

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

The Sabres earned this one.

Expected goals · chance value
PHI
3.22
BUF
4.32
43% of the chances57%

The board read PHI 3, BUF 5. The chances read PHI 3.2, BUF 4.3.

Our xG model · NHL play-by-play · all situations
Luck check
BUF
+0.7
goals above expected
BUF4.32 expected · 5 scored
Expected
Scored
PHI3.22 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 07:40BUFJ. Quinn0–1
  2. P1 08:38PHIN. Cates1–1
  3. P2 11:01PHIC. York2–1
  4. P2 16:54BUFT. Thompson2–2
  5. P2 19:30BUFN. Ostlund2–3
  6. P3 10:20BUFJ. NorrisPP2–4
  7. P3 14:28PHIT. Konecny3–4
+1 more on the full breakdown
NHL play-by-play · chance value from our xG model
Where the shots came from
PHI
40 shots
3
Final
83 shots
BUF
43 shots
5
PHI attackBUF attack
PHI BUF Goal
40
shots · 3 in
43
shots · 5 in
Every unblocked shot · press play to replay it
Chances by danger
PHIBUF
0 / 3
0.61 xG
High danger
2 / 7
2.33 xG
2 / 18
2.03 xG
Medium
2 / 14
1.39 xG
1 / 36
0.58 xG
Low
1 / 33
0.60 xG

The Flyers went 0 for 3 from the slot.

Danger tiers by our xG model · high ≥ 20% chance
In the net
B
S. Ersson
+0.3
PHI · 23/27
C
A. Lyon
+0.2
BUF · 24/27
The numbers, checked
BACKCHECK

Sabres hold off the Flyers

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 12–4
  1. 07:40BUFJ. Quinn(M. Samuelsson, Z. Benson)0–1
  2. 08:38PHIN. Cates(B. Brink)1–1
2ndshots 10–12
  1. 11:01PHIC. York(T. Zegras, B. Brink)2–1
  2. 16:54BUFT. Thompson(R. Dahlin)2–2
  3. 19:30BUFN. Ostlund(O. Power, A. Tuch)2–3
3rdshots 5–12
  1. 10:20BUFJ. Norrispower play(Z. Benson)2–4
  2. 14:28PHIT. Konecny(E. Andrae, J. Drysdale)3–4
  3. 19:52BUFR. McLeodempty net(M. Samuelsson)3–5

score reads PHI–BUF

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

The numbers

XGBoost xG · NHL play-by-play
4.32
BUF chances
Goals their shots were worth
+0.7
Finishing
Goals above what those chances were worth
1.040
BUF puck luck
Above 1.000 — the bounces went their way
48.6%
Shot attempts
Under half — they were outshot
Split by club

Who controlled the game

3.22Expected goals4.32
BUF 57% of the chance quality
27Shots on goal28
3High-danger chances7
57All attempts (Corsi)54
Adjusted for score: PHI 53% · BUF 47%
Faceoffs · BUF won50%off47%neu43%def
Source · NHL play-by-play · XGBoost xG
How the game was won

The danger ladder

shotsgoalsexpected
High dangerslot & crease
PHI0 / 3 · 0.61 xG
BUF2 / 7 · 2.33 xG
Medium dangermid-range
PHI2 / 18 · 2.03 xG
BUF2 / 14 · 1.39 xG
Low dangerperimeter & point
PHI1 / 36 · 0.58 xG
BUF1 / 33 · 0.60 xG

BUF went 2-for-14 from medium danger on 1.39 expected goals — 0.6 above expected.

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

Finishing vs expected

expectedactual
PHI
3 G · 3.22 xG · -0.2
BUF
5 G · 4.32 xG · +0.7
0123456

PHI finished -0.2 against expected, BUF +0.7.

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

Shot diet

goalsshots
PHI
WRIST2/21
SNAP1/9
TIP IN0/3
BACKHAND0/5
SLAP0/2
OTHER0/17
BUF
WRIST4/31
SNAP0/4
TIP IN1/5
BACKHAND0/1
SLAP0/2
OTHER0/11
PHI
BUF
Off the rush
3 G on 25
2.19 xG
5 G on 29
3.28 xG
Off rebounds
0 G on 6
0.61 xG
0 G on 3
0.74 xG

Wrist shots carried the volume: PHI went 2-for-21, BUF 4-for-31. BUF scored 5 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
S. Ersson
PHI · 23/27 · .852
+0.3
saved above expected
B
the night
By dangerG/attxGsaved
High danger2/72.3+0.3
Medium2/141.4-0.6
Low1/330.6-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

A. Lyon
BUF · 24/27 · .889
+0.2
saved above expected
C
the night
By dangerG/attxGsaved
High danger0/30.6+0.6
Medium2/182.0+0.0
Low1/360.6-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

83 shots · press play to watch the game back

Where the shots came from

NHL play-by-play coordinates
PHI
40 shots
3
Final
83 shots
BUF
43 shots
5
PHI attackBUF attack
PHI BUF Goal

Each club shoots toward its own end — PHI 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
M. Samuelsson
#23 · D · BUF
0 G · 2 A · 1 SOG · 19:43 on ice · +1
Z. Benson
#6 · L · BUF
0 G · 2 A · 4 SOG · 17:11 on ice · +1
B. Brink
#10 · R · PHI
0 G · 2 A · 1 SOG · 14:38 on ice · +2
Ranked from the box score — points first · Backcheck
What the model said beforehand

Before the game

Written Thu, Dec 18
Open the pre-game read
Written from the numbers

The read

Edited for clarity
◆ By the ModelJul 11, 9:14 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 2.4 goals for Philadelphia and 2.5 for Buffalo, assigning the Sabres 52% win probability — effectively a pick'em. This matchup lacks a clear favorite.

Buffalo's recent form looks ominous: -7 goal differential over their last 10 games. Yet their underlying metrics suggest the slump is temporary. At 5v5, they rank at 50.0% xG% and 49.0% Corsi%, nearly parallel to Philadelphia's 51.0% xG% and 48.0% Corsi%. The difference lies in Buffalo's 1.020 PDO, a sign they're converting at an unsustainable rate. That hot streak will cool, which makes the -7 skid less alarming.

Philadelphia starts with a rest advantage: one day since their last game, against Buffalo's three. That edge vanishes if D. Vladar starts on a back-to-back. Whether he plays tired or a backup takes over, the equation shifts.

Four forwards will determine the outcome. Owen Tippett leads Philadelphia's attack at 19 goals, generating 0.88 xG per 60 and shooting at 12.1%, a clip that suggests he's finishing chances above volume. Christian Dvorak (0.81 xG/60, 12 goals, 11.2% shooting) follows a similar profile: efficient but not high-volume. Buffalo counters with Jason Zucker, whose 1.07 xG per 60, 14 goals, and six high-danger conversions demand Philadelphia's full attention. Josh Doan offers secondary firepower at 1.01 xG per 60 and 15 goals, backed by 18 assists.

Both teams harbor a defensive vulnerability. Philadelphia's Dvorak and Buffalo's Jack Quinn are listed as weak links. Control of that chaos—converting turnovers into chances—determines the margin.

Buffalo's PDO is primed to regress. Philadelphia's fundamentals suggest parity. Add the Flyers' travel fatigue, and the matchup tilts toward home ice. Yet the model hedges its bet. This is as close as it gets.

What the model said beforehand

The model's lean

BUF 52%
52%
BUF
Model favorite
48%
52%
PHI50BUF

BUF by 4 points of win probability — effectively a coin flip. Projected score PHI 2.4–2.5 BUF; 19% 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
PHI← edge
edge →BUF
51.0%50.0%
48.0%49.0%
2.262.55
2.202.55
1.962.35
1.821.90
1.0081.020

The season numbers split 3–3 — no clear process edge — and the luck row (1.008 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
PHI
5-2-3
+4 GD · 1d rest
BUF
5-5-0
-7 GD · 3d rest
1.008
PHI PDO
Luck gauge · drifts to 1.000
1.020
BUF PDO
Luck gauge · drifts to 1.000
What decides it

Keys to the game

Regression watch
  • The Sabres' PDO is 1.020 — running hot, expect some regression.
Things to watch
  • D. Vladar is on a back-to-back — watch for a backup start or a tired starter.
  • The Sabres are underwater at -7 goal differential over their last 10.
  • The Sabres' PDO is 1.020 — running hot, expect some regression.
  • The Sabres have 2 more days of rest.
Last game's lineup · confirmed at warm-up

Lineups

NHL box score
PHI
Expected in goal
D. Vladar
back-to-back.955 last start
Backup Dan Vladar · +13.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.

BUF
Expected in goal
A. Lyon
3 days rest.958 last start
Backup Ukko-Pekka Luukkonen · +10.5 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
PHI
Owen Tippett19G 18A
0.88 xG/60 · 2 HD · 12.1% sh
Christian Dvorak12G 21A
0.81 xG/60 · 3 HD · 11.2% 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