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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2020 | 26 | BAL | 10 | 10 | 25 | 3 | 9 | 2 | 0 | 1 | 3 | 0 | 2 | 6 | .360 | .407 | .560 | .967 | — |
| 2021 | 27 | BAL | 85 | 85 | 262 | 33 | 73 | 14 | 0 | 7 | 38 | 1 | 28 | 76 | .279 | .361 | .412 | .773 | 5.2 |
| 2022 | 28 | BAL | 118 | 118 | 403 | 50 | 100 | 17 | 1 | 16 | 51 | 1 | 30 | 98 | .248 | .305 | .414 | .719 | 7.5 |
| 2023 | 29 | BAL | 116 | 116 | 360 | 45 | 95 | 22 | 3 | 4 | 42 | 3 | 27 | 101 | .264 | .328 | .375 | .703 | 5.3 |
| 2024 | 30 | BAL | 100 | 100 | 272 | 39 | 69 | 9 | 2 | 11 | 37 | 1 | 23 | 55 | .254 | .322 | .423 | .745 | 5.8 |
| 2025 | 31 | BAL | 77 | 77 | 258 | 27 | 64 | 12 | 0 | 8 | 34 | 2 | 21 | 60 | .248 | .300 | .388 | .688 | 1.2 |
| 2025 | 31 | HOU | 35 | 35 | 94 | 6 | 21 | 5 | 0 | 3 | 10 | 1 | 6 | 28 | .223 | .267 | .372 | .639 | 1.2 |
| 2026 | 32 | STL | 25 | 25 | 57 | 9 | 9 | 3 | 0 | 2 | 5 | 0 | 6 | 12 | .158 | .279 | .316 | .595 | — |
Wore 3 distinct franchise crests across 7 seasons (2020–2026) — a true nomad. The crest trail: