| Season | Team | GP | PTS | G | A | +/− | PIM | PPG | SHG | GWG |
|---|---|---|---|---|---|---|---|---|---|---|
| NSHL20 |
PHI
|
67 | 3 | 0 | 3 | +1 | 20 | 0 | 0 | 0 |
| NSHL18 |
CGY
|
80 | 14 | 3 | 11 | -3 | 30 | 1 | 0 | 1 |
| NSHL15 |
SEA
Total |
76 | 10 | 1 | 9 | 0 | 28 | 0 | 0 | 0 |
SEA
|
72 | 10 | 1 | 9 | +3 | 28 | 0 | 0 | 0 | |
QUE
|
3 | 0 | 0 | 0 | -1 | 0 | 0 | 0 | 0 | |
TOR
|
1 | 0 | 0 | 0 | -2 | 0 | 0 | 0 | 0 | |
| Pro Career | 223 | 27 | 4 | 23 | -2 | 78 | 1 | 0 | 1 | |
| Season | Team | GP | PTS | G | A | +/− | PIM | PPG | SHG | GWG |
|---|---|---|---|---|---|---|---|---|---|---|
| NSHL24 |
DET
|
1 | 0 | 0 | 0 | -1 | 0 | 0 | 0 | 0 |
| NSHL23 |
DET
|
75 | 19 | 4 | 15 | +8 | 8 | 1 | 0 | 0 |
| NSHL22 |
DET
|
1 | 3 | 3 | 0 | +2 | 0 | 2 | 0 | 0 |
| NSHL21 |
FLA
|
78 | 25 | 7 | 18 | +32 | 14 | 3 | 1 | 0 |
| NSHL19 |
TOR
Total |
78 | 26 | 5 | 21 | +9 | 15 | 3 | 0 | 1 |
TOR
|
41 | 17 | 3 | 14 | 0 | 11 | 2 | 0 | 1 | |
TOR
|
37 | 9 | 2 | 7 | +9 | 4 | 1 | 0 | 0 | |
| NSHL17 |
CGY
|
80 | 33 | 10 | 23 | -13 | 23 | 6 | 1 | 2 |
| NSHL16 |
SEA
|
76 | 8 | 0 | 8 | -26 | 38 | 0 | 0 | 0 |
| Farm Career | 389 | 114 | 29 | 85 | +11 | 98 | 15 | 2 | 3 | |
| Season | Team | GP | PTS | G | A | +/− | PIM | PPG | SHG | GWG |
|---|---|---|---|---|---|---|---|---|---|---|
| NSHL23 |
DET
|
19 | 6 | 1 | 5 | +2 | 0 | 0 | 0 | 0 |
| NSHL22 |
DET
|
1 | 0 | 0 | 0 | -1 | 0 | 0 | 0 | 0 |
| NSHL19 |
TOR
|
2 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
| Playoff Career | 22 | 7 | 1 | 6 | +1 | 0 | 0 | 0 | 0 | |
| Season | Team | CK | FG | DI | SK | ST | EN | DU | PH | FO | PA | SC | DF | PS | EX | LD | OV |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NSHL15 |
SEA
|
59 | 20 | 76 | 72 | 74 | 82 | 82 | 68 | 50 | 69 | 66 | 73 | 63 | 66 | 61 | 68 |
| NSHL16 |
SEA
|
59 | 20 | 76 | 72 | 76 | 82 | 82 | 68 | 50 | 69 | 66 | 73 | 63 | 66 | 61 | 68 |
| NSHL17 |
CGY
|
59 | 20 | 77 | 72 | 77 | 82 | 82 | 68 | 52 | 69 | 66 | 73 | 63 | 66 | 61 | 68 |
| NSHL18 |
CGY
|
59 | 20 | 79 | 72 | 79 | 82 | 83 | 70 | 52 | 71 | 67 | 73 | 65 | 67 | 62 | 65 |
| NSHL19 |
TOR
|
59 | 20 | 81 | 72 | 81 | 82 | 83 | 70 | 54 | 71 | 67 | 73 | 65 | 69 | 64 | 65 |
| NSHL20 |
PHI
|
58 | 22 | 83 | 71 | 83 | 84 | 85 | 72 | 53 | 73 | 66 | 73 | 64 | 70 | 66 | 64 |
| NSHL21 |
FLA
|
56 | 20 | 83 | 69 | 99 | 82 | 83 | 70 | 51 | 71 | 64 | 71 | 62 | 71 | 66 | 70 |
| NSHL22 |
DET
|
54 | 47 | 84 | 66 | 96 | 83 | 84 | 71 | 50 | 72 | 65 | 72 | 62 | 82 | 83 | 71 |
| NSHL23 |
DET
|
54 | 47 | 84 | 66 | 96 | 83 | 84 | 71 | 50 | 72 | 65 | 72 | 62 | 82 | 83 | 71 |
| NSHL24 |
DET
|
54 | 47 | 82 | 63 | 97 | 80 | 81 | 70 | 50 | 73 | 64 | 73 | 60 | 83 | 83 | 71 |
| Career Avg | 58 | 29 | 81 | 70 | 86 | 83 | 83 | 70 | 52 | 71 | 66 | 73 | 63 | 73 | 69 | 69 | |
| Season | Type | Move | Detail |
|---|---|---|---|
| NSHL22 | Signing | DET |
$1,300,000 · 2 yr |
| NSHL21 | Trade | PHI→ TOR |
PHI Christopher Gibson (69), Nicklas Backstrom (70) TOR Devon Toews (68), Mattias Ekholm (69) |
| NSHL20 | Trade | TOR→ PHI |
PHI Mattias Ekholm (70) TOR $500,000 |
| NSHL20 | Opening Day Waivers | PHI |
Claimed off opening-day waivers |
| NSHL19 | Trade | WSH→ TOR |
TOR Antoine Roussel (72), Mattias Ekholm (69), Radko Gudas (73) WSH Ryan Dzingel (68), Jan Rutta (67) |
| NSHL18 | Signing | CGY |
$1,200,000 · 4 yr |
| NSHL16 | Trade | QUE→ TOR |
QUE Daniel Girardi (71) TOR Mike Angelidis (61), Mattias Ekholm (68), Y17 R5 DET pick → ISAAC RATCLIFFE |
| NSHL16 | Trade | TOR→ SEA |
SEA Mattias Ekholm (68) TOR Shaone Morrisonn (68), Y16 R5 TOR pick → CHARLIE LINDGREN |
| NSHL16 | Signing | VAN |
$600,000 · 3 yr |