Mithrandir Metrics
Player Chicago Cubs Refreshed Sep 2 06:00 AM ET
Player profile / Chicago Cubs

Ian Happ

LF · Bats/Throws S/R · 5' 10", 205 lb · Age 32

Cards
30
Modules
2
Live Δ
yes
Club Chicago Cubs Position LF Roster Current MLB team Status Healthy / active roster
Traditional line

Season by season

PARHHRSBAVGOBPSLGOPS
2024657891382513.243.341.441.782
202566387138236.243.342.420.762
202656480107234.220.325.420.745
10 Seasons5013647105719674.244.341.444.785
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
63
Offense
percentile
Offense9 metrics
61
Defense4 metrics
66
Speed2 metrics
45
Plate skills10 metrics
49
Rolling projection

Preseason / current pace / Bayesian update

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

2026-09-02
xwOBA preseason0.335
xwOBA current pace0.311
xwOBA rolling p500.318
Observed weight72%
xwOBA
0.296 0.306 0.318 0.329 0.340
wOBA
0.326 0.338 0.351 0.364 0.376
ISO
0.172 0.183 0.196 0.209 0.220
K%
26.2% 27.2% 28.4% 29.6% 30.6%
Live percentile strip

Current traits vs projection tick

100th = best in MLB.

2026-09-02
Hitting · percentile strip
Barrel%6.4%
72
Exit velocity88.8
61
Hard-hit%41.2%
62
xBA0.314
44
xSLG0.608
81
xwOBA0.311
58 -29 vs proj
BB%12.8%
90
Bat speed70.3
61
K%29.8%
17 -23 vs proj
Defense · percentile strip
Arm Runs3.9 · LF
97
Arm Strength91.4 · LF
31
Outs Above Avg1.0 · LF
80
Range Runs0.6 · LF
54
Baserunning · percentile strip
Base Running Runs-0.9 · LF
25
Sprint Speed28.0 · LF
66
SB Success Rate66.7% · LF
Small sample
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-09-02
Avoids Bad ChasesST 72.2% · rebadged research
84
Avoids Bad TakesHPT 24.5% · rebadged research
56
Correct Decisions69.2% · rebadged research
80
Resists FastballwOBA 0.329 · validated
69
SEAGER+ Plate Discipline107
84
Resists Breaking - horizontalwOBA 0.323 · borderline
8
Resists Breaking - verticalwOBA 0.293 · insufficient sample
17
Resists ChangeupwOBA 0.272 · validated thin sample
69
Resists Cutters + splitterswOBA 0.372 · insufficient sample
3
Resists SinkerwOBA 0.369 · validated
24
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 Happ, Ian · Live snapshot series; true 50/100 PA windows require PA-level logs LG AVG 0.303 0.311 2026-08-22: 0.3112026-08-23: 0.3112026-08-24: 0.3112026-08-25: 0.3142026-08-26: 0.3142026-08-27: 0.3142026-08-28: 0.3142026-08-29: 0.3142026-08-30: 0.3112026-08-31: 0.3122026-09-01: 0.3122026-09-02: 0.311 2026-08-22 2026-09-02 xwOBA MITHRANDIR · CHARTS
Spray profile

Field-coordinate spray profile

196 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 Happ, Ian · Statcast batted-ball landing coordinates Left field third: 11% of plotted batted ballsPull 11%Center field third: 65% of plotted batted ballsCenter 65%Right field third: 24% of plotted batted ballsOppo 24% LF 355 CF 400 RF 353 2026-03-15 · field out · CH · fly_ball · EV 98.7 / LA 47.02026-03-15 · double · FF · fly_ball · EV 93.7 / LA 28.02026-03-15 · field out · FF · fly_ball · EV 74.4 / LA 38.02026-03-17 · field out · CH · popup · EV 97.8 / LA 69.02026-03-20 · field out · CH · fly_ball · EV 101.6 / LA 34.02026-03-20 · field out · CU · fly_ball · EV 76.8 / LA 30.02026-03-20 · single · FC · fly_ball · EV 63.5 / LA 34.02026-03-22 · field out · FF · fly_ball · EV 78.1 / LA 50.02026-03-22 · home run · FF · fly_ball · EV 105.7 / LA 30.02026-03-26 · single · FF · line_drive · EV 106.2 / LA 9.02026-03-26 · field out · FF · fly_ball · EV 108.5 / LA 32.02026-03-28 · field out · CH · ground_ball · EV 54.0 / LA -49.02026-03-28 · home run · FC · line_drive · EV 111.2 / LA 22.02026-03-28 · field out · CH · fly_ball · EV 86.2 / LA 47.02026-03-28 · field out · CH · fly_ball · EV 84.4 / LA 40.02026-03-29 · home run · SI · fly_ball · EV 99.8 / LA 29.02026-03-30 · home run · FC · fly_ball · EV 101.6 / LA 42.02026-03-30 · field out · FS · ground_ball · EV 74.5 / LA 6.02026-03-30 · field out · FF · ground_ball · EV 103.2 / LA -22.02026-03-30 · grounded into double play · CH · ground_ball · EV 83.9 / LA 4.02026-03-31 · field out · FS · ground_ball · EV 78.9 / LA -2.02026-04-01 · force out · FS · ground_ball · EV 102.7 / LA -21.02026-04-01 · double · FF · popup · EV 94.9 / LA 61.02026-04-01 · field out · FF · fly_ball · EV 83.4 / LA 31.02026-04-03 · field out · CH · fly_ball · EV 80.0 / LA 51.02026-04-05 · field out · ST · fly_ball · EV 84.9 / LA 34.02026-04-05 · home run · FF · line_drive · EV 107.5 / LA 25.02026-04-05 · single · FS · fly_ball · EV 81.0 / LA 26.02026-04-06 · field out · SL · fly_ball · EV 98.5 / LA 28.02026-04-06 · double · FF · line_drive · EV 103.5 / LA 3.02026-04-06 · field out · FF · ground_ball · EV 96.4 / LA -14.02026-04-10 · field out · SL · ground_ball · EV 54.8 / LA -53.02026-04-10 · single · FF · ground_ball · EV 96.7 / LA -5.02026-04-10 · single · FS · line_drive · EV 86.1 / LA 13.02026-04-11 · field out · CH · fly_ball · EV 100.5 / LA 24.02026-04-11 · field out · FF · line_drive · EV 102.9 / LA 20.02026-04-11 · field out · CU · ground_ball · EV 72.4 / LA 1.02026-04-12 · field out · CH · line_drive · EV 101.9 / LA 17.02026-04-12 · field out · CH · ground_ball · EV 93.5 / LA 1.02026-04-12 · field out · SL · ground_ball · EV 91.1 / LA -22.02026-04-12 · force out · CH · ground_ball · EV 82.4 / LA 6.02026-04-13 · double · FF · fly_ball · EV 100.5 / LA 31.02026-04-13 · single · SI · line_drive · EV 75.8 / LA 28.02026-04-13 · grounded into double play · SI · ground_ball · EV 108.3 / LA -17.02026-04-14 · double · FF · line_drive · EV 103.2 / LA 20.02026-04-14 · force out · CH · ground_ball · EV 60.9 / LA -80.02026-04-14 · single · KC · ground_ball · EV 98.7 / LA 5.02026-04-15 · grounded into double play · CH · ground_ball · EV 91.5 / LA -15.02026-04-15 · field out · ST · ground_ball · EV 90.7 / LA -35.02026-04-17 · home run · ST · fly_ball · EV 106.4 / LA 33.02026-04-17 · field out · ST · fly_ball · EV 78.9 / LA 34.02026-04-17 · field error · CH · ground_ball · EV 94.8 / LA -11.02026-04-18 · field out · CS · fly_ball · EV 95.0 / LA 58.02026-04-18 · home run · SL · fly_ball · EV 105.4 / LA 30.02026-04-19 · single · FS · fly_ball · EV 66.3 / LA 29.02026-04-19 · force out · SL · ground_ball · EV 72.1 / LA -10.02026-04-19 · single · CH · ground_ball · EV 97.9 / LA 3.02026-04-20 · single · SI · line_drive · EV 111.5 / LA 12.02026-04-21 · force out · ST · ground_ball · EV 66.3 / LA -63.02026-04-21 · single · SL · ground_ball · EV 102.8 / LA -12.02026-04-21 · field out · SI · fly_ball · EV 85.5 / LA 50.02026-04-21 · field out · SL · fly_ball · EV 92.4 / LA 43.02026-04-22 · force out · SI · ground_ball · EV 86.1 / LA -1.02026-04-22 · single · SL · line_drive · EV 93.5 / LA 8.02026-04-22 · force out · FS · ground_ball · EV 66.0 / LA -24.02026-04-23 · field out · ST · line_drive · EV 54.8 / LA 39.02026-04-23 · field out · SI · fly_ball · EV 92.1 / LA 37.02026-04-23 · field out · CH · ground_ball · EV 79.7 / LA -41.02026-04-23 · home run · SL · fly_ball · EV 110.7 / LA 32.02026-04-23 · single · SI · ground_ball · EV 91.4 / LA -10.02026-04-24 · field out · SL · popup · EV 91.7 / LA 80.02026-04-24 · single · FF · ground_ball · EV 71.9 / LA 7.02026-04-26 · field out · FF · popup · EV 74.4 / LA 75.02026-04-26 · field out · FF · fly_ball · EV 93.9 / LA 59.02026-04-26 · field out · CH · ground_ball · EV 86.2 / LA -34.02026-04-27 · field out · FF · line_drive · EV 92.0 / LA 24.02026-04-27 · single · FF · ground_ball · EV 98.8 / LA -8.02026-04-27 · field out · FF · fly_ball · EV 100.8 / LA 57.02026-04-28 · field out · CH · ground_ball · EV 66.3 / LA -6.02026-04-28 · field error · CH · ground_ball · EV 83.0 / LA 4.02026-04-28 · field out · CH · ground_ball · EV 46.3 / LA -46.02026-04-29 · double · FF · fly_ball · EV 77.9 / LA 45.02026-04-29 · field out · ST · fly_ball · EV 72.6 / LA 34.02026-05-01 · field out · SI · fly_ball · EV 93.8 / LA 28.02026-05-02 · home run · FF · fly_ball · EV 110.6 / LA 26.02026-05-02 · double · CU · fly_ball · EV 107.6 / LA 24.02026-05-02 · triple · CH · line_drive · EV 102.6 / LA 19.02026-05-03 · field out · CH · line_drive · EV 100.0 / LA 20.02026-05-03 · single · CH · ground_ball · EV 85.9 / LA 10.02026-05-04 · field out · CH · ground_ball · EV 58.4 / LA -48.02026-05-05 · field out · FF · ground_ball · EV 91.8 / LA 7.02026-05-06 · home run · FC · fly_ball · EV 104.9 / LA 27.02026-05-06 · single · ST · ground_ball · EV 95.1 / LA 1.02026-05-06 · single · ST · line_drive · EV 88.7 / LA 20.02026-05-06 · field out · FC · fly_ball · EV 105.0 / LA 30.02026-05-07 · field out · SL · popup · EV 72.3 / LA 64.02026-05-08 · field out · SL · line_drive · EV 107.0 / LA 21.02026-05-08 · force out · FS · ground_ball · EV 109.5 / LA -22.02026-05-08 · single · SL · ground_ball · EV 69.6 / LA 12.02026-05-08 · field out · FC · line_drive · EV 104.8 / LA 19.02026-05-09 · field out · FC · popup · EV 77.6 / LA 71.02026-05-12 · field out · SL · line_drive · EV 105.7 / LA 20.02026-05-14 · home run · SL · fly_ball · EV 107.6 / LA 28.02026-05-14 · field out · FF · ground_ball · EV 100.8 / LA 1.02026-05-14 · single · CH · fly_ball · EV 70.3 / LA 34.02026-05-15 · field out · FF · fly_ball · EV 95.1 / LA 49.02026-05-15 · single · SL · line_drive · EV 102.4 / LA 17.02026-05-15 · single · FC · line_drive · EV 109.2 / LA 10.02026-05-16 · field out · FF · popup · EV 90.0 / LA 80.02026-05-17 · field out · CU · fly_ball · EV 99.0 / LA 35.02026-05-17 · grounded into double play · SI · ground_ball · EV 92.7 / LA -18.02026-05-17 · field out · ST · fly_ball · EV 105.7 / LA 46.02026-05-18 · field out · FF · popup · EV 91.0 / LA 76.02026-05-18 · field out · FF · fly_ball · EV 97.8 / LA 53.02026-05-19 · field out · FF · popup · EV 81.4 / LA 64.02026-05-22 · double · FF · fly_ball · EV 62.4 / LA 30.02026-05-22 · field out · SL · popup · EV 82.6 / LA 65.02026-05-22 · field out · FF · popup · EV 58.9 / LA 51.02026-05-25 · field out · FF · popup · EV 93.5 / LA 83.02026-05-25 · field out · FF · ground_ball · EV 69.9 / LA -6.02026-05-26 · double · FF · fly_ball · EV 105.8 / LA 23.02026-05-26 · grounded into double play · FF · ground_ball · EV 108.7 / LA -13.02026-05-26 · field error · FF · ground_ball · EV 60.3 / LA -73.02026-05-27 · field out · FF · fly_ball · EV 88.6 / LA 38.02026-05-27 · field out · SI · fly_ball · EV 99.0 / LA 47.02026-05-27 · home run · ST · fly_ball · EV 95.4 / LA 38.02026-05-27 · field out · SI · fly_ball · EV 99.4 / LA 33.02026-05-27 · single · CH · line_drive · EV 94.1 / LA 14.02026-05-27 · field out · CH · fly_ball · EV 87.0 / LA 35.02026-05-31 · field out · FS · ground_ball · EV 101.5 / LA -8.02026-05-31 · field out · SL · fly_ball · EV 96.1 / LA 58.02026-06-04 · home run · ST · fly_ball · EV 108.1 / LA 37.02026-06-04 · double · SI · line_drive · EV 103.8 / LA 20.02026-06-05 · field out · SL · popup · EV 67.4 / LA 72.02026-06-07 · triple · CH · line_drive · EV 98.6 / LA 14.02026-06-07 · field out · CH · fly_ball · EV 91.8 / LA 28.02026-06-15 · fielders choice · FF · ground_ball · EV 61.5 / LA -49.02026-06-15 · field out · CU · fly_ball · EV 101.2 / LA 55.02026-06-15 · field out · CH · fly_ball · EV 81.2 / LA 35.02026-06-15 · field out · FF · fly_ball · EV 100.0 / LA 42.02026-06-20 · field error · KC · line_drive · EV 86.5 / LA -10.02026-06-20 · field out · FF · fly_ball · EV 95.9 / LA 50.02026-06-20 · single · SI · ground_ball · EV 109.0 / LA -3.02026-06-24 · field out · SI · fly_ball · EV 96.9 / LA 46.02026-06-24 · double · CU · line_drive · EV 106.1 / LA 20.02026-06-26 · field out · FC · ground_ball · EV 93.8 / LA -20.02026-06-26 · field out · SI · fly_ball · EV 75.9 / LA 40.02026-06-30 · field out · CH · fly_ball · EV 88.0 / LA 38.02026-06-30 · single · FF · line_drive · EV 72.1 / LA 20.02026-06-30 · field out · FF · fly_ball · EV 82.3 / LA 59.02026-07-01 · double · FC · fly_ball · EV 93.5 / LA 31.02026-07-27 · field out · FF · fly_ball · EV 81.4 / LA 33.02026-07-27 · force out · FS · ground_ball · EV 92.9 / LA -36.02026-07-31 · field out · CU · line_drive · EV 80.3 / LA 26.02026-07-31 · single · CU · ground_ball · EV 93.2 / LA 5.02026-08-02 · field out · FF · ground_ball · EV 78.9 / LA -1.02026-08-02 · field out · FF · fly_ball · EV 75.3 / LA 39.02026-08-05 · field out · FC · ground_ball · EV 89.8 / LA -8.02026-08-05 · field out · FC · fly_ball · EV 82.6 / LA 64.02026-08-08 · double · FC · line_drive · EV 106.7 / LA 19.02026-08-08 · home run · CU · fly_ball · EV 98.2 / LA 33.02026-08-08 · field out · CH · line_drive · EV 101.0 / LA 16.02026-08-11 · field out · SI · popup · EV 96.2 / LA 61.02026-08-11 · field out · SL · fly_ball · EV 90.3 / LA 44.02026-08-11 · single · CH · ground_ball · EV 99.6 / LA 3.02026-08-13 · field out · ST · popup · EV 57.4 / LA 60.02026-08-13 · field out · KC · line_drive · EV 71.7 / LA 19.02026-08-14 · field out · SI · ground_ball · EV 90.1 / LA -12.02026-08-15 · field out · SL · fly_ball · EV 90.1 / LA 41.02026-08-15 · field out · CH · ground_ball · EV 97.5 / LA -6.02026-08-16 · force out · CH · ground_ball · EV 64.4 / LA -31.02026-08-16 · single · FF · line_drive · EV 96.6 / LA 9.02026-08-16 · field out · SL · ground_ball · EV 73.4 / LA -1.02026-08-17 · field out · SI · fly_ball · EV 100.0 / LA 27.02026-08-17 · single · CH · ground_ball · EV 94.5 / LA 6.02026-08-17 · sac bunt · SL · ground_ball · EV 21.6 / LA -68.02026-08-17 · force out · CH · ground_ball · EV 97.5 / LA -15.02026-08-19 · field out · CH · ground_ball · EV 74.6 / LA -5.02026-08-21 · home run · SI · fly_ball · EV 107.3 / LA 27.02026-08-21 · double · ST · ground_ball · EV 79.7 / LA -3.02026-08-23 · single · FA · line_drive · EV 83.3 / LA 13.02026-08-23 · grounded into double play · ST · ground_ball · EV 72.4 / LA 0.02026-08-23 · home run · FS · fly_ball · EV 101.6 / LA 27.02026-08-24 · single · CH · line_drive · EV 96.7 / LA 12.02026-08-24 · field out · SL · ground_ball · EV 98.4 / LA 6.02026-08-24 · field out · CH · ground_ball · EV 78.2 / LA 4.02026-08-24 · field out · ST · fly_ball · EV 91.8 / LA 41.02026-08-24 · double · SL · line_drive · EV 105.3 / LA 15.02026-08-26 · field out · CH · ground_ball · EV 81.2 / LA -21.02026-08-29 · field out · CU · ground_ball · EV 70.9 / LA -16.02026-08-29 · field out · FF · ground_ball · EV 65.1 / LA -16.02026-08-30 · field out · SI · ground_ball · EV 84.4 / LA -20.02026-08-30 · single · SL · line_drive · EV 66.3 / LA 24.02026-08-30 · single · FF · ground_ball · EV 99.3 / LA 4.02026-09-01 · field out · SI · popup · EV 86.5 / LA 78.02026-09-01 · field out · FC · popup · EV 90.5 / LA 75.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 Happ, Ian · Aggregate zone metrics; not pitch-by-pitch locations Zone: 47%47%Chase: 24%24%Whiff: 28%28%Zone contact: 80%80%Contact: 72%72%Hard hit: 41%41% 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 Happ, Ian · aggregate bat speed marker 60 mph 85 mph Avg bat speed 72.0 mph Hard swing rate 20% Whiff / swing 35% MITHRANDIR · CHARTS
Reference layer

Current snapshot

Age32
Height5' 10"
Weight205 lb
Debut2017-05-13
Live layer

Delta / regression

xwOBA Δ-0.032
wOBA Δ+0.008

negative regression

Regression watch

Running hot. Expect some cooling.

-1.6σ gap
wOBA (actual)0.351
xwOBA (deserved)0.311

Happ’s wOBA sits at 0.351, but the quality of contact underneath says it should be 0.311 — a gap of 0.040, -1.6 standard deviations from the MLB norm over 580 PA. The results have outrun the underlying process; as the sample grows, expect the numbers to drift back toward the deserved level.

Comp Engine · 2026 profile shape

Closest profiles

Full constellation →
PlayerSimilarityAgrees onOpen
Cowser, Colton BAL · L 0.72 Sprint speedIn-zone contact Player · Projection
Muncy, Max LAD · L 0.70 Fly-ball rateSwing length Player · Projection
Swanson, Dansby CHC · R 0.69 Sweet-spot rateHard-hit rate Player · Projection
Jensen, Carter KC · L 0.69 Chase rateSprint speed Player · Projection

Profile-shape similarity, not results: six weighted feature groups standardized within this season's qualified hitters.

Mithrandir coverage

Module shelf

ModuleCardsLatestSignal
Hitting42026-08-08Impact contact carried uneven swing decisions
Fielding262026-09-023 chances | 0 difficult plays | Run Exp +2.036
Projection links / recent games

Available detail

Hitter Projections 20260.343 xwOBA | 21 HRProjection
2026-08-15 vs STL0 HR | 0 RBI / 2 Ch | 0 E0-3 | BB, K
2026-05-20 vs MIL0 HR | 0 RBI / 1 Ch | 0 E0-3 | 3 K
2026-04-20 vs PHI0 HR | 0 RBI / 2 Ch | 0 E1-3 | BB, 2 K, R
2026-04-17 vs NYM1 HR | 2 RBI / 2 Ch | 0 E1-4 | HR, BB, K
2026-04-15 @ PHI0 HR | 0 RBI / 0 Ch | 0 E0-4 | HBP, 2 K