| Yr | G | PA | AVG | OBP | SLG | ISO | xwOBA | K% | BB% | K-BB% | HR | SB | Pts | PPG | xPPG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025 | 85 | 373 | .244 | .351 | .431 | .187 | .328 | 15.8% | 12.9% | 2.9% | 14 | 9 | 251 | 2.95 | — |
| 2024 | 168 | 670 | .279 |
373 PA — below qualified cutoff. Percentiles vs. qualified pool (faded).
| .382 |
| .458 |
| .179 |
| .369 |
| 15.1% |
| 11.3% |
| 3.8% |
| 24 |
| 11 |
| 451 |
| 2.68 |
| — |
| 2023 | 123 | 522 | .241 | .324 | .367 | .126 | .308 | 17.2% | 9.6% | 7.6% | 9 | 1 | 237 | 1.93 | — |
| 2022 | 174 | 660 | .243 | .332 | .390 | .147 | .320 | 15.6% | 11.1% | 4.5% | 15 | 5 | 387 | 2.22 | — |
| 2021 | 146 | 412 | .227 | .331 | .320 | .093 | .306 | 15.8% | 11.9% | 3.9% | 4 | 10 | 199 | 1.36 | — |
| 2020 | 62 | 203 | .276 | .345 | .425 | .149 | .337 | 13.8% | 7.4% | 6.4% | 7 | 7 | 132 | 2.13 | — |
| 2019 | 140 | 521 | .216 | .301 | .407 | .191 | .330 | 14.4% | 9.2% | 5.2% | 20 | 9 | 325 | 2.32 | — |
| 2018 | 150 | 595 | .253 | .337 | .457 | .204 | .324 | 14.8% | 9.1% | 5.7% | 20 | 10 | 382 | 2.55 | — |
| 2017 | 31 | 70 | .172 | .294 | .207 | .035 | .294 | 20.0% | 12.9% | 7.1% | 0 | 2 | 26 | 0.84 | — |
| 2016 | 88 | 308 | .238 | .320 | .337 | .099 | .289 | 19.8% | 9.7% | 10.1% | 5 | 2 | 120 | 1.36 | — |
Expected-run-value of every swing-or-take decision, against a league-average batter’s optimum. 100 = avg · 110 = 1 SD better.