Samuel Castro
| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR | MLE AVG/OBP/SLG |
|---|---|---|---|---|---|---|---|---|---|
| 2015 | 17 | ROKGCL Marlins | 227 | .265/.335/.325 | 0 | 10 | 42 | — | .215/.271/.254 |
| 2018 | 20 | A/INTL2 orgs | 241 | .265/.339/.367 | 1 | 7 | 72 | — | .236/.293/.322 |
| 2019 | 21 | AClinton Lumbe… | 192 | .194/.285/.242 | 0 | 9 | 8 | — | .146/.215/.181 |
Career Stats + Projections
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.
| 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) | |||||||||||||||||||||||||||||||
| 2015 | 17 | ROK | GCL Marlins | — | 227 | 200 | 53 | 6 | 3 | 0 | 14 | 41 | 7 | 10 | 6 | 265 | 335 | 325 | 660 | 60 | 329 | 18 | 6 | 296 | 42 | — | — | — | — | — | — |
| 2018 | 20 | A | Greensboro Grasshoppers | — | 216 | 195 | 51 | 12 | 2 | 1 | 11 | 52 | 9 | 6 | 2 | 262 | 330 | 359 | 689 | 97 | 352 | 24 | 5 | 313 | 64 | — | — | — | — | — | — |
| 2018 | 20 | INTL | Toros del Este | — | 25 | 20 | 6 | 1 | 1 | 0 | 4 | 6 | 0 | 1 | 0 | 300 | 417 | 450 | 867 | 150 | 429 | 24 | 16 | 372 | 138 | — | — | — | — | — | — |
| 2019 | 21 | A | Clinton LumberKings | — | 192 | 165 | 32 | 6 | 1 | 0 | 20 | 62 | 1 | 9 | 5 | 194 | 285 | 242 | 527 | 48 | 308 | 32 | 10 | 243 | 8 | — | — | — | — | — | — |
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2015 | 17 | ROK MLE | GCL Marlins | — | 227 | 205 | 44 | 4 | 2 | 0 | 9 | 59 | 7 | 10 | 6 | 215 | 271 | 254 | 525 | 39 | 284 | 26 | 4 | 231 | 42 | — | — | — | — | — | — |
| 2018 | 20 | A MLE | Greensboro Grasshoppers | — | 216 | 199 | 47 | 10 | 2 | 1 | 7 | 72 | 9 | 6 | 2 | 236 | 293 | 322 | 615 | 85 | 356 | 33 | 3 | 263 | 64 | — | — | — | — | — | — |
| 2019 | 21 | A MLE | Clinton LumberKings | — | 192 | 171 | 25 | 4 | 1 | 0 | 14 | 83 | 1 | 9 | 5 | 146 | 215 | 181 | 396 | 35 | 260 | 43 | 7 | 180 | 8 | — | — | — | — | — | — |
| 2015 | 17 | ROK MLE | GCL Marlins | — | 227 | 205 | 44 | 4 | 2 | 0 | 9 | 59 | 7 | 10 | 6 | 215 | 271 | 254 | 525 | 39 | 297 | 26 | 4 | 231 | 42 | — | — | — | — | — | — |
| 2015 | 17 | ROK RAW | GCL Marlins | — | 227 | 200 | 53 | 6 | 3 | 0 | 14 | 41 | 7 | 10 | 6 | 265 | 335 | 325 | 660 | 60 | 329 | 18 | 6 | 296 | 42 | — | — | — | — | — | — |
| 2018 | 20 | A MLE | 2 teams | — | 241 | 222 | 53 | 12 | 2 | 1 | 8 | 80 | 9 | 7 | 2 | 239 | 293 | 324 | 617 | 86 | 369 | 33 | 3 | 263 | 64 | — | — | — | — | — | — |
| 2018 | 20 | A RAW | 2 teams | — | 241 | 215 | 57 | 13 | 3 | 1 | 15 | 58 | 9 | 7 | 2 | 265 | 339 | 367 | 706 | 102 | 359 | 24 | 6 | 319 | 64 | — | — | — | — | — | — |
| 2019 | 21 | A MLE | Clinton LumberKings | — | 192 | 171 | 25 | 4 | 1 | 0 | 14 | 83 | 1 | 9 | 5 | 146 | 215 | 181 | 396 | 35 | 281 | 43 | 7 | 180 | 8 | — | — | — | — | — | — |
| 2019 | 21 | A RAW | Clinton LumberKings | — | 192 | 165 | 32 | 6 | 1 | 0 | 20 | 62 | 1 | 9 | 5 | 194 | 285 | 242 | 527 | 48 | 308 | 32 | 10 | 243 | 8 | — | — | — | — | — | — |
| 2015 | 17 | ROK MLE | GCL Marlins | — | 227 | 209 | 44 | 4 | 2 | 0 | 9 | 59 | 7 | 10 | 6 | 211 | 271 | 249 | 520 | 38 | 284 | 26 | 4 | 231 | 42 | — | — | — | — | — | — |
| 2018 | 20 | A MLE | 2 teams | — | 241 | 222 | 53 | 12 | 2 | 1 | 8 | 80 | 9 | 7 | 2 | 239 | 293 | 324 | 617 | 86 | 356 | 33 | 3 | 263 | 64 | — | — | — | — | — | — |
| 2019 | 21 | A MLE | Clinton LumberKings | — | 192 | 175 | 25 | 4 | 1 | 0 | 14 | 83 | 1 | 9 | 5 | 143 | 215 | 177 | 392 | 34 | 260 | 43 | 7 | 180 | 8 | — | — | — | — | — | — |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| Career | — | MLE | — | 660 | 598 | 122 | 20 | 5 | 1 | 31 | 222 | 17 | 26 | 13 | 204 | 263 | 259 | 522 | 55 | 320 | 34 | 5 | 228 | 40 | -47 | +0 | +0 | +7 | +14 | -2.6 | |
| / 162G | — | MLE | — | 650 | 589 | 121 | 20 | 5 | 1 | 31 | 219 | 17 | 26 | 13 | 205 | 266 | 261 | 527 | 56 | 323 | 34 | 5 | 228 | 40 | -46 | +0 | +0 | +7 | +14 | -2.6 | |
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.
2019 AClinton LumberKings · 192 PAwOBA .239 → .180 (−59)K% 32.3% → 43.1%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 32.29% | ÷1.019 | ×1.360 | — | — | 43.10% |
| BB% (unintentional) /PA | 10.42% | ÷0.972 | ×0.690 | — | — | 7.40% |
| HBP% /PA | 0.52% | — | ×0.780 | — | — | 0.41% |
| Singles /BIP | 24.27% | ÷1.019 | ×0.920 | ×0.950 | — | 20.81% |
| Doubles /BIP | 5.83% | ÷1.007 | ×0.830 | ×0.950 | — | 4.56% |
| Triples /BIP | 0.97% | ÷0.936 | ×0.910 | ×0.950 | — | 0.90% |
| Home runs /BIP | 0.00% | ÷1.085 | ×0.800 | — | — | 0.00% |
Factors used: level-wide A factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 117, 1B 104, 2B 101, 3B 87, K 104, BB 94 — applied at half strength. Age: age 22 vs a level average of 22.0 → +0.0% on BB/HBP/hit rates (0.0 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.950.
Result: wOBA .239 → .180; ISO .048 → .036; BABIP .308 → .260. 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 AGreensboro Grasshoppers · 216 PAwOBA .305 → .263 (−42)K% 24.1% → 33.4%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 24.07% | ÷0.966 | ×1.340 | — | — | 33.38% |
| BB% (unintentional) /PA | 5.09% | ÷1.006 | ×0.660 | — | ×1.015 | 3.39% |
| HBP% /PA | 4.17% | — | ×0.770 | — | ×1.015 | 3.26% |
| Singles /BIP | 25.17% | ÷0.945 | ×0.920 | ×1.050 | ×1.015 | 26.12% |
| Doubles /BIP | 8.39% | ÷0.909 | ×0.820 | ×1.050 | ×1.015 | 8.07% |
| Triples /BIP | 1.40% | ÷1.150 | ×0.940 | ×1.050 | ×1.015 | 1.22% |
| Home runs /BIP | 0.70% | ÷1.117 | ×0.820 | — | ×1.015 | 0.52% |
Factors used: league row SAL. Park (home-season share, regressed): HR 123, 1B 89, 2B 82, 3B 130, K 93, BB 101 — applied at half strength. Age: age 21 vs a level average of 22.0 → +1.5% on BB/HBP/hit rates (1.0 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.050.
Result: wOBA .305 → .263; ISO .097 → .080; BABIP .352 → .356. 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).
2015 ROKGCL Marlins · 227 PAwOBA .292 → .231 (−61)K% 18.1% → 26.0%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 18.06% | ÷1.000 | ×1.440 | — | — | 26.01% |
| BB% (unintentional) /PA | 6.17% | ÷1.000 | ×0.620 | — | ×1.022 | 3.91% |
| HBP% /PA | 3.08% | — | ×0.720 | — | ×1.022 | 2.27% |
| Singles /BIP | 27.67% | ÷1.000 | ×0.820 | ×1.050 | ×1.022 | 24.36% |
| Doubles /BIP | 3.77% | ÷1.000 | ×0.720 | ×1.050 | ×1.022 | 2.92% |
| Triples /BIP | 1.89% | ÷1.000 | ×0.720 | ×1.050 | ×1.022 | 1.46% |
| Home runs /BIP | 0.00% | ÷1.000 | ×0.780 | — | ×1.022 | 0.00% |
Factors used: level-wide ROK factors (no league-specific row for this league/era). Park (home-season share, regressed): no park row on file (treated as neutral) — applied at half strength. Age: age 18 vs a level average of 19.5 → +2.2% on BB/HBP/hit rates (1.5 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.050.
Result: wOBA .292 → .231; ISO .060 → .045; BABIP .329 → .284. 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 — .