Motion-blurred skater in a Colorado Avalanche sweater
Breakdown · COL at BUF

Avalanche hold off the Sabres

The verdict · earned

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

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

S. Wedgewood was the difference. The COL goaltender stopped 1.8 goals above expected—the variance that turned a tight underlying game into a 3–1 final. Both teams underperformed their expected goals: BUF by 1.81, COL by 1.11. Wedgewood's +1.81 tipped the balance.

The underlying play favored COL cleanly. They controlled 59% of expected goals (4.11–2.81 xG) and generated shots worth 0.065 xG per attempt versus BUF's 0.043. On high-danger chances, the gap was smaller: COL 6, BUF 4. But COL was lethal off the rush, scoring three goals on 31 rush chances—a rate that matters when volume is high.

Nathan MacKinnon's wrist shot from the high slot in the second period was the game's turning point. It crystallized what the metrics already showed: COL was the team built to win this game. BUF never recovered.

BUF's offense disappeared. They mustered 28 shot attempts to COL's 37 (43% share) and generated a thin 41% expected-goals share. A. Lyon made 34 saves on 37 shots (0.919 SV%), a solid performance that masked the problem: his skaters didn't generate enough volume or quality. When a team underperforms its xG by 1.81 goals, chance creation isn't the issue—finishing is.

The Sabres' one goal came on a 34-save night for Lyon, which would win most games. COL's three came from a team that controlled shot quality, forced the rush, and had a goaltender who exceeded expectations. Wedgewood's save percentage (0.964) doesn't lie: he faced 28 shots and stopped 27, with an additional goal's worth of value baked in above the baseline.

COL won because they were better in every dimension—possession, quality, and goaltending.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Oct 13
COL
3
BUF
1

Avalanche hold off the Sabres

Chances 4.1 – 2.8Did they deserve it? →
Did they deserve it?

The Avalanche earned this one.

Expected goals · chance value
COL
4.11
BUF
2.81
59% of the chances41%

The board read COL 3, BUF 1. The chances read COL 4.1, BUF 2.8.

Our xG model · NHL play-by-play · all situations
Luck check
COL
−1.1
goals above expected
COL4.11 expected · 3 scored
Expected
Scored
BUF2.81 expected · 1 scored
Expected
Scored

The Sabres left 1.8 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 03:14COLN. MacKinnon1–0
  2. P1 16:32BUFT. Thompson1–1
  3. P2 04:32COLC. Makar2–1
  4. P2 11:59COLN. MacKinnon3–1
NHL play-by-play · chance value from our xG model
Where the shots came from
COL
51 shots
3
Final
96 shots
BUF
45 shots
1
COL attackBUF attack
COL BUF Goal
51
shots · 3 in
45
shots · 1 in
Every unblocked shot · press play to replay it
Chances by danger
COLBUF
1 / 6
1.83 xG
High danger
0 / 4
0.95 xG
1 / 11
1.17 xG
Medium
0 / 9
0.98 xG
1 / 46
1.10 xG
Low
1 / 53
0.88 xG

The Sabres went 0 for 4 from the slot.

Danger tiers by our xG model · high ≥ 20% chance
In the net
A
S. Wedgewood
+1.8
COL · 27/28
B+
A. Lyon
+1.1
BUF · 34/37
The numbers, checked
BACKCHECK

Avalanche hold off the Sabres

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 10–13
  1. 03:14COLN. MacKinnon(M. Necas, B. Burns)1–0
  2. 16:32BUFT. Thompson(A. Tuch, R. Dahlin)1–1
2ndshots 12–11
  1. 04:32COLC. Makar(V. Nichushkin)2–1
  2. 11:59COLN. MacKinnon(M. Necas, C. Makar)3–1
3rdshots 15–4no goals

    score reads COL–BUF

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

    The numbers

    XGBoost xG · NHL play-by-play
    4.11
    COL chances
    Goals their shots were worth
    −1.1
    Finishing
    Goals below what those chances were worth
    1.032
    COL puck luck
    Above 1.000 — the bounces went their way
    48.8%
    Shot attempts
    Under half — they were outshot
    Split by club

    Who controlled the game

    4.11Expected goals2.81
    COL 59% of the chance quality
    37Shots on goal28
    6High-danger chances4
    63All attempts (Corsi)66
    Adjusted for score: COL 44% · BUF 56%
    Faceoffs · BUF won48%off53%neu33%def
    Source · NHL play-by-play · XGBoost xG
    How the game was won

    The danger ladder

    shotsgoalsexpected
    High dangerslot & crease
    COL1 / 6 · 1.83 xG
    BUF0 / 4 · 0.95 xG
    Medium dangermid-range
    COL1 / 11 · 1.17 xG
    BUF0 / 9 · 0.98 xG
    Low dangerperimeter & point
    COL1 / 46 · 1.10 xG
    BUF1 / 53 · 0.88 xG

    BUF went 0-for-9 from medium danger on 0.98 expected goals — 1.0 left on the table.

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

    Finishing vs expected

    expectedactual
    COL
    3 G · 4.11 xG · -1.1
    BUF
    1 G · 2.81 xG · -1.8
    012345

    COL finished -1.1 against expected, BUF -1.8.

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

    Shot diet

    goalsshots
    COL
    WRIST1/28
    SLAP0/10
    SNAP1/5
    TIP IN0/2
    BACKHAND1/4
    POKE0/2
    WRAP AROUND0/0
    OTHER0/12
    BUF
    WRIST1/28
    SLAP0/6
    SNAP0/3
    TIP IN0/5
    BACKHAND0/2
    POKE0/0
    WRAP AROUND0/1
    OTHER0/21
    COL
    BUF
    Off the rush
    3 G on 31
    3.15 xG
    0 G on 28
    1.90 xG
    Off rebounds
    0 G on 3
    0.51 xG
    0 G on 2
    0.40 xG

    Wrist shots carried the volume: COL went 1-for-28, BUF 1-for-28. COL 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
    S. Wedgewood
    COL · 27/28 · .964
    +1.8
    saved above expected
    A
    the night
    By dangerG/attxGsaved
    High danger0/40.9+0.9
    Medium0/91.0+1.0
    Low1/530.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

    A. Lyon
    BUF · 34/37 · .919
    +1.1
    saved above expected
    B+
    the night
    By dangerG/attxGsaved
    High danger1/61.8+0.8
    Medium1/111.2+0.2
    Low1/461.1+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

    96 shots · press play to watch the game back

    Where the shots came from

    NHL play-by-play coordinates
    COL
    51 shots
    3
    Final
    96 shots
    BUF
    45 shots
    1
    COL attackBUF attack
    COL BUF Goal

    Each club shoots toward its own end — COL 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
    C. Makar
    #8 · D · —
    1 G · 1 A · 4 SOG · 25:22 on ice · +2
    N. MacKinnon
    #29 · C · —
    2 G · 0 A · 5 SOG · 21:47 on ice · +2
    M. Necas
    #88 · C · —
    0 G · 2 A · 3 SOG · 18:27 on ice · +2
    Ranked from the box score — points first · Backcheck
    What the model said beforehand

    Before the game

    Written Mon, Oct 13
    Open the pre-game read
    Written from the numbers

    The read

    Edited for clarity
    ◆ By the ModelSep 22, 2:10 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

    Colorado holds a thin edge on underlying metrics, but Buffalo's hot hand creates genuine balance. The model projects 3.4-3.1 Avalanche with Colorado at 53% win probability—as close to a pick'em as you'll find.

    Colorado's advantage lives in volume and positioning. The Avalanche own 56.6% of 5v5 expected goals and control territory at 56.4% Corsi, generating more dangerous looks from superior field position. That territorial grip runs through Artturi Lehkonen, who drives the Colorado offense at 1.11 xG/60 with 18 goals, 22 assists, and 6 high-danger goals—elite production on dangerous volume. Ross Colton amplifies the threat at 1.10 xG/60 (7 goals, 15 assists, 1 high-danger goal), giving Colorado a two-headed attack with different scoring profiles.

    Buffalo counters with Jason Zucker, who generates 1.07 xG/60 and carries 14 goals, 14 assists, and 6 high-danger goals—matching Lehkonen's danger output despite lower volume. Josh Doan provides secondary depth at 1.01 xG/60 with 15 goals, 18 assists, and 2 high-danger goals. Both teams are running hot: Colorado's 1.021 PDO and Buffalo's 1.020 suggest they're converting well above sustainable rates, meaning regression risks both sides.

    The game hinges on execution within Colorado's structural advantage. Lehkonen will draw Buffalo's defensive resources; how the Sabres contain him determines the margins. Zucker demands equal Colorado attention. Lehkonen's 14.9% shooting and Zucker's 15.1% both sit elevated—small variance in puck luck could swing this close game. Colton (4.9%) and Doan (11.5%) add tertiary variance; one or both could catalyze a shift.

    Players to Watch

    • Artturi Lehkonen (COL) — 1.11 xG/60, 18G 22A, 6 HD goals
    • Jason Zucker (BUF) — 1.07 xG/60, 14G 14A, 6 HD goals
    • Ross Colton (COL) — 1.10 xG/60, 7G 15A
    • Josh Doan (BUF) — 1.01 xG/60, 15G 18A

    The Avalanche's territorial dominance should prevail in a seven-game series, but one game hinges on whether Colorado's model edge translates through conversion. That's why this stays a pick'em—Colorado's better team, barely, in a moment where luck matters.

    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

    COL 53%
    53%
    COL
    Model favorite
    53%
    47%
    COL50BUF

    COL by 6 points of win probability — a modest lean. Projected score COL 3.4–3.1 BUF; 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
    COL← edge
    edge →BUF
    56.6%50.6%
    56.4%49.6%
    3.593.24
    2.763.16
    3.633.45
    2.402.93
    1.0211.020

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

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

    Keys to the game

    TACTICALBUF

    Shutdown Assignment: Sabres

    Key matchup: Neutralize Artturi Lehkonen (18G, 1.11 xG/60, 6 HD goals)

    Key matchup: Neutralize Artturi Lehkonen (18G, 1.11 xG/60, 6 HD goals)

    TACTICALCOL

    Shutdown Assignment: Avalanche

    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)

    STRENGTHCOL

    Artturi Lehkonen drives the Avalanche offense

    Artturi Lehkonen: 18G 22A, 1.11 xG/60, 6 high-danger goals.

    WARNINGCOL

    Exploitable minutes: Nazem Kadri

    Nazem Kadri is on ice for 2.70 xGA/60 and 55 high-danger shots against this season.

    Hunt matchups against Nazem Kadri's shifts with the top line.

    Where the edges live
    • The Avalanche own the underlying play — 56.6% 5v5 xG vs 50.6%.
    • The Avalanche drive Corsi at 56.4% — expect territorial tilt.
    Regression watch
    • The Sabres' PDO is 1.020 — running hot, expect some regression.
    • The Avalanche's PDO is 1.021 — running hot, expect some regression.
    Things to watch
    • The Avalanche own the underlying play — 56.6% 5v5 xG vs 50.6%.
    • The Avalanche drive Corsi at 56.4% — expect territorial tilt.
    • The Sabres' PDO is 1.020 — running hot, expect some regression.
    Computed danger · scouting

    Players to watch

    NHL stats API · our xG
    COL
    Artturi Lehkonen18G 22A
    1.11 xG/60 · 6 HD · 14.9% sh
    Ross Colton7G 15A
    1.10 xG/60 · 1 HD · 4.9% 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