Sport-specific career totals from the active profile tables, with VAL shown whenever the sport has a value file.
| Season | Age | Team | GP | G | AB | R | H | 2B | 3B | HR | RBI | SB | BB | SO | AVG | OBP | SLG | OPS | VAL |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2017 | 21 | SD | 56 | 56 | 123 | 7 | 20 | 3 | 1 | 0 | 7 | 0 | 12 | 30 | .163 | .243 | .203 | .446 | 0 |
| 2019 | 23 | SD | 7 | 7 | 14 | 2 | 3 | 1 | 0 | 0 | 0 | 0 | 2 | 6 | .214 | .313 | .286 | .599 | β |
| 2020 | 24 | SD | 7 | 7 | 11 | 0 | 3 | 1 | 0 | 0 | 0 | 0 | 1 | 2 | .273 | .333 | .364 | .697 | β |
| 2020 | 24 | SEA | 18 | 18 | 59 | 5 | 15 | 4 | 0 | 1 | 6 | 0 | 6 | 13 | .254 | .323 | .373 | .696 | β |
| 2021 | 25 | SEA | 108 | 108 | 346 | 39 | 84 | 16 | 2 | 15 | 47 | 0 | 28 | 99 | .243 | .299 | .431 | .730 | 6.1 |
| 2022 | 26 | SEA | 57 | 57 | 151 | 13 | 34 | 2 | 0 | 3 | 15 | 0 | 12 | 50 | .225 | .283 | .298 | .581 | 1.4 |
| 2023 | 27 | CHC | 13 | 13 | 20 | 1 | 5 | 1 | 0 | 0 | 3 | 0 | 1 | 8 | .250 | .318 | .300 | .618 | β |
| 2023 | 27 | SEA | 5 | 5 | 8 | 0 | 2 | 2 | 0 | 0 | 1 | 0 | 0 | 1 | .250 | .250 | .500 | .750 | β |
| 2024 | 28 | NYM | 48 | 48 | 118 | 14 | 27 | 8 | 0 | 3 | 15 | 0 | 9 | 28 | .229 | .292 | .373 | .665 | 1.8 |
| 2025 | 29 | NYM | 93 | 93 | 261 | 20 | 59 | 14 | 1 | 5 | 29 | 1 | 19 | 56 | .226 | .284 | .345 | .629 | 3 |
| 2026 | 30 | NYM | 53 | 53 | 143 | 16 | 31 | 9 | 0 | 2 | 16 | 0 | 8 | 34 | .217 | .277 | .322 | .599 | 1.4 |
Wore 4 distinct franchise crests across 10 seasons (2017β2026) β a true nomad. The crest trail: