Osniel Castillo
OF ACL White Sox
Age 21
R/R
5'11" / 170 lbs
ROK
HR +4%
Svc 0.0 · Ctrl thru 2038
Overview
ROKPROSPECTMiLBFA 2039
MLB%0%
| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR | MLE AVG/OBP/SLG |
|---|---|---|---|---|---|---|---|---|---|
| 2025 | 19 | ROKCWS | 54 | .375/.444/.542 | 1 | 9 | 66 | — | .240/.296/.320 |
| 2026 | 20 | ROKCWS | 82 | .256/.293/.359 | 1 | 5 | 22 | — | .188/.207/.275 |
| 2027PROJ0% MLB | 21 | MLBCWS | 192 | .208/.261/.290 | 2 | 5 | 55 | -0.2 | |
| 2028PROJ34% MLB | 22 | MLBCWS | 55 | .213/.267/.303 | 1 | 2 | 60 | -0.1 |
Next 2 projected WAR -0.3Projected rows: MLB playing time only, park and league context applied.
ContractESTIMATED
Control thru2038Service0.0First FA2039
2027MiLB2028MiLB2029Ext$0.0M2030Ext$0.0M2031Ext$0.0M2032Ext$0.0M2033Ext$0.9M2034Ext$1.0M+4
Skills · percentileMiLB Statcast 2026 Rk
Speed66
ISO42
K%40
Whiff%36
Z-Con%32
wOBA11
Career WAR0 WAR median (P10 0 / P90 0, comp-based) · star 0% · didn't stick 100%
CompsAngel Aponte (age 21) · Chris Roller (age 21) · Kyle Nevin (age 21)
2027 FULL-SEASON PROJECTIONpark-neutral Marcel · 75 proj PA
wRC+†55
AVG/OBP/SLG.207 / .259 / .287
PA75
HR1
K%29
BB%6
ISO81
MLB%0%
Value2027 · WAR
trajectory · projected WAR by year
Tools · Contract
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 = actual YTD + projected ROS + total. 2028+ via Advanced Marcel + aging curve.
| Year | Age | Lvl | Team | MLB% | PA | AB | H | 2B | 3B | HR | BB | SO | HBP | SB | CS | AVG | OBP | SLG | OPS | ISO | BABIP | K% | BB% | wOBA | wRC+ | BAT | RUN | FLD | POS | REP | WAR |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ▸ Career — actual stats, one row per stint (as recorded, no adjustments) | |||||||||||||||||||||||||||||||
| 2025 | 19 | ROK | DSL White Sox | — | 54 | 48 | 18 | 3 | 1 | 1 | 5 | 9 | 1 | 9 | 1 | 375 | 444 | 542 | 986 | 167 | 447 | 17 | 9 | 436 | 66 | — | — | — | — | — | — |
| 2026 | 20 | ROK | ACL White Sox | — | 82 | 78 | 20 | 3 | 1 | 1 | 4 | 19 | 0 | 5 | 1 | 256 | 293 | 359 | 652 | 103 | 328 | 23 | 5 | 292 | 22 | — | — | — | — | — | — |
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2025 | 19 | ROK MLE | DSL White Sox | — | 54 | 50 | 12 | 2 | 1 | 0 | 3 | 11 | 1 | 9 | 1 | 240 | 296 | 320 | 616 | 80 | 283 | 20 | 6 | 266 | 66 | — | — | — | — | — | — |
| 2026 | 20 | ROK MLE | ACL White Sox | — | 82 | 80 | 15 | 2 | 1 | 1 | 2 | 27 | 0 | 5 | 1 | 188 | 207 | 275 | 482 | 88 | 269 | 33 | 2 | 200 | 22 | — | — | — | — | — | — |
| 2025 | 19 | ROK MLE | DSL White Sox | — | 54 | 50 | 12 | 2 | 1 | 0 | 3 | 11 | 1 | 9 | 1 | 240 | 296 | 320 | 616 | 80 | 308 | 20 | 6 | 266 | 66 | — | — | — | — | — | — |
| 2025 | 19 | ROK RAW | DSL White Sox | — | 54 | 48 | 18 | 3 | 1 | 1 | 5 | 9 | 1 | 9 | 1 | 375 | 444 | 542 | 986 | 167 | 447 | 17 | 9 | 436 | 66 | — | — | — | — | — | — |
| 2026 | 20 | ROK MLE | ACL White Sox | — | 82 | 80 | 15 | 2 | 1 | 1 | 2 | 27 | 0 | 5 | 1 | 188 | 207 | 275 | 482 | 88 | 269 | 33 | 2 | 200 | 22 | — | — | — | — | — | — |
| 2026 | 20 | ROK RAW | ACL White Sox | — | 82 | 78 | 20 | 3 | 1 | 1 | 4 | 19 | 0 | 5 | 1 | 256 | 293 | 359 | 652 | 103 | 328 | 23 | 5 | 292 | 22 | — | — | — | — | — | — |
| 2025 | 19 | ROK MLE | DSL White Sox | — | 54 | 50 | 12 | 2 | 1 | 0 | 3 | 11 | 1 | 9 | 1 | 240 | 296 | 320 | 616 | 80 | 283 | 20 | 6 | 266 | 66 | — | — | — | — | — | — |
| 2026 | 20 | ROK MLE | ACL White Sox | — | 82 | 80 | 15 | 2 | 1 | 1 | 2 | 27 | 0 | 5 | 1 | 188 | 207 | 275 | 482 | 88 | 269 | 33 | 2 | 200 | 22 | — | — | — | — | — | — |
| ▸ Model inputs — neutral MLE (past 3 seasons) | |||||||||||||||||||||||||||||||
| 2025 | 19 | ROK MLE | DSL White Sox | — | 54 | 50 | 12 | 2 | 1 | 0 | 3 | 11 | 1 | 9 | 1 | 240 | 296 | 320 | 616 | 80 | 283 | 20 | 6 | 266 | 66 | — | — | — | — | — | — |
| 2026 | 20 | ROK MLE | ACL White Sox | — | 82 | 80 | 15 | 2 | 1 | 1 | 2 | 27 | 0 | 5 | 1 | 188 | 207 | 275 | 482 | 88 | 269 | 33 | 2 | 200 | 22 | — | — | — | — | — | — |
| ▸ 2027 season | |||||||||||||||||||||||||||||||
| ▸ 2027 — full MLE projection (neutral park, full availability) | |||||||||||||||||||||||||||||||
| 2027 | 21 | MLB MLE | CWS | 0% | 192 | 178 | 38 | 6 | 2 | 2 | 11 | 56 | 1 | 5 | 1 | 208 | 261 | 290 | 551 | 81 | 289 | 29 | 6 | 250 | 55 | -10 | +1 | +0 | -1 | +4 | -0.2 |
| ▸ Career projection (2028+) — MLB context, MLB playing time (PA × MLB%) | |||||||||||||||||||||||||||||||
| 2028 | 22 | MLB MLE | CWS | 34% | 159 | 147 | 31 | 5 | 1 | 2 | 10 | 45 | 1 | 5 | 1 | 212 | 266 | 301 | 568 | 89 | 290 | 28 | 6 | 257 | 60 | -8 | +1 | +0 | -1 | +3 | -0.5 |
| 2028 | 22 | MLB CTX | CWS | 34% | 55 | 52 | 11 | 2 | 0 | 1 | 3 | 16 | 0 | 2 | 0 | 213 | 267 | 303 | 570 | 90 | 291 | 29 | 5 | 257 | 60 | -3 | +0 | +0 | -0 | +1 | -0.1 |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| ▸ Career totals — MLB only (actual + projected) | |||||||||||||||||||||||||||||||
| Career | — | A+C | — | 55 | 52 | 11 | 2 | 0 | 1 | 3 | 16 | 0 | 2 | 0 | 212 | 255 | 308 | 562 | 96 | 286 | 29 | 5 | 257 | 51 | -3 | +0 | +0 | -0 | +1 | -0.1 | |
| / 162G | — | A+C | — | 650 | 615 | 131 | 24 | 0 | 12 | 35 | 189 | 0 | 24 | 0 | 213 | 255 | 311 | 566 | 98 | 287 | 29 | 5 | 257 | 51 | -31 | +5 | +0 | -4 | +14 | -1.7 | |
| Career | — | MLE | — | 370 | 347 | 73 | 11 | 4 | 4 | 19 | 105 | 3 | 21 | 3 | 210 | 257 | 300 | 557 | 89 | 289 | 28 | 5 | 244 | 51 | -12 | +1 | +0 | -1 | +5 | -0.7 | |
| / 162G | — | MLE | — | 650 | 610 | 128 | 19 | 7 | 7 | 33 | 184 | 5 | 37 | 5 | 210 | 256 | 298 | 555 | 89 | 287 | 28 | 5 | 244 | 51 | -32 | +3 | +0 | -4 | +14 | -2.0 | |