Brainer Bonaci
| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR | MLE AVG/OBP/SLG |
|---|---|---|---|---|---|---|---|---|---|
| 2023 | 21 | AA/A+BOS | 350 | .297/.357/.464 | 11 | 7 | 76 | — | .238/.280/.375 |
| 2025 | 23 | INTLLeones del Ca… | 182 | .316/.422/.513 | 7 | 2 | 164 | — | |
| 2026 | 24 | INTLLeones del Ca… | 43 | .200/.317/.257 | 0 | 0 | 65 | — |
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) | |||||||||||||||||||||||||||||||
| 2019 | 17 | ROK | DSL Red Sox 1 | — | 262 | 229 | 64 | 14 | 2 | 3 | 23 | 40 | 6 | 18 | 10 | 279 | 359 | 397 | 756 | 118 | 323 | 15 | 9 | 338 | 33 | — | — | — | — | — | — |
| 2021 | 19 | A | Salem Red Sox | — | 52 | 49 | 11 | 3 | 1 | 0 | 3 | 8 | 0 | 0 | 0 | 224 | 269 | 327 | 596 | 102 | 268 | 15 | 6 | 267 | 32 | — | — | — | — | — | — |
| 2021 | 19 | ROK | FCL Red Sox | — | 162 | 139 | 35 | 13 | 1 | 2 | 21 | 37 | 2 | 12 | 0 | 252 | 358 | 403 | 761 | 151 | 330 | 23 | 13 | 344 | 42 | — | — | — | — | — | — |
| 2022 | 20 | A | Salem Red Sox | — | 494 | 397 | 104 | 19 | 6 | 6 | 89 | 89 | 3 | 28 | 6 | 262 | 401 | 385 | 786 | 123 | 319 | 18 | 18 | 358 | 82 | — | — | — | — | — | — |
| 2023 | 21 | AA | Portland Sea Dogs | — | 72 | 61 | 17 | 3 | 0 | 2 | 9 | 17 | 0 | 1 | 1 | 279 | 371 | 426 | 798 | 148 | 341 | 24 | 12 | 349 | 98 | — | — | — | — | — | — |
| 2023 | 21 | A+ | Greenville Drive | — | 278 | 256 | 77 | 15 | 1 | 9 | 21 | 63 | 0 | 6 | 3 | 301 | 354 | 473 | 826 | 172 | 368 | 23 | 8 | 364 | 70 | — | — | — | — | — | — |
| 2025 | 23 | INTL | Leones del Caracas | — | 182 | 152 | 48 | 9 | 0 | 7 | 25 | 36 | 3 | 2 | 0 | 316 | 422 | 513 | 935 | 197 | 373 | 20 | 14 | 411 | 164 | — | — | — | — | — | — |
| 2026 | 24 | INTL | Leones del Caracas | — | 43 | 35 | 7 | 2 | 0 | 0 | 4 | 11 | 2 | 0 | 1 | 200 | 317 | 257 | 574 | 57 | 269 | 26 | 9 | 264 | 65 | — | — | — | — | — | — |
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2019 | 17 | ROK MLE | DSL Red Sox 1 | — | 262 | 237 | 40 | 8 | 1 | 1 | 16 | 49 | 6 | 18 | 10 | 169 | 239 | 224 | 463 | 55 | 205 | 19 | 6 | 217 | 33 | — | — | — | — | — | — |
| 2021 | 19 | A MLE | Salem Red Sox | — | 52 | 50 | 9 | 2 | 1 | 0 | 2 | 11 | 0 | 0 | 0 | 180 | 212 | 260 | 472 | 80 | 244 | 21 | 4 | 216 | 32 | — | — | — | — | — | — |
| 2021 | 19 | ROK MLE | FCL Red Sox | — | 162 | 147 | 25 | 8 | 1 | 2 | 13 | 53 | 2 | 12 | 0 | 170 | 247 | 279 | 526 | 109 | 254 | 33 | 8 | 230 | 42 | — | — | — | — | — | — |
| 2022 | 20 | A MLE | Salem Red Sox | — | 494 | 421 | 90 | 16 | 5 | 5 | 65 | 130 | 3 | 28 | 6 | 214 | 323 | 311 | 634 | 97 | 288 | 26 | 13 | 290 | 82 | — | — | — | — | — | — |
| 2023 | 21 | AA MLE | Portland Sea Dogs | — | 72 | 64 | 17 | 2 | 0 | 2 | 6 | 21 | 0 | 1 | 1 | 266 | 329 | 391 | 719 | 125 | 337 | 29 | 8 | 313 | 98 | — | — | — | — | — | — |
| 2023 | 21 | A+ MLE | Greenville Drive | — | 278 | 264 | 61 | 11 | 1 | 8 | 13 | 84 | 0 | 6 | 3 | 231 | 267 | 371 | 638 | 140 | 298 | 30 | 5 | 272 | 70 | — | — | — | — | — | — |
| 2019 | 17 | ROK MLE | DSL Red Sox 1 | — | 262 | 237 | 40 | 8 | 1 | 1 | 16 | 49 | 6 | 18 | 10 | 169 | 239 | 224 | 463 | 55 | 205 | 19 | 6 | 217 | 33 | — | — | — | — | — | — |
| 2019 | 17 | ROK RAW | DSL Red Sox 1 | — | 262 | 229 | 64 | 14 | 2 | 3 | 23 | 40 | 6 | 18 | 10 | 279 | 359 | 397 | 756 | 118 | 323 | 15 | 9 | 338 | 33 | — | — | — | — | — | — |
| 2021 | 19 | ROK MLE | 2 teams | — | 214 | 197 | 36 | 11 | 2 | 2 | 15 | 64 | 2 | 12 | 0 | 183 | 248 | 289 | 537 | 107 | 260 | 30 | 7 | 227 | 40 | — | — | — | — | — | — |
| 2021 | 19 | ROK RAW | 2 teams | — | 214 | 188 | 46 | 16 | 2 | 2 | 24 | 45 | 2 | 12 | 0 | 245 | 336 | 383 | 719 | 138 | 312 | 21 | 11 | 326 | 40 | — | — | — | — | — | — |
| 2022 | 20 | A MLE | Salem Red Sox | — | 494 | 421 | 90 | 16 | 5 | 5 | 65 | 130 | 3 | 28 | 6 | 214 | 323 | 311 | 634 | 97 | 292 | 26 | 13 | 290 | 82 | — | — | — | — | — | — |
| 2022 | 20 | A RAW | Salem Red Sox | — | 494 | 397 | 104 | 19 | 6 | 6 | 89 | 89 | 3 | 28 | 6 | 262 | 401 | 385 | 786 | 123 | 319 | 18 | 18 | 358 | 82 | — | — | — | — | — | — |
| 2023 | 21 | A+ MLE | 2 teams | — | 350 | 328 | 77 | 13 | 1 | 10 | 19 | 105 | 0 | 7 | 4 | 235 | 277 | 372 | 649 | 137 | 310 | 30 | 5 | 280 | 76 | — | — | — | — | — | — |
| 2023 | 21 | A+ RAW | 2 teams | — | 350 | 317 | 94 | 18 | 1 | 11 | 30 | 80 | 0 | 7 | 4 | 297 | 357 | 464 | 821 | 167 | 362 | 23 | 9 | 361 | 76 | — | — | — | — | — | — |
| 2025 | 23 | INTL MLE | Leones del Caracas | — | 182 | 152 | 48 | 9 | 0 | 7 | 25 | 36 | 3 | 2 | 0 | 316 | 422 | 513 | 935 | 197 | 373 | 20 | 14 | — | — | — | — | — | — | — | — |
| 2025 | 23 | INTL RAW | Leones del Caracas | — | 182 | 152 | 48 | 9 | 0 | 7 | 25 | 36 | 3 | 2 | 0 | 316 | 422 | 513 | 935 | 197 | 373 | 20 | 14 | 411 | 164 | — | — | — | — | — | — |
| 2026 | 24 | INTL MLE | Leones del Caracas | — | 43 | 35 | 7 | 2 | 0 | 0 | 4 | 11 | 2 | 0 | 1 | 200 | 317 | 257 | 574 | 57 | 269 | 26 | 9 | — | — | — | — | — | — | — | — |
| 2026 | 24 | INTL RAW | Leones del Caracas | — | 43 | 35 | 7 | 2 | 0 | 0 | 4 | 11 | 2 | 0 | 1 | 200 | 317 | 257 | 574 | 57 | 269 | 26 | 9 | 264 | 65 | — | — | — | — | — | — |
| 2019 | 17 | ROK MLE | DSL Red Sox 1 | — | 262 | 238 | 40 | 8 | 1 | 1 | 16 | 49 | 6 | 18 | 10 | 168 | 239 | 223 | 462 | 55 | 205 | 19 | 6 | 217 | 33 | — | — | — | — | — | — |
| 2021 | 19 | ROK MLE | 2 teams | — | 214 | 195 | 36 | 11 | 2 | 2 | 15 | 64 | 2 | 12 | 0 | 185 | 248 | 292 | 540 | 108 | 252 | 30 | 7 | 227 | 40 | — | — | — | — | — | — |
| 2022 | 20 | A MLE | Salem Red Sox | — | 494 | 423 | 90 | 16 | 5 | 5 | 65 | 130 | 3 | 28 | 6 | 213 | 323 | 310 | 633 | 97 | 288 | 26 | 13 | 290 | 82 | — | — | — | — | — | — |
| 2023 | 21 | A+ MLE | 2 teams | — | 350 | 328 | 77 | 13 | 1 | 10 | 19 | 105 | 0 | 7 | 4 | 235 | 277 | 372 | 649 | 137 | 306 | 30 | 5 | 280 | 76 | — | — | — | — | — | — |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| Career | — | MLE | — | 1545 | 1370 | 298 | 59 | 9 | 25 | 144 | 395 | 16 | 67 | 21 | 218 | 299 | 328 | 628 | 111 | 283 | 26 | 9 | 224 | 38 | -114 | +5 | +0 | +17 | +33 | -6.0 | |
| / 162G | — | MLE | — | 650 | 576 | 126 | 25 | 4 | 11 | 61 | 166 | 7 | 28 | 9 | 219 | 301 | 333 | 635 | 115 | 284 | 26 | 9 | 224 | 38 | -48 | +2 | +0 | +7 | +14 | -2.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.
2023 A+Greenville Drive · 278 PAwOBA .356 → .272 (−84)K% 22.7% → 30.3%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 22.66% | ÷0.981 | ×1.310 | — | — | 30.27% |
| BB% (unintentional) /PA | 7.55% | ÷1.028 | ×0.600 | — | ×1.027 | 4.53% |
| HBP% /PA | 0.00% | — | ×0.770 | — | ×1.027 | 0.00% |
| Singles /BIP | 26.94% | ÷1.053 | ×0.870 | ×0.978 | ×1.027 | 22.37% |
| Doubles /BIP | 7.77% | ÷1.033 | ×0.780 | ×0.978 | ×1.027 | 5.89% |
| Triples /BIP | 0.52% | ÷1.150 | ×0.850 | ×0.978 | ×1.027 | 0.38% |
| Home runs /BIP | 4.66% | ÷0.931 | ×0.880 | — | ×1.027 | 4.53% |
Factors used: league row South Atlantic League. Park (home-season share, regressed): HR 86, 1B 111, 2B 107, 3B 130, K 96, BB 106 — 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 ×0.978.
Result: wOBA .356 → .272; ISO .172 → .143; BABIP .368 → .298. 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).
2023 AAPortland Sea Dogs · 72 PAwOBA .350 → .313 (−37)K% 23.6% → 28.8%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 23.61% | ÷1.000 | ×1.220 | — | — | 28.81% |
| BB% (unintentional) /PA | 12.50% | ÷1.032 | ×0.700 | — | ×1.050 | 8.90% |
| HBP% /PA | 0.00% | — | ×0.850 | — | ×1.050 | 0.00% |
| Singles /BIP | 27.27% | ÷0.972 | ×0.970 | — | ×1.050 | 28.59% |
| Doubles /BIP | 6.82% | ÷1.144 | ×0.860 | — | ×1.050 | 5.38% |
| Triples /BIP | 0.00% | ÷0.900 | ×0.950 | — | ×1.050 | 0.00% |
| Home runs /BIP | 4.55% | ÷1.048 | ×0.780 | — | ×1.050 | 3.55% |
Factors used: league row EL. Park (home-season share, regressed): HR 110, 1B 94, 2B 129, 3B 80, K 100, BB 106 — applied at half strength. Age: age 21 vs a level average of 24.8 → +5.0% on BB/HBP/hit rates (3.8 yr younger than average).
Result: wOBA .350 → .313; ISO .148 → .118; BABIP .341 → .337. 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 ASalem Red Sox · 494 PAwOBA .354 → .290 (−64)K% 18.0% → 26.4%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 18.02% | ÷0.930 | ×1.360 | — | — | 26.35% |
| BB% (unintentional) /PA | 18.02% | ÷0.967 | ×0.690 | — | ×1.030 | 13.23% |
| HBP% /PA | 0.61% | — | ×0.780 | — | ×1.030 | 0.49% |
| Singles /BIP | 23.70% | ÷1.026 | ×0.920 | ×0.987 | ×1.030 | 21.61% |
| Doubles /BIP | 6.17% | ÷0.950 | ×0.830 | ×0.987 | ×1.030 | 5.48% |
| Triples /BIP | 1.95% | ÷1.106 | ×0.910 | ×0.987 | ×1.030 | 1.63% |
| Home runs /BIP | 1.95% | ÷0.873 | ×0.800 | — | ×1.030 | 1.84% |
Factors used: level-wide A factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 75, 1B 105, 2B 90, 3B 121, K 86, BB 93 — 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 ×0.987.
Result: wOBA .354 → .290; ISO .123 → .106; BABIP .319 → .288. 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 ROKFCL Red Sox · 162 PAwOBA .336 → .230 (−106)K% 22.8% → 32.9%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 22.84% | ÷0.999 | ×1.440 | — | — | 32.93% |
| BB% (unintentional) /PA | 12.96% | ÷0.997 | ×0.620 | — | ×1.008 | 8.12% |
| HBP% /PA | 1.23% | — | ×0.720 | — | ×1.008 | 0.90% |
| Singles /BIP | 18.63% | ÷0.980 | ×0.820 | ×0.980 | ×1.008 | 15.40% |
| Doubles /BIP | 12.75% | ÷1.029 | ×0.720 | ×0.980 | ×1.008 | 8.81% |
| Triples /BIP | 0.98% | ÷0.951 | ×0.720 | ×0.980 | ×1.008 | 0.73% |
| Home runs /BIP | 1.96% | ÷0.951 | ×0.780 | — | ×1.008 | 1.62% |
Factors used: level-wide ROK factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 90, 1B 96, 2B 106, 3B 90, K 100, BB 99 — applied at half strength. Age: age 19 vs a level average of 19.5 → +0.8% on BB/HBP/hit rates (0.5 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.980.
Result: wOBA .336 → .230; ISO .151 → .102; BABIP .330 → .254. 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 ASalem Red Sox · 52 PAwOBA .260 → .216 (−44)K% 15.4% → 21.5%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 15.38% | ÷0.974 | ×1.360 | — | — | 21.48% |
| BB% (unintentional) /PA | 5.77% | ÷1.049 | ×0.690 | — | ×1.045 | 3.97% |
| HBP% /PA | 0.00% | — | ×0.780 | — | ×1.045 | 0.00% |
| Singles /BIP | 17.07% | ÷0.981 | ×0.920 | ×0.963 | ×1.045 | 16.12% |
| Doubles /BIP | 7.32% | ÷1.030 | ×0.830 | ×0.963 | ×1.045 | 5.93% |
| Triples /BIP | 2.44% | ÷0.944 | ×0.910 | ×0.963 | ×1.045 | 2.37% |
| Home runs /BIP | 0.00% | ÷0.858 | ×0.800 | — | ×1.045 | 0.00% |
Factors used: level-wide A factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 72, 1B 96, 2B 106, 3B 89, K 95, BB 110 — applied at half strength. Age: age 19 vs a level average of 22.0 → +4.5% on BB/HBP/hit rates (3.0 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.963.
Result: wOBA .260 → .216; ISO .102 → .084; BABIP .268 → .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).
2019 DSLDSL Red Sox 1 · 262 PAwOBA .332 → .217 (−115)K% 15.3% → 18.6%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 15.27% | ÷1.000 | ×1.220 | — | — | 18.63% |
| BB% (unintentional) /PA | 8.40% | ÷1.000 | ×0.700 | — | ×1.022 | 6.01% |
| HBP% /PA | 2.29% | — | ×0.700 | — | ×1.022 | 1.64% |
| Singles /BIP | 23.81% | ÷1.000 | ×0.680 | ×0.950 | ×1.022 | 15.73% |
| Doubles /BIP | 7.41% | ÷1.000 | ×0.600 | ×0.950 | ×1.022 | 4.32% |
| Triples /BIP | 1.06% | ÷1.000 | ×0.600 | ×0.950 | ×1.022 | 0.62% |
| Home runs /BIP | 1.59% | ÷1.000 | ×0.470 | — | ×1.022 | 0.76% |
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 17 vs a level average of 18.5 → +2.2% on BB/HBP/hit rates (1.5 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.950.
Result: wOBA .332 → .217; ISO .118 → .066; BABIP .323 → .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).
Not traceable per stint: some stints lack the counting stats the component translation needs. Level-wide factors that apply instead — .