Mithrandir Metrics
Hitter projection 2026 Refreshed Jul 17 06:00 AM ET
Hitter projection / PIT · 2026

O'Hearn, Ryan

Veteran bat leaning on contact and approach

Primary
0.341 xwOBA
Range
0.311 to 0.381
Live Δ
yes
Team PIT Archetype Balanced regular Age 33 Status Healthy / active roster
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-07-17
72
Offense
percentile
Offense9 metrics
63
Defense4 metrics
31
Speed2 metrics
17
Plate skills10 metrics
38
Rolling projection

Preseason / current pace / Bayesian update

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

2026-07-17
xwOBA preseason0.345
xwOBA current pace0.333
xwOBA rolling p500.338
Observed weight62%
xwOBA
0.314 0.325 0.338 0.350 0.361
wOBA
0.343 0.358 0.375 0.393 0.408
ISO
0.156 0.170 0.185 0.200 0.213
K%
19.1% 20.2% 21.4% 22.6% 23.7%
Current percentile strip

Actual percentile with projection tick

100th = best in MLB.

2026-07-17
Hitting · percentile strip
Barrel%6.1%
67 +20 vs proj
Exit velocity89.9
73
Hard-hit%44.9%
76
xBA0.346
76
xSLG0.567
69
xwOBA0.333
73
BB%7.8%
39
Bat speed69.0
40
K%21.7%
55
Defense · percentile strip
Arm Runs-1.1 · RF
18
Arm Strength84.8 · RF
3
Outs Above Avg1.0 · RF
80
Range Runs-2.3 · RF
25
Baserunning · percentile strip
Base Running Runs-3.1 · RF
2
Sprint Speed26.7 · RF
32
Mithrandir+

SEAGER+ and decision components

SEAGER+ is the promoted plate-discipline index; component rows marked rebadged research are visible diagnostic context, not standalone promoted metrics.

2026-07-17
Avoids Bad ChasesST 65.7% · rebadged research
51
Avoids Bad TakesHPT 29.2% · rebadged research
16
Correct Decisions63.5% · rebadged research
25
SEAGER+ Plate Discipline97
32
Resists Breaking - horizontalwOBA 0.297 · borderline
30
Resists Breaking - verticalwOBA 0.247 · insufficient sample
99
Resists ChangeupwOBA 0.278 · validated thin sample
57
Resists Cutters + splitterswOBA 0.328 · insufficient sample
60
Resists FastballwOBA 0.401 · validated
2
Resists SinkerwOBA 0.390 · validated
6
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.308 0.333 2026-07-06: 0.3212026-07-07: 0.3272026-07-08: 0.3252026-07-09: 0.3312026-07-10: 0.3302026-07-11: 0.3302026-07-12: 0.3302026-07-13: 0.3292026-07-14: 0.3332026-07-15: 0.3332026-07-16: 0.3332026-07-17: 0.333 2026-07-06 2026-07-17 xwOBA MITHRANDIR · CHARTS
Spray profile

Field-coordinate spray profile

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

All BIP Singles Doubles Triples HR vs LHP vs RHP Home / Away
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: 15% of plotted batted ballsPull 15%Center field third: 69% of plotted batted ballsCenter 69%Right field third: 16% of plotted batted ballsOppo 16% LF 325 CF 399 RF 320 2026-03-15 · field out · FF · ground_ball · EV 90.2 / LA 8.02026-03-17 · single · FF · line_drive · EV 104.3 / LA 9.02026-03-17 · field out · SL · line_drive · EV 88.4 / LA 25.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 · grounded into double play · SI · ground_ball · EV 93.6 / LA -24.02026-04-06 · double · FF · fly_ball · EV 97.0 / LA 24.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-07 · single · SI · line_drive · EV 96.2 / LA 12.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 · 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-10 · field out · FF · ground_ball · EV 95.8 / LA 6.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-11 · sac fly · CU · line_drive · EV 101.2 / LA 22.02026-04-12 · single · CH · fly_ball · EV 67.7 / LA 46.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-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 · grounded into double play · SI · ground_ball · EV 92.3 / LA -13.02026-04-14 · field out · FF · line_drive · EV 99.7 / LA 20.02026-04-14 · field out · SL · ground_ball · EV 67.7 / LA 1.02026-04-15 · single · FF · line_drive · EV 67.6 / LA 24.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-17 · field out · SI · ground_ball · EV 87.0 / LA -24.02026-04-17 · field out · FC · fly_ball · EV 94.9 / LA 39.02026-04-17 · field out · CH · ground_ball · EV 103.3 / LA -21.02026-04-18 · home run · FC · fly_ball · EV 106.5 / LA 37.02026-04-18 · single · FF · ground_ball · EV 80.7 / LA -27.02026-04-21 · single · SI · ground_ball · EV 104.9 / LA 1.02026-04-21 · field out · SI · fly_ball · EV 98.7 / LA 40.02026-04-21 · field out · FF · line_drive · EV 105.5 / LA 16.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-22 · grounded into double play · FC · ground_ball · EV 82.0 / LA -12.02026-04-23 · field out · CH · ground_ball · EV 92.3 / LA 2.02026-04-23 · single · SL · line_drive · EV 103.7 / LA 13.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-24 · field out · FF · fly_ball · EV 90.2 / LA 34.02026-04-25 · single · FF · line_drive · EV 100.3 / LA 13.02026-04-25 · field out · SI · ground_ball · EV 65.9 / LA -66.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 · field out · FF · ground_ball · EV 100.6 / LA -12.02026-04-27 · single · FF · line_drive · EV 102.6 / LA 16.02026-04-28 · single · ST · line_drive · EV 102.5 / LA 13.02026-04-28 · home run · SI · fly_ball · EV 104.6 / LA 26.02026-04-28 · grounded into double play · FF · ground_ball · EV 102.6 / LA -22.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-29 · field out · FF · fly_ball · EV 83.7 / LA 30.02026-04-29 · single · SI · line_drive · EV 66.1 / LA 20.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 · CU · line_drive · EV 97.1 / LA 17.02026-05-01 · single · SI · line_drive · EV 105.2 / LA 13.02026-05-01 · field out · SL · ground_ball · EV 96.2 / LA -17.02026-05-01 · field out · SL · line_drive · EV 92.2 / LA 8.02026-05-02 · double · SL · ground_ball · EV 100.5 / LA 6.02026-05-02 · single · SI · fly_ball · EV 94.5 / LA 28.02026-05-03 · grounded into double play · CH · ground_ball · EV 68.2 / LA -22.02026-05-05 · field out · CU · fly_ball · EV 83.2 / LA 57.02026-05-05 · field out · SI · ground_ball · EV 93.4 / LA 1.02026-05-06 · field out · FF · fly_ball · EV 95.0 / LA 54.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-07 · single · SL · ground_ball · EV 90.9 / LA 5.02026-05-07 · field out · FF · fly_ball · EV 76.1 / LA 36.02026-05-08 · field out · FF · ground_ball · EV 91.9 / LA 0.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 · single · SI · line_drive · EV 104.6 / LA 12.02026-05-09 · single · CH · ground_ball · EV 87.0 / LA -25.02026-05-09 · grounded into double play · EP · ground_ball · EV 87.3 / LA -4.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 74.6 / LA -15.02026-05-10 · field out · SI · ground_ball · EV 101.6 / LA -2.02026-05-10 · field out · FS · fly_ball · EV 81.9 / LA 37.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 · grounded into double play · SI · ground_ball · EV 102.6 / LA 5.02026-05-13 · field out · FF · fly_ball · EV 88.9 / LA 56.02026-05-13 · home run · FF · fly_ball · EV 100.4 / LA 28.02026-05-13 · double · SV · line_drive · EV 95.6 / LA 11.02026-05-14 · home run · FF · fly_ball · EV 104.1 / LA 29.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-15 · field out · FF · fly_ball · EV 98.3 / LA 52.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-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 · SI · ground_ball · EV 96.6 / 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-15 · field out · CU · fly_ball · EV 100.8 / LA 38.02026-06-15 · single · SI · line_drive · EV 101.8 / LA 12.02026-06-15 · field out · CH · ground_ball · EV 97.2 / LA -24.02026-06-20 · field out · CU · ground_ball · EV 34.7 / LA -55.02026-06-20 · field out · CU · ground_ball · EV 83.7 / LA -13.02026-06-24 · double · SL · line_drive · EV 101.8 / LA 18.02026-06-24 · double · FF · line_drive · EV 83.0 / LA 16.02026-06-24 · single · FF · line_drive · EV 71.8 / LA 22.02026-06-24 · double · FF · fly_ball · EV 78.3 / LA 48.02026-06-24 · field out · SL · popup · EV 85.7 / LA 73.02026-06-26 · field out · FF · ground_ball · EV 98.2 / LA -16.02026-07-01 · field out · FF · popup · EV 90.4 / LA 68.02026-07-01 · field out · FS · ground_ball · EV 99.9 / LA 7.02026-07-01 · single · FF · ground_ball · EV 103.8 / LA 2.0 1B2B3BHROut Zone shading = batted-ball density by field third · hover dots for date, pitch, EV, and LA. 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
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: 48%48%Chase: 32%32%Whiff: 19%19%Zone contact: 90%90%Contact: 81%81%Hard hit: 45%45% Dashed border = aggregate mixed-batter zone proxy MITHRANDIR · CHARTS
Model read

Projection notes

1
templated note
Profile still plays best against righties (0.290 vs 0.248 xwOBA split).
2
templated note
Home park trims some of the raw HR output despite the underlying power.
3
templated note
Age-33 season adds a little downside to the power band.
Live context

Current-season signal

xwOBA Δ-0.008
wOBA Δ+0.035
Sample359 PA

negative regression

Projection table

Point projection and range

MetricPointRangeHalf-width
Plate Appearances539----
Home Runs17----
Stolen Bases0----
xwOBA0.3410.311 to 0.381+/- 0.035
ISO0.1640.123 to 0.245+/- 0.061
Barrel%5.0%3.3% to 6.8%+/- 1.8%
Hard-Hit%42.4%38.2% to 49.3%+/- 5.5%
K%20.2%16.0% to 24.2%+/- 4.1%
BB%8.8%7.4% to 11.6%+/- 2.1%
BABIP0.3070.275 to 0.354+/- 0.039
Platoon / Shape
vs LHP

377 career PA

xwOBA0.248
K%18.9%
BB%6.4%
Barrel3.5%
vs RHP

2252 career PA

xwOBA0.290
K%15.4%
BB%7.7%
Barrel4.7%