Zac Law

PosCF
B/TR/R
Born1996-07-08
Age (2027)31
No MLB projection yet. Career stats below are historical.
Overview
A+LAST SEASON 2019
YearAgeLvl / TeamPAAVG/OBP/SLGHRSBwRC+WARMLE AVG/OBP/SLG
201721INTLPerth Heat53.333/.434/.68932212—
201822A+/A2 orgs217.277/.353/.3974876—.233/.300/.318
201923A+/ROK2 orgs109.211/.306/.2630130—.163/.241/.204
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)
201418 ROKGCL Rays — 116102 26520 8183 50 255327343671 88299 167 299 42 — — — — — —
201519 ROKPrinceton Rays — 287256 691028 144210 128 270332418750 148293 155 328 53 — — — — — —
201620 ABowling Green Hot Rods — 478432 1092034 27956 199 252305340646 88308 206 285 49 — — — — — —
201721 INTLPerth Heat — 5345 15703 3105 21 3334346891.123 356375 196 482 212 — — — — — —
201822 A+Charlotte Stone Crabs — 10388 22221 7144 30 250333352686 102276 147 302 63 — — — — — —
201822 ABowling Green Hot Rods — 11496 29403 8133 50 302370438808 135306 117 343 87 — — — — — —
201923 A+Charlotte Stone Crabs — 8472 15400 7204 10 208313264577 56283 248 273 38 — — — — — —
201923 ROKGCL Rays — 2523 5100 230 00 217280261541 43250 128 252 5 — — — — — —
▸ Career — adjusted (every ACTUAL line translated to park/league-neutral MLB equivalents)
201418 ROK MLEGCL Rays — 116106 21410 4263 50 198248255503 57248 223 231 42 — — — — — —
201519 ROK MLEPrinceton Rays — 287261 54716 96010 128 207261310571 103233 213 246 53 — — — — — —
201620 A MLEBowling Green Hot Rods — 478440 961733 191276 199 218260291551 73280 274 240 49 — — — — — —
201822 A+ MLECharlotte Stone Crabs — 10390 19211 5204 30 211283289572 78242 195 262 63 — — — — — —
201822 A MLEBowling Green Hot Rods — 11499 25302 6183 50 253315343658 91259 165 297 87 — — — — — —
201923 A+ MLECharlotte Stone Crabs — 8474 12300 5274 10 162253203456 41260 326 224 38 — — — — — —
201923 ROK MLEGCL Rays — 2524 4100 140 00 167200208408 42193 164 175 5 — — — — — —
201418 ROK MLEGCL Rays — 116106 21410 4263 50 198248255503 57253 223 231 42 — — — — — —
201418 ROK RAWGCL Rays — 116102 26520 8183 50 255327343671 88299 167 299 42 — — — — — —
201519 ROK MLEPrinceton Rays — 287261 54716 96010 128 207261310571 103244 213 246 53 — — — — — —
201519 ROK RAWPrinceton Rays — 287256 691028 144210 128 270332418750 148293 155 328 53 — — — — — —
201620 A MLEBowling Green Hot Rods — 478440 961733 191276 199 218260291551 73292 274 240 49 — — — — — —
201620 A RAWBowling Green Hot Rods — 478432 1092034 27956 199 252305340646 88308 206 285 49 — — — — — —
201721 INTL MLEPerth Heat — 5345 15703 3105 21 3334346891.123 356375 196 — — — — — — — —
201721 INTL RAWPerth Heat — 5345 15703 3105 21 3334346891.123 356375 196 482 212 — — — — — —
201822 A MLE2 teams — 217189 45514 11387 80 238304339643 101265 185 280 76 — — — — — —
201822 A RAW2 teams — 217184 51624 15277 80 277353397749 120292 127 323 76 — — — — — —
201923 A+ MLE2 teams — 10998 16400 6324 10 163241204445 41239 296 213 30 — — — — — —
201923 A+ RAW2 teams — 10995 20500 9234 10 211306263569 53274 218 268 30 — — — — — —
201418 ROK MLEGCL Rays — 116108 21410 4263 50 194248250498 56248 223 231 42 — — — — — —
201519 ROK MLEPrinceton Rays — 287266 54716 96010 128 203261305565 102233 213 246 53 — — — — — —
201620 A MLEBowling Green Hot Rods — 478450 961733 191276 199 213260284545 71280 274 240 49 — — — — — —
201822 A MLE2 teams — 217197 45514 11387 80 228304325629 96251 185 280 76 — — — — — —
201923 A+ MLE2 teams — 10998 16400 6324 10 163241204445 41245 296 213 30 — — — — — —
▸ Career Totals
Career— MLE — 12601139 24744616 5229335 4718 217272308581 91271 234 235 45 -82 +2 +0 +4 +27 -4.9
/ 162G— MLE — 650588 1272338 2715118 249 216272306578 90270 234 235 45 -42 +1 +0 +2 +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.

2019 A+Charlotte Stone Crabs · 84 PAwOBA .270 → .224 (−45)K% 23.8% → 32.7%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA23.81%÷1.033×1.420——32.73%
BB% (unintentional) /PA8.33%÷1.018×0.750—×0.9986.13%
HBP% /PA4.76%—×0.930—×0.9984.42%
Singles /BIP21.15%÷1.008×0.920—×0.99819.26%
Doubles /BIP7.69%÷1.011×0.960—×0.9987.29%
Triples /BIP0.00%÷0.900×0.810—×0.9980.00%
Home runs /BIP0.00%÷0.939×0.880—×0.9980.00%

Factors used: league row FSL. Park (home-season share, regressed): HR 88, 1B 102, 2B 102, 3B 80, K 107, BB 104 — 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).

Result: wOBA .270 → .224; ISO .056 → .048; BABIP .283 → .260. 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 ROKGCL Rays · 25 PAwOBA .246 → .175 (−71)K% 12.0% → 17.3%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA12.00%÷1.000×1.440——17.28%
BB% (unintentional) /PA8.00%÷1.000×0.620—×0.9654.79%
HBP% /PA0.00%—×0.720—×0.9650.00%
Singles /BIP20.00%÷1.000×0.820—×0.96515.83%
Doubles /BIP5.00%÷1.000×0.720—×0.9653.47%
Triples /BIP0.00%÷1.000×0.720—×0.9650.00%
Home runs /BIP0.00%÷1.000×0.780—×0.9650.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).

Result: wOBA .246 → .175; ISO .043 → .029; BABIP .250 → .193. 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 ABowling Green Hot Rods · 114 PAwOBA .349 → .297 (−52)K% 11.4% → 15.5%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA11.40%÷1.000×1.360——15.51%
BB% (unintentional) /PA7.02%÷0.991×0.690——4.89%
HBP% /PA2.63%—×0.780——2.05%
Singles /BIP26.51%÷1.004×0.920×0.950—23.07%
Doubles /BIP4.82%÷1.057×0.830×0.950—3.60%
Triples /BIP0.00%÷0.900×0.910×0.950—0.00%
Home runs /BIP3.61%÷1.037×0.800——2.79%

Factors used: level-wide A factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 107, 1B 101, 2B 111, 3B 80, K 100, BB 98 — 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 ×0.950.

Result: wOBA .349 → .297; ISO .135 → .110; BABIP .306 → .259. 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+Charlotte Stone Crabs · 103 PAwOBA .303 → .262 (−41)K% 13.6% → 19.6%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA13.59%÷0.983×1.420——19.63%
BB% (unintentional) /PA6.80%÷1.022×0.750—×1.0125.05%
HBP% /PA3.88%—×0.930—×1.0123.65%
Singles /BIP22.97%÷1.031×0.920×0.983×1.01220.40%
Doubles /BIP2.70%÷1.012×0.960×0.983×1.0122.55%
Triples /BIP2.70%÷1.150×0.810×0.983×1.0121.89%
Home runs /BIP1.35%÷0.857×0.880—×1.0121.40%

Factors used: league row FSL. Park (home-season share, regressed): HR 71, 1B 106, 2B 102, 3B 130, K 97, BB 104 — applied at half strength. Age: age 22 vs a level average of 22.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.983.

Result: wOBA .303 → .262; ISO .102 → .088; BABIP .276 → .242. 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 ABowling Green Hot Rods · 478 PAwOBA .282 → .240 (−41)K% 19.9% → 26.5%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA19.87%÷1.018×1.360——26.54%
BB% (unintentional) /PA5.44%÷0.999×0.690—×1.0303.87%
HBP% /PA1.26%—×0.780—×1.0301.01%
Singles /BIP24.33%÷1.007×0.920×0.977×1.03022.36%
Doubles /BIP5.93%÷0.945×0.830×0.977×1.0305.24%
Triples /BIP0.89%÷0.956×0.910×0.977×1.0300.85%
Home runs /BIP1.19%÷1.028×0.800—×1.0300.95%

Factors used: level-wide A factors (no league-specific row for this league/era). Park (home-season share, regressed): HR 106, 1B 101, 2B 89, 3B 91, K 104, BB 100 — 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.977.

Result: wOBA .282 → .240; ISO .088 → .074; BABIP .308 → .280. 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 ROKPrinceton Rays · 287 PAwOBA .321 → .246 (−75)K% 14.6% → 20.8%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA14.63%÷1.000×1.420——20.78%
BB% (unintentional) /PA4.88%÷1.000×0.640—×1.0083.15%
HBP% /PA3.48%—×0.740—×1.0082.60%
Singles /BIP22.90%÷1.000×0.840×0.967×1.00818.74%
Doubles /BIP4.67%÷1.000×0.740×0.967×1.0083.37%
Triples /BIP0.93%÷1.000×0.740×0.967×1.0080.67%
Home runs /BIP3.74%÷1.000×0.800—×1.0083.01%

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 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.967.

Result: wOBA .321 → .246; ISO .148 → .113; BABIP .293 → .233. 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 ROKGCL Rays · 116 PAwOBA .295 → .231 (−64)K% 15.5% → 22.3%
ComponentRawPark ÷Level factor ×GB/FB ×Age ×= MLE
K% /PA15.52%÷1.000×1.440——22.34%
BB% (unintentional) /PA6.03%÷1.000×0.620—×1.0223.83%
HBP% /PA2.59%—×0.720—×1.0221.90%
Singles /BIP22.62%÷1.000×0.820×1.023×1.02219.40%
Doubles /BIP5.95%÷1.000×0.720×1.023×1.0224.48%
Triples /BIP2.38%÷1.000×0.720×1.023×1.0221.79%
Home runs /BIP0.00%÷1.000×0.780—×1.0220.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 18 vs a level average of 19.5 → +2.2% on BB/HBP/hit rates (1.5 yr younger than average). Ground-ball/fly-ball mix moves 1B/2B/3B by ×1.023.

Result: wOBA .295 → .231; ISO .088 → .066; BABIP .299 → .248. 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 — .