Daniel Salters
| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR | MLE AVG/OBP/SLG |
|---|---|---|---|---|---|---|---|---|---|
| 2017 | 24 | A+Lynchburg Hil… | 349 | .197/.263/.293 | 5 | 0 | 24 | — | .173/.219/.257 |
| 2018 | 25 | AACLE | 274 | .240/.312/.341 | 5 | 1 | 65 | — | .220/.283/.304 |
| 2019 | 26 | AACLE | 22 | .100/.182/.250 | 1 | 0 | -6 | — | .095/.136/.238 |
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. Catcher framing: only 2027 Statcast framing is modeled (Baseball Savant server-caches the leaderboard to the current season); prior-year framing is unmodeled — projections for established framers may run 1-3 WAR low.
| 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 | 23 | AA | Akron RubberDucks | — | 150 | 136 | 32 | 9 | 0 | 1 | 10 | 39 | 2 | 0 | 0 | 235 | 297 | 324 | 621 | 88 | 323 | 26 | 7 | 280 | 49 | — | — | — | — | — | — |
| 2016 | 23 | A+ | Lynchburg Hillcats | — | 192 | 167 | 47 | 7 | 0 | 4 | 20 | 35 | 2 | 1 | 0 | 281 | 365 | 395 | 760 | 114 | 333 | 18 | 10 | 340 | 76 | — | — | — | — | — | — |
| 2017 | 24 | A+ | Lynchburg Hillcats | — | 349 | 314 | 62 | 13 | 1 | 5 | 24 | 86 | 4 | 0 | 0 | 197 | 263 | 293 | 556 | 96 | 251 | 25 | 7 | 250 | 24 | — | — | — | — | — | — |
| 2018 | 25 | AA | Akron RubberDucks | — | 274 | 246 | 59 | 10 | 0 | 5 | 17 | 68 | 9 | 1 | 1 | 240 | 312 | 341 | 654 | 102 | 309 | 25 | 6 | 298 | 65 | — | — | — | — | — | — |
| 2019 | 26 | AA | Akron RubberDucks | — | 22 | 20 | 2 | 0 | 0 | 1 | 2 | 4 | 0 | 0 | 0 | 100 | 182 | 250 | 432 | 150 | 67 | 18 | 9 | 199 | -6 | — | — | — | — | — | — |
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2016 | 23 | AA MLE | Akron RubberDucks | — | 150 | 138 | 30 | 8 | 0 | 1 | 8 | 48 | 2 | 0 | 0 | 217 | 270 | 297 | 567 | 80 | 312 | 32 | 5 | 241 | 49 | — | — | — | — | — | — |
| 2016 | 23 | A+ MLE | Lynchburg Hillcats | — | 192 | 175 | 44 | 6 | 0 | 4 | 12 | 52 | 2 | 1 | 0 | 251 | 307 | 354 | 661 | 103 | 317 | 27 | 6 | 281 | 76 | — | — | — | — | — | — |
| 2017 | 24 | A+ MLE | Lynchburg Hillcats | — | 349 | 323 | 56 | 10 | 1 | 5 | 15 | 117 | 4 | 0 | 0 | 173 | 219 | 257 | 476 | 84 | 235 | 34 | 4 | 203 | 24 | — | — | — | — | — | — |
| 2018 | 25 | AA MLE | Akron RubberDucks | — | 274 | 250 | 55 | 9 | 0 | 4 | 13 | 83 | 9 | 1 | 1 | 220 | 283 | 304 | 587 | 84 | 305 | 30 | 5 | 264 | 65 | — | — | — | — | — | — |
| 2019 | 26 | AA MLE | Akron RubberDucks | — | 22 | 21 | 2 | 0 | 0 | 1 | 1 | 5 | 0 | 0 | 0 | 95 | 136 | 238 | 374 | 143 | 63 | 23 | 5 | 160 | -6 | — | — | — | — | — | — |
| 2016 | 23 | A+ MLE | 2 teams | — | 342 | 313 | 72 | 13 | 0 | 4 | 20 | 100 | 4 | 1 | 0 | 230 | 285 | 310 | 595 | 80 | 324 | 29 | 6 | 263 | 64 | — | — | — | — | — | — |
| 2016 | 23 | A+ RAW | 2 teams | — | 342 | 303 | 79 | 16 | 0 | 5 | 30 | 74 | 4 | 1 | 0 | 261 | 335 | 363 | 698 | 102 | 329 | 22 | 9 | 314 | 64 | — | — | — | — | — | — |
| 2017 | 24 | A+ MLE | Lynchburg Hillcats | — | 349 | 323 | 56 | 10 | 1 | 5 | 15 | 117 | 4 | 0 | 0 | 173 | 219 | 257 | 476 | 84 | 249 | 34 | 4 | 203 | 24 | — | — | — | — | — | — |
| 2017 | 24 | A+ RAW | Lynchburg Hillcats | — | 349 | 314 | 62 | 13 | 1 | 5 | 24 | 86 | 4 | 0 | 0 | 197 | 263 | 293 | 556 | 96 | 251 | 25 | 7 | 250 | 24 | — | — | — | — | — | — |
| 2018 | 25 | AA MLE | Akron RubberDucks | — | 274 | 250 | 55 | 9 | 0 | 4 | 13 | 83 | 9 | 1 | 1 | 220 | 283 | 304 | 587 | 84 | 309 | 30 | 5 | 264 | 65 | — | — | — | — | — | — |
| 2018 | 25 | AA RAW | Akron RubberDucks | — | 274 | 246 | 59 | 10 | 0 | 5 | 17 | 68 | 9 | 1 | 1 | 240 | 312 | 341 | 654 | 102 | 309 | 25 | 6 | 298 | 65 | — | — | — | — | — | — |
| 2019 | 26 | AA MLE | Akron RubberDucks | — | 22 | 21 | 2 | 0 | 0 | 1 | 1 | 5 | 0 | 0 | 0 | 95 | 136 | 238 | 374 | 143 | 67 | 23 | 5 | 160 | -6 | — | — | — | — | — | — |
| 2019 | 26 | AA RAW | Akron RubberDucks | — | 22 | 20 | 2 | 0 | 0 | 1 | 2 | 4 | 0 | 0 | 0 | 100 | 182 | 250 | 432 | 150 | 67 | 18 | 9 | 199 | -6 | — | — | — | — | — | — |
| 2016 | 23 | A+ MLE | 2 teams | — | 342 | 315 | 72 | 13 | 0 | 4 | 20 | 100 | 4 | 1 | 0 | 229 | 285 | 308 | 593 | 79 | 315 | 29 | 6 | 263 | 64 | — | — | — | — | — | — |
| 2017 | 24 | A+ MLE | Lynchburg Hillcats | — | 349 | 327 | 56 | 10 | 1 | 5 | 15 | 117 | 4 | 0 | 0 | 171 | 219 | 254 | 473 | 83 | 235 | 34 | 4 | 203 | 24 | — | — | — | — | — | — |
| 2018 | 25 | AA MLE | Akron RubberDucks | — | 274 | 250 | 55 | 9 | 0 | 4 | 13 | 83 | 9 | 1 | 1 | 220 | 283 | 304 | 587 | 84 | 305 | 30 | 5 | 264 | 65 | — | — | — | — | — | — |
| 2019 | 26 | AA MLE | Akron RubberDucks | — | 22 | 21 | 2 | 0 | 0 | 1 | 1 | 5 | 0 | 0 | 0 | 95 | 136 | 238 | 374 | 143 | 63 | 23 | 5 | 160 | -6 | — | — | — | — | — | — |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| Career | — | MLE | — | 987 | 907 | 185 | 32 | 1 | 14 | 49 | 305 | 17 | 2 | 1 | 204 | 258 | 288 | 546 | 84 | 287 | 31 | 5 | 240 | 49 | -60 | +0 | +0 | +18 | +21 | -2.2 | |
| / 162G | — | MLE | — | 650 | 597 | 122 | 21 | 1 | 9 | 32 | 201 | 11 | 1 | 1 | 204 | 258 | 288 | 546 | 84 | 288 | 31 | 5 | 240 | 49 | -40 | -0 | +0 | +12 | +14 | -1.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 AAAkron RubberDucks · 22 PAwOBA .194 → .160 (−34)K% 18.2% → 22.1%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 18.18% | ÷1.003 | ×1.220 | — | — | 22.12% |
| BB% (unintentional) /PA | 9.09% | ÷1.019 | ×0.700 | — | ×0.988 | 6.17% |
| HBP% /PA | 0.00% | — | ×0.850 | — | ×0.988 | 0.00% |
| Singles /BIP | 6.25% | ÷1.008 | ×0.970 | — | ×0.988 | 5.94% |
| Doubles /BIP | 0.00% | ÷0.925 | ×0.860 | — | ×0.988 | 0.00% |
| Triples /BIP | 0.00% | ÷0.900 | ×0.950 | — | ×0.988 | 0.00% |
| Home runs /BIP | 6.25% | ÷0.863 | ×0.780 | — | ×0.988 | 5.58% |
Factors used: league row EL. Park (home-season share, regressed): HR 73, 1B 102, 2B 85, 3B 80, K 101, BB 104 — applied at half strength. Age: age 26 vs a level average of 24.8 → −1.2% on BB/HBP/hit rates (1.2 yr older than average).
Result: wOBA .194 → .160; ISO .150 → .132; BABIP .067 → .063. 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 AAAkron RubberDucks · 274 PAwOBA .292 → .264 (−28)K% 24.8% → 30.2%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 24.82% | ÷1.004 | ×1.220 | — | — | 30.16% |
| BB% (unintentional) /PA | 6.20% | ÷0.941 | ×0.700 | — | ×0.998 | 4.61% |
| HBP% /PA | 3.28% | — | ×0.850 | — | ×0.998 | 2.79% |
| Singles /BIP | 24.72% | ÷0.968 | ×0.970 | ×1.004 | ×0.998 | 24.80% |
| Doubles /BIP | 5.62% | ÷0.922 | ×0.860 | ×1.004 | ×0.998 | 5.25% |
| Triples /BIP | 0.00% | ÷0.980 | ×0.950 | ×1.004 | ×0.998 | 0.00% |
| Home runs /BIP | 2.81% | ÷0.840 | ×0.780 | — | ×0.998 | 2.60% |
Factors used: league row EL. Park (home-season share, regressed): HR 68, 1B 94, 2B 84, 3B 96, K 101, BB 88 — applied at half strength. Age: age 25 vs a level average of 24.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.004.
Result: wOBA .292 → .264; ISO .102 → .091; BABIP .309 → .305. 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+Lynchburg Hillcats · 349 PAwOBA .247 → .203 (−43)K% 24.6% → 33.4%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 24.64% | ÷1.048 | ×1.420 | — | — | 33.40% |
| BB% (unintentional) /PA | 6.88% | ÷1.008 | ×0.630 | — | ×0.988 | 4.24% |
| HBP% /PA | 1.15% | — | ×0.860 | — | ×0.988 | 0.97% |
| Singles /BIP | 18.86% | ÷0.978 | ×0.940 | ×1.038 | ×0.988 | 18.59% |
| Doubles /BIP | 5.70% | ÷1.084 | ×0.830 | ×1.038 | ×0.988 | 4.48% |
| Triples /BIP | 0.44% | ÷1.070 | ×0.800 | ×1.038 | ×0.988 | 0.34% |
| Home runs /BIP | 2.19% | ÷0.902 | ×0.900 | — | ×0.988 | 2.16% |
Factors used: league row CAR. Park (home-season share, regressed): HR 80, 1B 96, 2B 117, 3B 114, K 110, BB 102 — applied at half strength. Age: age 24 vs a level average of 22.8 → −1.2% on BB/HBP/hit rates (1.2 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.038.
Result: wOBA .247 → .203; ISO .096 → .079; BABIP .251 → .235. 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+Lynchburg Hillcats · 192 PAwOBA .333 → .281 (−53)K% 18.2% → 27.1%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 18.23% | ÷0.956 | ×1.420 | — | — | 27.07% |
| BB% (unintentional) /PA | 10.42% | ÷1.015 | ×0.630 | — | ×0.998 | 6.45% |
| HBP% /PA | 1.04% | — | ×0.860 | — | ×0.998 | 0.89% |
| Singles /BIP | 27.27% | ÷0.969 | ×0.940 | ×1.009 | ×0.998 | 26.64% |
| Doubles /BIP | 5.30% | ÷1.000 | ×0.830 | ×1.009 | ×0.998 | 4.43% |
| Triples /BIP | 0.00% | ÷1.037 | ×0.800 | ×1.009 | ×0.998 | 0.00% |
| Home runs /BIP | 3.03% | ÷0.932 | ×0.900 | — | ×0.998 | 2.92% |
Factors used: league row CAR. Park (home-season share, regressed): HR 86, 1B 94, 2B 100, 3B 107, K 91, BB 103 — 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.009.
Result: wOBA .333 → .281; ISO .114 → .099; BABIP .333 → .317. 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 AAAkron RubberDucks · 150 PAwOBA .273 → .241 (−32)K% 26.0% → 31.8%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 26.00% | ÷0.997 | ×1.220 | — | — | 31.81% |
| BB% (unintentional) /PA | 6.67% | ÷0.950 | ×0.700 | — | ×1.027 | 5.05% |
| HBP% /PA | 1.33% | — | ×0.850 | — | ×1.027 | 1.16% |
| Singles /BIP | 22.68% | ÷1.014 | ×0.970 | ×1.018 | ×1.027 | 22.69% |
| Doubles /BIP | 9.28% | ÷1.015 | ×0.860 | ×1.018 | ×1.027 | 8.22% |
| Triples /BIP | 0.00% | ÷1.150 | ×0.950 | ×1.018 | ×1.027 | 0.00% |
| Home runs /BIP | 1.03% | ÷0.949 | ×0.780 | — | ×1.027 | 0.87% |
Factors used: league row EL. Park (home-season share, regressed): HR 90, 1B 103, 2B 103, 3B 130, K 99, BB 90 — 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.018.
Result: wOBA .273 → .241; ISO .088 → .074; BABIP .323 → .312. 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).