Motion-blurred skater in a green sweater
Breakdown · DAL at BUF

Stars steal one from the Sabres against the run of play

The verdict · stolen

The Stars stole one. They lost the expected-goals battle 2.69–3.75 and won anyway.

DAL 4 · BUF 3
◆ By the ModelJul 14, 6:55 PMxG: xgboost-0.758Raw model copyDrafted from NHL play-by-play by Backcheck's model. Nobody at Backcheck was at the rink. How this works

The Stars edged the Sabres 4-3 in a shootout despite losing the xG battle 3.75–2.69. The Sabres controlled 58% of expected goals at 5v5 — this was a heist.

The numbers behind the result. The Sabres held 46% of shot attempts (24–28 on goal). Expected goals finished 3.75–2.69 (58–42% split), and high-danger chances went 6–6.

Variance watch. The Sabres underperformed their xG by 0.75 goals; the Stars overperformed theirs by 1.31.

Turning point. Wyatt Johnston's wrist shot from the high slot, in the shootout.

Goaltending

  • J. Oettinger (DAL): 21/24 saves, 0.875 SV% (+0.75 vs expected)
  • C. Ellis (BUF): 25/28 saves, 0.893 SV%

Storylines

  • DAL stole this one. BUF owned 58% of the xG and lost.
  • DAL generated higher-quality looks than the shot total suggests.
  • DAL couldn't convert — 0/6 on high-danger chances. That won't happen often.
  • BUF was lethal off the rush — 3 goals on 28 rush chances.
  • DAL was lethal off the rush — 2 goals on 20 rush chances.
  • DAL created 7 rebound opportunities (1 converted) — crashing the net effectively.
  • C. Ellis was a wall on HD chances — 100% SV on 6 high-danger shots.

Final: DAL 4 – BUF 3 (SO)

Data: NHL API, MoneyPuck xG model

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · SO · Apr 15
DAL
4
BUF
3

Stars steal one from the Sabres against the run of play

Chances 2.7 – 3.8Did they deserve it? →
Did they deserve it?

The Sabres deserved better.

Expected goals · chance value
DAL
2.69
BUF
3.75
42% of the chances58%

The board read DAL 4, BUF 3. The chances read DAL 2.7, BUF 3.8.

Our xG model · NHL play-by-play · all situations
Luck check
DAL
+1.3
goals above expected
DAL2.69 expected · 4 scored
Expected
Scored
BUF3.75 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 02:19DALM. Bourque1–0
  2. P1 12:48BUFJ. Norris1–1
  3. P2 03:32BUFZ. BensonSH1–2
  4. P2 04:24DALE. LindellPP2–2
  5. P2 11:09BUFA. Tuch2–3
  6. P2 16:00DALJ. Hryckowian3–3
  7. SO 00:00BUFJ. NorrisPP3–3
+4 more on the full breakdown
NHL play-by-play · chance value from our xG model
Where the shots came from
DAL
37 shots
3
Final
80 shots
BUF
43 shots
3
DAL attackBUF attack
DAL BUF Goal

Shootout goals are not shots and are not drawn; the scoreboard above counts goals from the shot log.

37
shots · 3 in
43
shots · 3 in
Every unblocked shot · press play to replay it
Chances by danger
DALBUF
0 / 6
1.48 xG
High danger
2 / 6
1.79 xG
2 / 8
0.67 xG
Medium
0 / 12
1.31 xG
1 / 37
0.54 xG
Low
1 / 41
0.65 xG

High-danger looks: DAL 0 of 6, BUF 2 of 6.

Danger tiers by our xG model · high ≥ 20% chance
In the net
B+
J. Oettinger
+0.8
DAL · 21/24
D
C. Ellis
−0.3
BUF · 25/28
Report card
DALBUF
OffenseC+A
DefenseFC-
TransitionFA-
Special teamsB-D-
GoaltendingBC-
DisciplineCC
LuckBD+
Seven dimensions, A+ to F · basis on the breakdown
Why it went the way it went
Why DAL won
  1. 01Won against the run of play
  2. 02Dangerous off the rush
  3. 03Power play cashed in
Why BUF lost
  1. 01Rush defense leaked all night
  2. 02Deserved a better fate
  3. 03Rebound control was shaky
Our storyline model · reasoning on the breakdown
The numbers, checked
BACKCHECK

Stars steal one from the Sabres against the run of play

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 / 10 · Final
Every goal, in order

How it happened

NHL play-by-play
1stshots 5–10
  1. 02:19DALM. Bourque(E. Lindell, I. Lyubushkin)1–0
  2. 12:48BUFJ. Norris(Z. Benson, O. Power)1–1
2ndshots 11–7
  1. 03:32BUFZ. Bensonshorthanded(T. Kozak)1–2
  2. 04:24DALE. Lindellpower play(J. Benn, J. Hryckowian)2–2
  3. 11:09BUFA. Tuch(T. Pearson, O. Power)2–3
  4. 16:00DALJ. Hryckowian3–3
3rdshots 12–5no goals
    OTshots 0–2no goals
      SO
      1. 00:00BUFJ. Norrispower play3–3
      2. 00:00DALJ. Robertsonpower play3–3
      3. 00:00BUFJ. Quinnpower play3–3
      4. 00:00DALM. Duchenepower play3–3
      5. 00:00DALW. Johnstonpower play3–3

      score reads DAL–BUF

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

      The numbers

      XGBoost xG · NHL play-by-play
      2.69
      DAL chances
      Goals their shots were worth
      +1.3
      Finishing
      Goals above what those chances were worth
      1.008
      DAL puck luck
      About 1.000 — a normal night for bounces
      46.4%
      Shot attempts
      Under half — they were outshot
      Split by club

      Who controlled the game

      2.69Expected goals3.75
      BUF 58% of the chance quality
      28Shots on goal24
      6High-danger chances6
      51All attempts (Corsi)59
      Adjusted for score: DAL 46% · BUF 54%
      Faceoffs · BUF won50%off67%neu42%def
      Source · NHL play-by-play · XGBoost xG
      How the game was won

      The danger ladder

      shotsgoalsexpected
      High dangerslot & crease
      DAL0 / 6 · 1.48 xG
      BUF2 / 6 · 1.79 xG
      Medium dangermid-range
      DAL2 / 8 · 0.67 xG
      BUF0 / 12 · 1.31 xG
      Low dangerperimeter & point
      DAL1 / 37 · 0.54 xG
      BUF1 / 41 · 0.65 xG

      DAL went 0-for-6 from high danger on 1.48 expected goals — 1.5 left on the table.

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

      Finishing vs expected

      expectedactual
      DAL
      4 G · 2.69 xG · +1.3
      BUF
      3 G · 3.75 xG · -0.8
      012345

      DAL finished +1.3 against expected, BUF -0.8.

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

      Shot diet

      goalsshots
      DAL
      WRIST2/27
      SNAP1/5
      SLAP0/2
      BACKHAND0/2
      TIP IN0/1
      WRAP AROUND0/0
      POKE0/0
      OTHER0/14
      BUF
      WRIST1/26
      SNAP2/8
      SLAP0/4
      BACKHAND0/2
      TIP IN0/1
      WRAP AROUND0/1
      POKE0/1
      OTHER0/16
      DAL
      BUF
      Off the rush
      2 G on 20
      1.26 xG
      3 G on 28
      2.52 xG
      Off rebounds
      1 G on 7
      1.25 xG
      0 G on 2
      0.56 xG

      Wrist shots carried the volume: DAL went 2-for-27, BUF 1-for-26. BUF scored 3 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
      J. Oettinger
      DAL · 21/24 · .875
      +0.8
      saved above expected
      B+
      the night
      By dangerG/attxGsaved
      High danger2/61.8-0.2
      Medium0/121.3+1.3
      Low1/410.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

      C. Ellis
      BUF · 25/28 · .893
      -0.3
      saved above expected
      D
      the night
      By dangerG/attxGsaved
      High danger0/61.5+1.5
      Medium2/80.7-1.3
      Low1/370.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

      Graded against a league-average game

      Report card

      Seven dimensions · A+ to F
      DimensionDALBUF
      Offense
      ▸Basis

      DAL Created 2.69 xG against a ~2.70 league-average game; 6 high-danger shots (1.48 xG) and 20 rush shots (1.26 xG).

      BUF Created 3.75 xG against a ~2.70 league-average game; 6 high-danger shots (1.79 xG) and 28 rush shots (2.52 xG).

      C+
      79
      A
      96
      Defense
      ▸Basis

      DAL Allowed 3.75 xG against a ~2.70 league-average game; conceded 6 high-danger shots (1.79 xG) and 28 rush shots (2.52 xG).

      BUF Allowed 2.69 xG against a ~2.70 league-average game; conceded 6 high-danger shots (1.48 xG) and 20 rush shots (1.26 xG).

      F
      54
      C-
      71
      Transition
      ▸Basis

      DAL Rush shots 20–28, rush xG 1.26–2.52 (rush-based; public data has no zone entries).

      BUF Rush shots 28–20, rush xG 2.52–1.26 (rush-based; public data has no zone entries).

      F
      58
      A-
      92
      Special teams
      ▸Basis

      DAL 1-for-3 on the power play (33%; league ≈21%) with 0.07 PP xG.

      BUF 0-for-3 on the power play (0%; league ≈21%) with 0.97 PP xG.

      B-
      82
      D-
      61
      Goaltending
      ▸Basis

      DAL +0.75 goals saved above expected on 24 shots against.

      BUF -0.31 goals saved above expected on 28 shots against.

      B
      83
      C-
      72
      Discipline
      ▸Basis

      DAL Took 3 penalties for 6 PIM vs 3 for 6 on the other side.

      BUF Took 3 penalties for 6 PIM vs 3 for 6 on the other side.

      C
      75
      C
      75
      Luck

      Grades bounces, not skill — C is neutral

      ▸Basis

      DAL Finishing +0.31 goals vs xG plus +0.75 GSAx of save luck = +1.06 total. This grades luck, not skill — C is neutral, A is very lucky.

      BUF Finishing -0.75 goals vs xG plus -0.31 GSAx of save luck = -1.06 total. This grades luck, not skill — C is neutral, A is very lucky.

      B
      83
      D+
      67
      Source · NHL play-by-play · xG engine · luck graded separately
      What the model flagged
      WARNINGDAL

      Rush defense leaked all night

      Gave up 28 rush shots worth 2.52 xG (3 goals) — transition gaps were there every period.

      Tighten neutral-zone structure and keep D gaps closed on entries.

      STRENGTHBUF

      Dangerous off the rush

      3 goals on 28 rush shots worth 2.52 xG.

      SURPRISEDAL

      Won against the run of play

      The Stars took it 4-3 in a shootout with only 42% of expected goals (2.69–3.75).

      LUCKDAL

      Wasted the best looks

      0-for-6 on high-danger chances worth 1.48 xG — that conversion rate won't stay at zero.

      WARNINGBUF

      Rush defense leaked all night

      Gave up 20 rush shots worth 1.26 xG (2 goals) — transition gaps were there every period.

      Tighten neutral-zone structure and keep D gaps closed on entries.

      STRENGTHDAL

      Dangerous off the rush

      2 goals on 20 rush shots worth 1.26 xG.

      80 shots · press play to watch the game back

      Where the shots came from

      NHL play-by-play coordinates
      DAL
      37 shots
      3
      Final
      80 shots
      BUF
      43 shots
      3
      DAL attackBUF attack
      DAL BUF Goal

      Shootout goals are not shots and are not drawn; the scoreboard above counts goals from the shot log.

      Each club shoots toward its own end — DAL 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
      Z. Benson
      #6 · L · BUF
      1 G · 1 A · 3 SOG · 24:22 on ice · +2
      O. Power
      #25 · D · BUF
      0 G · 2 A · 1 SOG · 22:17 on ice · +1
      E. Lindell
      #23 · D · DAL
      1 G · 1 A · 3 SOG · 22:14 on ice
      Ranked from the box score — points first · Backcheck
      What the model said beforehand

      Before the game

      Written Wed, Apr 15
      Open the pre-game read
      Written from the numbers

      The read

      Edited for clarity
      ◆ By the ModelJul 12, 11:49 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 projects a 2.5-2.5 game with Buffalo at 51% win probability. This is as close to a pick'em as they come.

      The underlying metrics explain why. Dallas posts 51.0% expected goals share at 5-on-5 to Buffalo's 50.0%. Corsi favors the Sabres slightly, 49.0% to 47.0%. Both teams are running nearly identical PDO — Dallas at 1.024, Buffalo at 1.020 — meaning both are riding unsustainable luck and due for regression.

      Goaltending introduces the first variable: U. Luukkonen faces a back-to-back and may not start. If Buffalo opts for a backup, that tilts the matchup considerably. If Luukkonen plays tired, the Sabres lose a structural advantage.

      Dallas's offense runs through Jason Robertson. He carries 25 goals and 21 assists with elite xG production (0.96 per 60) and a 12.4% shooting rate that suggests sustainable conversion. Michael Bunting supports at 0.83 xG/60 with only 8 goals, indicating he's due positive regression. Buffalo answers with Jason Zucker, who leads in expected creation at 1.07 xG/60 and has banked 14 goals with 6 high-danger chances. Josh Doan pairs with him at 1.01 xG/60, carrying 15 goals at an 11.5% shooting rate.

      Both rosters share a peculiar weakness: neither team converts high-danger chances, posting 0% high-danger goal rates. Both also show 0% rebound goal rates. Dallas's defensive liability is Tyler Myers. Buffalo's is Jack Quinn. These weak links will determine which team escapes the other's scoring chances.

      The verdict is as simple as the model suggests: this is a coin flip. Dallas has the edge in expected goal share. Buffalo has the marginally better play-driving rate and the marginal goaltending advantage if Luukkonen is fresh. Regression could cut either way. Bet the line only if it lands on your side of 51%.

      What the model said beforehand

      The model's lean

      BUF 51%
      51%
      BUF
      Model favorite
      49%
      51%
      DAL50BUF

      BUF by 2 points of win probability — effectively a coin flip. Projected score DAL 2.5–2.5 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
      DAL← edge
      edge →BUF
      51.0%50.0%
      47.0%49.0%
      2.362.55
      2.292.55
      2.072.35
      1.681.90
      1.0241.020

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

      Source · NHL stats API + our xG · 5v5
      Form · Last 10
      DAL
      6-3-1
      +4 GD · 2d rest
      BUF
      6-3-1
      +4 GD · 1d rest
      1.024
      DAL 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.
      • The Stars' PDO is 1.024 — running hot, expect some regression.
      Things to watch
      • U. Luukkonen is on a back-to-back — watch for a backup start or a tired starter.
      • The Sabres' PDO is 1.020 — running hot, expect some regression.
      Last game's lineup · confirmed at warm-up

      Lineups

      NHL box score
      DAL
      Expected in goal
      C. DeSmith
      2 days rest.815 last start
      Backup Jake Oettinger · +5.7 GSAx this season

      No completed game on file for this club yet.

      BUF
      Expected in goal
      U. Luukkonen
      back-to-back.938 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
      DAL
      Jason Robertson25G 21A
      0.96 xG/60 · 2 HD · 12.4% sh
      Michael Bunting8G 14A
      0.83 xG/60 · 0 HD · 7.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