Every likely starter across today's slate, ranked by a self-calibrating model of their probability of getting at least one hit — matchup, contact and plate skills, recent form, platoon and park, and history against today's pitcher.
How it works. A principled base — season average (regressed) combined with the opposing pitcher's average-against via a log5 / odds-ratio matchup, scaled by ballpark and expected at-bats — is then nudged by a self-calibrating layer that learns from real outcomes. Each night grade.py scores the previous day's picks against actual box scores and refits the factor weights. Factors:
It is a model estimate from public data, not betting advice — lineups and pitchers can change before first pitch.