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

Sabres hold off the Devils

The verdict · stolen

The Sabres stole one. They lost the expected-goals battle 2.88–3.34 and won anyway.

BUF 3 · NJD 1
◆ By the ModelJul 11, 9:23 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 Devils owned this game by the underlying numbers and still lost 3-1. Buffalo's expected-goals deficit (2.88–3.34) looked like a scoreline-in-waiting, and for most of the night, that's how it played. The divergence came down to one variable: net-minding.

U. Luukkonen turned in one of those performances that rewrites a game's story. He stopped 2.34 goals above his expected save rate, meaning the Devils' high-quality chances — 3 each, matched perfectly with Buffalo — found no daylight. Across 26 saves on 27 shots, he didn't just prevent goals; he denied the Devils the finish their xG suggested they'd earned. J. Allen, for New Jersey, saved 0.88 above expected but couldn't bridge the gap.

The Devils controlled possession (52% of shot attempts, 27–25 on goal) and crashed the net methodically: 4 rebound chances, 0 conversions. Buffalo played looser — lethal on the rush with 2 goals on 16 chances — and converted when it mattered. Peyton Krebs's wrist shot from the slot decided it.

This was a game where the scoreboard and the analytics disagreed sharply. New Jersey played the smarter game and walked away with the loss. That's goaltending's power: one save or one soft goal swings entire metrics.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Dec 21
BUF
3
NJD
1

Sabres hold off the Devils

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

The Devils deserved better.

Expected goals · chance value
BUF
2.88
NJD
3.34
46% of the chances54%

The board read BUF 3, NJD 1. The chances read BUF 2.9, NJD 3.3.

Our xG model · NHL play-by-play · all situations
Luck check
BUF
+0.1
goals above expected
BUF2.88 expected · 3 scored
Expected
Scored
NJD3.34 expected · 1 scored
Expected
Scored

The Devils left 2.3 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 08:51NJDJ. Hughes0–1
  2. P2 02:26BUFJ. Norris1–1
  3. P2 16:05BUFZ. Benson2–1
  4. P3 17:59BUFP. KrebsEN3–1
NHL play-by-play · chance value from our xG model
Where the shots came from
BUF
35 shots
3
Final
82 shots
NJD
47 shots
1
BUF attackNJD attack
BUF NJD Goal
35
shots · 3 in
47
shots · 1 in
Every unblocked shot · press play to replay it
Chances by danger
BUFNJD
2 / 3
1.41 xG
High danger
0 / 3
0.64 xG
1 / 8
0.88 xG
Medium
1 / 20
2.03 xG
0 / 37
0.58 xG
Low
0 / 48
0.66 xG

The Devils went 0 for 3 from the slot.

Danger tiers by our xG model · high ≥ 20% chance
In the net
A
U. Luukkonen
+2.3
BUF · 26/27
B+
J. Allen
+0.9
NJD · 22/24
The numbers, checked
BACKCHECK

Sabres hold off the Devils

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–12
  1. 08:51NJDJ. Hughes(D. Mercer, C. White)0–1
2ndshots 12–6
  1. 02:26BUFJ. Norris(R. Dahlin, O. Power)1–1
  2. 16:05BUFZ. Benson(R. McLeod, J. Quinn)2–1
3rdshots 4–9
  1. 17:59BUFP. Krebsempty net(T. Thompson, B. Byram)3–1

score reads BUF–NJD

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

The numbers

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

Who controlled the game

2.88Expected goals3.34
NJD 54% of the chance quality
25Shots on goal27
3High-danger chances3
48All attempts (Corsi)71
Adjusted for score: BUF 40% · NJD 60%
Faceoffs · NJD won83%off46%neu29%def
Source · NHL play-by-play · XGBoost xG
How the game was won

The danger ladder

shotsgoalsexpected
High dangerslot & crease
BUF2 / 3 · 1.41 xG
NJD0 / 3 · 0.64 xG
Medium dangermid-range
BUF1 / 8 · 0.88 xG
NJD1 / 20 · 2.03 xG
Low dangerperimeter & point
BUF0 / 37 · 0.58 xG
NJD0 / 48 · 0.66 xG

NJD went 1-for-20 from medium danger on 2.03 expected goals — 1.0 left on the table.

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

Finishing vs expected

expectedactual
BUF
3 G · 2.88 xG · +0.1
NJD
1 G · 3.34 xG · -2.3
01234

BUF finished +0.1 against expected, NJD -2.3.

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

Shot diet

goalsshots
BUF
WRIST1/23
SNAP2/6
SLAP0/3
BACKHAND0/3
TIP IN0/0
BAT0/0
OTHER0/13
NJD
WRIST0/17
SNAP1/18
SLAP0/4
BACKHAND0/2
TIP IN0/5
BAT0/1
OTHER0/24
BUF
NJD
Off the rush
2 G on 16
1.84 xG
1 G on 31
2.58 xG
Off rebounds
1 G on 3
0.23 xG
0 G on 4
0.35 xG

Wrist shots carried the volume: BUF went 1-for-23, NJD 0-for-17. BUF scored 2 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 · 26/27 · .963
+2.3
saved above expected
A
the night
By dangerG/attxGsaved
High danger0/30.6+0.6
Medium1/202.0+1.0
Low0/480.7+0.7

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. Allen
NJD · 22/24 · .917
+0.9
saved above expected
B+
the night
By dangerG/attxGsaved
High danger2/31.4-0.6
Medium1/80.9-0.1
Low0/370.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

82 shots · press play to watch the game back

Where the shots came from

NHL play-by-play coordinates
BUF
35 shots
3
Final
82 shots
NJD
47 shots
1
BUF attackNJD attack
BUF NJD Goal

Each club shoots toward its own end — BUF left, NJD 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. Dahlin
#26 · D · BUF
0 G · 1 A · 1 SOG · 22:34 on ice · +2
B. Byram
#4 · D · BUF
0 G · 1 A · 1 SOG · 22:18 on ice · +1
O. Power
#25 · D · BUF
0 G · 1 A · 2 SOG · 21:43 on ice · +1
Ranked from the box score — points first · Backcheck
What the model said beforehand

Before the game

Written Sun, Dec 21
Open the pre-game read
Written from the numbers

The read

Edited for clarity
◆ By the ModelJul 11, 9:22 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.5 to 2.6 goal margin with New Jersey favored at 52% to win—a genuine coin flip.

Buffalo's record over the last 10 (7-3-0) masks an ugly goal differential (minus-10). The Sabres are banking points despite being outshot. New Jersey is simply underwater.

The five-on-five picture suggests parity. Both teams sit at exactly 50.0% expected goals share. Buffalo's Corsi is 49.0%, New Jersey's is 51.0%—a gap thin enough to ignore.

But PDO diverges significantly. Buffalo's 1.020 runs hot; New Jersey's 0.971 runs cold. Regression favors the Devils.

Both J. Markstrom and A. Lyon are on back-to-backs, so watch for a backup start or a tired starter.

Jason Zucker drives Buffalo at 1.07 expected goals per 60, with 14 goals, 14 assists, and 6 high-danger chances. His 15.1% conversion rate will pull back. Josh Doan (1.01 xG/60, 15G 18A, 11.5% shooting) reaches the same goal total on volume, though he has just 2 high-danger conversions.

New Jersey's Timo Meier (1.08 xG/60, 13G 15A, 6.7% shooting) edges Zucker in expected output but owns only 3 high-danger goals. Jack Hughes rides volume—18 goals on 0.88 xG/60—while matching Doan's 11.5% shooting despite a single high-danger goal all season.

Buffalo's Jack Quinn and New Jersey's Johnathan Kovacevic represent defensive liabilities.

These shooting rates are unsustainable. The PDO gap is the real story. Back New Jersey.

What the model said beforehand

The model's lean

NJD 52%
52%
NJD
Model favorite
48%
52%
BUF50NJD

NJD by 4 points of win probability — effectively a coin flip. Projected score BUF 2.5–2.6 NJD; 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 →NJD
50.0%50.0%
49.0%51.0%
2.552.45
2.552.50
2.351.66
1.902.23
1.0200.971

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

Source · NHL stats API + our xG · 5v5
Form · Last 10
BUF
7-3-0
+3 GD · 1d rest
NJD
4-6-0
-10 GD · 1d rest
1.020
BUF PDO
Luck gauge · drifts to 1.000
0.971
NJD PDO
Luck gauge · drifts to 1.000
What decides it

Keys to the game

Regression watch
  • The Devils' PDO is 0.971 — running cold, due for positive regression.
  • The Sabres' PDO is 1.020 — running hot, expect some regression.
Things to watch
  • J. Markstrom is on a back-to-back — watch for a backup start or a tired starter.
  • A. Lyon is on a back-to-back — watch for a backup start or a tired starter.
  • The Sabres are the hotter team by points pace (7-3-0 in their last 10).
  • The Devils are underwater at -10 goal differential over their last 10.
  • The Devils' PDO is 0.971 — running cold, due for positive regression.
Last game's lineup · confirmed at warm-up

Lineups

NHL box score
BUF
Expected in goal
A. Lyon
back-to-back.941 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.

NJD
Expected in goal
J. Markstrom
back-to-back.970 last start
Backup Jacob Markstrom · -11.9 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
NJD
Timo Meier13G 15A
1.08 xG/60 · 3 HD · 6.7% sh
Jack Hughes18G 17A
0.88 xG/60 · 1 HD · 11.5% sh
Keep going

Where to next