San Jose SharksSJS 5–4 Final Anaheim DucksANA

Monday, December 29, 2025

Final 1st2nd3rd T SOG
San Jose SharksSJS 221 5 13
Anaheim DucksANA 112 4 42

No impact calculated for this game. Impacts are calculated for games in the next 7 days.

Highlights

Scoring

1st Period
10:43 SJS Mario Ferraro (2) Alexander Wennberg (18), Adam Gaudette (6) · tip-in xG 0.08 1–0 ▶
15:02 ANA Troy Terry (11) Nikita Nesterenko (8) · backhand xG 0.64 1–1 ▶
19:12 SJS Macklin Celebrini (21) Alexander Wennberg (19), Tyler Toffoli (16) · snap xG 0.27 2–1 ▶
2nd Period
6:30 SJS Igor Chernyshov (2) Macklin Celebrini (38), Sam Dickinson (3) · backhand xG 0.18 3–1 ▶
12:17 SJS William Eklund (10) Macklin Celebrini (39) · snap xG 0.14 4–1 ▶
16:26 ANA Cutter Gauthier (19) Troy Terry (26), Ryan Poehling (12) · tip-in xG 0.09 4–2 ▶
3rd Period
3:07 ANA Pavel Mintyukov (5) Cutter Gauthier (19), Ian Moore (4) · snap xG 0.17 4–3 ▶
13:47 SJS Zack Ostapchuk (1) Vincent Iorio (3), Barclay Goodrow (5) · tip-in xG 0.06 5–3 ▶
15:58 ANA Troy Terry (12) Mason McTavish (15), Jackson LaCombe (17) · wrist xG 0.41 5–4 ▶

Score away–home after each goal; season totals in parentheses.

Shot quality

Expected goals (xG) rate every unblocked shot by how often shots like it go in, from where it was taken, the shot type, the strength and what happened just before it. How it works

SJS 8%Deserve to win92% ANA
SJSANA
1.84Expected goals5.14
5Goals (no shootout)4
1.59Expected goals, 5 on 54.07
36Shot attempts84
23Unblocked attempts63
13Shots on goal42

Game notes

What stood out as the game went on, from the play-by-play and the shifts. Time on the bench is counted in 5-on-5 play outside the penalty box; the note says the player sat, not why. Goals saved are against the shots' expected goals (xG).

1st Period
15:10 ANA xG swing xG swing · Out-chanced SJS 1.20–0.12
In xG over 10 minutes, 5:10 to 15:10 of the 1st; goals 1–1
2nd Period
12:17 ANA Goalie Goalie · Dostal −2.6 goals saved
4 goals on 1.38 xG, 9 shots on goal
12:17 ANA Goalie change Goalie change · Mrazek in for Dostal
12:17 of the 2nd; Dostal had allowed 4 goals on 9 shots (1.38 xG)
3rd Period
9:10 ANA xG swing xG swing · Out-chanced SJS 1.38–0.01
In xG over 10 minutes, 1:10 to 11:10 of the 3rd; goals 1–0
15:00 ANA No shift No shift · Helleson, 10:51 on the bench
No shift after the end of the 2nd; 16 shifts (11:10) before that
15:02 ANA Pulled goalie Pulled goalie · Pulled Mrazek, down 5–3
With 4:58 left; ANA scored at 15:58 of the 3rd (5–4)
17:17 ANA Pulled goalie Pulled goalie · Pulled Mrazek, down 5–4
With 2:43 left

Shot map

SJS shoots ←Bigger circle: higher xG; filled: goal→ ANA shoots
Beckett Sennecke: snap, 57 ft, xG 0.01 (P1 0:56) Troy Terry: snap, 34 ft, xG 0.08 (P1 1:43) Ian Moore: wrist, 51 ft, xG 0.01 (P1 1:49) Mario Ferraro: wrist, 57 ft, xG 0.01 (P1 2:32) Alex Killorn: tip-in, 25 ft, xG 0.04 (P1 2:45) Chris Kreider: deflected, 9 ft, xG 0.12 (P1 3:02) Igor Chernyshov: wrist, 11 ft, xG 0.11 (P1 3:29) John Klingberg: snap, 51 ft, xG 0.01 (P1 3:32) Dmitry Orlov: snap, 33 ft, xG 0.04 (P1 5:04) Ryan Strome: wrist, 7 ft, xG 0.18 (P1 6:29) Alex Killorn: wrist, 9 ft, xG 0.08 (P1 6:30) Olen Zellweger: snap, 33 ft, xG 0.03 (P1 7:10) Cutter Gauthier: snap, 13 ft, xG 0.03 (P1 7:11) Jeff Skinner: snap, 46 ft, xG 0.04 (P1 7:42) Cutter Gauthier: snap, 24 ft, xG 0.02 (P1 7:58) Jackson LaCombe: slap, 59 ft, xG 0.00 (P1 11:12) Nikita Nesterenko: snap, 18 ft, xG 0.18 (P1 11:34) Chris Kreider: tip-in, 12 ft, xG 0.03 (P1 13:24) Pavel Mintyukov: snap, 51 ft, xG 0.01 (P1 13:27) William Eklund: snap, 48 ft, xG 0.03 (P1 15:38) Ryan Poehling: backhand, 70 ft, xG 0.01 (P1 16:46) Igor Chernyshov: deflected, 29 ft, xG 0.08 (P1 17:24) Cutter Gauthier: tip-in, 9 ft, xG 0.11 (P1 17:37) Sam Dickinson: snap, 61 ft, xG 0.00 (P1 17:59) Collin Graf: snap, 22 ft, xG 0.16 (P1 18:45) Collin Graf: deflected, 14 ft, xG 0.08 (P1 19:00) Nikita Nesterenko: snap, 38 ft, xG 0.05 (P1 19:42) Macklin Celebrini: tip-in, 12 ft, xG 0.05 (P2 0:24) Mikael Granlund: wrist, 21 ft, xG 0.12 (P2 1:06) Ian Moore: wrist, 71 ft, xG 0.01 (P2 1:48) Mason McTavish: tip-in, 9 ft, xG 0.08 (P2 2:06) Mason McTavish: backhand, 8 ft, xG 0.05 (P2 2:07) Cutter Gauthier: snap, 41 ft, xG 0.02 (P2 2:12) Shakir Mukhamadullin: snap, 43 ft, xG 0.02 (P2 3:02) William Eklund: tip-in, 15 ft, xG 0.08 (P2 3:19) Mikael Granlund: snap, 30 ft, xG 0.08 (P2 5:21) Leo Carlsson: snap, 31 ft, xG 0.07 (P2 8:39) Jacob Trouba: slap, 51 ft, xG 0.04 (P2 8:46) Leo Carlsson: snap, 32 ft, xG 0.11 (P2 9:09) Chris Kreider: deflected, 13 ft, xG 0.03 (P2 9:10) Mason McTavish: slap, 32 ft, xG 0.08 (P2 9:26) Jacob Trouba: slap, 56 ft, xG 0.03 (P2 10:49) Olen Zellweger: snap, 44 ft, xG 0.03 (P2 11:16) Olen Zellweger: slap, 62 ft, xG 0.02 (P2 11:20) Cutter Gauthier: snap, 24 ft, xG 0.05 (P2 14:14) Ryan Strome: tip-in, 6 ft, xG 0.10 (P2 14:47) Ryan Strome: tip-in, 14 ft, xG 0.02 (P2 15:25) Nikita Nesterenko: deflected, 8 ft, xG 0.12 (P2 15:42) Nikita Nesterenko: deflected, 7 ft, xG 0.04 (P2 15:43) Jacob Trouba: wrist, 39 ft, xG 0.01 (P2 17:01) Mason McTavish: snap, 29 ft, xG 0.15 (P2 17:23) Beckett Sennecke: slap, 22 ft, xG 0.07 (P2 17:54) Jacob Trouba: wrist, 30 ft, xG 0.02 (P2 18:51) Zack Ostapchuk: snap, 19 ft, xG 0.20 (P2 19:57) Tyler Toffoli: wrist, 17 ft, xG 0.05 (P3 1:02) Pavel Mintyukov: snap, 33 ft, xG 0.11 (P3 1:48) Mikael Granlund: wrist, 35 ft, xG 0.02 (P3 2:35) Cutter Gauthier: snap, 46 ft, xG 0.02 (P3 2:47) Cutter Gauthier: backhand, 16 ft, xG 0.04 (P3 2:49) Collin Graf: snap, 41 ft, xG 0.01 (P3 3:15) Mason McTavish: snap, 21 ft, xG 0.14 (P3 3:38) Jansen Harkins: wrist, 24 ft, xG 0.10 (P3 5:06) Cutter Gauthier: wrist, 37 ft, xG 0.02 (P3 6:20) Beckett Sennecke: snap, 49 ft, xG 0.03 (P3 7:20) Chris Kreider: tip-in, 7 ft, xG 0.13 (P3 7:35) Mason McTavish: wrist, 5 ft, xG 0.36 (P3 7:37) Leo Carlsson: snap, 34 ft, xG 0.09 (P3 8:37) Cutter Gauthier: snap, 44 ft, xG 0.05 (P3 9:09) Chris Kreider: backhand, 11 ft, xG 0.03 (P3 9:10) Cutter Gauthier: snap, 38 ft, xG 0.07 (P3 9:28) John Klingberg: snap, 58 ft, xG 0.03 (P3 11:23) Ty Dellandrea: tip-in, 10 ft, xG 0.12 (P3 11:58) Jacob Trouba: snap, 61 ft, xG 0.01 (P3 15:00) Jackson LaCombe: slap, 49 ft, xG 0.05 (P3 17:55) Mason McTavish: slap, 37 ft, xG 0.06 (P3 18:03) Beckett Sennecke: tip-in, 9 ft, xG 0.09 (P3 18:53) Mason McTavish: tip-in, 16 ft, xG 0.09 (P3 19:08) Mario Ferraro: GOAL, tip-in, 8 ft, xG 0.08 (P1 10:43) Troy Terry: GOAL, backhand, 3 ft, xG 0.64 (P1 15:02) Macklin Celebrini: GOAL, snap, 18 ft, xG 0.27 (P1 19:12) Igor Chernyshov: GOAL, backhand, 11 ft, xG 0.18 (P2 6:30) William Eklund: GOAL, snap, 20 ft, xG 0.14 (P2 12:17) Cutter Gauthier: GOAL, tip-in, 8 ft, xG 0.09 (P2 16:26) Pavel Mintyukov: GOAL, snap, 25 ft, xG 0.17 (P3 3:07) Zack Ostapchuk: GOAL, tip-in, 25 ft, xG 0.06 (P3 13:47) Troy Terry: GOAL, wrist, 14 ft, xG 0.41 (P3 15:58)
About these numbers

xG comes from hockeystats.io's own model, a gradient-boosted tree model trained on every unblocked shot from the 2021-22 to 2025-26 regular seasons using the NHL's public play-by-play. Each shot's value is the share of similar shots that became goals. A team's xG is the sum over its shots; "deserve to win" asks how often the team would outscore its opponent if every shot went in at exactly that rate. Blocked shots count as attempts but have no xG (the NHL records where they were blocked, not where they were taken), so the map leaves them out.

Box score

San Jose Sharks

Skater GAP+/− AttxG HitBlkTOI
Forwards
51 Collin Graf 000 -1 40.24 2021:15
21 Alexander Wennberg 022 +1 00.00 0119:38
27 William Eklund 101 -1 30.26 0018:44
10 Ty Dellandrea 000 -1 10.12 2317:10
71 Macklin Celebrini 123 0 40.32 0116:14
92 Igor Chernyshov 101 -1 40.37 0015:53
73 Tyler Toffoli 011 +1 20.05 2115:10
23 Barclay Goodrow 011 +1 10.00 2212:22
53 Jeff Skinner 000 +1 20.04 0111:49
81 Adam Gaudette 011 +1 20.00 0010:45
75 Ryan Reaves 000 +1 00.00 2008:55
63 Zack Ostapchuk 101 +1 20.25 2008:27
Defense
38 Mario Ferraro 101 0 20.09 3323:34
9 Dmitry Orlov 000 0 20.04 1221:32
3 John Klingberg 000 +1 40.04 0219:16
6 Vincent Iorio 011 +1 00.00 0319:07
85 Shakir Mukhamadullin 000 -1 10.02 0018:28
6 Sam Dickinson 011 +1 20.00 1015:41
Goalie SAGA SVSV% xGA GSAx
Yaroslav Askarov 42438 .905 5.14 +1.14

Anaheim Ducks

Skater GAP+/− AttxG HitBlkTOI
Forwards
64 Mikael Granlund 000 -1 40.21 0020:21
91 Leo Carlsson 000 -1 30.28 0020:04
83 Mason McTavish 011 0 101.01 2019:25
19 Troy Terry 213 +2 41.13 0118:51
22 Chris Kreider 000 -3 50.34 1018:04
61 Cutter Gauthier 112 +1 160.53 1117:04
45 Beckett Sennecke 000 0 40.20 1117:01
25 Ryan Poehling 011 +1 10.01 0013:42
13 Nikita Nesterenko 011 0 60.39 3012:39
17 Alex Killorn 000 0 40.12 1011:21
22 Ryan Strome 000 0 40.29 0009:22
10 Jansen Harkins 000 0 10.10 4109:09
Defense
65 Jacob Trouba 000 -2 50.11 2024:42
2 Jackson LaCombe 011 0 40.06 2024:37
98 Pavel Mintyukov 101 +1 40.29 0219:28
3 Ian Moore 011 +1 40.02 0217:52
8 Olen Zellweger 000 -2 50.08 0114:55
14 Drew Helleson 000 -1 00.00 1211:10
Goalie SAGA SVSV% xGA GSAx
Lukas Dostal 945 .556 1.38 -2.62
Petr Mrazek 413 .750 0.46 -0.54

Skaters by time on ice. Goalie lines count shots with the goalie in net, from the NHL play-by-play.

Player ratings

What each player added to the result, in goals, from most to least. Hover a number for what it's made of.

San Jose Sharks

Player Rating Points Shots On ice Pen FO Other GSAx TOI
21 Alexander Wennberg C +2.18 +1.40 0.00 +0.45 +0.30 -0.02 +0.05 — 19:38
71 Macklin Celebrini C +1.49 +2.15 +0.21 -0.91 0.00 +0.01 +0.03 — 16:14
30 Yaroslav Askarov G +1.14 0.00 — — 0.00 — — +1.14 60:00
63 Zack Ostapchuk C +0.94 +0.75 +0.17 +0.04 0.00 -0.02 0.00 — 8:27
73 Tyler Toffoli C +0.76 +0.55 +0.03 +0.12 0.00 -0.01 +0.07 — 15:10
22 Vincent Iorio D +0.70 +0.70 0.00 -0.13 0.00 0.00 +0.13 — 19:07
38 Mario Ferraro D 0.00 +0.75 +0.06 -0.79 -0.15 0.00 +0.13 — 23:34
81 Adam Gaudette R -0.13 +0.55 0.00 -0.69 0.00 +0.01 0.00 — 10:45
23 Barclay Goodrow C -0.15 +0.55 0.00 -0.80 0.00 0.00 +0.10 — 12:22
51 Collin Graf R -0.19 0.00 +0.16 -0.35 0.00 0.00 0.00 — 21:15
3 John Klingberg D -0.33 0.00 +0.02 -0.22 -0.15 0.00 +0.02 — 19:16
53 Jeff Skinner L -0.40 0.00 +0.03 -0.45 0.00 0.00 +0.03 — 11:49
75 Ryan Reaves R -0.45 0.00 0.00 -0.45 0.00 0.00 0.00 — 8:55
92 Igor Chernyshov L -0.48 +0.75 +0.24 -1.47 0.00 0.00 0.00 — 15:53
72 William Eklund L -0.48 +0.75 +0.17 -1.40 0.00 0.00 0.00 — 18:44
6 Sam Dickinson D -0.58 +0.55 0.00 -1.09 0.00 0.00 -0.04 — 15:41
9 Dmitry Orlov D -1.15 0.00 +0.03 -1.25 0.00 0.00 +0.08 — 21:32
10 Ty Dellandrea C -1.25 0.00 +0.08 -1.45 0.00 -0.03 +0.15 — 17:10
85 Shakir Mukhamadullin D -1.48 0.00 +0.01 -1.31 -0.15 0.00 -0.04 — 18:28

Anaheim Ducks

Player Rating Points Shots On ice Pen FO Other GSAx TOI
19 Troy Terry R +4.14 +2.20 +0.73 +1.33 -0.15 0.00 +0.03 — 18:51
98 Pavel Mintyukov D +2.89 +0.75 +0.19 +1.83 0.00 0.00 +0.12 — 19:28
74 Ian Moore D +2.47 +0.55 +0.01 +1.82 0.00 0.00 +0.08 — 17:52
61 Cutter Gauthier L +2.32 +1.45 +0.34 +0.50 0.00 -0.02 +0.05 — 17:04
23 Mason McTavish C +2.06 +0.70 +0.65 +0.54 +0.15 +0.02 0.00 — 19:25
13 Nikita Nesterenko C +1.96 +0.70 +0.25 +1.03 0.00 0.00 -0.02 — 12:39
2 Jackson LaCombe D +1.93 +0.55 +0.04 +1.34 0.00 0.00 0.00 — 24:37
25 Ryan Poehling C +1.90 +0.55 0.00 +1.30 0.00 +0.05 0.00 — 13:42
14 Drew Helleson D +0.91 0.00 0.00 +0.96 -0.15 0.00 +0.10 — 11:10
20 Chris Kreider L +0.80 0.00 +0.22 +0.57 0.00 0.00 0.00 — 18:04
45 Beckett Sennecke R +0.74 0.00 +0.13 +0.54 0.00 0.00 +0.07 — 17:01
16 Ryan Strome C +0.68 0.00 +0.19 +0.51 0.00 0.00 -0.02 — 9:22
17 Alex Killorn L +0.51 0.00 +0.08 +0.46 0.00 0.00 -0.02 — 11:21
24 Jansen Harkins C +0.49 0.00 +0.06 +0.39 0.00 +0.01 +0.03 — 9:09
91 Leo Carlsson C +0.32 0.00 +0.18 +0.04 +0.15 -0.02 -0.02 — 20:04
64 Mikael Granlund C +0.26 0.00 +0.14 -0.01 +0.15 +0.02 -0.04 — 20:21
65 Jacob Trouba D -0.15 0.00 +0.07 -0.23 0.00 0.00 0.00 — 24:42
34 Petr Mrazek G -0.54 0.00 — — 0.00 — — -0.54 23:56
51 Olen Zellweger D -0.68 0.00 +0.05 -0.75 0.00 0.00 +0.01 — 14:55
1 Lukas Dostal G -2.62 0.00 — — 0.00 — — -2.62 32:17

An expected-goals take on Dom Luszczyszyn's Game Score: goals and assists, the quality of a player's own shots, shot quality for and against while they were on the ice at 5v5, penalties, faceoffs and puck plays, all in goals; goalies by goals saved above expected. From the NHL play-by-play and shift charts.