David MacKinnon

Pos1B
B/TR/R
Born1994-12-15
Age (2027)32
No MLB projection yet. Career stats below are historical.
Overview
INTLLAST SEASON 2024
YearAgeLvl / TeamPAAVG/OBP/SLGHRSBwRC+WARMLE AVG/OBP/SLG
202126AALAA426.285/.383/.47413287—.236/.310/.366
202227AAAOAK346.318/.422/.585152114—.252/.328/.435
202227MLBOakland Athle…57.140/.232/.1400011-1.3
202429INTLPuerto Rico175.255/.355/.34910102—
202530No MLB games played
202631No MLB games played
Last 3 seasons WAR -1.3
Contract
No contract data on file.

Career Stats + Projections

Real MLB stats plus park-adjusted projections — this season (so far / rest / full), then future seasons and career totals.
basis chips: RAW = as recorded · CTX = with park/league context · A+C = actual + context combined · MLE = level/park-neutral
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.

YearAge LvlTeam MLB% PAAB H2B3BHR BBSOHBP SBCS AVGOBPSLGOPS ISOBABIP K%BB% wOBAwRC+ BATRUNFLDPOSREP WAR
▸ Career — actual stats, one row per stint (as recorded, no adjustments)
201722 ROKOrem Owlz — 157120 47722 25136 10 3925105331.043 142413 816 451 124 — — — — — —
201823 A+Inland Empire 66ers — 377305 872205 60737 00 285414407821 121353 1916 371 92 — — — — — —
201823 ABurlington Bees — 147111 29701 35300 00 261435351787 90350 2024 371 74 — — — — — —
201823 INTLMesa Solar Sox — 5340 7200 12130 10 175365225590 50250 2523 292 84 — — — — — —
201924 A+Inland Empire 66ers — 7757 8100 19180 00 140355158513 18200 2325 271 27 — — — — — —
202126 AARocket City Trash Pandas — 426365 10430013 52836 22 285383474857 189335 1912 379 87 — — — — — —
202227 MLBOakland Athletics — 5750 7000 6170 00 140232140372 206 3011 185 11 -6 +0 -1 -7 +1 -1.3
202227 AAALas Vegas Aviators — 346289 9224415 49633 22 3184225851.007 266356 1814 431 114 — — — — — —
202429 INTLPuerto Rico — 175149 38911 20263 00 255355349704 94296 1511 319 102 — — — — — —
▸ Career Totals (raw MLB only — historical actual)
MLB Career— — 5750 7000 6170 00 140232140372 206 3011 185 11 -6 +0 -1 -7 +1 -1.3
▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents)
201722 ROK MLEOrem Owlz — 157132 41522 15196 10 311405424829 114320 1210 351 124 — — — — — —
201823 A+ MLEInland Empire 66ers — 377322 781705 43947 00 242344342686 99310 2511 304 92 — — — — — —
201823 A MLEBurlington Bees — 147124 25501 23420 00 202327266593 65299 2916 277 74 — — — — — —
201924 A+ MLEInland Empire 66ers — 7762 7100 14240 00 113276129405 16173 3118 208 27 — — — — — —
202126 AA MLERocket City Trash Pandas — 426382 902608 351006 22 236310366676 131291 238 297 87 — — — — — —
202227 MLB MLEOakland Athletics — 5750 7000 6170 00 140232140372 206 3011 185 11 -6 +0 -1 -7 +1 -1.3
202227 AAA MLELas Vegas Aviators — 346306 7718410 32753 22 252328435763 183294 229 336 114 — — — — — —
201722 ROK MLEOrem Owlz — 157132 41522 15196 10 311405424829 114339 1210 351 124 — — — — — —
201722 ROK RAWOrem Owlz — 157120 47722 25136 10 3925105331.043 142413 816 451 124 — — — — — —
201823 A+ MLE3 teams — 577492 1132406 721507 10 230336315651 85313 2612 296 87 — — — — — —
201823 A+ RAW3 teams — 577456 1233106 1071167 10 270415377792 107344 2019 364 87 — — — — — —
201924 A+ MLEInland Empire 66ers — 7762 7100 14240 00 113276129405 16179 3118 208 27 — — — — — —
201924 A+ RAWInland Empire 66ers — 7757 8100 19180 00 140355158513 18200 2325 271 27 — — — — — —
202126 AA MLERocket City Trash Pandas — 426382 902608 351006 22 236310366676 131296 238 297 87 — — — — — —
202126 AA RAWRocket City Trash Pandas — 426365 10430013 52836 22 285383474857 189335 1912 379 87 — — — — — —
202227 AAA MLE2 teams — 403356 8418410 38923 22 236315393708 157285 239 315 99 — — — — — —
202227 AAA RAW2 teams — 403339 9924415 55803 22 292395519915 227336 2014 396 99 — — — — — —
202429 INTL MLEPuerto Rico — 175149 38911 20263 00 255355349704 94296 1511 — — — — — — — —
202429 INTL RAWPuerto Rico — 175149 38911 20263 00 255355349704 94296 1511 319 102 — — — — — —
201722 ROK MLEOrem Owlz — 157135 41522 15196 10 304405415820 111320 1210 351 124 — — — — — —
201823 A+ MLE3 teams — 577493 1132406 721507 10 229336314651 85307 2612 296 87 — — — — — —
201924 A+ MLEInland Empire 66ers — 7763 7100 14240 00 111276127403 16173 3118 208 27 — — — — — —
202126 AA MLERocket City Trash Pandas — 426382 902608 351006 22 236310366676 131291 238 297 87 — — — — — —
202227 AAA MLE2 teams — 403359 8418410 38923 22 234315390705 156282 239 315 99 — — — — — —
▸ Career Totals
▸ Career totals — MLB only (actual + projected)
Career— A+C — 5750 7000 6170 00 140232140372 206 3011 185 71 -6 +0 -1 -7 +1 -1.3
/ 162G— A+C — 650570 80000 681940 00 140232140372 207 3010 185 71 -69 +0 -13 -82 +14 -15.3
Career— MLE — 18151573 37383727 19441125 64 237330350681 113299 2311 273 71 -6 +0 -1 -7 +1 -1.3
/ 162G— MLE — 650563 13530310 691479 21 240332357689 117302 2311 273 71 -69 +0 -13 -82 +14 -15.3

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 AAALas Vegas Aviators · 346 PAwOBA .424 → .336 (−88)K% 18.2% → 21.6%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA18.21%÷1.009×1.200——21.65%
BB% (unintentional) /PA13.29%÷0.992×0.690—×0.9929.17%
HBP% /PA0.87%—×0.940—×0.9920.81%
Singles /BIP21.68%÷0.995×0.930×0.956×0.99219.22%
Doubles /BIP10.62%÷1.088×0.830×0.956×0.9927.68%
Triples /BIP1.77%÷0.900×0.970×0.956×0.9921.81%
Home runs /BIP6.64%÷1.075×0.700—×0.9924.29%

Factors used: league row International League. Park (home-season share, regressed): HR 115, 1B 99, 2B 118, 3B 80, K 102, BB 98 — applied at half strength. Age: age 28 vs a level average of 27.2 → −0.8% on BB/HBP/hit rates (0.8 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×0.956.

Result: wOBA .424 → .336; ISO .266 → .198; BABIP .356 → .294. 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 AARocket City Trash Pandas · 426 PAwOBA .372 → .297 (−74)K% 19.5% → 23.4%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA19.48%÷1.018×1.220——23.35%
BB% (unintentional) /PA12.21%÷0.992×0.690—×0.9788.31%
HBP% /PA1.41%—×0.850—×0.9781.17%
Singles /BIP21.63%÷0.985×0.940×0.962×0.97819.41%
Doubles /BIP10.64%÷0.947×0.870×0.962×0.9789.19%
Triples /BIP0.00%÷1.150×0.920×0.962×0.9780.00%
Home runs /BIP4.61%÷1.249×0.780—×0.9782.82%

Factors used: level-wide AA factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 150, 1B 97, 2B 89, 3B 130, K 104, BB 98 — 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.962.

Result: wOBA .372 → .297; ISO .189 → .138; BABIP .335 → .291. 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 A+Inland Empire 66ers · 77 PAwOBA .270 → .208 (−62)K% 23.4% → 31.4%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA23.38%÷0.997×1.340——31.43%
BB% (unintentional) /PA24.68%÷0.968×0.710—×0.97817.71%
HBP% /PA0.00%—×0.790—×0.9780.00%
Singles /BIP17.95%÷1.024×0.910—×0.97815.61%
Doubles /BIP2.56%÷0.985×0.820—×0.9782.09%
Triples /BIP0.00%÷1.150×0.760—×0.9780.00%
Home runs /BIP0.00%÷0.939×0.920—×0.9780.00%

Factors used: league row CAL. Park (home-season share, regressed): HR 88, 1B 105, 2B 97, 3B 130, K 99, 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).

Result: wOBA .270 → .208; ISO .018 → .014; BABIP .200 → .173. 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+Inland Empire 66ers · 377 PAwOBA .367 → .304 (−63)K% 19.4% → 24.9%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA19.36%÷1.044×1.340——24.86%
BB% (unintentional) /PA15.92%÷0.986×0.710—×0.98811.33%
HBP% /PA1.86%—×0.790—×0.9881.45%
Singles /BIP25.86%÷0.977×0.910×1.005×0.98823.92%
Doubles /BIP9.48%÷1.087×0.820×1.005×0.9887.10%
Triples /BIP0.00%÷0.978×0.760×1.005×0.9880.00%
Home runs /BIP2.16%÷0.978×0.920—×0.9882.00%

Factors used: league row CAL. Park (home-season share, regressed): HR 96, 1B 95, 2B 117, 3B 96, K 109, BB 97 — applied at half strength. Age: age 24 vs a level average of 22.8 → −1.2% on BB/HBP/hit rates (1.2 yr older than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.005.

Result: wOBA .367 → .304; ISO .121 → .101; BABIP .353 → .310. 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 ABurlington Bees · 147 PAwOBA .363 → .277 (−86)K% 20.4% → 28.6%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA20.41%÷0.970×1.360——28.62%
BB% (unintentional) /PA23.81%÷1.042×0.690—×0.98015.46%
HBP% /PA0.00%—×0.780—×0.9800.00%
Singles /BIP25.93%÷1.009×0.920×1.009×0.98023.39%
Doubles /BIP8.64%÷1.147×0.830×1.009×0.9806.19%
Triples /BIP0.00%÷0.900×0.910×1.009×0.9800.00%
Home runs /BIP1.23%÷0.907×0.800—×0.9801.07%

Factors used: level-wide A factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 81, 1B 102, 2B 129, 3B 80, K 94, BB 108 — 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.009.

Result: wOBA .363 → .277; ISO .090 → .070; BABIP .350 → .299. 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 ROKOrem Owlz · 157 PAwOBA .452 → .351 (−101)K% 8.3% → 11.9%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA8.28%÷1.000×1.440——11.92%
BB% (unintentional) /PA15.92%÷1.000×0.610—×0.9659.37%
HBP% /PA3.82%—×0.720—×0.9652.66%
Singles /BIP33.64%÷1.000×0.820×1.004×0.96526.73%
Doubles /BIP6.54%÷1.000×0.720×1.004×0.9654.56%
Triples /BIP1.87%÷1.000×0.720×1.004×0.9651.30%
Home runs /BIP1.87%÷1.000×0.750—×0.9651.35%

Factors used: league row PIO. 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 ×1.004.

Result: wOBA .452 → .351; ISO .142 → .112; BABIP .413 → .320. 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 — .