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 | 52 | 158 | 16 | 37 | 6 | 1 | 3 | 13 | 18 | 30 | 2 | 1 | .234 | .315 | .342 | .656 | 
| 2025 | Pittsburgh | NL | 100 | 369 | 34 | 87 | 10 | 2 | 2 | 36 | 18 | 81 | 10 | 2 | .236 | .279 | .290 | .569 | 
| 2025 | Total Pit/Cin | NL | 152 | 527 | 50 | 124 | 16 | 3 | 5 | 49 | 36 | 111 | 12 | 3 | .235 | .290 | .306 | .595 | 
| 2024 | Pittsburgh | NL | 96 | 365 | 38 | 85 | 9 | 0 | 4 | 25 | 23 | 75 | 11 | 2 | .233 | .283 | .290 | .573 | 
| 2023 | Pittsburgh | NL | 124 | 494 | 65 | 134 | 31 | 7 | 15 | 61 | 28 | 104 | 10 | 6 | .271 | .309 | .453 | .762 | 
| 2023 | Indianapolis | AAA | 3 | 9 | 1 | 1 | 0 | 0 | 0 | 0 | 3 | 2 | 0 | 0 | .111 | .333 | .111 | .444 | 
| 2022 | Pittsburgh | NL | 136 | 505 | 55 | 123 | 24 | 3 | 7 | 41 | 48 | 122 | 20 | 5 | .244 | .314 | .345 | .659 | 
| 2021 | Pittsburgh | NL | 96 | 362 | 49 | 93 | 20 | 2 | 6 | 38 | 31 | 87 | 9 | 1 | .257 | .316 | .373 | .689 | 
| 2021 | Indianapolis | AAA | 7 | 24 | 6 | 6 | 2 | 0 | 2 | 3 | 2 | 7 | 0 | 0 | .250 | .308 | .583 | .891 | 
| 2020 | Pittsburgh | NL | 24 | 85 | 17 | 32 | 7 | 2 | 5 | 11 | 9 | 20 | 1 | 0 | .376 | .442 | .682 | 1.124 | 
| 2019 | Indianapolis | AAA | 110 | 427 | 64 | 113 | 30 | 2 | 10 | 53 | 43 | 90 | 12 | 1 | .265 | .336 | .415 | .751 | 
| 2019 | West Virginia | A | 3 | 9 | 1 | 1 | 1 | 0 | 0 | 2 | 2 | 2 | 1 | 0 | .111 | .250 | .222 | .472 | 
| 2018 | Altoona | AA | 117 | 437 | 64 | 128 | 31 | 7 | 7 | 47 | 57 | 84 | 12 | 5 | .293 | .375 | .444 | .819 | 
| 2017 | Bradenton | A | 108 | 421 | 66 | 117 | 16 | 7 | 2 | 43 | 41 | 76 | 27 | 5 | .278 | .345 | .363 | .708 | 
| 2016 | West Virginia | A | 65 | 247 | 27 | 65 | 12 | 1 | 6 | 37 | 16 | 51 | 6 | 5 | .263 | .319 | .393 | .711 | 
| 2016 | GCL Pirates | R | 2 | 5 | 0 | 2 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | .400 | .500 | .600 | 1.1 | 
| 2015 | GCL Pirates | R | 44 | 144 | 24 | 48 | 4 | 1 | 0 | 13 | 22 | 24 | 7 | 1 | .333 | .434 | .375 | .809 | 
| 2015 | West Virginia | R | 12 | 41 | 8 | 9 | 1 | 0 | 0 | 7 | 6 | 7 | 1 | 1 | .220 | .320 | .244 | .564 | 
| 2015 | Concordia Luthern (Tomball, Tex.) | HS | 29 | 94 | 22 | 41 | 16 | 1 | 3 | 27 | 19 | 14 | 12 | .436 | .530 | .723 | - | |
| - | Total | NL | 628 | 2338 | 274 | 591 | 107 | 17 | 42 | 225 | 175 | 519 | 63 | 17 | .253 | .308 | .367 | .675 | 
| - | Total | AAA | 117 | 451 | 70 | 119 | 32 | 2 | 12 | 56 | 45 | 97 | 12 | 1 | .264 | .335 | .424 | .758 | 
| - | Total | AA | 117 | 437 | 64 | 128 | 31 | 7 | 7 | 47 | 57 | 84 | 12 | 5 | .293 | .375 | .444 | .819 | 
| - | Total | A | 176 | 677 | 94 | 183 | 29 | 8 | 8 | 82 | 59 | 129 | 34 | 10 | .270 | .336 | .372 | .708 | 
| - | Total | R | 58 | 190 | 32 | 59 | 6 | 1 | 0 | 20 | 29 | 32 | 8 | 2 | .311 | .410 | .353 | .763 | 
| - | Total | HS | 29 | 94 | 22 | 41 | 16 | 1 | 3 | 27 | 19 | 14 | 12 | .436 | .530 | .723 | 1.254 |