Mithrandir Metrics
Player Pittsburgh Pirates Refreshed Jun 14 06:00 AM ET
Player profile / Pittsburgh Pirates

Ryan O'Hearn

RF · Bats/Throws L/L · 6' 2", 220 lb · Age 32

Cards
0
Modules
0
Live Δ
yes
Club Pittsburgh Pirates Position RF Roster Active Status Healthy / active roster
Traditional line

Season by season

PARHHRSBAVGOBPSLGOPS
202449460117153.264.334.427.761
202554467133173.281.366.437.803
20262313157101.275.342.449.791
9 Seasons27083056179412.254.323.423.746
At a glance

Season percentile report

The headline weighs outcome stats (xwOBA, barrels); each bar averages its full strip group below. 100 = best in MLB.

2026-06-14
66
Offense
percentile
Offense9 metrics
60
Defense4 metrics
32
Speed1 metrics
36
Plate skills10 metrics
36
Rolling projection

Preseason / current pace / Bayesian update

Rolling bands shrink current-season signal toward the preseason prior until the sample earns more weight.

2026-06-14
xwOBA preseason0.345
xwOBA current pace0.328
xwOBA rolling p500.336
Observed weight52%
xwOBA
0.310 0.322 0.336 0.350 0.363
wOBA
0.330 0.349 0.370 0.391 0.410
ISO
0.139 0.155 0.172 0.190 0.206
K%
18.8% 20.0% 21.4% 22.8% 24.1%
Live percentile strip

Current traits vs projection tick

100th = best in MLB.

2026-06-14
Hitting · percentile strip
Barrel%5.4%
54
Exit velocity90.1
72
Hard-hit%44.5%
70
xBA0.342
69
xSLG0.550
62
xwOBA0.328
66
BB%9.1%
54
Bat speed68.9
40
K%22.0%
50
Defense · percentile strip
Arm Runs-1.7 · RF
8
Arm Strength84.8 · RF
4
Outs Above Avg1.0 · RF
80
Range Runs-1.2 · RF
35
Baserunning · percentile strip
Sprint Speed26.8 · RF
36
Mithrandir+

Plate skills: swing decisions and pitch-type resistance

Our research metrics for how this hitter controls the strike zone and handles each pitch family.

2026-06-14
Avoids Bad ChasesST 66.4% · rebadged research
54
Avoids Bad TakesHPT 29.1% · rebadged research
16
Correct Decisions63.7% · rebadged research
28
Resists Breaking - horizontalwOBA 0.293 · borderline
33
Resists Breaking - verticalwOBA 0.258 · insufficient sample
96
Resists ChangeupwOBA 0.278 · validated thin sample
46
Resists Cutters + splitterswOBA 0.334 · insufficient sample
43
Resists FastballwOBA 0.391 · validated
2
Resists SinkerwOBA 0.389 · validated
7
SEAGER+ Plate Discipline98
35
Rolling form chart

xwOBA snapshot line

Live snapshot series; true 50/100 PA windows require PA-level logs

12 snapshots
Mithrandir Metrics ROLLING XWOBA LINE Parameterized Mithrandir chart rendered as SVG for templates and exports. season=2026 Rolling xwOBA O'Hearn, Ryan · Live snapshot series; true 50/100 PA windows require PA-level logs LG AVG 0.312 0.328 2026-06-03: 0.3592026-06-04: 0.3582026-06-05: 0.3512026-06-06: 0.3512026-06-07: 0.3512026-06-08: 0.3442026-06-09: 0.3442026-06-10: 0.3442026-06-11: 0.3392026-06-12: 0.3362026-06-13: 0.3332026-06-14: 0.328 2026-06-03 2026-06-14 xwOBA MITHRANDIR · CHARTS
Spray profile

Field-coordinate spray profile

150 Statcast batted-ball coordinates from the pitch-event feed (2026). Direction profile remains as the v1 context layer when coordinate density is limited.

Mithrandir Metrics SPRAY CHART Parameterized Mithrandir chart rendered as SVG for templates and exports. season=2026 Spray Chart O'Hearn, Ryan · Statcast batted-ball landing coordinates Left field third: 16% of plotted batted ballsPull 16%Center field third: 67% of plotted batted ballsCenter 67%Right field third: 17% of plotted batted ballsOppo 17% LF 325 CF 399 RF 320 2026-03-15 · field out · FF · ground_ball · EV 90.2 / LA 8.02026-03-17 · field out · SL · line_drive · EV 88.4 / LA 25.02026-03-17 · single · FF · line_drive · EV 104.3 / LA 9.02026-03-19 · field out · SI · ground_ball · EV 85.7 / LA -51.02026-03-19 · field out · SI · fly_ball · EV 105.9 / LA 25.02026-03-20 · field out · SI · ground_ball · EV 88.1 / LA -29.02026-03-20 · field out · SI · ground_ball · EV 101.4 / LA -12.02026-03-20 · field out · FF · fly_ball · EV 103.8 / LA 23.02026-03-22 · field out · FF · popup · EV 84.3 / LA 55.02026-03-22 · field out · FF · fly_ball · EV 87.5 / LA 56.02026-03-22 · field out · FF · fly_ball · EV 97.7 / LA 20.02026-03-23 · grounded into double play · FS · ground_ball · EV 68.2 / LA -6.02026-03-23 · field out · FF · line_drive · EV 102.7 / LA 21.02026-03-26 · field out · FF · ground_ball · EV 93.4 / LA -14.02026-03-26 · single · SI · ground_ball · EV 104.2 / LA 8.02026-03-26 · home run · FF · fly_ball · EV 97.3 / LA 36.02026-03-28 · field out · SL · ground_ball · EV 65.1 / LA -11.02026-03-28 · field out · CU · fly_ball · EV 95.6 / LA 35.02026-03-28 · single · SI · ground_ball · EV 95.7 / LA 5.02026-03-28 · field out · CH · ground_ball · EV 75.7 / LA -40.02026-03-28 · field out · ST · ground_ball · EV 90.8 / LA 0.02026-03-29 · single · ST · fly_ball · EV 74.4 / LA 31.02026-03-29 · single · SI · line_drive · EV 105.9 / LA 9.02026-03-29 · single · ST · ground_ball · EV 91.6 / LA 8.02026-03-30 · single · CH · line_drive · EV 71.1 / LA 22.02026-03-30 · field out · CH · ground_ball · EV 63.3 / LA -10.02026-03-31 · grounded into double play · SI · ground_ball · EV 78.0 / LA -2.02026-03-31 · home run · FF · fly_ball · EV 103.5 / LA 28.02026-03-31 · field out · ST · line_drive · EV 66.2 / LA 24.02026-04-03 · sac fly · ST · line_drive · EV 93.9 / LA 22.02026-04-03 · field out · FF · ground_ball · EV 82.8 / LA 5.02026-04-04 · single · FF · line_drive · EV 94.7 / LA 14.02026-04-04 · field out · KC · fly_ball · EV 97.5 / LA 47.02026-04-04 · field out · ST · ground_ball · EV 61.7 / LA -14.02026-04-05 · home run · FF · fly_ball · EV 103.8 / LA 32.02026-04-05 · double · SI · line_drive · EV 100.6 / LA 20.02026-04-05 · field out · FF · ground_ball · EV 81.9 / LA -5.02026-04-05 · field out · SL · ground_ball · EV 70.7 / LA -8.02026-04-06 · double · FF · fly_ball · EV 97.0 / LA 24.02026-04-06 · grounded into double play · SI · ground_ball · EV 93.6 / LA -24.02026-04-07 · single · SI · line_drive · EV 96.2 / LA 12.02026-04-07 · field out · FF · fly_ball · EV 97.4 / LA 35.02026-04-07 · single · FF · ground_ball · EV 82.2 / LA 1.02026-04-08 · field out · SI · ground_ball · EV 92.3 / LA 1.02026-04-08 · grounded into double play · SL · ground_ball · EV 94.6 / LA -4.02026-04-08 · field out · SI · fly_ball · EV 97.0 / LA 39.02026-04-08 · field out · FF · line_drive · EV 95.5 / LA 18.02026-04-10 · field out · FF · ground_ball · EV 95.8 / LA 6.02026-04-10 · field out · FF · fly_ball · EV 106.7 / LA 22.02026-04-10 · single · SL · line_drive · EV 101.9 / LA 11.02026-04-10 · field out · FF · fly_ball · EV 79.4 / LA 44.02026-04-11 · sac fly · CU · line_drive · EV 101.2 / LA 22.02026-04-11 · field out · FF · fly_ball · EV 88.8 / LA 30.02026-04-11 · field out · CH · line_drive · EV 105.9 / LA 18.02026-04-11 · field out · FF · fly_ball · EV 92.2 / LA 55.02026-04-12 · field out · CU · ground_ball · EV 63.0 / LA -31.02026-04-12 · single · FF · ground_ball · EV 108.1 / LA 3.02026-04-12 · single · CH · fly_ball · EV 67.7 / LA 46.02026-04-13 · double · SI · fly_ball · EV 101.7 / LA 28.02026-04-13 · field out · CH · ground_ball · EV 92.8 / LA -1.02026-04-14 · field out · SL · ground_ball · EV 67.7 / LA 1.02026-04-14 · field out · FF · line_drive · EV 99.7 / LA 20.02026-04-14 · grounded into double play · SI · ground_ball · EV 92.3 / LA -13.02026-04-15 · single · FC · line_drive · EV 97.5 / LA 11.02026-04-15 · single · FF · ground_ball · EV 104.3 / LA 6.02026-04-15 · single · FF · line_drive · EV 67.6 / LA 24.02026-04-17 · field out · CH · ground_ball · EV 103.3 / LA -21.02026-04-17 · field out · FC · fly_ball · EV 94.9 / LA 39.02026-04-17 · field out · SI · ground_ball · EV 87.0 / LA -24.02026-04-18 · single · FF · ground_ball · EV 80.7 / LA -27.02026-04-18 · home run · FC · fly_ball · EV 106.5 / LA 37.02026-04-21 · field out · FF · line_drive · EV 105.5 / LA 16.02026-04-21 · field out · SI · fly_ball · EV 98.7 / LA 40.02026-04-21 · single · SI · ground_ball · EV 104.9 / LA 1.02026-04-22 · grounded into double play · FC · ground_ball · EV 82.0 / LA -12.02026-04-22 · field out · FF · ground_ball · EV 64.6 / LA -2.02026-04-22 · single · FF · line_drive · EV 96.8 / LA 7.02026-04-23 · single · SL · line_drive · EV 103.7 / LA 13.02026-04-23 · field out · CH · ground_ball · EV 92.3 / LA 2.02026-04-24 · field out · FF · fly_ball · EV 90.2 / LA 34.02026-04-24 · field out · FF · popup · EV 82.3 / LA 86.02026-04-24 · double · SI · line_drive · EV 107.0 / LA 14.02026-04-24 · single · FF · ground_ball · EV 99.3 / LA -4.02026-04-25 · field out · SI · ground_ball · EV 65.9 / LA -66.02026-04-25 · single · FF · line_drive · EV 100.3 / LA 13.02026-04-26 · grounded into double play · FF · ground_ball · EV 86.3 / LA -23.02026-04-26 · field out · KC · fly_ball · EV 98.4 / LA 55.02026-04-26 · field out · SL · line_drive · EV 98.0 / LA 12.02026-04-27 · single · FF · line_drive · EV 102.6 / LA 16.02026-04-27 · field out · FF · ground_ball · EV 100.6 / LA -12.02026-04-28 · home run · SI · fly_ball · EV 104.6 / LA 26.02026-04-28 · single · ST · line_drive · EV 102.5 / LA 13.02026-04-28 · grounded into double play · FF · ground_ball · EV 102.6 / LA -22.02026-04-29 · single · SI · line_drive · EV 66.1 / LA 20.02026-04-29 · field out · FF · fly_ball · EV 83.7 / LA 30.02026-04-29 · field out · SL · ground_ball · EV 91.7 / LA -8.02026-04-29 · field error · SI · ground_ball · EV 93.2 / LA -1.02026-04-30 · field out · FF · popup · EV 70.3 / LA 56.02026-04-30 · field out · ST · ground_ball · EV 60.2 / LA -16.02026-04-30 · field out · SI · line_drive · EV 92.3 / LA 24.02026-05-01 · field out · SI · ground_ball · EV 96.6 / LA -11.02026-05-01 · single · SI · line_drive · EV 105.2 / LA 13.02026-05-01 · field out · SL · line_drive · EV 92.2 / LA 8.02026-05-01 · field out · SL · ground_ball · EV 96.2 / LA -17.02026-05-01 · single · CU · line_drive · EV 97.1 / LA 17.02026-05-02 · single · SI · fly_ball · EV 94.5 / LA 28.02026-05-02 · double · SL · ground_ball · EV 100.5 / LA 6.02026-05-03 · grounded into double play · CH · ground_ball · EV 68.2 / LA -22.02026-05-05 · field out · SI · ground_ball · EV 93.4 / LA 1.02026-05-05 · field out · CU · fly_ball · EV 83.2 / LA 57.02026-05-06 · field out · FF · fly_ball · EV 77.3 / LA 35.02026-05-06 · field out · FF · ground_ball · EV 90.1 / LA -7.02026-05-06 · field out · FF · fly_ball · EV 95.0 / LA 54.02026-05-07 · field out · FF · fly_ball · EV 76.1 / LA 36.02026-05-07 · single · SL · ground_ball · EV 90.9 / LA 5.02026-05-08 · field out · FF · ground_ball · EV 91.9 / LA 0.02026-05-09 · single · SI · line_drive · EV 104.6 / LA 12.02026-05-09 · field out · FC · fly_ball · EV 91.6 / LA 37.02026-05-09 · field out · ST · fly_ball · EV 86.9 / LA 46.02026-05-09 · grounded into double play · EP · ground_ball · EV 87.3 / LA -4.02026-05-09 · single · CH · ground_ball · EV 87.0 / LA -25.02026-05-10 · field out · SI · ground_ball · EV 74.6 / LA -15.02026-05-10 · field out · FS · fly_ball · EV 81.9 / LA 37.02026-05-10 · single · FF · ground_ball · EV 94.7 / LA 1.02026-05-10 · field error · FF · ground_ball · EV 95.9 / LA 3.02026-05-10 · field out · SI · ground_ball · EV 101.6 / LA -2.02026-05-12 · force out · CU · ground_ball · EV 83.0 / LA -27.02026-05-12 · field out · FF · popup · EV 71.0 / LA 63.02026-05-13 · double · SV · line_drive · EV 95.6 / LA 11.02026-05-13 · grounded into double play · SI · ground_ball · EV 102.6 / LA 5.02026-05-13 · home run · FF · fly_ball · EV 100.4 / LA 28.02026-05-13 · field out · FF · fly_ball · EV 88.9 / LA 56.02026-05-14 · field out · SL · fly_ball · EV 97.5 / LA 33.02026-05-14 · single · SL · ground_ball · EV 97.4 / LA -3.02026-05-14 · single · SI · line_drive · EV 94.9 / LA 9.02026-05-14 · home run · FF · fly_ball · EV 104.1 / LA 29.02026-05-15 · field out · SI · ground_ball · EV 80.6 / LA -17.02026-05-15 · field out · FC · ground_ball · EV 56.3 / LA 4.02026-05-15 · field out · FF · fly_ball · EV 98.3 / LA 52.02026-05-16 · field out · SI · fly_ball · EV 86.3 / LA 36.02026-05-31 · single · FF · line_drive · EV 91.8 / LA 15.02026-05-31 · field out · FF · ground_ball · EV 72.4 / LA -56.02026-05-31 · home run · SL · fly_ball · EV 98.6 / LA 26.02026-06-04 · home run · FF · fly_ball · EV 94.0 / LA 31.02026-06-04 · field out · FF · line_drive · EV 88.8 / LA 26.02026-06-04 · single · FF · ground_ball · EV 97.3 / LA 3.02026-06-05 · grounded into double play · CH · ground_ball · EV 81.9 / LA -2.02026-06-07 · field out · FC · popup · EV 63.6 / LA 64.02026-06-07 · field out · SL · ground_ball · EV 82.6 / LA -39.02026-06-07 · field out · SI · ground_ball · EV 96.6 / LA 2.0 1B2B3BHROut Zone shading = batted-ball density by field third · hover dots for date, pitch, EV, and LA. MITHRANDIR · CHARTS
Zone profile

Aggregate zone heatmap

Aggregate zone metrics from seasonal Statcast leaderboards.

Mithrandir Metrics ZONE HEATMAP Parameterized Mithrandir chart rendered as SVG for templates and exports. season=2026 Swing Zone Profile O'Hearn, Ryan · Aggregate zone metrics; not pitch-by-pitch locations Zone: 47%47%Chase: 31%31%Whiff: 21%21%Zone contact: 88%88%Contact: 79%79%Hard hit: 45%45% Dashed border = aggregate mixed-batter zone proxy MITHRANDIR · CHARTS
Bat tracking

Swing path, attack angle, bat speed

Aggregate Savant bat-tracking metrics; not per-swing motion capture. The full swing, with the recommended path overlaid, lives in the 3D Swing Simulator.

Watch the swing in 3D →

2026
Mithrandir Metrics BAT SPEED DISTRIBUTION Parameterized Mithrandir chart rendered as SVG for templates and exports. Bat Speed O'Hearn, Ryan · aggregate bat speed marker 60 mph 85 mph Avg bat speed 70.7 mph Hard swing rate 9% Whiff / swing 14% MITHRANDIR · CHARTS
Reference layer

Current snapshot

Age32
Height6' 2"
Weight220 lb
Debut2018-07-31
Live layer

Delta / regression

xwOBA Δ-0.013
wOBA Δ+0.029

negative regression

Regression watch

Running hot. Expect some cooling.

-1.4σ gap
wOBA (actual)0.370
xwOBA (deserved)0.328

O'Hearn’s wOBA sits at 0.370, but the quality of contact underneath says it should be 0.328 — a gap of 0.042, -1.4 standard deviations from the MLB norm over 241 PA. The results have outrun the underlying process; as the sample grows, expect the numbers to drift back toward the deserved level.

Mithrandir coverage

Module shelf

ModuleCardsLatestSignal
No Mithrandir card history is available for this player yet.
Projection links / recent games

Available detail

Hitter Projections 20260.341 xwOBA | 17 HRProjection
2026-04-17 vs TB0 HR | 0 RBI / 4 Ch | 0 E0-4 | K
2026-04-15 vs WSH0 HR | 0 RBI / 0 Ch | 0 E3-4 | K, R, SB
2026-04-14 vs WSH0 HR | 0 RBI / 0 Ch | 0 E0-3 | BB
2026-04-13 vs WSH0 HR | 1 RBI / 1 Ch | 0 E1-5 | 2B, 3 K, RBI
2026-04-12 @ CHC0 HR | 0 RBI / 5 Ch | 0 E2-4 | K