Erik Ostberg
| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR | MLE AVG/OBP/SLG |
|---|---|---|---|---|---|---|---|---|---|
| 2021 | 25 | AA/A+TB | 237 | .258/.331/.469 | 12 | 0 | 64 | — | .197/.254/.353 |
| 2022 | 26 | AATB | 187 | .216/.317/.389 | 6 | 3 | 49 | — | .176/.247/.318 |
| 2023 | 27 | AATB | 151 | .213/.282/.404 | 5 | 2 | 40 | — | .177/.221/.326 |
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) | |||||||||||||||||||||||||||||||
| 2017 | 21 | ROK | GCL Rays | — | 106 | 85 | 16 | 3 | 0 | 0 | 15 | 30 | 3 | 1 | 0 | 188 | 330 | 224 | 554 | 35 | 281 | 28 | 14 | 267 | 11 | — | — | — | — | — | — |
| 2019 | 23 | A | Bowling Green Hot Rods | — | 109 | 97 | 24 | 3 | 0 | 1 | 10 | 30 | 2 | 0 | 0 | 247 | 330 | 309 | 640 | 62 | 348 | 28 | 9 | 298 | 31 | — | — | — | — | — | — |
| 2021 | 25 | AA | Montgomery Biscuits | — | 21 | 21 | 4 | 0 | 1 | 0 | 0 | 7 | 0 | 0 | 0 | 190 | 190 | 286 | 476 | 95 | 286 | 33 | 0 | 206 | -4 | — | — | — | — | — | — |
| 2021 | 25 | A+ | Bowling Green Hot Rods | — | 216 | 192 | 51 | 5 | 1 | 12 | 21 | 57 | 2 | 0 | 2 | 266 | 344 | 490 | 834 | 224 | 315 | 26 | 10 | 366 | 71 | — | — | — | — | — | — |
| 2022 | 26 | AA | Montgomery Biscuits | — | 187 | 162 | 35 | 6 | 2 | 6 | 24 | 56 | 0 | 3 | 1 | 216 | 317 | 389 | 706 | 173 | 287 | 30 | 13 | 316 | 49 | — | — | — | — | — | — |
| 2023 | 27 | AA | Montgomery Biscuits | — | 151 | 136 | 29 | 11 | 0 | 5 | 12 | 38 | 1 | 2 | 1 | 213 | 282 | 404 | 686 | 191 | 253 | 25 | 8 | 301 | 40 | — | — | — | — | — | — |
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2017 | 21 | ROK MLE | GCL Rays | — | 106 | 92 | 12 | 2 | 0 | 0 | 8 | 43 | 3 | 1 | 0 | 130 | 223 | 152 | 375 | 22 | 230 | 41 | 8 | 185 | 11 | — | — | — | — | — | — |
| 2019 | 23 | A MLE | Bowling Green Hot Rods | — | 109 | 101 | 19 | 2 | 0 | 1 | 6 | 43 | 2 | 0 | 0 | 188 | 248 | 238 | 485 | 50 | 316 | 39 | 6 | 214 | 31 | — | — | — | — | — | — |
| 2021 | 25 | AA MLE | Montgomery Biscuits | — | 21 | 21 | 3 | 0 | 1 | 0 | 0 | 9 | 0 | 0 | 0 | 143 | 143 | 238 | 381 | 95 | 264 | 43 | 0 | 162 | -4 | — | — | — | — | — | — |
| 2021 | 25 | A+ MLE | Bowling Green Hot Rods | — | 216 | 198 | 40 | 3 | 1 | 9 | 15 | 75 | 2 | 0 | 2 | 202 | 265 | 364 | 629 | 162 | 267 | 35 | 7 | 273 | 71 | — | — | — | — | — | — |
| 2022 | 26 | AA MLE | Montgomery Biscuits | — | 187 | 170 | 30 | 5 | 2 | 5 | 16 | 66 | 0 | 3 | 1 | 176 | 247 | 318 | 565 | 141 | 238 | 35 | 9 | 240 | 49 | — | — | — | — | — | — |
| 2023 | 27 | AA MLE | Montgomery Biscuits | — | 151 | 141 | 25 | 9 | 0 | 4 | 7 | 45 | 1 | 2 | 1 | 177 | 221 | 326 | 548 | 149 | 213 | 30 | 5 | 228 | 40 | — | — | — | — | — | — |
| 2017 | 21 | ROK MLE | GCL Rays | — | 106 | 92 | 12 | 2 | 0 | 0 | 8 | 43 | 3 | 1 | 0 | 130 | 223 | 152 | 375 | 22 | 235 | 41 | 8 | 185 | 11 | — | — | — | — | — | — |
| 2017 | 21 | ROK RAW | GCL Rays | — | 106 | 85 | 16 | 3 | 0 | 0 | 15 | 30 | 3 | 1 | 0 | 188 | 330 | 224 | 554 | 35 | 281 | 28 | 14 | 267 | 11 | — | — | — | — | — | — |
| 2019 | 23 | A MLE | Bowling Green Hot Rods | — | 109 | 101 | 19 | 2 | 0 | 1 | 6 | 43 | 2 | 0 | 0 | 188 | 248 | 238 | 485 | 50 | 316 | 39 | 6 | 214 | 31 | — | — | — | — | — | — |
| 2019 | 23 | A RAW | Bowling Green Hot Rods | — | 109 | 97 | 24 | 3 | 0 | 1 | 10 | 30 | 2 | 0 | 0 | 247 | 330 | 309 | 640 | 62 | 348 | 28 | 9 | 298 | 31 | — | — | — | — | — | — |
| 2021 | 25 | A+ MLE | 2 teams | — | 237 | 219 | 43 | 3 | 1 | 9 | 15 | 84 | 2 | 0 | 2 | 196 | 254 | 342 | 597 | 146 | 268 | 35 | 6 | 263 | 64 | — | — | — | — | — | — |
| 2021 | 25 | A+ RAW | 2 teams | — | 237 | 213 | 55 | 5 | 2 | 12 | 21 | 64 | 2 | 0 | 2 | 258 | 331 | 469 | 800 | 211 | 312 | 27 | 9 | 352 | 64 | — | — | — | — | — | — |
| 2022 | 26 | AA MLE | Montgomery Biscuits | — | 187 | 170 | 30 | 5 | 2 | 5 | 16 | 66 | 0 | 3 | 1 | 176 | 247 | 318 | 565 | 141 | 250 | 35 | 9 | 240 | 49 | — | — | — | — | — | — |
| 2022 | 26 | AA RAW | Montgomery Biscuits | — | 187 | 162 | 35 | 6 | 2 | 6 | 24 | 56 | 0 | 3 | 1 | 216 | 317 | 389 | 706 | 173 | 287 | 30 | 13 | 316 | 49 | — | — | — | — | — | — |
| 2023 | 27 | AA MLE | Montgomery Biscuits | — | 151 | 141 | 25 | 9 | 0 | 4 | 7 | 45 | 1 | 2 | 1 | 177 | 221 | 326 | 548 | 149 | 223 | 30 | 5 | 228 | 40 | — | — | — | — | — | — |
| 2023 | 27 | AA RAW | Montgomery Biscuits | — | 151 | 136 | 29 | 11 | 0 | 5 | 12 | 38 | 1 | 2 | 1 | 213 | 282 | 404 | 686 | 191 | 253 | 25 | 8 | 301 | 40 | — | — | — | — | — | — |
| 2017 | 21 | ROK MLE | GCL Rays | — | 106 | 94 | 12 | 2 | 0 | 0 | 8 | 43 | 3 | 1 | 0 | 128 | 223 | 149 | 372 | 21 | 230 | 41 | 8 | 185 | 11 | — | — | — | — | — | — |
| 2019 | 23 | A MLE | Bowling Green Hot Rods | — | 109 | 100 | 19 | 2 | 0 | 1 | 6 | 43 | 2 | 0 | 0 | 190 | 248 | 240 | 488 | 50 | 316 | 39 | 6 | 214 | 31 | — | — | — | — | — | — |
| 2021 | 25 | A+ MLE | 2 teams | — | 237 | 218 | 43 | 3 | 1 | 9 | 15 | 84 | 2 | 0 | 2 | 197 | 254 | 344 | 598 | 147 | 267 | 35 | 6 | 263 | 64 | — | — | — | — | — | — |
| 2022 | 26 | AA MLE | Montgomery Biscuits | — | 187 | 169 | 30 | 5 | 2 | 5 | 16 | 66 | 0 | 3 | 1 | 178 | 247 | 320 | 567 | 142 | 238 | 35 | 9 | 240 | 49 | — | — | — | — | — | — |
| 2023 | 27 | AA MLE | Montgomery Biscuits | — | 151 | 142 | 25 | 9 | 0 | 4 | 7 | 45 | 1 | 2 | 1 | 176 | 221 | 324 | 545 | 148 | 213 | 30 | 5 | 228 | 40 | — | — | — | — | — | — |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| Career | — | MLE | — | 790 | 723 | 129 | 21 | 3 | 19 | 52 | 281 | 8 | 6 | 4 | 178 | 241 | 295 | 536 | 116 | 256 | 36 | 7 | 234 | 44 | -52 | -0 | +0 | +14 | +17 | -2.2 | |
| / 162G | — | MLE | — | 650 | 595 | 106 | 17 | 2 | 16 | 43 | 231 | 7 | 5 | 3 | 178 | 242 | 294 | 536 | 116 | 255 | 36 | 7 | 234 | 44 | -43 | -0 | +0 | +12 | +14 | -1.8 | |
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.
2023 AAMontgomery Biscuits · 151 PAwOBA .296 → .228 (−68)K% 25.2% → 30.1%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 25.17% | ÷1.022 | ×1.220 | — | — | 30.05% |
| BB% (unintentional) /PA | 7.95% | ÷1.072 | ×0.680 | — | ×0.968 | 4.88% |
| HBP% /PA | 0.66% | — | ×0.840 | — | ×0.968 | 0.54% |
| Singles /BIP | 13.27% | ÷0.949 | ×0.920 | ×0.950 | ×0.968 | 11.82% |
| Doubles /BIP | 11.22% | ÷1.030 | ×0.910 | ×0.950 | ×0.968 | 9.12% |
| Triples /BIP | 0.00% | ÷1.150 | ×0.880 | ×0.950 | ×0.968 | 0.00% |
| Home runs /BIP | 5.10% | ÷1.087 | ×0.800 | — | ×0.968 | 3.63% |
Factors used: league row SL. Park (home-season share, regressed): HR 117, 1B 90, 2B 106, 3B 130, K 104, BB 114 — applied at half strength. Age: age 28 vs a level average of 24.8 → −3.2% on BB/HBP/hit rates (3.2 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.950.
Result: wOBA .296 → .228; ISO .191 → .143; BABIP .253 → .213. 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).
2022 AAMontgomery Biscuits · 187 PAwOBA .310 → .240 (−70)K% 29.9% → 35.4%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 29.95% | ÷1.032 | ×1.220 | — | — | 35.41% |
| BB% (unintentional) /PA | 12.83% | ÷0.984 | ×0.680 | — | ×0.978 | 8.67% |
| HBP% /PA | 0.00% | — | ×0.840 | — | ×0.978 | 0.00% |
| Singles /BIP | 19.81% | ÷1.001 | ×0.920 | ×0.950 | ×0.978 | 16.92% |
| Doubles /BIP | 5.66% | ÷1.090 | ×0.910 | ×0.950 | ×0.978 | 4.39% |
| Triples /BIP | 1.89% | ÷0.955 | ×0.880 | ×0.950 | ×0.978 | 1.62% |
| Home runs /BIP | 5.66% | ÷0.970 | ×0.800 | — | ×0.978 | 4.56% |
Factors used: league row SL. Park (home-season share, regressed): HR 94, 1B 100, 2B 118, 3B 91, K 106, BB 97 — applied at half strength. Age: age 27 vs a level average of 24.8 → −2.2% on BB/HBP/hit rates (2.2 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.950.
Result: wOBA .310 → .240; ISO .173 → .138; BABIP .287 → .238. 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).
2021 A+Bowling Green Hot Rods · 216 PAwOBA .357 → .273 (−84)K% 26.4% → 34.7%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 26.39% | ÷1.027 | ×1.350 | — | — | 34.69% |
| BB% (unintentional) /PA | 9.72% | ÷0.953 | ×0.710 | — | ×0.968 | 7.01% |
| HBP% /PA | 0.93% | — | ×0.810 | — | ×0.968 | 0.73% |
| Singles /BIP | 24.44% | ÷0.957 | ×0.910 | ×0.975 | ×0.968 | 21.94% |
| Doubles /BIP | 3.70% | ÷1.135 | ×0.830 | ×0.975 | ×0.968 | 2.56% |
| Triples /BIP | 0.74% | ÷1.150 | ×0.820 | ×0.975 | ×0.968 | 0.50% |
| Home runs /BIP | 8.89% | ÷0.978 | ×0.830 | — | ×0.968 | 7.30% |
Factors used: level-wide A+ factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 96, 1B 91, 2B 127, 3B 130, K 105, BB 91 — applied at half strength. Age: age 26 vs a level average of 22.8 → −3.2% on BB/HBP/hit rates (3.2 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.975.
Result: wOBA .357 → .273; ISO .224 → .165; BABIP .315 → .267. 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).
2021 AAMontgomery Biscuits · 21 PAwOBA .200 → .162 (−38)K% 33.3% → 41.9%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 33.33% | ÷0.970 | ×1.220 | — | — | 41.93% |
| BB% (unintentional) /PA | 0.00% | ÷1.015 | ×0.690 | — | ×0.988 | 0.00% |
| HBP% /PA | 0.00% | — | ×0.850 | — | ×0.988 | 0.00% |
| Singles /BIP | 21.43% | ÷1.019 | ×0.940 | — | ×0.988 | 19.54% |
| Doubles /BIP | 0.00% | ÷1.046 | ×0.870 | — | ×0.988 | 0.00% |
| Triples /BIP | 7.14% | ÷0.950 | ×0.920 | — | ×0.988 | 6.84% |
| Home runs /BIP | 0.00% | ÷0.938 | ×0.780 | — | ×0.988 | 0.00% |
Factors used: level-wide AA factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 88, 1B 104, 2B 109, 3B 90, K 94, BB 103 — 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 .200 → .162; ISO .095 → .079; BABIP .286 → .264. 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).
2019 ABowling Green Hot Rods · 109 PAwOBA .287 → .214 (−73)K% 27.5% → 39.7%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 27.52% | ÷0.944 | ×1.360 | — | — | 39.66% |
| BB% (unintentional) /PA | 8.26% | ÷1.012 | ×0.690 | — | ×0.980 | 5.52% |
| HBP% /PA | 1.83% | — | ×0.780 | — | ×0.980 | 1.40% |
| Singles /BIP | 29.85% | ÷0.960 | ×0.920 | — | ×0.980 | 28.05% |
| Doubles /BIP | 4.48% | ÷1.103 | ×0.830 | — | ×0.980 | 3.30% |
| Triples /BIP | 0.00% | ÷1.124 | ×0.910 | — | ×0.980 | 0.00% |
| Home runs /BIP | 1.49% | ÷1.270 | ×0.800 | — | ×0.980 | 0.92% |
Factors used: level-wide A factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 154, 1B 92, 2B 121, 3B 125, K 89, BB 102 — applied at half strength. Age: age 24 vs a level average of 22.0 → −2.0% on BB/HBP/hit rates (2.0 yr older than average).
Result: wOBA .287 → .214; ISO .062 → .036; BABIP .348 → .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 ROKGCL Rays · 106 PAwOBA .262 → .185 (−77)K% 28.3% → 40.8%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 28.30% | ÷1.000 | ×1.440 | — | — | 40.75% |
| BB% (unintentional) /PA | 13.21% | ÷1.000 | ×0.620 | — | ×0.975 | 7.98% |
| HBP% /PA | 2.83% | — | ×0.720 | — | ×0.975 | 1.99% |
| Singles /BIP | 23.64% | ÷1.000 | ×0.820 | ×1.050 | ×0.975 | 19.84% |
| Doubles /BIP | 5.45% | ÷1.000 | ×0.720 | ×1.050 | ×0.975 | 4.02% |
| Triples /BIP | 0.00% | ÷1.000 | ×0.720 | ×1.050 | ×0.975 | 0.00% |
| Home runs /BIP | 0.00% | ÷1.000 | ×0.780 | — | ×0.975 | 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 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 ×1.050.
Result: wOBA .262 → .185; ISO .035 → .025; BABIP .281 → .230. 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).