Mithrandir Metrics
Hitter projection 2026 Refreshed Jul 16 06:00 AM ET
Hitter projection / BOS · 2026

Contreras, Willson

Veteran bat leaning on contact and approach

Primary
0.359 xwOBA
Range
0.316 to 0.393
Live Δ
yes
Team BOS Archetype Balanced regular Age 34 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-16
90
Offense
percentile
Offense9 metrics
82
Defense2 metrics
36
Speed2 metrics
28
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-16
xwOBA preseason0.356
xwOBA current pace0.390
xwOBA rolling p500.378
Observed weight63%
xwOBA
0.353 0.365 0.378 0.391 0.403
wOBA
0.392 0.407 0.424 0.441 0.457
ISO
0.192 0.206 0.222 0.238 0.252
K%
21.7% 22.9% 24.2% 25.5% 26.7%
Current percentile strip

Actual percentile with projection tick

100th = best in MLB.

2026-07-16
Hitting · percentile strip
Barrel%8.7%
89
Exit velocity90.4
80
Hard-hit%47.0%
83
xBA0.386
95
xSLG0.740
96
xwOBA0.390
98
BB%9.4%
61
Bat speed74.4
96
K%24.4%
40
Defense · percentile strip
Outs Above Avg-1.0 · 1B
28
Range Runs-0.4 · 1B
43
Baserunning · percentile strip
Base Running Runs-1.7 · 1B
8
Sprint Speed27.3 · 1B
48
SB Success Rate50.0% · 1B
Small sample
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-16
Avoids Bad ChasesST 64.3% · rebadged research
43
Avoids Bad TakesHPT 24.0% · rebadged research
61
Correct Decisions65.5% · rebadged research
42
SEAGER+ Plate Discipline101
49
Resists Breaking - horizontalwOBA 0.313 · borderline
10
Resists Breaking - verticalwOBA 0.272 · insufficient sample
75
Resists ChangeupwOBA 0.302 · validated thin sample
11
Resists Cutters + splitterswOBA 0.329 · insufficient sample
60
Resists FastballwOBA 0.348 · validated
33
Resists SinkerwOBA 0.428 · validated
1
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 Contreras, Willson · Live snapshot series; true 50/100 PA windows require PA-level logs LG AVG 0.308 0.390 2026-07-05: 0.3802026-07-06: 0.3832026-07-07: 0.3862026-07-08: 0.3862026-07-09: 0.3852026-07-10: 0.3902026-07-11: 0.3902026-07-12: 0.3902026-07-13: 0.3902026-07-14: 0.3902026-07-15: 0.3902026-07-16: 0.390 2026-07-05 2026-07-16 xwOBA MITHRANDIR · CHARTS
Spray profile

Field-coordinate spray profile

171 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 Contreras, Willson · Statcast batted-ball landing coordinates Left field third: 19% of plotted batted ballsPull 19%Center field third: 73% of plotted batted ballsCenter 73%Right field third: 9% of plotted batted ballsOppo 9% LF 310 CF 390 RF 302 2026-03-19 · single · CH · ground_ball · EV 103.4 / LA -15.02026-03-19 · double · SL · line_drive · EV 101.0 / LA 3.02026-03-20 · field out · SL · line_drive · EV 91.0 / LA 22.02026-03-20 · single · CH · ground_ball · EV 107.8 / LA 0.02026-03-20 · field out · CU · ground_ball · EV 67.2 / LA -17.02026-03-21 · field out · CH · ground_ball · EV 80.3 / LA 3.02026-03-23 · field out · FF · ground_ball · EV 107.1 / LA -17.02026-03-23 · field out · FF · popup · EV 87.1 / LA 67.02026-03-23 · double play · SI · line_drive · EV 44.7 / LA 14.02026-03-24 · field out · FC · fly_ball · EV 99.6 / LA 28.02026-03-24 · field error · SL · ground_ball · EV 53.6 / LA -61.02026-03-26 · field out · FF · popup · EV 87.7 / LA 64.02026-03-26 · field out · FF · ground_ball2026-03-26 · field out · FF · popup · EV 81.3 / LA 87.02026-03-29 · grounded into double play · FF · ground_ball2026-03-29 · single · FF · ground_ball · EV 110.3 / LA 3.02026-03-29 · field out · FF · line_drive · EV 84.2 / LA 26.02026-03-30 · field out · ST · ground_ball · EV 63.0 / LA 16.02026-03-30 · force out · SI · ground_ball · EV 101.2 / LA 7.02026-03-31 · field out · SI · ground_ball · EV 100.8 / LA -1.02026-03-31 · field out · SI · line_drive · EV 58.2 / LA 19.02026-03-31 · field out · SI · popup · EV 85.6 / LA 77.02026-03-31 · single · SI · ground_ball · EV 82.4 / LA -41.02026-04-01 · single · SI · ground_ball · EV 91.0 / LA -10.02026-04-01 · field out · SI · ground_ball · EV 103.6 / LA -15.02026-04-03 · home run · SI · fly_ball · EV 108.7 / LA 32.02026-04-03 · field out · CH · ground_ball · EV 92.4 / LA 0.02026-04-04 · single · SI · ground_ball · EV 85.2 / LA 8.02026-04-04 · grounded into double play · CU · ground_ball · EV 102.2 / LA 3.02026-04-04 · field out · FF · line_drive · EV 104.2 / LA 21.02026-04-05 · field out · ST · ground_ball · EV 77.9 / LA -36.02026-04-05 · force out · SI · ground_ball · EV 91.5 / LA -30.02026-04-06 · double · SI · fly_ball · EV 74.4 / LA 36.02026-04-06 · single · SI · line_drive · EV 93.4 / LA 16.02026-04-06 · home run · CH · fly_ball · EV 105.3 / LA 33.02026-04-07 · single · CU · line_drive · EV 94.4 / LA 11.02026-04-08 · field out · FC · fly_ball · EV 97.7 / LA 35.02026-04-08 · field out · SI · line_drive · EV 62.2 / LA 19.02026-04-08 · single · SI · line_drive · EV 108.6 / LA 11.02026-04-10 · field out · ST · fly_ball · EV 95.0 / LA 42.02026-04-10 · field out · ST · fly_ball · EV 106.9 / LA 41.02026-04-11 · double · SL · line_drive · EV 112.8 / LA 11.02026-04-11 · single · SI · ground_ball · EV 109.7 / LA 0.02026-04-12 · home run · SI · fly_ball · EV 106.2 / LA 28.02026-04-12 · single · SL · line_drive · EV 81.6 / LA 15.02026-04-12 · single · CH · ground_ball · EV 55.4 / LA -67.02026-04-12 · field out · FC · fly_ball · EV 102.9 / LA 52.02026-04-12 · single · SI · line_drive · EV 83.9 / LA 13.02026-04-13 · single · SL · ground_ball · EV 76.6 / LA -2.02026-04-17 · field out · FF · fly_ball · EV 102.9 / LA 48.02026-04-17 · field out · FF · fly_ball · EV 99.4 / LA 42.02026-04-18 · single · FC · line_drive · EV 100.8 / LA 11.02026-04-19 · home run · SI · fly_ball · EV 109.4 / LA 32.02026-04-19 · field out · SI · ground_ball · EV 109.2 / LA -17.02026-04-19 · field out · CU · fly_ball · EV 84.3 / LA 30.02026-04-20 · single · FF · ground_ball · EV 103.2 / LA -3.02026-04-20 · field out · FF · line_drive · EV 82.5 / LA 24.02026-04-20 · field out · SL · fly_ball · EV 108.9 / LA 23.02026-04-20 · field out · FF · popup · EV 89.4 / LA 61.02026-04-21 · single · FF · line_drive · EV 113.2 / LA 9.02026-04-21 · field out · CH · fly_ball · EV 89.3 / LA 40.02026-04-21 · field out · SL · popup · EV 85.8 / LA 74.02026-04-21 · field out · SI · ground_ball · EV 85.6 / LA -38.02026-04-22 · field out · FC · ground_ball · EV 71.5 / LA -21.02026-04-22 · field out · ST · popup · EV 53.1 / LA 45.02026-04-23 · field out · FF · fly_ball · EV 73.9 / LA 37.02026-04-23 · field out · FS · ground_ball · EV 100.2 / LA -8.02026-04-25 · single · CH · line_drive · EV 83.6 / LA 16.02026-04-25 · field out · CH · ground_ball · EV 96.1 / LA -24.02026-04-25 · home run · EP · fly_ball · EV 104.2 / LA 29.02026-04-25 · sac fly · FC · fly_ball · EV 106.4 / LA 43.02026-04-26 · field out · SI · ground_ball · EV 92.4 / LA -1.02026-04-26 · home run · SL · fly_ball · EV 108.6 / LA 31.02026-04-27 · field out · FF · ground_ball · EV 95.0 / LA 5.02026-04-27 · single · FF · line_drive · EV 90.3 / LA 9.02026-04-27 · field out · SI · popup · EV 96.8 / LA 66.02026-04-28 · field out · FF · ground_ball · EV 90.4 / LA -5.02026-04-28 · field out · SI · ground_ball · EV 78.2 / LA -2.02026-04-28 · double · FF · line_drive · EV 104.3 / LA 21.02026-04-29 · home run · FF · fly_ball · EV 103.9 / LA 28.02026-04-29 · field out · CH · fly_ball · EV 108.0 / LA 44.02026-04-29 · double play · SL · line_drive · EV 80.7 / LA 12.02026-04-29 · single · SI · line_drive · EV 107.8 / LA 11.02026-05-01 · single · SI · line_drive · EV 91.2 / LA 19.02026-05-02 · field out · FF · fly_ball · EV 85.8 / LA 46.02026-05-02 · sac fly · SI · fly_ball · EV 102.5 / LA 25.02026-05-02 · grounded into double play · SI · ground_ball · EV 72.5 / LA 4.02026-05-02 · single · CH · line_drive · EV 109.5 / LA 11.02026-05-02 · field out · SI · ground_ball · EV 66.6 / LA -2.02026-05-03 · single · SL · ground_ball · EV 65.8 / LA -16.02026-05-03 · double · SL · fly_ball · EV 110.5 / LA 24.02026-05-03 · single · SI · line_drive · EV 87.7 / LA 15.02026-05-04 · field out · FF · popup · EV 58.0 / LA 66.02026-05-04 · force out · FF · ground_ball · EV 79.4 / LA -29.02026-05-05 · field out · SI · ground_ball · EV 103.5 / LA -23.02026-05-05 · home run · SI · fly_ball · EV 111.9 / LA 32.02026-05-05 · field out · SI · ground_ball · EV 80.5 / LA -40.02026-05-06 · sac fly · FF · fly_ball · EV 76.2 / LA 30.02026-05-07 · field out · SI · ground_ball · EV 103.3 / LA -14.02026-05-07 · field out · FC · ground_ball · EV 53.2 / LA 9.02026-05-07 · single · SI · line_drive · EV 111.9 / LA 10.02026-05-08 · field out · SI · popup · EV 60.5 / LA 37.02026-05-13 · field out · SI · fly_ball · EV 82.5 / LA 34.02026-05-13 · grounded into double play · ST · ground_ball · EV 71.6 / LA -13.02026-05-13 · grounded into double play · SI · ground_ball · EV 105.0 / LA 1.02026-05-14 · field out · FF · fly_ball · EV 89.7 / LA 36.02026-05-14 · double · CH · fly_ball · EV 91.0 / LA 25.02026-05-14 · field out · CH · ground_ball · EV 97.9 / LA -8.02026-05-14 · field out · SI · popup · EV 82.5 / LA 80.02026-05-15 · field out · SL · ground_ball · EV 66.4 / LA -28.02026-05-15 · field out · SL · fly_ball · EV 82.1 / LA 45.02026-05-16 · fielders choice · SL · ground_ball · EV 70.0 / LA -17.02026-05-16 · single · SI · ground_ball · EV 113.0 / LA 4.02026-05-16 · home run · SL · fly_ball · EV 106.1 / LA 26.02026-05-17 · field out · SI · ground_ball · EV 81.5 / LA -29.02026-05-17 · field out · FF · line_drive · EV 95.4 / LA 23.02026-05-17 · double · SI · ground_ball · EV 101.0 / LA -5.02026-05-18 · field out · SI · ground_ball · EV 59.8 / LA 5.02026-05-18 · field out · SI · ground_ball · EV 100.6 / LA -2.02026-05-18 · home run · SI · fly_ball · EV 110.0 / LA 32.02026-05-18 · field out · SI · popup · EV 85.5 / LA 70.02026-05-19 · single · FF · line_drive · EV 84.0 / LA 20.02026-05-19 · field out · ST · ground_ball · EV 71.1 / LA 16.02026-05-19 · field out · FF · ground_ball · EV 92.8 / LA 3.02026-05-19 · single · SL · line_drive · EV 97.3 / LA 14.02026-05-20 · single · CH · ground_ball · EV 81.2 / LA 5.02026-05-20 · single · FF · ground_ball · EV 99.1 / LA 2.02026-05-20 · triple · FC · line_drive · EV 95.6 / LA 20.02026-05-20 · field out · CU · ground_ball · EV 85.5 / LA -7.02026-05-22 · triple · CH · fly_ball · EV 102.2 / LA 24.02026-05-22 · field out · SI · ground_ball · EV 40.3 / LA -28.02026-05-22 · grounded into double play · CH · ground_ball · EV 89.7 / LA -17.02026-05-23 · single · FC · ground_ball · EV 101.2 / LA -20.02026-05-23 · field out · FF · popup · EV 58.1 / LA 49.02026-05-23 · single · FF · line_drive · EV 72.5 / LA 22.02026-05-24 · field out · ST · fly_ball · EV 86.2 / LA 51.02026-05-24 · home run · SI · fly_ball · EV 105.6 / LA 31.02026-05-24 · single · CH · ground_ball · EV 84.4 / LA 7.02026-05-26 · field out · SI · popup · EV 63.5 / LA 36.02026-05-26 · single · FF · ground_ball · EV 81.6 / LA 6.02026-05-26 · field out · FF · popup · EV 82.0 / LA 75.02026-05-26 · single · FF · ground_ball · EV 107.6 / LA -2.02026-05-27 · single · FF · line_drive · EV 103.7 / LA 8.02026-05-27 · field out · SI · popup · EV 99.4 / LA 68.02026-05-27 · field out · SI · ground_ball · EV 92.1 / LA -3.02026-06-04 · home run · SI · fly_ball · EV 100.2 / LA 33.02026-06-04 · single · FF · ground_ball · EV 105.5 / LA 6.02026-06-04 · field out · FF · popup · EV 92.5 / LA 67.02026-06-05 · single · SL · ground_ball · EV 52.3 / LA -72.02026-06-05 · field out · CH · line_drive · EV 102.2 / LA 22.02026-06-07 · double · FC · line_drive · EV 110.0 / LA 19.02026-06-07 · field out · SI · fly_ball · EV 102.6 / LA 53.02026-06-07 · field out · FF · popup · EV 80.8 / LA 55.02026-06-18 · field out · CH · ground_ball · EV 77.7 / LA -29.02026-06-18 · field out · FF · ground_ball · EV 92.0 / LA -1.02026-06-18 · field out · FF · ground_ball · EV 77.4 / LA 5.02026-06-20 · field out · FF · fly_ball · EV 97.0 / LA 55.02026-06-22 · double play · FF · line_drive · EV 97.3 / LA 9.02026-06-22 · double · SI · line_drive · EV 98.3 / LA 15.02026-06-22 · field out · FF · fly_ball · EV 98.3 / LA 51.02026-06-22 · field out · ST · fly_ball · EV 76.4 / LA 51.02026-06-24 · field out · FF · line_drive · EV 90.1 / LA 25.02026-06-24 · field out · FC · ground_ball · EV 49.1 / LA 13.02026-06-24 · double · KC · fly_ball · EV 102.2 / LA 34.02026-06-26 · home run · ST · fly_ball · EV 111.9 / LA 36.02026-06-26 · single · SI · line_drive · EV 84.6 / LA 16.02026-06-30 · field error · FF · ground_ball · EV 96.0 / LA -10.02026-07-01 · field out · FC · popup · EV 86.6 / LA 66.02026-07-01 · single · FF · ground_ball · EV 99.6 / LA 7.02026-07-01 · single · FF · line_drive · EV 113.4 / LA 13.02026-07-01 · field out · FF · ground_ball · EV 90.5 / LA -1.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 Contreras, Willson · aggregate bat speed marker 60 mph 85 mph Avg bat speed 76.1 mph Hard swing rate 64% Whiff / swing 34% 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 Contreras, Willson · Aggregate zone metrics; not pitch-by-pitch locations Zone: 45%45%Chase: 33%33%Whiff: 29%29%Zone contact: 84%84%Contact: 71%71%Hard hit: 47%47% Dashed border = aggregate mixed-batter zone proxy MITHRANDIR · CHARTS
Model read

Projection notes

1
templated note
Age-34 season adds a little downside to the power band.
Live context

Current-season signal

xwOBA Δ+0.031
wOBA Δ+0.065
Sample381 PA

negative regression

Projection table

Point projection and range

MetricPointRangeHalf-width
Plate Appearances528----
Home Runs20----
Stolen Bases0----
xwOBA0.3590.316 to 0.393+/- 0.039
ISO0.1830.142 to 0.271+/- 0.065
Barrel%7.2%5.1% to 9.8%+/- 2.4%
Hard-Hit%46.6%42.2% to 53.1%+/- 5.4%
K%24.2%20.2% to 29.5%+/- 4.6%
BB%9.0%7.6% to 11.8%+/- 2.1%
BABIP0.3300.281 to 0.375+/- 0.047
Platoon / Shape
vs LHP

1168 career PA

xwOBA0.306
K%20.6%
BB%9.5%
Barrel6.1%
vs RHP

3337 career PA

xwOBA0.294
K%21.1%
BB%7.2%
Barrel6.4%