Daily Bet Research Report β€” Tuesday, September 22, 2026

Start: 11:13 ET | End: 11:24 ET

Bankroll: $60.23 | Stake (12.5%, one play): $7.53 Record: 3-1-0 (Main bets, main leg, since 9/14 reset) | Hit rate: 75.0% Slate: 16 games Β· 8 analysed Β· 17 sources Β· Playbooks: MLB (v1) Β· Verified at 11:14 ET


Section 1: Verification

Verified against statsapi.mlb.com/api/v1/schedule (hydrate=probablePitcher) at 11:14 ET β€” 16 games. Cross-checked participants and event IDs against the ESPN core API events list and each game's odds payload team refs (e.g. TOR@BAL resolved to teams/14 away, teams/1 home), so every price below is tied to a confirmed matchup rather than board order.

NFL, NHL and NBA: no events today. sports.core.api.espn.com/.../football/leagues/nfl/events?dates=20260922 returned count: 0. MLB-only slate, MLB playbook only β€” no stub playbook was used.


Section 2: Game Analysis

Sport Game Time (ET) DK Line Note Play?
MLB TB @ NYY (G1, makeup) 1:05 PM NYY -131 / O-U 7.0 Both starters heavily lucky (Martinez βˆ’1.098, RodΓ³n βˆ’1.032 ERAβˆ’xERA) but 12 mph wind in from LF at 63Β° kills the over. No β€” wind negates
MLB CLE @ BOS 6:45 PM BOS -132 / O-U 7.0 Market prices Messick's 2.57 ERA over Tolle's 3.02, but xERA inverts it β€” Tolle 2.66, Messick 3.11. #2
MLB STL @ PIT 6:40 PM PIT -155 / O-U 7.0 Jared Jones ERA 4.17 vs xERA 3.45 (+0.719 unlucky) and PIT's pen got Monday off after two one-run wins. #1
MLB CIN @ ATL 7:15 PM ATL -193 / O-U 9.0 Williamson xERA 6.40 and Ritchie xERA 5.30 β€” worst combined starter pairing on the slate at 11.70. #3
MLB TOR @ BAL 6:35 PM BAL -122 / O-U 7.5 Scherzer ERA 6.07 vs xERA 4.36 = +1.709, the largest gap on the board, and BAL has scored 4 runs in 3 games. #4
MLB MIL @ PHI 6:40 PM PHI -137 / O-U 7.0 Wheeler ERA 2.99 = xERA 2.99 β€” priced exactly right, and MIL dog at 2.13 is outside the band. No β€” no edge
MLB WSH @ DET 6:40 PM DET -156 / O-U 8.0 WSH on its 4th straight game after dumping pen innings in a 9-2 loss, but Jackson Kent has no Savant row. No β€” data gap
MLB TB @ NYY (G2) 7:05 PM NYY -142 / O-U 6.5 Fried ERA 2.63 vs xERA 2.50 β€” genuinely elite, and the total already dropped 7.0 β†’ 6.5. No β€” market correct

Unanalysed: 8 of 16. ARI @ COL is a Hard Rule H1 no-play (Coors Field). MIA @ CHC and SD @ LAD both fail H3 β€” the Cubs and Dodgers have no probable pitcher listed, so no starter confirmation is possible; the Wrigley total is additionally an H2 no-play without a confirmed pitcher to price against. The remaining five (CWS @ KC, NYM @ TEX, LAA @ ATH, HOU @ SEA, MIN @ SF) are 7:40 PM or later West-leaning games that I deprioritised for time after the 8-game floor was met with better-informed spots; I fetched xERA for their starters but not odds, so they are excluded rather than half-priced.


Section 3: Today's Plays

# Play Sport Market Odds Confidence Calibrated Edge %
1 Pittsburgh Pirates ML MLB Moneyline 1.64 62% 59% βˆ’1.98%
2 Boston Red Sox ML MLB Moneyline 1.75 61% 58% +0.86%
3 Over 9.0 runs, CIN @ ATL MLB Over/Under 1.81 59% 55% βˆ’0.25%
4 Toronto Blue Jays ML MLB Moneyline 2.01 54% 50% +0.25%

Negative-edge flags: #1 Pittsburgh (βˆ’1.98%) and #3 Over 9.0 (βˆ’0.25%). Pittsburgh ranks first on calibrated confidence β€” which is what the ranking rule asks for, since hit rate is the objective β€” but it is the worst-priced play on the card, because the market already moved to it (see below). If Mitch is optimising for expected value rather than hit rate, Boston is the only play here with a positive edge and it is one point of calibrated confidence behind.


Section 4: Reasoning

#1 β€” Pittsburgh Pirates ML (1.64)

Jared Jones carries a 4.17 ERA against a 3.45 xERA, a +0.719 gap β€” Β§2's buy signal, meaning the market is fading him on results that overstate how badly he has actually pitched. Andre Pallante sits the other way at βˆ’0.345 (3.69 ERA, 4.04 xERA), so the luck-stripped starter matchup is roughly 3.45 vs 4.04 in Pittsburgh's favour, wider than the raw ERAs (4.17 vs 3.69) suggest. The second factor, per Β§3's requirement that the xERA gap never carry a play alone: Pittsburgh played 9/19 and 9/20 against Kansas City β€” both one-run games, 6-5 and 4-3 β€” and then had Monday off, so the leverage arms have a full day's rest ahead of a series opener. This is [MODERATE] on both legs; neither is [STRONG]. Line movement argues against me: Pittsburgh opened -146 and is now -155, a 9-cent move toward the play, which by the standing rule means the market already agrees and I am late β€” that is the whole reason confidence sits at 62% rather than higher, and why the edge comes out negative. The risk that beats me is simply that -155 is a steep price for a 79-77 team against a 76-80 team on a modest pitching edge; the run line is not an alternative here because Β§7 is explicit that a starter-quality edge produces 2-1 wins as readily as blowouts. Source: ESPN core API odds for event 401817033.

#2 β€” Boston Red Sox ML (1.75)

This is the cleanest Β§2 mispricing on the slate. The visible numbers favour Cleveland β€” Parker Messick's 2.57 ERA against Payton Tolle's 3.02 β€” but Statcast inverts the matchup entirely: Messick's xERA is 3.11 (βˆ’0.536, lucky, regression due) while Tolle's is 2.66 (+0.361, unlucky). So the market is looking at a 0.45-run edge to Cleveland where the contact-quality data says there is a 0.45-run edge to Boston, a swing of nearly a full run in the starter matchup, and Boston is only -132 at home. Both bullpens were idle Monday, so Β§3 is neutral and does not cut either way. Evidence tag is [MODERATE] β€” Β§2 is explicit that xERA sits roughly level with FIP for forward prediction and that the 1.00/1.75 thresholds are invented, and Tolle's +0.361 is well inside the flag threshold, so I am leaning on the direction of the inversion rather than its magnitude. Line movement is mildly against me: Boston opened -122 and is now -132, ten cents toward the play. The risk is Boston's bats β€” they scored exactly 1 run in each of their last two games at Tampa Bay, and a Tolle gem is worth nothing if the offence stays asleep. Source: Baseball Savant expected_statistics leaderboard (2026, pitchers, min=q).

#3 β€” Over 9.0 runs, CIN @ ATL (1.81)

Brandon Williamson and JR Ritchie are the two worst starters on today's board by xERA β€” 6.40 and 5.30, a combined 11.70, with no other pairing close. Williamson's case is the sharper one: his 5.57 ERA already looks bad, and his βˆ’0.835 gap says he has been lucky to hold it that low, so Β§2 calls for regression in the wrong direction for Cincinnati. Ritchie is at 5.03 ERA against 5.30 xERA, also mildly flattered. Β§4's order of operations for a total puts park and wind ahead of pitching, and that is where the honest caveat lives: I could not obtain a wind reading for Truist Park β€” the statsapi live feed does not populate until near first pitch and a 7:15 PM start was empty at midday, and I did not spend a MET Norway fetch on it. Truist is a domeless park, so this total is being priced on pitching alone, which Β§4 says is the wrong order. The total has not moved at all (9.0 open, 9.0 current; over juiced from -126 to -123), which means no sharp disagreement but also no confirmation. The risk that beats me is that both offences are cold β€” Cincinnati scored 2 and 1 in back-to-back losses to the Cubs, and a 9.0 total is already a high bar for two clubs whose starters may not survive the fourth inning but whose rested bullpens then cover six. Source: ESPN core API odds for event 401817030.

#4 β€” Toronto Blue Jays ML (2.01)

Max Scherzer's ERA 6.07 against an xERA of 4.36 is a +1.709 gap β€” the single largest on the slate and past the 1.75 "headline-worthy" line in Β§2 by a whisker. The market is pricing a 6.07 ERA; the contact quality says he has been roughly a 4.36 pitcher, and Chris Bassitt opposite him is at 4.64 ERA / 4.96 xERA, i.e. slightly worse than he looks. On luck-stripped starter quality Toronto has the edge and is being given a plus price at +101. The supporting factor is Baltimore's offence: they have scored 0, 0 and 4 runs in their last three games, shut out twice by Milwaukee on 9/19 and 9/20. The line is essentially frozen (Toronto +100 open, +101 now), so there is no sharp signal either way. Two risks, and they are real. First, Β§6's rest and travel guidance is [WEAK to MODERATE] and it points against me: Toronto played 9/19 and 9/20 in Texas, flew to Baltimore, played Monday, and today is their fourth game in four days with a cross-country leg in the middle β€” Baltimore has been home throughout. Second, xERA is a contact-quality estimate and Scherzer is 42; a model that says his stuff should be producing 4.36 is not a promise that his arm will hold up for five innings. This is the lowest-confidence play on the card and is ranked last accordingly. Source: ESPN core API odds for event 401817035.


Sources

  1. https://statsapi.mlb.com/api/v1/schedule?sportId=1&date=2026-09-22&hydrate=probablePitcher
  2. https://sports.core.api.espn.com/v2/sports/football/leagues/nfl/events?dates=20260922&limit=100
  3. https://sports.core.api.espn.com/v2/sports/baseball/leagues/mlb/events?dates=20260922&limit=100
  4. https://baseballsavant.mlb.com/leaderboard/expected_statistics?type=pitcher&year=2026&min=q&csv=true
  5. https://site.api.espn.com/apis/site/v2/sports/baseball/mlb/scoreboard?dates=20260922
  6. https://statsapi.mlb.com/api/v1/schedule?sportId=1&startDate=2026-09-21&endDate=2026-09-21&fields=...
  7. https://statsapi.mlb.com/api/v1/schedule?sportId=1&startDate=2026-09-19&endDate=2026-09-20&fields=...
  8. https://statsapi.mlb.com/api/v1/game/824787/boxscore?fields=...
  9. https://statsapi.mlb.com/api/v1.1/game/823543/feed/live?fields=gameData,weather,condition,temp,wind,venue,name
  10. https://sports.core.api.espn.com/v2/sports/baseball/leagues/mlb/events/401873648/competitions/401873648/odds
  11. https://sports.core.api.espn.com/v2/sports/baseball/leagues/mlb/events/401817030/competitions/401817030/odds
  12. https://sports.core.api.espn.com/v2/sports/baseball/leagues/mlb/events/401817031/competitions/401817031/odds
  13. https://sports.core.api.espn.com/v2/sports/baseball/leagues/mlb/events/401817032/competitions/401817032/odds
  14. https://sports.core.api.espn.com/v2/sports/baseball/leagues/mlb/events/401817033/competitions/401817033/odds
  15. https://sports.core.api.espn.com/v2/sports/baseball/leagues/mlb/events/401817034/competitions/401817034/odds
  16. https://sports.core.api.espn.com/v2/sports/baseball/leagues/mlb/events/401817035/competitions/401817035/odds
  17. https://sports.core.api.espn.com/v2/sports/baseball/leagues/mlb/events/401817036/competitions/401817036/odds

Research limitations

The three counts: 8 games analysed of 16 on the slate Β· 17 sources fetched Β· 2 analysed games where a Tier-1 factor could not be obtained.

Tier-1 gaps, named specifically:

Bullpen state was inferred, not measured. I fetched the 9/21 Toronto-Baltimore boxscore intending to read pitch counts by reliever, but the fields= filter returned season totals rather than game lines (e.g. Scherzer 1254 pitches / 72.2 IP for the year), so I could not get last night's per-reliever workload. What I used instead is coarser but solid: the 9/19, 9/20 and 9/21 schedules, which establish who played on which days. That supports "Pittsburgh had Monday off after two one-run games" and "Toronto is on its fourth straight day," but it does not support any claim about specific arms, pitch counts, or whether a closer threw back-to-back. Β§3's ordered checklist β€” innings thrown last night, closer and setup availability, pitch counts on the top arms β€” went unanswered. This is the single biggest gap in today's run.

Unverified playbook sources not tested this run: Statcast park factors, umpire assignments via hydrate=officials, and per-day bullpen usage all remain in Β§9's "NOT YET VERIFIED" list and I did not attempt them today.

Slate coverage. 8 of 16 analysed. Three of the unanalysed eight are Hard Rule no-plays and are reported as such (H1 Coors; H3 twice, for the Cubs' and Dodgers' missing probable pitchers). The other five are late West-Coast games I dropped for time once the floor was met β€” a defensible triage, but it does mean the Padres/Dodgers and Astros/Mariners spots went unpriced.

Calibration caveat, restated per the standing instruction: the 3-point and 4-point calibration subtractions were measured on a mostly-prop sample. There is very little history on game lines, so the adjusted numbers above carry more uncertainty than their precision implies.

πŸ”΄ BUILD FAILED β€” the site was not rebuilt this run. The first cd .../site && python3 build.py call hung and was killed at the 120-second tool timeout (the build normally takes ~10 seconds). When I went to check whether dist/index.html had been written, the BettingTracker and outputs mounts had both dropped out of the Linux sandbox β€” ls on the BettingTracker mount returns zero entries, where it listed the full repo at 11:13. Only the read-only uploads mount survived. I retried the mount at 11:33, 11:34, 11:35 (Γ—3), 11:36 and 11:38; it did not come back, so build.py could not be run at all on the second attempt. This report file itself wrote successfully because the file tools reach the folder by a different path than bash does β€” the report is on disk and current; only the built site is stale. I did not edit build.py, and I did not try to reconstruct the build by copying the repo into the sandbox, since that risks publishing a wrong site rather than an old one. Mitch needs to run rebuild_and_deploy.bat manually β€” otherwise the 12:00 deploy publishes yesterday's content.

Cutoff: research met it; the build did not. Research closed and the report was written before 11:50 AM ET (End 11:24). No source failed outright this run β€” nothing was blocked, and the two oversized responses (Savant CSV, ESPN scoreboard) were read from their saved files by Grep as intended, so truncation caused no loss of information.

← Back to all reports