Brandon Woodruff

P Milwaukee Brewers
Age 34 RHP 6'4" / 241 lbs MLB Svc 8.0 · Ctrl thru 2027 peak 1.2 · 2027
Overview
MLBSP40-MANExt / FA-dealFA 2028
YearAgeLvl / TeamGGSIPERAFIPK%BB%WARMLE rates
202330MIX3 levels1414792.403.0728.6%5.7%2.3K 29.2% · BB 5.9% · FIP 3.24
202532MIX3 levels22221073.042.9627.6%6.1%3.2K 26.2% · BB 6.0% · FIP 3.01
202633MIX3 levels1111543.483.0627.4%5.7%1.6K 27.0% · BB 5.2% · FIP 2.98
2027PROJ34MLBMIL99543.383.5027.2%5.7%1.3
2028PROJ35MLBMIL88493.743.9226.2%6.3%0.9
2029PROJ36MLBMIL77434.084.3025.2%6.9%0.6
Last 3 seasons WAR 7.1  ·  Next 3 projected WAR 2.8Projected rows: MLB playing time only, park and league context applied.
ContractESTIMATED
Control thru2027Service8.936First FA2028Options3NTC
2027Ext / FA-deal$14M
Skills · percentileStatcast 2026
xwOBA vs90
K%76
FB Velo12
CompsJose Oyervides (age 34) · Josh Lowey (age 34) · Orlando Hernandez (age 34)
2027 FULL-SEASON PROJECTIONrates below = full-season projection
showingPROJ
wRC+ AGAINSTvL 9082vR 74
ERA3.38
FIP3.50
K%27.2%
BB%5.7%
K-BB%21.5%
Proj IP54
Value2027 · WAR
Runs saved vs league avg · 54 IP
K: +3.3 runs (Runs saved by strikeouts vs lg-avg K%)+3KBB: +2.9 runs (Runs saved by walk suppression vs lg-avg BB%)+3BBCONTACT: -2.2 runs (Runs saved on contact quality (HR suppression) vs lg)-2CONTACTSTAM: +2.2 runs (Replacement credit for innings volume)+2STAMTotal WAR: +0.66 (54 IP)+0.7WAR
1.30.90.6272829
Statcast · Contract
Statcast Percentiles
FB Velo
p1291.8
Whiff%
p3823.6%
K%
p7627.0%
xwOBA vs
p900.263
Contract ESTIMATED · service-time + WAR-based estimator (needs verification)
Status   FA
MLB Debut   2017
Service   8.936 yrs.days
Team Control Through   2027
First FA Year   2028
NTCOPT
YearStatusSalary Proj WAR Value Surplus
2027Ext / FA-deal$14M+1.3$10M-$3M
Totals $14M $10M -$3M
Options · projected decision
2027MUTUAL OPT$13.5M / $0.0M buyoutDECLINE
2028MUTUAL OPT$20.0M / $10.0M buyoutDECLINE
2029MUTUAL OPT$13.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 WAR & MLE are computed

Stats are park-neutral MLB equivalents. The "TEAM" column shows current org affiliation only — we do NOT project at that team's park.
Rates (K%, BB%, HR-BF) are park-stripped; MiLB stat lines are translated to their MLB-equivalent via per-level MLE factors.
WAR is computed from projected runs prevented vs a replacement pitcher (the marginal arm a team would call up if this pitcher were unavailable) — calibrated to the standard WAR scale.

YearAge LvlTeam GGSIPBF KBBHR GS%IP/G K%BB%K-BB%HR% ERAFIP WAR
▸ Career — actual stats, one row per year (as recorded, no adjustments)
▸ Career — adjusted (each season translated to a park/league-neutral MLB-equivalent line; levels combined per year)
▸ Model inputs — neutral MLE (past 3 seasons + 2027 so far)
201522A+ MLEBrevard County Manatees21191104577133290%5.212.0%8.3%3.7%0.6%3.453.48—
201522A+ RAWBrevard County Manatees21191104577133290%5.215.5%7.2%8.3%0.4%3.452.94—
201623MIX MLE2 levels2828158633173406100%5.621.8%7.0%14.8%1.0%2.682.68—
201623MIX RAW2 levels2828158633173406100%5.627.3%6.3%21.0%0.9%2.682.16—
201724MIX MLE3 levels25251205181033813100%4.818.4%7.5%10.9%2.8%4.494.03+2.0
201724MIX RAW3 levels25251205181033813100%4.819.9%7.3%12.5%2.5%4.493.74+2.4
201825MIX MLE2 levels3621114486115461258%3.222.0%9.8%12.2%2.4%3.883.80+2.2
201825MIX RAW2 levels3621114486115461258%3.223.7%9.5%14.2%2.5%3.883.66+2.4
201926MLB MLEMilwaukee Brewers22221224931433012100%5.529.0%6.1%22.9%2.3%3.622.69+4.2
201926MLB RAWMilwaukee Brewers22221224931433012100%5.529.0%6.1%22.9%2.4%3.622.77+4.1
202027MLB MLEMilwaukee Brewers13137429391189100%5.731.1%6.1%24.9%2.9%3.052.86+2.4
202027MLB RAWMilwaukee Brewers13137429391189100%5.731.1%6.1%24.9%3.1%3.052.95+2.3
202128MLB MLEMilwaukee Brewers30301797082114318100%6.029.8%6.1%23.7%2.4%2.562.68+6.3
202128MLB RAWMilwaukee Brewers30301797082114318100%6.029.8%6.1%23.7%2.5%2.562.77+6.0
202229MIX MLE3 levels29291616492044419100%5.630.6%6.8%23.9%2.8%3.022.89+5.1
202229MIX RAW3 levels29291616492044419100%5.631.4%6.8%24.7%2.9%3.022.92+5.0
202330MIX MLE3 levels14147929785179100%5.629.2%5.9%23.3%3.4%2.403.24+2.1
202330MIX RAW3 levels14147929785179100%5.628.6%5.7%22.9%3.0%2.403.07+2.3
202532MIX MLE3 levels22221074271182611100%4.826.2%6.0%20.2%2.5%3.043.01+3.2
202532MIX MLE3 levels22221074271182611100%4.826.2%6.0%20.2%2.5%3.043.01+3.2
202532MIX RAW3 levels22221074271182611100%4.827.6%6.1%21.5%2.6%3.042.96+3.2
202633MIX MLE3 levels11115421258126100%4.927.0%5.2%21.8%2.7%3.482.98+1.6
202633MIX MLE3 levels11115421258126100%4.927.0%5.2%21.8%2.7%3.482.98+1.6
202633MIX RAW3 levels11115421258126100%4.927.4%5.7%21.7%2.8%3.483.06+1.6
▸ Career totals (raw MLB only — as recorded)
MLB Career—15113679031589181988990%5.229.1%6.3%22.8%2.8%3.102.99+23.8
▸ 2027 season — projected remainder (no 2027 stats recorded)
202734MLBMIL995422862137100%6.027.2%5.7%21.5%2.9%3.383.50+1.3
▸ Career projection (2028+) — MLB context, MLB playing time (IP × MLB%)
202835MLB MLEMIL884920654137100%6.126.2%6.3%20.0%3.2%3.653.83+0.9
202936MLB MLEMIL774318346137100%6.225.2%6.9%18.4%3.6%3.984.20+0.6
202835MLB CTXMIL884920754137100%6.126.2%6.3%20.0%3.4%3.743.92+0.9
202936MLB CTXMIL774318246127100%6.125.2%6.9%18.4%3.8%4.084.30+0.6
▸ Career totals — MLB only (actual + projected)
Career— RAW1661518833547101822310391%5.328.7%6.3%22.4%2.9%3.183.07+25.7
/ 200 IP— RAW3834200804231512391%5.328.7%6.3%22.4%2.9%3.183.07+5.8
Career— MLE25123412775173129535811793%5.125.0%6.9%18.1%2.3%3.213.10+25.2
/ 200 IP— MLE3937200810203561893%5.125.0%6.9%18.1%2.3%3.213.10+5.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.

2026 A+Wisconsin Timber Rattlers · 5 IPFIP 3.90 → 5.20 (+1.30)K% 28.6% → 22.0%
ComponentRawPark ÷Level factor ×= MLE
K% /BF28.57%—×0.77022.00%
BB% (unintentional) /BF4.76%—×1.1505.48%
HR / BF /BF4.76%÷1.000×1.2505.95%

Factors used: pitcher A+ level factors — K ×0.77, BB ×1.15, HR ×1.25. Pitcher translation is level-wide (no per-league rows, no age adjustment); HR/BF is park-adjusted at half strength (park HR factor 100).

Result: FIP 3.90 → 5.20, computed from the rates in the table with the same formula before and after. The MLE line is not regressed to the mean — regression is applied when seasons are blended into a projection (how).

2025 AAANashville Sounds · 25 IPFIP 3.26 → 3.41 (+0.15)K% 21.7% → 18.7%
ComponentRawPark ÷Level factor ×= MLE
K% /BF21.70%—×0.86018.66%
BB% (unintentional) /BF7.55%—×0.9006.79%
HR / BF /BF1.89%÷1.111×1.1001.87%

Factors used: pitcher AAA level factors (Triple-A 2023+ robo-zone set: walks improve on promotion) — K ×0.86, BB ×0.90, HR ×1.10. Pitcher translation is level-wide (no per-league rows, no age adjustment); HR/BF is park-adjusted at half strength (park HR factor 122).

Result: FIP 3.26 → 3.41, computed from the rates in the table with the same formula before and after. The MLE line is not regressed to the mean — regression is applied when seasons are blended into a projection (how).

2025 A+Wisconsin Timber Rattlers · 17 IPFIP 2.31 → 2.79 (+0.48)K% 18.8% → 14.4%
ComponentRawPark ÷Level factor ×= MLE
K% /BF18.75%—×0.77014.44%
BB% (unintentional) /BF6.25%—×1.1507.19%
HR / BF /BF0.00%÷1.246×1.2500.00%

Factors used: pitcher A+ level factors — K ×0.77, BB ×1.15, HR ×1.25. Pitcher translation is level-wide (no per-league rows, no age adjustment); HR/BF is park-adjusted at half strength (park HR factor 149).

Result: FIP 2.31 → 2.79, computed from the rates in the table with the same formula before and after. The MLE line is not regressed to the mean — regression is applied when seasons are blended into a projection (how).

2023 A+Wisconsin Timber Rattlers · 7 IPFIP 0.74 → 1.28 (+0.54)K% 28.0% → 21.6%
ComponentRawPark ÷Level factor ×= MLE
K% /BF28.00%—×0.77021.56%
BB% (unintentional) /BF0.00%—×1.1500.00%
HR / BF /BF0.00%÷1.033×1.2500.00%

Factors used: pitcher A+ level factors — K ×0.77, BB ×1.15, HR ×1.25. Pitcher translation is level-wide (no per-league rows, no age adjustment); HR/BF is park-adjusted at half strength (park HR factor 107).

Result: FIP 0.74 → 1.28, computed from the rates in the table with the same formula before and after. The MLE line is not regressed to the mean — regression is applied when seasons are blended into a projection (how).

2018 AAAColorado Springs Sky Sox · 71 IPFIP 3.97 → 4.23 (+0.26)K% 21.9% → 19.3%
ComponentRawPark ÷Level factor ×= MLE
K% /BF21.94%—×0.88019.30%
BB% (unintentional) /BF10.32%—×1.05010.84%
HR / BF /BF2.58%÷1.124×1.1002.52%

Factors used: pitcher AAA level factors — K ×0.88, BB ×1.05, HR ×1.10. Pitcher translation is level-wide (no per-league rows, no age adjustment); HR/BF is park-adjusted at half strength (park HR factor 125).

Result: FIP 3.97 → 4.23, computed from the rates in the table with the same formula before and after. The MLE line is not regressed to the mean — regression is applied when seasons are blended into a projection (how).

2017 AAAColorado Springs Sky Sox · 75 IPFIP 3.57 → 4.08 (+0.51)K% 21.5% → 19.0%
ComponentRawPark ÷Level factor ×= MLE
K% /BF21.54%—×0.88018.95%
BB% (unintentional) /BF7.38%—×1.0507.75%
HR / BF /BF2.46%÷0.933×1.1002.90%

Factors used: pitcher AAA level factors — K ×0.88, BB ×1.05, HR ×1.10. Pitcher translation is level-wide (no per-league rows, no age adjustment); HR/BF is park-adjusted at half strength (park HR factor 87).

Result: FIP 3.57 → 4.08, computed from the rates in the table with the same formula before and after. The MLE line is not regressed to the mean — regression is applied when seasons are blended into a projection (how).

2016 AABiloxi Shuckers · 114 IPFIP 2.12 → 2.62 (+0.50)K% 27.1% → 22.0%
ComponentRawPark ÷Level factor ×= MLE
K% /BF27.13%—×0.81021.98%
BB% (unintentional) /BF6.56%—×1.1007.22%
HR / BF /BF0.88%÷1.243×1.2000.85%

Factors used: pitcher AA level factors — K ×0.81, BB ×1.10, HR ×1.20. Pitcher translation is level-wide (no per-league rows, no age adjustment); HR/BF is park-adjusted at half strength (park HR factor 149).

Result: FIP 2.12 → 2.62, computed from the rates in the table with the same formula before and after. The MLE line is not regressed to the mean — regression is applied when seasons are blended into a projection (how).

2016 A+Brevard County Manatees · 44 IPFIP 2.09 → 2.83 (+0.74)K% 27.8% → 21.4%
ComponentRawPark ÷Level factor ×= MLE
K% /BF27.84%—×0.77021.44%
BB% (unintentional) /BF5.68%—×1.1506.53%
HR / BF /BF1.14%÷1.093×1.2501.30%

Factors used: pitcher A+ level factors — K ×0.77, BB ×1.15, HR ×1.25. Pitcher translation is level-wide (no per-league rows, no age adjustment); HR/BF is park-adjusted at half strength (park HR factor 119).

Result: FIP 2.09 → 2.83, computed from the rates in the table with the same formula before and after. The MLE line is not regressed to the mean — regression is applied when seasons are blended into a projection (how).

Career Comps

Completed MLB careers (no pro action in 2+ yrs) whose totals — actual + projected — most resemble this player's. Pool: 2,161 pitcher careers (1,251 from 1990-2025 + 910 historical, 1901-2023), also matched on career-to-date at the same age. * Historical (Lahman) careers: rates era-adjusted to 2001-24 league levels; WAR is an OGILVIE proxy.

Player162sIP/yrK%BB%HR/9ERA
OGILVIE CAREER PROJECTION4.77828.6%6.3%1.123.18
Bruce Sutter ('76-'88, 22 WAR*)5.29528.5%*7.3%*1.12*3.14*
Julio Urías ('23)3.610224.3%6.6%1.053.11
Alejandro Peña ('81-'96, 15 WAR*)5.38124.7%*7.5%*0.96*3.61*
Jeff Montgomery ('87-'99, 19 WAR*)4.37226.2%*7.6%*1.01*3.16*
Eric Gagne ('08)3.28027.0%8.5%1.063.47
Sergio Romo ('22)3.65227.0%6.1%1.063.21