Ryan StaffordC Frederick Keys
Age 23 R/R 5'10" / 180 lbs A+ HR +8%BB -5% Svc 0.0 · Ctrl thru 2035 peak 1.1 · 2030
wRC+†54
AVG/OBP/SLG.195 / .275 / .289
PA320
HR4
SB12
K%30
BB%8
MLB%0%
BAT: -16.7 runs (wOBA-derived runs vs avg)-17BATRUN: +1.7 runs (SB/CS + UBR baserunning)+2RUNFLD: +0.0 runs (Defensive runs vs avg)+0FLDPOS: +5.7 runs (Positional adjustment)+6POSREP: +9.1 runs (Replacement-level credit)+9REPTotal WAR: +0.00+0.0WAR
Scouting · nowfuture
HIT
2525
PWR
2525
SPD
6060
EYE
4950
trajectory · 10 yrs
1.1peak
2030

Contract

ESTIMATED  ·  service-time + WAR-based estimator (needs verification)
Status   MiLB
MLB Debut   2030
Service   0 yrs (est)
Team Control Through   2035
First FA Year   2036
YearStatusSalary Proj WAR Value Surplus
2026MiLBstill in minors · estimated debut 2030
2027MiLBstill in minors · estimated debut 2030
2028MiLBstill in minors · estimated debut 2030
2029MiLBstill in minors · estimated debut 2030
2030Arb-2$0.9M+1.1$10M+$9M
2031Arb-3$0.9M+1.0$9M+$8M
2032Ext / FA-deal$0.9M+0.8$4M+$3M
2033Ext / FA-deal$1M+0.6$3M+$2M
2034Ext / FA-deal$1M+0.3$2M+$0.5M
2035Ext / FA-deal$7M+0.1$0.5M-$7M
Totals $12M $28M +$16M
Why some years run red
On long-term deals the salary is locked in regardless of how the player ages. Late years are red whenever projected production drops below the AAV — that's expected, not a sign the deal is bad. The honest scorecard is the Net Surplus over the whole contract, not any single year.

Career Projections (MLE)

All seasons translated to park-neutral MLB-equivalent (MLE) and combined per year. 2026 = actual YTD + projected ROS + total. 2027+ via Advanced Marcel + aging curve.

YearAge LvlTeam PAAB H2B3BHR BBSOHBP SBCS AVGOBPSLGOPS ISOBABIP K%BB% wOBAwRC+ BATRUNFLDPOSREP WAR
202421 A2 teams 8270 17200 6273 101 .243.329.271.601 .029.370 337 .269 64 -3 +2 +0 +1 +2 0.2
202522 A+Aberdeen IronBirds 332285 401120 2610611 224 .140.239.193.432 .053.217 328 .195 7 -35 +3 +0 +6 +9 -1.7
▸ 2026 Season (actual · ROS · total)
202623 A+Frederick Keys 3532 6002 1110 30 .188.212.375.587 .188.200 313 .225 30 -3 +1 +0 +1 +1 -0.1
ROS23 MLBBAL 285256 501015 22865 91 .195.272.301.573 .105.270 308 .259 57 -14 +1 +0 +5 +8 0.1
TOT23 MLBBAL 320288 561017 23975 121 .194.266.309.575 .115.263 307 .256 54 -17 +2 +0 +6 +9 0.0
▸ 2027+ Projections — Projections at projected PA · Park-neutral MLB equivalent · Marcel + aging curve
202724 MLB 10%BAL 361322 661327 30966 102 .205.285.323.608 .118.264 278 .272 67 -14 +1 +0 +6 +10 0.4
202825 MLB 25%BAL 413368 771529 351087 112 .209.290.334.624 .125.267 268 .279 72 -13 +1 +0 +7 +12 0.8
202926 MLB 43%BAL 446397 8416210 391167 122 .212.293.338.631 .126.269 269 .283 75 -13 +2 +0 +8 +13 1.0
203027 MLB 58%BAL 460410 8516210 401207 122 .207.289.329.618 .122.269 269 .285 76 -13 +2 +0 +8 +13 1.1
203128 MLB 68%BAL 464413 8717210 411227 111 .211.293.334.627 .123.269 269 .283 75 -13 +2 -1 +8 +13 1.0
203229 MLB 86%BAL 460409 8516210 411227 111 .208.291.330.621 .122.268 279 .281 73 -14 +2 -1 +8 +13 0.8
203330 MLBBAL 453403 831629 401227 101 .206.289.323.611 .117.266 279 .278 71 -15 +2 -2 +8 +13 0.6
203431 MLBBAL 428380 771528 381177 90 .203.287.316.603 .113.265 279 .274 68 -15 +2 -3 +8 +12 0.3
203532 MLBBAL 400356 701327 351116 80 .197.280.303.583 .107.263 289 .270 65 -16 +2 -4 +7 +11 0.1
203633 MLBBAL 360320 621216 321035 70 .194.277.294.571 .100.261 299 .264 61 -16 +1 -4 +6 +10 -0.2
203734 MLBBAL 310275 521015 27915 60 .189.274.287.561 .098.260 299 .258 56 -15 +1 -5 +6 +9 -0.5
▸ Career Totals (MLE all levels + projections)
Career 52544664 9351822396 452144790 14817 .200.284.311.595 .111.266 289 .270 65 -208 +23 -20 +94 +149 3.8
/ 162G 650577 11623312 5617911 182 .201.284.314.598 .113.267 289 .270 65 -26 +3 -2 +12 +18 0.5

Historical Stats — Raw (Per Stint)

Actual MLB + MiLB stats as they happened, one row per stint at each level. Use this to see what really got recorded; the table above shows MLB-equivalent translations + projections.

YearAge LvlTeam PAAB H2B3BHR BBSOHBP SBCS AVGOBPSLGOPS ISOBABIP K%BB% wOBAwRC+ BATRUNFLDPOSREP WAR
202421 A+Aberdeen IronBirds 1917 2000 180 10 .118.167.118.284 .000.200 425 .132 -41 -3 +0 +1 -0.2
202421 ADelmarva Shorebirds 6349 16300 9123 91 .327.459.388.847 .061.410 1914 .383 151 +4 +1 +2 0.7
202522 A+Aberdeen IronBirds 332270 481520 418211 224 .178.311.248.559 .070.249 2512 .263 59 -15 +3 +9 -0.3

Career Path Comps

What happened to players with a similar stat profile at this age · Y-axis: wRC+ (100 = league avg, 150 = elite, 80 = below) · Bands: P10–P90 outer, P25–P75 inner · Gold: OGILVIE projection

Scouting At Match Age Next 3 Yrs Peak 3 Yrs
Comp Age HIT PWR SPD EYE AVG/OBP/SLG ISOBABIP HRSB K%BB% wRC+WAR AVG/OBP/SLG ISOBABIP HRSB K%BB% wRC+WAR AVG/OBP/SLG ISOBABIP HRSB K%BB% wRC+WAR
Ryan Stafford (OGILVIE) 23 25 25 60 50 .195/.275/.289 .094.276 48 30% 8% 58 -0.6
Dylan Neuse
2023 · A
24 37 39→40 49→50 44 .183/.260/.264 .081.271 814 33% 9% 45 -2.1 .205/.286/.296 .091.292 713 29% 9% 63 -0.8 .211/.301/.305.094.29351327%10%72-0.1
Corey Joyce
2022 · AA
23 41 39→45 53→50 39 .193/.262/.274 .080.300 713 36% 7% 48 -1.9 .208/.307/.328 .120.294 1212 31% 10% 82 +0.5 .212/.315/.318.105.30191429%10%80+0.2
Mike Martin
2016 · A
23 41 35→30 52→55 42 .188/.277/.248 .060.302 312 35% 8% 49 -1.8 .222/.280/.282 .060.288 317 22% 6% 56 -1.3 .244/.292/.297.053.29922318%5%62-0.3
Braulio Vasquez
2022 · A
23 40 40 54→65 40 .192/.269/.282 .090.299 828 36% 7% 53 -1.5 .216/.284/.315 .099.302 727 29% 7% 67 -0.5 .225/.290/.320.095.30443225%7%66-0.3
Hayden Cantrelle
2022 · AA
23 35 41→45 54→55 54 .169/.297/.268 .099.266 823 35% 14% 64 -0.8 .189/.306/.297 .108.297 820 34% 13% 74 -0.1 .191/.310/.302.111.29992134%12%74-0.0
Aaron McKeithan
2022 · A
22 41 39→40 49→40 40 .198/.263/.282 .084.277 67 29% 6% 50 -1.7 .218/.296/.304 .086.283 84 24% 7% 70 -0.3 .219/.302/.289.070.2807122%7%69-0.2
Blake Rambusch
2023 · A
23 47 37→30 52→60 42 .219/.287/.296 .076.318 413 30% 7% 63 -0.8 .226/.311/.291 .065.315 328 26% 9% 72 -0.2 .233/.319/.287.055.31123723%9%71-0.1
Alfredo González
2015 · A
23 42 38→40 52→45 43 .202/.261/.280 .078.265 510 25% 6% 48 -1.9 .230/.292/.294 .064.312 46 25% 7% 64 -0.8 .223/.286/.280.057.2964524%7%55-0.6
Ronaldo Urdaneta
2022 · A
23 43 41→40 57→60 40 .203/.269/.298 .096.321 924 38% 7% 56 -1.3 .188/.271/.269 .081.305 620 37% 9% 51 -1.7 .098/.228/.122.024.17602838%12%-2-1.2
Christian Cairo
2023 · A
22 40→47 39→40 53→60 49 .186/.290/.271 .084.288 716 34% 11% 60 -1.0 .204/.296/.285 .081.295 522 29% 10% 66 -0.6 .215/.301/.289.073.31043529%9%66-0.3
Ismael Alcantara
2021 · A
22 42→30 38→45 56→50 41 .197/.266/.279 .082.311 516 36% 8% 50 -1.7 .214/.271/.343 .129.318 1313 35% 6% 69 -0.4 .203/.261/.318.115.298121635%6%54-0.8
Roberto Caro
2017 · A
23 44→39 37→40 55→60 44 .206/.273/.285 .079.298 315 30% 8% 54 -1.4 .213/.282/.289 .076.316 322 30% 8% 59 -1.1 .210/.285/.286.076.30423229%8%59-0.7
Taylor Krick
2011 · A
23 43 39→30 48→40 49 .206/.285/.289 .084.266 77 24% 9% 62 -0.9 .224/.308/.287 .063.307 45 26% 8% 71 -0.3 .233/.323/.283.051.3262226%8%73-0.0
Grae Kessinger
2021 · A
23 43→29 39→45 50 48 .209/.278/.294 .085.262 712 22% 8% 59 -1.1 .189/.260/.298 .109.257 1315 30% 8% 53 -1.5 .186/.266/.299.113.246141429%9%54-0.9
River Town
2022 · A
23 44→38 37→40 53→50 43 .207/.282/.284 .077.293 312 28% 7% 59 -1.1 .211/.296/.319 .108.266 1015 23% 8% 75 -0.0 .206/.299/.306.100.25491521%9%71-0.2
Erlin Cerda
2017 · A
23 45 36→40 53→55 44 .210/.273/.281 .071.280 213 24% 6% 53 -1.5 .196/.241/.267 .071.299 38 33% 5% 35 -2.8 .166/.201/.211.044.2610835%4%-1-1.2
Onix Vega
2022 · A
23 44 39→30 51→45 45 .213/.281/.298 .085.274 68 24% 7% 62 -0.9 .210/.283/.285 .075.278 66 25% 8% 59 -1.1 .198/.277/.253.056.2614524%8%47-0.8
Logan Warmoth
2019 · A
23 45→39 36→45 54→55 42 .211/.274/.281 .071.306 410 30% 7% 54 -1.4 .196/.268/.274 .078.317 414 36% 8% 50 -1.7 .188/.271/.293.105.291112436%8%55-0.9
Luis Perez
2014 · A
23 45 43→30 50 40 .222/.267/.338 .116.279 109 24% 5% 66 -0.6 .219/.258/.331 .112.307 106 30% 5% 59 -1.1 .217/.244/.347.129.29911231%3%54-0.4
Andy Paz
2016 · A
23 39 37→40 48→45 43 .187/.248/.258 .071.267 55 31% 8% 37 -2.6 .224/.274/.290 .066.298 47 24% 7% 55 -1.4 .235/.280/.283.048.3033722%6%52-0.5