Brandon Van Horn
| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR | MLE AVG/OBP/SLG |
|---|---|---|---|---|---|---|---|---|---|
| 2017 | 23 | AATL | 305 | .262/.302/.333 | 3 | 11 | 41 | — | .223/.252/.286 |
| 2018 | 24 | A+SF | 405 | .211/.271/.350 | 10 | 8 | 26 | — | .162/.208/.273 |
| 2019 | 25 | AAA/AA/A+SF | 359 | .205/.259/.281 | 3 | 2 | 6 | — | .156/.202/.222 |
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) | |||||||||||||||||||||||||||||||
| 2016 | 22 | ROK | AZL Giants | — | 189 | 160 | 37 | 7 | 2 | 0 | 24 | 47 | 1 | 5 | 5 | 231 | 335 | 300 | 635 | 69 | 316 | 25 | 13 | 291 | 19 | — | — | — | — | — | — |
| 2017 | 23 | A | Augusta GreenJackets | — | 305 | 282 | 74 | 11 | 0 | 3 | 15 | 68 | 1 | 11 | 7 | 262 | 302 | 333 | 635 | 71 | 330 | 22 | 5 | 282 | 41 | — | — | — | — | — | — |
| 2018 | 24 | A+ | San Jose Giants | — | 405 | 369 | 78 | 19 | 1 | 10 | 29 | 108 | 1 | 8 | 8 | 211 | 271 | 350 | 620 | 138 | 268 | 27 | 7 | 275 | 26 | — | — | — | — | — | — |
| 2019 | 25 | AAA | Sacramento River Cats | — | 20 | 20 | 8 | 1 | 0 | 1 | 0 | 8 | 0 | 0 | 0 | 400 | 400 | 600 | 1.000 | 200 | 636 | 40 | 0 | 440 | 85 | — | — | — | — | — | — |
| 2019 | 25 | AA | Richmond Flying Squirrels | — | 147 | 130 | 24 | 3 | 1 | 1 | 7 | 39 | 3 | 0 | 0 | 185 | 243 | 246 | 489 | 62 | 247 | 27 | 5 | 217 | 9 | — | — | — | — | — | — |
| 2019 | 25 | A+ | San Jose Giants | — | 192 | 177 | 35 | 8 | 1 | 1 | 12 | 67 | 2 | 2 | 1 | 198 | 257 | 271 | 528 | 73 | 309 | 35 | 6 | 242 | -5 | — | — | — | — | — | — |
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2016 | 22 | ROK MLE | AZL Giants | — | 189 | 170 | 27 | 5 | 1 | 0 | 14 | 68 | 1 | 5 | 5 | 159 | 227 | 200 | 427 | 41 | 240 | 36 | 7 | 196 | 19 | — | — | — | — | — | — |
| 2017 | 23 | A MLE | Augusta GreenJackets | — | 305 | 287 | 64 | 9 | 0 | 3 | 10 | 95 | 1 | 11 | 7 | 223 | 252 | 286 | 537 | 63 | 301 | 31 | 3 | 229 | 41 | — | — | — | — | — | — |
| 2018 | 24 | A+ MLE | San Jose Giants | — | 405 | 377 | 61 | 13 | 1 | 9 | 21 | 151 | 1 | 8 | 8 | 162 | 208 | 273 | 481 | 111 | 228 | 37 | 5 | 207 | 26 | — | — | — | — | — | — |
| 2019 | 25 | AAA MLE | Sacramento River Cats | — | 20 | 20 | 6 | 1 | 0 | 1 | 0 | 11 | 0 | 0 | 0 | 300 | 300 | 500 | 800 | 200 | 573 | 55 | 0 | 294 | 85 | — | — | — | — | — | — |
| 2019 | 25 | AA MLE | Richmond Flying Squirrels | — | 147 | 132 | 22 | 3 | 1 | 1 | 5 | 49 | 3 | 0 | 0 | 167 | 214 | 227 | 442 | 61 | 219 | 33 | 3 | 182 | 9 | — | — | — | — | — | — |
| 2019 | 25 | A+ MLE | San Jose Giants | — | 192 | 180 | 24 | 5 | 1 | 1 | 9 | 92 | 2 | 2 | 1 | 133 | 183 | 189 | 372 | 56 | 250 | 48 | 5 | 161 | -5 | — | — | — | — | — | — |
| 2016 | 22 | ROK MLE | AZL Giants | — | 189 | 170 | 27 | 5 | 1 | 0 | 14 | 68 | 1 | 5 | 5 | 159 | 227 | 200 | 427 | 41 | 255 | 36 | 7 | 196 | 19 | — | — | — | — | — | — |
| 2016 | 22 | ROK RAW | AZL Giants | — | 189 | 160 | 37 | 7 | 2 | 0 | 24 | 47 | 1 | 5 | 5 | 231 | 335 | 300 | 635 | 69 | 316 | 25 | 13 | 291 | 19 | — | — | — | — | — | — |
| 2017 | 23 | A MLE | Augusta GreenJackets | — | 305 | 287 | 64 | 9 | 0 | 3 | 10 | 95 | 1 | 11 | 7 | 223 | 252 | 286 | 537 | 63 | 316 | 31 | 3 | 229 | 41 | — | — | — | — | — | — |
| 2017 | 23 | A RAW | Augusta GreenJackets | — | 305 | 282 | 74 | 11 | 0 | 3 | 15 | 68 | 1 | 11 | 7 | 262 | 302 | 333 | 635 | 71 | 330 | 22 | 5 | 282 | 41 | — | — | — | — | — | — |
| 2018 | 24 | A+ MLE | San Jose Giants | — | 405 | 377 | 61 | 13 | 1 | 9 | 21 | 151 | 1 | 8 | 8 | 162 | 208 | 273 | 481 | 111 | 236 | 37 | 5 | 207 | 26 | — | — | — | — | — | — |
| 2018 | 24 | A+ RAW | San Jose Giants | — | 405 | 369 | 78 | 19 | 1 | 10 | 29 | 108 | 1 | 8 | 8 | 211 | 271 | 350 | 620 | 138 | 268 | 27 | 7 | 275 | 26 | — | — | — | — | — | — |
| 2019 | 25 | A+ MLE | 3 teams | — | 359 | 332 | 49 | 8 | 1 | 2 | 14 | 152 | 5 | 2 | 1 | 148 | 194 | 196 | 390 | 48 | 258 | 42 | 4 | 177 | 6 | — | — | — | — | — | — |
| 2019 | 25 | A+ RAW | 3 teams | — | 359 | 327 | 67 | 12 | 2 | 3 | 19 | 114 | 5 | 2 | 1 | 205 | 259 | 281 | 541 | 76 | 299 | 32 | 5 | 243 | 6 | — | — | — | — | — | — |
| 2016 | 22 | ROK MLE | AZL Giants | — | 189 | 172 | 27 | 5 | 1 | 0 | 14 | 68 | 1 | 5 | 5 | 157 | 227 | 198 | 425 | 41 | 240 | 36 | 7 | 196 | 19 | — | — | — | — | — | — |
| 2017 | 23 | A MLE | Augusta GreenJackets | — | 305 | 291 | 64 | 9 | 0 | 3 | 10 | 95 | 1 | 11 | 7 | 220 | 252 | 282 | 533 | 62 | 301 | 31 | 3 | 229 | 41 | — | — | — | — | — | — |
| 2018 | 24 | A+ MLE | San Jose Giants | — | 405 | 380 | 61 | 13 | 1 | 9 | 21 | 151 | 1 | 8 | 8 | 161 | 208 | 271 | 479 | 111 | 228 | 37 | 5 | 207 | 26 | — | — | — | — | — | — |
| 2019 | 25 | A+ MLE | 3 teams | — | 359 | 337 | 49 | 8 | 1 | 2 | 14 | 152 | 5 | 2 | 1 | 145 | 194 | 193 | 387 | 47 | 255 | 42 | 4 | 177 | 6 | — | — | — | — | — | — |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| Career | — | MLE | — | 1258 | 1166 | 201 | 35 | 3 | 14 | 59 | 466 | 8 | 26 | 21 | 172 | 217 | 244 | 461 | 71 | 267 | 37 | 5 | 202 | 23 | -115 | -3 | +0 | +13 | +27 | -7.9 | |
| / 162G | — | MLE | — | 650 | 602 | 104 | 18 | 2 | 7 | 30 | 241 | 4 | 13 | 11 | 173 | 217 | 244 | 461 | 71 | 268 | 37 | 5 | 202 | 23 | -60 | -2 | +0 | +7 | +14 | -4.1 | |
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 A+San Jose Giants · 192 PAwOBA .237 → .161 (−76)K% 34.9% → 48.0%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 34.90% | ÷0.975 | ×1.340 | — | — | 47.97% |
| BB% (unintentional) /PA | 6.25% | ÷0.936 | ×0.710 | — | ×0.968 | 4.59% |
| HBP% /PA | 1.04% | — | ×0.790 | — | ×0.968 | 0.80% |
| Singles /BIP | 22.73% | ÷1.017 | ×0.910 | ×0.950 | ×0.968 | 18.70% |
| Doubles /BIP | 7.27% | ÷0.973 | ×0.820 | ×0.950 | ×0.968 | 5.64% |
| Triples /BIP | 0.91% | ÷0.903 | ×0.760 | ×0.950 | ×0.968 | 0.70% |
| Home runs /BIP | 0.91% | ÷0.947 | ×0.920 | — | ×0.968 | 0.85% |
Factors used: league row CAL. Park (home-season share, regressed): HR 89, 1B 103, 2B 95, 3B 81, K 95, BB 87 — 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.950.
Result: wOBA .237 → .161; ISO .073 → .049; BABIP .309 → .250. 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 AARichmond Flying Squirrels · 147 PAwOBA .215 → .182 (−33)K% 26.5% → 33.2%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 26.53% | ÷0.975 | ×1.220 | — | — | 33.19% |
| BB% (unintentional) /PA | 4.76% | ÷1.011 | ×0.700 | — | ×0.988 | 3.26% |
| HBP% /PA | 2.04% | — | ×0.850 | — | ×0.988 | 1.71% |
| Singles /BIP | 20.88% | ÷1.020 | ×0.970 | ×0.950 | ×0.988 | 18.63% |
| Doubles /BIP | 3.30% | ÷0.916 | ×0.860 | ×0.950 | ×0.988 | 2.91% |
| Triples /BIP | 1.10% | ÷1.147 | ×0.950 | ×0.950 | ×0.988 | 0.85% |
| Home runs /BIP | 1.10% | ÷0.890 | ×0.780 | — | ×0.988 | 0.95% |
Factors used: league row EL. Park (home-season share, regressed): HR 78, 1B 104, 2B 83, 3B 129, K 95, BB 102 — 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). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.950.
Result: wOBA .215 → .182; ISO .062 → .052; BABIP .247 → .219. 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 AAASacramento River Cats · 20 PAwOBA .426 → .294 (−133)K% 40.0% → 53.1%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 40.00% | ÷0.971 | ×1.290 | — | — | 53.12% |
| BB% (unintentional) /PA | 0.00% | ÷0.980 | ×0.710 | — | ×1.018 | 0.00% |
| HBP% /PA | 0.00% | — | ×0.980 | — | ×1.018 | 0.00% |
| Singles /BIP | 50.00% | ÷0.982 | ×0.900 | — | ×1.018 | 46.64% |
| Doubles /BIP | 8.33% | ÷0.981 | ×0.810 | — | ×1.018 | 7.01% |
| Triples /BIP | 0.00% | ÷1.008 | ×0.810 | — | ×1.018 | 0.00% |
| Home runs /BIP | 8.33% | ÷1.027 | ×0.780 | — | ×1.018 | 6.44% |
Factors used: league row PCL. Park (home-season share, regressed): HR 105, 1B 96, 2B 96, 3B 102, K 94, BB 96 — applied at half strength. Age: age 26 vs a level average of 27.2 → +1.8% on BB/HBP/hit rates (1.2 yr younger than average).
Result: wOBA .426 → .294; ISO .200 → .123; BABIP .636 → .573. 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 A+San Jose Giants · 405 PAwOBA .269 → .207 (−63)K% 26.7% → 37.3%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 26.67% | ÷0.959 | ×1.340 | — | — | 37.26% |
| BB% (unintentional) /PA | 7.16% | ÷0.971 | ×0.710 | — | ×0.978 | 5.12% |
| HBP% /PA | 0.25% | — | ×0.790 | — | ×0.978 | 0.19% |
| Singles /BIP | 18.39% | ÷0.987 | ×0.910 | ×0.974 | ×0.978 | 16.16% |
| Doubles /BIP | 7.28% | ÷0.991 | ×0.820 | ×0.974 | ×0.978 | 5.74% |
| Triples /BIP | 0.38% | ÷0.900 | ×0.760 | ×0.974 | ×0.978 | 0.31% |
| Home runs /BIP | 3.83% | ÷0.924 | ×0.920 | — | ×0.978 | 3.73% |
Factors used: league row CAL. Park (home-season share, regressed): HR 85, 1B 97, 2B 98, 3B 80, K 92, BB 94 — applied at half strength. Age: age 25 vs a level average of 22.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.974.
Result: wOBA .269 → .207; ISO .138 → .111; BABIP .268 → .228. 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 AAugusta GreenJackets · 305 PAwOBA .278 → .229 (−49)K% 22.3% → 31.3%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 22.30% | ÷0.954 | ×1.340 | — | — | 31.32% |
| BB% (unintentional) /PA | 4.92% | ÷0.997 | ×0.660 | — | ×0.980 | 3.19% |
| HBP% /PA | 0.33% | — | ×0.770 | — | ×0.980 | 0.25% |
| Singles /BIP | 28.04% | ÷1.010 | ×0.920 | ×1.036 | ×0.980 | 25.94% |
| Doubles /BIP | 5.14% | ÷0.989 | ×0.820 | ×1.036 | ×0.980 | 4.33% |
| Triples /BIP | 0.00% | ÷1.016 | ×0.940 | ×1.036 | ×0.980 | 0.00% |
| Home runs /BIP | 1.40% | ÷0.818 | ×0.820 | — | ×0.980 | 1.38% |
Factors used: league row SAL. Park (home-season share, regressed): HR 64, 1B 102, 2B 98, 3B 103, K 91, BB 99 — 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). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.036.
Result: wOBA .278 → .229; ISO .071 → .060; BABIP .330 → .301. 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 ROKAZL Giants · 189 PAwOBA .291 → .196 (−95)K% 24.9% → 35.8%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 24.87% | ÷1.000 | ×1.440 | — | — | 35.81% |
| BB% (unintentional) /PA | 12.70% | ÷1.000 | ×0.620 | — | ×0.965 | 7.60% |
| HBP% /PA | 0.53% | — | ×0.720 | — | ×0.965 | 0.37% |
| Singles /BIP | 24.78% | ÷1.000 | ×0.820 | ×0.990 | ×0.965 | 19.42% |
| Doubles /BIP | 6.19% | ÷1.000 | ×0.720 | ×0.990 | ×0.965 | 4.26% |
| Triples /BIP | 1.77% | ÷1.000 | ×0.720 | ×0.990 | ×0.965 | 1.22% |
| Home runs /BIP | 0.00% | ÷1.000 | ×0.780 | — | ×0.965 | 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 23 vs a level average of 19.5 → −3.5% on BB/HBP/hit rates (3.5 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.990.
Result: wOBA .291 → .196; ISO .069 → .044; BABIP .316 → .240. 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).