Cord Sandberg
| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR | MLE AVG/OBP/SLG |
|---|---|---|---|---|---|---|---|---|---|
| 2016 | 21 | A+PHI | 347 | .230/.309/.315 | 4 | 6 | 47 | — | .193/.262/.264 |
| 2017 | 22 | AA/A+/A2 orgs | 395 | .267/.313/.430 | 9 | 4 | 66 | — | .231/.266/.372 |
| 2018 | 23 | AAPHI | 166 | .231/.273/.314 | 3 | 2 | 42 | — | .215/.248/.272 |
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 Phillies | — | 196 | 169 | 35 | 3 | 1 | 2 | 24 | 36 | 2 | 4 | 3 | 207 | 313 | 272 | 585 | 65 | 252 | 18 | 12 | 276 | 24 | — | — | — | — | — | — |
| 2015 | 20 | A | Lakewood BlueClaws | — | 550 | 499 | 127 | 28 | 1 | 5 | 29 | 88 | 9 | 5 | 7 | 255 | 307 | 345 | 652 | 90 | 295 | 16 | 5 | 289 | 55 | — | — | — | — | — | — |
| 2015 | 20 | INTL | Canberra Cavalry | — | 178 | 160 | 42 | 7 | 1 | 1 | 16 | 42 | 1 | 3 | 0 | 263 | 333 | 338 | 671 | 75 | 347 | 24 | 9 | 306 | 93 | — | — | — | — | — | — |
| 2016 | 21 | A+ | Clearwater Threshers | — | 347 | 305 | 70 | 12 | 1 | 4 | 25 | 85 | 10 | 6 | 7 | 230 | 309 | 315 | 624 | 85 | 301 | 24 | 7 | 283 | 47 | — | — | — | — | — | — |
| 2017 | 22 | AA | Reading Fightin Phils | — | 104 | 99 | 26 | 6 | 0 | 4 | 3 | 30 | 0 | 1 | 0 | 263 | 284 | 444 | 729 | 182 | 333 | 29 | 3 | 313 | 59 | — | — | — | — | — | — |
| 2017 | 22 | A+ | Clearwater Threshers | — | 73 | 65 | 18 | 7 | 0 | 2 | 6 | 16 | 1 | 0 | 0 | 277 | 347 | 477 | 824 | 200 | 340 | 22 | 8 | 359 | 101 | — | — | — | — | — | — |
| 2017 | 22 | A | Lakewood BlueClaws | — | 218 | 199 | 53 | 15 | 2 | 3 | 11 | 58 | 3 | 3 | 1 | 266 | 315 | 407 | 722 | 141 | 352 | 27 | 5 | 314 | 58 | — | — | — | — | — | — |
| 2018 | 23 | AA | Reading Fightin Phils | — | 166 | 156 | 36 | 4 | 0 | 3 | 9 | 35 | 0 | 2 | 2 | 231 | 273 | 314 | 587 | 83 | 277 | 21 | 5 | 264 | 42 | — | — | — | — | — | — |
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2013 | 18 | ROK MLE | GCL Phillies | — | 196 | 178 | 29 | 2 | 1 | 2 | 15 | 52 | 2 | 4 | 3 | 163 | 236 | 219 | 455 | 56 | 216 | 27 | 8 | 203 | 24 | — | — | — | — | — | — |
| 2015 | 20 | A MLE | Lakewood BlueClaws | — | 550 | 509 | 116 | 24 | 1 | 5 | 19 | 119 | 9 | 5 | 7 | 228 | 268 | 308 | 577 | 81 | 273 | 22 | 3 | 249 | 55 | — | — | — | — | — | — |
| 2016 | 21 | A+ MLE | Clearwater Threshers | — | 347 | 311 | 60 | 11 | 1 | 3 | 19 | 122 | 10 | 6 | 7 | 193 | 262 | 264 | 525 | 71 | 291 | 35 | 5 | 237 | 47 | — | — | — | — | — | — |
| 2017 | 22 | AA MLE | Reading Fightin Phils | — | 104 | 100 | 23 | 5 | 0 | 3 | 2 | 36 | 0 | 1 | 0 | 230 | 245 | 370 | 615 | 140 | 317 | 35 | 2 | 256 | 59 | — | — | — | — | — | — |
| 2017 | 22 | A+ MLE | Clearwater Threshers | — | 73 | 66 | 17 | 7 | 0 | 2 | 5 | 22 | 1 | 0 | 0 | 258 | 319 | 455 | 774 | 197 | 354 | 30 | 7 | 317 | 101 | — | — | — | — | — | — |
| 2017 | 22 | A MLE | Lakewood BlueClaws | — | 218 | 203 | 45 | 12 | 2 | 3 | 7 | 78 | 3 | 3 | 1 | 222 | 258 | 345 | 603 | 123 | 316 | 36 | 3 | 254 | 58 | — | — | — | — | — | — |
| 2018 | 23 | AA MLE | Reading Fightin Phils | — | 166 | 158 | 34 | 3 | 0 | 2 | 7 | 42 | 0 | 2 | 2 | 215 | 248 | 272 | 521 | 57 | 276 | 25 | 4 | 230 | 42 | — | — | — | — | — | — |
| 2013 | 18 | ROK MLE | GCL Phillies | — | 196 | 178 | 29 | 2 | 1 | 2 | 15 | 52 | 2 | 4 | 3 | 163 | 236 | 219 | 455 | 56 | 218 | 27 | 8 | 203 | 24 | — | — | — | — | — | — |
| 2013 | 18 | ROK RAW | GCL Phillies | — | 196 | 169 | 35 | 3 | 1 | 2 | 24 | 36 | 2 | 4 | 3 | 207 | 313 | 272 | 585 | 65 | 252 | 18 | 12 | 276 | 24 | — | — | — | — | — | — |
| 2015 | 20 | A MLE | 2 teams | — | 728 | 679 | 152 | 32 | 1 | 6 | 25 | 158 | 10 | 8 | 7 | 224 | 262 | 300 | 562 | 77 | 279 | 22 | 3 | 249 | 55 | — | — | — | — | — | — |
| 2015 | 20 | A RAW | 2 teams | — | 728 | 659 | 169 | 35 | 2 | 6 | 45 | 130 | 10 | 8 | 7 | 256 | 314 | 343 | 657 | 86 | 307 | 18 | 6 | 293 | 55 | — | — | — | — | — | — |
| 2016 | 21 | A+ MLE | Clearwater Threshers | — | 347 | 311 | 60 | 11 | 1 | 3 | 19 | 122 | 10 | 6 | 7 | 193 | 262 | 264 | 525 | 71 | 302 | 35 | 5 | 237 | 47 | — | — | — | — | — | — |
| 2016 | 21 | A+ RAW | Clearwater Threshers | — | 347 | 305 | 70 | 12 | 1 | 4 | 25 | 85 | 10 | 6 | 7 | 230 | 309 | 315 | 624 | 85 | 301 | 24 | 7 | 283 | 47 | — | — | — | — | — | — |
| 2017 | 22 | A MLE | 3 teams | — | 395 | 370 | 85 | 25 | 2 | 7 | 13 | 137 | 4 | 4 | 1 | 230 | 264 | 365 | 628 | 135 | 338 | 35 | 3 | 266 | 66 | — | — | — | — | — | — |
| 2017 | 22 | A RAW | 3 teams | — | 395 | 363 | 97 | 28 | 2 | 9 | 20 | 104 | 4 | 4 | 1 | 267 | 313 | 430 | 742 | 163 | 345 | 26 | 5 | 322 | 66 | — | — | — | — | — | — |
| 2018 | 23 | AA MLE | Reading Fightin Phils | — | 166 | 158 | 34 | 3 | 0 | 2 | 7 | 42 | 0 | 2 | 2 | 215 | 248 | 272 | 521 | 57 | 278 | 25 | 4 | 230 | 42 | — | — | — | — | — | — |
| 2018 | 23 | AA RAW | Reading Fightin Phils | — | 166 | 156 | 36 | 4 | 0 | 3 | 9 | 35 | 0 | 2 | 2 | 231 | 273 | 314 | 587 | 83 | 277 | 21 | 5 | 264 | 42 | — | — | — | — | — | — |
| 2013 | 18 | ROK MLE | GCL Phillies | — | 196 | 177 | 29 | 2 | 1 | 2 | 15 | 52 | 2 | 4 | 3 | 164 | 236 | 220 | 456 | 56 | 216 | 27 | 8 | 203 | 24 | — | — | — | — | — | — |
| 2015 | 20 | A MLE | 2 teams | — | 728 | 687 | 152 | 32 | 1 | 6 | 25 | 158 | 10 | 8 | 7 | 221 | 262 | 297 | 559 | 76 | 273 | 22 | 3 | 249 | 55 | — | — | — | — | — | — |
| 2016 | 21 | A+ MLE | Clearwater Threshers | — | 347 | 315 | 60 | 11 | 1 | 3 | 19 | 122 | 10 | 6 | 7 | 190 | 262 | 260 | 522 | 70 | 291 | 35 | 5 | 237 | 47 | — | — | — | — | — | — |
| 2017 | 22 | A MLE | 3 teams | — | 395 | 375 | 85 | 25 | 2 | 7 | 13 | 137 | 4 | 4 | 1 | 227 | 264 | 360 | 624 | 133 | 323 | 35 | 3 | 266 | 66 | — | — | — | — | — | — |
| 2018 | 23 | AA MLE | Reading Fightin Phils | — | 166 | 158 | 34 | 3 | 0 | 2 | 7 | 42 | 0 | 2 | 2 | 215 | 248 | 272 | 521 | 57 | 276 | 25 | 4 | 230 | 42 | — | — | — | — | — | — |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| Career | — | MLE | — | 1832 | 1696 | 360 | 73 | 5 | 20 | 79 | 511 | 26 | 24 | 20 | 212 | 258 | 297 | 555 | 84 | 288 | 28 | 4 | 244 | 51 | -107 | -3 | +0 | -20 | +40 | -9.1 | |
| / 162G | — | MLE | — | 650 | 602 | 128 | 26 | 2 | 7 | 28 | 181 | 9 | 9 | 7 | 213 | 258 | 297 | 556 | 85 | 288 | 28 | 4 | 244 | 51 | -38 | -1 | +0 | -7 | +14 | -3.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.
2018 AAReading Fightin Phils · 166 PAwOBA .259 → .230 (−29)K% 21.1% → 25.3%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 21.08% | ÷1.015 | ×1.220 | — | — | 25.34% |
| BB% (unintentional) /PA | 5.42% | ÷0.978 | ×0.700 | — | ×1.027 | 3.98% |
| HBP% /PA | 0.00% | — | ×0.850 | — | ×1.027 | 0.00% |
| Singles /BIP | 23.97% | ÷0.964 | ×0.970 | ×0.997 | ×1.027 | 24.69% |
| Doubles /BIP | 3.31% | ÷1.101 | ×0.860 | ×0.997 | ×1.027 | 2.64% |
| Triples /BIP | 0.00% | ÷1.150 | ×0.950 | ×0.997 | ×1.027 | 0.00% |
| Home runs /BIP | 2.48% | ÷1.164 | ×0.780 | — | ×1.027 | 1.71% |
Factors used: league row EL. Park (home-season share, regressed): HR 133, 1B 93, 2B 120, 3B 130, K 103, BB 96 — 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.997.
Result: wOBA .259 → .230; ISO .083 → .058; BABIP .277 → .276. 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 ALakewood BlueClaws · 218 PAwOBA .310 → .254 (−55)K% 26.6% → 35.9%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 26.61% | ÷0.994 | ×1.340 | — | — | 35.85% |
| BB% (unintentional) /PA | 4.59% | ÷0.980 | ×0.660 | — | — | 3.09% |
| HBP% /PA | 1.38% | — | ×0.770 | — | — | 1.06% |
| Singles /BIP | 23.40% | ÷1.030 | ×0.920 | ×1.009 | — | 21.10% |
| Doubles /BIP | 10.64% | ÷0.927 | ×0.820 | ×1.009 | — | 9.50% |
| Triples /BIP | 1.42% | ÷1.021 | ×0.940 | ×1.009 | — | 1.32% |
| Home runs /BIP | 2.13% | ÷0.854 | ×0.820 | — | — | 2.04% |
Factors used: league row SAL. Park (home-season share, regressed): HR 71, 1B 106, 2B 85, 3B 104, K 99, BB 96 — 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.009.
Result: wOBA .310 → .254; ISO .141 → .120; BABIP .352 → .316. 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 AAReading Fightin Phils · 104 PAwOBA .307 → .256 (−52)K% 28.8% → 34.8%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 28.85% | ÷1.012 | ×1.220 | — | — | 34.77% |
| BB% (unintentional) /PA | 2.88% | ÷1.045 | ×0.700 | — | ×1.042 | 2.01% |
| HBP% /PA | 0.00% | — | ×0.850 | — | ×1.042 | 0.00% |
| Singles /BIP | 23.19% | ÷1.013 | ×0.970 | ×0.997 | ×1.042 | 23.07% |
| Doubles /BIP | 8.70% | ÷0.986 | ×0.860 | ×0.997 | ×1.042 | 7.88% |
| Triples /BIP | 0.00% | ÷1.063 | ×0.950 | ×0.997 | ×1.042 | 0.00% |
| Home runs /BIP | 5.80% | ÷1.220 | ×0.780 | — | ×1.042 | 3.86% |
Factors used: league row EL. Park (home-season share, regressed): HR 144, 1B 103, 2B 97, 3B 113, K 102, BB 109 — 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). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.997.
Result: wOBA .307 → .256; ISO .182 → .129; 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).
2017 A+Clearwater Threshers · 73 PAwOBA .349 → .317 (−32)K% 21.9% → 30.6%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 21.92% | ÷1.016 | ×1.420 | — | — | 30.64% |
| BB% (unintentional) /PA | 8.22% | ÷0.998 | ×0.750 | — | ×1.012 | 6.25% |
| HBP% /PA | 1.37% | — | ×0.930 | — | ×1.012 | 1.29% |
| Singles /BIP | 18.37% | ÷0.989 | ×0.920 | ×1.050 | ×1.012 | 18.16% |
| Doubles /BIP | 14.29% | ÷0.907 | ×0.960 | ×1.050 | ×1.012 | 16.06% |
| Triples /BIP | 0.00% | ÷1.002 | ×0.810 | ×1.050 | ×1.012 | 0.00% |
| Home runs /BIP | 4.08% | ÷1.058 | ×0.880 | — | ×1.012 | 3.44% |
Factors used: league row FSL. Park (home-season share, regressed): HR 112, 1B 98, 2B 82, 3B 100, K 103, BB 100 — 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). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.050.
Result: wOBA .349 → .317; ISO .200 → .183; BABIP .340 → .354. 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+Clearwater Threshers · 347 PAwOBA .278 → .237 (−41)K% 24.5% → 35.3%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 24.50% | ÷0.986 | ×1.420 | — | — | 35.29% |
| BB% (unintentional) /PA | 7.20% | ÷1.011 | ×0.750 | — | ×1.027 | 5.49% |
| HBP% /PA | 2.88% | — | ×0.930 | — | ×1.027 | 2.75% |
| Singles /BIP | 24.09% | ÷0.997 | ×0.920 | ×1.006 | ×1.027 | 22.96% |
| Doubles /BIP | 5.45% | ÷0.947 | ×0.960 | ×1.006 | ×1.027 | 5.71% |
| Triples /BIP | 0.45% | ÷0.900 | ×0.810 | ×1.006 | ×1.027 | 0.42% |
| Home runs /BIP | 1.82% | ÷0.964 | ×0.880 | — | ×1.027 | 1.71% |
Factors used: league row FSL. Park (home-season share, regressed): HR 93, 1B 99, 2B 89, 3B 80, K 97, BB 102 — 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.006.
Result: wOBA .278 → .237; ISO .085 → .075; BABIP .301 → .291. 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 ALakewood BlueClaws · 550 PAwOBA .285 → .249 (−36)K% 16.0% → 21.7%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 16.00% | ÷0.989 | ×1.340 | — | — | 21.67% |
| BB% (unintentional) /PA | 5.27% | ÷1.027 | ×0.660 | — | ×1.030 | 3.49% |
| HBP% /PA | 1.64% | — | ×0.770 | — | ×1.030 | 1.30% |
| Singles /BIP | 22.63% | ÷1.020 | ×0.920 | ×1.007 | ×1.030 | 21.15% |
| Doubles /BIP | 6.81% | ÷0.959 | ×0.820 | ×1.007 | ×1.030 | 6.04% |
| Triples /BIP | 0.24% | ÷1.043 | ×0.940 | ×1.007 | ×1.030 | 0.23% |
| Home runs /BIP | 1.22% | ÷0.872 | ×0.820 | — | ×1.030 | 1.18% |
Factors used: league row SAL. Park (home-season share, regressed): HR 74, 1B 104, 2B 92, 3B 109, K 98, BB 105 — 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 ×1.007.
Result: wOBA .285 → .249; ISO .090 → .081; BABIP .295 → .273. 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 Phillies · 196 PAwOBA .267 → .203 (−64)K% 18.4% → 26.4%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 18.37% | ÷1.000 | ×1.440 | — | — | 26.45% |
| BB% (unintentional) /PA | 11.73% | ÷1.000 | ×0.620 | — | ×1.022 | 7.44% |
| HBP% /PA | 1.02% | — | ×0.720 | — | ×1.022 | 0.75% |
| Singles /BIP | 21.80% | ÷1.000 | ×0.820 | ×1.041 | ×1.022 | 19.04% |
| Doubles /BIP | 2.26% | ÷1.000 | ×0.720 | ×1.041 | ×1.022 | 1.73% |
| Triples /BIP | 0.75% | ÷1.000 | ×0.720 | ×1.041 | ×1.022 | 0.58% |
| Home runs /BIP | 1.50% | ÷1.000 | ×0.780 | — | ×1.022 | 1.20% |
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.041.
Result: wOBA .267 → .203; ISO .065 → .049; BABIP .252 → .216. 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).
Not traceable per stint: some stints lack the counting stats the component translation needs. Level-wide factors that apply instead — .