Joel Kuhnel

P San Francisco Giants
Age 32 RHP 6'5" / 290 lbs MLB
Overview
MLBRP40-MAN
YearAgeLvl / TeamGGSIPERAFIPK%BB%WARMLE rates
202429MIX2 levels410523.292.8516.8%5.1%1.1K 15.2% · BB 5.7% · FIP 2.86
202530AAAScranton/Wilk…502643.532.8821.6%4.2%—K 18.6% · BB 3.8% · FIP 3.10
202631MIX2 levels580593.664.5116.4%8.2%0.0K 15.6% · BB 8.0% · FIP 4.66
2027PROJ32MLBSF400424.504.4417.0%6.1%0.1
2028PROJ95% MLB33MLBSF270284.634.7216.2%6.6%-0.1
2029PROJ90% MLB34MLBSF150164.865.0215.2%7.1%-0.1
Last 3 seasons WAR 1.1  ·  Next 3 projected WAR -0.1Projected rows: MLB playing time only, park and league context applied.
Contract
No contract data on file.
Skills · percentileStatcast 2026
FB Velo61
K%10
xwOBA vs10
CompsJuan Sandoval (age 34) · Hector Navarro (age 35) · Angel Castro (age 32)
2027 FULL-SEASON PROJECTIONrates below = full-season projection
showingPROJ
wRC+ AGAINSTvL 125117vR 109
ERA4.50
FIP4.44
K%17.0%
BB%6.1%
K-BB%10.9%
Proj IP43
Value2027 · WAR
Runs saved vs league avg · 43 IP
K: -1.3 runs (Runs saved by strikeouts vs lg-avg K%)-1KBB: +0.9 runs (Runs saved by walk suppression vs lg-avg BB%)+1BBCONTACT: -0.9 runs (Runs saved on contact quality (HR suppression) vs lg)-1CONTACTSTAM: +1.8 runs (Replacement credit for innings volume)+2STAMTotal WAR: +0.06 (43 IP)+0.1WAR
0.1-0.1-0.1272829
Grades · Statcast · Contract
Scouting Grades
STUF4545
CTRL7070
CMD5555
K†4040
Statcast Percentiles
FB Velo
p6195.3
Whiff%
p3222.8%
K%
p1013.9%
xwOBA vs
p100.362

Contract

No contract data on file. Pre-MLB players and minor-league free agents do not yet have salary projections — entries are added at first 40-man roster placement.

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)
201621ROK MLEBillings Mustangs180219214110%1.210.3%1.4%9.0%1.5%3.433.23—
201621ROK RAWBillings Mustangs180219214110%1.215.2%1.1%14.1%1.1%3.432.53—
201722A MLEDayton Dragons48064276541060%1.314.5%4.3%10.2%2.4%4.363.75—
201722A RAWDayton Dragons48064276541060%1.319.6%3.6%15.9%2.2%4.363.10—
201823A+ MLEDaytona Tortugas4405322556920%1.219.2%4.6%14.6%1.1%3.042.64—
201823A+ RAWDaytona Tortugas4405322556920%1.224.9%4.0%20.9%0.9%3.041.99—
201924MIX MLE3 levels52063257591870%1.219.5%6.5%13.0%3.4%2.564.13+0.3
201924MIX RAW3 levels52063257591870%1.223.0%7.0%16.0%2.7%2.563.53+0.8
202025MLB MLECincinnati Reds303133020%1.023.1%0.0%23.1%15.4%6.009.60-0.2
202025MLB RAWCincinnati Reds303133020%1.023.1%0.0%23.1%15.4%6.009.77-0.2
202126MIX MLE2 levels81831111112%1.035.5%3.2%32.3%3.2%1.122.28—
202126MIX RAW2 levels81831111112%1.035.5%3.2%32.3%3.2%1.122.35—
202227MIX MLE2 levels63068297631490%1.122.0%5.1%16.9%2.9%5.803.49+0.9
202227MIX RAW2 levels63068297631490%1.121.2%4.7%16.5%3.0%5.803.58+0.8
202328MIX MLE2 levels47057258342060%1.211.5%7.1%4.4%2.7%6.044.51+0.0
202328MIX RAW2 levels47057258342060%1.213.2%7.8%5.4%2.3%6.044.34+0.1
202429MIX MLE2 levels41052214361120%1.315.2%5.7%9.6%0.6%3.292.86+1.1
202429MIX MLE2 levels41052214361120%1.315.2%5.7%9.6%0.6%3.292.86+1.1
202429MIX RAW2 levels41052214361120%1.316.8%5.1%11.7%0.9%3.292.85+1.1
202530AAA MLEScranton/Wilkes-Barre RailRiders50264259561154%1.318.6%3.8%14.8%2.0%3.533.10—
202530AAA MLEScranton/Wilkes-Barre RailRiders50264259561154%1.318.6%3.8%14.8%2.0%3.533.10—
202530AAA RAWScranton/Wilkes-Barre RailRiders50264259561154%1.321.6%4.2%17.4%1.9%3.532.88—
202631MIX MLE2 levels58059256422180%1.015.6%8.0%7.6%3.4%3.664.66-0.1
202631MIX MLE2 levels58059256422180%1.015.6%8.0%7.6%3.4%3.664.66-0.1
202631MIX RAW2 levels58059256422180%1.016.4%8.2%8.2%3.1%3.664.51+0.0
▸ Career totals (raw MLB only — as recorded)
MLB Career—127013960910439210%1.117.1%6.4%10.7%3.4%5.394.41+0.2
▸ 2027 season — projected remainder (no 2027 stats recorded)
202732MLBSF40042177301150%1.117.0%6.1%10.9%2.9%4.504.44+0.1
▸ Career projection (2028+) — MLB context, MLB playing time (IP × MLB%)
202833MLB MLESF2802912420840%1.116.2%6.6%9.6%3.2%4.634.72-0.1
202934MLB MLESF170187612530%1.115.2%7.1%8.2%3.5%4.865.02-0.1
202833MLB CTXSF2702811819840%1.016.2%6.6%9.6%3.2%4.634.72-0.1
202934MLB CTXSF150166810520%1.115.2%7.1%8.2%3.5%4.865.02-0.1
▸ Career totals — MLB only (actual + projected)
Career— RAW169018379613452270%1.116.8%6.5%10.3%3.4%5.224.38+0.4
/ 200 IP— RAW185020087014757300%1.116.8%6.5%10.3%3.4%5.224.38+0.4
Career— MLE43235122178372117531%1.217.1%5.4%11.7%2.4%4.013.67+0.1
/ 200 IP— MLE169120085014546211%1.217.1%5.4%11.7%2.4%4.013.67+0.1

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 AAANashville Sounds · 14 IPFIP 2.87 → 3.18 (+0.31)K% 25.9% → 22.3%
ComponentRawPark ÷Level factor ×= MLE
K% /BF25.93%—×0.86022.30%
BB% (unintentional) /BF7.41%—×0.9006.67%
HR / BF /BF1.85%÷1.000×1.1002.04%

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 100).

Result: FIP 2.87 → 3.18, 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 AAAScranton/Wilkes-Barre RailRiders · 64 IPFIP 2.87 → 3.10 (+0.23)K% 21.6% → 18.6%
ComponentRawPark ÷Level factor ×= MLE
K% /BF21.62%—×0.86018.59%
BB% (unintentional) /BF4.25%—×0.9003.82%
HR / BF /BF1.93%÷1.070×1.1001.99%

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 114).

Result: FIP 2.87 → 3.10, 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).

2024 AAADurham Bulls · 42 IPFIP 2.71 → 2.86 (+0.14)K% 17.7% → 15.2%
ComponentRawPark ÷Level factor ×= MLE
K% /BF17.71%—×0.86015.23%
BB% (unintentional) /BF6.29%—×0.9005.66%
HR / BF /BF0.57%÷1.061×1.1000.59%

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 112).

Result: FIP 2.71 → 2.86, 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 AAASugar Land Space Cowboys · 44 IPFIP 3.90 → 4.23 (+0.33)K% 15.5% → 13.3%
ComponentRawPark ÷Level factor ×= MLE
K% /BF15.50%—×0.86013.33%
BB% (unintentional) /BF8.00%—×0.9007.20%
HR / BF /BF2.00%÷0.896×1.1002.45%

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 79).

Result: FIP 3.90 → 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).

2022 AAALouisville Bats · 10 IPFIP 3.30 → 3.30 (−0.00)K% 16.7% → 14.7%
ComponentRawPark ÷Level factor ×= MLE
K% /BF16.67%—×0.88014.67%
BB% (unintentional) /BF2.38%—×1.0502.50%
HR / BF /BF2.38%÷1.282×1.1002.04%

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 156).

Result: FIP 3.30 → 3.30, 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).

2019 AAChattanooga Lookouts · 36 IPFIP 3.69 → 4.51 (+0.82)K% 21.1% → 17.1%
ComponentRawPark ÷Level factor ×= MLE
K% /BF21.13%—×0.81017.11%
BB% (unintentional) /BF3.52%—×1.1003.87%
HR / BF /BF3.52%÷0.979×1.2004.31%

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 96).

Result: FIP 3.69 → 4.51, 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).

2019 AAALouisville Bats · 18 IPFIP 2.93 → 3.39 (+0.46)K% 27.4% → 24.1%
ComponentRawPark ÷Level factor ×= MLE
K% /BF27.40%—×0.88024.11%
BB% (unintentional) /BF10.96%—×1.05011.51%
HR / BF /BF1.37%÷0.957×1.1001.57%

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 91).

Result: FIP 2.93 → 3.39, 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 A+Daytona Tortugas · 53 IPFIP 1.99 → 2.64 (+0.65)K% 24.9% → 19.2%
ComponentRawPark ÷Level factor ×= MLE
K% /BF24.89%—×0.77019.16%
BB% (unintentional) /BF4.00%—×1.1504.60%
HR / BF /BF0.89%÷1.058×1.2501.05%

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 112).

Result: FIP 1.99 → 2.64, 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: 1,234 reliever careers (754 from 1990-2025 + 480 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 PROJECTION1.14616.8%6.7%1.295.08
Steve Kealey ('68-'73, -1 WAR*)1.15418.5%*7.2%*1.32*5.26*
Carlos Almánzar ('05)1.26016.3%7.9%1.324.82
Jose Cabrera ('02)1.46816.2%7.9%1.394.95
Brandon Maurer ('18)1.96219.9%7.8%1.145.36
Chuck Hartenstein ('66-'77, -1 WAR*)1.55913.7%*7.2%*1.50*5.28*
Larry Casian ('90-'98, 0 WAR*)1.24014.7%*6.8%*1.25*4.37*