K.J. Woods
| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR | MLE AVG/OBP/SLG |
|---|---|---|---|---|---|---|---|---|---|
| 2014 | 19 | ROKGCL Marlins | 54 | .240/.296/.320 | 1 | 0 | 1 | — | .154/.185/.231 |
| 2015 | 20 | APIT | 439 | .277/.366/.496 | 18 | 1 | 61 | — | .194/.268/.317 |
| 2016 | 21 | A+/A2 orgs | 258 | .219/.335/.370 | 8 | 0 | 49 | — | .169/.253/.282 |
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) | |||||||||||||||||||||||||||||||
| 2013 | 18 | ROK | GCL Marlins | — | 168 | 144 | 29 | 4 | 0 | 1 | 17 | 53 | 6 | 3 | 1 | 201 | 311 | 250 | 561 | 49 | 308 | 32 | 10 | 269 | 9 | — | — | — | — | — | — |
| 2014 | 19 | ROK | GCL Marlins | — | 54 | 50 | 12 | 1 | 0 | 1 | 4 | 20 | 0 | 0 | 1 | 240 | 296 | 320 | 616 | 80 | 379 | 37 | 7 | 282 | 1 | — | — | — | — | — | — |
| 2015 | 20 | A | Greensboro Grasshoppers | — | 439 | 383 | 106 | 28 | 1 | 18 | 45 | 133 | 9 | 1 | 3 | 277 | 366 | 496 | 862 | 219 | 376 | 30 | 10 | 379 | 61 | — | — | — | — | — | — |
| 2016 | 21 | A+ | Jupiter Hammerheads | — | 94 | 84 | 13 | 1 | 0 | 2 | 8 | 34 | 2 | 0 | 0 | 155 | 245 | 238 | 483 | 83 | 229 | 36 | 9 | 229 | 1 | — | — | — | — | — | — |
| 2016 | 21 | A | Kannapolis Intimidators | — | 164 | 135 | 35 | 6 | 1 | 6 | 26 | 50 | 2 | 0 | 0 | 259 | 387 | 452 | 838 | 193 | 362 | 30 | 16 | 374 | 76 | — | — | — | — | — | — |
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2013 | 18 | ROK MLE | GCL Marlins | — | 168 | 150 | 21 | 3 | 0 | 1 | 11 | 76 | 6 | 3 | 1 | 140 | 228 | 180 | 408 | 40 | 258 | 45 | 7 | 182 | 9 | — | — | — | — | — | — |
| 2014 | 19 | ROK MLE | GCL Marlins | — | 54 | 52 | 8 | 1 | 0 | 1 | 2 | 29 | 0 | 0 | 1 | 154 | 185 | 231 | 416 | 77 | 308 | 54 | 4 | 169 | 1 | — | — | — | — | — | — |
| 2015 | 20 | A MLE | Greensboro Grasshoppers | — | 439 | 397 | 77 | 20 | 1 | 9 | 31 | 185 | 9 | 1 | 3 | 194 | 268 | 317 | 585 | 123 | 326 | 42 | 7 | 259 | 61 | — | — | — | — | — | — |
| 2016 | 21 | A+ MLE | Jupiter Hammerheads | — | 94 | 85 | 9 | 1 | 0 | 1 | 7 | 49 | 2 | 0 | 0 | 106 | 191 | 153 | 344 | 47 | 220 | 52 | 7 | 169 | 1 | — | — | — | — | — | — |
| 2016 | 21 | A MLE | Kannapolis Intimidators | — | 164 | 146 | 30 | 5 | 1 | 5 | 15 | 66 | 2 | 0 | 0 | 205 | 288 | 356 | 645 | 151 | 321 | 40 | 9 | 280 | 76 | — | — | — | — | — | — |
| 2013 | 18 | ROK MLE | GCL Marlins | — | 168 | 150 | 21 | 3 | 0 | 1 | 11 | 76 | 6 | 3 | 1 | 140 | 228 | 180 | 408 | 40 | 270 | 45 | 7 | 182 | 9 | — | — | — | — | — | — |
| 2013 | 18 | ROK RAW | GCL Marlins | — | 168 | 144 | 29 | 4 | 0 | 1 | 17 | 53 | 6 | 3 | 1 | 201 | 311 | 250 | 561 | 49 | 308 | 32 | 10 | 269 | 9 | — | — | — | — | — | — |
| 2014 | 19 | ROK MLE | GCL Marlins | — | 54 | 52 | 8 | 1 | 0 | 1 | 2 | 29 | 0 | 0 | 1 | 154 | 185 | 231 | 416 | 77 | 318 | 54 | 4 | 169 | 1 | — | — | — | — | — | — |
| 2014 | 19 | ROK RAW | GCL Marlins | — | 54 | 50 | 12 | 1 | 0 | 1 | 4 | 20 | 0 | 0 | 1 | 240 | 296 | 320 | 616 | 80 | 379 | 37 | 7 | 282 | 1 | — | — | — | — | — | — |
| 2015 | 20 | A MLE | Greensboro Grasshoppers | — | 439 | 397 | 77 | 20 | 1 | 9 | 31 | 185 | 9 | 1 | 3 | 194 | 268 | 317 | 585 | 123 | 332 | 42 | 7 | 259 | 61 | — | — | — | — | — | — |
| 2015 | 20 | A RAW | Greensboro Grasshoppers | — | 439 | 383 | 106 | 28 | 1 | 18 | 45 | 133 | 9 | 1 | 3 | 277 | 366 | 496 | 862 | 219 | 376 | 30 | 10 | 379 | 61 | — | — | — | — | — | — |
| 2016 | 21 | A MLE | 2 teams | — | 258 | 231 | 39 | 6 | 1 | 6 | 22 | 115 | 4 | 0 | 0 | 169 | 253 | 281 | 534 | 113 | 297 | 45 | 9 | 240 | 48 | — | — | — | — | — | — |
| 2016 | 21 | A RAW | 2 teams | — | 258 | 219 | 48 | 7 | 1 | 8 | 34 | 84 | 4 | 0 | 0 | 219 | 335 | 370 | 704 | 151 | 312 | 33 | 13 | 321 | 48 | — | — | — | — | — | — |
| 2013 | 18 | ROK MLE | GCL Marlins | — | 168 | 149 | 21 | 3 | 0 | 1 | 11 | 76 | 6 | 3 | 1 | 141 | 228 | 181 | 409 | 40 | 258 | 45 | 7 | 182 | 9 | — | — | — | — | — | — |
| 2014 | 19 | ROK MLE | GCL Marlins | — | 54 | 52 | 8 | 1 | 0 | 1 | 2 | 29 | 0 | 0 | 1 | 154 | 185 | 231 | 416 | 77 | 308 | 54 | 4 | 169 | 1 | — | — | — | — | — | — |
| 2015 | 20 | A MLE | Greensboro Grasshoppers | — | 439 | 396 | 77 | 20 | 1 | 9 | 31 | 185 | 9 | 1 | 3 | 194 | 268 | 318 | 586 | 124 | 326 | 42 | 7 | 259 | 61 | — | — | — | — | — | — |
| 2016 | 21 | A MLE | 2 teams | — | 258 | 230 | 39 | 6 | 1 | 6 | 22 | 115 | 4 | 0 | 0 | 170 | 253 | 283 | 536 | 113 | 284 | 45 | 9 | 240 | 48 | — | — | — | — | — | — |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| Career | — | MLE | — | 919 | 830 | 145 | 30 | 2 | 17 | 66 | 405 | 19 | 4 | 5 | 175 | 251 | 277 | 528 | 102 | 311 | 44 | 7 | 234 | 45 | -61 | -1 | +0 | -16 | +20 | -5.9 | |
| / 162G | — | MLE | — | 650 | 587 | 102 | 21 | 1 | 12 | 47 | 286 | 13 | 3 | 4 | 174 | 250 | 274 | 525 | 101 | 308 | 44 | 7 | 234 | 45 | -43 | -1 | +0 | -12 | +14 | -4.2 | |
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.
2016 AKannapolis Intimidators · 164 PAwOBA .367 → .280 (−87)K% 30.5% → 40.0%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 30.49% | ÷1.020 | ×1.340 | — | — | 40.04% |
| BB% (unintentional) /PA | 15.85% | ÷1.148 | ×0.660 | — | ×1.015 | 9.25% |
| HBP% /PA | 1.22% | — | ×0.770 | — | ×1.015 | 0.95% |
| Singles /BIP | 25.88% | ÷1.019 | ×0.920 | ×0.988 | ×1.015 | 23.45% |
| Doubles /BIP | 7.06% | ÷0.959 | ×0.820 | ×0.988 | ×1.015 | 6.05% |
| Triples /BIP | 1.18% | ÷0.991 | ×0.940 | ×0.988 | ×1.015 | 1.12% |
| Home runs /BIP | 7.06% | ÷0.994 | ×0.820 | — | ×1.015 | 5.91% |
Factors used: league row SAL. Park (home-season share, regressed): HR 99, 1B 104, 2B 92, 3B 98, K 104, BB 130 — 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 ×0.988.
Result: wOBA .367 → .280; ISO .193 → .157; BABIP .362 → .321. 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 A+Jupiter Hammerheads · 94 PAwOBA .224 → .169 (−55)K% 36.2% → 52.1%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 36.17% | ÷0.987 | ×1.420 | — | — | 52.05% |
| BB% (unintentional) /PA | 8.51% | ÷0.933 | ×0.750 | — | ×1.027 | 7.03% |
| HBP% /PA | 2.13% | — | ×0.930 | — | ×1.027 | 2.03% |
| Singles /BIP | 20.00% | ÷1.005 | ×0.920 | ×1.017 | ×1.027 | 19.12% |
| Doubles /BIP | 2.00% | ÷1.003 | ×0.960 | ×1.017 | ×1.027 | 2.00% |
| Triples /BIP | 0.00% | ÷0.900 | ×0.810 | ×1.017 | ×1.027 | 0.00% |
| Home runs /BIP | 4.00% | ÷0.918 | ×0.880 | — | ×1.027 | 3.94% |
Factors used: league row FSL. Park (home-season share, regressed): HR 84, 1B 101, 2B 101, 3B 80, K 97, BB 87 — applied at half strength. Age: age 21 vs a level average of 22.8 → +2.7% on BB/HBP/hit rates (1.8 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.017.
Result: wOBA .224 → .169; ISO .083 → .060; BABIP .229 → .220. 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 AGreensboro Grasshoppers · 439 PAwOBA .370 → .259 (−111)K% 30.3% → 42.2%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 30.30% | ÷0.962 | ×1.340 | — | — | 42.19% |
| BB% (unintentional) /PA | 10.02% | ÷0.973 | ×0.660 | — | ×1.030 | 7.00% |
| HBP% /PA | 2.05% | — | ×0.770 | — | ×1.030 | 1.63% |
| Singles /BIP | 23.60% | ÷1.006 | ×0.920 | ×0.983 | ×1.030 | 21.87% |
| Doubles /BIP | 11.20% | ÷1.014 | ×0.820 | ×0.983 | ×1.030 | 9.18% |
| Triples /BIP | 0.40% | ÷0.900 | ×0.940 | ×0.983 | ×1.030 | 0.42% |
| Home runs /BIP | 7.20% | ÷1.391 | ×0.820 | — | ×1.030 | 4.37% |
Factors used: league row SAL. Park (home-season share, regressed): HR 178, 1B 101, 2B 103, 3B 80, K 92, BB 95 — applied at half strength. Age: age 20 vs a level average of 22.0 → +3.0% on BB/HBP/hit rates (2.0 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.983.
Result: wOBA .370 → .259; ISO .219 → .130; BABIP .376 → .326. 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).
2014 ROKGCL Marlins · 54 PAwOBA .274 → .169 (−106)K% 37.0% → 53.3%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 37.04% | ÷1.000 | ×1.440 | — | — | 53.33% |
| BB% (unintentional) /PA | 7.41% | ÷1.000 | ×0.620 | — | ×1.008 | 4.63% |
| HBP% /PA | 0.00% | — | ×0.720 | — | ×1.008 | 0.00% |
| Singles /BIP | 33.33% | ÷1.000 | ×0.820 | — | ×1.008 | 27.54% |
| Doubles /BIP | 3.33% | ÷1.000 | ×0.720 | — | ×1.008 | 2.42% |
| Triples /BIP | 0.00% | ÷1.000 | ×0.720 | — | ×1.008 | 0.00% |
| Home runs /BIP | 3.33% | ÷1.000 | ×0.780 | — | ×1.008 | 2.62% |
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 19 vs a level average of 19.5 → +0.8% on BB/HBP/hit rates (0.5 yr younger than average).
Result: wOBA .274 → .169; ISO .080 → .047; BABIP .379 → .308. 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).
2013 ROKGCL Marlins · 168 PAwOBA .264 → .182 (−83)K% 31.5% → 45.4%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 31.55% | ÷1.000 | ×1.440 | — | — | 45.43% |
| BB% (unintentional) /PA | 10.12% | ÷1.000 | ×0.620 | — | ×1.022 | 6.41% |
| HBP% /PA | 3.57% | — | ×0.720 | — | ×1.022 | 2.63% |
| Singles /BIP | 26.37% | ÷1.000 | ×0.820 | ×1.022 | ×1.022 | 22.59% |
| Doubles /BIP | 4.40% | ÷1.000 | ×0.720 | ×1.022 | ×1.022 | 3.31% |
| Triples /BIP | 0.00% | ÷1.000 | ×0.720 | ×1.022 | ×1.022 | 0.00% |
| Home runs /BIP | 1.10% | ÷1.000 | ×0.780 | — | ×1.022 | 0.88% |
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.022.
Result: wOBA .264 → .182; ISO .049 → .032; BABIP .308 → .258. 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).