Loading games...
2026 Stats
G
1
AB
4
H
2
HR
1
RBI
1
R
2
SB
0
AVG
.500
OBP
.500
SLG
1.250
OPS
1.750
Career Stats
G
741
AB
2227
H
562
HR
85
RBI
314
R
276
SB
11
AVG
.252
OBP
.322
SLG
.423
OPS
.745
Year-by-Year Hitting
| Year | Team | G | PA | AB | H | HR | RBI | SB | AVG | OBP | SLG | OPS | Awards |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2018 | KC | 44 | 170 | 149 | 39 | 12 | 30 | — | .262 | .353 | .597 | .950 | |
| 2019 | KC | 105 | 370 | 328 | 64 | 14 | 38 | — | .195 | .281 | .369 | .650 | |
| 2020 | KC | 42 | 132 | 113 | 22 | 2 | 18 | — | .195 | .303 | .301 | .604 | |
| 2021 | KC | 84 | 254 | 236 | 53 | 9 | 29 | — | .225 | .268 | .369 | .637 | |
| 2022 | KC | 67 | 145 | 134 | 32 | 1 | 16 | — | .239 | .290 | .321 | .611 | |
| 2023 | BAL | 112 | 368 | 346 | 100 | 14 | 60 | 5 | .289 | .322 | .480 | .802 | |
| 2024 | BAL | 142 | 494 | 443 | 117 | 15 | 59 | 3 | .264 | .334 | .427 | .761 | |
| 2025 | Total | 144 | 544 | 474 | 133 | 17 | 63 | 3 | .281 | .366 | .437 | .803 | AS |
| 2026 | PIT | 1 | 4 | 4 | 2 | 1 | 1 | — | .500 | .500 | 1.250 | 1.750 |
Spring Training
Hitting
| Year | Team | G | PA | AB | H | HR | RBI | SB | AVG | OBP | SLG | OPS |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2016 | KC | 4 | 6 | 6 | 2 | — | — | — | .333 | .333 | .333 | .666 |
| 2017 | KC | 17 | 32 | 30 | 7 | 2 | 5 | — | .233 | .281 | .567 | .848 |
| 2018 | KC | 19 | 38 | 35 | 14 | 5 | 13 | 1 | .400 | .447 | 1.000 | 1.447 |
| 2019 | KC | 20 | 58 | 50 | 16 | 1 | 14 | — | .320 | .414 | .440 | .854 |
| 2020 | KC | 13 | 38 | 35 | 12 | 5 | 9 | — | .343 | .395 | .857 | 1.252 |
| 2021 | KC | 21 | 49 | 43 | 9 | 5 | 6 | — | .209 | .306 | .628 | .934 |
| 2022 | KC | 12 | 32 | 31 | 12 | 2 | 6 | — | .387 | .406 | .645 | 1.051 |
| 2023 | BAL | 18 | 45 | 40 | 15 | 3 | 6 | — | .375 | .444 | .650 | 1.094 |
| 2024 | BAL | 16 | 48 | 40 | 13 | 1 | 4 | — | .325 | .438 | .450 | .888 |
| 2025 | BAL | 16 | 48 | 43 | 10 | 2 | 7 | — | .233 | .313 | .442 | .755 |
| 2026 | PIT | 17 | 49 | 40 | 10 | 2 | 9 | — | .250 | .367 | .450 | .817 |
Postseason
Hitting
| Year | Team | G | PA | AB | H | HR | RBI | SB | AVG | OBP | SLG | OPS |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2023 | BAL | 3 | 5 | 5 | 1 | — | — | — | .200 | .200 | .200 | .400 |
| 2024 | BAL | 2 | 3 | 2 | 1 | — | — | — | .500 | .667 | .500 | 1.167 |
| 2025 | SD | 3 | 11 | 9 | 2 | — | — | — | .222 | .364 | .222 | .586 |
Game Logs
Season selector loads one year at a time.
Hitting
| Date | Opponent | AB | H | 2B | 3B | HR | RBI | R | BB | SO |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026-03-26 | @ NYM | 4 | 2 | 0 | 0 | 1 | 1 | 2 | 0 | 1 |
Transactions
Entire history • newest first.
2026-01-08
Pittsburgh Pirates signed free agent 1B Ryan O'Hearn.
2025-11-02
1B Ryan O'Hearn elected free agency.
2025-08-01
San Diego Padres activated 1B Ryan O'Hearn.
2025-07-31
1B Ryan O'Hearn roster status changed by San Diego Padres.
2025-07-31
Baltimore Orioles traded 1B Ryan O'Hearn, RF Ramón Laureano and cash to San Diego Padres for LHP Boston Bateman, RHP Tyson Neighbors, RHP Tanner Smith, SS Brandon Butterworth, SS Cobb Hightower and 1B Victor Figueroa.
2025-07-14
American League All-Stars activated 1B Ryan O'Hearn.
2025-04-16
1B Ryan O'Hearn changed number to 32.
2025-04-15
1B Ryan O'Hearn changed number to 42.
2023-05-09
Baltimore Orioles recalled 1B Ryan O'Hearn from Norfolk Tides.
2023-05-05
Baltimore Orioles optioned 1B Ryan O'Hearn to Norfolk Tides.
2023-04-13
Baltimore Orioles selected the contract of 1B Ryan O'Hearn, and from Norfolk Tides.
2023-02-02
Baltimore Orioles invited non-roster 1B Ryan O'Hearn and to spring training.
2023-01-12
Baltimore Orioles sent 1B Ryan O'Hearn outright to Norfolk Tides.
2023-01-05
Baltimore Orioles designated 1B Ryan O'Hearn for assignment.
2023-01-03
Kansas City Royals traded 1B Ryan O'Hearn to Baltimore Orioles for cash.
2021-06-21
Kansas City Royals recalled 1B Ryan O'Hearn, and from Omaha Storm Chasers.
2021-05-28
Kansas City Royals optioned 1B Ryan O'Hearn to Omaha Storm Chasers.
2021-04-23
Kansas City Royals recalled 1B Ryan O'Hearn from Royals Alternate Training Site.
2021-03-30
Kansas City Royals optioned 1B Ryan O'Hearn to Royals Alternate Training Site.
2020-07-27
Kansas City Royals activated 1B Ryan O'Hearn from the 10-day injured list.
2020-07-14
Kansas City Royals placed 1B Ryan O'Hearn on the 10-day injured list.
2019-07-27
Kansas City Royals recalled 1B Ryan O'Hearn from Omaha Storm Chasers.
2019-06-14
Kansas City Royals optioned 1B Ryan O'Hearn to Omaha Storm Chasers.
2018-07-31
Kansas City Royals selected the contract of Ryan O'Hearn from Omaha Storm Chasers.
2018-01-05
Kansas City Royals invited non-roster 1B Ryan O'Hearn to spring training.
2017-01-07
Kansas City Royals invited non-roster 1B Ryan O'Hearn to spring training.
2016-03-09
1B Ryan O'Hearn assigned to Kansas City Royals.
2014-06-10
Kansas City Royals signed 1B Ryan O'Hearn.
Scouting Report
Statcast-style percentiles • Basenerd theme
Season 2026
No Statcast percentile data available.
Spray Chart
Hits only • Stadium overlay
1B
2B
3B
HR
MLBAM-style coords scaled into stadium viewBox. Home plate baseline ≈ (125, 199). Stadium SVG: pirates.svg.
Results by Pitch Type
| Pitch | # | Usage% | Zone% | Whiff% | AVG | HardHit% |
|---|---|---|---|---|---|---|
| No pitch tracking data available. | ||||||
Results by Pitch Category
| Category | # | Usage% | Zone% | Whiff% | AVG | HardHit% |
|---|---|---|---|---|---|---|
| No pitch category data available. | ||||||