Motion-blurred skater in a gold and black sweater
Breakdown · BUF at BOS

Bruins run the Sabres off the ice on the underlying numbers

The verdict · earned

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

BUF 1 · BOS 3
◆ By the ModelJun 16, 2: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

A. Lyon stole this game. Boston dominated the metrics—68% of 5v5 expected goals (4.92–2.30), 58-42 shot attempts (31-22 on goal)—yet won by only two goals. The goaltending gap explains it: Lyon saved 2.92 above expected while J. Swayman saved 1.30.

Boston generated far higher-quality chances: 0.075 xG per shot versus Buffalo's 0.040. The high-danger count was 7-3 in Boston's favor. Yet Lyon's 0.933 save percentage kept the Sabres competitive.

Sean Kuraly's tip-in at 19:57 of the third broke the stalemate. M. Kastelic added a goal and assist in 12:42. C. McAvoy contributed an assist (24:27). A. Peeke added an assist at 20:11.

The variance tells the story. Boston underperformed their xG by 1.92 goals. Buffalo underperformed by 1.30. Lyon's 2.92 save margin above expected was the sole reason the final didn't read 4-1 or worse. One goaltender kept a mismatched game within reach.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Oct 11
BUF
1
BOS
3

Bruins run the Sabres off the ice on the underlying numbers

Chances 2.3 – 4.9Did they deserve it? →
Did they deserve it?

The Bruins earned this one.

Expected goals · chance value
BUF
2.30
BOS
4.92
32% of the chances68%

The board read BUF 1, BOS 3. The chances read BUF 2.3, BOS 4.9.

Our xG model · NHL play-by-play · all situations
Luck check
BOS
−1.9
goals above expected
BOS4.92 expected · 3 scored
Expected
Scored
BUF2.30 expected · 1 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 15:48BOSP. Zacha0–1
  2. P2 10:21BOSM. Kastelic0–2
  3. P3 09:46BUFJ. Zucker1–2
  4. P3 19:57BOSS. KuralyEN1–3
NHL play-by-play · chance value from our xG model
Where the shots came from
BUF
39 shots
1
Final
89 shots
BOS
50 shots
3
BUF attackBOS attack
BUF BOS Goal
39
shots · 1 in
50
shots · 3 in
Every unblocked shot · press play to replay it
Chances by danger
BUFBOS
0 / 3
0.79 xG
High danger
1 / 7
2.95 xG
0 / 7
0.61 xG
Medium
1 / 13
1.24 xG
1 / 47
0.89 xG
Low
1 / 46
0.73 xG

The Sabres went 0 for 3 from the slot.

Danger tiers by our xG model · high ≥ 20% chance
In the net
A+
A. Lyon
+2.9
BUF · 28/30
B+
J. Swayman
+1.3
BOS · 21/22
The numbers, checked
BACKCHECK

Bruins run the Sabres 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 2–17
  1. 15:48BOSP. Zacha(J. Harris, A. Peeke)0–1
2ndshots 13–9
  1. 10:21BOSM. Kastelic(C. McAvoy)0–2
3rdshots 7–5
  1. 09:46BUFJ. Zucker(M. Samuelsson)1–2
  2. 19:57BOSS. Kuralyempty net(E. Lindholm, M. Kastelic)1–3

score reads BUF–BOS

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

The numbers

XGBoost xG · NHL play-by-play
4.92
BOS chances
Goals their shots were worth
−1.9
Finishing
Goals below what those chances were worth
1.028
BOS puck luck
Above 1.000 — the bounces went their way
53.7%
Shot attempts
Over half — they had the puck more
Split by club

Who controlled the game

2.30Expected goals4.92
BOS 68% of the chance quality
22Shots on goal31
3High-danger chances7
57All attempts (Corsi)66
Adjusted for score: BUF 50% · BOS 50%
Faceoffs · BOS won39%off43%neu79%def
Source · NHL play-by-play · XGBoost xG
How the game was won

The danger ladder

shotsgoalsexpected
High dangerslot & crease
BUF0 / 3 · 0.79 xG
BOS1 / 7 · 2.95 xG
Medium dangermid-range
BUF0 / 7 · 0.61 xG
BOS1 / 13 · 1.24 xG
Low dangerperimeter & point
BUF1 / 47 · 0.89 xG
BOS1 / 46 · 0.73 xG

BOS went 1-for-7 from high danger on 2.95 expected goals — 2.0 left on the table.

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

Finishing vs expected

expectedactual
BUF
1 G · 2.30 xG · -1.3
BOS
3 G · 4.92 xG · -1.9
0123456

BUF finished -1.3 against expected, BOS -1.9.

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

Shot diet

goalsshots
BUF
SNAP1/17
WRIST0/14
SLAP0/4
TIP IN0/3
BACKHAND0/1
WRAP AROUND0/0
DEFLECTED0/0
OTHER0/18
BOS
SNAP1/16
WRIST0/17
SLAP1/10
TIP IN1/2
BACKHAND0/2
WRAP AROUND0/2
DEFLECTED0/1
OTHER0/16
BUF
BOS
Off the rush
1 G on 24
1.81 xG
1 G on 23
3.24 xG
Off rebounds
0 G on 3
0.21 xG
0 G on 4
0.48 xG

Snap shots carried the volume: BUF went 1-for-17, BOS 1-for-16.

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
A. Lyon
BUF · 28/30 · .933
+2.9
saved above expected
A+
the night
By dangerG/attxGsaved
High danger1/73.0+1.9
Medium1/131.2+0.2
Low1/460.7-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

J. Swayman
BOS · 21/22 · .955
+1.3
saved above expected
B+
the night
By dangerG/attxGsaved
High danger0/30.8+0.8
Medium0/70.6+0.6
Low1/470.9-0.1

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

89 shots · press play to watch the game back

Where the shots came from

NHL play-by-play coordinates
BUF
39 shots
1
Final
89 shots
BOS
50 shots
3
BUF attackBOS attack
BUF BOS Goal

Each club shoots toward its own end — BUF left, BOS 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. Kastelic
#47 · C · —
1 G · 1 A · 1 SOG · 12:42 on ice · +2
C. McAvoy
#73 · D · —
0 G · 1 A · 1 SOG · 24:27 on ice · +1
A. Peeke
#26 · D · —
0 G · 1 A · 2 SOG · 20:11 on ice
Ranked from the box score — points first · Backcheck
What the model said beforehand

Before the game

Written Sat, Oct 11
Open the pre-game read
Written from the numbers

The read

Edited for clarity
◆ By the ModelSep 22, 12:37 AMEdited 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 it 52% Sabres, but that's basically a toss-up. Two teams have posted nearly identical results, and only the underlying play separates them.

That separation exists, though. Buffalo generates 50.6% of 5v5 expected goals to Boston's 46.7%—a meaningful edge driven by shot placement, not volume (Corsi almost dead even at 49.6% to 49.0%). The Sabres are positioning themselves where danger lives.

Jason Zucker runs the Buffalo offense. He carries 1.07 xG/60 with 14 goals and 14 assists, six of them high-danger, and a 15.1% shooting rate that explains part of the outpacing. Josh Doan (1.01 xG/60, 15G 18A) moves the secondary needle.

Boston leans on Viktor Arvidsson's pedigree: 18 goals, 24 assists, 1.04 xG/60, though only two high-danger goals suggest some fortune has flowed his way. Tanner Jeannot (0.75 xG/60, 6G 14A) rounds the attack.

Here's the hinge: both teams are running hot. Buffalo's PDO is 1.020, Boston's 1.022. Both have earned better results than their underlying metrics predict—good luck buying wins. In a game that will likely turn on one goal, the team that normalizes first hits trouble. Buffalo's xG% edge gives it room to absorb that regression. Boston doesn't have that cushion.

The edge is Buffalo's. Barely.

Season rates in this preview are from 2025-26 — this season's sample isn't live yet.

What the model said beforehand

The model's lean

BUF 52%
52%
BUF
Model favorite
52%
48%
BUF50BOS

BUF by 4 points of win probability — effectively a coin flip. Projected score BUF 3.3–3.2 BOS; 16% 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 →BOS
50.6%46.7%
49.6%49.0%
3.242.97
3.163.39
3.453.27
2.933.01
1.0201.022

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

Source · NHL stats API + our xG · 5v5
Form · No games yet
BUF
0-0-0
+0 GD · 0d rest
BOS
0-0-0
+0 GD · 0d rest
1.020
BUF PDO
Luck gauge · drifts to 1.000
1.022
BOS PDO
Luck gauge · drifts to 1.000
What decides it

Keys to the game

TACTICALBOS

Shutdown Assignment: Bruins

Key matchup: Neutralize Jason Zucker (14G, 1.07 xG/60, 6 HD goals)

Key matchup: Neutralize Jason Zucker (14G, 1.07 xG/60, 6 HD goals)

TACTICALBUF

Shutdown Assignment: Sabres

Key matchup: Neutralize Viktor Arvidsson (18G, 1.04 xG/60, 2 HD goals)

Key matchup: Neutralize Viktor Arvidsson (18G, 1.04 xG/60, 2 HD goals)

WARNINGBUF

Exploitable minutes: Jack Quinn

Jack Quinn is on ice for 2.96 xGA/60 and 54 high-danger shots against this season.

Hunt matchups against Jack Quinn's shifts with the top line.

WARNINGBOS

Exploitable minutes: Elias Lindholm

Elias Lindholm is on ice for 2.80 xGA/60 and 40 high-danger shots against this season.

Hunt matchups against Elias Lindholm's shifts with the top line.

Where the edges live
  • The Sabres own the underlying play — 50.6% 5v5 xG vs 46.7%.
Regression watch
  • The Bruins' PDO is 1.022 — running hot, expect some regression.
  • The Sabres' PDO is 1.020 — running hot, expect some regression.
Things to watch
  • The Sabres own the underlying play — 50.6% 5v5 xG vs 46.7%.
  • The Bruins' PDO is 1.022 — running hot, expect some regression.
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
BOS
Viktor Arvidsson18G 24A
1.04 xG/60 · 2 HD · 13.0% sh
Tanner Jeannot6G 14A
0.75 xG/60 · 2 HD · 8.3% sh
Keep going

Where to next