Rush defense leaked all night
Gave up 26 rush shots worth 3.71 xG (2 goals) — transition gaps were there every period.
Tighten neutral-zone structure and keep D gaps closed on entries.

Split squads and prospects, not the club that will take the ice in October. The shots and grades below describe this game only: nothing here counts toward season records, form, rankings or player numbers.
Pittsburgh beat Buffalo 3-1. The Penguins controlled the game from the opening shift, building on early goals while Buffalo couldn't find an answer.
The underlying numbers backed it up. Pittsburgh generated 5.11 expected goals to Buffalo's 2.79 — a 65-35 advantage. Both teams recorded 24 shot attempts, so the Penguins' superiority came from converting volume into danger. Pittsburgh created 9 high-danger chances; Buffalo, 2.
A. Silovs saved 1.79 goals above what his workload should have allowed, ensuring Pittsburgh's offensive dominance reached the scoreboard. U. Luukkonen and C. Ellis made their saves, but faced lower-quality looks.
The Penguins' every touch was deadlier: 0.100 expected goals per shot to Buffalo's 0.055.
S. Crosby's wrist shot from 28 feet in the first broke the ice. V. Koivunen's rebound goal made it 2-0 before Buffalo found its footing. R. McLeod's power-play goal in the third cut it close, but N. Robertson's backhander into an empty net sealed the outcome.
Pittsburgh's transition game was the difference. The Penguins generated 26 rush shots worth 3.71 expected goals and converted two. Buffalo's rush defense broke down every period.
Both teams underperformed their expected goals. Pittsburgh shot 2.11 worse than it should have; Buffalo, 1.79 worse. Superior numbers decided the game.
What the numbers can't tell you. Whether the finishing was luck or skill, why the benches were run the way they were, who was hurt, and anything said in the room. That is the beat's story, and it is worth reading.
Penguins run the Sabres off the ice on the underlying numbers
The Penguins earned this one.
The board read PIT 3, BUF 1. The chances read PIT 5.1, BUF 2.8.
The Sabres left 1.8 goals on the table against what their chances were worth.
S. Crosby makes it 1–0.
High-danger looks: PIT 1 of 9, BUF 0 of 2.
Penguins 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 breakdownWrist shot from 28 feet, a 10% chance (off the rush), past U. Luukkonen. Win probability moved 16 points.On the ice: E. Malkin, S. Crosby, K. Letang, E. Karlsson, T. Novak · against T. Thompson, R. Dahlin, P. Krebs, L. Crevier, J. Doan
Backhander from 6 feet, an 11% chance (a rebound), past U. Luukkonen. 2s after a PIT block. Win probability moved 14 points.On the ice: K. Letang, B. Rust, T. van Riemsdyk, H. Lapierre, V. Koivunen · against J. Norris, R. McLeod, R. Dahlin, L. Crevier, K. Helenius
Wrist shot from 36 feet, an 11% chance (off the rush), past A. Silovs. Win probability moved 14 points.On the ice: S. Carrick, M. Grzelcyk, B. Malenstyn, C. Timmins, C. Ellis, T. Kozak · against S. Crosby, R. Rakell, S. Girard, K. Korczak, V. Koivunen
Backhander from 12 feet, a 100% chance, a near-certain one (off the rush). 9s after a PIT takeaway by T. van Riemsdyk.On the ice: S. Girard, K. Korczak, H. Lapierre, T. Broz, R. McGroarty · against M. Grzelcyk, R. McLeod, P. Krebs, C. Ellis, Z. Metsa, K. Helenius
score reads PIT–BUF
PIT went 1-for-9 from high danger on 2.89 expected goals — 1.9 left on the table.
PIT finished -2.1 against expected, BUF -1.8.
Snap shots carried the volume: PIT went 0-for-17, BUF 0-for-13. PIT scored 2 of theirs off the rush.
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 →
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+ ≥ +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+ ≥ +2.5 saved above expected · A ≥ +1.5 · B+ ≥ +0.75 · B ≥ +0.25 · C ≥ −0.25 · D ≥ −0.75 · F below −1.5
Best skater on the ice by our rating: H. Lapierre (PIT), 18:48 of ice, 0-1, 83% of the expected goals while he was out.
| Skater | TOI | G-A | SOG | ixG | xG% | PD/PT | Impact | /60 | Grade |
|---|---|---|---|---|---|---|---|---|---|
| H. LapierreC | 18:48 | 0-1 | 3 | 0.46 | 83 | 0/0 | 2.04 | 6.50 | A+ |
| V. KoivunenR | 15:38 | 1-0 | 3 | 0.77 | 71 | 0/0 | 1.61 | 6.19 | A+ |
| T. van RiemsdykD | 18:44 | 0-1 | 1 | 0.04 | 85 | 0/0 | 1.39 | 4.44 | A+ |
| B. RustR | 8:04 | 0-1 | 1 | 0.10 | 46 | 1/0 | 0.94 | 6.96 | A |
| N. RobertsonL | 15:34 | 1-0 | 1 | 1.00 | 46 | 0/0 | 1.21 | 4.66 | A |
| T. NovakC | 16:29 | 0-1 | 0 | 0.11 | 75 | 0/0 | 1.14 | 4.15 | A |
| S. CrosbyC | 16:03 | 1-0 | 2 | 0.68 | 52 | 0/0 | 1.13 | 4.21 | A |
| E. MalkinC | 17:45 | 0-0 | 2 | 0.50 | 90 | 0/1 | 1.12 | 3.79 | A |
| E. ChinakhovR | 16:42 | 0-0 | 4 | 0.55 | 92 | 0/1 | 1.06 | 3.83 | B |
| R. McGroartyR | 11:20 | 0-0 | 3 | 0.32 | 66 | 0/0 | 0.80 | 4.22 | B |
| R. RakellR | 14:59 | 0-1 | 2 | 0.10 | 56 | 0/1 | 0.79 | 3.17 | B |
| D. CarlileD | 22:24 | 0-1 | 1 | 0.14 | 57 | 0/0 | 0.90 | 2.40 | B |
| K. LetangD | 17:05 | 0-0 | 0 | 0.00 | 88 | 0/0 | 0.82 | 2.88 | B |
| T. BrozC | 10:07 | 0-0 | 0 | 0.00 | 68 | 0/0 | 0.45 | 2.67 | C |
| S. GirardD | 20:44 | 0-0 | 1 | 0.07 | 55 | 0/0 | 0.36 | 1.04 | C |
| K. KorczakD | 20:45 | 0-0 | 0 | 0.01 | 56 | 0/0 | 0.24 | 0.70 | C |
| E. KarlssonD | 18:46 | 0-0 | 0 | 0.03 | 53 | 0/0 | 0.07 | 0.23 | C |
| F. HallanderC | 14:17 | 0-0 | 0 | 0.23 | 30 | 0/0 | -0.44 | -1.84 | F |
| Skater | TOI | G-A | SOG | ixG | xG% | PD/PT | Impact | /60 | Grade |
|---|---|---|---|---|---|---|---|---|---|
| O. PowerD | 22:11 | 0-1 | 1 | 0.14 | 45 | 0/0 | 0.68 | 1.83 | B |
| R. McLeodC | 16:18 | 1-0 | 2 | 0.22 | 31 | 1/0 | 0.59 | 2.18 | B |
| N. OstlundC | 16:10 | 0-1 | 0 | 0.06 | 43 | 0/0 | 0.41 | 1.52 | C |
| J. QuinnR | 16:57 | 0-0 | 3 | 0.39 | 46 | 0/0 | 0.27 | 0.94 | C |
| C. TimminsD | 16:37 | 0-0 | 3 | 0.07 | 46 | 0/0 | 0.22 | 0.80 | C |
| J. NorrisC | 14:38 | 0-0 | 1 | 0.19 | 55 | 0/1 | 0.15 | 0.60 | C |
| T. KozakC | 10:39 | 0-0 | 0 | 0.00 | 51 | 0/0 | 0.06 | 0.31 | D |
| J. DoanR | 17:00 | 0-0 | 1 | 0.22 | 45 | 0/0 | 0.05 | 0.16 | D |
| S. CarrickC | 13:07 | 0-0 | 1 | 0.08 | 37 | 0/0 | 0.00 | 0.02 | D |
| K. HeleniusC | 14:34 | 0-0 | 2 | 0.28 | 35 | 0/0 | -0.14 | -0.60 | D |
| B. MalenstynL | 12:08 | 0-0 | 0 | 0.00 | 36 | 0/0 | -0.14 | -0.67 | D |
| L. CrevierD | 16:54 | 0-0 | 4 | 0.23 | 25 | 0/0 | -0.17 | -0.59 | D |
| M. GrzelcykD | 16:48 | 0-0 | 1 | 0.03 | 36 | 0/0 | -0.24 | -0.84 | D |
| T. ThompsonC | 19:23 | 0-0 | 1 | 0.14 | 22 | 1/0 | -0.28 | -0.87 | D |
| P. KrebsC | 15:57 | 0-0 | 3 | 0.41 | 27 | 0/0 | -0.31 | -1.15 | F |
| R. DahlinD | 24:44 | 0-0 | 1 | 0.29 | 24 | 1/0 | -0.38 | -0.92 | F |
| Z. BensonL | 17:43 | 0-0 | 0 | 0.00 | 31 | 0/0 | -0.41 | -1.37 | F |
| Z. MetsaD | 16:48 | 0-0 | 0 | 0.03 | 26 | 0/0 | -0.54 | -1.92 | F |
xG% = share of expected goals while on the ice · PD/PT = penalties drawn / taken · “in N min” = a per-60 rate far above the raw total. Impact = 0.75 G + 0.7 A1 + 0.55 A2 + 0.075 SOG + 0.05 BLK + 0.15 penalties drawn − 0.15 taken + 0.01 faceoff wins − 0.01 losses + 0.3 individual xG + 0.5 on-ice xG for − 0.5 on-ice xG against. Rating = 65% impact + 35% impact per 60, as a percentile among the skaters in this game.
Scratched, PIT: R. Segalla, R. Graves, C. Jones, J. Masonius, J. Brazeau, C. Delia and 54 more. Scratched, BUF: A. Kriukov, J. Zucker, M. Peca, M. Geertsen, C. Sheary, B. Warren and 51 more. Referees Hayden Verbeek and Peter MacDougall; linesmen Andrew Smith and Tommy Hughes.
PIT Created 5.11 xG against a ~2.70 league-average game; 9 high-danger shots (2.89 xG) and 26 rush shots (3.71 xG).
BUF Created 2.79 xG against a ~2.70 league-average game; 2 high-danger shots (0.44 xG) and 23 rush shots (2.39 xG).
PIT Allowed 2.79 xG against a ~2.70 league-average game; conceded 2 high-danger shots (0.44 xG) and 23 rush shots (2.39 xG).
BUF Allowed 5.11 xG against a ~2.70 league-average game; conceded 9 high-danger shots (2.89 xG) and 26 rush shots (3.71 xG).
PIT Rush shots 26–23, rush xG 3.71–2.39 (rush-based; public data has no zone entries).
BUF Rush shots 23–26, rush xG 2.39–3.71 (rush-based; public data has no zone entries).
PIT 0-for-1 on the power play (0%; league ≈21%) with 0.41 PP xG.
BUF 1-for-3 on the power play (33%; league ≈21%) with 0.58 PP xG.
PIT +1.79 goals saved above expected on 24 shots against.
BUF +3.11 goals saved above expected on 23 shots against.
PIT Took 3 penalties for 6 PIM vs 1 for 2 on the other side.
BUF Took 1 penalties for 2 PIM vs 3 for 6 on the other side.
Grades bounces, not skill — C is neutral
PIT Finishing -2.11 goals vs xG plus +1.79 GSAx of save luck = -0.32 total. This grades luck, not skill — C is neutral, A is very lucky.
BUF Finishing -1.79 goals vs xG plus +3.11 GSAx of save luck = +1.32 total. This grades luck, not skill — C is neutral, A is very lucky.
Gave up 26 rush shots worth 3.71 xG (2 goals) — transition gaps were there every period.
Tighten neutral-zone structure and keep D gaps closed on entries.
2 goals on 26 rush shots worth 3.71 xG.
Gave up 23 rush shots worth 2.39 xG (1 goals) — transition gaps were there every period.
Tighten neutral-zone structure and keep D gaps closed on entries.
1 goals on 23 rush shots worth 2.39 xG.
Scored 3 on 5.11 xG — -2.11 vs expected. The looks were there; the finish will come back.
Scored 1 on 2.79 xG — -1.79 vs expected. The looks were there; the finish will come back.
Each club shoots toward its own end — PIT 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.
Split squads and prospects, not the club that will take the ice in October. The rates below are last season's; this exhibition will not count toward season records, form, rankings or player numbers.
The model projects a PIT 3.2 - 3.4 BUF game with the Sabres at 52% win probability. This is about as close to a pick'em as you'll find.
Keys to the game
| Metric | PIT | BUF |
|---|---|---|
| xG% | 50.8% | 50.6% |
| Corsi% | 50.2% | 49.6% |
| PDO | 1.012 | 1.020 |
Rates from 2025-26 — the 2026-27 sample isn't live yet.
PIT
PIT
BUF
Data: NHL API, Backcheck xG model
BUF by 4 points of win probability — effectively a coin flip. Projected score PIT 3.2–3.4 BUF; 16% chance it's tied after 60.
PIT holds 4 of 6 process categories — and the luck row (1.012 vs 1.020) says BUF has been getting the bounces, which tends not to last.
Alex Lyon: +11.2 GSAx over 36 games (0.907 SV%).
Filip Hallander: 0G 3A, 1.12 xG/60, 1 high-danger goals.
Filip Hallander is on ice for 2.99 xGA/60 and 11 high-danger shots against this season.
Hunt matchups against Filip Hallander's shifts with the top line.
Noah Ostlund is on ice for 2.10 xGA/60 and 47 high-danger shots against this season.
Hunt matchups against Noah Ostlund's shifts with the top line.
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.