Mac James
| Year | Age | Lvl / Team | PA | AVG/OBP/SLG | HR | SB | wRC+ | WAR | MLE AVG/OBP/SLG |
|---|---|---|---|---|---|---|---|---|---|
| 2017 | 24 | AATB | 172 | .240/.304/.292 | 1 | 0 | 43 | — | .222/.268/.272 |
| 2018 | 25 | AAA/AATB | 193 | .192/.293/.210 | 0 | 1 | 26 | — | .183/.251/.201 |
| 2019 | 26 | AAATB | 236 | .222/.325/.305 | 4 | 1 | 47 | — | .189/.265/.250 |
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) | |||||||||||||||||||||||||||||||
| 2015 | 22 | A | Bowling Green Hot Rods | — | 357 | 323 | 83 | 14 | 0 | 3 | 25 | 49 | 3 | 2 | 1 | 257 | 316 | 328 | 644 | 71 | 290 | 14 | 7 | 290 | 49 | — | — | — | — | — | — |
| 2016 | 23 | A+ | Charlotte Stone Crabs | — | 394 | 356 | 85 | 11 | 1 | 1 | 30 | 54 | 3 | 1 | 3 | 239 | 303 | 284 | 587 | 45 | 276 | 14 | 8 | 269 | 37 | — | — | — | — | — | — |
| 2017 | 24 | AA | Montgomery Biscuits | — | 172 | 154 | 37 | 5 | 0 | 1 | 13 | 30 | 1 | 0 | 3 | 240 | 304 | 292 | 596 | 52 | 288 | 17 | 8 | 270 | 43 | — | — | — | — | — | — |
| 2018 | 25 | AAA | Durham Bulls | — | 44 | 42 | 6 | 0 | 0 | 0 | 1 | 7 | 0 | 0 | 0 | 143 | 163 | 143 | 306 | 167 | 16 | 2 | 139 | -26 | — | — | — | — | — | — | |
| 2018 | 25 | AA | Montgomery Biscuits | — | 149 | 125 | 26 | 3 | 0 | 0 | 23 | 20 | 0 | 1 | 2 | 208 | 331 | 232 | 563 | 24 | 245 | 13 | 15 | 273 | 42 | — | — | — | — | — | — |
| 2019 | 26 | AAA | Durham Bulls | — | 236 | 203 | 45 | 5 | 0 | 4 | 30 | 53 | 1 | 1 | 1 | 222 | 325 | 305 | 630 | 84 | 277 | 22 | 13 | 292 | 47 | — | — | — | — | — | — |
| ▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents) | |||||||||||||||||||||||||||||||
| 2015 | 22 | A MLE | Bowling Green Hot Rods | — | 357 | 332 | 74 | 11 | 0 | 2 | 16 | 69 | 3 | 2 | 1 | 223 | 265 | 274 | 539 | 51 | 264 | 19 | 4 | 240 | 49 | — | — | — | — | — | — |
| 2016 | 23 | A+ MLE | Charlotte Stone Crabs | — | 394 | 364 | 75 | 8 | 1 | 1 | 22 | 79 | 3 | 1 | 3 | 206 | 257 | 242 | 499 | 36 | 253 | 20 | 6 | 223 | 37 | — | — | — | — | — | — |
| 2017 | 24 | AA MLE | Montgomery Biscuits | — | 172 | 158 | 35 | 5 | 0 | 1 | 9 | 37 | 1 | 0 | 3 | 222 | 268 | 272 | 540 | 51 | 263 | 22 | 5 | 232 | 43 | — | — | — | — | — | — |
| 2018 | 25 | AAA MLE | Durham Bulls | — | 44 | 42 | 6 | 0 | 0 | 0 | 1 | 8 | 0 | 0 | 0 | 143 | 163 | 143 | 306 | 160 | 18 | 2 | 130 | -26 | — | — | — | — | — | — | |
| 2018 | 25 | AA MLE | Montgomery Biscuits | — | 149 | 133 | 26 | 3 | 0 | 0 | 15 | 23 | 0 | 1 | 2 | 195 | 277 | 218 | 495 | 23 | 231 | 15 | 10 | 231 | 42 | — | — | — | — | — | — |
| 2019 | 26 | AAA MLE | Durham Bulls | — | 236 | 212 | 40 | 4 | 0 | 3 | 21 | 62 | 1 | 1 | 1 | 189 | 265 | 250 | 515 | 61 | 247 | 26 | 9 | 238 | 47 | — | — | — | — | — | — |
| 2015 | 22 | A MLE | Bowling Green Hot Rods | — | 357 | 332 | 74 | 11 | 0 | 2 | 16 | 69 | 3 | 2 | 1 | 223 | 265 | 274 | 539 | 51 | 271 | 19 | 4 | 240 | 49 | — | — | — | — | — | — |
| 2015 | 22 | A RAW | Bowling Green Hot Rods | — | 357 | 323 | 83 | 14 | 0 | 3 | 25 | 49 | 3 | 2 | 1 | 257 | 316 | 328 | 644 | 71 | 290 | 14 | 7 | 290 | 49 | — | — | — | — | — | — |
| 2016 | 23 | A+ MLE | Charlotte Stone Crabs | — | 394 | 364 | 75 | 8 | 1 | 1 | 22 | 79 | 3 | 1 | 3 | 206 | 257 | 242 | 499 | 36 | 258 | 20 | 6 | 223 | 37 | — | — | — | — | — | — |
| 2016 | 23 | A+ RAW | Charlotte Stone Crabs | — | 394 | 356 | 85 | 11 | 1 | 1 | 30 | 54 | 3 | 1 | 3 | 239 | 303 | 284 | 587 | 45 | 276 | 14 | 8 | 269 | 37 | — | — | — | — | — | — |
| 2017 | 24 | AA MLE | Montgomery Biscuits | — | 172 | 158 | 35 | 5 | 0 | 1 | 9 | 37 | 1 | 0 | 3 | 222 | 268 | 272 | 540 | 51 | 279 | 22 | 5 | 232 | 43 | — | — | — | — | — | — |
| 2017 | 24 | AA RAW | Montgomery Biscuits | — | 172 | 154 | 37 | 5 | 0 | 1 | 13 | 30 | 1 | 0 | 3 | 240 | 304 | 292 | 596 | 52 | 288 | 17 | 8 | 270 | 43 | — | — | — | — | — | — |
| 2018 | 25 | AA MLE | 2 teams | — | 193 | 175 | 32 | 3 | 0 | 0 | 16 | 31 | 0 | 1 | 2 | 183 | 251 | 200 | 451 | 17 | 219 | 16 | 8 | 208 | 27 | — | — | — | — | — | — |
| 2018 | 25 | AA RAW | 2 teams | — | 193 | 167 | 32 | 3 | 0 | 0 | 24 | 27 | 0 | 1 | 2 | 192 | 293 | 210 | 503 | 18 | 225 | 14 | 12 | 243 | 27 | — | — | — | — | — | — |
| 2019 | 26 | AAA MLE | Durham Bulls | — | 236 | 212 | 40 | 4 | 0 | 3 | 21 | 62 | 1 | 1 | 1 | 189 | 265 | 250 | 515 | 61 | 248 | 26 | 9 | 238 | 47 | — | — | — | — | — | — |
| 2019 | 26 | AAA RAW | Durham Bulls | — | 236 | 203 | 45 | 5 | 0 | 4 | 30 | 53 | 1 | 1 | 1 | 222 | 325 | 305 | 630 | 84 | 277 | 22 | 13 | 292 | 47 | — | — | — | — | — | — |
| 2015 | 22 | A MLE | Bowling Green Hot Rods | — | 357 | 335 | 74 | 11 | 0 | 2 | 16 | 69 | 3 | 2 | 1 | 221 | 265 | 272 | 537 | 51 | 264 | 19 | 4 | 240 | 49 | — | — | — | — | — | — |
| 2016 | 23 | A+ MLE | Charlotte Stone Crabs | — | 394 | 366 | 75 | 8 | 1 | 1 | 22 | 79 | 3 | 1 | 3 | 205 | 257 | 240 | 498 | 36 | 253 | 20 | 6 | 223 | 37 | — | — | — | — | — | — |
| 2017 | 24 | AA MLE | Montgomery Biscuits | — | 172 | 160 | 35 | 5 | 0 | 1 | 9 | 37 | 1 | 0 | 3 | 219 | 268 | 269 | 537 | 50 | 263 | 22 | 5 | 232 | 43 | — | — | — | — | — | — |
| 2018 | 25 | AA MLE | 2 teams | — | 193 | 175 | 32 | 3 | 0 | 0 | 16 | 31 | 0 | 1 | 2 | 183 | 251 | 200 | 451 | 17 | 215 | 16 | 8 | 208 | 27 | — | — | — | — | — | — |
| 2019 | 26 | AAA MLE | Durham Bulls | — | 236 | 212 | 40 | 4 | 0 | 3 | 21 | 62 | 1 | 1 | 1 | 189 | 265 | 250 | 515 | 61 | 247 | 26 | 9 | 238 | 47 | — | — | — | — | — | — |
| ▸ Career Totals | |||||||||||||||||||||||||||||||
| Career | — | MLE | — | 1352 | 1241 | 256 | 31 | 1 | 7 | 84 | 278 | 8 | 5 | 10 | 206 | 261 | 250 | 511 | 44 | 257 | 21 | 6 | 229 | 41 | -95 | -3 | +0 | +24 | +29 | -4.5 | |
| / 162G | — | MLE | — | 650 | 597 | 122 | 15 | 0 | 3 | 40 | 134 | 4 | 2 | 5 | 204 | 259 | 245 | 504 | 40 | 255 | 21 | 6 | 229 | 41 | -45 | -2 | +0 | +12 | +14 | -2.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.
2019 AAADurham Bulls · 236 PAwOBA .288 → .238 (−50)K% 22.5% → 26.4%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 22.46% | ÷1.020 | ×1.200 | — | — | 26.42% |
| BB% (unintentional) /PA | 12.71% | ÷0.998 | ×0.690 | — | ×1.018 | 8.95% |
| HBP% /PA | 0.42% | — | ×0.940 | — | ×1.018 | 0.41% |
| Singles /BIP | 24.00% | ÷0.986 | ×0.930 | ×0.950 | ×1.018 | 21.88% |
| Doubles /BIP | 3.33% | ÷1.006 | ×0.830 | ×0.950 | ×1.018 | 2.66% |
| Triples /BIP | 0.00% | ÷1.025 | ×0.970 | ×0.950 | ×1.018 | 0.00% |
| Home runs /BIP | 2.67% | ÷1.128 | ×0.840 | — | ×1.018 | 2.02% |
Factors used: league row IL. Park (home-season share, regressed): HR 126, 1B 97, 2B 101, 3B 105, K 104, BB 100 — 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). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.950.
Result: wOBA .288 → .238; ISO .084 → .065; BABIP .277 → .247. 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 AAMontgomery Biscuits · 149 PAwOBA .269 → .231 (−38)K% 13.4% → 15.5%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 13.42% | ÷1.055 | ×1.220 | — | — | 15.52% |
| BB% (unintentional) /PA | 15.44% | ÷1.031 | ×0.680 | — | ×0.998 | 10.16% |
| HBP% /PA | 0.00% | — | ×0.840 | — | ×0.998 | 0.00% |
| Singles /BIP | 21.90% | ÷0.965 | ×0.920 | ×0.996 | ×0.998 | 20.77% |
| Doubles /BIP | 2.86% | ÷1.007 | ×0.910 | ×0.996 | ×0.998 | 2.57% |
| Triples /BIP | 0.00% | ÷1.010 | ×0.880 | ×0.996 | ×0.998 | 0.00% |
| Home runs /BIP | 0.00% | ÷0.984 | ×0.800 | — | ×0.998 | 0.00% |
Factors used: league row SL. Park (home-season share, regressed): HR 97, 1B 93, 2B 101, 3B 102, K 111, BB 106 — applied at half strength. Age: age 25 vs a level average of 24.8 → −0.2% on BB/HBP/hit rates (0.2 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.996.
Result: wOBA .269 → .231; ISO .024 → .023; BABIP .245 → .231. 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 AAADurham Bulls · 44 PAwOBA .139 → .130 (−9)K% 15.9% → 18.5%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 15.91% | ÷1.032 | ×1.200 | — | — | 18.50% |
| BB% (unintentional) /PA | 2.27% | ÷0.986 | ×0.690 | — | ×1.033 | 1.64% |
| HBP% /PA | 0.00% | — | ×0.940 | — | ×1.033 | 0.00% |
| Singles /BIP | 17.14% | ÷1.052 | ×0.930 | ×1.050 | ×1.033 | 16.44% |
| Doubles /BIP | 0.00% | ÷1.091 | ×0.830 | ×1.050 | ×1.033 | 0.00% |
| Triples /BIP | 0.00% | ÷0.993 | ×0.970 | ×1.050 | ×1.033 | 0.00% |
| Home runs /BIP | 0.00% | ÷0.970 | ×0.840 | — | ×1.033 | 0.00% |
Factors used: league row IL. Park (home-season share, regressed): HR 94, 1B 110, 2B 118, 3B 99, K 106, BB 97 — 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). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.050.
Result: wOBA .139 → .130; ISO .000 → .000; BABIP .167 → .160. 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 AAMontgomery Biscuits · 172 PAwOBA .266 → .232 (−34)K% 17.4% → 21.4%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 17.44% | ÷0.994 | ×1.220 | — | — | 21.41% |
| BB% (unintentional) /PA | 7.56% | ÷1.018 | ×0.680 | — | ×1.012 | 5.11% |
| HBP% /PA | 0.58% | — | ×0.840 | — | ×1.012 | 0.49% |
| Singles /BIP | 25.00% | ÷1.013 | ×0.920 | ×0.995 | ×1.012 | 22.84% |
| Doubles /BIP | 4.03% | ÷0.986 | ×0.910 | ×0.995 | ×1.012 | 3.75% |
| Triples /BIP | 0.00% | ÷1.146 | ×0.880 | ×0.995 | ×1.012 | 0.00% |
| Home runs /BIP | 0.81% | ÷1.008 | ×0.800 | — | ×1.012 | 0.65% |
Factors used: league row SL. Park (home-season share, regressed): HR 102, 1B 103, 2B 97, 3B 129, K 99, BB 104 — applied at half strength. Age: age 24 vs a level average of 24.8 → +1.2% on BB/HBP/hit rates (0.8 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.995.
Result: wOBA .266 → .232; ISO .052 → .046; BABIP .288 → .263. 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+Charlotte Stone Crabs · 394 PAwOBA .265 → .223 (−42)K% 13.7% → 20.0%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 13.71% | ÷0.971 | ×1.420 | — | — | 20.04% |
| BB% (unintentional) /PA | 7.61% | ÷1.040 | ×0.750 | — | ×0.998 | 5.48% |
| HBP% /PA | 0.76% | — | ×0.930 | — | ×0.998 | 0.71% |
| Singles /BIP | 23.84% | ÷1.011 | ×0.920 | ×1.038 | ×0.998 | 22.49% |
| Doubles /BIP | 3.64% | ÷1.290 | ×0.960 | ×1.038 | ×0.998 | 2.81% |
| Triples /BIP | 0.33% | ÷1.150 | ×0.810 | ×1.038 | ×0.998 | 0.24% |
| Home runs /BIP | 0.33% | ÷1.142 | ×0.880 | — | ×0.998 | 0.25% |
Factors used: league row FSL. Park (home-season share, regressed): HR 128, 1B 102, 2B 158, 3B 130, K 94, BB 108 — applied at half strength. Age: age 23 vs a level average of 22.8 → −0.2% on BB/HBP/hit rates (0.2 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.038.
Result: wOBA .265 → .223; ISO .045 → .033; BABIP .276 → .253. 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 ABowling Green Hot Rods · 357 PAwOBA .287 → .240 (−47)K% 13.7% → 19.3%
| Component | Raw | Park ÷ | Level factor × | GB/FB × | Age × | = MLE |
|---|---|---|---|---|---|---|
| K% /PA | 13.73% | ÷0.968 | ×1.360 | — | — | 19.28% |
| BB% (unintentional) /PA | 7.00% | ÷1.068 | ×0.690 | — | — | 4.52% |
| HBP% /PA | 0.84% | — | ×0.780 | — | — | 0.66% |
| Singles /BIP | 24.09% | ÷1.005 | ×0.920 | ×1.029 | — | 22.70% |
| Doubles /BIP | 5.11% | ÷1.090 | ×0.830 | ×1.029 | — | 4.00% |
| Triples /BIP | 0.00% | ÷0.972 | ×0.910 | ×1.029 | — | 0.00% |
| Home runs /BIP | 1.09% | ÷1.130 | ×0.800 | — | — | 0.78% |
Factors used: level-wide A factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 126, 1B 101, 2B 118, 3B 94, K 94, BB 114 — 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.029.
Result: wOBA .287 → .240; ISO .071 → .053; BABIP .290 → .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).