Kendy Moya
| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR | MLE AVG/OBP/SLG |
|---|---|---|---|---|---|---|---|---|---|
| 2017 | 18 | ROKDSL Astros Bl… | 257 | .241/.402/.327 | 1 | 12 | 38 | — | .144/.276/.186 |
| 2018 | 19 | ROKLAA | 216 | .242/.427/.354 | 0 | 9 | 55 | — | .154/.305/.217 |
| 2019 | 20 | ROKAZL Angels | 66 | .255/.379/.273 | 0 | 2 | 38 | — | .203/.288/.220 |
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 | 17 | ROK | DSL Astros Orange | — | 227 | 179 | 40 | 8 | 3 | 0 | 42 | 43 | 5 | 9 | 8 | 223 | 385 | 302 | 687 | 78 | 294 | 19 | 19 | 327 | 38 | — | — | — | — | — | — |
| 2017 | 18 | ROK | DSL Astros Blue | — | 257 | 199 | 48 | 8 | 3 | 1 | 49 | 59 | 5 | 12 | 5 | 241 | 402 | 327 | 728 | 85 | 333 | 23 | 19 | 341 | 38 | — | — | — | — | — | — |
| 2018 | 19 | ROK | DSL Angels | — | 216 | 161 | 39 | 8 | 5 | 0 | 46 | 39 | 6 | 9 | 6 | 242 | 427 | 354 | 781 | 112 | 315 | 18 | 21 | 363 | 55 | — | — | — | — | — | — |
| 2019 | 20 | ROK | AZL Angels | — | 66 | 55 | 14 | 1 | 0 | 0 | 11 | 9 | 0 | 2 | 1 | 255 | 379 | 273 | 652 | 18 | 304 | 14 | 17 | 314 | 38 | — | — | — | — | — | — |
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2016 | 17 | ROK MLE | DSL Astros Orange | — | 227 | 191 | 28 | 5 | 2 | 0 | 30 | 52 | 5 | 9 | 8 | 147 | 279 | 194 | 472 | 47 | 201 | 23 | 13 | 225 | 38 | — | — | — | — | — | — |
| 2017 | 18 | ROK MLE | DSL Astros Blue | — | 257 | 215 | 31 | 5 | 2 | 0 | 34 | 72 | 5 | 12 | 5 | 144 | 276 | 186 | 462 | 42 | 208 | 28 | 13 | 225 | 38 | — | — | — | — | — | — |
| 2018 | 19 | ROK MLE | DSL Angels | — | 216 | 175 | 27 | 5 | 3 | 0 | 32 | 48 | 6 | 9 | 6 | 154 | 305 | 217 | 522 | 63 | 205 | 22 | 15 | 249 | 55 | — | — | — | — | — | — |
| 2019 | 20 | ROK MLE | AZL Angels | — | 66 | 59 | 12 | 1 | 0 | 0 | 7 | 13 | 0 | 2 | 1 | 203 | 288 | 220 | 508 | 17 | 244 | 20 | 11 | 225 | 38 | — | — | — | — | — | — |
| 2016 | 17 | ROK MLE | DSL Astros Orange | — | 227 | 191 | 28 | 5 | 2 | 0 | 30 | 52 | 5 | 9 | 8 | 147 | 279 | 194 | 472 | 47 | 201 | 23 | 13 | 225 | 38 | — | — | — | — | — | — |
| 2016 | 17 | ROK RAW | DSL Astros Orange | — | 227 | 179 | 40 | 8 | 3 | 0 | 42 | 43 | 5 | 9 | 8 | 223 | 385 | 302 | 687 | 78 | 294 | 19 | 19 | 327 | 38 | — | — | — | — | — | — |
| 2017 | 18 | ROK MLE | DSL Astros Blue | — | 257 | 215 | 31 | 5 | 2 | 0 | 34 | 72 | 5 | 12 | 5 | 144 | 276 | 186 | 462 | 42 | 214 | 28 | 13 | 225 | 38 | — | — | — | — | — | — |
| 2017 | 18 | ROK RAW | DSL Astros Blue | — | 257 | 199 | 48 | 8 | 3 | 1 | 49 | 59 | 5 | 12 | 5 | 241 | 402 | 327 | 728 | 85 | 333 | 23 | 19 | 341 | 38 | — | — | — | — | — | — |
| 2018 | 19 | ROK MLE | DSL Angels | — | 216 | 175 | 27 | 5 | 3 | 0 | 32 | 48 | 6 | 9 | 6 | 154 | 305 | 217 | 522 | 63 | 209 | 22 | 15 | 249 | 55 | — | — | — | — | — | — |
| 2018 | 19 | ROK RAW | DSL Angels | — | 216 | 161 | 39 | 8 | 5 | 0 | 46 | 39 | 6 | 9 | 6 | 242 | 427 | 354 | 781 | 112 | 315 | 18 | 21 | 363 | 55 | — | — | — | — | — | — |
| 2019 | 20 | ROK MLE | AZL Angels | — | 66 | 59 | 12 | 1 | 0 | 0 | 7 | 13 | 0 | 2 | 1 | 203 | 288 | 220 | 508 | 17 | 261 | 20 | 11 | 225 | 38 | — | — | — | — | — | — |
| 2019 | 20 | ROK RAW | AZL Angels | — | 66 | 55 | 14 | 1 | 0 | 0 | 11 | 9 | 0 | 2 | 1 | 255 | 379 | 273 | 652 | 18 | 304 | 14 | 17 | 314 | 38 | — | — | — | — | — | — |
| 2016 | 17 | ROK MLE | DSL Astros Orange | — | 227 | 190 | 28 | 5 | 2 | 0 | 30 | 52 | 5 | 9 | 8 | 147 | 279 | 195 | 473 | 47 | 201 | 23 | 13 | 225 | 38 | — | — | — | — | — | — |
| 2017 | 18 | ROK MLE | DSL Astros Blue | — | 257 | 216 | 31 | 5 | 2 | 0 | 34 | 72 | 5 | 12 | 5 | 144 | 276 | 185 | 461 | 42 | 208 | 28 | 13 | 225 | 38 | — | — | — | — | — | — |
| 2018 | 19 | ROK MLE | DSL Angels | — | 216 | 176 | 27 | 5 | 3 | 0 | 32 | 48 | 6 | 9 | 6 | 153 | 305 | 216 | 521 | 62 | 205 | 22 | 15 | 249 | 55 | — | — | — | — | — | — |
| 2019 | 20 | ROK MLE | AZL Angels | — | 66 | 59 | 12 | 1 | 0 | 0 | 7 | 13 | 0 | 2 | 1 | 203 | 288 | 220 | 508 | 17 | 244 | 20 | 11 | 225 | 38 | — | — | — | — | — | — |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| Career | — | MLE | — | 766 | 640 | 98 | 16 | 7 | 0 | 103 | 185 | 16 | 32 | 20 | 153 | 286 | 200 | 486 | 47 | 214 | 24 | 13 | 232 | 43 | -52 | -2 | +0 | +3 | +17 | -3.5 | |
| / 162G | — | MLE | — | 650 | 543 | 84 | 14 | 6 | 0 | 87 | 157 | 14 | 27 | 17 | 155 | 287 | 203 | 490 | 48 | 216 | 24 | 13 | 232 | 43 | -44 | -1 | +0 | +2 | +14 | -3.0 | |
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 ROKAZL Angels · 66 PAwOBA .307 → .225 (−83)K% 13.6% → 19.6%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 13.64% | ÷1.000 | ×1.440 | — | — | 19.64% |
| BB% (unintentional) /PA | 16.67% | ÷1.000 | ×0.620 | — | ×0.985 | 10.18% |
| HBP% /PA | 0.00% | — | ×0.720 | — | ×0.985 | 0.00% |
| Singles /BIP | 28.26% | ÷1.000 | ×0.820 | — | ×0.985 | 22.83% |
| Doubles /BIP | 2.17% | ÷1.000 | ×0.720 | — | ×0.985 | 1.54% |
| Triples /BIP | 0.00% | ÷1.000 | ×0.720 | — | ×0.985 | 0.00% |
| Home runs /BIP | 0.00% | ÷1.000 | ×0.780 | — | ×0.985 | 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 21 vs a level average of 19.5 → −1.5% on BB/HBP/hit rates (1.5 yr older than average).
Result: wOBA .307 → .225; ISO .018 → .013; BABIP .304 → .244. 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 DSLDSL Angels · 216 PAwOBA .359 → .249 (−110)K% 18.1% → 22.0%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 18.06% | ÷1.000 | ×1.220 | — | — | 22.03% |
| BB% (unintentional) /PA | 21.30% | ÷1.000 | ×0.700 | — | ×0.985 | 14.68% |
| HBP% /PA | 2.78% | — | ×0.700 | — | ×0.985 | 1.92% |
| Singles /BIP | 21.31% | ÷1.000 | ×0.680 | ×1.011 | ×0.985 | 14.43% |
| Doubles /BIP | 6.56% | ÷1.000 | ×0.600 | ×1.011 | ×0.985 | 3.92% |
| Triples /BIP | 4.10% | ÷1.000 | ×0.600 | ×1.011 | ×0.985 | 2.45% |
| Home runs /BIP | 0.00% | ÷1.000 | ×0.470 | — | ×0.985 | 0.00% |
Factors used: level-wide DSL 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 18.5 → −1.5% on BB/HBP/hit rates (1.5 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.011.
Result: wOBA .359 → .249; ISO .112 → .073; BABIP .315 → .205. 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 DSLDSL Astros Blue · 257 PAwOBA .336 → .225 (−112)K% 23.0% → 28.0%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 22.96% | ÷1.000 | ×1.220 | — | — | 28.01% |
| BB% (unintentional) /PA | 19.07% | ÷1.000 | ×0.700 | — | ×0.995 | 13.28% |
| HBP% /PA | 1.95% | — | ×0.700 | — | ×0.995 | 1.36% |
| Singles /BIP | 25.71% | ÷1.000 | ×0.680 | ×0.950 | ×0.995 | 16.53% |
| Doubles /BIP | 5.71% | ÷1.000 | ×0.600 | ×0.950 | ×0.995 | 3.24% |
| Triples /BIP | 2.14% | ÷1.000 | ×0.600 | ×0.950 | ×0.995 | 1.22% |
| Home runs /BIP | 0.71% | ÷1.000 | ×0.470 | — | ×0.995 | 0.33% |
Factors used: level-wide DSL 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 18.5 → −0.5% on BB/HBP/hit rates (0.5 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.950.
Result: wOBA .336 → .225; ISO .085 → .049; BABIP .333 → .208. 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 DSLDSL Astros Orange · 227 PAwOBA .321 → .225 (−95)K% 18.9% → 23.1%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 18.94% | ÷1.000 | ×1.220 | — | — | 23.11% |
| BB% (unintentional) /PA | 18.50% | ÷1.000 | ×0.700 | — | ×1.008 | 13.05% |
| HBP% /PA | 2.20% | — | ×0.700 | — | ×1.008 | 1.55% |
| Singles /BIP | 21.32% | ÷1.000 | ×0.680 | ×1.029 | ×1.008 | 15.03% |
| Doubles /BIP | 5.88% | ÷1.000 | ×0.600 | ×1.029 | ×1.008 | 3.66% |
| Triples /BIP | 2.21% | ÷1.000 | ×0.600 | ×1.029 | ×1.008 | 1.37% |
| Home runs /BIP | 0.00% | ÷1.000 | ×0.470 | — | ×1.008 | 0.00% |
Factors used: level-wide DSL 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 18.5 → +0.8% on BB/HBP/hit rates (0.5 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.029.
Result: wOBA .321 → .225; ISO .078 → .051; BABIP .294 → .201. 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).