MLB Betting Analyzer

Thursday, May 21 2026  |  Run at 7:22 PM
Game Bets · NRFI · K Props · Batter Props · Injuries · Weather
Odds API Quota
8252 / 20000 requests used (11748 remaining)

PERFORMANCE

Auto-verified via MLB Stats API

Recent (14d)

RecordWin%P&L
Overall88W–84L–0P51%-15.15 uLast 14 days • 172 settled
Grade A32W–24L–0P57%-0.64 u
Grade B56W–60L–0P48%-14.51 u

All-time

RecordWin%P&L
Overall503W–481L–7P51%-74.33 uAll-time • 991 settled
Grade A110W–83L–0P57%-0.72 u
Grade B393W–398L–7P50%-73.61 u
6 pending
DateTypePlayLineOddsSizeResultP&LActual
2026-05-20K PropJack Leiter5.5-130-LOSS-1.000Jack Leiter: 5.0 (line 5.5)
2026-05-20K PropAaron Nola5.5-119-WIN+0.840Aaron Nola: 5.0 (line 5.5)
2026-05-20K PropMike Burrows4.5-146-LOSS-1.000Mike Burrows: 2.0 (line 4.5)
2026-05-20K PropMichael Wacha4.5-120-WIN+0.833Michael Wacha: 8.0 (line 4.5)

MARKET TRUST TIERS

13 market(s) with settled tracker history
MarketTrustSeason NSeason WRSeason P&L14d N14d WR14d P&LGrade A NGrade A WR
K Prop✅ TRUSTED19355%-7.32u6060%+2.82u10659%
Pitcher Hits Allowed✅ TRUSTED11361%+10.80u3956%+2.79u0-
Run Line✅ TRUSTED7954%+1.04u2846%-5.79u3070%
F5 ML👀 WATCH2848%+4.54u0-+0.00u0-
Batter Total Bases👀 WATCH2045%-3.23u1127%-5.69u0-
Batter Hits👀 WATCH1486%+2.82u1100%+0.36u0-
No HR U1.5👀 WATCH922%-5.18u1100%+0.91u0-
Moneyline👀 WATCH650%+2.85u0-+0.00u0-
NRFI👀 WATCH333%+0.00u0-+0.00u0-
YRFI👀 WATCH2100%+0.00u0-+0.00u0-
Pitcher Outs🔬 RESEARCH7541%-13.74u0-+0.00u10%
Total🔬 RESEARCH4238%-9.29u0-+0.00u1100%
Batter H+R+RBI⛔ PAUSED40749%-57.64u1233%-5.02u5545%

Raw edge is an uncalibrated ranking/debug signal. Trust tiers come from configured market status plus settled tracker performance.

MARKET PROMOTION CRITERIA

What each market needs to move stages
MarketCurrent StageNext StageProgressPromotion Blockers
K Prop✅ TRUSTEDMaintain Trusted3/4season P&L non-negative
Pitcher Hits Allowed✅ TRUSTEDMaintain Trusted4/4No blocker
Run Line✅ TRUSTEDMaintain Trusted3/414d P&L non-negative
F5 ML👀 WATCH✅ Trusted2/5season sample >= 50; 14d sample >= 10; Grade A sample >= 20 and WR >= 55%
Batter Total Bases👀 WATCH✅ Trusted1/5season sample >= 50; season P&L positive; 14d P&L non-negative
Batter Hits👀 WATCH✅ Trusted2/5season sample >= 50; 14d sample >= 10; Grade A sample >= 20 and WR >= 55%
No HR U1.5👀 WATCH✅ Trusted1/5season sample >= 50; season P&L positive; 14d sample >= 10
Moneyline👀 WATCH✅ Trusted2/5season sample >= 50; 14d sample >= 10; Grade A sample >= 20 and WR >= 55%
NRFI👀 WATCH✅ Trusted1/5season sample >= 50; season P&L positive; 14d sample >= 10
YRFI👀 WATCH✅ Trusted1/5season sample >= 50; season P&L positive; 14d sample >= 10
Pitcher Outs🔬 RESEARCH👀 Watch1/5season P&L positive; 14d sample >= 10; 14d WR >= 52%
Total🔬 RESEARCH👀 Watch0/5season sample >= 50; season P&L positive; 14d sample >= 10
Batter H+R+RBI⛔ PAUSED🔬 Research2/5diagnostic/component model has settled validation; season P&L non-negative; 14d P&L non-negative

Promotion criteria keep markets from getting stuck in purgatory: each stage has explicit evidence needed for the next stage.

DIAGNOSTIC VS RECOMMENDATION IMPACT

Runtime signal usage matrix
ComponentStatusCurrent UsageRecommendation ImpactNext Action
K Prop✅ TRUSTEDActive recommendation market; 3 candidate(s); season N 193, 14d N 60Can produce Best Play / Good Add signals.Maintain Trusted; season P&L non-negative
Pitcher Outs🔬 RESEARCHResearch / held market; 3 candidate(s); season N 75, 14d N 0Held from actionable output unless explicitly validated.👀 Watch; season P&L positive; 14d sample >= 10
Pitcher Hits Allowed✅ TRUSTEDActive recommendation market; 2 candidate(s); season N 113, 14d N 39Can produce Best Play / Good Add signals.Maintain Trusted; No blocker
Batter Hits👀 WATCHActive watch-stage market; 4 candidate(s); season N 14, 14d N 1Can surface recommendations with trust caution; promotion waits for evidence.✅ Trusted; season sample >= 50; 14d sample >= 10
Batter H+R+RBI⛔ PAUSEDPaused shadow market; 31 candidate(s); season N 407, 14d N 12No actionable recommendations.🔬 Research; diagnostic/component model has settled validation; season P&L non-negative
Batter Hits+Runs+RBIs⛔ PAUSEDPaused shadow market; 0 candidate(s)No actionable recommendations.Build or validate replacement signal before unpausing.
Batter Total Bases👀 WATCHActive watch-stage market; 19 candidate(s); season N 20, 14d N 11Can surface recommendations with trust caution; promotion waits for evidence.✅ Trusted; season sample >= 50; season P&L positive
No HR🔬 RESEARCHResearch / held market; 0 candidate(s)Held from actionable output unless explicitly validated.Validate forward results before promotion.
Total🔬 RESEARCHResearch / held market; 0 candidate(s); season N 42, 14d N 0Held from actionable output unless explicitly validated.👀 Watch; season sample >= 50; season P&L positive
F5 Total🔬 RESEARCHResearch / held market; 1 candidate(s)Held from actionable output unless explicitly validated.Validate forward results before promotion.
F5 ML👀 WATCHActive watch-stage market; 1 candidate(s); season N 28, 14d N 0Can surface recommendations with trust caution; promotion waits for evidence.✅ Trusted; season sample >= 50; 14d sample >= 10
Run Line✅ TRUSTEDActive recommendation market; 0 candidate(s); season N 79, 14d N 28Can produce Best Play / Good Add signals.Maintain Trusted; 14d P&L non-negative
Moneyline👀 WATCHActive watch-stage market; 0 candidate(s); season N 6, 14d N 0Can surface recommendations with trust caution; promotion waits for evidence.✅ Trusted; season sample >= 50; 14d sample >= 10
Batter Hits Runs RBIs⛔ PAUSEDPaused shadow market; 0 candidate(s)No actionable recommendations.Build or validate replacement signal before unpausing.
PitcherAssessmentLIVEShared pitcher context; 14 starter assessment(s) emitted.Active context for pitcher and batter engines; diagnostic table elsewhere.Monitor assessment quality and data gaps.
Savant Pitch QualityLIVEFree public-data diagnostics; 14/14 assessment(s) scored.Diagnostic-only replacement path for paid PLV; does not change recommendations.Validate supported vs unsupported settled results before activation.
HRR Component Research⛔ PAUSEDShadow component research; 31 candidate(s) emitted.No recommendation impact while HRR remains paused.Validate component record before unpausing HRR.
Player ContextLIVEHome/away, day/night, recent-return, and workload diagnostics.Context notes and real role/workload risks only; no global threshold changes.Validate split and health-ramp signals before scoring them.
AI ReviewOFFOptional post-run advisory review of settled results and model behavior.Advisory only; cannot change recommendations, tracker saves, or thresholds.Use for review notes after the model output is generated.

This table is generated from runtime market status, market health, and run diagnostics. It explains whether a signal is active, held, research-only, or configuration-needed.

DATA READINESS

Input data availability for this run
READYAvailableSavant: 623 pitcher(s) with metrics
READYAvailableSavant 1st-inn: 253 pitcher(s) with 1st-inning splits
READYAvailableTeam NRFI streaks: 30 teams | 30 with streak ≥5
READYAvailablePitch-type matchup data: 30 team(s), 130 team×pitch-type combinations
READYAvailablePitcher arsenal: 613 pitcher(s), 2627 pitch-type profiles
READYAvailableBatter pitch-type profiles: 463 player(s)
READYAvailableHandedness: 14 pitcher(s) | Team splits: 30 team(s)
READYAvailableTeam recent batting: 14 team(s) with last-7 K/BB/contact rates
READYAvailableLineups confirmed: 14 team(s), 126 player(s)
READYAvailableBVP context: 14 roster team(s), 182 hitter(s) | 14 SP matchup(s), 912 career PA
READYAvailableLineup batter handedness: 126 player(s)
READYAvailableUmpires confirmed: 7 game(s)
READYAvailableRest data: 14 team(s) | Back-to-back: Cleveland Guardians, Detroit Tigers, New York Yankees, St. Louis Cardinals, Athletics, Atlanta Braves, Pittsburgh Pirates, Washington Nationals, Miami Marlins, Arizona Diamondbacks, Toronto Blue Jays, New York Mets, Colorado Rockies, Los Angeles Angels
READYAvailableBullpen data: 14 team(s) | Fatigued pens: St. Louis Cardinals, Pittsburgh Pirates, Toronto Blue Jays
READYAvailableBullpen HR vulnerability: 31 team(s)
READYAvailableWeather: 1 game(s) with meaningful conditions
READYAvailableLine movement: 364 market side(s) checked | 70 opening snapshot(s) created | 254 with movement
READYAvailableMarket health: 13 market(s) loaded from tracker
READYAvailablePlayer context: lazy game-log split and recent-return diagnostics enabled
READYAvailableF5: 2 game(s) fetched | 2 with ML odds | 2 with total odds | 2 play(s) above 8% edge
READYAvailableHRR research: 31 component candidate(s) emitted (diagnostics only; market remains paused)
READYAvailableNo-HR model: 2 game(s) scored | 0 above probability threshold | 2 with DK implied prob
READYAvailableHR layers: batter Statcast 505 | batter bats 279 | batter hand splits 171 | pitcher HR splits 79 | batter pitch-type 463 | bullpen HR 31
READYAvailableHR model: 34 batter(s) scored | 2 game environment(s) scored | 0 strong/elite batter edge(s)

TODAY'S SLATE

DraftKings lines + consensus direction
MatchupTime (ET)Away MLHome MLAway RLHome RLTotalCon ML
Athletics @ Los Angeles Angels9:39 PM-101-120-1.5 (+152)+1.5 (-185)O/U 8.5HOMEBet on DK
Colorado Rockies @ Arizona Diamondbacks9:41 PM+168-205+1.5 (-109)-1.5 (-110)O/U 9.0HOMEBet on DK

GRADE A PLAYS — SWEEP

0 Grade A | 1 Grade B | 141 Pass | 0 Fade

V2 FRAMEWORK — RANKED PLAYS

Checks: Baby Line | Model Edge | Books Agree | Matchup | Role/Injury | Game Script - 0 Grade A | 1 Grade B

No Grade A plays today.

▼ Good Adds — Grade B (1 play(s))
B GOOD ADD ✅ Good Add Pitcher Hits Allowed — Eduardo Rodriguez Under 5.5 (+103) diff 25.4% Bet on DK
Game: Colorado Rockies @ Arizona Diamondbacks  |  Start: 9:41 PM
Best Book / Line: DK Under 5.5 +103 | exact
Checks: !!   ► GOOD ADD
▼ Key Factors & Flags (12)
  • Proj 4.1 vs line 5.5 | DIFF% 25.5% (min 15%)
  • Basis: H/IP 0.89 (WHIP 1.29, BB% 9.4%)
  • DK books agree: NO (over 54.0% / under 46.0%)
  • Consensus (3 books): 3/3 OVER -- IN LINE
  • Opp batting adj: -0.1 hits, contact 0.95x (Opp batting (Colorado Rockies): wRC+ 97)
  • BVP (confirmed lineup) vs Eduardo Rodriguez: 68 PA | K% 16.2% | BB% 4.4% | AVG .246 | OPS .618
  • Opponent K profile: composite 25.5%, split 31.6%, L7 20.3%, season 24.9%, top-6 25.3%, BVP 16.2%/68 PA (adj 1.07x)
  • Opp lineup: Opposing lineup (Colorado Rockies) confirmed (9 players); top-6 K% 25.3% (4/6)
  • Prop history (pitcher_hits_allowed Under 5.5): L5 3/5 (60%) | L10 6/9 (67%) | L20 6/9 (67%) | Season 6/9 (67%) | H2H/BVP N/A | Recent Avg 5.00 | Season Avg 5.00
  • Prop trend: Pitcher Hits Allowed L10: 6/9 under 5.5
  • Line movement: price worsened (odds +109->+103)
⚠ Game Script: Neutral run environment (1.00x) | Home back-to-back | Away back-to-back

GAME BETS — DETAIL

0 bet(s) above 15% edge threshold

No bets meet the threshold today.

F5 BETS — DETAIL

2 bet(s) above 8% edge threshold
GradeGameTime (ET)TypeSideDK OddsImpliedModelEdgeEV/$100Books
CColorado Rockies @ Arizona Diamondbacks (F5)9:41 PMF5 MLColorado Rockies+16036.2%47.7%+11.5%$+23.958Bet on DK
CColorado Rockies @ Arizona Diamondbacks (F5)9:41 PMF5 TotalUnder 5.5-13554.0%62.4%+8.5%$+8.645Bet on DK
▼ Key Factors (2 play(s))
C Colorado Rockies — Colorado Rockies @ Arizona Diamondbacks (F5) (F5 ML)   +11.5%
  • [OUT] Jeff Criswell (Colorado Rockies) -- Injured 60-Day: Injured 60-Day
  • [OUT] Jake Madden (Colorado Rockies) -- Injured 60-Day: Injured 60-Day
  • [INJ] Philip Abner (Arizona Diamondbacks) -- Reassigned to Minors: Reassigned to Minors
  • Chase Field (NEUTRAL)
  • Eduardo Rodriguez xFIP 4.31
  • Zach Agnos xFIP 4.38
  • Arizona Diamondbacks confirmed lineup top-4 wRC+ 110 (team 100)
  • Colorado Rockies confirmed lineup top-4 wRC+ 98 (team 98)
  • F5 run env: baseline 9.0 x innings 0.50 -> 4.7
  • F5 weights: starter 90%, bullpen 10%, offense factor 1.04
  • F5 environment: park 1.01, weather 1.00, bullpen fatigue 1.00
  • Home SP: Eduardo Rodriguez (LHP)
  • Away SP: Zach Agnos (RHP)
  • Line movement: price improved (odds +150->+160)
C Under 5.5 — Colorado Rockies @ Arizona Diamondbacks (F5) (F5 Total)   +8.5%
  • [OUT] Jeff Criswell (Colorado Rockies) -- Injured 60-Day: Injured 60-Day
  • [OUT] Jake Madden (Colorado Rockies) -- Injured 60-Day: Injured 60-Day
  • [INJ] Philip Abner (Arizona Diamondbacks) -- Reassigned to Minors: Reassigned to Minors
  • F5 model: 4.7 runs vs line 5.5
  • F5 total source: FanDuel (DK unavailable)
  • Chase Field (NEUTRAL)
  • Eduardo Rodriguez xFIP 4.31
  • Zach Agnos xFIP 4.38
  • Arizona Diamondbacks confirmed lineup top-4 wRC+ 110 (team 100)
  • Colorado Rockies confirmed lineup top-4 wRC+ 98 (team 98)
  • F5 run env: baseline 9.0 x innings 0.50 -> 4.7
  • F5 weights: starter 90%, bullpen 10%, offense factor 1.04
  • F5 environment: park 1.01, weather 1.00, bullpen fatigue 1.00
  • Home SP: Eduardo Rodriguez (LHP)
  • Away SP: Zach Agnos (RHP)

NRFI — NO RUN FIRST INNING

Score threshold: 7.7+ | SP 40% / K% 35% / Off 25%
GameTime (ET)Away SPHome SPSignal ScoreSignalV2 Result
Colorado Rockies @ Arizona Diamondbacks9:41 PMZach AgnosEduardo Rodriguez
7.8/10
YRFI MODELC PASS

NRFI/YRFI Model Signal Detail

MODEL SIGNAL YRFI Colorado Rockies @ Arizona Diamondbacks — Score 7.8/10   C PASS
  • Eduardo Rodriguez: xFIP 4.31, K% 19.4%, BB% 9.4%, xwOBA 0.334, whiff% 18.9% | 1st inn (42 PA): xwOBA 0.389, K% 23.8%, BB% 11.9%, whiff% 13.0%
  • Zach Agnos: xFIP 4.38, K% 15.6%, BB% 8.3%, xwOBA 0.334, whiff% 25.8%
  • Arizona Diamondbacks lineup: top-3 wRC+ 109 (team avg 100)
  • Colorado Rockies lineup: top-3 wRC+ 109 (team avg 98)
  • Top-order discipline/contact favors YRFI: top-3 BB/G 0.52, SO/G 0.73 | top-3 BB/G 0.36, SO/G 1.06
  • Umpire: Carlos Torres — 8.5 K/9 (avg zone)
  • Park: Chase Field (hitter-friendly, run factor 1.03)
  • NRFI rate: Eduardo Rodriguez: 56% (9 starts)
  • All-game streak: 30-game YRFI (-0.4) | Venue streak: 15-game YRFI (-0.2)
  • Pitch-type matchup: Colorado Rockies rakes vs 4-Seam Fastball (xwOBA 0.336 vs SP's top pitch)
  • NRFI FANDUEL odds +104 | implied 49.0% | model edge -19.0%
  • YRFI FANDUEL odds -132 | implied 56.9% | model edge +28.1%
▼ Why no model signal? (1 games below threshold)
GameTime (ET)SPsNRFI / MinYRFI / MinEdgeWhy not
Athletics @ Los Angeles Angels9:39 PMJosé Soriano / Luis Severino3.0 / 7.77.0 / 7.7-17.9%Score 3.0 < 7.7 threshold | Edge -17.9% < 8% required

HR LIKELIHOOD MODEL

Ranked by true HR chance first: recent form, matchup, lineup, park/weather, and game context lead; odds/edge are context
  • HR props parsed: 34 batter line(s)
  • Market discovery: batter_home_runs=34
  • Official Odds API MLB HR markets found: batter_home_runs, batter_home_runs_alternate, batter_first_home_run; game HR total/team HR market keys not listed
  • Batter HR board ranks by estimated HR probability first; market odds/edge are supporting context only
  • Chance model weights batter power, recent HR form, opposing pitcher, BvP, handedness splits, lineup spot, park/weather, and day/night context

Most Likely HR Hitters

TierPlayerTeamGameTime (ET)SpotPitcherBookOddsFirst HRHR ChanceMarket ImpliedEdgeChance ScoreFreshness
Best HR ChanceMike TroutLos Angeles AngelsAthletics @ Los Angeles Angels9:39 PM2Luis Severino (R)theScore Bet+325-42.0%22.0%+20.0%99-
Best HR ChanceJosh LoweLos Angeles AngelsAthletics @ Los Angeles Angels9:39 PM6Luis Severino (R)theScore Bet+600-42.0%13.3%+28.7%99-
Best HR ChanceZach NetoLos Angeles AngelsAthletics @ Los Angeles Angels9:39 PM1Luis Severino (R)theScore Bet+475-42.0%16.4%+25.6%99-
Best HR ChanceShea LangeliersAthleticsAthletics @ Los Angeles Angels9:39 PM2José Soriano (R)theScore Bet+375-40.6%19.7%+20.9%99-
Best HR ChanceCorbin CarrollArizona DiamondbacksColorado Rockies @ Arizona Diamondbacks9:41 PM2Zach Agnos (R)theScore Bet+375-40.4%19.7%+20.7%99-
Best HR ChanceNick KurtzAthleticsAthletics @ Los Angeles Angels9:39 PM3José Soriano (R)theScore Bet+400-39.9%18.8%+21.1%99-
Best HR ChanceKetel MarteArizona DiamondbacksColorado Rockies @ Arizona Diamondbacks9:41 PM1Zach Agnos (R)theScore Bet+375-39.5%19.7%+19.8%99-
Best HR ChanceNolan ArenadoArizona DiamondbacksColorado Rockies @ Arizona Diamondbacks9:41 PM4Zach Agnos (R)theScore Bet+550-33.2%14.3%+18.9%99-
Best HR ChanceHunter GoodmanColorado RockiesColorado Rockies @ Arizona Diamondbacks9:41 PM3Eduardo Rodriguez (L)theScore Bet+425-32.2%17.9%+14.3%99-
Best HR ChanceTyler FreemanColorado RockiesColorado Rockies @ Arizona Diamondbacks9:41 PM2Eduardo Rodriguez (L)theScore Bet+1000-31.8%8.6%+23.2%99-
Best HR ChanceJo AdellLos Angeles AngelsAthletics @ Los Angeles Angels9:39 PM5Luis Severino (R)theScore Bet+475-31.7%16.4%+15.3%99-
Best HR ChanceCarlos CortesAthleticsAthletics @ Los Angeles Angels9:39 PM1José Soriano (R)theScore Bet+800-21.2%10.4%+10.8%71-
Best HR ChanceBrent RookerAthleticsAthletics @ Los Angeles Angels9:39 PM4José Soriano (R)theScore Bet+475-20.9%16.4%+4.5%70-
Best HR ChanceVaughn GrissomLos Angeles AngelsAthletics @ Los Angeles Angels9:39 PM4Luis Severino (R)theScore Bet+800-20.5%10.4%+10.1%68-
Best HR ChanceGabriel MorenoArizona DiamondbacksColorado Rockies @ Arizona Diamondbacks9:41 PM7Zach Agnos (R)theScore Bet+800-18.3%10.4%+7.9%61-
Best HR ChanceIldemaro VargasArizona DiamondbacksColorado Rockies @ Arizona Diamondbacks9:41 PM5Zach Agnos (R)theScore Bet+1000-17.2%8.6%+8.6%57-
Best HR ChanceJose SiriLos Angeles AngelsAthletics @ Los Angeles Angels9:39 PM7Luis Severino (R)theScore Bet+600-17.2%13.3%+3.9%57-
Best HR ChanceRyan WaldschmidtArizona DiamondbacksColorado Rockies @ Arizona Diamondbacks9:41 PM9Zach Agnos (R)theScore Bet+800-16.3%10.4%+5.9%54-
Strong HR ChanceZack GelofAthleticsAthletics @ Los Angeles Angels9:39 PM6José Soriano (R)theScore Bet+700-14.4%11.7%+2.7%48-
HR Chance WatchlistLourdes Gurriel Jr.Arizona DiamondbacksColorado Rockies @ Arizona Diamondbacks9:41 PM6Zach Agnos (R)theScore Bet+600-12.1%13.3%-1.2%40-

Game HR Environments

TierGameTime (ET)ScoreP(1+ HR)Fair OddsTop ThreatsEnvironmentRisks
Strong HR EnvironmentAthletics @ Los Angeles Angels9:39 PM10091.0%-1014Mike Trout, Josh Lowe, Zach Neto, Shea LangeliersAngel Stadium HR factor 0.98 | No-HR inverse support: P(no HR) 9.0%-
WatchlistColorado Rockies @ Arizona Diamondbacks9:41 PM10083.2%-495Corbin Carroll, Ketel Marte, Nolan Arenado, Hunter GoodmanChase Field HR factor 1.02-
▼ HR Chance Detail (8 players)
Best HR Chance Mike Trout — Athletics @ Los Angeles Angels (+325) HR chance 42.0% | edge +20.0%
  • Power baseline HR/G 0.245, OPS 0.878, ISO 0.249, TB/G 1.69
  • Statcast: barrel 21.7%, hard-hit 39.0%, EV 91.6/114.6, LA 12.0, xSLG 0.584
  • Prop history (batter_home_runs Over 0.5): L5 1/5 (20%) | L10 1/10 (10%) | L20 3/20 (15%) | Season 11/49 (22%) | H2H/BVP N/A | Recent Avg 0.10 | Season Avg 0.24
  • Recent HR trend: Batter HR L10: 1/10 over 0.5; cold exact-market hit rate
  • Opp SP HR/BF 0.0300, xFIP 4.38, K% 22.4%
  • Savant xwOBA 0.333, xERA 4.46, whiff 22.6%
  • BvP vs SP: 1 HR, OPS 1.556, K% 33.3% (9 PA)
  • Batter split vs_rhp: HR/PA 0.057, OPS 0.866, ISO 0.246 (159 PA)
Best HR Chance Josh Lowe — Athletics @ Los Angeles Angels (+600) HR chance 42.0% | edge +28.7%
  • Power baseline HR/G 0.295, OPS 0.906, ISO 0.302, TB/G 2.18
  • Statcast: barrel 13.6%, hard-hit 39.0%, EV 89.6/111.1, LA 12.0, xSLG 0.521
  • Prop history (batter_home_runs Over 0.5): L5 1/5 (20%) | L10 2/10 (20%) | L20 5/20 (25%) | Season 10/44 (23%) | H2H/BVP N/A | Recent Avg 0.30 | Season Avg 0.30
  • Recent HR trend: Batter HR L10: 2/10 over 0.5; cold exact-market hit rate
  • Opp SP HR/BF 0.0300, xFIP 4.38, K% 22.4%
  • Savant xwOBA 0.333, xERA 4.46, whiff 22.6%
  • Batter split vs_rhp: HR/PA 0.070, OPS 1.023, ISO 0.355 (142 PA)
  • Pitcher HR allowed vs_lhb: HR/BF 0.0214
⚠ Batter stats team Pittsburgh Pirates does not match game teams
⚠ Thin BvP sample (2 PA)
Best HR Chance Zach Neto — Athletics @ Los Angeles Angels (+475) HR chance 42.0% | edge +25.6%
  • Power baseline HR/G 0.160, OPS 0.733, ISO 0.184, TB/G 1.58
  • Statcast: barrel 11.1%, hard-hit 39.0%, EV 89.6/107.8, LA 12.0, xSLG 0.400
  • Prop history (batter_home_runs Over 0.5): L5 1/5 (20%) | L10 2/10 (20%) | L20 3/20 (15%) | Season 8/50 (16%) | H2H/BVP N/A | Recent Avg 0.20 | Season Avg 0.16
  • Recent HR trend: Batter HR L10: 2/10 over 0.5; cold exact-market hit rate
  • Opp SP HR/BF 0.0300, xFIP 4.38, K% 22.4%
  • Savant xwOBA 0.333, xERA 4.46, whiff 22.6%
  • BvP vs SP: 0 HR, OPS 1.000, K% 0.0% (6 PA)
  • Batter split vs_rhp: HR/PA 0.037, OPS 0.684, ISO 0.182 (164 PA)
Best HR Chance Shea Langeliers — Athletics @ Los Angeles Angels (+375) HR chance 40.6% | edge +20.9%
  • Power baseline HR/G 0.273, OPS 0.972, ISO 0.256, TB/G 2.36
  • Statcast: barrel 15.0%, hard-hit 39.0%, EV 92.3/114.4, LA 12.0, xSLG 0.585
  • Prop history (batter_home_runs Over 0.5): L5 0/5 (0%) | L10 1/10 (10%) | L20 3/20 (15%) | Season 10/44 (23%) | H2H/BVP N/A | Recent Avg 0.10 | Season Avg 0.27
  • Recent HR trend: Batter HR L10: 1/10 over 0.5; cold exact-market hit rate
  • BvP vs SP: 2 HR, OPS 1.765, K% 25.0% (12 PA)
  • Batter split vs_rhp: HR/PA 0.060, OPS 0.980, ISO 0.259 (150 PA)
  • Pitcher HR allowed vs_rhb: HR/BF 0.0083
  • Park HR factor 0.98
⚠ Pitcher season stats unavailable
Best HR Chance Corbin Carroll — Colorado Rockies @ Arizona Diamondbacks (+375) HR chance 40.4% | edge +20.7%
  • Power baseline HR/G 0.156, OPS 0.958, ISO 0.278, TB/G 1.98
  • Statcast: barrel 14.5%, hard-hit 39.0%, EV 91.0/111.8, LA 12.0, xSLG 0.512
  • Prop history (batter_home_runs Over 0.5): L5 1/5 (20%) | L10 1/10 (10%) | L20 3/20 (15%) | Season 6/45 (13%) | H2H/BVP N/A | Recent Avg 0.20 | Season Avg 0.16
  • Recent HR trend: Batter HR L10: 1/10 over 0.5; cold exact-market hit rate
  • Opp SP HR/BF 0.0241, xFIP 4.71, K% 15.6%
  • Savant xwOBA 0.334, xERA 4.49, whiff 25.8%
  • Batter split vs_rhp: HR/PA 0.050, OPS 0.832, ISO 0.289 (121 PA)
  • Batter vs SP top pitch Sweeper: xSLG 0.431, xwOBA 0.352 (15 PA)
⚠ Thin BvP sample (2 PA)
Best HR Chance Nick Kurtz — Athletics @ Los Angeles Angels (+400) HR chance 39.9% | edge +21.1%
  • Power baseline HR/G 0.167, OPS 0.920, ISO 0.209, TB/G 1.75
  • Statcast: barrel 16.5%, hard-hit 39.0%, EV 94.8/115.9, LA 12.0, xSLG 0.491
  • Prop history (batter_home_runs Over 0.5): L5 0/5 (0%) | L10 3/10 (30%) | L20 3/20 (15%) | Season 8/48 (17%) | H2H/BVP N/A | Recent Avg 0.30 | Season Avg 0.17
  • Recent HR trend: Batter HR L10: 3/10 over 0.5; cold exact-market hit rate
  • BvP vs SP: 1 HR, OPS 0.873, K% 36.4% (11 PA)
  • Batter split vs_rhp: HR/PA 0.047, OPS 1.029, ISO 0.268 (148 PA)
  • Pitcher HR allowed vs_lhb: HR/BF 0.0339
  • Park HR factor 0.98
⚠ Pitcher season stats unavailable
⚠ BvP strikeout risk
Best HR Chance Ketel Marte — Colorado Rockies @ Arizona Diamondbacks (+375) HR chance 39.5% | edge +19.8%
  • Power baseline HR/G 0.156, OPS 0.702, ISO 0.178, TB/G 1.64
  • Statcast: barrel 10.7%, hard-hit 39.0%, EV 92.0/116.9, LA 12.0, xSLG 0.485
  • Prop history (batter_home_runs Over 0.5): L5 2/5 (40%) | L10 2/10 (20%) | L20 3/20 (15%) | Season 6/45 (13%) | H2H/BVP N/A | Recent Avg 0.20 | Season Avg 0.16
  • Recent HR trend: Batter HR L10: 2/10 over 0.5; cold exact-market hit rate
  • Opp SP HR/BF 0.0241, xFIP 4.71, K% 15.6%
  • Savant xwOBA 0.334, xERA 4.49, whiff 25.8%
  • Batter split vs_rhp: HR/PA 0.045, OPS 0.712, ISO 0.205 (133 PA)
  • Batter vs SP top pitch Sweeper: xSLG 0.173, xwOBA 0.124 (12 PA)
⚠ Thin BvP sample (4 PA)
Best HR Chance Nolan Arenado — Colorado Rockies @ Arizona Diamondbacks (+550) HR chance 33.2% | edge +18.9%
  • Power baseline HR/G 0.156, OPS 0.828, ISO 0.199, TB/G 1.60
  • Statcast: barrel 7.5%, hard-hit 39.0%, EV 85.2/107.5, LA 12.0, xSLG 0.426
  • Prop history (batter_home_runs Over 0.5): L5 1/5 (20%) | L10 1/10 (10%) | L20 3/20 (15%) | Season 6/45 (13%) | H2H/BVP N/A | Recent Avg 0.10 | Season Avg 0.16
  • Recent HR trend: Batter HR L10: 1/10 over 0.5; cold exact-market hit rate
  • Opp SP HR/BF 0.0241, xFIP 4.71, K% 15.6%
  • Savant xwOBA 0.334, xERA 4.49, whiff 25.8%
  • Batter split vs_rhp: HR/PA 0.042, OPS 0.849, ISO 0.199 (120 PA)
  • Batter vs SP top pitch Sweeper: xSLG 0.251, xwOBA 0.276 (19 PA)
⚠ Thin BvP sample (2 PA)

Lower-Chance / Risk List

PlayerGameTime (ET)OddsHR ChanceWhy lower
Ezequiel TovarColorado Rockies @ Arizona Diamondbacks9:41 PM+8000.5%Low season HR rate | Pitcher has suppressed HRs | Cold recent HR form
Kyle KarrosColorado Rockies @ Arizona Diamondbacks9:41 PM+10000.8%Low season HR rate | Pitcher has suppressed HRs | Cold recent HR form
Troy JohnstonColorado Rockies @ Arizona Diamondbacks9:41 PM+10000.9%Low lineup spot (8) | Low season HR rate | Pitcher has suppressed HRs | Cold recent HR form
Geraldo PerdomoColorado Rockies @ Arizona Diamondbacks9:41 PM+9001.3%Low season HR rate | Thin batter pitch-type sample (9 PA) | Thin BvP sample (3 PA) | Cold recent HR form
Jeff McNeilAthletics @ Los Angeles Angels9:39 PM+11001.4%Low lineup spot (7) | Low season HR rate | Pitcher season stats unavailable | Thin BvP sample (3 PA)
Nolan SchanuelAthletics @ Los Angeles Angels9:39 PM+9003.6%Thin BvP sample (3 PA) | Cold recent HR form
Darell HernaizAthletics @ Los Angeles Angels9:39 PM+14004.8%Low lineup spot (8) | Batter power stats unavailable | Pitcher season stats unavailable | Thin BvP sample (4 PA)
Jake McCarthyColorado Rockies @ Arizona Diamondbacks9:41 PM+11006.7%Batter power stats unavailable | Pitcher has suppressed HRs | Thin BvP sample (2 PA)
Willi CastroColorado Rockies @ Arizona Diamondbacks9:41 PM+9007.0%Batter power stats unavailable | Pitcher has suppressed HRs
Sebastian RiveroAthletics @ Los Angeles Angels9:39 PM+10007.5%Batter team unresolved | Batter team unresolved | Batter power stats unavailable | Pitcher season stats unavailable

NO-HR MODEL — POISSON GAME ANALYSIS

Poisson model &mdash; P(no HR)&ge;20% or P(under 1.5 HR)&ge;52.2% for a model signal
GameTime (ET)Home SPAway SPPark HRP(No HR)P(U 1.5)DK ImpliedEdgeV2 Result
Colorado Rockies @ Arizona Diamondbacks9:41 PMEduardo RodriguezZach Agnos1.0216.8%46.8%10.6%+6.2%
Athletics @ Los Angeles Angels9:39 PMJosé SorianoLuis Severino0.989.0%30.6%8.0%+1.0%

SAVANT PITCH QUALITY DIAGNOSTICS

14 pitcher(s) with public-data pitch-quality diagnostics
PitcherGameOverallWhiffContactArsenalTop PitchNotes / Data Gaps
Spencer StriderAtlanta Braves vs Miami Marlins72.684.471.54Curveball (62% whiff, 17% usage)Savant whiff 40.1%, put-away 20.6%, xwOBA 0.272, arsenal coverage 4 pitch type(s)
Casey MizeDetroit Tigers vs Cleveland Guardians65.165.270.05Split-Finger (34% whiff, 29% usage)Savant whiff 27.7%, put-away 26.0%, xwOBA 0.275, arsenal coverage 5 pitch type(s)
Braxton AshcraftPittsburgh Pirates vs St. Louis Cardinals65.062.972.05Curveball (40% whiff, 26% usage)Savant whiff 27.5%, put-away 24.1%, xwOBA 0.271, arsenal coverage 5 pitch type(s)
José SorianoLos Angeles Angels vs Athletics58.775.749.05Split-Finger (46% whiff, 18% usage)Savant whiff 33.5%, put-away 24.9%, xwOBA 0.317, arsenal coverage 5 pitch type(s)
Sandy AlcantaraMiami Marlins vs Atlanta Braves54.946.262.56Changeup (36% whiff, 24% usage)Savant whiff 22.9%, put-away 16.7%, xwOBA 0.290, arsenal coverage 6 pitch type(s)
Joey CantilloCleveland Guardians vs Detroit Tigers53.255.751.04Changeup (43% whiff, 27% usage)Savant whiff 26.6%, put-away 18.8%, xwOBA 0.313, arsenal coverage 4 pitch type(s)
Cade CavalliWashington Nationals vs New York Mets52.357.146.55Curveball (45% whiff, 24% usage)Savant whiff 25.7%, put-away 22.0%, xwOBA 0.322, arsenal coverage 5 pitch type(s)
Carlos RodónNew York Yankees vs Toronto Blue Jays50.658.046.04Changeup (50% whiff, 10% usage)Savant whiff 27.3%, put-away 19.8%, xwOBA 0.323, arsenal coverage 4 pitch type(s)
David PetersonNew York Mets vs Washington Nationals50.457.643.55Curveball (43% whiff, 13% usage)Savant whiff 23.3%, put-away 27.3%, xwOBA 0.328, arsenal coverage 5 pitch type(s)
Zach AgnosColorado Rockies vs Arizona Diamondbacks47.148.340.56Sweeper (46% whiff, 13% usage)Savant whiff 25.8%, put-away 13.0%, xwOBA 0.334, arsenal coverage 6 pitch type(s)
Braydon FisherToronto Blue Jays vs New York Yankees46.351.643.05Slider (30% whiff, 48% usage)Savant whiff 25.4%, put-away 17.2%, xwOBA 0.329, arsenal coverage 5 pitch type(s)
Luis SeverinoAthletics vs Los Angeles Angels45.547.541.064-Seam Fastball (25% whiff, 21% usage)Savant whiff 22.6%, put-away 18.7%, xwOBA 0.333, arsenal coverage 6 pitch type(s)
Dustin MaySt. Louis Cardinals vs Pittsburgh Pirates40.136.841.56Sweeper (29% whiff, 18% usage)Savant whiff 18.6%, put-away 15.9%, xwOBA 0.332, arsenal coverage 6 pitch type(s)
Eduardo RodriguezArizona Diamondbacks vs Colorado Rockies38.739.540.554-Seam Fastball (25% whiff, 38% usage)Savant whiff 18.9%, put-away 18.0%, xwOBA 0.334, arsenal coverage 5 pitch type(s)

Diagnostic only. This is a free Savant-derived pitch-quality layer, not Pitcher List PLV/PLA, and it does not change recommendations.

PITCHER ASSESSMENT DIAGNOSTICS

14 starter assessment(s) emitted by Pitcher Engine
PitcherTeamHandSeason K%Recent IPSeason IPK IPPitch CtLeashSavantContactHR VulnQualityFlags / Notes
Eduardo RodriguezArizona Diamondbacks vs Colorado RockiesL19.4%5.95.95.999normalfull40.5059.50season+recent+savant+savant_quality+hand-
Luis SeverinoAthletics vs Los Angeles AngelsR21.9%5.95.46.099normalfull41.0059.00season+recent+savant+savant_quality+handpatient opponent BB% 9.6%
Spencer StriderAtlanta Braves vs Miami MarlinsR26.5%4.04.75.267shortfull71.5028.50season+recent+savant+savant_quality+handrecent leash 4.0 IP/start
Joey CantilloCleveland Guardians vs Detroit TigersL19.7%5.05.05.084shortfull51.0049.00season+recent+savant+savant_quality+handrecent leash 5.0 IP/start, patient opponent BB% 10.1%
Zach AgnosColorado Rockies vs Arizona DiamondbacksR15.6%2.4-5.140shortfull40.5059.50season+recent+savant+savant_quality+handrecent leash 2.4 IP/start
Casey MizeDetroit Tigers vs Cleveland GuardiansR24.6%5.35.35.489normalfull70.0030.00season+recent+savant+savant_quality+handpatient opponent BB% 11.4%, low-K contact opponent 19.7%
José SorianoLos Angeles Angels vs AthleticsR25.5%5.35.96.089normalfull49.0051.00season+recent+savant+savant_quality+handpatient opponent BB% 9.7%
Sandy AlcantaraMiami Marlins vs Atlanta BravesR17.9%5.06.36.184shortfull62.5037.50season+recent+savant+savant_quality+handrecent leash 5.0 IP/start
David PetersonNew York Mets vs Washington NationalsL23.4%4.28.66.670shortfull43.5056.50season+recent+savant+savant_quality+handrecent leash 4.2 IP/start, patient opponent BB% 9.5%
Carlos RodónNew York Yankees vs Toronto Blue JaysL24.1%3.64.05.260shortfull46.0054.00season+recent+savant+savant_quality+handrecent leash 3.6 IP/start, low-K contact opponent 18.7%
Braxton AshcraftPittsburgh Pirates vs St. Louis CardinalsR24.9%6.36.16.1106deepfull72.0028.00season+recent+savant+savant_quality+hand-
Dustin MaySt. Louis Cardinals vs Pittsburgh PiratesR18.7%5.85.45.597normalfull41.5058.50season+recent+savant+savant_quality+handpatient opponent BB% 9.9%
Braydon FisherToronto Blue Jays vs New York YankeesR21.0%1.026.16.417shortfull43.0057.00season+recent+savant+savant_quality+handrecent leash 1.0 IP/start, patient opponent BB% 12.0%
Cade CavalliWashington Nationals vs New York MetsR24.3%5.74.64.896normalfull46.5053.50season+recent+savant+savant_quality+hand-

Diagnostics only. These values are exposed for review and do not change recommendations yet.

PITCHER OUTS RESEARCH GATE

3/3 candidate(s) held from actionable output
PitcherSideGameLineProjGapGradeRecStatusLeashK IPPitch CtQualityGate Reason
Luis SeverinoLuis Severino UnderAthletics @ Los Angeles Angels17.516.3-1.2CPASSresearchnormal6.099season+recent+savant+savant_quality+handGame Script: Neutral run environment (1.00x) | Home back-to-back | Away back-to-back
Eduardo RodriguezEduardo Rodriguez UnderColorado Rockies @ Arizona Diamondbacks18.517.8-0.7DPASSresearchnormal5.999season+recent+savant+savant_quality+handWeak Model Edge: Insufficient model edge — diff_pct 3.8% vs 10% min
Jose SorianoJose Soriano OverAthletics @ Los Angeles Angels17.517.80.3DPASSresearchnormal6.089season+recent+savant+savant_quality+handWeak Model Edge: Insufficient model edge — diff_pct 1.5% vs 10% min

QC summary only. Pitcher Outs remains research-only until the assessment gate is validated.

HRR COMPONENT RESEARCH

31 HRR component candidate(s) emitted by Batter Engine | showing top 25 by component raw gap
PlayerGameResearch SideComponent ProjHRRBICurrentUncertaintySupportFlags
Ildemaro VargasColorado Rockies @ Arizona DiamondbacksOver 1.53.131.370.770.992.96 / Over0.30season_games=41,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused
Shea LangeliersAthletics @ Los Angeles AngelsOver 1.53.031.430.960.643.11 / Over0.30season_games=44,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused
Josh LoweAthletics @ Los Angeles AngelsOver 1.52.781.530.680.572.49 / Over0.59exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused, missing_player_component_rates
Nick KurtzAthletics @ Los Angeles AngelsOver 1.52.731.060.760.912.49 / Over0.30season_games=48,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused
Nolan ArenadoColorado Rockies @ Arizona DiamondbacksOver 1.52.340.980.640.722.14 / Over0.30season_games=45,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused
Mike TroutAthletics @ Los Angeles AngelsOver 1.52.310.890.890.532.56 / Over0.30season_games=49,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused
Tyler FreemanColorado Rockies @ Arizona DiamondbacksOver 1.52.281.220.580.481.99 / Over0.59exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused, missing_player_component_rates
Hunter GoodmanColorado Rockies @ Arizona DiamondbacksOver 1.52.260.980.730.551.94 / Over0.30season_games=45,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused
Zach NetoAthletics @ Los Angeles AngelsOver 1.52.240.960.810.472.14 / Over0.30season_games=50,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused
Jo AdellAthletics @ Los Angeles AngelsOver 1.52.021.000.360.662.13 / Over0.30season_games=50,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused
Nolan SchanuelAthletics @ Los Angeles AngelsOver 1.51.971.050.390.541.96 / Over0.30season_games=46,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused
Lourdes Gurriel Jr.Colorado Rockies @ Arizona DiamondbacksOver 1.51.961.050.490.421.67 / Over0.59lineup,pitcher_assessmentresearch_only_hrr_paused, missing_player_component_rates
Willi CastroColorado Rockies @ Arizona DiamondbacksOver 1.51.911.020.480.411.63 / Over0.59lineup,pitcher_assessmentresearch_only_hrr_paused, missing_player_component_rates
Carlos CortesAthletics @ Los Angeles AngelsOver 1.51.861.020.460.391.64 / Over0.59lineup,pitcher_assessmentresearch_only_hrr_paused, missing_player_component_rates
Tyler SoderstromAthletics @ Los Angeles AngelsOver 1.51.850.750.510.591.75 / Over0.30season_games=46,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused
Brent RookerAthletics @ Los Angeles AngelsOver 1.51.750.940.390.431.61 / Over0.59lineup,pitcher_assessmentresearch_only_hrr_paused, missing_player_component_rates
Geraldo PerdomoColorado Rockies @ Arizona DiamondbacksOver 1.51.750.830.470.441.64 / Over0.30season_games=45,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused
Vaughn GrissomAthletics @ Los Angeles AngelsOver 1.51.720.930.380.421.58 / Over0.59lineup,pitcher_assessmentresearch_only_hrr_paused, missing_player_component_rates
Troy JohnstonColorado Rockies @ Arizona DiamondbacksOver 1.51.710.990.320.401.94 / Over0.30season_games=45,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused
Corbin CarrollColorado Rockies @ Arizona DiamondbacksOver 2.52.661.090.970.602.48 / Under0.35season_games=45,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused, component_side_conflicts_current_model
Jake McCarthyColorado Rockies @ Arizona DiamondbacksOver 1.51.550.880.340.331.57 / Over0.59lineup,pitcher_assessmentresearch_only_hrr_paused, missing_player_component_rates
Zack GelofAthletics @ Los Angeles AngelsOver 1.51.520.880.330.321.58 / Over0.59lineup,pitcher_assessmentresearch_only_hrr_paused, missing_player_component_rates
Gabriel MorenoColorado Rockies @ Arizona DiamondbacksUnder 1.51.490.860.340.291.58 / Over0.64lineup,pitcher_assessmentresearch_only_hrr_paused, missing_player_component_rates, component_side_conflicts_current_model
Jeff McNeilAthletics @ Los Angeles AngelsUnder 1.51.420.860.300.261.52 / Over0.35season_games=46,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused, component_side_conflicts_current_model
Ketel MarteColorado Rockies @ Arizona DiamondbacksUnder 2.52.411.040.810.562.10 / Under0.30season_games=45,exact_hrr_l10,lineup,pitcher_assessmentresearch_only_hrr_paused

Diagnostics only. HRR remains paused; these component projections are not used for recommendations.

REFERENCE GUIDE

Column definitions, model notes, and sizing rules

V2 Framework — How the Report is Structured

Every bet candidate — regardless of market — passes through the same six-check evaluation engine before appearing in the report. The engine produces a letter grade (A–F) and a recommendation tier. The top of the report shows your actionable plays; the full sweep table below it shows every candidate evaluated that day so you can audit the model's reasoning.

SectionWhat it shows
V2 Ranked PlaysGrade A (Best Play) and Grade B (Good Add) candidates with full detail — check bar, key factors, risk flags, and contradiction flags
Full Candidate SweepEvery evaluated bet in one compact table grouped by grade tier. Use this to understand why a play was filtered out.
Market Trust TiersSettled tracker performance by market, including season and recent windows used to support trust tiers.
Market Promotion CriteriaThe concrete blockers a market must clear before moving from paused to research, watch, or trusted.
Diagnostic vs Recommendation ImpactRuntime source of truth for whether a signal is active, held, research-only, or configuration-needed.
Data ReadinessInput availability for the run, including lineups, active-roster hitter context, weather, BVP, pitch-type data, market health, and player context.
Today's SlateDraftKings reference lines for all games
Detail SectionsMarket detail, diagnostics, and research sections below the V2 ranked plays.

V2 Six-Check System

Each check returns PASS ✓, WARN !, FAIL ✗, or N/A –. Checks that need unavailable data degrade to N/A without penalising the grade. Two points for PASS, one for WARN or N/A, zero for FAIL.

#CheckWhat it evaluatesPASS condition
1Baby LineLine size, batter opportunity, run-line cushionNo baby-line flags, adequate PA opportunity, RL cushion ≥0.2 runs
2Model EdgeProjection vs DK line (edge for game bets, DIFF% for props)Edge ≥ threshold for the market type
3Books AgreeDK implied direction + consensus lean % across all other booksDK agrees with model AND ≥55% of consensus books lean same side
4MatchupPark factor, weather, pitcher handedness vs lineup splitsPark/weather support the bet direction; platoon matchup neutral or favorable
5Role / InjuryConfirmed lineup spot, injury flags, workload concernsNo injury flags; lineup confirmed in a favorable spot
6Game ScriptCombined park × weather run environment; run-line margin vs spreadEnvironment supports bet direction; RL margin cushion ≥0.5 runs

Grades & Recommendations

GradeScoreRecommendationWhen to bet
A10–12, 0 FAILsBEST PLAYCore play — all six checks aligned
B7–9, ≤1 FAILGOOD ADDStrong play with minor caveats
C4–6PASSThin — skip unless you have a strong personal read
D2–3 or model edge FAILPASSDo not bet — weak signal
F0–1HARD FADEConsider betting the other side

Hard override: a Model Edge FAIL always caps at Grade D regardless of other checks. Books Strongly Disagree caps at Grade C.

Final Signals

Final Signal combines the model grade with market trust. Top Pick remains the rare flagship rule, while other signals show whether a strong model read is trusted, watch-listed, research-only, or paused.

SignalMeaning
⭐ TOP PICKExisting Top Pick rule: Grade A + 100% book consensus + raw edge cushion.
✅ Best PlayTrusted market with an A-grade model signal.
👀 Strong WatchWatch-stage market with an A-grade model signal; visible but not promoted to Top Pick.
🔬 Research LeadResearch-stage market with an A-grade model signal; diagnostics only until validation clears.
⛔ Paused SignalPaused market with an A/B model signal; shown so the signal is not lost, but not actionable.

Market Promotion Lifecycle

Markets move from paused to research to watch to trusted only when settled evidence clears the criteria shown in Market Promotion Criteria. This keeps a market from getting stuck in research without a clear path forward.

StageRecommendation behaviorEvidence needed
TrustedEligible for normal Best Play / Good Add output.Continue passing season and recent market-health checks.
WatchVisible as a valid signal, but not treated as fully trusted.Season sample, positive P&L, recent sample, recent P&L, and Grade A performance.
ResearchScored and audited, but held from actionable output until validation clears.Forward sample, positive season signal, recent win-rate support, and Grade A validation.
PausedShadow-only. No actionable recommendations.A redesigned/component signal plus settled validation before returning to research.

Raw edge is an uncalibrated ranking/debug value. The model grade and market stage should be read together.

Contradiction Flags ⚡

When two recommended plays on the same game send opposing run-environment signals, a ⚡ contradiction flag is added to both plays. The bet is not removed — it is flagged so you can decide consciously whether the conflict makes sense.

PatternWhy it conflicts
Total Over + NRFIHigh-run game expectation vs no runs in the 1st inning
Total Under + YRFILow-run game expectation vs runs scoring in the 1st
K Prop Over + YRFIPitcher dominates yet run scores early
Batter Overs + Total UnderPlayer production expected but game total is low
Outs Over + K Under (same SP)Long outing projected but few strikeouts — projection inconsistency

API Quota Bar

ElementMeaning
Progress barVisual fill of monthly Odds API usage
used / totalRequests consumed vs. your monthly cap — each run costs ~1 request per game (combined market fetch)

Today's Slate

ColumnMeaning
Away ML / Home MLDraftKings moneyline. −150 = bet $150 to win $100 • +130 = bet $100 to win $130
Away RL / Home RLRun line (always ±1.5) with its odds. −1.5(−110) = team must win by 2+
TotalOver/Under line (e.g. O/U 8.5)
Con MLConsensus moneyline direction — which side the majority of other books (FanDuel, BetMGM, Caesars, etc.) favor

Game Bets — Column Definitions

ColumnMeaning
GradeV2 Framework grade (A–D) — driven by the six-check scoring system. A/B rows are highlighted. See Grade Scale below.
TypeMoneyline, Run Line, Total Over/Under, F5 ML, F5 Total
DK OddsDraftKings price for that side
ImpliedDK implied probability after vig removal
ModelWin probability our model calculates independently
EdgeModel% − Implied%. Min 15% to surface a game bet.
EV/$100Expected profit per $100 wagered: (win_prob × profit) − (loss_prob × $100)
BooksNumber of consensus books with data for this market (ML/RL: directional lean; Total: line coverage). ≥3 = full check, 2 = capped at B/C, <2 = Check 3 fails.

How the Model Works — The Simple Version

The model is asking one question: does DraftKings have the wrong price on this game?

It independently calculates how likely each team is to win by grading two things: how good is today's starting pitcher (xFIP vs league average) and how good is the opposing lineup (wRC+ vs league average). It adds a small home-field bonus, blends in the pitcher's last 5 starts (35% weight), then converts the result to a win probability. That probability is compared to what DraftKings implies. If the gap is ≥15%, it surfaces as a bet.

The model caps at ~68–70% win probability even in extreme mismatches — baseball is unpredictable and overconfident models lose money. Missing data automatically reduces confidence and bet sizing.

How the Model Works — Win Probability (Technical)

For every game the model builds a score differential from three inputs, then converts it to a win probability using a logistic (S-curve) function. Here is each step:

StepWhat it calculatesData sourceWeight
1. Pitching edge How much better or worse each SP is vs. the league-average xFIP of 4.20.
home_pitch = (4.20 − home_xFIP) / 4.20
pitch_edge = home_pitch − away_pitch
A positive number means the home SP is above average relative to the away SP.
FanGraphs xFIP (direct API call) — the best early-season ERA predictor because it removes defense and luck 50%
2. Offense edge How much stronger or weaker each lineup is vs. the league-average wRC+ of 100.
home_bat = (home_wRC+ − 100) / 100
off_edge = home_bat − away_bat
A team with wRC+ 110 contributes +0.10; one at 90 contributes −0.10.
MLB Stats API team batting — OPS converted to wRC+ via (OPS / 0.720) × 100 35%
3. Home field Fixed constant added to the home team's side every game. Historical MLB average home-field effect +4%
4. Score diff score_diff = 0.50 × pitch_edge + 0.35 × off_edge + 0.04 Combined signal driving the probability below
5. Win probability home_win_prob = logistic(1.5 × score_diff)
The logistic scale of 1.5 keeps the model from being overconfident — even an extreme mismatch caps out around 68–70%.
Standard logistic sigmoid: 1 / (1 + e−x)

Recent Form Blending

Season stats are stable but slow to react. Recent form can signal a pitcher heating up or falling apart. The model blends both:

SourceWeightStats blended
Season-to-date (FanGraphs)65%xFIP, ERA, WHIP, K%, K/9
Last 5 starts (MLB Stats API game logs)35%ERA, WHIP, K%, K/9 — computed from raw game log totals

xFIP is season-only (requires full-season HR data to normalize). ERA trend from recent starts adjusts the blended ERA implicitly.

How the Model Works — Expected Run Total

For Over/Under bets the model projects a total runs scored using a similar framework:

StepCalculation
Base2 × 4.5 league-average runs/game = 9.0
SP factorAverage of (home xFIP / 4.20) and (away xFIP / 4.20). Uses xFIP for consistency with the win-probability model — ERA includes luck and inflates totals for pitchers who got unlucky.
Offense factorAverage of (home wRC+ / 100) and (away wRC+ / 100).
Raw total9.0 × (0.60 × SP factor + 0.40 × off_factor)
Park adjustmentRaw total × venue run factor (e.g. Coors 1.32, Oracle Park 0.92). Blended at 60% weight: 0.40 × raw + 0.60 × park_adjusted

Weather adjustments layer on top: headwind (N/NW/NE) × 0.93 on run total • tailwind (S/SW/SE) × 1.08 • cold (≤45°F) × 0.96

Signal Usage Matrix

The Diagnostic vs Recommendation Impact table near the top of the report is the source of truth for whether each market or diagnostic layer affects recommendations, only gates recommendations, is research-only, or needs configuration. A signal being visible in diagnostics does not automatically mean it changes grades or picks.

Usage typeMeaning
Active recommendation marketTrusted or watch-stage markets can appear in ranked plays according to the V2 framework and market trust rules.
Held / gated marketResearch markets can be scored for audit, but are held from actionable output until validation clears.
Shadow researchPaused markets such as HRR component research emit diagnostics only; they do not create recommendations.
Diagnostic-only sourceContext layers such as player splits and AI review explain the run but do not change thresholds, grades, or tracker saves unless a future validation PR explicitly activates them.

Runtime Diagnostic Components

ComponentPurposeRecommendation impact today
PitcherAssessmentStarter-level hand, K%, innings, estimated pitch count, leash risk, Savant support, contact suppression, HR vulnerability, and data gaps.Feeds pitcher and batter context. It is visible in diagnostics; individual fields affect picks only where the engine explicitly consumes them.
Savant Pitch QualityFree public-data pitch-quality scores built from Savant summary and arsenal fields: whiff, put-away, xwOBA, run value, pitch mix depth, and top pitch.Diagnostic-only. It replaces the retired premium PLV path for review visibility but does not change recommendations.
Pitcher Outs Research GateShows pitcher outs candidates, projected gap, leash, expected K innings, pitch count, assessment quality, and hold reason.Research/held. Pitcher Outs remains out of actionable output until the gate validates.
HRR Component ResearchBreaks Batter H+R+RBI into hit, run, and RBI components with uncertainty and support notes.Shadow-only. HRR remains paused and cannot become actionable from the old composite threshold.
Player ContextHome/away, day/night, recent-return, role, usage, workload diagnostics, and pre-lineup active-roster hitter pools.Missing split data is neutral. Real role, injury, or workload concerns may surface as risk context.
AI ReviewOptional post-run review of recent settled results and model behavior.Advisory only. It cannot change picks, thresholds, tracker saves, or market status.

Premium Pitcher List PLV

Premium Pitcher List PLV/PLA enrichment is intentionally retired from daily output because no free live 2026 aggregate export is available. The optional loader remains for local experiments only. The replacement path is the Savant Pitch Quality diagnostic section, which uses public Statcast/Savant inputs.

Data Readiness States

StateImpactHow to read it
READYAvailableThe input loaded and is available to the relevant model or diagnostic section.
LATE DATANon-blockingThe feed usually appears later on game day, such as confirmed lineups or home-plate umpires.
PARTIALNon-blockingThe source returned usable rows, but one sub-market or optional slice is missing. Available pieces still support the run.
MARKET UNAVAILABLENon-blockingThe odds/source returned no usable rows for that market in this run. Other markets can still run normally.
SOURCE MISSINGNon-blocking unless marked otherwiseThe configured source is unavailable, sparse, or missing. Treat as a data gap, not an automatic bet risk.
LIMITEDNon-blockingThe run uses a fallback, skips an optional layer, or intentionally keeps a diagnostic isolated.
BLOCKINGAction neededA core source failed in a way that can invalidate a major part of the run, such as all props being empty.

Pre-Lineup Hitter Context

The model does not wait for confirmed batting orders to use hitter-pool context. Before official lineups post, it builds an active-roster view from known team rosters and player IDs, including batter handedness and a PA-weighted active-roster K% profile for K props. Once confirmed lineups post, lineup order, top-six K%, and confirmed platoon mix replace the roster estimate.

StateHow it is used
Pre-lineupActive-roster batter handedness and active-roster K% feed K-prop opponent context. The report labels lineup order as late data, not missing data.
Confirmed lineupExact batting order upgrades the context with lineup K%, top-six K%, projected PA, and confirmed platoon concentration gates.
No roster coverageThe model falls back to team-level K%, handedness splits, recent team batting, BVP, and pitch-type matchup data.

Report Artifacts

ArtifactUse it for
Main HTML reportDaily human review: ranked plays, trust tiers, data readiness, diagnostics, and reference guide.
Full audit HTMLCandidate-level debugging across best plays, good adds, passes, hard fades, and research holds.
Audit JSONMachine-readable evidence for settled review, AI review, market health, pitcher assessments, HR likelihood, HRR research, and pitcher outs gate candidates.
Performance reportSettled tracker analysis by grade, market, odds band, top-pick status, and prop/game grouping.
Tracker CSVSingle source for settled W/L/P, units, grades, bet type, final signal, and historical performance windows.

NRFI — No Run First Inning

ColumnMeaning
Away SP / Home SPProbable starter name (or TBD if not yet announced)
NRFI ScoreComposite score out of 10. ≥7.7 = PLAY. SP quality (40%) blends xFIP + xwOBA allowed when Savant data is available; K-rate (35%); team offense (25%)

Sizing Guide

LabelEdge RequiredSuggested Unit Size
FULL≥20%Full unit
HALF≥15%Half unit
QRTR≥15%Quarter unit (data quality cap)
(none)<15%No bet — below threshold

Confidence Guide

LabelWhat it means
HIGHBoth pitchers and both offenses have full stat profiles
MEDOne or more data sources are missing or incomplete
LOWModel running mostly on league averages — proceed with caution

Model Notes

TermDefinition
xFIPExpected Fielding Independent Pitching — ERA predictor that strips out defense and luck. Lower = better pitcher. League avg ~4.20
wRC+Weighted Runs Created Plus — offensive quality. 100 = league average. 115+ = above average. Estimated from team OPS via MLB Stats API
Recent formLast 5 starts blended at 35% weight, season stats at 65%
Park factorVenue run/HR factor applied to expected total. Coors Field ~1.32, Oracle Park ~0.92
EdgeModel win probability minus the book's implied probability (after vig removal)
EV/$100Expected value: (win_prob × profit) − (loss_prob × stake)
F5 betsFirst 5 innings — pitching weight raised to 65% (starters matter more), scaled to 4.5/9.0 IP
DK noteThe "Bet on DK" button opens DraftKings' MLB section. Game-specific deep links require DK's partner event ID, not included in the free Odds API tier

Disclaimer: For informational and research purposes only. Bet responsibly. Always verify probable pitchers and lineups before placing any bet. Past model performance does not guarantee future results.