Skip to content
Surf Wiki
Save to docs
general

From Surf Wiki (app.surf) — the open knowledge base

2023–24 WHL season


2023–24 WHL season
Western Hockey League
Ice hockey
.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}
Regular seasonSeptember 22, 2023 – March 24, 2024
Playoffs March 28, 2024 – May 15, 2024
22
KRCW-TV, KZJO, CBC, TSN, RDS
Saskatoon Blades (5)
Jagger Firkus (Moose Jaw Warriors)
Jagger Firkus (Moose Jaw Warriors)
Denton Mateychuk (Warriors)
Moose Jaw Warriors (1)
Portland Winterhawks
2023–24 CHL seasons
Canadian Hockey League
Ice hockey
OHL September 2023–May 2024 QMJHL September 2023–May 2024 WHL September 2023–May 2024
60
CBC Television/Gem, TSN, RDS, Rogers TV, Shaw TV
Jagger Firkus (Moose Jaw Warriors) (WHL)
Jagger Firkus (Moose Jaw Warriors) (WHL)
Saginaw Spirit (OHL) (1st title)
London Knights (WHL)

The 2023–24 WHL season was the 58th season of the Western Hockey League (WHL). The regular season started on September 22, 2023, and ended on March 24, 2024, with the playoffs beginning on March 28 and ending on May 15. The Moose Jaw Warriors won their first Ed Chynoweth Cup in franchise history, defeating the Portland Winterhawks in the championship series, and earned a spot in the 2024 Memorial Cup. The Memorial Cup tournament was hosted by the Ontario Hockey League's Saginaw Spirit at Dow Event Center in Saginaw, Michigan.

Prior to the season, the 2022–23 finalist Winnipeg Ice were sold and relocated to Wenatchee, Washington, and became the Wenatchee Wild, making 2023–24 their inaugural season. Female referees made their league debut in February 2023, when Alex Clarke and Cianna Lieffers officiated. The Saskatoon Blades topped the regular season standings for the fifth time in franchise history, before losing the Eastern Conference final against Moose Jaw in a seven-game series that saw a league-record six overtime games.

As of March 24, 2024

.mw-parser-output .navbar-header{text-align:center;position:relative;white-space:nowrap}.mw-parser-output .navbar-header .navbar{position:absolute;right:0;top:0;margin:0 5px}Western Conference.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:"\a0 · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}viewtalkedit
Prince George Cougars xyB.C.68491513316187102
Portland Winterhawks xyU.S.68481541330204101
Everett Silvertips xU.S.6845182329620895
Wenatchee Wild xU.S.6834304024926872
Kelowna Rockets xB.C.6833304125025571
Vancouver Giants xB.C.6832324022224968
Victoria Royals xB.C.6829305422127267
Spokane Chiefs xU.S.6830325126828366
Seattle Thunderbirds eU.S.6827382119126057
Tri-City Americans eU.S.6823422120630649
Kamloops Blazers eB.C.6820423318029546
Eastern Conferenceviewtalkedit
Saskatoon Blades xyzEast68501323255163105
Swift Current Broncos xyCentral6840224228623986
Moose Jaw Warriors xEast6844210329722891
Medicine Hat Tigers xCentral6837236228023182
Red Deer Rebels xCentral6833263621321775
Brandon Wheat Kings xEast6833286122524473
Lethbridge Hurricanes xCentral6833287021421073
Prince Albert Raiders xEast6831322321421167
Calgary Hitmen eCentral6828318125525065
Edmonton Oil Kings eCentral6827373122730158
Regina Pats eEast6822404220830050

x – team has clinched playoff spot y – team has clinched division z – team has clinched best regular season record

e – team is eliminated from playoff contention

Players are listed by points, then goals.

Note: GP = Games played; G = Goals; A = Assists; Pts. = Points; PIM = Penalty minutes

PlayerTeamGPGAPtsPIM
Jagger FirkusMoose Jaw Warriors63616512630
Zac FunkPrince George Cougars68675612363
Riley HeidtPrince George Cougars66378011742
Berkly CattonSpokane Chiefs68546211641
Andrew CristallKelowna Rockets62407111146
Conner RouletteSpokane Chiefs68456310840
Gabe KlassenPortland Winterhawks67357110628
Terik ParascakPrince George Cougars68436210541
James StefanPortland Winterhawks67505110151
Trevor WongSaskatoon Blades68158610139

These are the goaltenders that lead the league in GAA that played at least 420 minutes.

Note: GP = Games played; Mins = Minutes played; W = Wins; L = Losses; OTL = Overtime losses; SOL = Shootout losses; SO = Shutouts; GAA = Goals against average; Sv% = Save percentage

No scoringFirst period19:40 - pp - Egor Sidorov (1)
Aiden Oiring (1) - 8:41 10:53 - Easton Kovacs (1) - 10:53 Ryder Ritchie (1) - pp - 14:19Second period0:59 - Alexander Suzdalev (1)
Niall Crocker (1) - pp - 8:13Third period16:45 - Egor Sidorov (2)
Max Hildebrand (41 saves / 44 shots)Goalie statsAustin Elliott (16 saves / 20 shots)
No scoringFirst period2:02 - John Babcock (1)
No scoringSecond period3:15 - pp - Egor Sidorov (3)
Niall Crocker (2) - pp - 19:14Third period4:16 - pp - Easton Armstrong (1) 14:24 - pp - Tyler Parr (1)
Max Hildebrand (26 saves / 30 shots)Goalie statsEvan Gardner (31 saves / 32 shots)
5:56 - Easton Armstrong (2) - 5:56 Easton Armstrong (3) - 9:03First periodNo scoring
Trevor Wong (1) - 17:13Second period2:51 - Krzysztof Macias (1) 11:32 - pp - Ryder Ritchie (2)
No scoringThird period14:22 - Aiden Oiring (2)
Easton Armstrong (4) - pp - 0:23First overtime periodNo scoring
Evan Gardner (18 saves / 21 shots)Goalie statsMax Hildebrand (31 saves / 35 shots)
Easton Armstrong (5) - pp - 19:58First periodNo scoring
Misha Volotovskii (1) - 3:00 Tanner Molendyk (1) - 6:03Second periodNo scoring
Egor Sidorov (4) - en - 17:59Third period4:02 - pp - Ryder Ritchie (3)
Evan Gardner (15 saves / 16 shots)Goalie statsMax Hildebrand(32 saves / 35 shots)
Niall Crocker (3) - 14:13First period3:24 - Brandon Lisowsky (1) 5:57 - Ben Saunderson (1) 7:10 - Alexander Suzdalev (2) 12:36 - Fraser Minten (1)
No scoringSecond periodNo scoring
Harrison Lodewyk (1) - 15:06Third period16:00 - en - Trevor Wong (2) 17:49 - sh - en - Charlie Wright (1)
Max Hildebrand (35 saves / 39 shots)Goalie statsEvan Gardner (8 saves/9 shots) Austin Elliott (15 shots / 16 saves)
Column 1Column 2
Saskatoon wins series 4–1
No scoringFirst period8:25 - Caleb Wyrostok (1) 18:26 - pp - Conor Geekie (1)
No scoringSecond periodNo scoring
No scoringThird period6:01 - Clarke Caswell (1)
Harrison Meneghin (30 saves / 33 shots)Goalie statsReid Dyck (33 saves / 33 shots)
Leo Braillard (1) - 3:22First periodNo scoring
Sean Tschigerl (1) - 17:21Second period14:24 - pp - Josh Filmon (1)
Hayden Pakkala (1) - 17:50Third period2:38 - Ryan McCleary (1) 5:30 - pp - Connor Hvidston (1) 17:46 - en - Conor Geekie (2)
Harrison Meneghin (37 saves / 40 shots)Goalie statsReid Dyck (29 saves / 32 saves)
Luke Mistelbacher (1) - 0:37 Luke Mistelbacher (2) - pp - 6:40First period17:45 - Dylan Sydor (1)
Josh Filmon (2) - pp - 1:38 Luke Mistelbacher (3) - pp - 8:05 Conor Geekie (3) - pp - 15:18Second period1:03 - sh - Sean Tschigerl (2)
No scoringThird period7:43 - pp - Brayden Edwards (1)
Reid Dyck (28 saves / 31 shots)Goalie statsHarrison Meneghin (11 saves / 15 shots) Brady Smith (13 saves / 14 shots)
Josh Filmon (3) - 19:20First period1:27 - Trae Wilke (1) 8:58 - Carter Dereniwsky (1) 15:15 - Brayden Edwards (2)
Clarke Caswell (2) - pp - 13:12 Luke Mistelbacher (4) - 14:57Second period3:27 - Hayden Pakkala (2)
Grayson Burzynski (1) - 11:23Third periodNo scoring
Conor Geekie (4) - 0:37Second overtime periodNo scoring
Reid Dyck (37 saves / 41 shots)Goalie statsHarrison Meneghin (40 saves / 45 shots)
Column 1Column 2
Swift Current wins series 4–0
No scoringFirst period3:05 - Martin Ryšavý (1) 4:42 - Brayden Schuurman (1) 6:15 - Jagger Firkus (1)
Roger McQueen (1) - 2:49 Jayden Wiens (1) - 19:00Second period3:57 - Owen Berge (1) 6:10 - Martin Ryšavý (2)
Caleb Hadland (1) - 3:25 Jayden Wiens (2) - 13:36Third period7:27 - Matthew Savoie (1) 17:35 - en - Brayden Schuurman (2)
Carson Bjarnason (17 saves / 22 shots) Ethan Eskit (20 saves / 21 shots)Goalie statsJackson Unger (33 saves / 37 shots)
12:17 - Dominik Petr (1) - 12:17 Roger McQueen (2) - 12:23First period8:43 - Brayden Yager (1) 16:18 - sh - Atley Calvert (1)
Rylen Roersma (1) - sh - 7:00 Roger McQueen (3) - 14:31Second period18:03 - Matthew Savoie (2) 18:26 - Pavel McKenzie (1)
No scoringThird periodNo scoring
No scoringFirst overtime period2:15 - Lynden Lakovic (1)
Carson Bjarnason (34 saves / 39 shots)Goalie statsJackson Unger (30 saves / 34 shots)
Owen Berge (2) - 9:29 Brayden Yager (2) - 10:37 Matthew Savoie (3) - pp - 11:50First period8:33 - Matteo Michels (1)
Matthew Savoie (4) - 10:33Second periodNo scoring
Connor Schmidt (1) - 7:17 Denton Mateychuk (1) - pp - 8:59Third period1:44 - Roger McQueen (4) 17:20 - pp - Brett Hyland (1) 18:05 - Jayden Wiens (3)
Jackson Unger (35 saves / 39 shots)Goalie statsCarson Bjarnason (35 saves / 41 shots)
Rilen Kovacevic (1) - 3:00 Atley Calvert (2) - 4:27 Lynden Lakovic (2) - 9:33 Denton Mateychuk (2) - 18:40First period4:06 - Carter Klippenstein (1)
Matthew Savoie (5) - 7:50Second period18:08 - Rylen Roersma (2)
Jagger Firkus (2) - en - 19:42Third periodNo scoring
Jackson Unger (35 saves / 37 shots)Goalie statsCarson Bjarnason (17 shots / 22 saves) Ethan Eskit (20 saves / 20 shots)
Column 1Column 2
Moose Jaw wins series 4–0
No scoringFirst period6:17 - Oasiz Wiesblatt (1) 7:17 - Andrew Basha (1) 19:30 - Gavin McKenna (1)
Kai Uchacz (1) - 7:58 Carson Latimer (1) - pp - 14:08Second period2:04 - Josh Van Mulligen (1)
Mats Lindgren (1) - 7:29 Ollie Josephson (1) - 14:10Third periodNo scoring
Kalan Lind (1) - 1:15Second overtime periodNo scoring
Chase Wutzke (38 shots / 42 saves)Goalie statsEthan McCallum (29 saves / 34 shots)
No scoringFirst period0:21 - Gavin McKenna (2)
No scoringSecond period9:22 - Reid Andresen (1) 15:28 - pp - Cayden Lindstrom (1)
Ollie Josephson (2) - 6:32Third periodNo scoring
Chase Wutzke (23 saves / 26 shots)Goalie statsZach Zahara (30 saves / 31 shots)
Hayden Harsanyi (1) - 9:48First period19:59 - sh - Carson Latimer (2)
Oasiz Wiesblatt (2) - 6:12Second period6:59 - pp - Carson Latimer (3) 15:10 - Hunter Mayo (1)
Andrew Basha (1) - 19:25Third periodNo scoring
No scoringFirst overtime period6:31 - pp - Samuel Drancak (1)
Zach Zahara (32 saves / 36 shots)Goalie statsChase Wutzke (35 saves / 38 shots)
Tyler MacKenzie (1) - 11:42First period8:30 - sh - Jhett Larson (1)
Hunter St. Martin (1) - 7:37Second period6:54 - Carson Birnie (1)
No scoringThird period19:58 - pp - Kalan Lind (2)
Ethan McCallum (31 shots / 34 saves)Goalie statsChase Wutzke (33 saves / 35 saves)
Carson Latimer (4) - 2:56 Dwayne Jean Jr. (1) - 10:52First periodNo scoring
Frantisek Formanek (1) - 15:48Second periodNo scoring
Kai Uchacz (2) - pp - 4:37 Talon Brigley (1) - 5:06Third period10:57 - Andrew Basha (3) 15:47 - Nate Corbet (1)
Chase Wutzke (36 shots / 38 saves)Goalie statsZach Zahara (7 shots / 9 saves) Ethan McCallum (13 shots / 16 saves)
Column 1Column 2
Red Deer wins series 4–1
Conner Roulette (1) - 3:09First period3:48 - Ondřej Becher (1) 15:31 - pp - Terik Parascak (1) 16:38 - Keaton Dowhaniuk (1)
No scoringSecond period14:30 - Terik Parascak (2) 19:00 - pp - Terik Parascak (3)
No scoringThird period3:47 - pp - Borya Valis (1)
Damson Cowan (45 saves / 51 saves)Goalie statsJoshua Ravensbergen (24 saves / 25 shots)
No scoringFirst period9:31 - Keaton Dowhaniuk (2)
No scoringSecond period2:22 - Oren Shtrom (1) 8:35 - pp - Ondřej Becher (2) 14:24 - Aiden Foster (1) 15:25 - Carlin Dezainde (1) 15:37 - Viliam Kmec (1)
Owen Martin (1) - 0:58 Hayden Paupanekis (1) - pp - 8:34 Layton Feist (1) - 14:18 Layton Feist (2) - 18:50Third period19:26 - en - Terik Parascak (4)
Dawson Cowan (10 saves / 16 shots) Cooper Michaluk (11 saves / 11 shots)Goalie statsJoshua Ravensbergen (26 saves / 30 shots)
Zac Funk (1) - pp - 17:30First period12:30 - Hayden Paupanekis (1)
Borya Valis (2) - 5:40 Hudson Thornton (1) - pp - 13:06Second periodNo scoring
Zac Funk (2) - 5:59Third period6:29 - Ty Cheveldayoff (1)
Joshua Ravensbergen (28 saves / 30 shots)Goalie statsCooper Michaluk (29 saves / 33 shots)
Viliam Kmec (3) - 10:14First periodNo scoring
Koehn Ziemmer (1) - 9:35 Zac Funk (3) - pp - 11:27Second period1:36 - Conner Roulette (2) 13:10 - Conner Roulette (3)
No scoringThird periodNo scoring
Ty Young (30 saves / 32 shots)Goalie statsDawson Cowan (28 shots / 31 saves)
Column 1Column 2
Prince George wins series 4–0
Tyson Laventure (1) - 9:45First period8:31 - Luca Cagnoni (1)
Tanner Scott (1) - 18:03Second periodNo scoring
Nate Misskey (1) - pp - 19:36Third period5:00 - Carter Sotheran (1) 10:18 - Gabe Klassen (1) 13:55 - pp - Luca Cagnoni (2)
Braden Holt (30 saves / 34 shots)Goalie statsJan Špunar (22 saves / 25 shots)
No scoringFirst period4:37 - pp - James Stefan (1) 11:25 - Luca Cagnoni (3) 19:09 - James Stefan (2)
Dawson Pasternak (1) - pp 1:34Second period13:59 - pp - Josh Davies (1)
No scoringThird period1:03 - Nate Danielson (1)
Braden Holt (28 saves / 33 shots)Goalie statsJan Špunar (19 saves / 20 shots)
James Stefan (3) - 15:36 James Stefan (4) - 16:49First period6:03 Teydon Trembecky (1)
Josh Mori (1) - 16:49 James Stefan (5) 18:05Second period1:36 - Justin Kipkie (1) 3:22 - Tanner Scott (2)
Josh Davies (2) - pp - 9:54 Gabe Klassen (2) - 12:57Third period0:28 - Casper Evensen Haugen (1) 19:14 - Tyson Laventure (2)
Jan Špunar (30 saves / 35 shots)Goalie statsBraden Holt (26 saves / 32 shots)
Josh Zakreski (1) - 3:24 Josh Zakreski (2) - 7:31First period17:02 - pp - Cole Reschny (1)
Josh Davies (3) - 16:35Second periodNo scoring
Kyle Chyzowski (1) - 2:32Third periodNo scoring
Jan Špunar (20 saves / 21 shots)Goalie statsBraden Holt (41 shots / 45 saves)
Column 1Column 2
Portland wins series 4–0
Cameron Schmidt (1) - 0:43 Kyren Gronick (1) - pp - 13:32 Cameron Schmidt (2) - pp - 18:03 Ty Halaburda (1) - pp - 18:17First period13:47 - Ben Hemmerling (1) 17:28 - sh - Ben Hemmerling (2)
No scoringSecond period4:41 - pp - Kaden Hammell (1)
Logen Hammett (1) - en - 19:11 Samuel Honzek (1) - en - 19:25Third period19:40 - Niko Tsakumis (1)
Brett Mirwald (38 saves / 42 shots)Goalie statsTyler Palmer (5 saves / 9 shots) Ethan Chadwick (12 saves / 12 shots)
No scoringFirst period9:31 - Austin Roest (1)
London Hoilett (1) - 7:20Second period3:43 - Austin Roest (2)
No scoringThird periodNo scoring
Brett Mirwald (53 saves / 55 shots)Goalie statsTyler Palmer (20 saves / 21 shots)
Parker Berge (1) - pp - 8:50First periodNo scoring
Julius Miettinen (1) - pp - 8:49Second period5:12 - Logen Hammett (2)
Dominik Rymon (1) - 12:14Third periodNo scoring
Tyler Palmer (30 saves / 31 shots)Goalie statsBrett Mirwald (32 saves / 35 saves)
Kaden Hammell (1) - pp - 19:06First periodNo scoring
Jesse Heslop (1) - 18:59Second period16:38 - sh - Samuel Honzek (2)
Austin Roest (3) - 0:36 Parker Berge (2) - pp - 9:16Third periodNo scoring
Tyler Palmer (24 saves / 25 shots)Goalie statsBrett Mirwald (53 saves / 57 shots)
No scoringFirst period15:46 - pp - Parker Berge (3)
No scoringSecond period1:10 - pp - Ben Hemmerling (4) 16:14 - Cade Zaplitny (1)
No scoringThird period0:39 - Dominik Rymon (2) 4:36 - Julius Miettinen (2)
Brett Mirwald 43 saves / 48 shots)Goalie statsTyler Palmer (25 saves / 25 shots)
Column 1Column 2
Everett wins series 4–1
Tij Iginla (1) - 1:07 Max Graham (1) - pp - 11:42 Gabriel Szturc (1) - 17:03 Tij Iginla (2) - 17:15First period12:57 - pp - Briley Wood (1)
Tij Iginla (3) - pp - 6:18 19:03 - Marek Ročák (1) - 19:03Second period0:20 - Evan Friesen (1) 13:48 - pp - Briley Wood (2) 16:39 - pp - Karter Prosofsky (1) 17:04 - pp - Graham Sward (1) 19:49 - Briley Wood (3)
No scoringThird period7:06 - Briley Wood (4) 19:58 - en - Kenta Isogai (1)
Jari Kykkanen (29 saves / 36 shots)Goalie statsDaniel Hauser (29 saves / 35 shots)
Andrew Cristall (1) - 1:10 Trae Johnson (1) - 12:34First periodNo scoring
No scoringSecond period11:14 - Sam Ward (1)
Luke Schelter (1) - en - 17:29Third periodNo scoring
Jari Kykkanen (21 saves / 22 shots)Goalie statsDaniel Hauser (24 saves / 26 shots)
Briley Wood (5) - pp - 5:55First period17:21 - Tij Iginla (4) 18:36 - Marek Ročák (2)
No scoringSecond period18:43 - Caden Price (1)
No scoringThird period8:07 - Tij Iginla (5) Luke Schelter (2) - 16:10
Daniel Hauser (19 saves / 23 shots)Goalie statsJari Kykkanen (31 shots / 32 saves)
No scoringFirst period9:08 - pp - Max Graham (2) 14:30 - Tij Iginla (6)
Kenta Isogai (2) - 3:29Second periodNo scoring
No scoringThird period8:58 - Gabriel Szturc (2)
Daniel Hauser (30 saves / 33 shots)Goalie statsJari Kykkanen (34 saves / 35 shots)
Michael Cicek (1) - pp - 11:59First period0:44 - Kenta Isogai (3) 13:41 - sh - Kenta Isogai (4)
No scoringSecond period17:38 - pp - Briley Wood (6)
Gabriel Szturc (3) - pp - 9:47 Gabriel Szturc (4) - pp - 17:30 Tij Iginla (7) - pp - 19:13Third period11:01 - pp - Evan Friesen (2)
No scoringFirst overtime period0:54 - Steven Arp (1)
Jari Kykkanen (26 saves / 31 shots)Goalie statsDaniel Hauser (27 saves / 31 shots)
No scoringFirst period8:54 - Andrew Cristall (2)
Maddix McCagherty (1) - 13:42Second period9:30 - Tij Iginla (8)
Evan Friesen (3) - 17:52Third period5:34 - Andrew Cristall (3) 16:04 - en - Max Graham (3)
Daniel Hauser (29 saves / 32 shots)Goalie statsJari Kykkanen (34 saves / 36 shots)
Column 1Column 2
Kelowna wins series 4–2
No scoringFirst period8:32 - Fraser Minten (2)
Carson Birnie (2) - 5:29Second period8:59 - Vaughn Watterodt (1) 13:02 - pp - Fraser Minten (3)
No scoringThird period19:11 - en - Brandon Lisowsky (2)
Chase Wutzke (20 saves / 23 shots)Goalie statsEvan Gardner (16 saves / 17 shots)
No scoringFirst periodNo scoring
No scoringSecond period11:10 - Fraser Minten (4)
Kalan Lind (3) - pp - 4:10Third periodNo scoring
No scoringFirst overtime period17:01 - Ben Saunderson (2)
Chase Wutzke (47 saves / 49 shots)Goalie statsEvan Gardner (24 saves / 25 shots)
Charlie Wright (2) - 2:36 Rowan Calvert (1) - 7:31 Egor Sidorov (5) - 7:51First period2:50 - Carson Latimer (5) 11:36 - sh - Carson Birnie (3)
Trevor Wong (3) - 2:57 Egor Sidorov (6) - 8:15 Egor Sidorov (7) - 18:35Second period2:16 - Quentin Bourne (1) 15:02 - Kalan Lind (4)
Brandon Lisowsky (3) - pp - 6:27 Lukas Hansen (1) - en - 18:40Third period11:58 - sh - Talon Brigley (2)
Evan Gardner (16 saves / 20 shots) Austin Elliott (16 saves / 17 shots)Goalie statsTaylor Tabashniuk (31 saves / 38 shots)
Egor Sidorov (8) - 3:12 Rowan Calvert (2) - sh - 6:11 Egor Sidorov (9) - 16:48 Brandon Lisowsky (4) - 18:48First periodNo scoring
Egor Sidorov (10) - 2:15 Fraser Minten (5) - 13:03Second periodNo scoring
Alexander Suzdalev (3) - 4:52Third periodNo scoring
Evan Gardner (26 saves / 26 shots)Goalie statsTaylor Tabashniuk (24 saves / 31 shots)
Column 1Column 2
Saskatoon wins series 4–0
No scoringFirst period14:49 - Brady Birnie (1) 15:27 - Josh Filmon (4)
Brayden Yager (3) - pp - 18:32 Jagger Firkus (3) - 19:48Second period8:25 - pp - Josh Filmon (5) 12:57 - Brady Birnie (2)
No scoringThird period4:50 - Connor Hvidston (2) 7:18 - Mathew Ward (1) 10:56 - Ty Coupland (1)
Jackson Unger (18 saves / 24 shots) Dimitri Fortin (7 saves / 8 shots)Goalie statsReid Dyck (33 saves / 35 shots)
Brayden Yager (4) - sh - 17:41First period11:25 - Josh Filmon (6)
Brayden Yager (5) - pp - 1:56 Denton Mateychuk (3) - 2:35 Jagger Firkus (4) - 4:36 Martin Ryšavý (3) - 10:47 Kalem Parker (1) - 12:40Second periodNo scoring
No scoringThird period14:28 - sh - Caleb Wyrostok (2)
Jackson Unger (25 saves / 27 shots)Goalie statsReid Dyck (18 saves / 25 shots) Joey Rocha (14 saves / 14 shots)
Ty Coupland (2) - 5:33First period12:16 - pp - Atley Calvert (3) 12:35 - Lynden Lakovic (3) 13:37 - Denton Mateychuk (4)
Owen Pickering (1) - 1:26 Brady Birnie (3) - 3:01Second period19:12 - Denton Mateychuk (5)
No scoringThird period19:20 - en - Matthew Savoie (6)
Reid Dyck (29 saves / 33 shots)Goalie statsJackson Unger (25 saves / 28 shots)
Conor Geekie (5) - 8:17First period17:36 - Ethan Hughes (1)
Caleb Wyrostok (3) - 2:04Second period12:22 - Jagger Firkus (5)
No scoringThird period5:05 - Brayden Yager (7) 9:56 - Rilen Kovacevic (2) 16:02 - en - Jagger Firkus (6)
Reid Dyck (30 saves / 34 shots)Goalie statsJackson Unger (36 saves / 38 shots)
Jagger Firkus (7) - 6:10 Jagger Firkus (8) - pp - 12:08First period5:32 - Josh Filmon (7)
Jagger Firkus (9) - pp - 5:54Second periodNo scoring
Matthew Savoie (7) - en - 19:09Third period13:27 - pp - Conor Geekie (6)
Jackson Unger (34 saves / 36 shots)Goalie statsReid Dyck (35 saves / 38 shots)
Column 1Column 2
Moose Jaw wins series 4–1
No scoringFirst period18:34 - Ephram McNutt (1)
No scoringSecond period3:24 - sh - Terik Parascak (5)
No scoringThird period1:34 - Keaton Dowhaniuk (3) 4:02 - Borya Valis (3)
Jari Kykkanen (29 saves / 33 shots)Goalie statsJoshua Ravensbergen (21 saves / 21 shots)
No scoringFirst period1:49 - Riley Heidt (1) 3:58 - sh - Viliam Kmec (3)
No scoringSecond period11:15 - Zac Funk (4)
No scoringThird period0:46 - Borya Valis (4) 14:39 - Oren Shtrom (2)
Jari Kykkanen (39 saves / 44 shots)Goalie statsJoshua Ravensbergen (16 saves / 16 shots)
Hudson Thornton (2) - pp - 4:19First periodNo scoring
Ondřej Becher (3) - pp - 13:04Second period5:13 - Ethan Neutens (1) 6:04 - Michael Cicek (2)
Borya Valis (5) - 10:25Third period14:08 - Gabriel Szturc (5)
Matteo Danis (1) - 1:22First overtime periodNo scoring
Joshua Ravensbergen (32 saves / 35 shots)Goalie statsJari Kykkanen (29 saves / 33 shots)
No scoringFirst periodNo scoring
No scoringSecond period15:14 - Max Graham (4) 19:12 - Gabriel Szturc (6)
Hudson Thornton (3) - 16:37Third periodNo scoring
Ty Young (27 saves / 29 shots)Goalie statsJari Kykkanen (26 saves / 27 shots)
No scoringFirst period7:55 - pp - Zac Funk (5)
Andrew Cristall (4) - 4:03 Tij Iginla (9) - 4:18Second period9:10 - Jett Lajoie (1) 10:28 - Zac Funk (6) 13:43 - Riley Heidt (2) 17:44 - Riley Heidt (3) 19:28 - pp - Zac Funk (7)
Gabriel Szturc (7) - 2:51Third periodNo scoring
Jari Kykkanen (33 saves / 39 shots)Goalie statsJoshua Ravensbergen (28 saves / 31 shots)
Column 1Column 2
Prince George wins series 4–1
Tarin Smith (1) - 12:46First period2:38 - pp - Tyson Jugnauth (1) 11:50 - Tyson Yaremko (1) 12:23 - Josh Davies (4)
Parker Berge (4) - pp - 7:20Second period3:12 - sh - Tyson Jugnauth (2) 5:53 - pp - Kyle Chyzowski (2) 9:18 - pp - Kyle Chyzowski (3)
No scoringThird period8:48 - Nate Danielson (2) 9:11 - Jack O'Brien (1)
Tyler Palmer (23 shots / 29 saves) Ethan Chadwick (16 saves / 18 shots)Goalie statsJan Špunar (21 saves / 23 shots)
13:18 - pp - Beau Courtney (1)First period7:25 - Marek Alscher (1) 12:32 - Kyle Chyzowski (4) 14:58 - pp - Kyle Chyzowski (5) 19:39 - Tyson Jugnauth (3)
No scoringSecond period13:42 - pp - Nate Danielson (3)
No scoringThird period5:35 - Carter Sotheran (2)
Tyler Palmer (37 saves / 43 shots)Goalie statsJan Špunar (32 saves / 33 shots)
No scoringFirst period14:30 - Kaden Hammell (3) 15:31 - pp - Beau Courtney (2)
Carter Sotheran (3) - pp - 3:14 Gabe Klassen (3) - 13:40Second period0:18 - Ben Hemmerling (4)
Kyle Chyzowski (6) - pp - 0:42Third periodNo scoring
Carter Sotheran (4) - 15:55First overtime periodNo scoring
Jan Špunar (44 saves / 47 shots)Goalie statsTyler Palmer (46 shots / 50 shots)
No scoringFirst periodNo scoring
James Stefan (6) - 5:00 Tyson Jugnauth (4) - 11:28 Ryder Thompson (1) - 15:07Second periodNo scoring
Jack O'Brien (2) - 7:58 Kyle Chyzowski (7) - pp - 15:08Third periodNo scoring
Jan Špunar (27 saves / 27 shots)Goalie statsTyler Palmer (35 saves / 40 shots)
Column 1Column 2
Portland wins series 4–0
No scoringFirst period3:05 - Charlie Wright (3)
Brayden Schuurman (3) - 2:13 Atley Calvert (4) - 8:04Second period1:59 - Egor Sidorov (11)
Matthew Savoie (8) - 15:08Third period18:33 - Egor Sidorov (12)
Brayden Yager (8) - 12:34First overtime periodNo scoring
Jackson Unger (28 saves / 31 shots)Goalie statsEvan Gardner (22 saves / 26 shots)
Atley Calvert (5) - 12:33 Kalem Parker (2) - 17:20First periodNo scoring
No scoringSecond period11:00 - pp - Tanner Molendyk (2) 17:29 - Brandon Lisowsky (5)
No scoringThird periodNo scoring
No scoringFirst overtime period13:06 - Fraser Minten (6)
Jackson Unger (34 saves / 37 shots)Goalie statsEvan Gardner (25 saves / 27 shots)
Grayden Siepmann (1) - 10:50First periodNo scoring
No scoringSecond period3:43 - pp - Atley Calvert (6)
No scoringThird period7:14 - Martin Ryšavý (4) 18:47 - en - Denton Mateychuk (6)
Evan Gardner (29 saves / 31 shots)Goalie statsJackson Unger (31 saves / 32 shots)
Brandon Lisowsky (6) - 0:14 Trevor Wong (4) - 1:07 Alexander Suzdalev (4) - 8:32 Tanner Molendyk (3) - 17:52First period12:06 - Brayden Yager (9) 16:54 - Jagger Firkus (10)
No scoringSecond period1:04 - Brayden Yager (10) 9:57 - Rilen Kovacevic (3)
No scoringThird periodNo scoring
Egor Sidorov (13) - 3:29First overtime periodNo scoring
Evan Gardner (33 saves / 37 shots)Goalie statsJackson Unger (19 saves / 24 shots)
No scoringFirst period2:56 - Fraser Minten (7) 10:56 - Egor Sidorov (14)
No scoringSecond period5:06 - pp - Charlie Wright (4) 14:23 - Brandon Lisowsky (7)
Lucas Brenton (1) - 0:49 Jagger Firkus (11) - pp - 4:41 Denton Mateychuk (7) - 7:38 Denton Mateychuk (8) - 13:18Third periodNo scoring
No scoringFirst overtime period18:15 - Fraser Minten (8)
Jackson Unger (13 saves / 17 shots) Dimitri Fortin (24 saves / 25 shots)Goalie statsEvan Gardner (39 saves / 43 shots)
Egor Sidorov (15) - 3:45First period0:38 - Brayden Schuurman (4) 17:58 - Brayden Schuurman (5)
Rowan Calvert (3) - pp - 15:46Second periodNo scoring
Charlie Wright (5) - 3:00Third period10:56 - Rilen Kovacevic (4)
No scoringFirst overtime period2:57 - Lynden Lakovic (4)
Evan Gardner (31 saves / 35 shots)Goalie statsJackson Unger (30 saves / 33 shots)
Ethan Semeniuk (1) - 13:35First periodNo scoring
No scoringSecond period12:22 - Easton Armstrong (6)
Jagger Firkus (12) - 10:13Third period16:53 - Vaughn Watterodt (2)
Lynden Lakovic (5) - 0:36First overtime periodNo scoring
Jackson Unger (37 saves / 39 shots)Goalie statsEvan Gardner (22 saves / 25 shots)
Column 1Column 2
Moose Jaw wins series 4–3
No scoringFirst period1:43 - Terik Parascak (6)
No scoringSecond period8:19 - Bauer Dumanski (1) 14:02 - Hudson Thornton (4) 18:14 - Ondřej Becher (4)
No scoringThird period15:45 - pp - Koehn Ziemmer (2)
Jan Špunar (30 saves / 35 shots)Goalie statsJoshua Ravensbergen (33 saves / 33 shots)
No scoringFirst periodNo scoring
Kyle Chyzowski (8) - 11:07 Jack O'Brien (3) - 11:24Second period10:40 - pp - Zac Funk (8) 12:27 - Borya Valis (6)
James Stefan (7) - pp - 7:33 Diego Buttazzoni (1) - 14:56 Marcus Nguyen (1) - en - 17:56Third period19:53 - Oren Shtrom (3)
Jan Špunar (29 saves / 32 shots)Goalie statsJoshua Ravensbergen (33 saves / 37 shots)
No scoringFirst period1:13 - Marcus Nguyen (2) 7:10 - Marcus Nguyen (3) 9:40 - Marek Alscher (2)
No scoringSecond periodNo scoring
Borya Valis (7) - pp - 15:56Third period1:47 - pp - Marcus Nguyen (4)
Joshua Ravensbergen (7 saves / 10 shots) Ty Young (19 saves / 20 shots)Goalie statsJan Špunar (30 saves / 31 shots)
No scoringFirst period9:20 - pp - Gabe Klassen (4) 15:44 - Diego Buttazzoni (2)
Hudson Thornton (5) - pp - 12:47Second period16:48 - Marcus Nguyen (5)
Hudson Thornton (6) - pp - 12:32Third period5:38 - Marcus Nguyen (6) 14:53 - Nate Danielson (4)
Ty Young (34 saves / 39 shots)Goalie statsJan Špunar (26 saves / 28 shots)
9:43 - Koehn Ziemmer (3) 18:38 - Koehn Ziemmer (4)First periodGabe Klassen (5) - 7:03
11:47 - pp - Hunter Laing (1)Second periodNo scoring
3:22 - Ondřej Becher (5) 11:19 - ps - Borya Valis (8) 13:30 - Keaton Dowhaniuk (4)Third periodNo scoring
Joshua Ravensbergen (25 saves / 26 shots)Goalie statsJan Špunar (31 saves / 37 shots)
No scoringFirst periodNo scoring
No scoringSecond periodNate Danielson (5) - 19:00
No scoringThird periodBorya Valis (9) - 5:45
5:40 - Josh Davies (5)Second overtime periodNo scoring
Jan Špunar (48 saves / 49 shots)Goalie statsJoshua Ravensbergen (36 saves / 38 shots)
Column 1Column 2
Portland wins series 4–2
No scoringFirst periodNo scoring
Atley Calvert (7) - ps - 1:17 Denton Mateychuk (9) - 5:42Second period9:00 - Diego Buttazzoni (3)
Matthew Savoie (9) - 16:58Third period4:14 - Gabe Klassen (6)
Jackson Unger (31 saves / 33 shots)Goalie statsJan Špunar (34 saves / 37 shots)
Atley Calvert (8) - 5:48First periodNo scoring
Pavel McKenzie (2) - 9:12 Brayden Yager (11) - 18:00Second period19:03 - Nate Danielson (6)
Jagger Firkus (13) - 0:15 Jagger Firkus (14) - 5:35Third periodNo scoring
Jackson Unger (37 saves / 38 shots)Goalie statsJan Špunar (22 saves / 27 shots)
Tyson Yaremko (2) - 6:41 Nate Danielson (7) - sh - 8:34First period4:22 - Lucas Brenton (2)
No scoringSecond period3:37 - pp - Denton Mateychuk 17:30 - pp - Denton Mateychuk (11)
Marcus Nguyen (7) - 3:56Third periodNo scoring
No scoringFirst overtime period2:20 - Brayden Schuurman (6)
Jan Špunar (32 saves / 36 shots)Goalie statsJackson Unger (30 saves / 33 shots)
No scoringFirst period8:11 - pp - Martin Ryšavý (5)
Kyle Chyzowski (9) - pp - 14:31 Marcus Nguyen (8) - 18:34Second period15:37 - Matthew Savoie (10)
No scoringThird period14:07 - Brayden Schuurman (7) 17:33 - en - Martin Ryšavý (6)
Jan Špunar (22 saves / 25 shots)Goalie statsJackson Unger (24 saves / 26 shots)
Column 1Column 2
Moose Jaw wins series 4–0

Note: GP = Games played; G = Goals; A = Assists; Pts = Points; PIM = Penalty minutes

PlayerTeamGPGAPtsPIM
Jagger FirkusMoose Jaw Warriors2014183215
Denton MateychukMoose Jaw Warriors201119302
Brayden YagerMoose Jaw Warriors2011162712
Matthew SavoieMoose Jaw Warriors1910142410
Nate DanielsonPortland Winterhawks187172416
Egor SidorovSaskatoon Blades161582312
Atley CalvertMoose Jaw Warriors20812208
Trevor WongSaskatoon Blades16416202
Ondřej BecherPrince George Cougars155141914
Riley HeidtPrince George Cougars153161918

Note: GP = Games played; Mins = Minutes played; W = Wins; L = Losses; GA = Goals Allowed; SO = Shutouts; SV% = Save percentage; GAA = Goals against average

PlayerTeamGPMinsWLGASOSv%GAA
Joshua RavensbergenPrince George Cougars1269493233.9311.99
Evan GardnerSaskatoon Blades15901104351.9102.33
Chase WutzkeRed Deer Rebels746143190.9242.48
Ty YoungPrince George Cougars422912100.9172.62
Jan ŠpunarPortland Winterhawks181120126491.9142.63

Gavin McKenna was awarded the Jim Piggott Memorial Trophy as the league's rookie of the year

Column 1Column 2Column 3
Scotty Munro Memorial TrophyRegular season championsSaskatoon Blades
Four Broncos Memorial TrophyPlayer of the YearJagger Firkus, Moose Jaw Warriors
Bob Clarke TrophyTop ScorerJagger Firkus, Moose Jaw Warriors
Bill Hunter Memorial TrophyTop DefencemanDenton Mateychuk, Moose Jaw Warriors
Jim Piggott Memorial TrophyRookie of the YearGavin McKenna, Medicine Hat Tigers
Del Wilson TrophyTop GoaltenderBrett Mirwald, Vancouver Giants
WHL Plus-Minus AwardTop Plus-Minus RatingZac Funk, Prince George Cougars
Brad Hornung TrophyMost Sportsmanlike PlayerBrayden Yager, Moose Jaw Warriors
Daryl K. (Doc) Seaman TrophyScholastic player of the YearNoah Chadwick, Lethbridge Hurricanes
Jim Donlevy Memorial TrophyScholastic team of the YearRed Deer Rebels
Dunc McCallum Memorial TrophyCoach of the YearMark Lamb, Prince George Cougars
Lloyd Saunders Memorial TrophyExecutive of the YearMark Lamb, Prince George Cougars
Allen Paradice Memorial TrophyTop OfficialJeff Ingram
St. Clair Group TrophyMarketing/Public Relations AwardEdmonton Oil Kings
Doug Wickenheiser Memorial TrophyHumanitarian of the YearTy Hurley, Kelowna Rockets
WHL Playoff MVPWHL Finals Most Valuable PlayerDenton Mateychuk, Moose Jaw Warriors
Professional Hockey AchievementAcademic RecipientAlumni Achievement AwardsConnor Ingram
First TeamPos.Second Team
Harrison MeneghinLethbridge HurricanesReid DyckSwift Current Broncos
Carter YakemchukCalgary HitmenNoah ChadwickLethbridge Hurricanes
Owen PickeringSwift Current BroncosMarc LajoieEdmonton Oil Kings
Conor GeekieSwift Current BroncosOliver TulkCalgary Hitmen
Gavin McKennaMedicine Hat TigersOazis WiesblattMedicine Hat Tigers
Kai UchaczRed Deer RebelsAndrew BashaMedicine Hat Tigers
First TeamPos.Second Team
Jackson UngerMoose Jaw WarriorsCarson BjarnasonBrandon Wheat Kings
Tanner MolendykSaskatoon BladesCharlie WrightSaskatoon Blades
Denton MateychukMoose Jaw WarriorsJustice ChristensenPrince Albert Raiders
Trevor WongSaskatoon BladesAtley CalvertMoose Jaw Warriors
Jagger FirkusMoose Jaw WarriorsSloan StanickPrince Albert Raiders
Egor SidorovSaskatoon BladesBrayden YagerMoose Jaw Warriors
First TeamPos.Second Team
Brett MirwaldVancouver GiantsJoshua RavensbergenPrince George Cougars
Hudson ThorntonPrince George CougarsCaden PriceKelowna Rockets
Justin KipkieVictoria RoyalsViliam KmecPrince George Cougars
Zac FunkPrince George CougarsTerik ParascakPrince George Cougars
Riley HeidtPrince George CougarsAndrew CristallKelowna Rockets
Tij IginlaKelowna RocketsJaden LipinskiKamloops Blazers
First TeamPos.Second Team
Jan SpunarPortland WinterhawksScott RatzlaffSeattle Thunderbirds
Graham SwardWenatchee WildJeremy HanzelSeattle Thunderbirds
Luca CagnoniPortland WinterhawksSawyer MynioSeattle Thunderbirds
Berkly CattonSpokane ChiefsJames StefanPortland Winterhawks
Gabe KlassenPortland WinterhawksBen HemmerlingEverett Silvertips
Kenta IsogaiWenatchee WildConner RouletteSpokane Chiefs
Home teamHome gamesAverage attendanceTotal attendance
Edmonton Oil Kings347,403251,728
Everett Silvertips346,069206,358
Spokane Chiefs346,044205,500
Saskatoon Blades345,165175,642
Portland Winterhawks344,855165,098
Seattle Thunderbirds344,653158,228
Calgary Hitmen344,529153,994
Kamloops Blazers344,400149,617
Kelowna Rockets344,355148,081
Red Deer Rebels344,277145,439
Tri-City Americans343,998135,935
Victoria Royals343,824130,018
Lethbridge Hurricanes343,729126,786
Vancouver Giants343,672124,877
Prince George Cougars343,519119,655
Medicine Hat Tigers343,304112,346
Regina Pats343,219109,447
Moose Jaw Warriors343,149107,092
Wenatchee Wild343,032103,120
Brandon Wheat Kings342,81895,814
Prince Albert Raiders342,38581,116
Swift Current Broncos342,16973,775
League7484,1073,072,600
Home teamHome gamesAverage attendanceTotal attendance
Saskatoon Blades99,33283,988
Portland Winterhawks95,97453,772
Prince George Cougars85,89447,152
Medicine Hat Tigers34,65313,960
Everett Silvertips54,64923,246
Moose Jaw Warriors104,40844,083
Red Deer Rebels44,30817,233
Kelowna Rockets53,82919,149
Spokane Chiefs23,5207,040
Lethbridge Hurricanes23,5167,033
Victoria Royals23,1126,224
Prince Albert Raiders22,9285,856
Swift Current Broncos42,89011,560
Vancouver Giants22,8775,754
Wenatchee Wild32,3447,033
Brandon Wheat Kings22,0564,113
League724,961357,196
  • List of WHL seasons

  • 2023–24 OHL season

  • 2023–24 QMJHL season

  • Official website of the Western Hockey League

  • Official website of the Canadian Hockey League

Want to explore this topic further?

Ask Mako anything about 2023–24 WHL season — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report