Mithrandir Metrics
Hitter projection 2026 Refreshed Sep 2 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 IL-10
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-09-02
67
Offense
percentile
Offense9 metrics
60
Defense4 metrics
31
Speed1 metrics
35
Plate skills10 metrics
42
Rolling projection

Preseason / current pace / Bayesian update

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

Pending

Rolling player projection appears after current-season Statcast and projection joins refresh.

Current percentile strip

Actual percentile with projection tick

100th = best in MLB.

2026-09-02
Hitting · percentile strip
Barrel%5.5%
60
Exit velocity89.5
71
Hard-hit%43.6%
74
xBA0.333
68
xSLG0.539
61
xwOBA0.321
70
BB%7.9%
42
Bat speed69.0
42
K%21.5%
57
Defense · percentile strip
Arm Runs-1.2 · RF
22
Arm Strength84.8 · RF
2
Outs Above Avg1.0 · RF
80
Range Runs-3.1 · RF
18
Baserunning · percentile strip
Sprint Speed26.9 · RF
35
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-09-02
Avoids Bad ChasesST 65.9% · rebadged research
54
Avoids Bad TakesHPT 28.6% · rebadged research
20
Correct Decisions63.8% · rebadged research
26
SEAGER+ Plate Discipline98
36
Resists Breaking - horizontalwOBA 0.302 · borderline
25
Resists Breaking - verticalwOBA 0.246 · insufficient sample
99
Resists ChangeupwOBA 0.270 · validated thin sample
75
Resists Cutters + splitterswOBA 0.320 · insufficient sample
75
Resists FastballwOBA 0.399 · validated
2
Resists SinkerwOBA 0.388 · validated
5
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.303 0.321 2026-08-22: 0.3212026-08-23: 0.3212026-08-24: 0.3212026-08-25: 0.3212026-08-26: 0.3212026-08-27: 0.3212026-08-28: 0.3212026-08-29: 0.3212026-08-30: 0.3212026-08-31: 0.3212026-09-01: 0.3212026-09-02: 0.321 2026-08-22 2026-09-02 xwOBA MITHRANDIR · CHARTS
Spray profile

Field-coordinate spray profile

172 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 · fly_ball · EV 105.9 / LA 25.02026-03-19 · field out · SI · ground_ball · EV 85.7 / LA -51.02026-03-20 · field out · SI · ground_ball · EV 88.1 / LA -29.02026-03-20 · field out · FF · fly_ball · EV 103.8 / LA 23.02026-03-20 · field out · SI · ground_ball · EV 101.4 / LA -12.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 · field out · FF · line_drive · EV 102.7 / LA 21.02026-03-23 · grounded into double play · FS · ground_ball · EV 68.2 / LA -6.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-26 · field out · FF · ground_ball · EV 93.4 / LA -14.02026-03-28 · field out · ST · ground_ball · EV 90.8 / LA 0.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 · SL · ground_ball · EV 65.1 / LA -11.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-29 · single · ST · fly_ball · EV 74.4 / LA 31.02026-03-30 · field out · CH · ground_ball · EV 63.3 / LA -10.02026-03-30 · single · CH · line_drive · EV 71.1 / LA 22.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 · field out · SL · ground_ball · EV 70.7 / LA -8.02026-04-05 · field out · FF · ground_ball · EV 81.9 / LA -5.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-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 · 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 · fly_ball · EV 97.0 / LA 39.02026-04-08 · grounded into double play · SL · ground_ball · EV 94.6 / LA -4.02026-04-08 · field out · FF · line_drive · EV 95.5 / LA 18.02026-04-08 · field out · SI · ground_ball · EV 92.3 / LA 1.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-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-11 · sac fly · CU · line_drive · EV 101.2 / LA 22.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 · field out · FF · fly_ball · EV 88.8 / LA 30.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 · field out · CH · ground_ball · EV 92.8 / LA -1.02026-04-13 · double · SI · fly_ball · EV 101.7 / LA 28.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 · ground_ball · EV 104.3 / LA 6.02026-04-15 · single · FC · line_drive · EV 97.5 / LA 11.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 · 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 · 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 · double · SI · line_drive · EV 107.0 / LA 14.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 · single · FF · ground_ball · EV 99.3 / LA -4.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 · 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-26 · grounded into double play · FF · ground_ball · EV 86.3 / LA -23.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 · grounded into double play · FF · ground_ball · EV 102.6 / LA -22.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-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 · ST · ground_ball · EV 60.2 / LA -16.02026-04-30 · field out · SI · line_drive · EV 92.3 / LA 24.02026-04-30 · field out · FF · popup · EV 70.3 / LA 56.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 · single · CU · line_drive · EV 97.1 / LA 17.02026-05-01 · field out · SI · ground_ball · EV 96.6 / LA -11.02026-05-01 · field out · SL · ground_ball · EV 96.2 / LA -17.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 · 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 · ground_ball · EV 90.1 / LA -7.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-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 · 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-09 · single · SI · line_drive · EV 104.6 / LA 12.02026-05-09 · field out · ST · fly_ball · EV 86.9 / LA 46.02026-05-09 · field out · FC · fly_ball · EV 91.6 / LA 37.02026-05-10 · field out · SI · ground_ball · EV 101.6 / LA -2.02026-05-10 · field out · SI · ground_ball · EV 74.6 / LA -15.02026-05-10 · field error · FF · ground_ball · EV 95.9 / LA 3.02026-05-10 · single · FF · ground_ball · EV 94.7 / LA 1.02026-05-10 · field out · FS · fly_ball · EV 81.9 / LA 37.02026-05-12 · field out · FF · popup · EV 71.0 / LA 63.02026-05-12 · force out · CU · ground_ball · EV 83.0 / LA -27.02026-05-13 · home run · FF · fly_ball · EV 100.4 / LA 28.02026-05-13 · grounded into double play · SI · ground_ball · EV 102.6 / LA 5.02026-05-13 · double · SV · line_drive · EV 95.6 / LA 11.02026-05-13 · field out · FF · fly_ball · EV 88.9 / LA 56.02026-05-14 · home run · FF · fly_ball · EV 104.1 / LA 29.02026-05-14 · single · SI · line_drive · EV 94.9 / LA 9.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-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 · home run · SL · fly_ball · EV 98.6 / LA 26.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-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 · SL · ground_ball · EV 82.6 / LA -39.02026-06-07 · field out · FC · popup · EV 63.6 / LA 64.02026-06-15 · field out · CH · ground_ball · EV 97.2 / LA -24.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-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 · single · FF · ground_ball · EV 103.8 / LA 2.02026-07-01 · field out · FS · ground_ball · EV 99.9 / LA 7.02026-07-01 · field out · FF · popup · EV 90.4 / LA 68.02026-07-27 · field out · CH · line_drive · EV 99.9 / LA 18.02026-07-27 · field out · CH · ground_ball · EV 62.5 / LA -39.02026-07-27 · field out · CH · fly_ball · EV 93.8 / LA 43.02026-07-27 · field out · FC · popup · EV 77.0 / LA 66.02026-07-31 · field out · FF · ground_ball · EV 78.7 / LA -5.02026-07-31 · field out · FS · popup · EV 69.2 / LA 62.02026-07-31 · field out · FF · ground_ball · EV 92.2 / LA -24.02026-07-31 · single · FF · ground_ball · EV 86.8 / LA -10.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: 47%47%Chase: 31%31%Whiff: 20%20%Zone contact: 88%88%Contact: 80%80%Hard hit: 44%44% 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 Δ--
wOBA Δ--
Sample419 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%