| Date | Team | Transaction | |
|---|---|---|---|
| Jul 1, 2025 | Calgary Flames | Signed 2 years @ $1.750M AAV starting in 2025-26 | |
| Jul 1, 2023 | Dallas Stars | Signed 2 years @ $787K AAV starting in 2023-24 | |
| Apr 14, 2021 | Dallas Stars | Signed 2 years @ $750K AAV starting in 2021-22 | |
| Feb 20, 2019 | Dallas Stars | Signed 2 years @ $700K AAV starting in 2019-20 | |
| Jul 1, 2018 | Dallas Stars | Signed 1 year @ $650K AAV starting in 2018-19 | |
| Jul 1, 2017 | Arizona Coyotes | Signed 1 year @ $725K AAV starting in 2017-18 | |
| Jun 22, 2016 | Montreal Canadiens | Signed 1 year @ $600K AAV starting in 2016-17 | |
| Jul 1, 2015 | Montreal Canadiens | Signed to an entry level contract. |
URL: https://thestanleycap.com/cdn/player_cards/20252026/joel-hanley-8477810.png
URL: https://thestanleycap.com/cdn/player_cards/20242025/joel-hanley-8477810.png
URL: https://thestanleycap.com/cdn/player_cards/20232024/joel-hanley-8477810.png
Player cards present an infographic of a players performance using a series of Player Archetypes developed for Puckalytics.com and TheStanleyCap.com. The boxes in the rink image show the archetype ratings for the season specified in the card while the graphs to the right show the five-year trends for those archetypes.
Except for Faceoffs, the values shown are the players z-score (standard deviation from the mean) for the specific metric used to calculate the archetype values. When calculating z-scores forwards were compared to forwards and defensemen were compared to defensemen. Positive values indicate the player is above average and shaded in blue, while negative values indicate the player is below average and shaded in punk. The five year trend charts show a range of -4.0 to 4.0.
The value shown for Faceoffs is the faceoff winning percentage rather than their z-score with winning percentages below 50 in pink shades and above 50 in blue shades.
All archetypes are 5v5 except 5v4 TOI, 4v5 TOI, Skating (even strength) and Faceoffs (all situations). Archetypes use regular season data only.
You are free to use include player cards in written articles, share on social media, or on other public websites under the following conditions:
Note: Player cards will update daily throughout the season so if you want to include snapshot then you must download the image.
If you have any questions, send an e-mail to the e-mail address at the top of this page.
Read Introducing Player Archetypes on HockeyAnalysis.com for more details on archetype calculations.
| Season | Team(s) | GP | TOI | Producer | Playmaker | Shooter | Sniper | Rebound | Rush | Skating | Defend |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2015-16 | MTL | 10 | 11.38 | 24.23 | -0.82 | -1.05 | - | -0.89 | - | -3.95 | |
| 2016-17 | MTL | 7 | -1.60 | -1.51 | -0.77 | -0.77 | - | -0.96 | - | -7.70 | |
| 2017-18 | ARI | 5 | -1.70 | -1.43 | -1.02 | -6.57 | - | -1.06 | - | -3.49 | |
| 2018-19 | DAL | 16 | -1.71 | -1.66 | -0.96 | -2.36 | - | -1.03 | - | 1.49 | |
| 2019-20 | DAL | 8 | 2.05 | 5.06 | -0.85 | -0.94 | - | -0.88 | - | -5.92 | |
| 2020-21 | DAL | 35 | 1.11 | 2.45 | -0.83 | -1.11 | - | -0.81 | - | -0.09 | |
| 2021-22 | DAL | 44 | -0.44 | -0.84 | 0.33 | 2.57 | - | -1.07 | -0.31 | -3.25 | |
| 2022-23 | DAL | 26 | -1.25 | -0.90 | -0.95 | -1.38 | - | 3.02 | -0.86 | 0.99 | |
| 2023-24 | CGY, DAL | 42 | -1.03 | -0.83 | -0.81 | 0.04 | - | 1.77 | -0.99 | 1.40 | |
| 2024-25 | CGY | 53 | -1.21 | -0.93 | -0.87 | -0.78 | - | -0.68 | -0.64 | 0.23 | |
| 2025-26 | CGY | 68 | -1.08 | -0.84 | -0.95 | -1.16 | - | -0.70 | -0.65 | 0.01 |
| Season | Team(s) | GP | TOI | 5v5 TOI | 5v4 TOI | 4v5 TOI | Possession | Drive | Suppress | Faceoffs |
|---|---|---|---|---|---|---|---|---|---|---|
| 2015-16 | MTL | 10 | -1.38 | -0.58 | -1.21 | 0.83 | -0.20 | -1.38 | - | |
| 2016-17 | MTL | 7 | -3.19 | -1.64 | -2.31 | -2.79 | -5.08 | -0.97 | - | |
| 2017-18 | ARI | 5 | -2.79 | -1.49 | -2.23 | 4.07 | 3.41 | -3.09 | - | |
| 2018-19 | DAL | 16 | -2.03 | -1.55 | -1.77 | 3.63 | 0.94 | -4.10 | - | |
| 2019-20 | DAL | 8 | -2.06 | -1.75 | -2.12 | -1.03 | -2.18 | -0.68 | - | |
| 2020-21 | DAL | 35 | -2.07 | -1.64 | -1.71 | 1.36 | -0.32 | -1.73 | - | |
| 2021-22 | DAL | 44 | -2.74 | -1.53 | -1.20 | 0.04 | -1.47 | -1.95 | - | |
| 2022-23 | DAL | 26 | -2.32 | -1.40 | -2.15 | 0.49 | -1.47 | -2.33 | - | |
| 2023-24 | CGY, DAL | 42 | -1.70 | -1.44 | -1.63 | 0.84 | -0.83 | -2.04 | - | |
| 2024-25 | CGY | 53 | 0.08 | -1.41 | -0.34 | 0.59 | -0.53 | -1.50 | - | |
| 2025-26 | CGY | 68 | -1.57 | -1.49 | -0.86 | 1.73 | 0.05 | -2.93 | - |
Player archetypes are a look at a players strengths and weaknesses in his game when compared to other players around the leeague. Except for Faceoffs, the values shown are the players z-score (standard deviation from the mean) for the specific metric used to calculate the archetype values. When calculating z-scores forwards were compared to forwards and defensemen were compared to defensemen. Positive values indicate the player is above average and shaded in blue, while negative values indicate the player is below average and shaded in punk. The five year trend charts show a range of -4.0 to 4.0.
The value shown for Faceoffs is the faceoff winning percentage rather than their z-score with winning percentages below 50 in pink shades and above 50 in blue shades.
All archetypes are 5v5 except 5v4 TOI, 4v5 TOI and Faceoffs (all situations). Archetypes use regular season data only.
Read Introducing Player Archetypes on HockeyAnalysis.com for more details on archetype calculations.
| Season | Team(s) | GP | TOI | G/60 | A/60 | Pts/60 | xG/60 | GAE/60 | Sh% | xSh% | Sh%AE | %SA Rush | %SA Reb. |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2015-16 | MTL | 10 | 134:03 | 0.00 | 2.69 | 2.69 | 0.11 | -0.11 | 0.00 | 2.66 | -2.66 | 0.00 | 0.00 |
| 2016-17 | MTL | 7 | 70:20 | 0.00 | 0.00 | 0.00 | 0.08 | -0.08 | 0.00 | 1.81 | -1.81 | 0.00 | 0.00 |
| 2017-18 | ARI | 5 | 54:02 | 0.00 | 0.00 | 0.00 | 0.36 | -0.36 | 0.00 | 16.25 | -16.25 | 0.00 | 0.00 |
| 2018-19 | DAL | 16 | 203:01 | 0.00 | 0.00 | 0.00 | 0.14 | -0.14 | 0.00 | 5.30 | -5.30 | 0.00 | 0.00 |
| 2019-20 | DAL | 8 | 87:54 | 0.00 | 1.37 | 1.37 | 0.06 | -0.06 | 0.00 | 2.16 | -2.16 | 0.00 | 0.00 |
| 2020-21 | DAL | 35 | 435:36 | 0.00 | 1.10 | 1.10 | 0.10 | -0.10 | 0.00 | 2.82 | -2.82 | 0.00 | 2.56 |
| 2021-22 | DAL | 44 | 482:04 | 0.25 | 0.37 | 0.62 | 0.11 | 0.14 | 11.11 | 4.85 | 6.27 | 0.00 | 0.00 |
| 2022-23 | DAL | 26 | 297:41 | 0.00 | 0.40 | 0.40 | 0.10 | -0.10 | 0.00 | 3.59 | -3.59 | 4.35 | 0.00 |
| 2023-24 | DAL | 32 | 415:09 | 0.00 | 0.43 | 0.43 | 0.12 | -0.12 | 0.00 | 7.29 | -7.29 | 3.70 | 3.70 |
| 2023-24 | CGY | 10 | 127:32 | 0.47 | 0.47 | 0.94 | 0.06 | 0.41 | 16.67 | 2.00 | 14.67 | 0.00 | 12.50 |
| 2023-24 | CGY, DAL | 42 | 542:41 | 0.11 | 0.44 | 0.55 | 0.10 | 0.01 | 5.88 | 5.42 | 0.46 | 2.86 | 5.71 |
| 2024-25 | CGY | 53 | 875:02 | 0.07 | 0.41 | 0.48 | 0.12 | -0.05 | 2.56 | 4.40 | -1.83 | 0.00 | 5.33 |
| 2025-26 | CGY | 68 | 905:01 | 0.00 | 0.46 | 0.46 | 0.09 | -0.09 | 0.00 | 3.23 | -3.23 | 0.00 | 4.05 |
| Season | Team(s) | GP | TOI | SAF/60 | GF/60 | xGF/60 | SAA/60 | GA/60 | xGA/60 | GF% | xGF% | xGF Rel | xGA Rel | xGF% Rel |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2015-16 | MTL | 10 | 134:03 | 38.49 | 3.58 | 1.93 | 37.15 | 3.58 | 2.20 | 50.00 | 46.75 | -0.34 | 0.13 | -5.58 |
| 2016-17 | MTL | 7 | 70:20 | 31.56 | 0.85 | 1.86 | 31.56 | 3.41 | 1.68 | 20.00 | 52.54 | -0.61 | -0.14 | -5.00 |
| 2017-18 | ARI | 5 | 54:02 | 48.86 | 3.33 | 2.81 | 42.20 | 3.33 | 2.78 | 50.00 | 50.27 | 0.84 | -0.09 | 9.49 |
| 2018-19 | DAL | 16 | 203:01 | 40.19 | 1.48 | 2.64 | 31.92 | 1.48 | 1.64 | 50.00 | 61.58 | 0.32 | -0.90 | 13.91 |
| 2019-20 | DAL | 8 | 87:54 | 38.91 | 2.73 | 1.81 | 38.23 | 2.73 | 1.75 | 50.00 | 50.83 | -0.92 | -0.44 | -4.61 |
| 2020-21 | DAL | 35 | 435:36 | 41.18 | 2.48 | 2.33 | 29.89 | 1.93 | 1.73 | 56.25 | 57.45 | -0.08 | -0.14 | 1.09 |
| 2021-22 | DAL | 44 | 482:04 | 36.22 | 1.62 | 2.29 | 38.58 | 3.36 | 2.11 | 32.50 | 52.11 | -0.38 | -0.58 | 2.31 |
| 2022-23 | DAL | 26 | 297:41 | 36.68 | 2.42 | 2.30 | 33.06 | 1.61 | 1.85 | 60.00 | 55.49 | -0.54 | -0.77 | 3.42 |
| 2023-24 | DAL | 32 | 415:09 | 41.91 | 2.17 | 2.42 | 35.84 | 2.02 | 2.17 | 51.72 | 52.77 | -0.13 | -0.21 | 1.05 |
| 2023-24 | CGY | 10 | 127:32 | 39.05 | 2.35 | 1.87 | 35.28 | 2.35 | 1.47 | 50.00 | 56.01 | -0.59 | -1.23 | 8.26 |
| 2023-24 | CGY, DAL | 42 | 542:41 | 41.24 | 2.21 | 2.30 | 35.71 | 2.10 | 2.01 | 51.28 | 53.37 | -0.24 | -0.45 | 2.62 |
| 2024-25 | CGY | 53 | 875:02 | 41.90 | 2.33 | 2.17 | 36.00 | 1.85 | 1.99 | 55.74 | 52.19 | -0.13 | -0.49 | 4.06 |
| 2025-26 | CGY | 68 | 905:01 | 41.04 | 1.72 | 2.32 | 34.74 | 2.25 | 2.30 | 43.33 | 50.20 | -0.07 | -0.50 | 4.15 |
| Skating | Shooting | Zone Time | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | GP | Top Speed | Bursts>20/mi | Avg. Speed | ES Avg. Speed | Top Speed | Avg. Speed | %Long Range | %Mid Range | %High Danger | ES DZ% | ES NZ% | ES OZ% |
| This table is for Basic and Premium subscribers only. To view please login to and/or subscribe to one of our subscription plans. | |||||||||||||
| Percentile 0-25 | Percentile 25-50 | Percentile 50-75 | Percentile 75-100 |
| Season | Teammate | Team | TOI | GF/60 | GA/60 | GF% | xGF/60 | xGA/60 | xGF% | xGF Rel | xGA Rel | xGF% Rel |
|---|
| Type | Statistic | Definition |
|---|---|---|
| Individual | G/60 | Goals Against per 60 minutes. |
| Individual | A/60 | Assists per 60 minutes. |
| Individual | Pts/60 | Points per 60 minutes. |
| Individual | xG/60 | Expected Goals per 60 minutes. |
| Individual | GAE/60 | Goals Above Expected (G/60 - xG/60). |
| Individual | Sh% | Shooting Percentage. |
| Individual | xSh% | Expected Shooting Percentage. |
| Individual | Sh%AE | Shooting percentage above expected (Sh% - xSh%). |
| Individual | %SA Rush | Percentage of shot attempts determined to be on the rush. |
| Individual | %SA Reb. | Percentage of shot attempts determined to be from rebounds. |
| On Ice | SAF/60 | Shot Attempts For per 60 minutes. |
| On Ice | GF/60 | Goals For per 60 minutes. |
| On Ice | xGF/60 | Expected Goals For per 60 minutes. |
| On Ice | SAA/60 | Shot Attempts Against per 60 minutes (lower is better). |
| On Ice | GA/60 | Goals Against per 60 minutes (lower is better). |
| On Ice | xGA/60 | Expected Goals Against per 60 minutes (lower is better). |
| On Ice | GF% | Goals For Percentage = Goals For / (Goals For + Goals Against) |
| On Ice | xGF% | Expected Goals For Percentage = Expected Goals For / (Expected Goals For + Expected Goals Against) |
| On Ice | xGF Rel | xGF/60 when On Ice - xGF/60 when not On Ice. |
| On Ice | xGA Rel | xGA/60 when On Ice - xGA/60 when not On Ice (lower is better). |
| On Ice | xGF% Rel | xGF% when On Ice - xGF% when not On Ice. |
FN Report Cards: Joel Hanley was valuable veteran depth in 2025-26 at Flames Nation (Wed May 13, 2026)
Flames injury news: Joel Hanley out for remainder of season at Flames Nation (Sat Mar 28, 2026)
5 Flames trade candidates people aren’t talking about at Flames Nation (Fri Dec 5, 2025)
Quarter-season report cards: grading the Calgary Flames’ blueline at The Win Column (Mon Nov 17, 2025)
Examining how the Calgary Flames defence pairings have fared so far this season at The Win Column (Mon Oct 27, 2025)
The Flames’ best fights of 2024-25: Joel Hanley and Andrei Svechnikov fight because of a misunderstanding at Flames Nation (Fri Jul 18, 2025)
The Flames’ best fights of 2024-25: Martin Pospíšil sticks up for Joel Hanley at Flames Nation (Thu Jul 17, 2025)
Game Takes: Flames 3 Sharks 2 at Calgary Puck (Tue Apr 8, 2025)
The top ten most bizarre Calgary Flames moments in 2023-2024 at Calgary Hockey Now (Thu Jul 18, 2024)
Joel Hanley signed a $3,500,000 2-year contract with the Calgary Flames and General Manager Craig Conroy on July 1, 2025 with an AAV of $1,750,000. This contract will start in 2025-26 and end after the 2026-27 season. In the first season of the contract the cap hit was equivalent to 1.83% of the salary cap.
Joel Hanley signed a $1,575,000 2-year contract with the Dallas Stars and General Manager Jim Nill on July 1, 2023 with an AAV of $787,500. This contract will start in 2023-24 and end after the 2024-25 season. In the first season of the contract the cap hit was equivalent to 0.94% of the salary cap.
| Season | Age* | Clause | Cap Hit | AAV | Perf. Bonus | Sign. Bonus | Salary | Compensation | Minors Salary | Status | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2023-24 | 32 | $787,500 | $787,500 | - | - | $775,000 | $775,000 | $775,000 | UFA | ||
| 2024-25 | 33 | $787,500 | $787,500 | - | - | $800,000 | $800,000 | $800,000 | UFA | ||
| Total | - | - | $1,575,000 | $1,575,000 | $1,575,000 |
Joel Hanley signed a $1,500,000 2-year contract with the Dallas Stars and General Manager Jim Nill on April 14, 2021 with an AAV of $750,000. This contract will start in 2021-22 and end after the 2022-23 season. In the first season of the contract the cap hit was equivalent to 0.92% of the salary cap.
| Season | Age* | Clause | Cap Hit | AAV | Perf. Bonus | Sign. Bonus | Salary | Compensation | Minors Salary | Status | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2021-22 | 30 | $750,000 | $750,000 | - | - | $750,000 | $750,000 | - | UFA | ||
| 2022-23 | 31 | $750,000 | $750,000 | - | - | $750,000 | $750,000 | - | UFA | ||
| Total | - | - | $1,500,000 | $1,500,000 | $0 |
Joel Hanley signed a $1,400,000 2-year contract with the Dallas Stars and General Manager Jim Nill on February 20, 2019 with an AAV of $700,000. This contract will start in 2019-20 and end after the 2020-21 season. In the first season of the contract the cap hit was equivalent to 0.86% of the salary cap.
| Season | Age* | Clause | Cap Hit | AAV | Perf. Bonus | Sign. Bonus | Salary | Compensation | Minors Salary | Status | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2019-20 | 28 | $700,000 | $700,000 | - | - | $700,000 | $700,000 | $275,000 | UFA | ||
| 2020-21 | 29 | $700,000 | $700,000 | - | - | $700,000 | $700,000 | $300,000 | UFA | ||
| Total | - | - | $1,400,000 | $1,400,000 | $575,000 |
Joel Hanley signed a $650,000 1-year contract with the Dallas Stars and General Manager Jim Nill on July 1, 2018 with an AAV of $650,000. This contract will start in 2018-19 and end after the 2018-19 season. In the first season of the contract the cap hit was equivalent to 0.82% of the salary cap.
| Season | Age* | Clause | Cap Hit | AAV | Perf. Bonus | Sign. Bonus | Salary | Compensation | Minors Salary | Status | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2018-19 | 27 | $650,000 | $650,000 | - | - | $650,000 | $650,000 | $200,000 | UFA | ||
| Total | - | - | $650,000 | $650,000 | $200,000 |
Joel Hanley signed a $725,000 1-year contract with the Arizona Coyotes and General Manager John Chayka on July 1, 2017 with an AAV of $725,000. This contract will start in 2017-18 and end after the 2017-18 season. In the first season of the contract the cap hit was equivalent to 0.97% of the salary cap.
| Season | Age* | Clause | Cap Hit | AAV | Perf. Bonus | Sign. Bonus | Salary | Compensation | Minors Salary | Status | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2017-18 | 26 | $725,000 | $725,000 | - | - | $725,000 | $725,000 | $175,000 | RFA-arb | ||
| Total | - | - | $725,000 | $725,000 | $175,000 |
Joel Hanley signed a $600,000 1-year contract with the Montreal Canadiens and General Manager Marc Bergevin on June 22, 2016 with an AAV of $600,000. This contract will start in 2016-17 and end after the 2016-17 season. In the first season of the contract the cap hit was equivalent to 0.82% of the salary cap.
| Season | Age* | Clause | Cap Hit | AAV | Perf. Bonus | Sign. Bonus | Salary | Compensation | Minors Salary | Status | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2016-17 | 25 | $600,000 | $600,000 | - | - | $600,000 | $600,000 | $85,000 | RFA-arb | ||
| Total | - | - | $600,000 | $600,000 | $85,000 |
Joel Hanley signed a $667,500 1-year contract with the Montreal Canadiens and General Manager Marc Bergevin on July 1, 2015 with an AAV of $667,500. This contract will start in 2015-16 and end after the 2015-16 season. In the first season of the contract the cap hit was equivalent to 0.93% of the salary cap.
| Season | Age* | Clause | Cap Hit | AAV | Perf. Bonus | Sign. Bonus | Salary | Compensation | Minors Salary | Status | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2015-16 | 24 | $667,500 | $925,000 | $257,500 | $92,500 | $575,000 | $667,500 | $70,000 | ELC | ||
| Total | $257,500 | $92,500 | $575,000 | $667,500 | $70,000 |
| Regular Season | Playoffs | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | League | Team | GP | G | A | Pts | +/- | PIM | Shots | Sh% | TOI/G | GP | G | A | Pts | +/- | PIM | Shots | Sh% | TOI/G |
| 2006-07 | ETAMMHL | York Simcoe Express Mn Mdgt AAA | 33 | 4 | 14 | 18 | 46 | |||||||||||||
| 2007-08 | OPJHL | Newmarket Hurricanes | 2 | 0 | 0 | 0 | ||||||||||||||
| 2007-08 | COJCHL | Georgina Ice | 9 | 3 | 5 | 8 | 6 | |||||||||||||
| 2008-09 | OJHL | Newmarket Hurricanes | 50 | 14 | 24 | 38 | 61 | |||||||||||||
| 2008-09 | OJHL | Milton Menace | 9 | 3 | 1 | 4 | 22 | |||||||||||||
| 2009-10 | CCHL | Newmarket Hurricanes | 23 | 5 | 15 | 20 | +2 | 11 | ||||||||||||
| 2009-10 | OJHL | Milton Menace | 19 | 4 | 9 | 13 | +11 | 12 | ||||||||||||
| 2010-11 | NCAA | UMass (Amherst) | 28 | 3 | 15 | 18 | -5 | 24 | ||||||||||||
| 2011-12 | H-East | Massachusetts | 36 | 7 | 18 | 25 | 18 | |||||||||||||
| 2012-13 | H-East | Massachusetts | 33 | 5 | 11 | 16 | 46 | |||||||||||||
| 2013-14 | H-East | Massachusetts | 34 | 2 | 14 | 16 | 39 | |||||||||||||
| 2013-14 | AHL | Portland | 15 | 0 | 5 | 5 | -4 | 6 | 13 | 0.0 | ||||||||||
| 2014-15 | ECHL | Gwinnett | 3 | 1 | 0 | 1 | +2 | 6 | 1,670.0 | |||||||||||
| 2014-15 | AHL | Portland | 63 | 2 | 15 | 17 | +7 | 34 | 86 | 230.0 | 5 | 1 | 1 | +1 | 4 | 0.0 | ||||
| 2015-16 | AHL | St. John's | 64 | 5 | 8 | 13 | -11 | 25 | 73 | 680.0 | ||||||||||
| 2015-16 | NHL | Montréal Canadiens | 10 | 0 | 6 | 6 | 10 | 0.0 | 16:00 | |||||||||||
| 2016-17 | NHL | Montréal Canadiens | 7 | 0 | 0 | 0 | -3 | 4 | 5 | 0.0 | 10:09 | |||||||||
| 2016-17 | AHL | St. John's IceCaps | 65 | 2 | 20 | 22 | +11 | 34 | 4 | -1 | 2 | |||||||||
| 2017-18 | NHL | Arizona Coyotes | 5 | 0 | 0 | 0 | 2 | 0.0 | 11:08 | |||||||||||
| 2017-18 | AHL | Tucson Roadrunners | 52 | 2 | 18 | 20 | +30 | 31 | 9 | 4 | 4 | +2 | ||||||||
| 2018-19 | AHL | Texas Stars | 60 | 8 | 20 | 28 | +10 | 32 | ||||||||||||
| 2018-19 | NHL | Dallas Stars | 16 | 0 | 0 | 0 | 2 | 9 | 0.0 | 13:42 | 1 | 0.0 | 12:55 | |||||||
| 2019-20 | AHL | Texas Stars | 40 | 0 | 10 | 10 | +10 | 8 | ||||||||||||
| 2019-20 | NHL | Dallas Stars | 8 | 0 | 2 | 2 | 6 | 4 | 0.0 | 11:21 | 12 | 1 | 1 | 2 | +3 | 4 | 6 | 16.7 | 11:19 | |
| 2020-21 | NHL | Dallas Stars | 35 | 0 | 8 | 8 | +6 | 2 | 27 | 0.0 | 13:01 | |||||||||
| 2021-22 | NHL | Dallas Stars | 44 | 2 | 4 | 6 | -13 | 4 | 18 | 11.1 | 11:56 | 7 | +1 | 5 | 0.0 | 12:03 | ||||
| 2022-23 | NHL | Dallas Stars | 26 | 0 | 2 | 2 | +5 | 15 | 14 | 0.0 | 11:38 | 13 | 1 | 1 | +5 | 4 | 5 | 0.0 | 12:53 | |
| 2023-24 | NHL | Dallas Stars | 32 | 0 | 3 | 3 | +3 | 23 | 12 | 0.0 | 13:42 | |||||||||
| 2023-24 | NHL | Calgary Flames | 10 | 1 | 1 | 2 | 7 | 7 | 14.3 | 14:32 | ||||||||||
| 2024-25 | NHL | Calgary Flames | 53 | 2 | 7 | 9 | +12 | 21 | 42 | 4.8 | 18:35 | |||||||||
| 2025-26 | NHL | Calgary Flames | 68 | 0 | 7 | 7 | -5 | 44 | 43 | 0.0 | 14:40 | |||||||||
| NHL Career | 314 | 5 | 40 | 45 | +5 | 128 | 193 | 2.6 | 14:10 | 33 | 1 | 2 | 3 | +9 | 8 | 16 | 6.2 | 12:08 | ||