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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2018 | 23 | BAL | 45 | 45 | 170 | 23 | 40 | 9 | 0 | 4 | 11 | 2 | 17 | 37 | .235 | .312 | .359 | .671 | 2.2 |
| 2019 | 24 | BAL | 22 | 22 | 64 | 7 | 6 | 0 | 2 | 0 | 4 | 1 | 4 | 14 | .094 | .181 | .156 | .337 | β |
| 2020 | 25 | BAL | 48 | 48 | 140 | 16 | 38 | 4 | 3 | 3 | 12 | 7 | 8 | 37 | .271 | .315 | .407 | .722 | 2 |
| 2021 | 26 | BAL | 159 | 159 | 602 | 91 | 175 | 37 | 5 | 30 | 59 | 30 | 59 | 125 | .291 | .360 | .518 | .878 | 14 |
| 2022 | 27 | BAL | 156 | 156 | 608 | 89 | 157 | 32 | 4 | 16 | 64 | 34 | 47 | 126 | .258 | .318 | .403 | .721 | 11.4 |
| 2023 | 28 | BAL | 116 | 116 | 404 | 51 | 94 | 23 | 3 | 15 | 74 | 19 | 43 | 101 | .233 | .305 | .416 | .721 | 7.9 |
| 2024 | 29 | BAL | 147 | 147 | 444 | 69 | 104 | 16 | 3 | 18 | 54 | 32 | 41 | 98 | .234 | .305 | .405 | .710 | 9.5 |
| 2025 | 30 | BAL | 91 | 91 | 314 | 42 | 72 | 19 | 0 | 15 | 49 | 14 | 34 | 85 | .229 | .305 | .433 | .738 | 1.4 |
| 2025 | 30 | NYM | 42 | 42 | 121 | 16 | 22 | 4 | 1 | 2 | 10 | 8 | 16 | 35 | .182 | .284 | .281 | .565 | 1.4 |
| 2026 | 31 | TB | 77 | 77 | 262 | 31 | 55 | 4 | 1 | 10 | 29 | 14 | 25 | 60 | .210 | .289 | .347 | .636 | 3.7 |
Wore 3 distinct franchise crests across 9 seasons (2018β2026) β a true nomad. The crest trail: