Brandon Sandoval
| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR | MLE AVG/OBP/SLG |
|---|---|---|---|---|---|---|---|---|---|
| 2017 | 22 | A+/A/ROK3 orgs | 282 | .332/.392/.443 | 3 | 8 | 83 | — | .262/.306/.335 |
| 2018 | 23 | AA/A+2 orgs | 413 | .298/.362/.363 | 2 | 24 | 81 | — | .276/.321/.336 |
| 2019 | 24 | AAMobile BayBea… | 291 | .284/.331/.343 | 2 | 9 | 45 | — | .220/.258/.260 |
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) | |||||||||||||||||||||||||||||||
| 2017 | 22 | A+ | Inland Empire 66ers | — | 28 | 26 | 10 | 0 | 0 | 1 | 2 | 4 | 0 | 0 | 1 | 385 | 429 | 500 | 929 | 115 | 429 | 14 | 7 | 415 | 130 | — | — | — | — | — | — |
| 2017 | 22 | A | Burlington Bees | — | 101 | 96 | 31 | 3 | 2 | 0 | 4 | 16 | 0 | 5 | 3 | 323 | 350 | 396 | 746 | 73 | 388 | 16 | 4 | 331 | 86 | — | — | — | — | — | — |
| 2017 | 22 | ROK | Orem Owlz | — | 153 | 131 | 43 | 8 | 2 | 2 | 16 | 24 | 3 | 3 | 1 | 328 | 413 | 466 | 879 | 137 | 380 | 16 | 10 | 386 | 73 | — | — | — | — | — | — |
| 2018 | 23 | AA | Mobile BayBears | — | 273 | 247 | 67 | 9 | 0 | 2 | 25 | 65 | 0 | 15 | 5 | 271 | 338 | 332 | 670 | 61 | 359 | 24 | 9 | 307 | 66 | — | — | — | — | — | — |
| 2018 | 23 | A+ | Inland Empire 66ers | — | 140 | 125 | 44 | 5 | 2 | 0 | 11 | 20 | 1 | 9 | 5 | 352 | 409 | 424 | 833 | 72 | 411 | 14 | 8 | 368 | 109 | — | — | — | — | — | — |
| 2019 | 24 | AA | Mobile BayBears | — | 291 | 268 | 76 | 8 | 1 | 2 | 15 | 66 | 4 | 9 | 4 | 284 | 331 | 343 | 674 | 60 | 363 | 23 | 5 | 303 | 45 | — | — | — | — | — | — |
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2017 | 22 | A+ MLE | Inland Empire 66ers | — | 28 | 27 | 9 | 0 | 0 | 1 | 1 | 5 | 0 | 0 | 1 | 333 | 357 | 444 | 802 | 111 | 412 | 18 | 4 | 360 | 130 | — | — | — | — | — | — |
| 2017 | 22 | A MLE | Burlington Bees | — | 101 | 97 | 29 | 2 | 2 | 0 | 3 | 22 | 0 | 5 | 3 | 299 | 320 | 361 | 681 | 62 | 381 | 22 | 3 | 296 | 86 | — | — | — | — | — | — |
| 2017 | 22 | ROK MLE | Orem Owlz | — | 153 | 138 | 31 | 5 | 1 | 1 | 9 | 35 | 3 | 3 | 1 | 225 | 287 | 297 | 584 | 72 | 287 | 23 | 6 | 276 | 73 | — | — | — | — | — | — |
| 2018 | 23 | AA MLE | Mobile BayBears | — | 273 | 256 | 64 | 9 | 0 | 2 | 16 | 78 | 0 | 15 | 5 | 250 | 294 | 309 | 603 | 59 | 348 | 29 | 6 | 266 | 66 | — | — | — | — | — | — |
| 2018 | 23 | A+ MLE | Inland Empire 66ers | — | 140 | 128 | 42 | 4 | 2 | 0 | 8 | 26 | 1 | 9 | 5 | 328 | 372 | 391 | 763 | 62 | 390 | 19 | 6 | 330 | 109 | — | — | — | — | — | — |
| 2019 | 24 | AA MLE | Mobile BayBears | — | 291 | 273 | 60 | 6 | 1 | 1 | 10 | 84 | 4 | 9 | 4 | 220 | 258 | 260 | 518 | 40 | 301 | 29 | 3 | 234 | 45 | — | — | — | — | — | — |
| 2017 | 22 | ROK MLE | 3 teams | — | 282 | 261 | 70 | 8 | 3 | 2 | 14 | 62 | 3 | 8 | 5 | 268 | 313 | 345 | 658 | 77 | 340 | 22 | 5 | 292 | 83 | — | — | — | — | — | — |
| 2017 | 22 | ROK RAW | 3 teams | — | 282 | 253 | 84 | 11 | 4 | 3 | 22 | 44 | 3 | 8 | 5 | 332 | 392 | 443 | 835 | 111 | 388 | 16 | 8 | 369 | 83 | — | — | — | — | — | — |
| 2018 | 23 | AA MLE | 2 teams | — | 413 | 384 | 107 | 13 | 2 | 2 | 24 | 104 | 1 | 24 | 10 | 279 | 323 | 339 | 661 | 60 | 374 | 25 | 6 | 288 | 81 | — | — | — | — | — | — |
| 2018 | 23 | AA RAW | 2 teams | — | 413 | 372 | 111 | 14 | 2 | 2 | 36 | 85 | 1 | 24 | 10 | 298 | 362 | 363 | 725 | 65 | 378 | 21 | 9 | 328 | 81 | — | — | — | — | — | — |
| 2019 | 24 | AA MLE | Mobile BayBears | — | 291 | 273 | 60 | 6 | 1 | 1 | 10 | 84 | 4 | 9 | 4 | 220 | 258 | 260 | 518 | 40 | 307 | 29 | 3 | 234 | 45 | — | — | — | — | — | — |
| 2019 | 24 | AA RAW | Mobile BayBears | — | 291 | 268 | 76 | 8 | 1 | 2 | 15 | 66 | 4 | 9 | 4 | 284 | 331 | 343 | 674 | 60 | 363 | 23 | 5 | 303 | 45 | — | — | — | — | — | — |
| 2017 | 22 | ROK MLE | 3 teams | — | 282 | 263 | 70 | 8 | 3 | 2 | 14 | 62 | 3 | 8 | 5 | 266 | 313 | 342 | 655 | 76 | 333 | 22 | 5 | 292 | 83 | — | — | — | — | — | — |
| 2018 | 23 | AA MLE | 2 teams | — | 413 | 385 | 107 | 13 | 2 | 2 | 24 | 104 | 1 | 24 | 10 | 278 | 323 | 338 | 660 | 60 | 362 | 25 | 6 | 288 | 81 | — | — | — | — | — | — |
| 2019 | 24 | AA MLE | Mobile BayBears | — | 291 | 275 | 60 | 6 | 1 | 1 | 10 | 84 | 4 | 9 | 4 | 218 | 258 | 258 | 516 | 40 | 301 | 29 | 3 | 234 | 45 | — | — | — | — | — | — |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| Career | — | MLE | — | 986 | 918 | 237 | 27 | 6 | 5 | 48 | 250 | 8 | 41 | 19 | 258 | 301 | 317 | 618 | 59 | 345 | 25 | 5 | 273 | 71 | -34 | +1 | +0 | +4 | +21 | -0.9 | |
| / 162G | — | MLE | — | 650 | 605 | 156 | 18 | 4 | 3 | 32 | 165 | 5 | 27 | 13 | 258 | 301 | 316 | 616 | 58 | 345 | 25 | 5 | 273 | 71 | -23 | +0 | +0 | +2 | +14 | -0.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 AAMobile BayBears · 291 PAwOBA .300 → .234 (−66)K% 22.7% → 28.9%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 22.68% | ÷0.956 | ×1.220 | — | — | 28.95% |
| BB% (unintentional) /PA | 5.15% | ÷1.020 | ×0.680 | — | ×1.012 | 3.48% |
| HBP% /PA | 1.37% | — | ×0.840 | — | ×1.012 | 1.17% |
| Singles /BIP | 32.18% | ÷1.066 | ×0.920 | ×0.950 | ×1.012 | 26.71% |
| Doubles /BIP | 3.96% | ÷1.054 | ×0.910 | ×0.950 | ×1.012 | 3.29% |
| Triples /BIP | 0.50% | ÷0.902 | ×0.880 | ×0.950 | ×1.012 | 0.46% |
| Home runs /BIP | 0.99% | ÷1.050 | ×0.800 | — | ×1.012 | 0.76% |
Factors used: league row SL. Park (home-season share, regressed): HR 110, 1B 113, 2B 111, 3B 80, K 91, BB 104 — applied at half strength. Age: age 24 vs a level average of 24.8 → +1.2% on BB/HBP/hit rates (0.8 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.950.
Result: wOBA .300 → .234; ISO .060 → .047; BABIP .363 → .301. 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 AAMobile BayBears · 273 PAwOBA .299 → .266 (−33)K% 23.8% → 28.7%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 23.81% | ÷1.012 | ×1.220 | — | — | 28.71% |
| BB% (unintentional) /PA | 8.79% | ÷1.040 | ×0.680 | — | ×1.027 | 5.90% |
| HBP% /PA | 0.00% | — | ×0.840 | — | ×1.027 | 0.00% |
| Singles /BIP | 30.77% | ÷1.021 | ×0.920 | ×1.050 | ×1.027 | 29.89% |
| Doubles /BIP | 4.95% | ÷1.014 | ×0.910 | ×1.050 | ×1.027 | 4.79% |
| Triples /BIP | 0.00% | ÷0.944 | ×0.880 | ×1.050 | ×1.027 | 0.00% |
| Home runs /BIP | 1.10% | ÷0.959 | ×0.800 | — | ×1.027 | 0.94% |
Factors used: league row SL. Park (home-season share, regressed): HR 92, 1B 104, 2B 103, 3B 89, K 102, BB 108 — 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 ×1.050.
Result: wOBA .299 → .266; ISO .061 → .055; BABIP .359 → .348. 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+Inland Empire 66ers · 140 PAwOBA .364 → .330 (−34)K% 14.3% → 18.3%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 14.29% | ÷1.044 | ×1.340 | — | — | 18.34% |
| BB% (unintentional) /PA | 7.86% | ÷0.986 | ×0.710 | — | ×0.998 | 5.65% |
| HBP% /PA | 0.71% | — | ×0.790 | — | ×0.998 | 0.56% |
| Singles /BIP | 35.24% | ÷0.977 | ×0.910 | ×1.050 | ×0.998 | 34.41% |
| Doubles /BIP | 4.76% | ÷1.087 | ×0.820 | ×1.050 | ×0.998 | 3.76% |
| Triples /BIP | 1.90% | ÷0.978 | ×0.760 | ×1.050 | ×0.998 | 1.55% |
| Home runs /BIP | 0.00% | ÷0.978 | ×0.920 | — | ×0.998 | 0.00% |
Factors used: league row CAL. Park (home-season share, regressed): HR 96, 1B 95, 2B 117, 3B 96, K 109, BB 97 — applied at half strength. Age: age 23 vs a level average of 22.8 → −0.2% on BB/HBP/hit rates (0.2 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.050.
Result: wOBA .364 → .330; ISO .072 → .058; BABIP .411 → .390. 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 ROKOrem Owlz · 153 PAwOBA .384 → .276 (−108)K% 15.7% → 22.6%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 15.69% | ÷1.000 | ×1.440 | — | — | 22.59% |
| BB% (unintentional) /PA | 10.46% | ÷1.000 | ×0.610 | — | ×0.975 | 6.22% |
| HBP% /PA | 1.96% | — | ×0.720 | — | ×0.975 | 1.38% |
| Singles /BIP | 28.97% | ÷1.000 | ×0.820 | ×0.980 | ×0.975 | 22.71% |
| Doubles /BIP | 7.48% | ÷1.000 | ×0.720 | ×0.980 | ×0.975 | 5.15% |
| Triples /BIP | 1.87% | ÷1.000 | ×0.720 | ×0.980 | ×0.975 | 1.29% |
| Home runs /BIP | 1.87% | ÷1.000 | ×0.750 | — | ×0.975 | 1.37% |
Factors used: league row PIO. Park (home-season share, regressed): no park row on file (treated as neutral) — applied at half strength. Age: age 22 vs a level average of 19.5 → −2.5% on BB/HBP/hit rates (2.5 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.980.
Result: wOBA .384 → .276; ISO .137 → .096; BABIP .380 → .287. 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 ABurlington Bees · 101 PAwOBA .322 → .296 (−26)K% 15.8% → 21.6%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 15.84% | ÷0.998 | ×1.360 | — | — | 21.60% |
| BB% (unintentional) /PA | 3.96% | ÷0.884 | ×0.690 | — | — | 3.09% |
| HBP% /PA | 0.00% | — | ×0.780 | — | — | 0.00% |
| Singles /BIP | 32.50% | ÷0.960 | ×0.920 | ×1.050 | — | 32.69% |
| Doubles /BIP | 3.75% | ÷1.166 | ×0.830 | ×1.050 | — | 2.80% |
| Triples /BIP | 2.50% | ÷0.900 | ×0.910 | ×1.050 | — | 2.65% |
| Home runs /BIP | 0.00% | ÷1.105 | ×0.800 | — | — | 0.00% |
Factors used: level-wide A factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 121, 1B 92, 2B 133, 3B 80, K 100, BB 77 — 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 .322 → .296; ISO .073 → .064; BABIP .388 → .381. 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 A+Inland Empire 66ers · 28 PAwOBA .404 → .360 (−44)K% 14.3% → 19.6%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 14.29% | ÷0.975 | ×1.340 | — | — | 19.64% |
| BB% (unintentional) /PA | 7.14% | ÷1.003 | ×0.710 | — | ×1.012 | 5.12% |
| HBP% /PA | 0.00% | — | ×0.790 | — | ×1.012 | 0.00% |
| Singles /BIP | 40.91% | ÷0.955 | ×0.910 | — | ×1.012 | 39.44% |
| Doubles /BIP | 0.00% | ÷0.891 | ×0.820 | — | ×1.012 | 0.00% |
| Triples /BIP | 0.00% | ÷1.150 | ×0.760 | — | ×1.012 | 0.00% |
| Home runs /BIP | 4.55% | ÷1.008 | ×0.920 | — | ×1.012 | 4.20% |
Factors used: league row CAL. Park (home-season share, regressed): HR 102, 1B 91, 2B 78, 3B 130, K 95, BB 101 — 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 .404 → .360; ISO .115 → .102; BABIP .429 → .412. 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).