How the Model Works
30 enrichment signals, a heuristic base model, a gradient-boosted machine on 500K+ MLB plate appearances, and honest limitations.
The 30 Enrichment Signals
Every bet the Randingers bot considers gets scored through a stack of 30 enrichment factors. Some apply to totals, some to props, some to moneylines. Each is a multiplier on the raw model probability.
| ID | Signal | Source | Applies to |
|---|---|---|---|
| M1-M5 | Base heuristic model (team form, matchup, etc.) | Internal | All |
| M8 | Weather (temp, wind vs CF bearing, pressure, humidity, air-density index) | OpenWeatherMap | Totals, HRs |
| M9 | Park factor | Static table | Totals, HRs |
| M11 | Team form (last-5 W-L, run diff) | MLB StatsAPI | ML, totals |
| M12 | Starting pitcher form | MLB StatsAPI | All MLB |
| M13 | Home-plate umpire (45d rolling K% + RPG) | MLB StatsAPI | Totals, K props |
| M14 | Bullpen fatigue (recent-outing count) | MLB StatsAPI | ML late-game |
| M15 | Rest advantage | MLB schedule | ML |
| M16 | Statcast metrics (xwOBA, whiff%, K%) | Baseball Savant | Player props |
| M20 | Opposing-pitcher fatigue (pitch count, days rest) | MLB StatsAPI | Team runs, K props |
| M21 | Batter-vs-pitcher career splits (min 15 PA) | MLB StatsAPI | Player props |
| M22 | Batting-order slot × Time-Through-Order | MLB StatsAPI | Hitter props |
| M23 | Handedness platoon splits | MLB StatsAPI | Hitter props |
| M26 | Stolen-base opportunity | MLB StatsAPI | Total bases |
| M29 | Injury / DTD veto (M29) | MLB TransactionLog | Player props |
| M30 | Career umpire tendency (91 umps, 5,160 games) | MLB StatsAPI | Totals, K props |
Plus in-flight: F1 (X/Twitter beat-writer scan for scratches), RLM (reverse-line-movement), Steam (coordinated multi-book moves), Sniper (sharp-edge detection with Pinnacle confirmation).
The Ensemble
Two models compete for every prediction:
- Heuristic base model. A weighted formula built from years of manual analysis. Fast, interpretable, resistant to overfitting.
- Gradient-boosted machine (model_v2). Trained on 500,000+ MLB plate appearances via time-series cross-validation. Learns nonlinear interactions the heuristic misses.
Final probability = w_gbm × p_gbm + (1 - w_gbm) × p_heuristic, where w_gbm is tuned per market by weekly Brier-loss minimization on historical results.
Model isotonic calibration maps raw scores to empirical hit rates. This is why our published win rates match our probability estimates.
Bet Selection
The AI Trader logs 10 straight bets per day, split into two windows:
- Morning window (11 AM CT): 6 picks, filed after morning lineup drops
- Evening window (6 PM CT): 4 picks, filed after confirmed lineups
Every pick must clear:
- Minimum edge threshold (varies by market)
- Pinnacle confirmation — Pinnacle's no-vig line must corroborate our edge
- Injury veto (M29) — player not on IL / DTD
- Scratch veto (F1) — no beat-writer scratch signal
- Bovada cushion — Bovada bets need extra edge (softer market)
- Too-Good-To-Be-True (TGTBT) veto — if edge > 8pp AND Pinnacle doesn't confirm, skip
5 picks are "sharp" (-105 to -120) and 5 are "dogs" (up to +410). Sharp lines give us tighter risk; dogs give us upside on high-conviction plays.
Bankroll Math
Bet sizing uses Kelly Criterion at 0.5× (half-Kelly) for volatility control.
Unit size: $250. Bankroll is always computed idempotently:
bankroll = starting_bankroll + SUM(profit) for each graded bet
Never bankroll += delta — that drifts over time. A nightly reconciliation cron flags any discrepancy between stored and computed bankroll.
Closing Line Value (CLV)
CLV is the single best predictor of long-term betting profitability. It measures whether the price you bet was better than the closing line.
Formula: CLV (bps) = (closing_implied − bet_implied) / bet_implied × 10000
Positive CLV = you got value the market later confirmed. Our platform captures CLV hourly on every bet automatically.
Randingers current all-time avg CLV: +1,989 bps across 113 captured bets, with 77.9% positive-CLV rate.
Honest Limitations
The model is not perfect. Here's what it doesn't do well yet:
- Live in-game re-pricing beyond basic run-expectancy math (v1 scaffold)
- Deep NBA/NFL modeling (v1 scaffold — MLB is where the depth lives)
- Public bet % / handle data (requires paid Action Network feed we haven't wired)
- Referee tendencies for NBA / NFL / NHL
- Advanced injury data (currently uses free MLB TransactionLog, not paid RotoWire)
All limitations are on the public roadmap. We ship improvements weekly.
Verify Everything
We don't hide our numbers. Every graded bet is public.
- Live track record: /track-record.html
- Signed CSV export of every graded bet: /api/public/export/csv
- Full alt-line optimizer: /alt-lines.html