| Record | Win% | P&L | ||
|---|---|---|---|---|
| Overall | 244W–243L–5P | 50% | -43.22 u | Last 14 days • 492 settled |
| Grade A | 40W–39L–0P | 51% | -9.46 u | |
| Grade B | 204W–204L–5P | 50% | -33.76 u |
| Record | Win% | P&L | ||
|---|---|---|---|---|
| Overall | 454W–439L–7P | 51% | -70.71 u | All-time • 900 settled |
| Grade A | 89W–70L–0P | 56% | -3.17 u | |
| Grade B | 365W–369L–7P | 50% | -67.54 u |
| Date | Type | Play | Line | Odds | Size | Result | P&L | Actual |
|---|---|---|---|---|---|---|---|---|
| 2026-05-10 | Run Line | Chicago White Sox | +1.5 | -156 | - | WIN | +0.641 | Final: Seattle Mariners 1, Chicago White |
| 2026-05-10 | K Prop | Cade Cavalli | 4.5 | -123 | - | LOSS | -1.000 | Cade Cavalli: 4.0 (line 4.5) |
| 2026-05-10 | K Prop | Davis Martin | 4.5 | -144 | - | WIN | +0.694 | Davis Martin: 9.0 (line 4.5) |
| 2026-05-10 | K Prop | Carlos Rodon | 4.5 | -124 | - | LOSS | -1.000 | Carlos Rodón: 4.0 (line 4.5) |
| 2026-05-10 | K Prop | Bryce Elder | 4.5 | -139 | - | WIN | +0.719 | Bryce Elder: 8.0 (line 4.5) |
| 2026-05-10 | K Prop | Jameson Taillon | 4.5 | -129 | - | LOSS | -1.000 | Jameson Taillon: 4.0 (line 4.5) |
| ✓ | Savant: 594 pitcher(s) with metrics |
| ✓ | Savant 1st-inn: 237 pitcher(s) with 1st-inning splits |
| ✓ | Team NRFI streaks: 30 teams | 30 with streak ≥5 |
| ✓ | Pitch-type matchup data: 30 team(s), 104 team×pitch-type combinations |
| ✓ | Handedness: 11 pitcher(s) | Team splits: 30 team(s) |
| ⚠ | Lineups not yet posted — using team tendencies & season stats (re-run after 4 PM for lineup refresh) |
| ✓ | BVP context: 12 roster team(s), 156 hitter(s) | 11 SP matchup(s), 547 career PA |
| ⚠ | Umpires not yet assigned — umpire K-rate adjustments skipped |
| ✓ | Rest data: 12 team(s) | Back-to-back: Arizona Diamondbacks, Toronto Blue Jays, Cleveland Guardians, Texas Rangers, Houston Astros, Los Angeles Angels, San Francisco Giants, New York Yankees, Los Angeles Dodgers, Seattle Mariners, Tampa Bay Rays, Baltimore Orioles |
| ✓ | Bullpen data: 12 team(s) | Fatigued pens: San Francisco Giants |
| ⚠ | Weather: 0 game(s) with meaningful conditions |
| ⚠ | F5: 0 games fetched — market keys may be unavailable for today's slate |
| ✓ | No-HR model: 6 game(s) scored | 0 above probability threshold | 0 with DK implied prob |
| ✓ | HR layers: batter Statcast 484 | batter bats 177 | batter hand splits 177 | pitcher HR splits 73 | batter pitch-type 440 | bullpen HR 31 |
| ✓ | HR model: 0 batter(s) scored | 6 game environment(s) scored | 0 strong/elite batter edge(s) |
| Matchup | Time (ET) | Away ML | Home ML | Away RL | Home RL | Total | Con ML | |
|---|---|---|---|---|---|---|---|---|
| Los Angeles Angels @ Cleveland Guardians | 6:11 PM | +149 | -181 | +1.5 (-143) | -1.5 (+119) | O/U 8.0 | HOME | Bet on DK |
| New York Yankees @ Baltimore Orioles | 6:36 PM | -175 | +144 | -1.5 (-108) | +1.5 (-112) | O/U 9.0 | AWAY | Bet on DK |
| Tampa Bay Rays @ Toronto Blue Jays | 7:08 PM | +109 | -131 | +1.5 (-194) | -1.5 (+159) | O/U 7.5 | HOME | Bet on DK |
| Arizona Diamondbacks @ Texas Rangers | 8:06 PM | +113 | -136 | +1.5 (-186) | -1.5 (+153) | O/U 7.5 | HOME | Bet on DK |
| Seattle Mariners @ Houston Astros | 8:11 PM | -143 | +119 | -1.5 (+119) | +1.5 (-143) | O/U 8.5 | AWAY | Bet on DK |
| San Francisco Giants @ Los Angeles Dodgers | 10:11 PM | +159 | -194 | +1.5 (-131) | -1.5 (+109) | O/U 9.5 | HOME | Bet on DK |
No Grade A plays today.
No bets meet the threshold today.
No bets meet the threshold today.
No NRFI/YRFI model signals meet the score threshold today.
| Game | Time (ET) | SPs | NRFI / Min | YRFI / Min | Edge | Why not |
|---|---|---|---|---|---|---|
| Seattle Mariners @ Houston Astros | 8:11 PM | Peter Lambert / George Kirby | 5.6 / 7.7 | 4.4 / 7.7 | no odds | Score 5.6 < 7.7 threshold Home SP 1st-inn data thin (19 PA < 30 gate) | No NRFI/YRFI odds available — edge gate skipped |
| Arizona Diamondbacks @ Texas Rangers | 8:06 PM | Nathan Eovaldi / Michael Soroka | 5.3 / 7.7 | 4.7 / 7.7 | no odds | Score 5.3 < 7.7 threshold No NRFI/YRFI odds available — edge gate skipped |
| San Francisco Giants @ Los Angeles Dodgers | 10:11 PM | Roki Sasaki / Trevor McDonald | 5.1 / 7.7 | 4.9 / 7.7 | no odds | Score 5.1 < 7.7 threshold Home SP 1st-inn data thin (24 PA < 30 gate) | Away SP 1st-inn data thin (4 PA < 30 gate) | No NRFI/YRFI odds available — edge gate skipped |
| Tampa Bay Rays @ Toronto Blue Jays | 7:08 PM | Kevin Gausman / Drew Rasmussen | 5.0 / 7.7 | 5.0 / 7.7 | no odds | Score 5.0 < 7.7 threshold Home SP 1st-inn data thin (29 PA < 30 gate) | Away SP 1st-inn data thin (27 PA < 30 gate) | No NRFI/YRFI odds available — edge gate skipped |
| Los Angeles Angels @ Cleveland Guardians | 6:11 PM | Joey Cantillo / TBD ⚠ Away SP | 5.0 / 7.7 | 5.0 / 7.7 | no odds | Score 5.0 < 7.7 threshold | Both SP required — one or more not found Away SP (TBD) stats unavailable — league avg used | Home SP 1st-inn data thin (29 PA < 30 gate) | Away SP 1st-inn data thin (0 PA < 30 gate) | No NRFI/YRFI odds available — edge gate skipped |
| New York Yankees @ Baltimore Orioles | 6:36 PM | Brandon Young / Ryan Weathers | 4.7 / 7.7 | 5.3 / 7.7 | no odds | Score 4.7 < 7.7 threshold Home SP 1st-inn data thin (24 PA < 30 gate) | No NRFI/YRFI odds available — edge gate skipped |
No batter HR chances clear the watchlist tier.
| Tier | Game | Time (ET) | Score | P(1+ HR) | Fair Odds | Top Threats | Environment | Risks |
|---|---|---|---|---|---|---|---|---|
| Strong HR Environment | San Francisco Giants @ Los Angeles Dodgers | 10:11 PM | 100 | 89.0% | -812 | - | Dodger Stadium HR factor 0.97 | No-HR inverse support: P(no HR) 11.0% | - |
| Strong HR Environment | Arizona Diamondbacks @ Texas Rangers | 8:06 PM | 100 | 87.9% | -730 | - | Globe Life Field HR factor 1.10 | No-HR inverse support: P(no HR) 12.1% | - |
| Strong HR Environment | New York Yankees @ Baltimore Orioles | 6:36 PM | 100 | 87.1% | -673 | - | Camden Yards HR factor 1.00 | No-HR inverse support: P(no HR) 12.9% | - |
| Strong HR Environment | Tampa Bay Rays @ Toronto Blue Jays | 7:08 PM | 98 | 86.1% | -617 | - | Rogers Centre HR factor 0.96 | No-HR inverse support: P(no HR) 13.9% | - |
| Watchlist | Los Angeles Angels @ Cleveland Guardians | 6:11 PM | 93 | 85.3% | -582 | - | Progressive Field HR factor 0.95 | - |
| Watchlist | Seattle Mariners @ Houston Astros | 8:11 PM | 87 | 80.4% | -411 | - | Unknown Venue HR factor 1.00 | - |
| Game | Time (ET) | Home SP | Away SP | Park HR | P(No HR) | P(U 1.5) | DK Implied | Edge | V2 Result |
|---|---|---|---|---|---|---|---|---|---|
| Seattle Mariners @ Houston Astros | 8:11 PM | Peter Lambert | George Kirby | 1.00 | 19.6% | 51.5% | — | — | |
| Los Angeles Angels @ Cleveland Guardians | 6:11 PM | Joey Cantillo | None | 0.95 | 14.7% | 42.8% | — | — | |
| Tampa Bay Rays @ Toronto Blue Jays | 7:08 PM | Kevin Gausman | Drew Rasmussen | 0.96 | 13.9% | 41.4% | — | — | |
| New York Yankees @ Baltimore Orioles | 6:36 PM | Brandon Young | Ryan Weathers | 1.00 | 12.9% | 39.4% | — | — | |
| Arizona Diamondbacks @ Texas Rangers | 8:06 PM | Nathan Eovaldi | Michael Soroka | 1.10 | 12.1% | 37.6% | — | — | |
| San Francisco Giants @ Los Angeles Dodgers | 10:11 PM | Roki Sasaki | Trevor McDonald | 0.97 | 11.0% | 35.2% | — | — |
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.
| Section | What it shows |
|---|---|
| V2 Ranked Plays | Grade A (Best Play) and Grade B (Good Add) candidates with full detail — check bar, key factors, risk flags, and contradiction flags |
| Full Candidate Sweep | Every evaluated bet in one compact table grouped by grade tier. Use this to understand why a play was filtered out. |
| Today's Slate | DraftKings reference lines for all games |
| Detail Sections | Game bets (with key factors, injury/weather notes) and NRFI — full signal detail below the V2 ranked plays |
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.
| # | Check | What it evaluates | PASS condition |
|---|---|---|---|
| 1 | Baby Line | Line size, batter opportunity, run-line cushion | No baby-line flags, adequate PA opportunity, RL cushion ≥0.2 runs |
| 2 | Model Edge | Projection vs DK line (edge for game bets, DIFF% for props) | Edge ≥ threshold for the market type |
| 3 | Books Agree | DK implied direction + consensus lean % across all other books | DK agrees with model AND ≥55% of consensus books lean same side |
| 4 | Matchup | Park factor, weather, pitcher handedness vs lineup splits | Park/weather support the bet direction; platoon matchup neutral or favorable |
| 5 | Role / Injury | Confirmed lineup spot, injury flags, workload concerns | No injury flags; lineup confirmed in a favorable spot |
| 6 | Game Script | Combined park × weather run environment; run-line margin vs spread | Environment supports bet direction; RL margin cushion ≥0.5 runs |
| Grade | Score | Recommendation | When to bet |
|---|---|---|---|
| A | 10–12, 0 FAILs | BEST PLAY | Core play — all six checks aligned |
| B | 7–9, ≤1 FAIL | GOOD ADD | Strong play with minor caveats |
| C | 4–6 | PASS | Thin — skip unless you have a strong personal read |
| D | 2–3 or model edge FAIL | PASS | Do not bet — weak signal |
| F | 0–1 | HARD FADE | Consider 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.
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.
| Pattern | Why it conflicts |
|---|---|
| Total Over + NRFI | High-run game expectation vs no runs in the 1st inning |
| Total Under + YRFI | Low-run game expectation vs runs scoring in the 1st |
| K Prop Over + YRFI | Pitcher dominates yet run scores early |
| Batter Overs + Total Under | Player production expected but game total is low |
| Outs Over + K Under (same SP) | Long outing projected but few strikeouts — projection inconsistency |
| Element | Meaning |
|---|---|
| Progress bar | Visual fill of monthly Odds API usage |
| used / total | Requests consumed vs. your monthly cap — each run costs ~1 request per game (combined market fetch) |
| Column | Meaning |
|---|---|
| Away ML / Home ML | DraftKings moneyline. −150 = bet $150 to win $100 • +130 = bet $100 to win $130 |
| Away RL / Home RL | Run line (always ±1.5) with its odds. −1.5(−110) = team must win by 2+ |
| Total | Over/Under line (e.g. O/U 8.5) |
| Con ML | Consensus moneyline direction — which side the majority of other books (FanDuel, BetMGM, Caesars, etc.) favor |
| Column | Meaning |
|---|---|
| Grade | V2 Framework grade (A–D) — driven by the six-check scoring system. A/B rows are highlighted. See Grade Scale below. |
| Type | Moneyline, Run Line, Total Over/Under, F5 ML, F5 Total |
| DK Odds | DraftKings price for that side |
| Implied | DK implied probability after vig removal |
| Model | Win probability our model calculates independently |
| Edge | Model% − Implied%. Min 15% to surface a game bet. |
| EV/$100 | Expected profit per $100 wagered: (win_prob × profit) − (loss_prob × $100) |
| Books | Number 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. |
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.
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:
| Step | What it calculates | Data source | Weight |
|---|---|---|---|
| 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.20pitch_edge = home_pitch − away_pitchA 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) / 100off_edge = home_bat − away_batA 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) |
|
Season stats are stable but slow to react. Recent form can signal a pitcher heating up or falling apart. The model blends both:
| Source | Weight | Stats 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.
For Over/Under bets the model projects a total runs scored using a similar framework:
| Step | Calculation |
|---|---|
| Base | 2 × 4.5 league-average runs/game = 9.0 |
| SP factor | Average 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 factor | Average of (home wRC+ / 100) and (away wRC+ / 100). |
| Raw total | 9.0 × (0.60 × SP factor + 0.40 × off_factor) |
| Park adjustment | Raw 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
| Factor | Status |
|---|---|
| Savant pitcher quality (xwOBA, xERA) | Integrated. SP quality in NRFI blends xFIP (60%) + xwOBA allowed (40%) when Savant data available. |
| Savant whiff% / put-away% | Integrated for K props. Primary projection driver when available (65% weight). |
| Opp pitcher contact quality for batter props | Integrated. Opposing pitcher xwOBA allowed adjusts batter projections (±up to 15%). |
| Lineup order / day-of lineup | Integrated for batter props (confirmed lineup spot + projected PA). Game-level model uses full-team season wRC+. |
| Factor | Status |
|---|---|
| Bullpen fatigue | Integrated (Session 16). Relief appearances over past 3 days tracked per team; tired pen (>2.7 RP/game avg) raises expected total via BULLPEN_WEIGHT (15%). Surfaced in Game Script check. |
| Rest days | Integrated (Session 16). Back-to-back teams receive a −1.5% win-probability penalty; well-rested teams receive a +1.0% bonus. Applied to full-game and F5 models. |
| Umpire K-rate | Integrated (Session 15). Static table of ~70 umpires with historical K/9 values. Wide-zone umps adjust K prop projections and NRFI scores up; tight-zone umps adjust down. Dampened ±12% cap. |
| Handedness / platoon splits | Integrated (Sessions 3 & 15). Opposing lineup wRC+ vs. SP hand sourced from MLB splits API. Platoon mismatch adjusts win probability ±2% per side (capped ±4% total). Surfaced in Matchup check. |
| Projection blend (regression to mean) | Integrated (Session 17). Stats regressed toward league average early in season: blend_w = IP ÷ 80 for pitchers, games ÷ 81 for teams. Prevents 5-IP ERA outliers from driving model in April. |
| Factor | Status |
|---|---|
| Batter vs. pitch-type matchup | Integrated. Savant team-vs-pitch-type xwOBA adjusts K prop projections and NRFI/YRFI scores when SP's primary pitch type is known. Opponent teams that struggle vs the SP's top pitch raise K over projections and NRFI scores. |
| Individual batter vs. pitcher H2H | Planned for a future phase. |
| Pre-season projection prior (Steamer/ZiPS) | Not integrated — projection endpoints not available. Regression-to-mean (blending toward league avg by IP) used as a practical substitute. |
| Column | Meaning |
|---|---|
| Away SP / Home SP | Probable starter name (or TBD if not yet announced) |
| NRFI Score | Composite 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%) |
| Label | Edge Required | Suggested Unit Size |
|---|---|---|
| FULL | ≥20% | Full unit |
| HALF | ≥15% | Half unit |
| QRTR | ≥15% | Quarter unit (data quality cap) |
| (none) | <15% | No bet — below threshold |
| Label | What it means |
|---|---|
| HIGH | Both pitchers and both offenses have full stat profiles |
| MED | One or more data sources are missing or incomplete |
| LOW | Model running mostly on league averages — proceed with caution |
| Term | Definition |
|---|---|
| xFIP | Expected 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 form | Last 5 starts blended at 35% weight, season stats at 65% |
| Park factor | Venue run/HR factor applied to expected total. Coors Field ~1.32, Oracle Park ~0.92 |
| Edge | Model win probability minus the book's implied probability (after vig removal) |
| EV/$100 | Expected value: (win_prob × profit) − (loss_prob × stake) |
| F5 bets | First 5 innings — pitching weight raised to 65% (starters matter more), scaled to 4.5/9.0 IP |
| DK note | The "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.