AdjHRRate_PA = HitterSkill × PitchingFactor × GameEnv × ConfirmedLineupFactor HitterSkill = HitterBaseRaw × FBIndex × BarrelIndex
HRProb_Game = 1 − (1 − AdjHRRate_PA) ^ ExpectedPA
CareerR = (CareerHR + 150 × LgHRRate) / (CareerPA + 150)
Y1R = (HR_365 + 80 × LgHRRate) / (PA_365 + 80)
L10R = (HR_10 + 50 × LgHRRate) / (PA_10 + 50)
SplitR = (HR_vsHand + 100 × LgHRRate) / (PA_vsHand + 100)
— vs same SP handedness (vr / vl)
TimeR = (HR_daynight + 100 × LgHRRate) / (PA_daynight + 100)
— day vs night for today’s game
BvPR = (HR_vsSP + 150 × LgHRRate) / (PA_vsSP + 150)
HitterBaseRaw =
0.18 × CareerR
+ 0.42 × Y1R
+ 0.10 × L10R
+ 0.22 × SplitR
+ 0.05 × TimeR
+ 0.03 × BvPR
FBIndex = (HitterFBpct / LeagueFBpct) ^ 0.4 BarrelIndex = (HitterBarrelPct / LeagueBarrelPct) ^ 0.7
PitchingFactor =
(StarterSplitHRFactor ^ 0.7)
× (PitcherFBFactor ^ 0.3)
× (BullpenFactor ^ 0.2)
StarterSplitHRFactor = (StarterHRAllowedRate_split / LeagueHRAllowedRate) ^ 0.5
— cap ~0.85–1.20
PitcherFBFactor = (PitcherFBAllowedPct / LeagueFBAllowedPct) ^ 0.30
— cap ~0.92–1.10
BullpenFactor = (BullpenHRAllowedRate / LeagueHRAllowedRate) ^ 0.25
StaffHRRate = 0.65 × StarterHRAllowedRate_split + 0.35 × BullpenHRAllowedRate StaffFactor = (StaffHRRate / LeagueHRAllowedRate) ^ 0.5
GameEnv = ParkFactor × WindFactor × TempFactor × HumidityFactor × RoofFactor WindFactor = 1 + (0.012 × WindOutMPH) − (0.010 × WindInMPH) — cap ~0.85–1.15; 1.0 if roof closed TempFactor = 1 + 0.003 × (TempF − 70) — cap ~0.90–1.08; 1.0 if roof closed HumidityFactor = 1 + 0.001 × (HumidityPct − 50) — cap ~0.97–1.03; 1.0 if roof closed ParkFactor — L/R handed park HR factor; typical range ~0.85–1.20
ConfirmedLineupFactor: Confirmed starter = 1.00 Projected, not sure = 0.85 Not in lineup = 0.00 ExpectedPA by lineup spot: 1 → 4.75 2 → 4.65 3 → 4.55 4 → 4.45 5 → 4.30 6 → 4.15 7 → 4.00 8 → 3.90 9 → 3.80
HRProb_Game = 1 − (1 − AdjHRRate_PA) ^ ExpectedPA AdjHRRate_PA = HitterSkill × PitchingFactor × GameEnv × ConfirmedLineupFactor HitterSkill = HitterBaseRaw × FBIndex × BarrelIndex