| 2014-15 | U16 Div.1 | Järna SK U16 | 25 | 30 | 22 | 52 | 0 | - | - | 8 |
| 2015-16 | J18 Elit | Leksands IF J18 | 20 | 10 | 12 | 22 | - | - | - | 2 |
| 2015-16 | J18 Allsvenskan | Leksands IF J18 | 15 | 8 | 10 | 18 | 9 | - | - | 6 |
| 2015-16 | J20 SuperElit | Leksands IF J20 | 5 | 0 | 0 | 0 | 1 | - | - | 2 |
| 2016-17 | J20 SuperElit | Leksands IF J20 | 28 | 21 | 12 | 33 | 3 | - | - | 35 |
| 2016-17 | SHL | Leksands IF | 5 | 0 | 0 | 0 | -1 | - | - | 0 |
| 2017-18 | J20 SuperElit | Leksands IF J20 | 18 | 12 | 13 | 25 | 0 | - | - | 12 |
| 2017-18 | HockeyAllsvenskan | Leksands IF | 33 | 8 | 7 | 15 | 8 | - | - | 33 |
| 2018-19 | SHL | Djurgårdens IF | 47 | 23 | 12 | 35 | 10 | - | - | 8 |
| 2018-19 | Champions HL | Djurgårdens IF | 6 | 3 | 0 | 3 | 2 | - | - | 8 |
| 2019-20 | NHL | Columbus Blue Jackets | 56 | 10 | 10 | 20 | -10 | 97 | 10.3% | 8 |
| 2020-21 | NHL | Columbus Blue Jackets | 20 | 3 | 2 | 5 | 2 | 28 | 10.7% | 0 |
| 2020-21 | Liiga | HIFK | 16 | 8 | 9 | 17 | 2 | - | - | 2 |
| 2021-22 | NHL | Columbus Blue Jackets | 41 | 6 | 5 | 11 | -1 | 62 | 9.7% | 4 |
| 2021-22 | AHL | Cleveland Monsters | 4 | 2 | 0 | 2 | -3 | - | - | 2 |
| 2022-23 | NHL | Columbus Blue Jackets | 55 | 7 | 15 | 22 | -11 | 95 | 7.4% | 6 |
| 2022-23 | AHL | Cleveland Monsters | 21 | 14 | 17 | 31 | -1 | - | - | 4 |
| 2023-24 | NHL | Columbus Blue Jackets | 32 | 5 | 6 | 11 | -5 | 49 | 10.2% | 10 |
| 2023-24 | NHL | Pittsburgh Penguins | 24 | 3 | 2 | 5 | 0 | 34 | 8.8% | 2 |
| 2023-24 | AHL | Cleveland Monsters | 8 | 10 | 4 | 14 | 9 | - | - | 6 |
| 2024-25 | NHL | Pittsburgh Penguins | 14 | 0 | 1 | 1 | 0 | 13 | 0.0% | 0 |
| 2024-25 | AHL | Wilkes-Barre/Scranton Penguins | 48 | 23 | 25 | 48 | 1 | - | - | 38 |
| 2025-26 | NL | SC Bern | 29 | 10 | 8 | 18 | -6 | - | - | 2 |
| 2025-26 | Champions HL | SC Bern | 2 | 3 | 2 | 5 | 3 | - | - | 0 |
| NHL Totals | – | 242 | 34 | 41 | 75 | -25 | 378 | 9.0% | 30 | |
| AHL Totals | – | 81 | 49 | 46 | 95 | 6 | - | - | 50 | |
| 2014-15 | TV-Pucken | Södermanland | 5 | 2 | 4 | 6 | 0 | - | - | 6 |
| 2015-16 | J18 Allsvenskan | Leksands IF J18 | 5 | 1 | 3 | 4 | 3 | - | - | 0 |
| 2016-17 | J20 SuperElit | Leksands IF J20 | 3 | 0 | 0 | 0 | -1 | - | - | 0 |
| 2016-17 | J18 Allsvenskan | Leksands IF J18 | 1 | 1 | 0 | 1 | 2 | - | - | 0 |
| 2017-18 | HockeyAllsvenskan | Leksands IF | 11 | 2 | 0 | 2 | -2 | - | - | 2 |
| 2018-19 | SHL | Djurgårdens IF | 19 | 5 | 5 | 10 | 3 | - | - | 2 |
| 2019-20 | NHL | Columbus Blue Jackets | 5 | 0 | 0 | 0 | -1 | 4 | 0.0% | 2 |
| NHL Totals | – | 5 | 0 | 0 | 0 | -1 | 4 | 0.0% | 2 | |
| Season | Opponent | Date | G | A | P | +/- | PIM | PPG | SHG | S | Shifts | TOI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Regular | @ NJD | Apr 11 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 10 | 8:23 |
| Regular | vs OTT | Mar 30 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 10 | 6:57 |
| Regular | @ BUF | Mar 27 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7 | 4:20 |
| Regular | @ TBL | Mar 25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 11 | 8:03 |
| Regular | vs NJD | Mar 15 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 2 | 8 | 5:13 |