J.C. Millan

Pos2B
B/TR/R
Born1996-01-18
Age (2027)31
No MLB projection yet. Career stats below are historical.
Overview
AALAST SEASON 2019
YearAgeLvl / TeamPAAVG/OBP/SLGHRSBwRC+WARMLE AVG/OBP/SLG
201721APIT109.231/.266/.3271219—.179/.202/.255
201822AA/A+/A2 orgs149.233/.322/.3493366—.217/.281/.306
201923AAMIA293.268/.322/.3725163—.231/.271/.318
Contract
No contract data on file.

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 = full-season projection (no games played yet). 2028+ via Advanced Marcel + aging curve.

YearAge LvlTeam MLB% PAAB H2B3BHR BBSOHBP SBCS AVGOBPSLGOPS ISOBABIP K%BB% wOBAwRC+ BATRUNFLDPOSREP WAR
▸ Career — actual stats, one row per stint (as recorded, no adjustments)
201620 ROKGCL Marlins — 8979 15310 593 21 190264253518 63211 106 237 9 — — — — — —
201721 AGreensboro Grasshoppers — 109104 24701 5330 22 231266327593 96329 305 266 19 — — — — — —
201822 AAJacksonville Jumbo Shrimp — 2420 4000 330 10 200304200504 222 1212 238 28 — — — — — —
201822 A+Jupiter Hammerheads — 2724 7301 131 00 292346542888 250300 114 373 131 — — — — — —
201822 AGreensboro Grasshoppers — 9885 19302 12110 20 224320329649 106236 1112 296 57 — — — — — —
201923 AAJacksonville Jumbo Shrimp — 293269 721305 21471 13 268322372694 104307 167 312 63 — — — — — —
▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents)
201620 ROK MLEGCL Marlins — 8981 12210 3133 21 148207198404 49174 153 182 9 — — — — — —
201721 A MLEGreensboro Grasshoppers — 109106 19501 3440 22 179202255457 75299 403 197 19 — — — — — —
201822 AA MLEJacksonville Jumbo Shrimp — 2421 4000 230 10 190261190451 204 128 210 28 — — — — — —
201822 A+ MLEJupiter Hammerheads — 2724 7301 141 00 292346542888 250299 154 362 131 — — — — — —
201822 A MLEGreensboro Grasshoppers — 9889 18301 8150 20 202268270538 67236 158 252 57 — — — — — —
201923 AA MLEJacksonville Jumbo Shrimp — 293277 641204 14571 13 231271318588 87274 195 261 63 — — — — — —
201620 ROK MLEGCL Marlins — 8981 12210 3133 21 148207198404 49174 153 182 9 — — — — — —
201620 ROK RAWGCL Marlins — 8979 15310 593 21 190264253518 63211 106 237 9 — — — — — —
201721 A MLEGreensboro Grasshoppers — 109106 19501 3440 22 179202255457 75295 403 197 19 — — — — — —
201721 A RAWGreensboro Grasshoppers — 109104 24701 5330 22 231266327593 96329 305 266 19 — — — — — —
201822 A MLE3 teams — 149134 30603 11231 30 224288336623 112248 157 265 66 — — — — — —
201822 A RAW3 teams — 149129 30603 16171 30 233322349671 116245 1111 301 66 — — — — — —
201923 AA MLEJacksonville Jumbo Shrimp — 293277 641204 14571 13 231271318588 87276 195 261 63 — — — — — —
201923 AA RAWJacksonville Jumbo Shrimp — 293269 721305 21471 13 268322372694 104307 167 312 63 — — — — — —
201620 ROK MLEGCL Marlins — 8983 12210 3133 21 145207193400 48174 153 182 9 — — — — — —
201721 A MLEGreensboro Grasshoppers — 109105 19501 3440 22 181202257459 76299 403 197 19 — — — — — —
201822 A MLE3 teams — 149136 30603 11231 30 221288331619 110242 157 265 66 — — — — — —
201923 AA MLEJacksonville Jumbo Shrimp — 293276 641204 14571 13 232271319589 87274 195 261 63 — — — — — —
▸ Career Totals
Career— MLE — 640598 1252518 311375 86 209254294548 85257 215 240 49 -39 -1 +0 +2 +14 -2.4
/ 162G— MLE — 650607 1262518 311395 86 208252292543 84255 215 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%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA16.04%÷1.007×1.220——19.44%
BB% (unintentional) /PA7.17%÷1.015×0.680—×1.0274.93%
HBP% /PA0.34%—×0.840—×1.0270.29%
Singles /BIP24.32%÷1.008×0.920×0.950×1.02721.66%
Doubles /BIP5.86%÷0.975×0.910×0.950×1.0275.33%
Triples /BIP0.00%÷0.900×0.880×0.950×1.0270.00%
Home runs /BIP2.25%÷0.918×0.800—×1.0272.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%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA11.22%÷0.966×1.340——15.56%
BB% (unintentional) /PA12.24%÷1.006×0.660——8.03%
HBP% /PA0.00%—×0.770——0.00%
Singles /BIP18.92%÷0.945×0.920×1.050—19.34%
Doubles /BIP4.05%÷0.909×0.820×1.050—3.84%
Triples /BIP0.00%÷1.150×0.940×1.050—0.00%
Home runs /BIP2.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%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA11.11%÷1.009×1.420——15.63%
BB% (unintentional) /PA3.70%÷0.967×0.750—×1.0122.91%
HBP% /PA3.70%—×0.930—×1.0123.49%
Singles /BIP14.29%÷1.018×0.920—×1.01213.07%
Doubles /BIP14.29%÷0.903×0.960—×1.01215.38%
Triples /BIP0.00%÷1.150×0.810—×1.0120.00%
Home runs /BIP4.76%÷0.850×0.880—×1.0124.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%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA12.50%÷1.052×1.220——14.50%
BB% (unintentional) /PA12.50%÷1.122×0.680—×1.0427.89%
HBP% /PA0.00%—×0.840—×1.0420.00%
Singles /BIP23.53%÷1.050×0.920—×1.04221.48%
Doubles /BIP0.00%÷0.875×0.910—×1.0420.00%
Triples /BIP0.00%÷0.900×0.880—×1.0420.00%
Home runs /BIP0.00%÷1.041×0.800—×1.0420.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%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA30.28%÷1.013×1.340——40.03%
BB% (unintentional) /PA4.59%÷0.991×0.660—×1.0153.10%
HBP% /PA0.00%—×0.770—×1.0150.00%
Singles /BIP22.54%÷0.994×0.920×1.025×1.01521.71%
Doubles /BIP9.86%÷1.066×0.820×1.025×1.0157.89%
Triples /BIP0.00%÷1.150×0.940×1.025×1.0150.00%
Home runs /BIP1.41%÷1.168×0.820—×1.0151.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%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA10.11%÷1.000×1.440——14.56%
BB% (unintentional) /PA5.62%÷1.000×0.620—×0.9953.47%
HBP% /PA3.37%—×0.720—×0.9952.41%
Singles /BIP15.71%÷1.000×0.820×1.040×0.99513.34%
Doubles /BIP4.29%÷1.000×0.720×1.040×0.9953.19%
Triples /BIP1.43%÷1.000×0.720×1.040×0.9951.06%
Home runs /BIP0.00%÷1.000×0.780—×0.9950.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).