career regular season statistics    
  
  | Year | Team | League | 
        GP         Games Played 
       | 
      
        AB         At Bats	 
       | 
      
        R         Runs	 
       | 
      
        H         Hits	 
       | 
      
        2B         Doubles	 
       | 
      
        3B         Triples	 
       | 
      
        HR         Home Runs	 
       | 
      
        RBI         Runs Batted In	 
       | 
      
        BB         Walks	 
       | 
      
        SO         Strikeouts	 
       | 
      
        SB         Stolen Bases	 
       | 
      
        CS         Caught Stealing	 
       | 
      
        AVG         Batting Average	 
       | 
      
        OBP         On-Base Percentage	 
       | 
      
        SLG         Slugging Percentage 
       | 
      
        OPS         On-Base Plus Slugging 
       | 
    
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025 | Cincinnati | NL | 88 | 299 | 40 | 69 | 18 | 0 | 13 | 50 | 37 | 116 | 0 | 1 | .231 | .316 | .421 | .737 | 
| 2024 | Cincinnati | NL | 138 | 457 | 69 | 118 | 26 | 1 | 19 | 66 | 48 | 117 | 1 | 0 | .258 | .338 | .444 | .782 | 
| 2023 | Cincinnati | NL | 142 | 465 | 59 | 113 | 20 | 2 | 13 | 56 | 47 | 135 | 0 | 1 | .243 | .317 | .378 | .696 | 
| 2022 | Cincinnati | NL | 50 | 166 | 24 | 53 | 9 | 0 | 6 | 35 | 12 | 47 | 1 | 0 | .319 | .372 | .482 | .854 | 
| 2022 | Louisville | AAA | 4 | 15 | 1 | 4 | 1 | 0 | 0 | 1 | 0 | 8 | 0 | 0 | .267 | .267 | .333 | .600 | 
| 2021 | Cincinnati | NL | 132 | 350 | 56 | 100 | 21 | 0 | 10 | 45 | 41 | 75 | 0 | 0 | .286 | .366 | .431 | .797 | 
| 2020 | Cincinnati | NL | 8 | 17 | 4 | 5 | 0 | 0 | 2 | 6 | 2 | 9 | 0 | 0 | .294 | .400 | .647 | 1.047 | 
| 2019 | Chattanooga | AA | 89 | 312 | 47 | 89 | 19 | 1 | 6 | 44 | 37 | 60 | 0 | 0 | .285 | .372 | .410 | .782 | 
| 2018 | Daytona | A | 109 | 388 | 60 | 97 | 20 | 1 | 11 | 59 | 45 | 98 | 1 | 0 | .250 | .338 | .392 | .730 | 
| 2017 | Dayton | A | 80 | 295 | 39 | 82 | 22 | 0 | 6 | 50 | 44 | 58 | 2 | 1 | .278 | .374 | .414 | .787 | 
| 2016 | Dayton | A | 39 | 139 | 17 | 30 | 4 | 1 | 3 | 16 | 12 | 45 | 0 | 0 | .216 | .278 | .324 | .602 | 
| 2016 | AZL Reds | R | 5 | 20 | 4 | 5 | 1 | 0 | 1 | 2 | 2 | 7 | 0 | 0 | .250 | .348 | .450 | .798 | 
| 2015 | Billings | R | 54 | 194 | 28 | 52 | 15 | 0 | 1 | 16 | 22 | 42 | 0 | 2 | .268 | .352 | .361 | .712 | 
| 2015 | Kennesaw Mountain (Ga.) | HS | 28 | 73 | 10 | 31 | 6 | 1 | 9 | 26 | 24 | 6 | 2 | .425 | .567 | .904 | 1.471 | |
| - | Total | NL | 558 | 1754 | 252 | 458 | 94 | 3 | 63 | 258 | 187 | 499 | 2 | 2 | .261 | .338 | .426 | .764 | 
| - | Total | AA | 89 | 312 | 47 | 89 | 19 | 1 | 6 | 44 | 37 | 60 | 0 | 0 | .285 | .372 | .410 | .782 | 
| - | Total | A | 228 | 822 | 116 | 209 | 46 | 2 | 20 | 125 | 101 | 201 | 3 | 1 | .254 | .343 | .388 | .731 | 
| - | Total | R | 59 | 214 | 32 | 57 | 16 | 0 | 2 | 18 | 24 | 49 | 0 | 2 | .266 | .351 | .369 | .720 |