Calgary FlamesCGY 5–3 Final Anaheim DucksANA

Saturday, April 4, 2026

Final 1st2nd3rd T SOG
Calgary FlamesCGY 131 5 20
Anaheim DucksANA 102 3 39
Playoff odds, % Change
ANA -0.9
CGY +0.0

How the result moved each team's playoff odds, calculated Apr 4, 2026 9:23 PM EDT.

Highlights

Scoring

1st Period
10:11 ANA Beckett Sennecke (23) Jackson LaCombe (46), Jacob Trouba (24) · backhand xG 0.11 0–1 ▶
13:24 CGY Joel Farabee (18) Matvei Gridin (11), Kevin Bahl (14) · backhand xG 0.15 1–1 ▶
2nd Period
1:20 CGY Ryan Strome (8) Martin Pospisil (2), Victor Olofsson (18) · snap xG 0.17 2–1 ▶
7:49 CGY Matvei Gridin (6) Joel Farabee (18), Hunter Brzustewicz (5) · wrist xG 0.14 3–1 ▶
18:44 CGY Morgan Frost (20) Olli Maatta (10), Blake Coleman (14) · wrist xG 0.28 4–1 ▶
3rd Period
7:49 ANA Leo Carlsson (27) Unassisted · wrist xG 0.10 4–2 ▶
9:51 ANA Mason McTavish (15)PP Alex Killorn (17) · snap xG 0.11 4–3 ▶
18:49 CGY Morgan Frost (21)EN Matt Coronato (23) · wrist xG 0.85 5–3 ▶

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

CGY 28%Deserve to win72% ANA
CGYANA
4.21Expected goals3.70
5Goals (no shootout)3
2.17Expected goals, 5 on 52.97
49Shot attempts81
35Unblocked attempts64
20Shots on goal39

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).

3rd Period
14:40 ANA Shortened bench Shortened bench · 1 forward, 1 defenseman sat
Gaucher and Moore: no shift after 3:43 of the 3rd
17:37 ANA Pulled goalie Pulled goalie · Pulled Husso, down 4–3
With 2:23 left; CGY scored at 18:49 of the 3rd (5–3)

Shot map

CGY shoots ←Bigger circle: higher xG; filled: goal→ ANA shoots
Alex Killorn: wrist, 35 ft, xG 0.04 (P1 0:22) John Carlson: snap, 53 ft, xG 0.00 (P1 0:25) Morgan Frost: tip-in, 9 ft, xG 0.04 (P1 1:06) Olli Maatta: backhand, 80 ft, xG 0.00 (P1 1:14) Ryan Poehling: snap, 41 ft, xG 0.01 (P1 1:29) Jeffrey Viel: tip-in, 10 ft, xG 0.08 (P1 1:36) Troy Terry: wrist, 24 ft, xG 0.03 (P1 1:54) Troy Terry: backhand, 10 ft, xG 0.10 (P1 2:53) Troy Terry: backhand, 171 ft, xG 0.00 (P1 2:54) Troy Terry: backhand, 9 ft, xG 0.03 (P1 2:55) Victor Olofsson: tip-in, 9 ft, xG 0.08 (P1 3:14) Zayne Parekh: wrist, 10 ft, xG 0.15 (P1 5:26) Jacob Trouba: slap, 68 ft, xG 0.01 (P1 7:41) Adam Klapka: wrist, 43 ft, xG 0.03 (P1 8:36) Olen Zellweger: snap, 47 ft, xG 0.03 (P1 8:48) John Carlson: slap, 61 ft, xG 0.03 (P1 8:54) Tim Washe: snap, 24 ft, xG 0.04 (P1 8:55) Matvei Gridin: tip-in, 28 ft, xG 0.01 (P1 9:12) Beckett Sennecke: backhand, 9 ft, xG 0.14 (P1 10:10) Zach Whitecloud: snap, 72 ft, xG 0.00 (P1 10:33) Victor Olofsson: snap, 13 ft, xG 0.11 (P1 10:35) John Carlson: wrist, 175 ft, xG 0.00 (P1 10:42) Adam Klapka: tip-in, 24 ft, xG 0.06 (P1 11:16) John Carlson: wrist, 148 ft, xG 0.00 (P1 11:27) Matt Coronato: wrist, 45 ft, xG 0.03 (P1 11:43) Mikael Granlund: snap, 33 ft, xG 0.10 (P1 12:32) Olen Zellweger: wrist, 43 ft, xG 0.01 (P1 12:51) Mikael Granlund: tip-in, 27 ft, xG 0.04 (P1 13:17) Zach Whitecloud: snap, 20 ft, xG 0.04 (P1 14:35) Ryan Poehling: wrist, 40 ft, xG 0.01 (P1 15:11) Tyson Hinds: snap, 62 ft, xG 0.01 (P1 16:51) Mikael Granlund: snap, 18 ft, xG 0.32 (P1 17:11) Jeffrey Viel: snap, 15 ft, xG 0.18 (P1 19:46) Victor Olofsson: slap, 39 ft, xG 0.02 (P2 0:43) Jacob Trouba: snap, 43 ft, xG 0.01 (P2 1:10) Chris Kreider: snap, 50 ft, xG 0.02 (P2 2:47) Mikael Granlund: deflected, 14 ft, xG 0.02 (P2 2:48) Mikael Granlund: wrist, 6 ft, xG 0.02 (P2 2:49) Tim Washe: wrist, 13 ft, xG 0.16 (P2 3:35) Morgan Frost: snap, 40 ft, xG 0.06 (P2 4:01) Morgan Frost: tip-in, 26 ft, xG 0.06 (P2 4:18) Leo Carlsson: snap, 30 ft, xG 0.14 (P2 5:10) Mikael Backlund: snap, 47 ft, xG 0.01 (P2 5:54) Blake Coleman: wrist, 4 ft, xG 0.15 (P2 6:01) Beckett Sennecke: backhand, 15 ft, xG 0.15 (P2 6:24) Tyson Hinds: slap, 66 ft, xG 0.02 (P2 6:29) Beckett Sennecke: slap, 48 ft, xG 0.04 (P2 7:08) Blake Coleman: tip-in, 13 ft, xG 0.08 (P2 8:51) Matvei Gridin: snap, 6 ft, xG 0.21 (P2 9:26) Matvei Gridin: tip-in, 8 ft, xG 0.05 (P2 9:27) Mikael Granlund: wrist, 21 ft, xG 0.15 (P2 10:16) Mikael Granlund: snap, 16 ft, xG 0.08 (P2 10:28) John Carlson: wrist, 64 ft, xG 0.01 (P2 11:31) John Carlson: snap, 15 ft, xG 0.17 (P2 13:14) Tyson Hinds: snap, 50 ft, xG 0.03 (P2 14:50) Jacob Trouba: snap, 63 ft, xG 0.02 (P2 15:21) John Carlson: slap, 30 ft, xG 0.05 (P2 16:24) Joel Farabee: backhand, 9 ft, xG 0.18 (P2 16:56) Ryan Poehling: snap, 26 ft, xG 0.17 (P2 17:53) Jacob Trouba: snap, 66 ft, xG 0.01 (P2 19:17) Drew Helleson: backhand, 13 ft, xG 0.08 (P2 19:45) Chris Kreider: slap, 68 ft, xG 0.01 (P2 19:50) Mikael Granlund: tip-in, 18 ft, xG 0.03 (P3 0:10) Matt Coronato: tip-in, 24 ft, xG 0.06 (P3 0:30) Leo Carlsson: snap, 24 ft, xG 0.18 (P3 0:47) Ryan Poehling: snap, 41 ft, xG 0.02 (P3 3:51) Mikael Backlund: snap, 66 ft, xG 0.00 (P3 4:53) Morgan Frost: wrist, 92 ft, xG 0.00 (P3 5:10) Troy Terry: wrist, 37 ft, xG 0.02 (P3 5:34) Jacob Trouba: slap, 42 ft, xG 0.00 (P3 5:36) Troy Terry: tip-in, 75 ft, xG 0.00 (P3 8:13) Ryan Poehling: snap, 21 ft, xG 0.17 (P3 8:17) Olli Maatta: snap, 29 ft, xG 0.03 (P3 8:29) Ryan Strome: wrist, 90 ft, xG 0.00 (P3 9:55) Mikael Granlund: slap, 61 ft, xG 0.01 (P3 10:08) John Carlson: snap, 62 ft, xG 0.01 (P3 10:16) Ryan Poehling: snap, 64 ft, xG 0.01 (P3 11:48) Leo Carlsson: snap, 44 ft, xG 0.03 (P3 12:38) Ryan Strome: snap, 41 ft, xG 0.00 (P3 13:57) Tyson Hinds: slap, 53 ft, xG 0.02 (P3 14:09) Tyson Hinds: snap, 61 ft, xG 0.02 (P3 14:14) Mason McTavish: wrist, 10 ft, xG 0.02 (P3 14:15) Jackson LaCombe: slap, 43 ft, xG 0.07 (P3 15:07) Mason McTavish: slap, 38 ft, xG 0.10 (P3 15:35) John Carlson: slap, 54 ft, xG 0.05 (P3 16:22) Chris Kreider: snap, 15 ft, xG 0.04 (P3 16:23) Leo Carlsson: snap, 41 ft, xG 0.02 (P3 17:44) Blake Coleman: snap, 62 ft, xG 0.51 (P3 18:05) Zach Whitecloud: wrist, 135 ft, xG 0.50 (P3 18:34) Morgan Frost: snap, 39 ft, xG 0.06 (P3 19:01) Morgan Frost: tip-in, 27 ft, xG 0.06 (P3 19:07) Beckett Sennecke: GOAL, backhand, 5 ft, xG 0.11 (P1 10:11) Joel Farabee: GOAL, backhand, 10 ft, xG 0.15 (P1 13:24) Ryan Strome: GOAL, snap, 18 ft, xG 0.17 (P2 1:20) Matvei Gridin: GOAL, wrist, 14 ft, xG 0.14 (P2 7:49) Morgan Frost: GOAL, wrist, 11 ft, xG 0.28 (P2 18:44) Leo Carlsson: GOAL, wrist, 32 ft, xG 0.10 (P3 7:49) Mason McTavish: GOAL, snap, 34 ft, xG 0.11 (P3 9:51) Morgan Frost: GOAL, wrist, 13 ft, xG 0.85 (P3 18:49)
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

Calgary Flames

Skater GAP+/− AttxG HitBlkTOI
Forwards
11 Mikael Backlund 000 -1 60.01 1121:40
20 Blake Coleman 000 +1 40.74 4218:51
86 Joel Farabee 112 +2 30.34 0115:42
16 Morgan Frost 202 +4 101.40 2115:32
27 Matt Coronato 011 0 30.09 1015:11
22 Ryan Strome 101 0 30.18 2114:18
92 Matvei Gridin 112 +2 40.41 0114:02
17 Yegor Sharangovich 000 0 00.00 0013:25
95 Victor Olofsson 011 0 50.22 0013:08
76 Martin Pospisil 011 0 00.00 7112:46
47 Connor Zary 000 +1 10.00 0111:47
43 Adam Klapka 000 0 20.10 5010:19
Defense
28 Zach Whitecloud 000 +2 30.54 3325:45
7 Kevin Bahl 022 +2 00.00 0224:17
3 Olli Maatta 011 +1 20.03 0019:55
37 Yan Kuznetsov 000 +1 00.00 0117:20
19 Zayne Parekh 000 0 20.15 0115:49
48 Hunter Brzustewicz 011 0 10.00 2015:16
Goalie SAGA SVSV% xGA GSAx
Devin Cooley 39336 .923 3.70 +0.70

Anaheim Ducks

Skater GAP+/− AttxG HitBlkTOI
Forwards
45 Beckett Sennecke 101 +1 40.44 1021:22
64 Mikael Granlund 000 -1 90.76 0220:54
91 Leo Carlsson 101 +1 60.46 0120:06
22 Chris Kreider 000 -2 30.07 2019:35
19 Troy Terry 000 -2 60.18 0019:10
17 Alex Killorn 011 0 10.04 1018:14
25 Ryan Poehling 000 -3 60.40 1115:04
83 Mason McTavish 101 -3 50.23 1014:50
42 Tim Washe 000 0 20.20 2010:19
25 Jeffrey Viel 000 -2 30.26 1010:08
41 Nathan Gaucher 000 0 00.00 4007:51
Defense
74 John Carlson 000 0 100.33 0223:52
55 Tyson Hinds 000 0 100.09 1123:22
65 Jacob Trouba 011 -2 100.05 4121:18
2 Jackson LaCombe 011 -3 20.07 1120:46
14 Drew Helleson 000 0 10.08 1013:33
8 Olen Zellweger 000 0 20.03 0410:52
3 Ian Moore 000 0 10.00 1008:16
Goalie SAGA SVSV% xGA GSAx
Ville Husso 19415 .789 2.36 -1.64

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.

Calgary Flames

Player Rating Points Shots On ice Pen FO Other GSAx TOI
16 Morgan Frost C +3.49 +1.50 +0.91 +1.13 -0.15 +0.04 +0.05 — 15:32
92 Matvei Gridin R +2.25 +1.45 +0.27 +0.48 0.00 0.00 +0.05 — 14:02
86 Joel Farabee L +1.86 +1.45 +0.22 +0.18 0.00 -0.02 +0.03 — 15:42
20 Blake Coleman L +1.44 +0.55 +0.48 +0.47 -0.15 +0.01 +0.08 — 18:51
3 Olli Maatta D +1.22 +0.70 +0.02 +0.33 +0.15 0.00 +0.02 — 19:55
1 Devin Cooley G +0.70 0.00 — — 0.00 — — +0.70 60:00
37 Yan Kuznetsov D +0.60 0.00 0.00 +0.55 0.00 0.00 +0.05 — 17:20
48 Hunter Brzustewicz D +0.28 +0.55 0.00 -0.27 0.00 0.00 0.00 — 15:16
22 Ryan Strome C +0.22 +0.75 +0.11 -0.71 0.00 +0.02 +0.05 — 14:18
76 Martin Pospisil C +0.20 +0.70 0.00 -0.55 0.00 0.00 +0.05 — 12:46
27 Matt Coronato R +0.17 +0.70 +0.06 -0.56 0.00 -0.01 -0.02 — 15:11
19 Zayne Parekh D +0.13 0.00 +0.10 +0.02 0.00 0.00 +0.01 — 15:49
95 Victor Olofsson L +0.07 +0.55 +0.14 -0.56 0.00 0.00 -0.06 — 13:08
47 Connor Zary C +0.03 0.00 0.00 +0.01 0.00 -0.01 +0.03 — 11:47
43 Adam Klapka R -0.36 0.00 +0.06 -0.39 0.00 0.00 -0.04 — 10:19
7 Kevin Bahl D -0.40 +0.55 0.00 -1.03 0.00 0.00 +0.08 — 24:17
28 Zach Whitecloud D -0.44 0.00 +0.35 -0.75 -0.15 0.00 +0.11 — 25:45
17 Yegor Sharangovich C -0.59 0.00 0.00 -0.56 0.00 -0.01 -0.02 — 13:25
11 Mikael Backlund C -0.63 0.00 +0.01 -0.66 0.00 +0.03 -0.01 — 21:40

Anaheim Ducks

Player Rating Points Shots On ice Pen FO Other GSAx TOI
91 Leo Carlsson C +2.52 +0.75 +0.30 +1.22 +0.15 +0.03 +0.07 — 20:06
45 Beckett Sennecke R +1.61 +0.75 +0.29 +0.74 -0.15 0.00 -0.02 — 21:22
2 Jackson LaCombe D +1.43 +0.70 +0.05 +0.52 +0.15 0.00 +0.01 — 20:46
64 Mikael Granlund C +1.40 0.00 +0.49 +0.86 0.00 -0.04 +0.08 — 20:54
17 Alex Killorn L +0.99 +0.70 +0.03 +0.29 0.00 -0.01 -0.02 — 18:14
65 Jacob Trouba D +0.76 +0.55 +0.03 +0.14 0.00 0.00 +0.03 — 21:18
74 John Carlson D +0.76 0.00 +0.21 +0.48 0.00 0.00 +0.06 — 23:52
19 Troy Terry R +0.74 0.00 +0.12 +0.63 0.00 -0.01 0.00 — 19:10
20 Chris Kreider L +0.48 0.00 +0.04 +0.46 0.00 0.00 -0.02 — 19:35
23 Mason McTavish C +0.39 +0.75 +0.15 -0.49 0.00 0.00 -0.02 — 14:50
51 Olen Zellweger D +0.30 0.00 +0.02 +0.08 0.00 0.00 +0.20 — 10:52
60 Tyson Hinds D +0.25 0.00 +0.06 -0.03 +0.15 0.00 +0.07 — 23:22
14 Drew Helleson D 0.00 0.00 +0.05 -0.05 0.00 0.00 0.00 — 13:33
42 Tim Washe C -0.04 0.00 +0.13 -0.18 0.00 0.00 +0.02 — 10:19
28 Jeffrey Viel L -0.14 0.00 +0.17 -0.31 0.00 0.00 0.00 — 10:08
3 Ian Moore D -0.28 0.00 0.00 -0.28 0.00 0.00 0.00 — 8:16
41 Nathan Gaucher C -0.43 0.00 0.00 -0.43 0.00 -0.02 +0.02 — 7:51
25 Ryan Poehling C -0.48 0.00 +0.26 -0.79 0.00 0.00 +0.05 — 15:04
33 Ville Husso G -1.64 0.00 — — 0.00 — — -1.64 58:28

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.