| Season | Team | GP | PTS | G | A | +/− | PIM | PPG | SHG | GWG |
|---|---|---|---|---|---|---|---|---|---|---|
| NSHL22 |
EDM
|
68 | 8 | 1 | 7 | 0 | 4 | 1 | 0 | 0 |
| NSHL21 |
CHI
|
53 | 4 | 0 | 4 | +9 | 6 | 0 | 0 | 0 |
| NSHL20 |
TBL
Total |
40 | 1 | 0 | 1 | 0 | 2 | 0 | 0 | 0 |
TBL
|
34 | 0 | 0 | 0 | -1 | 2 | 0 | 0 | 0 | |
TOR
|
6 | 1 | 0 | 1 | +1 | 0 | 0 | 0 | 0 | |
| NSHL19 |
TOR
Total |
47 | 6 | 0 | 6 | -1 | 0 | 0 | 0 | 0 |
TOR
|
25 | 5 | 0 | 5 | -1 | 0 | 0 | 0 | 0 | |
PHI
|
22 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
| NSHL18 |
PHI
Total |
19 | 4 | 0 | 4 | +6 | 2 | 0 | 0 | 0 |
PHI
|
15 | 4 | 0 | 4 | +5 | 0 | 0 | 0 | 0 | |
CHI
|
4 | 0 | 0 | 0 | +1 | 2 | 0 | 0 | 0 | |
| Pro Career | 227 | 23 | 1 | 22 | +14 | 14 | 1 | 0 | 0 | |
| Season | Team | GP | PTS | G | A | +/− | PIM | PPG | SHG | GWG |
|---|---|---|---|---|---|---|---|---|---|---|
| NSHL25 |
PIT
|
71 | 32 | 5 | 27 | +10 | 62 | 2 | 0 | 0 |
| NSHL24 |
PIT
|
78 | 24 | 8 | 16 | -2 | 44 | 3 | 0 | 2 |
| NSHL23 |
DET
|
77 | 29 | 6 | 23 | +28 | 22 | 3 | 0 | 2 |
| NSHL17 |
PIT
|
74 | 22 | 6 | 16 | +3 | 0 | 1 | 0 | 0 |
| NSHL16 |
BUF
|
64 | 17 | 2 | 15 | +3 | 6 | 0 | 0 | 0 |
| Farm Career | 364 | 124 | 27 | 97 | +42 | 134 | 9 | 0 | 4 | |
| Season | Team | GP | PTS | G | A | +/− | PIM | PPG | SHG | GWG |
|---|---|---|---|---|---|---|---|---|---|---|
| NSHL22 |
EDM
|
7 | 0 | 0 | 0 | -1 | 0 | 0 | 0 | 0 |
| NSHL21 |
CHI
|
10 | 1 | 0 | 1 | -1 | 4 | 0 | 0 | 0 |
| NSHL19 |
TOR
|
2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| NSHL18 |
PHI
|
19 | 6 | 1 | 5 | +7 | 0 | 0 | 0 | 0 |
| Pro Career | 38 | 7 | 1 | 6 | +5 | 4 | 0 | 0 | 0 | |
| Season | Team | GP | PTS | G | A | +/− | PIM | PPG | SHG | GWG |
|---|---|---|---|---|---|---|---|---|---|---|
| NSHL24 |
PIT
|
6 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
| NSHL23 |
DET
|
19 | 10 | 2 | 8 | +9 | 4 | 1 | 0 | 0 |
| NSHL17 |
RCH
|
4 | 2 | 0 | 2 | -3 | 0 | 0 | 0 | 0 |
| NSHL16 |
RCH
|
2 | 0 | 0 | 0 | +1 | 0 | 0 | 0 | 0 |
| Farm Career | 31 | 13 | 2 | 11 | +7 | 4 | 1 | 0 | 0 | |
| Season | Team | CK | FG | DI | SK | ST | EN | DU | PH | FO | PA | SC | DF | PS | EX | LD | OV |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NSHL16 |
BUF
|
65 | 15 | 87 | 77 | 74 | 73 | 73 | 68 | 50 | 72 | 62 | 69 | 63 | 64 | 59 | 67 |
| NSHL17 |
PIT
|
65 | 17 | 87 | 77 | 76 | 76 | 76 | 69 | 50 | 73 | 62 | 72 | 63 | 64 | 59 | 68 |
| NSHL18 |
PHI
|
65 | 17 | 89 | 77 | 76 | 78 | 78 | 70 | 50 | 73 | 64 | 74 | 65 | 65 | 61 | 80 |
| NSHL19 |
TOR
|
65 | 17 | 89 | 77 | 76 | 78 | 78 | 70 | 50 | 73 | 64 | 74 | 65 | 65 | 61 | 80 |
| NSHL20 |
CHI
|
65 | 17 | 89 | 77 | 76 | 78 | 78 | 70 | 50 | 73 | 64 | 74 | 65 | 67 | 62 | 80 |
| NSHL21 |
CHI
|
65 | 17 | 89 | 77 | 90 | 78 | 78 | 70 | 50 | 73 | 64 | 74 | 65 | 68 | 63 | 71 |
| NSHL22 |
EDM
|
65 | 45 | 89 | 77 | 92 | 78 | 78 | 70 | 50 | 73 | 64 | 74 | 65 | 78 | 81 | 73 |
| NSHL23 |
DET
|
65 | 45 | 89 | 77 | 94 | 78 | 80 | 70 | 50 | 73 | 64 | 74 | 65 | 78 | 81 | 73 |
| NSHL24 |
PIT
|
66 | 46 | 89 | 74 | 91 | 79 | 81 | 71 | 50 | 74 | 65 | 75 | 64 | 79 | 82 | 73 |
| Career Avg | 66 | 27 | 89 | 77 | 83 | 78 | 78 | 70 | 50 | 73 | 64 | 74 | 65 | 70 | 68 | 74 | |
| Season | Team | Type | Category | Old | New | Δ | Pts | Notes |
|---|---|---|---|---|---|---|---|---|
| NSHL16 | BUF |
TC | DF | 67 | 69 | +2 | 2 |
| Season | Type | Move | Detail |
|---|---|---|---|
| NSHL23 | Signing | DET |
$1,784,000 for 1 year |
| NSHL23 | Release | EDM |
|
| NSHL22 | Opening Day Waivers | EDM |
Claimed off opening-day waivers |
| NSHL20 | Trade | STL→ TBL |
STL $500,000 TBL Joe Morrow (69) |
| NSHL20 | Trade | TBL→ TOR |
TBL Darnell Nurse (74), Riley Nash (69), Y22 R4 SJS pick, Y23 R4 STL pick (Massimo Rizzo), Y25 R3 TOR pick TOR Evgeny Kuznetsov (77), Joe Morrow (69), Jordan Greenway (68) |
| NSHL20 | Trade | TOR→ CHI |
CHI Antoine Roussel (73), Joe Morrow (69), Michael Grabner (72) TOR Dmitry Orlov (75), Corey Tropp (73) |
| NSHL20 | Opening Day Waivers | TBL |
Claimed off opening-day waivers |
| NSHL19 | Trade | PHI→ TOR |
PHI Jonathan Marchessault (67), Joe Pavelski (66), Jamie Oleksiak (72), Y20 R6 TOR pick (Sean Farrell) TOR Phil Kessel (73), Joe Morrow (69), 20 Round 7 Pick 1 (P) |
| NSHL19 | Signing | PHI |
$510,000 for 4 years |
| NSHL18 | Trade | PIT→ CHI |
PIT $100,000 CHI Joe Morrow (69) |
| NSHL18 | Trade | CHI→ PHI |
CHI Chris Summers (71) PHI Joe Morrow (69) |
| NSHL16 | Signing | BUF |
$1,000,000 for 3 years |
| NSHL11 | Trade | OTT→ BUF |
BUF Joe Morrow (P), Y12 R2 CAR pick (Radek Faksa) OTT Y12 R1 OTT pick, Y12 R3 BUF pick (Stefan Matteau) |