Hockey Terminal
Be a GM

← All players

Photo of Oliver Kapanen

Oliver Kapanen

#91 · Centre · Montréal Canadiens

Born Jul 29, 2003 in Timra, SWE (age 23) · 6'2", 194 lb · Shoots right · Drafted 64th overall in 2021 by MTL (round 2)

Compare with a similar player

The forwards closest to him in points in 2025-26. Pick one to see the two side by side, or choose someone else.

Matt Savoie EDM · 37 P in 82 GP Vasily Podkolzin EDM · 37 P in 82 GP Corey Perry TBL · 37 P in 72 GP Joel Farabee CGY · 38 P in 82 GP Will Cuylle NYR · 38 P in 82 GP

Career

Regular season games only. Pick a season to see its game log below. Cap hit is what he counted against the salary cap that season, where it is known.

01020302024-25: 2 points224-252025-26: 37 points3725-26

Points by season. The darker bar is the season shown below.

Season Team GP G A P +/- PIM Shots Hits P/GP Cap hit
2024-25 MTL 18 0 2 2 -5 2 16 1 0.11 $925K
2025-26 MTL 82 22 15 37 4 22 131 32 0.45 $925K
2 seasons Career 100 22 17 39 -1 24 147 33 0.39

Playoffs

Playoff games only. Pick a season to see that year's bracket.

Season Team GP G A P +/- PIM Shots Hits P/GP
2024-25 MTL 3 0 1 1 0 0 1 2 0.33
2025-26 MTL 7 0 0 0 -2 2 4 1 0.00
2 seasons Playoffs 10 0 1 1 -2 2 5 3 0.10

2025-26 season totals

GP G A P +/- PIM Shots Hits P/GP Shooting % Avg TOI
82 22 15 37 4 22 131 32 0.45 16.8 14:28

Contract

$925KCap hitends in 2027, then RFA
$25KCap dollars per point37 points in 82 games
$475KCap dollars per goal above replacement1.9 goals above replacement
$2.4MWorth at the going ratewhat teams paid for a season like his
+$1.5MValueworth minus cap hit; below zero is overpaid

His cap hit for the whole season, set against what he did in the regular season. Lower is better value. In a season still being played the cost per point starts high and falls as the games add up. Value is coloured by where it ranks among the 715 ranked skaters whose contract is known. How value is worked out.

The contract

Signed by the Montreal Canadiens on Jun 15, 2024, as an entry-level contract: 3 years and $4.263M, beginning in 2024-25. It runs through 2026-27, with 1 season left after this one, and he is then a restricted free agent.

Season Cap hit Base salary Signing bonus Performance bonuses Paid in all Clause
2024-25 $925K $833K $93K $925K
2025-26 $925K $833K $93K $638K $925K
2026-27 $943K $833K $93K $850K $925K

Each season of the contract, with this one marked. The cap hit is the same every year; what he is paid is not. The pay is as written when the contract was recorded in October 2024, so a later change, such as the rise in the lowest salary for 2026-27, is not shown.

Contracts he has signed

Signed Signed by Kind Seasons Years In all Cap hit
Jun 15, 2024 Montreal Canadiens Entry-level 2024-25 to 2026-27 3 $4.263M $925K

Every contract on record for him, newest first, with the team that signed him to it and the day it was signed. The one covering 2025-26 is marked. An extension is signed while the contract before it is still running, often a year ahead. A row with no team or date is a contract known only by its cap hit, most often one signed since October 2024.

2025-26 analytics

Regular season Playoffs

Rating

+1.9Goals above replacement380th of 715 skaters, 270th of 476 forwards
+0.3Wins above replacementgoals above replacement divided by six
-1.3Goals above averagethe five parts below added up

Each number is coloured by where it ranks among the 476 ranked forwards: green is in the top fifth and red the bottom fifth, with paler shades in between and amber for the middle. Hover over a tile for its percentile.

Even-strength offence+2.9 78th percentileEven-strength defence-3.7 7th percentilePower play-1.0 7th percentilePenalty kill+0.9 96th percentilePenalties-0.4 20th percentile

The goals he added to his team's goal difference, compared with a spare-part player given the same ice time. Each part is measured against the league, so zero is an average skater, and the rank beside it is among forwards. A full season is about two-thirds the player and one-third chance.

-2-10122024-252025-262026-27Goals above replacementGoals above replacement, by season

On the ice

What happened at five-on-five while he was on the ice. What these numbers mean

43.4Corsi for %777 attempts for, 1015 against
-6.5CF% relative to teamagainst the team without him
47.0Expected goals for %44.0 expected for, 49.5 against
-3.6xGF% relative to teamagainst the team without him
44.4Fenwick for %unblocked attempts
51.5Goals for %51 for, 48 against
104.3PDO14.1% shooting + 90.2% saves
192Attempts takenhis own shot attempts

Each share is coloured by where it ranks among the 615 skaters who played enough to be ranked: green is in the top fifth and red the bottom fifth, with paler shades in between and amber for the middle. Hover over a tile for its percentile. PDO and attempts taken are left plain, since neither is good or bad on its own.

Who he played with

Forward lineGPTimeCF%xGF%Goals
Oliver Kapanen · Juraj Slafkovský · Ivan Demidov39363:5945.950.425-18
Alex Newhook · Oliver Kapanen · Ivan Demidov35284:1343.349.420-14
Alexandre Texier · Oliver Kapanen · Ivan Demidov857:0854.561.71-1
Kirby Dach · Zachary Bolduc · Oliver Kapanen617:1522.622.60-1

The lines he spent the most time in at five-on-five, with the team's share of the shot attempts and expected goals, and the goals for and against, while they were out. The two shares are coloured as above, against the league's lines that played a fair amount together. Hover over one for its percentile.

Chances and finishing

Expected goals adds up how likely each of his shots was to go in, judged by where it came from, what kind of shot it was and whether it was a rebound. All situations, leaving out shots at an empty net.

21Goalsnot counting empty-netters
19.7Expected goalsfrom 198 unblocked attempts
+1.3Goals above expectedgoals minus expected goals
Chances created 1.00 expected goals per 60 minutes79th
Shot quality 10.0% chance per attempt89th
Finishing +1.3 goals above expected72ndOne season of finishing is mostly luck.

Each bar shows the share of forwards he is ahead of, among the 444 who played 300 minutes or more this season.

05101520Game 20Game 40Game 60Game 80Goals 21Expected 19.7

His goals and his expected goals as the season went on. When the goals line pulls away above, he is scoring more than his chances were worth; below, less.

Where he shot from

Every attempt he took this season, in all situations, attacking the net on the right. Darker red means more attempts from that spot, and each dot is a goal. "Show every shot" switches to a dot for each attempt, bigger for a better chance. Click a goal for its details.

Game log

Date Opponent Result G A P +/- PIM Shots Hits TOI
Apr 14, 2026 @ PHI L 2-4 0 0 0 0 0 1 0 12:16
Apr 12, 2026 @ NYI W 4-1 0 0 0 -1 0 0 1 10:31
Apr 11, 2026 vs CBJ L 2-5 0 0 0 0 2 0 0 12:34
Apr 9, 2026 vs TBL W 2-1 0 0 0 0 0 1 1 13:03
Apr 7, 2026 vs FLA W 4-3 (SO) 0 0 0 1 0 1 1 11:26
Apr 5, 2026 vs NJD L 0-3 0 0 0 -1 0 2 1 13:22
Apr 4, 2026 @ NJD W 4-3 (SO) 0 0 0 -2 0 3 0 14:33
Apr 2, 2026 @ NYR W 3-2 0 0 0 0 0 0 2 11:54
Mar 31, 2026 @ TBL W 4-1 0 0 0 0 0 1 0 14:30
Mar 29, 2026 @ CAR W 3-1 0 0 0 0 0 1 0 15:41
Mar 28, 2026 @ NSH W 4-1 1 1 2 3 0 3 0 16:05
Mar 26, 2026 vs CBJ W 2-1 0 0 0 0 0 1 0 15:22
Mar 24, 2026 vs CAR W 5-2 1 0 1 1 0 2 0 11:04
Mar 21, 2026 vs NYI W 7-3 0 1 1 1 0 0 0 13:50
Mar 19, 2026 @ DET L 1-3 0 0 0 -1 0 0 0 09:33
Mar 17, 2026 vs BOS W 3-2 (OT) 0 0 0 -1 0 1 1 13:20
Mar 15, 2026 vs ANA L 3-4 0 0 0 0 0 2 0 14:39
Mar 14, 2026 vs SJS L 2-4 0 0 0 0 0 1 0 14:56
Mar 11, 2026 @ OTT W 3-2 0 0 0 0 0 0 0 13:34
Mar 10, 2026 vs TOR W 3-1 1 0 1 1 0 3 1 15:07
Mar 7, 2026 @ LAK W 4-3 0 0 0 0 0 2 1 18:34
Mar 6, 2026 @ ANA L 5-6 (SO) 0 0 0 -1 0 0 0 10:46
Mar 3, 2026 @ SJS L 5-7 1 0 1 0 2 3 0 09:55
Feb 28, 2026 vs WSH W 6-2 0 0 0 -1 0 0 0 11:41
Feb 26, 2026 vs NYI L 3-4 (OT) 0 0 0 0 0 1 2 12:09
Feb 4, 2026 @ WPG W 5-1 1 0 1 2 0 4 1 13:44
Feb 2, 2026 @ MIN L 3-4 (OT) 0 0 0 0 2 1 0 14:23
Jan 31, 2026 @ BUF W 4-2 1 0 1 1 0 2 1 17:28
Jan 29, 2026 vs COL W 7-3 0 2 2 3 0 0 0 14:24
Jan 27, 2026 vs VGK W 3-2 (OT) 0 0 0 -1 2 1 0 15:16
Jan 24, 2026 @ BOS L 3-4 0 0 0 0 0 1 0 14:43
Jan 22, 2026 vs BUF L 2-4 0 0 0 -1 0 2 0 15:54
Jan 20, 2026 vs MIN W 4-3 0 0 0 0 0 1 0 13:24
Jan 17, 2026 @ OTT W 6-5 (OT) 0 0 0 -3 0 0 0 14:04
Jan 15, 2026 @ BUF L 3-5 0 0 0 0 2 3 0 16:02
Jan 13, 2026 @ WSH L 2-3 (OT) 0 0 0 -1 0 2 1 23:10
Jan 12, 2026 vs VAN W 6-3 1 0 1 2 0 5 0 16:21
Jan 10, 2026 vs DET L 0-4 0 0 0 -1 2 2 2 18:32
Jan 8, 2026 vs FLA W 6-2 1 2 3 2 0 1 0 17:19
Jan 7, 2026 vs CGY W 4-1 1 0 1 0 0 3 0 14:52
Jan 4, 2026 @ DAL W 4-3 (OT) 1 0 1 0 0 3 0 17:24
Jan 3, 2026 @ STL L 0-2 0 0 0 0 0 0 0 15:48
Jan 1, 2026 @ CAR W 7-5 1 0 1 0 0 1 1 18:07
Dec 30, 2025 @ FLA W 3-2 (OT) 0 0 0 0 0 1 0 18:23
Dec 28, 2025 @ TBL L 4-5 (SO) 0 1 1 1 0 5 0 16:20
Dec 23, 2025 @ BOS W 6-2 0 0 0 1 0 2 0 17:01
Dec 21, 2025 @ PIT L 3-4 (SO) 1 1 2 2 0 7 0 14:44
Dec 20, 2025 vs PIT W 4-0 0 1 1 1 0 0 1 18:10
Dec 18, 2025 vs CHI W 4-1 0 0 0 0 0 3 0 15:34
Dec 16, 2025 vs PHI L 1-4 0 0 0 -3 0 1 0 16:20
Dec 14, 2025 vs EDM W 4-1 0 0 0 1 2 0 0 14:33
Dec 13, 2025 @ NYR L 4-5 (OT) 0 0 0 -1 0 3 0 15:12
Dec 11, 2025 @ PIT W 4-2 1 0 1 1 0 4 0 19:03
Dec 9, 2025 vs TBL L 1-6 1 0 1 -2 0 3 0 16:24
Dec 7, 2025 vs STL L 3-4 0 0 0 -1 0 1 0 16:07
Dec 6, 2025 @ TOR W 2-1 (SO) 0 0 0 -1 0 2 0 16:06
Dec 3, 2025 vs WPG W 3-2 (SO) 1 0 1 1 0 2 0 20:07
Dec 2, 2025 vs OTT L 2-5 0 0 0 0 0 4 2 16:29
Nov 29, 2025 @ COL L 2-7 0 1 1 0 2 2 0 16:32
Nov 28, 2025 @ VGK W 4-1 0 0 0 0 0 2 1 13:23
Nov 26, 2025 @ UTA W 4-3 0 1 1 0 2 0 2 13:38
Nov 22, 2025 vs TOR W 5-2 0 0 0 2 0 3 1 14:14
Nov 20, 2025 vs WSH L 4-8 0 0 0 -1 0 1 0 12:27
Nov 17, 2025 @ CBJ L 3-4 (SO) 1 0 1 1 0 1 0 17:30
Nov 15, 2025 vs BOS L 2-3 0 0 0 0 0 1 0 10:36
Nov 13, 2025 vs DAL L 0-7 0 0 0 -3 0 1 0 13:17
Nov 11, 2025 vs LAK L 1-5 0 0 0 0 0 1 0 12:10
Nov 8, 2025 vs UTA W 6-2 1 1 2 2 0 2 0 13:55
Nov 6, 2025 @ NJD L 3-4 (OT) 1 0 1 0 2 2 0 12:11
Nov 4, 2025 vs PHI L 4-5 (SO) 0 0 0 -1 0 0 0 13:16
Nov 1, 2025 vs OTT W 4-3 (OT) 0 0 0 1 0 1 0 15:31
Oct 28, 2025 @ SEA W 4-3 (OT) 0 0 0 -1 0 0 0 10:20
Oct 25, 2025 @ VAN W 4-3 0 1 1 0 0 3 0 11:59
Oct 23, 2025 @ EDM L 5-6 0 2 2 1 0 0 0 13:10
Oct 22, 2025 @ CGY W 2-1 (OT) 0 0 0 -1 2 3 2 13:33
Oct 20, 2025 vs BUF W 4-2 1 0 1 0 0 1 1 12:34
Oct 18, 2025 vs NYR L 3-4 0 0 0 -1 0 1 0 12:42
Oct 16, 2025 vs NSH W 3-2 (OT) 1 0 1 1 0 3 0 11:59
Oct 14, 2025 vs SEA W 5-4 (OT) 0 0 0 0 0 0 1 11:26
Oct 11, 2025 @ CHI W 3-2 0 0 0 0 0 1 0 10:40
Oct 9, 2025 @ DET W 5-1 1 0 1 1 0 1 1 14:40
Oct 8, 2025 @ TOR L 2-5 1 0 1 1 0 2 3 13:19