MLB Betting Analyzer

Tuesday, June 23 2026  |  Run at 6:50 AM
Game Bets · NRFI · K Props · Batter Props · Injuries · Weather
Odds API Quota
492 / 500 requests used (8 remaining)

PERFORMANCE

Auto-verified via MLB Stats API

Recent (14d)

RecordWin%P&L
Overall637W–325L–1P66%-17.42 uLast 14 days • 963 settled
Grade A32W–14L–0P70%+10.43 u
Grade B605W–311L–1P66%-27.85 u

All-time

RecordWin%P&L
Overall1743W–1248L–8P58%-133.52 uAll-time • 2999 settled
Grade A179W–132L–0P58%+1.97 u
Grade B1564W–1116L–8P58%-135.49 u
18 pending

Pending Bets

DateTypePlayLineOddsSizeResultP&LActual
2026-05-11Pitcher Hits AllowNathan Eovaldi5.5-143-PENDING-
2026-05-14Batter Total BasesByron Buxton1.5-121-PENDING-
2026-05-17Batter Total BasesShea Langeliers1.5-138-PENDING-
2026-05-20Batter Total BasesKyle Schwarber1.5-131-PENDING-
2026-06-01K PropChase Burns6.5-148-PENDING-
2026-06-08Batter WalksRodolfo Duran0.5-368-PENDING-
2026-06-09Batter WalksTyler Freeman0.5-440-PENDING-
2026-06-11Batter HitsJake McCarthy1.5-258-PENDING-
2026-06-11Batter WalksIldemaro Vargas0.5-434-PENDING-
2026-06-12Batter WalksEzequiel Tovar0.5-409-PENDING-
2026-06-13Batter WalksKeibert Ruiz0.5-431-PENDING-
2026-06-14Batter WalksJ.T. Realmuto0.5-370-PENDING-
2026-06-14Batter WalksJimmy Crooks0.5-296-PENDING-
2026-06-15Pitcher WalksTroy Melton1.5-144-PENDING-
2026-06-19Pitcher Earned RunCade Cavalli1.5-172-PENDING-
2026-06-20K PropNathan Eovaldi5.5-130-PENDING-
2026-06-20Pitcher Earned RunNathan Eovaldi1.5-173-PENDING-
2026-06-23Pitcher Hits AllowPeter Lambert5.5101-PENDING-

Recent Grade A Settled

DateTypePlayLineOddsSizeResultP&LActual
2026-06-22K PropDrew Rasmussen5.5-140-LOSS-1.000Drew Rasmussen: 5.0 (line 5.5)

MARKET TRUST TIERS

17 market(s) with settled tracker history
MarketTrustSeason NSeason WRSeason P&L14d N14d WR14d P&LGrade A NGrade A WRReview-only N
K Prop✅ TRUSTED29856%-6.42u5751%-4.90u13760%64
Pitcher Hits Allowed✅ TRUSTED25058%+9.49u5954%-2.41u333%6
Run Line✅ TRUSTED13854%-3.08u1164%+1.13u4163%1
Batter Walks👀 WATCH62772%-9.06u40574%-1.12u580%134
Pitcher Earned Runs👀 WATCH16661%+6.29u10261%+2.11u1100%9
Pitcher Walks👀 WATCH12359%-4.25u7154%-10.19u0-11
Batter Hits👀 WATCH3778%+3.90u956%-1.81u0-23
Batter Total Bases👀 WATCH3155%+0.66u560%+0.50u0-37
F5 ML👀 WATCH2848%+4.54u0-+0.00u0-0
No HR U1.5👀 WATCH922%-5.18u0-+0.00u0-0
Moneyline👀 WATCH650%+2.85u0-+0.00u0-0
NRFI👀 WATCH333%+0.00u0-+0.00u0-0
YRFI👀 WATCH2100%+0.00u0-+0.00u0-0
Pitcher Outs🔬 RESEARCH8545%-11.74u978%+3.00u250%8
Total🔬 RESEARCH5038%-10.52u550%-0.18u1100%7
F5 Total🔬 RESEARCH10%-1.00u10%-1.00u0-6
Batter H+R+RBI⛔ PAUSED48450%-56.69u6958%+0.39u7053%355

Raw edge is an uncalibrated ranking/debug signal. Trust tiers come from Best/Good settled tracker performance; review-only rows are shown separately.

MARKET PROMOTION CRITERIA

What each market needs to move stages
MarketCurrent StageNext StageProgressPromotion Blockers
K Prop✅ TRUSTEDMaintain Trusted2/4season P&L non-negative; 14d P&L non-negative
Pitcher Hits Allowed✅ TRUSTEDMaintain Trusted3/414d P&L non-negative
Run Line✅ TRUSTEDMaintain Trusted3/4season P&L non-negative
Batter Walks👀 WATCH✅ Trusted2/5season P&L positive; 14d P&L non-negative; Grade A sample >= 20 and WR >= 55% or Grade B sample >= 50, WR >= 55%, P&L > 0
Pitcher Earned Runs👀 WATCH✅ Trusted5/5No blocker
Pitcher Walks👀 WATCH✅ Trusted2/5season P&L positive; 14d P&L non-negative; Grade A sample >= 20 and WR >= 55% or Grade B sample >= 50, WR >= 55%, P&L > 0
Batter Hits👀 WATCH✅ Trusted1/5season sample >= 50; 14d sample >= 10; 14d P&L non-negative
Batter Total Bases👀 WATCH✅ Trusted2/5season sample >= 50; 14d sample >= 10; Grade A sample >= 20 and WR >= 55% or Grade B sample >= 50, WR >= 55%, P&L > 0
F5 ML👀 WATCH✅ Trusted2/5season sample >= 50; 14d sample >= 10; Grade A sample >= 20 and WR >= 55% or Grade B sample >= 50, WR >= 55%, P&L > 0
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% or Grade B sample >= 50, WR >= 55%, P&L > 0
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👀 Watch2/5season P&L positive; 14d sample >= 10; Grade A sample >= 10 and WR >= 52%
Total🔬 RESEARCH👀 Watch1/5season P&L positive; 14d sample >= 10; 14d WR >= 52%
F5 Total🔬 RESEARCH👀 Watch0/5season sample >= 50; season P&L positive; 14d sample >= 10
Batter H+R+RBI⛔ PAUSED🔬 Research3/5diagnostic/component model has settled validation; season 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; 0 actionable / 2 total candidate(s); season N 298, 14d N 57Can produce Best Play / Good Add signals.Maintain Trusted; season P&L non-negative; 14d P&L non-negative
Pitcher Hits Allowed✅ TRUSTEDActive recommendation market; 1 actionable / 1 total candidate(s); season N 250, 14d N 59Can produce Best Play / Good Add signals.Maintain Trusted; 14d P&L non-negative
Run Line✅ TRUSTEDActive recommendation market; 0 actionable / 0 total candidate(s); season N 138, 14d N 11Can produce Best Play / Good Add signals.Maintain Trusted; season P&L non-negative
PitcherAssessmentLIVEShared pitcher context; 29 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; 28/29 assessment(s) scored.Diagnostic-only replacement path for paid PLV; does not change recommendations.Validate supported vs unsupported settled results before activation.
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.
Batter Hits👀 WATCHActive watch-stage market; 0 actionable / 0 total candidate(s); season N 37, 14d N 9Can surface recommendations with trust caution; promotion waits for evidence.✅ Trusted; season sample >= 50; 14d sample >= 10
Batter Total Bases👀 WATCHActive watch-stage market; 0 actionable / 0 total candidate(s); season N 31, 14d N 5Can surface recommendations with trust caution; promotion waits for evidence.✅ Trusted; season sample >= 50; 14d sample >= 10
F5 ML👀 WATCHActive watch-stage market; 0 actionable / 0 total candidate(s); season N 28, 14d N 0Can surface recommendations with trust caution; promotion waits for evidence.✅ Trusted; season sample >= 50; 14d sample >= 10
Moneyline👀 WATCHActive watch-stage market; 0 actionable / 0 total candidate(s); season N 6, 14d N 0Can surface recommendations with trust caution; promotion waits for evidence.✅ Trusted; season sample >= 50; 14d sample >= 10
Pitcher Outs🔬 RESEARCHResearch / held market; 0 actionable / 0 total candidate(s); season N 85, 14d N 9Held from actionable output unless explicitly validated.👀 Watch; season P&L positive; 14d sample >= 10
No HR🔬 RESEARCHResearch / held market; 0 actionable / 0 total candidate(s)Held from actionable output unless explicitly validated.Validate forward results before promotion.
Total🔬 RESEARCHResearch / held market; 0 actionable / 0 total candidate(s); season N 50, 14d N 5Held from actionable output unless explicitly validated.👀 Watch; season P&L positive; 14d sample >= 10
F5 Total🔬 RESEARCHResearch / held market; 0 actionable / 0 total candidate(s); season N 1, 14d N 1Held from actionable output unless explicitly validated.👀 Watch; season sample >= 50; season P&L positive
Batter H+R+RBI⛔ PAUSEDPaused shadow market; 0 actionable / 0 total candidate(s); season N 484, 14d N 69No actionable recommendations.🔬 Research; diagnostic/component model has settled validation; season P&L non-negative
Batter Hits+Runs+RBIs⛔ PAUSEDPaused shadow market; 0 actionable / 0 total candidate(s)No actionable recommendations.Build or validate replacement signal before unpausing.
Batter Hits Runs RBIs⛔ PAUSEDPaused shadow market; 0 actionable / 0 total candidate(s)No actionable recommendations.Build or validate replacement signal before unpausing.
HRR Component Research⛔ PAUSEDShadow component research; 0 candidate(s) emitted.No recommendation impact while HRR remains paused.Validate component record before unpausing HRR.
AI ReviewAPI ERROROptional post-run advisory review of settled results and model behavior.Advisory only; cannot change recommendations, tracker saves, or thresholds.Provider call failed; check quota, billing, model access, or key project.

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: 705 pitcher(s) with metrics
READYAvailableSavant 1st-inn: 290 pitcher(s) with 1st-inning splits
READYAvailableTeam NRFI streaks: 30 teams | 30 with streak ≥5
READYAvailablePitch-type matchup data: 30 team(s), 198 team×pitch-type combinations
READYAvailablePitcher arsenal: 690 pitcher(s), 2981 pitch-type profiles
READYAvailableBatter pitch-type profiles: 527 player(s)
READYAvailableHandedness: 29 pitcher(s) | Team splits: 30 team(s)
READYAvailableTeam recent batting: 30 team(s) with last-7 K/BB/contact rates
LATE DATANon-blockingLineups not yet posted — using team tendencies & season stats (re-run after 4 PM for lineup refresh)
READYAvailableBVP context: 30 roster team(s), 390 hitter(s) | 29 SP matchup(s), 957 career PA
READYAvailableBatter handedness: 390 active-roster player(s) available pre-lineup; lineup order refreshes when posted
LATE DATANon-blockingUmpires not yet assigned — umpire K-rate adjustments skipped
READYAvailableRest data: 30 team(s) | Back-to-back: New York Yankees, Baltimore Orioles, Tampa Bay Rays, Texas Rangers, Los Angeles Dodgers, San Diego Padres, Milwaukee Brewers, Toronto Blue Jays, Arizona Diamondbacks, Los Angeles Angels, Miami Marlins, Houston Astros, St. Louis Cardinals, Atlanta Braves, Philadelphia Phillies, Kansas City Royals, Chicago Cubs, Chicago White Sox, New York Mets, Cleveland Guardians, Colorado Rockies, Detroit Tigers, Cincinnati Reds, Minnesota Twins, Washington Nationals, Boston Red Sox
READYAvailableBullpen data: 30 team(s) | Fatigued pens: Texas Rangers, Miami Marlins, St. Louis Cardinals, Chicago Cubs, Chicago White Sox
READYAvailableBullpen HR vulnerability: 31 team(s)
READYAvailableWeather: 0 game(s) with meaningful conditions
READYAvailableLine movement: 106 market side(s) checked | 106 opening snapshot(s) created | 0 with movement
READYAvailableMarket health: 17 market(s) loaded from tracker
READYAvailablePlayer context: lazy game-log split and recent-return diagnostics enabled
LIMITEDNon-blockingF5: disabled
READYAvailableNo-HR model: 15 game(s) scored | 1 above probability threshold | 0 with DK implied prob
READYAvailableHR layers: batter Statcast 573 | batter bats 402 | batter hand splits 152 | pitcher HR splits 67 | batter pitch-type 527 | bullpen HR 31
READYAvailableHR model: 0 batter(s) scored | 15 game environment(s) scored | 0 strong/elite batter edge(s)
READYAvailableCore mode: only pitching props are surfaced in ranked plays, tracker saves, and reports

TODAY'S SLATE

DraftKings lines + consensus direction
MatchupTime (ET)Away MLHome MLAway RLHome RLTotalCon ML
Houston Astros @ Toronto Blue Jays4:08 PM+113-136+1.5 (-167)-1.5 (+138)O/U 8.5HOMEBet on DK
New York Yankees @ Detroit Tigers6:41 PM-118-102-1.5 (+148)+1.5 (-180)O/U 7.5AWAYBet on DK
Kansas City Royals @ Tampa Bay Rays6:41 PM+158-193+1.5 (-136)-1.5 (+113)O/U 8.0HOMEBet on DK
Texas Rangers @ Miami Marlins6:41 PM+129-156+1.5 (-163)-1.5 (+135)O/U 8.5HOMEBet on DK
Seattle Mariners @ Pittsburgh Pirates6:41 PM-125+104-1.5 (+134)+1.5 (-162)O/U 8.0AWAYBet on DK
Philadelphia Phillies @ Washington Nationals6:46 PM-163+135-1.5 (-101)+1.5 (-120)O/U 8.5AWAYBet on DK
Chicago Cubs @ New York Mets7:11 PM+100-120-1.5 (+161)+1.5 (-197)O/U 8.5HOMEBet on DK
Milwaukee Brewers @ Cincinnati Reds7:11 PM-123+102-1.5 (+128)+1.5 (-155)O/U 9.5AWAYBet on DK
Cleveland Guardians @ Chicago White Sox7:41 PM-114-105-1.5 (+149)+1.5 (-181)O/U 7.0AWAYBet on DK
Los Angeles Dodgers @ Minnesota Twins7:41 PM-175+144-1.5 (+102)+1.5 (-123)O/U 9.0AWAYBet on DK
Arizona Diamondbacks @ St. Louis Cardinals7:46 PM-107-112-1.5 (+156)+1.5 (-190)O/U 8.5HOMEBet on DK
Boston Red Sox @ Colorado Rockies8:41 PM-168+139-1.5 (-106)+1.5 (-114)O/U 10.5AWAYBet on DK
Baltimore Orioles @ Los Angeles Angels9:39 PM-156+129-1.5 (+104)+1.5 (-126)O/U 9.0AWAYBet on DK
Atlanta Braves @ San Diego Padres9:40 PM-112-108-1.5 (+153)+1.5 (-186)O/U 8.0HOMEBet on DK
Athletics @ San Francisco Giants9:46 PM+104-125+1.5 (-198)-1.5 (+162)O/U 8.5HOMEBet on DK

GRADE A PLAYS — SWEEP

0 Grade A | 1 Grade B | 4 Review-Only | 0 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 | 4 Review-Only

No Grade A plays today.

▼ Good Adds — Grade B (1 play(s))
▸ Pitcher Hits Allowed — 1 play(s) (B 1)
B GOOD ADD ✅ Good Add Pitcher Hits Allowed — Peter Lambert Under 5.5 (+101) diff 21.8% Bet on DK
Game: Houston Astros @ Toronto Blue Jays  |  Start: 4:08 PM
Best Book / Line: BetMGM Under 5.5 +105 | best price
Checks: !   ► GOOD ADD
▼ Key Factors & Flags (11)
  • Proj 4.3 vs line 5.5 | DIFF% 21.8% (min 15%)
  • Basis: H/IP 0.75 over 5.4 IP (WHIP 1.16, BB% 9.3%)
  • Workload blend: 5.4 IP (HIGH; season 5.8 IP/GS; recent 5.6 IP/5 start(s); assessment 5.8 IP; outs market 16.5 outs/5.5 IP (3 books); recent return/ramp penalty)
  • DK books agree: NO (over 53.5% / under 46.5%)
  • Consensus (2 books): 2/2 OVER -- IN LINE
  • Opp batting adj: -0.0 hits, contact 1.06x (Opp batting (Toronto Blue Jays): wRC+ 98)
  • BVP (active roster) vs Peter Lambert: 22 PA | K% 13.6% | BB% 0.0% | AVG .300 | OPS .718
  • Opponent K profile: composite 18.6%, split 19.2%, L7 19.3%, season 19.6%, BVP 13.6%/22 PA (adj 0.90x)
  • Opp lineup: Opposing lineup (Toronto Blue Jays) not yet posted — using team contact profile & season stats
  • Prop history (pitcher_hits_allowed Under 5.5): L5 5/5 (100%) | L10 9/10 (90%) | L20 9/11 (82%) | Season 9/11 (82%) | H2H/BVP N/A | Recent Avg 3.90 | Season Avg 4.18
  • Prop trend: Pitcher Hits Allowed L10: 9/10 under 5.5; recent avg down -0.28 vs season
▼ Review-Only / Do-Not-Bet Signals (4 signal(s))
▸ K Prop — 2 play(s) (B 1 | C 1)
B MONITOR ◇ Monitor K Prop — Peter Lambert Over 3.5 (-112) diff 26.6% Bet on DK
Game: Houston Astros @ Toronto Blue Jays  |  Start: 4:08 PM
Best Book / Line: DK Over 3.5 -112 | exact
Checks:   ► MONITOR
▼ Key Factors & Flags (15)
  • Trifecta 1 (DIFF% 26.6% vs 17% min): PASS
  • Trifecta 2 (market agrees): FAIL (over 49.8% / under 50.2%)
  • Trifecta 3 (Abs diff +0.93K vs 1.0 min): FAIL
  • Consensus (6 books): 6/6 OVER -- IN LINE (delta +0.00)
  • Peter Lambert: K/9 7.9, proj 4.4K over 5.7 IP (season 5.8 IP/GS; recent 5.6 IP/5 start(s); outs market 16.5 outs/5.5 IP (3 books))
  • Savant: whiff% 24.3% | put-away% 18.1% | xwOBA 0.294 | top pitch: Changeup (39% whiff, 0% usage)
  • Pitch-type matchup: Toronto Blue Jays whiff% vs Changeup: 24.1% (low vs 24.5% avg, adj 1.00x); usage-weighted from raw 0.99x at 22% usage
  • BVP (active roster) vs Peter Lambert: 22 PA | K% 13.6% | BB% 0.0% | AVG .300 | OPS .718
  • BVP K adjustment: 0.96x from 22 roster PA
  • Opponent K profile: composite 18.6%, split 19.2%, L7 19.3%, season 19.6%, active roster 18.4%/6 hitters, BVP 13.6%/22 PA (adj 0.90x)
  • Opp lineup: Opposing lineup (Toronto Blue Jays) not yet posted — using team K tendencies, handedness splits & season stats; active-roster K% 18.4% (6 hitters); active-roster hand mix: 5/13 bats with platoon edge
  • Prop history (pitcher_strikeouts Over 3.5): L5 4/5 (80%) | L10 8/10 (80%) | L20 9/11 (82%) | Season 9/11 (82%) | H2H/BVP N/A | Recent Avg 5.00 | Season Avg 5.27
  • Prop trend: K L10: 8/10 over 3.5; recent avg down -0.27 vs season
⚠ Weak Model Edge: diff_pct 26.6% vs 17% min using selected line 3.5 clears, but raw gap +0.93 <= 1 min
⚠ ⚠ Model edge fail: diff_pct 26.6% vs 17% min using selected line 3.5 clears, but raw gap +0.93 <= 1 min — posture note at D
C ALT / DERISK ↘ Alt / Derisk K Prop — Shane Bieber Over 4.5 (-111) diff 0.5% Bet on DK
Game: Houston Astros @ Toronto Blue Jays  |  Start: 4:08 PM
Best Book / Line: BetMGM Over 4.5 +110 | best price
Checks: !   ► ALT / DERISK
▼ Key Factors & Flags (16)
  • Trifecta 1 (DIFF% 0.5% vs 17% min): FAIL
  • Trifecta 2 (market agrees): FAIL (over 49.6% / under 50.4%)
  • Trifecta 3 (Abs diff +0.02K vs 1.0 min): FAIL
  • Consensus (5 books): 0/5 OVER -- IN LINE (delta +0.00)
  • SP stats not found -- used league avg K/9 8.5
  • Savant: pitcher not in dataset — projection uses FanGraphs K/9 only
  • BVP (active roster) vs Shane Bieber: 58 PA | K% 15.5% | BB% 5.2% | AVG .382 | OPS .959
  • BVP K adjustment: 0.92x from 58 roster PA
  • Opponent K profile: composite 20.8%, split 20.7%, L7 22.6%, season 21.8%, BVP 15.5%/58 PA (adj 0.96x)
  • Opp lineup: Opposing lineup (Houston Astros) not yet posted — using team K tendencies, handedness splits & season stats; active-roster hand mix: 4/13 bats with platoon edge
  • Prop history (pitcher_strikeouts Over 4.5): L5 N/A | L10 N/A | L20 N/A | Season N/A | H2H/BVP N/A | Recent Avg N/A | Season Avg N/A
  • Prop trend: K: no recent game-log sample
⚠ Weak Model Edge: Insufficient model edge — diff_pct 0.5% vs 17% min using selected line 4.5
⚠ Books Disagree: blended market against 46.7% (6 books) | books against us 0% (6 books) — strongly disagree
⚠ Matchup: [!] Opp lineup wRC+ 117 vs RHP — tough platoon matchup
⚠ ⚠ Model edge fail: Insufficient model edge — diff_pct 0.5% vs 17% min using selected line 4.5 — posture note at D
▸ Pitcher Earned Runs — 2 play(s) (C 2)
C ALT / DERISK ↘ Alt / Derisk Pitcher Earned Runs — Peter Lambert Under 2.5 (+119) diff 8.0% Bet on DK
Game: Houston Astros @ Toronto Blue Jays  |  Start: 4:08 PM
Best Book / Line: DK Under 2.5 +119 | exact
Checks:   ► ALT / DERISK
▼ Key Factors & Flags (13)
  • Proj 2.3 vs line 2.5 | DIFF% 8.0% (min 20%)
  • Basis: run/9 3.85 over 5.4 IP (xFIP 4.43, ERA 3.25)
  • Workload blend: 5.4 IP (HIGH; season 5.8 IP/GS; recent 5.6 IP/5 start(s); assessment 5.8 IP; outs market 16.5 outs/5.5 IP (3 books); recent return/ramp penalty)
  • DK books agree: NO (over 57.3% / under 42.7%)
  • Opp batting adj: -0.0 ER, contact/damage 1.03x (Opp batting (Toronto Blue Jays): wRC+ 98)
  • BVP (active roster) vs Peter Lambert: 22 PA | K% 13.6% | BB% 0.0% | AVG .300 | OPS .718
  • Opponent K profile: composite 18.6%, split 19.2%, L7 19.3%, season 19.6%, BVP 13.6%/22 PA (adj 0.90x)
  • Opp lineup: Opposing lineup (Toronto Blue Jays) not yet posted — using team contact profile & season stats
  • Prop history (pitcher_earned_runs Under 2.5): L5 4/5 (80%) | L10 7/10 (70%) | L20 7/11 (64%) | Season 7/11 (64%) | H2H/BVP N/A | Recent Avg 1.90 | Season Avg 2.09
  • Prop trend: Pitcher Earned Runs L10: 7/10 under 2.5; strong exact-market hit rate
⚠ Weak Model Edge: Insufficient model edge — diff_pct 8.0% vs 20% min using selected line 2.5
⚠ Books Disagree: blended market against 42.7% (1 books)
⚠ ⚠ Model edge fail: Insufficient model edge — diff_pct 8.0% vs 20% min using selected line 2.5 — posture note at D
C ALT / DERISK ↘ Alt / Derisk Pitcher Earned Runs — Shane Bieber Under 2.5 (-170) Bet on DK
Game: Houston Astros @ Toronto Blue Jays  |  Start: 4:08 PM
Best Book / Line: DK Under 2.5 -170 | exact
Checks: !   ► ALT / DERISK
▼ Key Factors & Flags (13)
  • Proj 2.5 vs line 2.5 | DIFF% 0.0% (min 20%)
  • Basis: run/9 4.24 over 5.1 IP (xFIP 4.20, ERA 4.30)
  • Workload blend: 5.1 IP (MEDIUM; default 5.0 IP; assessment 5.8 IP; outs market 15.5 outs/5.2 IP (3 books); recent return/ramp penalty)
  • DK books agree: YES (over 41.2% / under 58.8%)
  • SP stats not found -- used league averages
  • Opp batting adj: +0.0 ER, contact/damage 1.02x (Opp batting (Houston Astros): wRC+ 101)
  • BVP (active roster) vs Shane Bieber: 58 PA | K% 15.5% | BB% 5.2% | AVG .382 | OPS .959
  • Opponent K profile: composite 20.8%, split 20.7%, L7 22.6%, season 21.8%, BVP 15.5%/58 PA (adj 0.96x)
  • Opp lineup: Opposing lineup (Houston Astros) not yet posted — using team contact profile & season stats
  • Prop history (pitcher_earned_runs Under 2.5): L5 N/A | L10 N/A | L20 N/A | Season N/A | H2H/BVP N/A | Recent Avg N/A | Season Avg N/A
  • Prop trend: Pitcher Earned Runs: no recent game-log sample
⚠ Weak Model Edge: Insufficient model edge — diff_pct 0.0% vs 20% min using selected line 2.5
⚠ ⚠ Model edge fail: Insufficient model edge — diff_pct 0.0% vs 20% min using selected line 2.5 — posture note at D

GAME BETS — DETAIL

0 bet(s) above 15% edge threshold

No bets meet the threshold today.

F5 BETS — DETAIL

0 bet(s) above 8% edge threshold

No bets meet the threshold today.

NRFI — NO RUN FIRST INNING

Score threshold: 7.7+ | SP 40% / K% 35% / Off 25%

No NRFI/YRFI model signals meet the score threshold today.

HR LIKELIHOOD MODEL

Ranked by true HR chance first: recent form, matchup, lineup, park/weather, and game context lead; odds/edge are context

HR model skipped or unavailable for this run.

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

No games scored — model may have been skipped or data unavailable.

SAVANT PITCH QUALITY DIAGNOSTICS

29 pitcher(s) with public-data pitch-quality diagnostics
PitcherGameOverallWhiffContactArsenalTop PitchNotes / Data Gaps
Jesús LuzardoPhiladelphia Phillies vs Washington Nationals65.569.164.04Sweeper (47% whiff, 35% usage)Savant whiff 31.7%, put-away 22.0%, xwOBA 0.287, arsenal coverage 4 pitch type(s)
Casey MizeDetroit Tigers vs New York Yankees64.763.170.55Slider (34% whiff, 26% usage)Savant whiff 28.1%, put-away 23.3%, xwOBA 0.274, arsenal coverage 5 pitch type(s)
Sean SullivanColorado Rockies vs Boston Red Sox61.313.1100.04Cutter (12% whiff, 14% usage)Savant whiff 10.2%, put-away 8.9%, xwOBA 0.205, arsenal coverage 4 pitch type(s)
Kendry RojasMinnesota Twins vs Los Angeles Dodgers60.167.755.54Slider (35% whiff, 28% usage)Savant whiff 29.2%, put-away 25.6%, xwOBA 0.304, arsenal coverage 4 pitch type(s)
Parker MessickCleveland Guardians vs Chicago White Sox58.256.364.06Changeup (40% whiff, 24% usage)Savant whiff 26.1%, put-away 20.4%, xwOBA 0.287, arsenal coverage 6 pitch type(s)
Carlos RodónNew York Yankees vs Detroit Tigers58.061.759.05Changeup (35% whiff, 14% usage)Savant whiff 27.7%, put-away 22.5%, xwOBA 0.297, arsenal coverage 5 pitch type(s)
Peter LambertHouston Astros vs Toronto Blue Jays54.950.360.56Changeup (39% whiff, 22% usage)Savant whiff 24.3%, put-away 18.1%, xwOBA 0.294, arsenal coverage 6 pitch type(s)
Shane McClanahanTampa Bay Rays vs Kansas City Royals53.860.353.04Changeup (36% whiff, 29% usage)Savant whiff 27.6%, put-away 21.4%, xwOBA 0.309, arsenal coverage 4 pitch type(s)
George KirbySeattle Mariners vs Pittsburgh Pirates51.144.058.06Sweeper (26% whiff, 28% usage)Savant whiff 21.1%, put-away 18.0%, xwOBA 0.299, arsenal coverage 6 pitch type(s)
Kodai SengaNew York Mets vs Chicago Cubs49.866.533.56Split-Finger (40% whiff, 22% usage)Savant whiff 29.2%, put-away 24.5%, xwOBA 0.348, arsenal coverage 6 pitch type(s)
Sandy AlcantaraMiami Marlins vs Texas Rangers49.544.054.07Changeup (30% whiff, 23% usage)Savant whiff 21.4%, put-away 17.4%, xwOBA 0.307, arsenal coverage 7 pitch type(s)
Sean BurkeChicago White Sox vs Cleveland Guardians48.746.551.56Slider (32% whiff, 17% usage)Savant whiff 23.0%, put-away 16.9%, xwOBA 0.312, arsenal coverage 6 pitch type(s)
Luinder AvilaKansas City Royals vs Tampa Bay Rays48.249.645.05Slider (38% whiff, 26% usage)Savant whiff 25.1%, put-away 15.8%, xwOBA 0.325, arsenal coverage 5 pitch type(s)
Edward CabreraChicago Cubs vs New York Mets47.156.237.05Slider (46% whiff, 11% usage)Savant whiff 27.1%, put-away 18.2%, xwOBA 0.341, arsenal coverage 5 pitch type(s)
Sonny GrayBoston Red Sox vs Colorado Rockies46.841.852.56Sweeper (36% whiff, 18% usage)Savant whiff 21.0%, put-away 16.1%, xwOBA 0.310, arsenal coverage 6 pitch type(s)
Brandon SproatMilwaukee Brewers vs Cincinnati Reds43.751.534.06Curveball (34% whiff, 11% usage)Savant whiff 24.7%, put-away 18.4%, xwOBA 0.347, arsenal coverage 6 pitch type(s)
Robbie RaySan Francisco Giants vs Athletics42.851.835.55Slider (36% whiff, 27% usage)Savant whiff 25.9%, put-away 16.3%, xwOBA 0.344, arsenal coverage 5 pitch type(s)
Shane BazBaltimore Orioles vs Los Angeles Angels41.843.540.55Curveball (29% whiff, 33% usage)Savant whiff 21.1%, put-away 17.6%, xwOBA 0.334, arsenal coverage 5 pitch type(s)
JR RitchieAtlanta Braves vs San Diego Padres41.042.537.06Curveball (37% whiff, 26% usage)Savant whiff 22.4%, put-away 14.1%, xwOBA 0.341, arsenal coverage 6 pitch type(s)
Justin WrobleskiLos Angeles Dodgers vs Minnesota Twins40.334.148.074-Seam Fastball (20% whiff, 50% usage)Savant whiff 17.5%, put-away 15.3%, xwOBA 0.319, arsenal coverage 7 pitch type(s)
Mitch KellerPittsburgh Pirates vs Seattle Mariners38.641.435.07Sweeper (22% whiff, 17% usage)Savant whiff 20.8%, put-away 16.1%, xwOBA 0.345, arsenal coverage 7 pitch type(s)
Eduardo RodriguezArizona Diamondbacks vs St. Louis Cardinals36.739.136.054-Seam Fastball (23% whiff, 40% usage)Savant whiff 18.9%, put-away 17.6%, xwOBA 0.343, arsenal coverage 5 pitch type(s)
Ryan JohnsonLos Angeles Angels vs Baltimore Orioles35.838.417.54Split-Finger (36% whiff, 28% usage)Savant whiff 22.2%, put-away 10.3%, xwOBA 0.380, arsenal coverage 4 pitch type(s)
Aaron CivaleAthletics vs San Francisco Giants35.338.927.56Curveball (26% whiff, 23% usage)Savant whiff 20.3%, put-away 14.6%, xwOBA 0.360, arsenal coverage 6 pitch type(s)
Kyle LeahySt. Louis Cardinals vs Arizona Diamondbacks33.745.920.06Changeup (43% whiff, 13% usage)Savant whiff 22.1%, put-away 17.9%, xwOBA 0.375, arsenal coverage 6 pitch type(s)
Cal QuantrillTexas Rangers vs Miami Marlins32.732.930.054-Seam Fastball (28% whiff, 16% usage)Savant whiff 18.9%, put-away 11.4%, xwOBA 0.355, arsenal coverage 5 pitch type(s)
Nick LodoloCincinnati Reds vs Milwaukee Brewers29.939.313.04Curveball (33% whiff, 26% usage)Savant whiff 21.1%, put-away 13.3%, xwOBA 0.389, arsenal coverage 4 pitch type(s)
Zack LittellWashington Nationals vs Philadelphia Phillies23.127.513.05Slider (20% whiff, 29% usage)Savant whiff 15.3%, put-away 13.2%, xwOBA 0.389, arsenal coverage 5 pitch type(s)
Shane BieberToronto Blue Jays vs Houston Astros---0-Savant pitcher summary missing, Savant arsenal missing

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

29 starter assessment(s) emitted by Pitcher Engine
PitcherTeamHandSeason K%Recent IPSeason IPK IPPitch CtLeashSavantContactHR VulnQualityFlags / Notes
Eduardo RodriguezArizona Diamondbacks vs St. Louis CardinalsL18.3%5.55.95.892normalfull36.0064.00season+recent+savant+savant_quality+hand-
Aaron CivaleAthletics vs San Francisco GiantsR15.8%4.44.94.874shortfull27.5072.50season+recent+savant+savant_quality+handrecent leash 4.4 IP/start
JR RitchieAtlanta Braves vs San Diego PadresR20.2%4.65.15.277shortfull37.0063.00season+recent+savant+savant_quality+handrecent leash 4.6 IP/start
Shane BazBaltimore Orioles vs Los Angeles AngelsR20.3%6.25.96.0104deepfull40.5059.50season+recent+savant+savant_quality+hand-
Sonny GrayBoston Red Sox vs Colorado RockiesR20.2%5.85.35.497normalfull52.5047.50season+recent+savant+savant_quality+hand-
Edward CabreraChicago Cubs vs New York MetsR20.6%3.95.24.965shortfull37.0063.00season+recent+savant+savant_quality+handrecent leash 3.9 IP/start
Sean BurkeChicago White Sox vs Cleveland GuardiansR26.3%5.55.15.292normalfull51.5048.50season+recent+savant+savant_quality+handpatient opponent BB% 10.2%
Nick LodoloCincinnati Reds vs Milwaukee BrewersL18.2%5.35.35.489normalfull13.0087.00season+recent+savant+savant_quality+handpatient opponent BB% 10.8%
Parker MessickCleveland Guardians vs Chicago White SoxL25.1%5.35.85.789normalfull64.0036.00season+recent+savant+savant_quality+hand-
Sean SullivanColorado Rockies vs Boston Red SoxL18.0%3.53.55.159shortfull100.000.00season+recent+savant+savant_quality+handrecent leash 3.5 IP/start
Casey MizeDetroit Tigers vs New York YankeesR23.7%4.55.25.176shortfull70.5029.50season+recent+savant+savant_quality+handrecent leash 4.5 IP/start, patient opponent BB% 11.1%
Peter LambertHouston Astros vs Toronto Blue JaysR21.3%5.65.85.894normalfull60.5039.50season+recent+savant+savant_quality+handlow-K contact opponent 19.6%
Luinder AvilaKansas City Royals vs Tampa Bay RaysR20.8%4.23.94.770shortfull45.0055.00season+recent+savant+savant_quality+handrecent leash 4.2 IP/start, low-K contact opponent 19.2%
Ryan JohnsonLos Angeles Angels vs Baltimore OriolesR16.7%2.64.24.944shortfull17.5082.50season+recent+savant+savant_quality+handrecent leash 2.6 IP/start, patient opponent BB% 9.9%
Justin WrobleskiLos Angeles Dodgers vs Minnesota TwinsL17.5%5.66.36.194normalfull48.0052.00season+recent+savant+savant_quality+hand-
Sandy AlcantaraMiami Marlins vs Texas RangersR18.8%6.66.56.5111deepfull54.0046.00season+recent+savant+savant_quality+hand-
Brandon SproatMilwaukee Brewers vs Cincinnati RedsR22.4%4.54.74.776shortfull34.0066.00season+recent+savant+savant_quality+handrecent leash 4.5 IP/start, patient opponent BB% 10.0%
Kendry RojasMinnesota Twins vs Los Angeles DodgersL22.7%2.84.05.047shortfull55.5044.50season+recent+savant+savant_quality+handrecent leash 2.8 IP/start, patient opponent BB% 10.6%
Kodai SengaNew York Mets vs Chicago CubsR22.5%3.34.04.455shortfull33.5066.50season+recent+savant+savant_quality+handrecent leash 3.3 IP/start, patient opponent BB% 11.2%
Carlos RodónNew York Yankees vs Detroit TigersL25.6%5.65.15.494normalfull59.0041.00season+recent+savant+savant_quality+handpatient opponent BB% 9.8%
Jesús LuzardoPhiladelphia Phillies vs Washington NationalsL25.8%5.95.76.099normalfull64.0036.00season+recent+savant+savant_quality+hand-
Mitch KellerPittsburgh Pirates vs Seattle MarinersR18.9%4.75.55.379shortfull35.0065.00season+recent+savant+savant_quality+handrecent leash 4.7 IP/start
Robbie RaySan Francisco Giants vs AthleticsL22.1%4.95.25.282shortfull35.5064.50season+recent+savant+savant_quality+handrecent leash 4.9 IP/start, patient opponent BB% 9.8%
George KirbySeattle Mariners vs Pittsburgh PiratesR21.3%5.46.05.991normalfull58.0042.00season+recent+savant+savant_quality+handpatient opponent BB% 9.6%
Kyle LeahySt. Louis Cardinals vs Arizona DiamondbacksR20.4%4.85.05.080shortfull20.0080.00season+recent+savant+savant_quality+handrecent leash 4.8 IP/start, low-K contact opponent 19.7%
Shane McClanahanTampa Bay Rays vs Kansas City RoyalsL22.8%4.54.84.876shortfull53.0047.00season+recent+savant+savant_quality+handrecent leash 4.5 IP/start
Cal QuantrillTexas Rangers vs Miami MarlinsR16.4%2.2-5.037shortfull30.0070.00season+recent+savant+savant_quality+handrecent leash 2.2 IP/start
Shane BieberToronto Blue Jays vs Houston AstrosR---5.896unknownmissing50.0050.00fallback+handseason_pitcher_stats_missing, recent_form_unavailable, savant_summary_missing
Zack LittellWashington Nationals vs Philadelphia PhilliesR15.3%4.84.74.780shortfull13.0087.00season+recent+savant+savant_quality+handrecent leash 4.8 IP/start

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

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 selected/displayed sportsbook lineEdge ≥ threshold for the market type
3Books AgreeBlended market direction + consensus lean % across available booksBlended market 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: 100% book consensus plus a raw projection cushion of at least 1.5 units.
✅ 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.