Willi Castro
2B Colorado Rockies| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR |
|---|---|---|---|---|---|---|---|---|
| 2024 | 27 | MLBMIN | 635 | .247/.333/.385 | 12 | 14 | 105 | 2.6 |
| 2025 | 28 | MLBCHC | 454 | .226/.313/.366 | 11 | 10 | 93 | 0.1 |
| 2026 | 29 | MLBCOL | 477 | .260/.333/.417 | 15 | 10 | 103 | 1.5 |
| 2027PROJ | 30 | MLBCOL | 397 | .249/.329/.403 | 11 | 9 | 97 | 0.8 |
| 2028PROJ | 31 | MLBCOL | 379 | .243/.323/.390 | 10 | 5 | 92 | 0.2 |
Tools · Splits · Contract
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) | |||||||||||||||||||||||||||||||
| 2014 | 17 | ROK | AZL Indians | — | 170 | 155 | 37 | 5 | 3 | 2 | 6 | 33 | 4 | 9 | 4 | 239 | 285 | 348 | 633 | 110 | 292 | 19 | 4 | 276 | 30 | — | — | — | — | — | — |
| 2016 | 19 | A | Lake County Captains | — | 548 | 518 | 134 | 21 | 8 | 7 | 19 | 96 | 3 | 16 | 11 | 259 | 289 | 371 | 660 | 112 | 302 | 18 | 3 | 289 | 52 | — | — | — | — | — | — |
| 2017 | 20 | A+ | Lynchburg Hillcats | — | 510 | 469 | 136 | 24 | 3 | 11 | 28 | 90 | 7 | 19 | 9 | 290 | 339 | 424 | 764 | 134 | 336 | 18 | 5 | 337 | 84 | — | — | — | — | — | — |
| 2017 | 20 | INTL | Leones del Escogido | — | 31 | 29 | 13 | 1 | 0 | 1 | 2 | 5 | 0 | 1 | 0 | 448 | 484 | 586 | 1.070 | 138 | 522 | 16 | 6 | 475 | 207 | — | — | — | — | — | — |
| 2018 | 21 | AAA | Toledo Mud Hens | — | 21 | 21 | 6 | 0 | 0 | 0 | 0 | 5 | 0 | 1 | 0 | 286 | 286 | 286 | 571 | 375 | 24 | 0 | 259 | 42 | — | — | — | — | — | — | |
| 2018 | 21 | AA | Erie SeaWolves | — | 524 | 476 | 125 | 29 | 4 | 9 | 34 | 109 | 4 | 17 | 5 | 263 | 317 | 397 | 714 | 134 | 323 | 21 | 6 | 313 | 74 | — | — | — | — | — | — |
| 2018 | 21 | INTL | Leones del Escogido | — | 103 | 97 | 23 | 4 | 3 | 2 | 3 | 22 | 1 | 1 | 0 | 237 | 267 | 402 | 669 | 165 | 284 | 21 | 3 | 288 | 81 | — | — | — | — | — | — |
| 2019 | 22 | MLB | Detroit Tigers | — | 110 | 100 | 23 | 6 | 1 | 1 | 6 | 34 | 2 | 0 | 1 | 230 | 287 | 340 | 627 | 110 | 333 | 31 | 5 | 278 | 77 | -3 | -0 | -1 | +8 | +2 | 0.6 |
| 2019 | 22 | AAA | Toledo Mud Hens | — | 525 | 465 | 140 | 28 | 8 | 11 | 37 | 110 | 14 | 17 | 4 | 301 | 370 | 467 | 837 | 166 | 369 | 21 | 7 | 366 | 104 | — | — | — | — | — | — |
| 2019 | 22 | INTL | Leones del Escogido | — | 94 | 86 | 19 | 2 | 0 | 0 | 6 | 17 | 0 | 1 | 0 | 221 | 272 | 244 | 516 | 23 | 268 | 18 | 6 | 236 | 46 | — | — | — | — | — | — |
| 2020 | 23 | MLB | Detroit Tigers | — | 140 | 129 | 45 | 4 | 2 | 6 | 7 | 38 | 1 | 0 | 1 | 349 | 387 | 550 | 937 | 202 | 448 | 27 | 5 | 402 | 164 | +11 | -0 | -2 | +2 | +3 | 1.3 |
| 2021 | 24 | MLB | Detroit Tigers | — | 450 | 413 | 91 | 15 | 6 | 9 | 23 | 109 | 8 | 9 | 4 | 220 | 275 | 351 | 626 | 131 | 275 | 24 | 5 | 277 | 76 | -13 | +0 | +1 | +2 | +10 | -0.0 |
| 2021 | 24 | AAA | Toledo Mud Hens | — | 23 | 23 | 9 | 2 | 0 | 1 | 0 | 2 | 0 | 2 | 0 | 391 | 391 | 609 | 1.000 | 217 | 400 | 9 | 0 | 438 | 138 | — | — | — | — | — | — |
| 2021 | 24 | INTL | Leones del Escogido | — | 31 | 29 | 5 | 0 | 0 | 1 | 0 | 5 | 2 | 1 | 0 | 172 | 226 | 276 | 502 | 103 | 174 | 16 | 0 | 231 | 43 | — | — | — | — | — | — |
| 2022 | 25 | MLB | Detroit Tigers | — | 392 | 365 | 88 | 18 | 2 | 8 | 15 | 82 | 8 | 9 | 4 | 241 | 286 | 367 | 653 | 126 | 288 | 21 | 4 | 290 | 86 | -7 | +0 | +0 | -5 | +8 | -0.2 |
| 2022 | 25 | AAA | Toledo Mud Hens | — | 36 | 34 | 9 | 2 | 0 | 0 | 2 | 10 | 0 | 3 | 1 | 265 | 306 | 324 | 629 | 59 | 375 | 28 | 6 | 286 | 46 | — | — | — | — | — | — |
| 2023 | 26 | MLB | Minnesota Twins | — | 409 | 358 | 92 | 18 | 5 | 9 | 34 | 99 | 12 | 33 | 5 | 257 | 342 | 411 | 752 | 154 | 328 | 24 | 8 | 334 | 111 | +5 | +5 | +2 | -4 | +9 | 1.7 |
| 2024 | 27 | MLB | Minnesota Twins | — | 635 | 558 | 138 | 31 | 5 | 12 | 51 | 150 | 21 | 14 | 9 | 247 | 333 | 385 | 719 | 138 | 315 | 24 | 8 | 323 | 105 | +4 | -1 | +2 | +7 | +14 | 2.6 |
| 2025 | 28 | MLB | Chicago Cubs | — | 454 | 402 | 91 | 17 | 3 | 11 | 40 | 111 | 11 | 10 | 4 | 226 | 313 | 366 | 679 | 139 | 286 | 24 | 9 | 308 | 93 | -4 | +0 | -7 | +2 | +10 | 0.1 |
| 2026 | 29 | MLB | Colorado Rockies | — | 477 | 427 | 111 | 20 | 1 | 15 | 41 | 129 | 6 | 10 | 6 | 260 | 333 | 417 | 750 | 157 | 336 | 27 | 9 | 334 | 103 | +2 | -0 | +1 | +2 | +10 | 1.5 |
| ▸ Career Totals (raw MLB only — historical actual) | |||||||||||||||||||||||||||||||
| MLB Career | — | — | 3067 | 2752 | 679 | 129 | 25 | 71 | 217 | 752 | 69 | 85 | 34 | 247 | 318 | 389 | 707 | 142 | 312 | 25 | 7 | 315 | 99 | -2 | +3 | -3 | +12 | +66 | 7.9 | ||
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2014 | 17 | ROK MLE | AZL Indians | — | 170 | 157 | 31 | 4 | 2 | 2 | 4 | 48 | 4 | 9 | 4 | 197 | 236 | 287 | 523 | 89 | 252 | 28 | 2 | 213 | 30 | — | — | — | — | — | — |
| 2016 | 19 | A MLE | Lake County Captains | — | 548 | 524 | 119 | 18 | 7 | 4 | 13 | 127 | 3 | 16 | 11 | 227 | 250 | 311 | 561 | 84 | 284 | 23 | 2 | 245 | 52 | — | — | — | — | — | — |
| 2017 | 20 | A+ MLE | Lynchburg Hillcats | — | 510 | 480 | 125 | 18 | 2 | 11 | 17 | 122 | 7 | 19 | 9 | 260 | 296 | 375 | 671 | 115 | 321 | 24 | 3 | 292 | 84 | — | — | — | — | — | — |
| 2018 | 21 | AAA MLE | Toledo Mud Hens | — | 21 | 21 | 5 | 0 | 0 | 0 | 0 | 6 | 0 | 1 | 0 | 238 | 238 | 238 | 476 | 364 | 29 | 0 | 230 | 42 | — | — | — | — | — | — | |
| 2018 | 21 | AA MLE | Erie SeaWolves | — | 524 | 486 | 120 | 27 | 4 | 7 | 24 | 133 | 4 | 17 | 5 | 247 | 288 | 362 | 650 | 115 | 316 | 25 | 5 | 277 | 74 | — | — | — | — | — | — |
| 2019 | 22 | MLB MLE | Detroit Tigers | — | 110 | 100 | 23 | 6 | 1 | 1 | 6 | 34 | 2 | 0 | 1 | 230 | 287 | 340 | 627 | 110 | 333 | 31 | 5 | 283 | 77 | -3 | -0 | -1 | +8 | +2 | 0.6 |
| 2019 | 22 | AAA MLE | Toledo Mud Hens | — | 525 | 475 | 128 | 24 | 7 | 11 | 27 | 125 | 14 | 17 | 4 | 269 | 328 | 419 | 746 | 149 | 330 | 24 | 5 | 322 | 104 | — | — | — | — | — | — |
| 2020 | 23 | MLB MLE | Detroit Tigers | — | 140 | 129 | 45 | 4 | 2 | 6 | 7 | 38 | 1 | 0 | 1 | 349 | 387 | 550 | 937 | 202 | 448 | 27 | 5 | 410 | 164 | +11 | -0 | -2 | +2 | +3 | 1.3 |
| 2021 | 24 | MLB MLE | Detroit Tigers | — | 450 | 414 | 92 | 15 | 6 | 9 | 22 | 109 | 8 | 9 | 4 | 222 | 275 | 353 | 627 | 130 | 275 | 24 | 5 | 280 | 76 | -13 | +0 | +1 | +2 | +10 | -0.0 |
| 2021 | 24 | AAA MLE | Toledo Mud Hens | — | 23 | 23 | 9 | 2 | 0 | 1 | 0 | 2 | 0 | 2 | 0 | 391 | 391 | 609 | 1.000 | 217 | 375 | 9 | 0 | 372 | 138 | — | — | — | — | — | — |
| 2022 | 25 | MLB MLE | Detroit Tigers | — | 392 | 365 | 89 | 18 | 2 | 8 | 15 | 82 | 8 | 9 | 4 | 244 | 289 | 370 | 659 | 126 | 288 | 21 | 4 | 295 | 86 | -7 | +0 | +0 | -5 | +8 | -0.2 |
| 2022 | 25 | AAA MLE | Toledo Mud Hens | — | 36 | 35 | 8 | 2 | 0 | 0 | 1 | 12 | 0 | 3 | 1 | 229 | 250 | 286 | 536 | 57 | 346 | 33 | 3 | 236 | 46 | — | — | — | — | — | — |
| 2023 | 26 | MLB MLE | Minnesota Twins | — | 409 | 359 | 92 | 18 | 5 | 9 | 33 | 99 | 12 | 33 | 5 | 256 | 339 | 409 | 749 | 153 | 328 | 24 | 8 | 332 | 111 | +5 | +5 | +2 | -4 | +9 | 1.7 |
| 2024 | 27 | MLB MLE | Minnesota Twins | — | 635 | 558 | 138 | 31 | 5 | 12 | 51 | 150 | 21 | 14 | 9 | 247 | 333 | 385 | 719 | 138 | 315 | 24 | 8 | 323 | 105 | +4 | -1 | +2 | +7 | +14 | 2.6 |
| 2025 | 28 | MLB MLE | Chicago Cubs | — | 454 | 403 | 91 | 17 | 3 | 11 | 39 | 111 | 11 | 10 | 4 | 226 | 311 | 365 | 676 | 139 | 286 | 24 | 9 | 305 | 93 | -4 | +0 | -7 | +2 | +10 | 0.1 |
| 2026 | 29 | MLB MLE | Colorado Rockies | — | 477 | 427 | 106 | 19 | 1 | 13 | 41 | 129 | 6 | 10 | 6 | 248 | 323 | 389 | 712 | 141 | 336 | 27 | 9 | 321 | 103 | +2 | -0 | +1 | +2 | +10 | 1.5 |
| 2014 | 17 | ROK MLE | AZL Indians | — | 170 | 157 | 31 | 4 | 2 | 2 | 4 | 48 | 4 | 9 | 4 | 197 | 236 | 287 | 523 | 89 | 271 | 28 | 2 | 213 | 30 | — | — | — | — | — | — |
| 2014 | 17 | ROK RAW | AZL Indians | — | 170 | 155 | 37 | 5 | 3 | 2 | 6 | 33 | 4 | 9 | 4 | 239 | 285 | 348 | 633 | 110 | 292 | 19 | 4 | 276 | 30 | — | — | — | — | — | — |
| 2016 | 19 | A MLE | Lake County Captains | — | 548 | 524 | 119 | 18 | 7 | 4 | 13 | 127 | 3 | 16 | 11 | 227 | 250 | 311 | 561 | 84 | 289 | 23 | 2 | 245 | 52 | — | — | — | — | — | — |
| 2016 | 19 | A RAW | Lake County Captains | — | 548 | 518 | 134 | 21 | 8 | 7 | 19 | 96 | 3 | 16 | 11 | 259 | 289 | 371 | 660 | 112 | 302 | 18 | 3 | 289 | 52 | — | — | — | — | — | — |
| 2017 | 20 | A+ MLE | 2 teams | — | 541 | 510 | 133 | 19 | 2 | 12 | 18 | 129 | 7 | 20 | 9 | 261 | 295 | 376 | 672 | 116 | 324 | 24 | 3 | 292 | 84 | — | — | — | — | — | — |
| 2017 | 20 | A+ RAW | 2 teams | — | 541 | 498 | 149 | 25 | 3 | 12 | 30 | 95 | 7 | 20 | 9 | 299 | 348 | 434 | 781 | 135 | 347 | 18 | 6 | 345 | 84 | — | — | — | — | — | — |
| 2018 | 21 | AA MLE | 3 teams | — | 648 | 602 | 149 | 32 | 5 | 8 | 29 | 165 | 5 | 19 | 5 | 248 | 288 | 357 | 645 | 110 | 327 | 25 | 4 | 275 | 72 | — | — | — | — | — | — |
| 2018 | 21 | AA RAW | 3 teams | — | 648 | 594 | 154 | 33 | 7 | 11 | 37 | 136 | 5 | 19 | 5 | 259 | 308 | 394 | 702 | 135 | 318 | 21 | 6 | 308 | 72 | — | — | — | — | — | — |
| 2019 | 22 | AAA MLE | 3 teams | — | 729 | 662 | 173 | 34 | 9 | 14 | 38 | 182 | 16 | 18 | 5 | 261 | 317 | 403 | 720 | 142 | 335 | 25 | 5 | 315 | 99 | — | — | — | — | — | — |
| 2019 | 22 | AAA RAW | 3 teams | — | 729 | 651 | 182 | 36 | 9 | 12 | 49 | 161 | 16 | 18 | 5 | 280 | 345 | 418 | 763 | 138 | 349 | 22 | 7 | 336 | 99 | — | — | — | — | — | — |
| 2020 | 23 | MLB MLE | Detroit Tigers | — | 140 | 129 | 45 | 4 | 2 | 6 | 7 | 38 | 1 | 0 | 1 | 349 | 387 | 550 | 937 | 202 | 448 | 27 | 5 | 410 | 164 | +11 | -0 | -2 | +2 | +3 | 1.3 |
| 2020 | 23 | MLB RAW | Detroit Tigers | — | 140 | 129 | 45 | 4 | 2 | 6 | 7 | 38 | 1 | 0 | 1 | 349 | 387 | 550 | 937 | 202 | 448 | 27 | 5 | 402 | 164 | +11 | -0 | -2 | +2 | +3 | 1.3 |
| 2021 | 24 | MLB MLE | 3 teams | — | 504 | 465 | 107 | 18 | 6 | 11 | 23 | 119 | 10 | 12 | 4 | 230 | 281 | 366 | 647 | 135 | 284 | 24 | 5 | 285 | 79 | -13 | +1 | +1 | +2 | +11 | 0.2 |
| 2021 | 24 | MLB RAW | 3 teams | — | 504 | 465 | 105 | 17 | 6 | 11 | 23 | 116 | 10 | 12 | 4 | 226 | 277 | 359 | 636 | 133 | 276 | 23 | 5 | 282 | 79 | -13 | +1 | +1 | +2 | +11 | 0.2 |
| 2022 | 25 | MLB MLE | 2 teams | — | 428 | 400 | 97 | 20 | 2 | 8 | 16 | 94 | 8 | 12 | 5 | 242 | 285 | 362 | 648 | 120 | 296 | 22 | 4 | 290 | 82 | -9 | +0 | +0 | -5 | +9 | -0.4 |
| 2022 | 25 | MLB RAW | 2 teams | — | 428 | 399 | 97 | 20 | 2 | 8 | 17 | 92 | 8 | 12 | 5 | 243 | 288 | 363 | 651 | 120 | 295 | 21 | 4 | 290 | 82 | -9 | +0 | +0 | -5 | +9 | -0.4 |
| 2023 | 26 | MLB MLE | Minnesota Twins | — | 409 | 359 | 92 | 18 | 5 | 9 | 33 | 99 | 12 | 33 | 5 | 256 | 339 | 409 | 749 | 153 | 327 | 24 | 8 | 332 | 111 | +5 | +5 | +2 | -4 | +9 | 1.7 |
| 2023 | 26 | MLB RAW | Minnesota Twins | — | 409 | 358 | 92 | 18 | 5 | 9 | 34 | 99 | 12 | 33 | 5 | 257 | 342 | 411 | 752 | 154 | 328 | 24 | 8 | 334 | 111 | +5 | +5 | +2 | -4 | +9 | 1.7 |
| 2024 | 27 | MLB MLE | Minnesota Twins | — | 635 | 558 | 138 | 31 | 5 | 12 | 51 | 150 | 21 | 14 | 9 | 247 | 333 | 385 | 719 | 138 | 315 | 24 | 8 | 323 | 105 | +4 | -1 | +2 | +7 | +14 | 2.6 |
| 2024 | 27 | MLB RAW | Minnesota Twins | — | 635 | 558 | 138 | 31 | 5 | 12 | 51 | 150 | 21 | 14 | 9 | 247 | 333 | 385 | 719 | 138 | 315 | 24 | 8 | 323 | 105 | +4 | -1 | +2 | +7 | +14 | 2.6 |
| 2025 | 28 | MLB MLE | Chicago Cubs | — | 454 | 403 | 91 | 17 | 3 | 11 | 39 | 111 | 11 | 10 | 4 | 226 | 311 | 365 | 676 | 139 | 285 | 24 | 9 | 305 | 93 | -4 | +0 | -7 | +2 | +10 | 0.1 |
| 2025 | 28 | MLB RAW | Chicago Cubs | — | 454 | 402 | 91 | 17 | 3 | 11 | 40 | 111 | 11 | 10 | 4 | 226 | 313 | 366 | 679 | 139 | 286 | 24 | 9 | 308 | 93 | -4 | +0 | -7 | +2 | +10 | 0.1 |
| 2026 | 29 | MLB MLE | Colorado Rockies | — | 477 | 427 | 106 | 19 | 1 | 13 | 41 | 129 | 6 | 10 | 6 | 248 | 323 | 389 | 712 | 141 | 323 | 27 | 9 | 321 | 103 | +2 | -0 | +1 | +2 | +10 | 1.5 |
| 2026 | 29 | MLB RAW | Colorado Rockies | — | 477 | 427 | 111 | 20 | 1 | 15 | 41 | 129 | 6 | 10 | 6 | 260 | 333 | 417 | 750 | 157 | 336 | 27 | 9 | 334 | 103 | +2 | -0 | +1 | +2 | +10 | 1.5 |
| 2014 | 17 | ROK MLE | AZL Indians | — | 170 | 160 | 31 | 4 | 2 | 2 | 4 | 48 | 4 | 9 | 4 | 194 | 236 | 281 | 518 | 87 | 252 | 28 | 2 | 213 | 30 | — | — | — | — | — | — |
| 2016 | 19 | A MLE | Lake County Captains | — | 548 | 527 | 119 | 18 | 7 | 4 | 13 | 127 | 3 | 16 | 11 | 226 | 250 | 309 | 559 | 83 | 284 | 23 | 2 | 245 | 52 | — | — | — | — | — | — |
| 2017 | 20 | A+ MLE | 2 teams | — | 541 | 511 | 133 | 19 | 2 | 12 | 18 | 129 | 7 | 20 | 9 | 260 | 295 | 376 | 671 | 115 | 321 | 24 | 3 | 292 | 84 | — | — | — | — | — | — |
| 2018 | 21 | AA MLE | 3 teams | — | 648 | 609 | 149 | 32 | 5 | 8 | 29 | 165 | 5 | 19 | 5 | 245 | 288 | 353 | 641 | 108 | 318 | 25 | 4 | 275 | 72 | — | — | — | — | — | — |
| 2019 | 22 | AAA MLE | 3 teams | — | 729 | 669 | 173 | 34 | 9 | 14 | 38 | 182 | 16 | 18 | 5 | 259 | 317 | 399 | 716 | 141 | 331 | 25 | 5 | 315 | 99 | — | — | — | — | — | — |
| 2020 | 23 | MLB MLE | Detroit Tigers | — | 140 | 131 | 45 | 4 | 2 | 6 | 7 | 38 | 1 | 0 | 1 | 344 | 387 | 542 | 929 | 198 | 448 | 27 | 5 | 410 | 164 | — | — | — | — | — | — |
| 2021 | 24 | MLB MLE | 3 teams | — | 504 | 466 | 107 | 18 | 6 | 11 | 23 | 119 | 10 | 12 | 4 | 230 | 281 | 365 | 646 | 135 | 280 | 24 | 5 | 285 | 79 | — | — | — | — | — | — |
| 2022 | 25 | MLB MLE | 2 teams | — | 428 | 401 | 97 | 20 | 2 | 8 | 16 | 94 | 8 | 12 | 5 | 242 | 285 | 362 | 647 | 120 | 293 | 22 | 4 | 290 | 82 | — | — | — | — | — | — |
| 2023 | 26 | MLB MLE | Minnesota Twins | — | 409 | 361 | 92 | 18 | 5 | 9 | 33 | 99 | 12 | 33 | 5 | 255 | 339 | 407 | 746 | 152 | 328 | 24 | 8 | 332 | 111 | — | — | — | — | — | — |
| 2024 | 27 | MLB MLE | Minnesota Twins | — | 635 | 558 | 138 | 31 | 5 | 12 | 51 | 150 | 21 | 14 | 9 | 247 | 333 | 385 | 719 | 138 | 315 | 24 | 8 | 323 | 105 | — | — | — | — | — | — |
| 2025 | 28 | MLB MLE | Chicago Cubs | — | 454 | 401 | 91 | 17 | 3 | 11 | 39 | 111 | 11 | 10 | 4 | 227 | 311 | 367 | 678 | 140 | 286 | 24 | 9 | 305 | 93 | — | — | — | — | — | — |
| 2026 | 29 | MLB MLE | Colorado Rockies | — | 477 | 427 | 106 | 19 | 1 | 13 | 41 | 129 | 6 | 10 | 6 | 248 | 323 | 389 | 712 | 141 | 336 | 27 | 9 | 321 | 103 | — | — | — | — | — | — |
| ▸ Model inputs — neutral MLE (past 3 seasons) | |||||||||||||||||||||||||||||||
| 2024 | 27 | MLB MLE | Minnesota Twins | — | 635 | 558 | 138 | 31 | 5 | 12 | 51 | 150 | 21 | 14 | 9 | 247 | 333 | 385 | 719 | 138 | 315 | 24 | 8 | 323 | 105 | — | — | — | — | — | — |
| 2025 | 28 | MLB MLE | Chicago Cubs | — | 454 | 401 | 91 | 17 | 3 | 11 | 39 | 111 | 11 | 10 | 4 | 227 | 311 | 367 | 678 | 140 | 286 | 24 | 9 | 305 | 93 | — | — | — | — | — | — |
| 2026 | 29 | MLB MLE | Colorado Rockies | — | 477 | 427 | 106 | 19 | 1 | 13 | 41 | 129 | 6 | 10 | 6 | 248 | 323 | 389 | 712 | 141 | 336 | 27 | 9 | 321 | 103 | — | — | — | — | — | — |
| ▸ 2027 season | |||||||||||||||||||||||||||||||
| ▸ 2027 — full MLE projection (neutral park, full availability) | |||||||||||||||||||||||||||||||
| 2027 | 30 | MLB MLE | COL | 100% | 481 | 428 | 101 | 19 | 2 | 12 | 41 | 122 | 9 | 11 | 3 | 237 | 318 | 374 | 692 | 137 | 300 | 25 | 9 | 311 | 97 | -2 | +1 | -2 | +2 | +10 | 0.7 |
| ▸ 2027 — real world (MLB) | |||||||||||||||||||||||||||||||
| 2027 | 30 | MLB CTX | COL | 100% | 397 | 352 | 87 | 16 | 2 | 11 | 34 | 100 | 8 | 9 | 2 | 249 | 329 | 403 | 732 | 154 | 315 | 25 | 9 | 327 | 97 | -2 | +1 | -2 | +1 | +9 | 0.8 |
| ▸ Career projection (2028+) — MLB context, MLB playing time (PA × MLB%) | |||||||||||||||||||||||||||||||
| 2028 | 31 | MLB MLE | COL | 100% | 379 | 337 | 77 | 14 | 1 | 9 | 32 | 97 | 7 | 5 | 2 | 232 | 312 | 362 | 674 | 131 | 296 | 26 | 8 | 304 | 92 | -4 | +0 | -4 | +1 | +8 | 0.2 |
| 2028 | 31 | MLB CTX | COL | 100% | 379 | 337 | 82 | 15 | 2 | 10 | 32 | 97 | 7 | 5 | 2 | 243 | 323 | 390 | 712 | 146 | 310 | 26 | 8 | 319 | 92 | -4 | +0 | -4 | +1 | +8 | 0.2 |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| ▸ Career totals — MLB only (actual + projected) | |||||||||||||||||||||||||||||||
| Career | — | A+C | — | 3446 | 3089 | 761 | 144 | 27 | 81 | 249 | 849 | 76 | 90 | 36 | 246 | 318 | 389 | 707 | 143 | 312 | 25 | 7 | 316 | 89 | -6 | +4 | -7 | +14 | +75 | 8.0 | |
| / 162G | — | A+C | — | 650 | 583 | 143 | 27 | 5 | 15 | 47 | 160 | 14 | 17 | 7 | 245 | 317 | 386 | 703 | 141 | 311 | 25 | 7 | 316 | 89 | -1 | +1 | -1 | +3 | +14 | 1.5 | |
| Career | — | MLE | — | 6459 | 5885 | 1442 | 264 | 52 | 129 | 378 | 1588 | 119 | 187 | 72 | 245 | 304 | 373 | 677 | 128 | 312 | 25 | 6 | 299 | 89 | -7 | +5 | -9 | +15 | +83 | 8.8 | |
| / 162G | — | MLE | — | 650 | 592 | 145 | 27 | 5 | 13 | 38 | 160 | 12 | 19 | 7 | 245 | 304 | 373 | 677 | 128 | 312 | 25 | 6 | 299 | 89 | -1 | +1 | -2 | +3 | +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.
2022 AAAToledo Mud Hens · 36 PAwOBA .279 → .236 (−43)K% 27.8% → 33.1%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 27.78% | ÷1.008 | ×1.200 | — | — | 33.08% |
| BB% (unintentional) /PA | 5.56% | ÷0.964 | ×0.690 | — | ×1.033 | 4.11% |
| HBP% /PA | 0.00% | — | ×0.940 | — | ×1.033 | 0.00% |
| Singles /BIP | 29.17% | ÷1.015 | ×0.930 | — | ×1.033 | 27.60% |
| Doubles /BIP | 8.33% | ÷1.015 | ×0.830 | — | ×1.033 | 7.04% |
| Triples /BIP | 0.00% | ÷1.150 | ×0.970 | — | ×1.033 | 0.00% |
| Home runs /BIP | 0.00% | ÷1.026 | ×0.700 | — | ×1.033 | 0.00% |
Factors used: league row International League. Park (home-season share, regressed): HR 105, 1B 103, 2B 103, 3B 130, K 102, BB 93 — applied at half strength. Age: age 25 vs a level average of 27.2 → +3.3% on BB/HBP/hit rates (2.2 yr younger than average).
Result: wOBA .279 → .236; ISO .059 → .047; BABIP .375 → .346. 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 AAAToledo Mud Hens · 23 PAwOBA .425 → .372 (−53)K% 8.7% → 10.4%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 8.70% | ÷1.000 | ×1.200 | — | — | 10.44% |
| BB% (unintentional) /PA | 0.00% | ÷1.038 | ×0.690 | — | ×1.048 | 0.00% |
| HBP% /PA | 0.00% | — | ×0.940 | — | ×1.048 | 0.00% |
| Singles /BIP | 28.57% | ÷0.991 | ×0.930 | — | ×1.048 | 28.10% |
| Doubles /BIP | 9.52% | ÷1.013 | ×0.830 | — | ×1.048 | 8.18% |
| Triples /BIP | 0.00% | ÷0.981 | ×0.920 | — | ×1.048 | 0.00% |
| Home runs /BIP | 4.76% | ÷1.052 | ×0.700 | — | ×1.048 | 3.32% |
Factors used: level-wide AAA factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 110, 1B 98, 2B 103, 3B 96, K 100, BB 108 — applied at half strength. Age: age 24 vs a level average of 27.2 → +4.8% on BB/HBP/hit rates (3.2 yr younger than average).
Result: wOBA .425 → .372; ISO .217 → .162; BABIP .400 → .375. 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 AAAToledo Mud Hens · 525 PAwOBA .360 → .322 (−38)K% 21.0% → 23.8%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 20.95% | ÷1.056 | ×1.200 | — | — | 23.82% |
| BB% (unintentional) /PA | 7.05% | ÷1.004 | ×0.690 | — | ×1.050 | 5.09% |
| HBP% /PA | 2.67% | — | ×0.940 | — | ×1.050 | 2.63% |
| Singles /BIP | 26.20% | ÷1.013 | ×0.930 | ×0.950 | ×1.050 | 23.99% |
| Doubles /BIP | 7.89% | ÷0.995 | ×0.830 | ×0.950 | ×1.050 | 6.56% |
| Triples /BIP | 2.25% | ÷1.096 | ×0.970 | ×0.950 | ×1.050 | 1.99% |
| Home runs /BIP | 3.10% | ÷0.888 | ×0.840 | — | ×1.050 | 3.08% |
Factors used: league row IL. Park (home-season share, regressed): HR 78, 1B 103, 2B 99, 3B 119, K 111, BB 101 — applied at half strength. Age: age 22 vs a level average of 27.2 → +5.0% on BB/HBP/hit rates (5.2 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.950.
Result: wOBA .360 → .322; ISO .166 → .153; BABIP .369 → .330. 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 AAErie SeaWolves · 524 PAwOBA .305 → .277 (−28)K% 20.8% → 25.4%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 20.80% | ÷0.999 | ×1.220 | — | — | 25.41% |
| BB% (unintentional) /PA | 6.30% | ÷1.007 | ×0.700 | — | ×1.050 | 4.60% |
| HBP% /PA | 0.76% | — | ×0.850 | — | ×1.050 | 0.68% |
| Singles /BIP | 22.62% | ÷1.016 | ×0.970 | ×0.998 | ×1.050 | 22.62% |
| Doubles /BIP | 7.90% | ÷0.974 | ×0.860 | ×0.998 | ×1.050 | 7.31% |
| Triples /BIP | 1.09% | ÷0.901 | ×0.950 | ×0.998 | ×1.050 | 1.20% |
| Home runs /BIP | 2.45% | ÷1.112 | ×0.780 | — | ×1.050 | 1.81% |
Factors used: league row EL. Park (home-season share, regressed): HR 122, 1B 103, 2B 95, 3B 80, K 100, BB 101 — 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). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.998.
Result: wOBA .305 → .277; ISO .134 → .116; BABIP .323 → .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).
2018 AAAToledo Mud Hens · 21 PAwOBA .251 → .230 (−21)K% 23.8% → 28.3%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 23.81% | ÷1.011 | ×1.200 | — | — | 28.27% |
| BB% (unintentional) /PA | 0.00% | ÷0.980 | ×0.690 | — | ×1.050 | 0.00% |
| HBP% /PA | 0.00% | — | ×0.940 | — | ×1.050 | 0.00% |
| Singles /BIP | 37.50% | ÷1.005 | ×0.930 | — | ×1.050 | 36.43% |
| Doubles /BIP | 0.00% | ÷1.038 | ×0.830 | — | ×1.050 | 0.00% |
| Triples /BIP | 0.00% | ÷1.038 | ×0.970 | — | ×1.050 | 0.00% |
| Home runs /BIP | 0.00% | ÷0.893 | ×0.840 | — | ×1.050 | 0.00% |
Factors used: league row IL. Park (home-season share, regressed): HR 79, 1B 101, 2B 108, 3B 108, K 102, BB 96 — applied at half strength. Age: age 21 vs a level average of 27.2 → +5.0% on BB/HBP/hit rates (6.2 yr younger than average).
Result: wOBA .251 → .230; ISO .000 → .000; BABIP .375 → .364. 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 · 510 PAwOBA .330 → .292 (−37)K% 17.6% → 23.9%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 17.65% | ÷1.048 | ×1.420 | — | — | 23.92% |
| BB% (unintentional) /PA | 5.29% | ÷1.008 | ×0.630 | — | ×1.042 | 3.45% |
| HBP% /PA | 1.37% | — | ×0.860 | — | ×1.042 | 1.23% |
| Singles /BIP | 25.86% | ÷0.978 | ×0.940 | ×0.996 | ×1.042 | 25.80% |
| Doubles /BIP | 6.33% | ÷1.084 | ×0.830 | ×0.996 | ×1.042 | 5.03% |
| Triples /BIP | 0.79% | ÷1.070 | ×0.800 | ×0.996 | ×1.042 | 0.61% |
| Home runs /BIP | 2.90% | ÷0.902 | ×0.900 | — | ×1.042 | 3.02% |
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 20 vs a level average of 22.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.996.
Result: wOBA .330 → .292; ISO .134 → .119; BABIP .336 → .321. 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 ALake County Captains · 548 PAwOBA .283 → .245 (−38)K% 17.5% → 23.1%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 17.52% | ÷1.033 | ×1.360 | — | — | 23.06% |
| BB% (unintentional) /PA | 3.10% | ÷0.986 | ×0.690 | — | ×1.045 | 2.27% |
| HBP% /PA | 0.55% | — | ×0.780 | — | ×1.045 | 0.45% |
| Singles /BIP | 23.22% | ÷1.001 | ×0.920 | ×0.994 | ×1.045 | 22.17% |
| Doubles /BIP | 4.98% | ÷0.973 | ×0.830 | ×0.994 | ×1.045 | 4.41% |
| Triples /BIP | 1.90% | ÷0.981 | ×0.910 | ×0.994 | ×1.045 | 1.83% |
| Home runs /BIP | 1.66% | ÷1.274 | ×0.800 | — | ×1.045 | 1.09% |
Factors used: level-wide A factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 155, 1B 100, 2B 95, 3B 96, K 107, BB 97 — 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.994.
Result: wOBA .283 → .245; ISO .112 → .089; BABIP .302 → .284. 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).
2014 ROKAZL Indians · 170 PAwOBA .269 → .213 (−56)K% 19.4% → 28.0%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 19.41% | ÷1.000 | ×1.440 | — | — | 27.95% |
| BB% (unintentional) /PA | 3.53% | ÷1.000 | ×0.620 | — | ×1.038 | 2.27% |
| HBP% /PA | 2.35% | — | ×0.720 | — | ×1.038 | 1.76% |
| Singles /BIP | 22.13% | ÷1.000 | ×0.820 | ×1.050 | ×1.038 | 19.77% |
| Doubles /BIP | 4.10% | ÷1.000 | ×0.720 | ×1.050 | ×1.038 | 3.21% |
| Triples /BIP | 2.46% | ÷1.000 | ×0.720 | ×1.050 | ×1.038 | 1.93% |
| Home runs /BIP | 1.64% | ÷1.000 | ×0.780 | — | ×1.038 | 1.33% |
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 17 vs a level average of 19.5 → +3.8% on BB/HBP/hit rates (2.5 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.050.
Result: wOBA .269 → .213; ISO .110 → .082; BABIP .292 → .252. 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 — .