J.C. Millan
| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR | MLE AVG/OBP/SLG |
|---|---|---|---|---|---|---|---|---|---|
| 2017 | 21 | APIT | 109 | .231/.266/.327 | 1 | 2 | 19 | — | .179/.202/.255 |
| 2018 | 22 | AA/A+/A2 orgs | 149 | .233/.322/.349 | 3 | 3 | 66 | — | .217/.281/.306 |
| 2019 | 23 | AAMIA | 293 | .268/.322/.372 | 5 | 1 | 63 | — | .231/.271/.318 |
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) | |||||||||||||||||||||||||||||||
| 2016 | 20 | ROK | GCL Marlins | — | 89 | 79 | 15 | 3 | 1 | 0 | 5 | 9 | 3 | 2 | 1 | 190 | 264 | 253 | 518 | 63 | 211 | 10 | 6 | 237 | 9 | — | — | — | — | — | — |
| 2017 | 21 | A | Greensboro Grasshoppers | — | 109 | 104 | 24 | 7 | 0 | 1 | 5 | 33 | 0 | 2 | 2 | 231 | 266 | 327 | 593 | 96 | 329 | 30 | 5 | 266 | 19 | — | — | — | — | — | — |
| 2018 | 22 | AA | Jacksonville Jumbo Shrimp | — | 24 | 20 | 4 | 0 | 0 | 0 | 3 | 3 | 0 | 1 | 0 | 200 | 304 | 200 | 504 | 222 | 12 | 12 | 238 | 28 | — | — | — | — | — | — | |
| 2018 | 22 | A+ | Jupiter Hammerheads | — | 27 | 24 | 7 | 3 | 0 | 1 | 1 | 3 | 1 | 0 | 0 | 292 | 346 | 542 | 888 | 250 | 300 | 11 | 4 | 373 | 131 | — | — | — | — | — | — |
| 2018 | 22 | A | Greensboro Grasshoppers | — | 98 | 85 | 19 | 3 | 0 | 2 | 12 | 11 | 0 | 2 | 0 | 224 | 320 | 329 | 649 | 106 | 236 | 11 | 12 | 296 | 57 | — | — | — | — | — | — |
| 2019 | 23 | AA | Jacksonville Jumbo Shrimp | — | 293 | 269 | 72 | 13 | 0 | 5 | 21 | 47 | 1 | 1 | 3 | 268 | 322 | 372 | 694 | 104 | 307 | 16 | 7 | 312 | 63 | — | — | — | — | — | — |
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2016 | 20 | ROK MLE | GCL Marlins | — | 89 | 81 | 12 | 2 | 1 | 0 | 3 | 13 | 3 | 2 | 1 | 148 | 207 | 198 | 404 | 49 | 174 | 15 | 3 | 182 | 9 | — | — | — | — | — | — |
| 2017 | 21 | A MLE | Greensboro Grasshoppers | — | 109 | 106 | 19 | 5 | 0 | 1 | 3 | 44 | 0 | 2 | 2 | 179 | 202 | 255 | 457 | 75 | 299 | 40 | 3 | 197 | 19 | — | — | — | — | — | — |
| 2018 | 22 | AA MLE | Jacksonville Jumbo Shrimp | — | 24 | 21 | 4 | 0 | 0 | 0 | 2 | 3 | 0 | 1 | 0 | 190 | 261 | 190 | 451 | 204 | 12 | 8 | 210 | 28 | — | — | — | — | — | — | |
| 2018 | 22 | A+ MLE | Jupiter Hammerheads | — | 27 | 24 | 7 | 3 | 0 | 1 | 1 | 4 | 1 | 0 | 0 | 292 | 346 | 542 | 888 | 250 | 299 | 15 | 4 | 362 | 131 | — | — | — | — | — | — |
| 2018 | 22 | A MLE | Greensboro Grasshoppers | — | 98 | 89 | 18 | 3 | 0 | 1 | 8 | 15 | 0 | 2 | 0 | 202 | 268 | 270 | 538 | 67 | 236 | 15 | 8 | 252 | 57 | — | — | — | — | — | — |
| 2019 | 23 | AA MLE | Jacksonville Jumbo Shrimp | — | 293 | 277 | 64 | 12 | 0 | 4 | 14 | 57 | 1 | 1 | 3 | 231 | 271 | 318 | 588 | 87 | 274 | 19 | 5 | 261 | 63 | — | — | — | — | — | — |
| 2016 | 20 | ROK MLE | GCL Marlins | — | 89 | 81 | 12 | 2 | 1 | 0 | 3 | 13 | 3 | 2 | 1 | 148 | 207 | 198 | 404 | 49 | 174 | 15 | 3 | 182 | 9 | — | — | — | — | — | — |
| 2016 | 20 | ROK RAW | GCL Marlins | — | 89 | 79 | 15 | 3 | 1 | 0 | 5 | 9 | 3 | 2 | 1 | 190 | 264 | 253 | 518 | 63 | 211 | 10 | 6 | 237 | 9 | — | — | — | — | — | — |
| 2017 | 21 | A MLE | Greensboro Grasshoppers | — | 109 | 106 | 19 | 5 | 0 | 1 | 3 | 44 | 0 | 2 | 2 | 179 | 202 | 255 | 457 | 75 | 295 | 40 | 3 | 197 | 19 | — | — | — | — | — | — |
| 2017 | 21 | A RAW | Greensboro Grasshoppers | — | 109 | 104 | 24 | 7 | 0 | 1 | 5 | 33 | 0 | 2 | 2 | 231 | 266 | 327 | 593 | 96 | 329 | 30 | 5 | 266 | 19 | — | — | — | — | — | — |
| 2018 | 22 | A MLE | 3 teams | — | 149 | 134 | 30 | 6 | 0 | 3 | 11 | 23 | 1 | 3 | 0 | 224 | 288 | 336 | 623 | 112 | 248 | 15 | 7 | 265 | 66 | — | — | — | — | — | — |
| 2018 | 22 | A RAW | 3 teams | — | 149 | 129 | 30 | 6 | 0 | 3 | 16 | 17 | 1 | 3 | 0 | 233 | 322 | 349 | 671 | 116 | 245 | 11 | 11 | 301 | 66 | — | — | — | — | — | — |
| 2019 | 23 | AA MLE | Jacksonville Jumbo Shrimp | — | 293 | 277 | 64 | 12 | 0 | 4 | 14 | 57 | 1 | 1 | 3 | 231 | 271 | 318 | 588 | 87 | 276 | 19 | 5 | 261 | 63 | — | — | — | — | — | — |
| 2019 | 23 | AA RAW | Jacksonville Jumbo Shrimp | — | 293 | 269 | 72 | 13 | 0 | 5 | 21 | 47 | 1 | 1 | 3 | 268 | 322 | 372 | 694 | 104 | 307 | 16 | 7 | 312 | 63 | — | — | — | — | — | — |
| 2016 | 20 | ROK MLE | GCL Marlins | — | 89 | 83 | 12 | 2 | 1 | 0 | 3 | 13 | 3 | 2 | 1 | 145 | 207 | 193 | 400 | 48 | 174 | 15 | 3 | 182 | 9 | — | — | — | — | — | — |
| 2017 | 21 | A MLE | Greensboro Grasshoppers | — | 109 | 105 | 19 | 5 | 0 | 1 | 3 | 44 | 0 | 2 | 2 | 181 | 202 | 257 | 459 | 76 | 299 | 40 | 3 | 197 | 19 | — | — | — | — | — | — |
| 2018 | 22 | A MLE | 3 teams | — | 149 | 136 | 30 | 6 | 0 | 3 | 11 | 23 | 1 | 3 | 0 | 221 | 288 | 331 | 619 | 110 | 242 | 15 | 7 | 265 | 66 | — | — | — | — | — | — |
| 2019 | 23 | AA MLE | Jacksonville Jumbo Shrimp | — | 293 | 276 | 64 | 12 | 0 | 4 | 14 | 57 | 1 | 1 | 3 | 232 | 271 | 319 | 589 | 87 | 274 | 19 | 5 | 261 | 63 | — | — | — | — | — | — |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| Career | — | MLE | — | 640 | 598 | 125 | 25 | 1 | 8 | 31 | 137 | 5 | 8 | 6 | 209 | 254 | 294 | 548 | 85 | 257 | 21 | 5 | 240 | 49 | -39 | -1 | +0 | +2 | +14 | -2.4 | |
| / 162G | — | MLE | — | 650 | 607 | 126 | 25 | 1 | 8 | 31 | 139 | 5 | 8 | 6 | 208 | 252 | 292 | 543 | 84 | 255 | 21 | 5 | 240 | 49 | -40 | -1 | +0 | +2 | +14 | -2.5 | |
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 AAJacksonville Jumbo Shrimp · 293 PAwOBA .305 → .261 (−43)K% 16.0% → 19.4%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 16.04% | ÷1.007 | ×1.220 | — | — | 19.44% |
| BB% (unintentional) /PA | 7.17% | ÷1.015 | ×0.680 | — | ×1.027 | 4.93% |
| HBP% /PA | 0.34% | — | ×0.840 | — | ×1.027 | 0.29% |
| Singles /BIP | 24.32% | ÷1.008 | ×0.920 | ×0.950 | ×1.027 | 21.66% |
| Doubles /BIP | 5.86% | ÷0.975 | ×0.910 | ×0.950 | ×1.027 | 5.33% |
| Triples /BIP | 0.00% | ÷0.900 | ×0.880 | ×0.950 | ×1.027 | 0.00% |
| Home runs /BIP | 2.25% | ÷0.918 | ×0.800 | — | ×1.027 | 2.01% |
Factors used: league row SL. Park (home-season share, regressed): HR 84, 1B 102, 2B 95, 3B 80, K 101, BB 103 — applied at half strength. Age: age 23 vs a level average of 24.8 → +2.7% on BB/HBP/hit rates (1.8 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.950.
Result: wOBA .305 → .261; ISO .104 → .093; BABIP .307 → .274. 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 · 98 PAwOBA .289 → .252 (−37)K% 11.2% → 15.6%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 11.22% | ÷0.966 | ×1.340 | — | — | 15.56% |
| BB% (unintentional) /PA | 12.24% | ÷1.006 | ×0.660 | — | — | 8.03% |
| HBP% /PA | 0.00% | — | ×0.770 | — | — | 0.00% |
| Singles /BIP | 18.92% | ÷0.945 | ×0.920 | ×1.050 | — | 19.34% |
| Doubles /BIP | 4.05% | ÷0.909 | ×0.820 | ×1.050 | — | 3.84% |
| Triples /BIP | 0.00% | ÷1.150 | ×0.940 | ×1.050 | — | 0.00% |
| Home runs /BIP | 2.70% | ÷1.117 | ×0.820 | — | — | 1.98% |
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 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 ×1.050.
Result: wOBA .289 → .252; ISO .106 → .086; BABIP .236 → .236. 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 A+Jupiter Hammerheads · 27 PAwOBA .363 → .362 (0)K% 11.1% → 15.6%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 11.11% | ÷1.009 | ×1.420 | — | — | 15.63% |
| BB% (unintentional) /PA | 3.70% | ÷0.967 | ×0.750 | — | ×1.012 | 2.91% |
| HBP% /PA | 3.70% | — | ×0.930 | — | ×1.012 | 3.49% |
| Singles /BIP | 14.29% | ÷1.018 | ×0.920 | — | ×1.012 | 13.07% |
| Doubles /BIP | 14.29% | ÷0.903 | ×0.960 | — | ×1.012 | 15.38% |
| Triples /BIP | 0.00% | ÷1.150 | ×0.810 | — | ×1.012 | 0.00% |
| Home runs /BIP | 4.76% | ÷0.850 | ×0.880 | — | ×1.012 | 4.99% |
Factors used: league row FSL. Park (home-season share, regressed): HR 70, 1B 104, 2B 80, 3B 130, K 102, BB 93 — applied at half strength. Age: age 22 vs a level average of 22.8 → +1.2% on BB/HBP/hit rates (0.8 yr younger than average).
Result: wOBA .363 → .362; ISO .250 → .266; BABIP .300 → .299. 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 AAJacksonville Jumbo Shrimp · 24 PAwOBA .243 → .210 (−33)K% 12.5% → 14.5%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 12.50% | ÷1.052 | ×1.220 | — | — | 14.50% |
| BB% (unintentional) /PA | 12.50% | ÷1.122 | ×0.680 | — | ×1.042 | 7.89% |
| HBP% /PA | 0.00% | — | ×0.840 | — | ×1.042 | 0.00% |
| Singles /BIP | 23.53% | ÷1.050 | ×0.920 | — | ×1.042 | 21.48% |
| Doubles /BIP | 0.00% | ÷0.875 | ×0.910 | — | ×1.042 | 0.00% |
| Triples /BIP | 0.00% | ÷0.900 | ×0.880 | — | ×1.042 | 0.00% |
| Home runs /BIP | 0.00% | ÷1.041 | ×0.800 | — | ×1.042 | 0.00% |
Factors used: league row SL. Park (home-season share, regressed): HR 108, 1B 110, 2B 75, 3B 80, K 110, BB 124 — applied at half strength. Age: age 22 vs a level average of 24.8 → +4.2% on BB/HBP/hit rates (2.8 yr younger than average).
Result: wOBA .243 → .210; ISO .000 → .000; BABIP .222 → .204. 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).
2017 AGreensboro Grasshoppers · 109 PAwOBA .259 → .197 (−62)K% 30.3% → 40.0%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 30.28% | ÷1.013 | ×1.340 | — | — | 40.03% |
| BB% (unintentional) /PA | 4.59% | ÷0.991 | ×0.660 | — | ×1.015 | 3.10% |
| HBP% /PA | 0.00% | — | ×0.770 | — | ×1.015 | 0.00% |
| Singles /BIP | 22.54% | ÷0.994 | ×0.920 | ×1.025 | ×1.015 | 21.71% |
| Doubles /BIP | 9.86% | ÷1.066 | ×0.820 | ×1.025 | ×1.015 | 7.89% |
| Triples /BIP | 0.00% | ÷1.150 | ×0.940 | ×1.025 | ×1.015 | 0.00% |
| Home runs /BIP | 1.41% | ÷1.168 | ×0.820 | — | ×1.015 | 1.00% |
Factors used: league row SAL. Park (home-season share, regressed): HR 134, 1B 99, 2B 113, 3B 130, K 103, BB 98 — 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.025.
Result: wOBA .259 → .197; ISO .096 → .065; BABIP .329 → .299. 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).
2016 ROKGCL Marlins · 89 PAwOBA .234 → .182 (−52)K% 10.1% → 14.6%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 10.11% | ÷1.000 | ×1.440 | — | — | 14.56% |
| BB% (unintentional) /PA | 5.62% | ÷1.000 | ×0.620 | — | ×0.995 | 3.47% |
| HBP% /PA | 3.37% | — | ×0.720 | — | ×0.995 | 2.41% |
| Singles /BIP | 15.71% | ÷1.000 | ×0.820 | ×1.040 | ×0.995 | 13.34% |
| Doubles /BIP | 4.29% | ÷1.000 | ×0.720 | ×1.040 | ×0.995 | 3.19% |
| Triples /BIP | 1.43% | ÷1.000 | ×0.720 | ×1.040 | ×0.995 | 1.06% |
| Home runs /BIP | 0.00% | ÷1.000 | ×0.780 | — | ×0.995 | 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 20 vs a level average of 19.5 → −0.5% on BB/HBP/hit rates (0.5 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.040.
Result: wOBA .234 → .182; ISO .063 → .048; BABIP .211 → .174. 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).