Hockey Terminal
Be a GM

← All players

Photo of Joel Hanley

Joel Hanley

#44 · Defence · Calgary Flames

Born Jun 8, 1991 in Keswick, Ontario, CAN (age 35) · 5'11", 186 lb · Shoots left

Compare with a similar player

The defencemen closest to him in points in 2020-21. Pick one to see the two side by side, or choose someone else.

Jan Rutta TBL · 8 P in 35 GP Brayden McNabb VGK · 8 P in 41 GP Jeremy Lauzon BOS · 8 P in 41 GP Ethan Bear EDM · 8 P in 43 GP Jake Gardiner CAR · 8 P in 26 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.

024682015-16: 6 points615-162016-17: 0 points016-172017-18: 0 points017-182018-19: 0 points018-192019-20: 2 points219-202020-21: 8 points820-212021-22: 6 points621-222022-23: 2 points222-232023-24: 5 points523-242024-25: 9 points924-252025-26: 7 points725-262026-27: 0 points026-27

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

Season Team GP G A P +/- PIM Shots Hits P/GP Cap hit
2015-16 MTL 10 0 6 6 0 0 10 6 0.60 $668K
2016-17 MTL 7 0 0 0 -3 4 5 8 0.00 $600K
2017-18 ARI 5 0 0 0 0 0 2 1 0.00 $725K
2018-19 DAL 16 0 0 0 0 2 9 16 0.00 $650K
2019-20 DAL 8 0 2 2 0 6 4 3 0.25 $700K
2020-21 DAL 35 0 8 8 6 2 27 40 0.23 $700K
2021-22 DAL 44 2 4 6 -13 4 18 60 0.14 $750K
2022-23 DAL 26 0 2 2 5 15 14 24 0.08 $750K
2023-24 DAL 32 0 3 3 3 23 12 36 0.09 $788K
2023-24 CGY 10 1 1 2 0 7 7 12 0.20
2024-25 CGY 53 2 7 9 12 21 42 55 0.17 $788K
2025-26 CGY 68 0 7 7 -5 44 43 42 0.10 $1.75M
2026-27 CGY 1 0 0 0 -2 0 0 1 0.00 $1.75M
12 seasons Career 315 5 40 45 3 128 193 304 0.14

Playoffs

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

Season Team GP G A P +/- PIM Shots Hits P/GP
2018-19 DAL 1 0 0 0 0 0 0 0 0.00
2019-20 DAL 12 1 1 2 3 4 6 10 0.17
2021-22 DAL 7 0 0 0 1 0 5 8 0.00
2022-23 DAL 13 0 1 1 5 4 5 14 0.08
4 seasons Playoffs 33 1 2 3 9 8 16 32 0.09

2020-21 season totals

GP G A P +/- PIM Shots Hits P/GP Shooting % Avg TOI
35 0 8 8 6 2 27 40 0.23 0.0 13:01

Contract

$700KCap hitends in 2021, then extended to 2023
$88KCap dollars per point8 points in 35 games
$249KCap dollars per goal above replacement2.8 goals above replacement
$3.5MWorth at the going ratewhat teams paid for a season like his
+$2.8MValueworth 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 633 ranked skaters whose contract is known. How value is worked out.

The contract

Signed by the Dallas Stars on Feb 20, 2019, as an extension of the contract he was on: 2 years and $1.4M, beginning in 2019-20. It runs through 2020-21, so this is its last season, and his extension takes over. His next contract is already signed: an extension with the Dallas Stars on Apr 14, 2021, 2 years and $1.5M at $750K a season, beginning in 2021-22.

Season Cap hit Base salary Signing bonus Performance bonuses Paid in all Clause
2019-20 $700K $700K $0 $700K
2020-21 $700K $700K $0 $700K

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
Jul 1, 2025 Calgary Flames New contract 2025-26 to 2026-27 2 $3.5M $1.75M
Jul 1, 2023 Dallas Stars New contract 2023-24 to 2024-25 2 $1.575M $788K
Apr 14, 2021 Dallas Stars Extension not begun 2021-22 to 2022-23 2 $1.5M $750K
Feb 20, 2019 Dallas Stars Extension 2019-20 to 2020-21 2 $1.4M $700K
Jul 1, 2018 Dallas Stars New contract 2018-19 to 2018-19 1 $650K $650K
Jul 1, 2017 Arizona Coyotes New contract 2017-18 to 2017-18 1 $725K $725K
Jun 22, 2016 Montreal Canadiens Extension 2016-17 to 2016-17 1 $600K $600K
Jul 1, 2015 Montreal Canadiens Entry-level 2015-16 to 2015-16 1 $925K $668K

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 2020-21 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.

2020-21 analytics

Rating

+2.8Goals above replacement243rd of 643 skaters, 73rd of 213 defencemen
+0.5Wins 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 213 ranked defencemen: 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-0.6 50th percentileEven-strength defence+1.2 75th percentilePower play0.0 68th percentilePenalty kill+0.2 70th percentilePenalties+0.5 93rd 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 defencemen. A full season is about two-thirds the player and one-third chance. Provisional: under 40 games it is more chance than player. Before 2023-24 the NHL timed events less exactly, and differently from rink to rink, so expected goals for this season are rougher than for recent ones.

-1012342015-162017-182019-202021-222023-242025-26Goals 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

57.2Corsi for %401 attempts for, 300 against
+2.4CF% relative to teamagainst the team without him
59.0Expected goals for %17.7 expected for, 12.3 against
+2.7xGF% relative to teamagainst the team without him
58.0Fenwick for %unblocked attempts
56.3Goals for %18 for, 14 against
99.0PDO8.0% shooting + 91.0% saves
51Attempts takenhis own shot attempts

Each share is coloured by where it ranks among the 579 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

Defence pairGPTimeCF%xGF%Goals
Andrej Sekera · Joel Hanley25201:2754.650.311-7
Mark Pysyk · Joel Hanley975:5563.069.72-2
John Klingberg · Joel Hanley2863:4057.162.11-3
Joel Hanley · Miro Heiskanen2128:2146.441.10-1

The pairs 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 pairs 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. Before 2023-24 the NHL timed events less exactly, and differently from rink to rink, so expected goals for this season are rougher than for recent ones.

0Goalsnot counting empty-netters
0.9Expected goalsfrom 39 unblocked attempts
-0.9Goals above expectedgoals minus expected goals
Chances created 0.12 expected goals per 60 minutes16th
Shot quality 2.3% chance per attempt13th
Finishing -0.9 goals above expected29thOne season of finishing is mostly luck.

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

00.20.40.60.81Game 20Expected 0.9Goals 0

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. There is a dot for each attempt, bigger for a better chance. "Show as heat map" shades the ice by where the attempts came from. Click a goal for its details.

Game log

Date Opponent Result G A P +/- PIM Shots Hits TOI
May 10, 2021 @ CHI W 5-4 (OT) 0 1 1 1 0 1 2 13:31
May 9, 2021 @ CHI L 2-4 0 0 0 0 0 0 0 15:29
May 7, 2021 @ TBL W 5-2 0 0 0 -1 2 1 0 11:34
May 5, 2021 @ TBL L 2-6 0 1 1 1 0 2 1 18:36
Apr 29, 2021 @ TBL L 0-3 0 0 0 0 0 0 2 12:54
Apr 27, 2021 vs CAR L 1-5 0 0 0 0 0 0 3 14:46
Apr 26, 2021 vs CAR W 4-3 (OT) 0 0 0 0 0 0 0 15:22
Apr 24, 2021 @ DET W 2-1 (OT) 0 0 0 -1 0 1 3 12:55
Apr 22, 2021 @ DET L 3-7 0 0 0 -1 0 1 0 15:29
Apr 20, 2021 vs DET W 5-2 0 1 1 3 0 0 2 17:29
Apr 15, 2021 vs CBJ W 4-1 0 1 1 1 0 1 2 16:27
Apr 13, 2021 vs FLA L 2-3 (OT) 0 0 0 0 0 0 2 12:47
Apr 11, 2021 @ NSH L 2-3 (SO) 0 0 0 -2 0 0 1 14:52
Apr 1, 2021 @ NSH W 4-1 0 0 0 0 0 0 0 04:15
Mar 30, 2021 @ NSH L 2-3 (OT) 0 0 0 0 0 1 5 14:22
Mar 28, 2021 vs FLA L 1-4 0 0 0 0 0 0 1 12:48
Mar 27, 2021 vs FLA L 3-4 (OT) 0 2 2 2 0 2 1 12:01
Mar 25, 2021 vs TBL W 4-3 0 0 0 0 0 1 0 15:02
Mar 23, 2021 vs TBL L 1-2 0 0 0 0 0 0 1 11:18
Mar 21, 2021 vs NSH L 3-4 (SO) 0 0 0 0 0 0 0 14:26
Mar 20, 2021 @ DET W 3-0 0 0 0 1 0 1 1 13:04
Mar 18, 2021 @ DET L 2-3 0 1 1 1 0 1 2 11:50
Mar 16, 2021 vs TBL L 3-4 (SO) 0 0 0 0 0 0 1 11:05
Mar 14, 2021 @ CBJ W 2-1 (SO) 0 0 0 0 0 1 2 15:10
Mar 13, 2021 @ CBJ L 3-4 (OT) 0 0 0 1 0 1 1 14:43
Mar 7, 2021 vs NSH L 3-4 (SO) 0 0 0 -1 0 0 0 08:37
Mar 6, 2021 vs CBJ W 5-0 0 1 1 3 0 0 1 13:11
Mar 4, 2021 vs CBJ L 2-3 0 0 0 -2 0 0 0 10:33
Mar 2, 2021 vs TBL L 0-2 0 0 0 0 0 4 2 10:43
Feb 9, 2021 vs CHI L 1-2 (OT) 0 0 0 0 0 2 0 08:21
Feb 7, 2021 vs CHI L 1-2 (OT) 0 0 0 0 0 1 0 14:22
Feb 4, 2021 @ CBJ L 3-4 0 0 0 -1 0 1 0 12:27
Feb 2, 2021 @ CBJ W 6-3 0 0 0 1 0 3 1 13:14
Jan 31, 2021 @ CAR L 3-4 (SO) 0 0 0 0 0 1 2 10:26
Jan 26, 2021 vs DET W 2-1 (OT) 0 0 0 0 0 0 1 11:28