| Season | Team | GP | PTS | G | A | +/− | PIM | PPG | SHG | GWG |
|---|---|---|---|---|---|---|---|---|---|---|
| NSHL24 |
SEA
|
22 | 1 | 0 | 1 | -1 | 0 | 0 | 0 | 0 |
| NSHL23 |
SEA
|
75 | 17 | 2 | 15 | -5 | 70 | 1 | 0 | 1 |
| NSHL22 |
SEA
|
56 | 9 | 1 | 8 | -2 | 66 | 0 | 0 | 0 |
| NSHL21 |
SEA
|
73 | 15 | 4 | 11 | -4 | 31 | 2 | 0 | 0 |
| NSHL20 |
SEA
|
82 | 17 | 2 | 15 | -16 | 30 | 1 | 0 | 0 |
| Career | 308 | 59 | 9 | 50 | -28 | 197 | 4 | 0 | 1 | |
| Season | Team | GP | PTS | G | A | +/− | PIM | PPG | SHG | GWG |
|---|---|---|---|---|---|---|---|---|---|---|
| NSHL22 |
SEA
|
6 | 2 | 0 | 2 | +4 | 0 | 0 | 0 | 0 |
| Season | Team | CK | FG | DI | SK | ST | EN | DU | PH | FO | PA | SC | DF | PS | EX | LD | OV |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NSHL20 |
SEA
|
67 | 30 | 81 | 66 | 90 | 73 | 73 | 60 | 50 | 56 | 61 | 71 | 57 | 68 | 63 | 45 |
| NSHL21 |
SEA
|
66 | 30 | 82 | 65 | 99 | 75 | 75 | 62 | 50 | 58 | 62 | 70 | 59 | 69 | 64 | 68 |
| NSHL22 |
SEA
|
68 | 55 | 84 | 64 | 99 | 77 | 77 | 64 | 50 | 60 | 64 | 69 | 60 | 70 | 79 | 69 |
| NSHL23 |
SEA
|
67 | 57 | 83 | 63 | 99 | 76 | 79 | 66 | 50 | 62 | 63 | 68 | 59 | 72 | 78 | 69 |
| NSHL24 |
SEA
|
64 | 58 | 80 | 61 | 99 | 77 | 80 | 67 | 50 | 63 | 62 | 69 | 59 | 73 | 75 | 69 |
| Career Avg | 67 | 46 | 82 | 64 | 98 | 76 | 77 | 64 | 50 | 60 | 63 | 70 | 59 | 71 | 72 | 64 | |
| Season | Type | Move | Detail |
|---|---|---|---|
| NSHL25 | Signing | OTT |
$505,000 · 3 yr |
| NSHL21 | Signing | SEA |
$625,000 · 4 yr |
| NSHL20 | Signing | SEA |
$1,000,000 · 1 yr |
| NSHL14 | Trade | NSH→ WPG |
NSH Ryan Getzlaf (74), Nicolas Petan (P) WPG Kyle Clifford (70), Jani Hakanpaa (P), Y15 R4 PIT pick → RONALD KENINS |