Ryan O'Hearn

RF Pittsburgh Pirates
Age 34 L/L 6'2" / 220 lbs MLB HR -15%K -5% Svc 8.012 · Ctrl thru 2027
Overview
MLB40-MANExtFA 2028
YearAgeLvl / TeamPAAVG/OBP/SLGHRSBwRC+WAR
202431MLBBAL494.264/.336/.4271531100.5
202532MLBSD544.281/.369/.4371731282.2
202633MLBPIT451.265/.333/.4401811201.7
2027PROJ34MLBPIT353.261/.335/.4231231171.1
2028PROJ35MLBPIT273.249/.322/.39790106-0.1
Last 3 seasons WAR 4.3  ·  Next 2 projected WAR 1.1Projected rows: MLB playing time only, park and league context applied.
ContractESTIMATED
Control thru2027Service8.012First FA2028Options2
2027Ext$14M
Skills · percentileStatcast 2024-2026
xwOBA75
Avg EV54
Bat Spd45
Barrel%42
Speed33
Form.252/.323/.407 ▼ rolling true talent (60d window) · proj .263/.335/.433
CompsAdam Lind (age 34) · Aubrey Huff (age 33) · Daryle Ward (age 33)
2027 FULL-SEASON PROJECTIONstats below = full-season projection
showingPROJ
wRC+†vL 111117vR 119
AVG/OBP/SLG.261 / .335 / .423
PA353
HR12
K%20
BB%9
BABIP299
ISO165
MLB%100%
Value2027 · WAR
BAT: +7.2 runs (wOBA-derived runs vs avg)+7BATRUN: +0.4 runs (SB/CS + UBR baserunning)+0RUNFLD: -0.1 runs (Defensive runs vs avg)-0FLDPOS: -3.8 runs (Positional adjustment)-4POSREP: +7.6 runs (Replacement-level credit)+8REPTotal WAR: +1.30+1.3WAR
trajectory · projected WAR by year
1.3-0.12728
Tools · Recent Form · Splits · Contract
ToolsStatcast %ile · 2024-2026
CONTACT
xAVG
650.264
POWER
Barrel%
427.1
Avg EV
5489.4
Bat Spd
4570.8
SPEED
Sprint
3326.7
Recent Formrolling true talent ⓘ
K%22%▼▼25% over 53 PA (60d) · proj 20%
BB%8%·8% over 53 PA (60d) · proj 9%
ISO.155▼.104 over 48 AB (60d) · proj .170
HR/BB4.6%·2.9% over 35 BBE (60d) · proj 5.2%
BABIP.298·.294 over 34 BIP (60d) · proj .299
SLASH.252/.323/.407▼proj .263/.335/.433
Platoon Splits2024-2026 · 1138 PA
vs LHP
vs RHP
Edge
PA
181
957
—
wRC+
121
123
—
wOBA
346
350
—
ISO
154
164
▶R
BABIP
346
306
◀L
K%
19.9%
16.5%
▶▶R
BB%
7.2%
10.1%
▶▶R
Contract ESTIMATED · service-time + WAR-based estimator (needs verification)
Status   FA
MLB Debut   2018
Service   8.012 yrs.days
Team Control Through   2027
First FA Year   2028
OPT
YearStatusSalary Proj WAR Value Surplus
2027Ext$14M+1.3$10M-$4M
Totals $14M $10M -$4M
Options · projected decision
2028CLUB OPT$14.5M / $0.0M buyoutDECLINE
2029CLUB OPT$7.5M / $0.0M buyoutDECLINE

Career Stats + Projections

Real MLB stats plus park-adjusted projections — this season (so far / rest / full), then future seasons and career totals.
basis chips: RAW = as recorded · CTX = with park/league context · A+C = actual + context combined · MLE = level/park-neutral
Methodology▸ how these numbers are built

All seasons translated to park-neutral MLB-equivalent (MLE) and combined per year. 2027 = full-season projection (no games played yet). 2028+ via Advanced Marcel + aging curve.

YearAge LvlTeam MLB% PAAB H2B3BHR BBSOHBP SBCS AVGOBPSLGOPS ISOBABIP K%BB% wOBAwRC+ BATRUNFLDPOSREP WAR
▸ Career — actual stats, one row per stint (as recorded, no adjustments)
201421 ROKIdaho Falls Chukars — 293249 9016113 39591 32 3614505901.040 229425 2013 449 106 — — — — — —
201522 A+Wilmington Blue Rocks — 181161 381008 19540 00 236317447764 211300 3010 336 62 — — — — — —
201522 ALexington Legends — 356314 8711019 36872 72 277355494849 217321 2410 370 76 — — — — — —
201623 AANorthwest Arkansas Naturals — 466414 10725215 481313 35 258340437777 179342 2810 346 72 — — — — — —
201623 A+Wilmington Blue Rocks — 9888 31707 8271 00 3524126701.083 318436 288 462 145 — — — — — —
201623 INTLSurprise Saguaros — 9986 25401 13260 00 291384372756 81407 2613 347 121 — — — — — —
201724 AAAOmaha Storm Chasers — 463413 10426118 451191 10 252327450777 199309 2610 341 77 — — — — — —
201724 AANorthwest Arkansas Naturals — 7666 17114 10200 00 258355485840 227310 2613 370 74 — — — — — —
201825 MLBKansas City Royals — 170149 3910212 20451 00 262353597950 336293 2612 408 170 +14 +0 -2 -11 +4 0.4
201825 AAAOmaha Storm Chasers — 406353 8221111 45973 20 232324391715 159286 2411 319 58 — — — — — —
201825 INTLGigantes del Cibao — 6356 10201 4223 00 179270268538 89273 356 254 58 — — — — — —
201926 MLBKansas City Royals — 370328 6413114 39991 01 195283369652 174230 2711 292 87 -6 -0 -6 -9 +8 -1.3
201926 AAAOmaha Storm Chasers — 149129 381019 17312 00 295385597982 302322 2111 422 103 — — — — — —
202027 MLBKansas City Royals — 132113 22602 18370 00 195305301606 106267 2814 281 71 -4 +0 -1 -2 +3 -0.6
202128 MLBKansas City Royals — 254236 53519 13712 00 225271369640 144277 285 282 82 -6 +0 -0 -4 +6 -0.4
202128 AAAOmaha Storm Chasers — 8272 274012 9151 30 3754519311.382 556333 1811 574 161 — — — — — —
202229 MLBKansas City Royals — 145134 32611 8352 00 239292321613 82313 246 277 75 -4 +0 -1 -2 +3 -0.4
202330 MLBBaltimore Orioles — 368346 10022114 15823 51 289324480804 191340 224 350 116 +7 +1 -0 -8 +8 0.8
202330 AAANorfolk Tides — 5248 17414 4140 00 3544047291.133 375433 278 483 124 — — — — — —
202431 MLBBaltimore Orioles — 494443 11721315 46692 31 264336427763 163282 149 338 110 +6 +0 -4 -9 +11 0.5
202532 MLBSan Diego Padres — 544474 13321117 581098 31 281369437805 156330 2011 359 128 +18 +0 +1 -10 +12 2.2
202633 MLBPittsburgh Pirates — 451407 10817018 35996 10 265333440772 174307 228 342 120 +11 +0 +0 -5 +10 1.7
▸ Career Totals (raw MLB only — historical actual)
MLB Career— — 29282630 66812110102 25264625 124 254325424749 170298 229 332 111 +37 +1 -13 -59 +63 3.0
▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents)
201421 ROK MLEIdaho Falls Chukars — 293265 711219 23851 32 268329423751 155343 298 325 106 — — — — — —
201522 A+ MLEWilmington Blue Rocks — 181170 31808 10770 00 182228371598 188265 436 260 62 — — — — — —
201522 A MLELexington Legends — 356330 749013 201202 72 224273370642 145293 346 280 76 — — — — — —
201623 AA MLENorthwest Arkansas Naturals — 466432 9221212 301563 35 213269354623 141299 336 274 72 — — — — — —
201623 A+ MLEWilmington Blue Rocks — 9892 27606 4361 00 293330554884 261413 374 382 145 — — — — — —
201724 AAA MLEOmaha Storm Chasers — 463427 9423115 311451 10 220275384659 164288 317 282 77 — — — — — —
201724 AA MLENorthwest Arkansas Naturals — 7670 14113 6250 00 200263371635 171269 338 278 74 — — — — — —
201825 MLB MLEKansas City Royals — 170149 4010213 20451 00 268359624983 356293 2612 419 170 +14 +0 -2 -11 +4 0.4
201825 AAA MLEOmaha Storm Chasers — 406367 711818 311243 20 193262313575 120258 318 254 58 — — — — — —
201926 MLB MLEKansas City Royals — 370329 6513115 38991 01 198283380663 182230 2710 297 87 -6 -0 -6 -9 +8 -1.3
201926 AAA MLEOmaha Storm Chasers — 149135 31817 11412 00 230297459757 230271 287 321 103 — — — — — —
202027 MLB MLEKansas City Royals — 132115 22602 16370 00 191290296586 104267 2812 274 71 -4 +0 -1 -2 +3 -0.6
202128 MLB MLEKansas City Royals — 254236 545110 13712 00 229275386660 157277 285 289 82 -6 +0 -0 -4 +6 -0.4
202128 AAA MLEOmaha Storm Chasers — 8276 20308 5181 30 263317618935 355252 226 406 161 — — — — — —
202229 MLB MLEKansas City Royals — 145134 32611 8352 00 239292321613 82313 246 279 75 -4 +0 -1 -2 +3 -0.4
202330 MLB MLEBaltimore Orioles — 368348 9821114 13823 51 282313468782 187340 224 340 116 +7 +1 -0 -8 +8 0.8
202330 AAA MLENorfolk Tides — 5249 14313 3170 00 286327571898 286362 336 351 124 — — — — — —
202431 MLB MLEBaltimore Orioles — 494445 11520315 44692 31 258328418746 160282 149 331 110 +6 +0 -4 -9 +11 0.5
202532 MLB MLESan Diego Padres — 544478 13522117 541098 31 282365439804 157330 2010 357 128 +18 +0 +1 -10 +12 2.2
202633 MLB MLEPittsburgh Pirates — 451408 10816019 34996 10 265330444774 179307 228 346 120 +11 +0 +0 -5 +10 1.7
201421 ROK MLEIdaho Falls Chukars — 293265 711219 23851 32 268329423751 155354 298 325 106 — — — — — —
201421 ROK RAWIdaho Falls Chukars — 293249 9016113 39591 32 3614505901.040 229425 2013 449 106 — — — — — —
201522 A MLE2 teams — 537500 10516022 301972 72 210258374632 164290 376 273 71 — — — — — —
201522 A RAW2 teams — 537475 12521027 551412 72 263342478820 215314 2610 359 71 — — — — — —
201623 AA MLE3 teams — 663617 14031222 402264 35 227278391669 164318 346 293 84 — — — — — —
201623 AA RAW3 teams — 663588 16336223 691844 35 277357463820 185366 2810 363 84 — — — — — —
201724 AAA MLE2 teams — 539497 10723218 371711 10 215271378649 163287 327 281 77 — — — — — —
201724 AAA RAW2 teams — 539479 12127222 551391 10 253331455786 203309 2610 345 77 — — — — — —
201825 AAA MLE3 teams — 639571 12231323 561887 20 214292399691 186273 299 303 91 — — — — — —
201825 AAA RAW3 teams — 639558 13133324 691647 20 235326434760 199287 2611 336 91 — — — — — —
201926 MLB MLE2 teams — 519464 9721222 491403 01 209289405694 196246 279 304 92 -5 -0 -6 -9 +11 -1.0
201926 MLB RAW2 teams — 519457 10223223 561303 01 223312433745 210257 2511 329 92 -5 -0 -6 -9 +11 -1.0
202027 MLB MLEKansas City Royals — 132115 22602 16370 00 191290296586 104260 2812 274 71 -4 +0 -1 -2 +3 -0.6
202027 MLB RAWKansas City Royals — 132113 22602 18370 00 195305301606 106267 2814 281 71 -4 +0 -1 -2 +3 -0.6
202128 MLB MLE2 teams — 336312 748118 18893 30 237285442728 205269 265 318 101 +0 +1 -0 -4 +7 0.4
202128 MLB RAW2 teams — 336308 809121 22863 30 260315500815 240289 267 353 101 +0 +1 -0 -4 +7 0.4
202229 MLB MLEKansas City Royals — 145134 32611 8352 00 239292321613 82313 246 279 75 -4 +0 -1 -2 +3 -0.4
202229 MLB RAWKansas City Royals — 145134 32611 8352 00 239292321613 82313 246 277 75 -4 +0 -1 -2 +3 -0.4
202330 MLB MLE2 teams — 420397 11224217 16993 51 282315481796 199335 244 342 117 +9 +1 -0 -8 +9 1.1
202330 MLB RAW2 teams — 420394 11726218 19963 51 297334510844 213350 235 366 117 +9 +1 -0 -8 +9 1.1
202431 MLB MLEBaltimore Orioles — 494445 11520315 44692 31 258328418746 160275 149 331 110 +6 +0 -4 -9 +11 0.5
202431 MLB RAWBaltimore Orioles — 494443 11721315 46692 31 264336427763 163282 149 338 110 +6 +0 -4 -9 +11 0.5
202532 MLB MLESan Diego Padres — 544478 13522117 541098 31 282365439804 157331 2010 357 128 +18 +0 +1 -10 +12 2.2
202532 MLB RAWSan Diego Padres — 544474 13321117 581098 31 281369437805 156330 2011 359 128 +18 +0 +1 -10 +12 2.2
202633 MLB MLEPittsburgh Pirates — 451408 10816019 34996 10 265330444774 179304 228 346 120 +11 +0 +0 -5 +10 1.7
202633 MLB RAWPittsburgh Pirates — 451407 10817018 35996 10 265333440772 174307 228 342 120 +11 +0 +0 -5 +10 1.7
201421 ROK MLEIdaho Falls Chukars — 293267 711219 23851 32 266329419748 154343 298 325 106 — — — — — —
201522 A MLE2 teams — 537500 10516022 301972 72 210258374632 164284 376 273 71 — — — — — —
201623 AA MLE3 teams — 663614 14031222 402264 35 228278393671 164319 346 293 84 — — — — — —
201724 AAA MLE2 teams — 539496 10723218 371711 10 216271379650 163285 327 281 77 — — — — — —
201825 AAA MLE3 teams — 639571 12231323 561887 20 214292399691 186268 299 303 91 — — — — — —
201926 MLB MLE2 teams — 519462 9721222 491403 01 210289407696 197242 279 304 92 — — — — — —
202027 MLB MLEKansas City Royals — 132115 22602 16370 00 191290296586 104267 2812 274 71 — — — — — —
202128 MLB MLE2 teams — 336312 748118 18893 30 237285442728 205271 265 318 101 — — — — — —
202229 MLB MLEKansas City Royals — 145134 32611 8352 00 239292321613 82313 246 279 75 — — — — — —
202330 MLB MLE2 teams — 420398 11224217 16993 51 281315480795 198343 244 342 117 — — — — — —
202431 MLB MLEBaltimore Orioles — 494445 11520315 44692 31 258328418746 160282 149 331 110 — — — — — —
202532 MLB MLESan Diego Padres — 544477 13522117 541098 31 283365440805 157330 2010 357 128 — — — — — —
202633 MLB MLEPittsburgh Pirates — 451408 10816019 34996 10 265330444774 179307 228 346 120 — — — — — —
▸ Model inputs — neutral MLE (past 3 seasons)
202431 MLB MLEBaltimore Orioles — 494445 11520315 44692 31 258328418746 160282 149 331 110 — — — — — —
202532 MLB MLESan Diego Padres — 544477 13522117 541098 31 283365440805 157330 2010 357 128 — — — — — —
202633 MLB MLEPittsburgh Pirates — 451408 10816019 34996 10 265330444774 179307 228 346 120 — — — — — —
▸ 2027 season
▸ 2027 — full MLE projection (neutral park, full availability)
202734 MLB MLEPIT 100% 445398 10517116 39895 31 263337433770 170299 209 341 117 +9 +0 -0 -5 +10 1.3
▸ 2027 — real world (MLB)
202734 MLB CTXPIT 100% 353315 8314112 31704 31 261335423759 162299 209 337 117 +7 +0 -0 -4 +8 1.1
▸ Career projection (2028+) — MLB context, MLB playing time (PA × MLB%)
202835 MLB MLEPIT 100% 273245 61919 23573 00 251324406730 156288 218 325 106 +2 +0 -6 -3 +6 -0.1
202835 MLB CTXPIT 100% 273245 621019 23573 00 249322397719 149288 218 321 106 +2 +0 -6 -3 +6 -0.1
▸ Career Totals
▸ Career totals — MLB only (actual + projected)
Career— A+C — 32012875 73013111111 27570328 124 254325423748 169297 229 331 98 +39 +1 -19 -62 +69 2.9
/ 162G— A+C — 650584 14927223 561436 21 255327426753 171299 229 331 98 +8 +0 -4 -13 +14 0.6
Career— MLE — 63385763 138425820227 479167149 3414 240304410714 170296 268 314 98 +46 +1 -19 -66 +77 4.1
/ 162G— MLE — 650591 14126223 491715 31 239302406708 168294 268 314 98 +9 +0 -3 -12 +14 0.7

How the minor-league lines were translated

One row per minor-league stint. Open a row to see each step: the raw rate, the park adjustment, the league/level factor, the age adjustment (hitters) and the resulting MLE rate. Factors are the same ones listed on the MLE Factors page.

2023 AAANorfolk Tides · 52 PAwOBA .469 → .351 (−117)K% 26.9% → 33.0%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA26.92%÷0.980×1.200——32.97%
BB% (unintentional) /PA7.69%÷0.948×0.690—×0.9725.44%
HBP% /PA0.00%—×0.940—×0.9720.00%
Singles /BIP23.53%÷1.019×0.930—×0.97220.88%
Doubles /BIP11.76%÷1.015×0.830—×0.9729.35%
Triples /BIP2.94%÷0.900×0.970—×0.9723.08%
Home runs /BIP11.76%÷0.995×0.700—×0.9728.04%

Factors used: league row International League. Park (home-season share, regressed): HR 99, 1B 104, 2B 103, 3B 80, K 96, BB 90 — applied at half strength. Age: age 30 vs a level average of 27.2 → −2.8% on BB/HBP/hit rates (2.8 yr older than average).

Result: wOBA .469 → .351; ISO .375 → .265; BABIP .433 → .362. Both wOBAs use the same linear weights, so the change is the translation alone. The MLE line is not regressed to the mean — regression happens later, when seasons are blended into a projection (how).

2021 AAAOmaha Storm Chasers · 82 PAwOBA .555 → .406 (−149)K% 18.3% → 22.3%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA18.29%÷0.985×1.200——22.29%
BB% (unintentional) /PA9.76%÷0.990×0.690—×0.9926.74%
HBP% /PA1.22%—×0.940—×0.9921.14%
Singles /BIP19.30%÷1.056×0.930×0.950×0.99216.01%
Doubles /BIP7.02%÷0.978×0.830×0.950×0.9925.61%
Triples /BIP0.00%÷0.936×0.920×0.950×0.9920.00%
Home runs /BIP21.05%÷1.027×0.700—×0.99214.24%

Factors used: level-wide AAA factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 105, 1B 111, 2B 96, 3B 87, K 97, BB 98 — applied at half strength. Age: age 28 vs a level average of 27.2 → −0.8% on BB/HBP/hit rates (0.8 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.950.

Result: wOBA .555 → .406; ISO .556 → .384; BABIP .333 → .252. Both wOBAs use the same linear weights, so the change is the translation alone. The MLE line is not regressed to the mean — regression happens later, when seasons are blended into a projection (how).

2019 AAAOmaha Storm Chasers · 149 PAwOBA .411 → .321 (−89)K% 20.8% → 27.6%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA20.81%÷0.971×1.290——27.65%
BB% (unintentional) /PA10.74%÷1.065×0.710—×1.0187.29%
HBP% /PA1.34%—×0.980—×1.0181.34%
Singles /BIP18.37%÷1.024×0.900×0.984×1.01816.17%
Doubles /BIP10.20%÷0.973×0.810×0.984×1.0188.51%
Triples /BIP1.02%÷1.038×0.810×0.984×1.0180.80%
Home runs /BIP9.18%÷1.023×0.780—×1.0187.13%

Factors used: league row PCL. Park (home-season share, regressed): HR 105, 1B 105, 2B 95, 3B 108, K 94, BB 113 — applied at half strength. Age: age 26 vs a level average of 27.2 → +1.8% on BB/HBP/hit rates (1.2 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.984.

Result: wOBA .411 → .321; ISO .302 → .232; BABIP .322 → .271. Both wOBAs use the same linear weights, so the change is the translation alone. The MLE line is not regressed to the mean — regression happens later, when seasons are blended into a projection (how).

2018 AAAOmaha Storm Chasers · 406 PAwOBA .311 → .254 (−57)K% 23.9% → 30.6%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA23.89%÷1.007×1.290——30.59%
BB% (unintentional) /PA10.59%÷1.018×0.710—×1.0337.63%
HBP% /PA0.74%—×0.980—×1.0330.75%
Singles /BIP19.14%÷1.020×0.900×1.008×1.03317.59%
Doubles /BIP8.20%÷0.936×0.810×1.008×1.0337.39%
Triples /BIP0.39%÷0.900×0.810×1.008×1.0330.37%
Home runs /BIP4.30%÷1.101×0.780—×1.0333.14%

Factors used: league row PCL. Park (home-season share, regressed): HR 120, 1B 104, 2B 87, 3B 80, K 102, BB 104 — applied at half strength. Age: age 25 vs a level average of 27.2 → +3.3% on BB/HBP/hit rates (2.2 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.008.

Result: wOBA .311 → .254; ISO .159 → .123; BABIP .286 → .258. Both wOBAs use the same linear weights, so the change is the translation alone. The MLE line is not regressed to the mean — regression happens later, when seasons are blended into a projection (how).

2017 AAAOmaha Storm Chasers · 463 PAwOBA .333 → .282 (−51)K% 25.7% → 31.4%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA25.70%÷1.054×1.290——31.45%
BB% (unintentional) /PA9.72%÷1.076×0.710—×1.0486.72%
HBP% /PA0.22%—×0.980—×1.0480.22%
Singles /BIP20.07%÷1.024×0.900×1.042×1.04819.27%
Doubles /BIP8.84%÷0.985×0.810×1.042×1.0487.95%
Triples /BIP0.34%÷0.914×0.810×1.042×1.0480.33%
Home runs /BIP6.12%÷0.956×0.780—×1.0485.23%

Factors used: league row PCL. Park (home-season share, regressed): HR 91, 1B 105, 2B 97, 3B 83, K 111, BB 115 — applied at half strength. Age: age 24 vs a level average of 27.2 → +4.8% on BB/HBP/hit rates (3.2 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.042.

Result: wOBA .333 → .282; ISO .199 → .168; BABIP .309 → .288. Both wOBAs use the same linear weights, so the change is the translation alone. The MLE line is not regressed to the mean — regression happens later, when seasons are blended into a projection (how).

2017 AANorthwest Arkansas Naturals · 76 PAwOBA .356 → .278 (−78)K% 26.3% → 33.2%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA26.32%÷0.967×1.220——33.19%
BB% (unintentional) /PA11.84%÷0.982×0.700—×1.0128.54%
HBP% /PA0.00%—×0.870—×1.0120.00%
Singles /BIP23.91%÷1.051×0.920—×1.01221.19%
Doubles /BIP2.17%÷1.091×0.840—×1.0121.69%
Triples /BIP2.17%÷0.900×0.940—×1.0122.30%
Home runs /BIP8.70%÷1.114×0.800—×1.0126.32%

Factors used: league row TL. Park (home-season share, regressed): HR 123, 1B 110, 2B 118, 3B 80, K 93, BB 96 — applied at half strength. Age: age 24 vs a level average of 24.8 → +1.2% on BB/HBP/hit rates (0.8 yr younger than average).

Result: wOBA .356 → .278; ISO .227 → .169; BABIP .310 → .269. Both wOBAs use the same linear weights, so the change is the translation alone. The MLE line is not regressed to the mean — regression happens later, when seasons are blended into a projection (how).

2016 AANorthwest Arkansas Naturals · 466 PAwOBA .335 → .274 (−61)K% 28.1% → 33.5%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA28.11%÷1.024×1.220——33.49%
BB% (unintentional) /PA9.66%÷1.081×0.700—×1.0276.42%
HBP% /PA0.64%—×0.870—×1.0270.58%
Singles /BIP22.97%÷1.061×0.920×1.005×1.02720.57%
Doubles /BIP8.83%÷1.029×0.840×1.005×1.0277.45%
Triples /BIP0.71%÷1.029×0.940×1.005×1.0270.67%
Home runs /BIP5.30%÷0.967×0.800—×1.0274.50%

Factors used: league row TL. Park (home-season share, regressed): HR 93, 1B 112, 2B 106, 3B 106, K 105, BB 116 — applied at half strength. Age: age 23 vs a level average of 24.8 → +2.7% on BB/HBP/hit rates (1.8 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.005.

Result: wOBA .335 → .274; ISO .179 → .149; BABIP .342 → .299. Both wOBAs use the same linear weights, so the change is the translation alone. The MLE line is not regressed to the mean — regression happens later, when seasons are blended into a projection (how).

2016 A+Wilmington Blue Rocks · 98 PAwOBA .451 → .382 (−69)K% 27.6% → 37.2%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA27.55%÷1.051×1.420——37.23%
BB% (unintentional) /PA7.14%÷1.014×0.630—×0.9984.43%
HBP% /PA1.02%—×0.860—×0.9980.88%
Singles /BIP27.87%÷1.024×0.940×1.048×0.99826.77%
Doubles /BIP11.48%÷0.920×0.830×1.048×0.99810.84%
Triples /BIP0.00%÷1.150×0.800×1.048×0.9980.00%
Home runs /BIP11.48%÷0.954×0.900—×0.99810.81%

Factors used: league row CAR. Park (home-season share, regressed): HR 91, 1B 105, 2B 84, 3B 130, K 110, BB 103 — applied at half strength. Age: age 23 vs a level average of 22.8 → −0.2% on BB/HBP/hit rates (0.2 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.048.

Result: wOBA .451 → .382; ISO .318 → .277; BABIP .436 → .413. Both wOBAs use the same linear weights, so the change is the translation alone. The MLE line is not regressed to the mean — regression happens later, when seasons are blended into a projection (how).

Not traceable per stint: some stints lack the counting stats the component translation needs. Level-wide factors that apply instead — .