Building the record in public, since 2026-05-22. Every pick we make is published — wins and losses, including days our own Kelly bet/pass gate says "no edge." Most pick services hide their losses; we publish ours. The longer the sample grows, the more the numbers mean. Use it accordingly. Not financial advice. For entertainment only.

How the Model Works

One public strongest play a day, backed by a timestamped audit trail. The goal is not hype; it is to show the process, the record, and the line context that shaped each decision.

Strongest Play Record
ATS %
Moneyline ROI
Totals ATS
Record since

The Method, in Plain English

1

Project every batter's runs from xwOBA

For each starting batter we take a 3-year weighted xwOBA baseline (current season 45%, prior 35%, two years ago 20%) and run it through a Pythagorean run-expectancy model. That's how many runs the lineup should produce against an average pitcher in an average park.

2

Adjust for everything the bookmakers also adjust for

Opposing starter quality (xERA tier + velocity trend) and handedness splits. Bullpen availability scaled by expected inning share. Park run factor. Game-time weather (wind direction + speed, temperature). 14-day form. Schedule strength.

3

Compare model output to the closing Vegas line

For every game we compute three numbers: moneyline edge (percentage points), runline edge (runs vs the spread), and total edge (runs vs O/U). We also track closing-line value so we can see whether the market moved in our direction after the pick was locked. Anything inside ±1pp / ±0.5 runs we treat as noise.

The 60% stat, precisely: across the 2026 season, in games where the market moved its totals line by at least half a run before first pitch, our model's number was already on the side the market moved toward in 86 of 143 cases (60%). We snapshot our projection against the price available the moment lineups confirm, then compare it to the closing line — that entry-vs-close CLV is recorded on every play, win or lose. Being on the right side of the move means the market keeps agreeing with us after we publish; it does not by itself guarantee winning bets, which is why the full graded record is published alongside it.

4

Layer in situational context — honestly

Rest, bullpen workload, wind, park, recent form. We backtested the common "angles" against 32,000+ historical games (Princeton + SBR + OddsPortal, 2010-2025) — and standalone, almost none beat the vig. So we surface situational factors as supporting context, never as the thing that makes the pick. The stats model makes the pick; the context just tells the story around it.

5

Pick ONE play per day — the highest composite score

Composite = 35% projection edge + 25% confidence + 25% situational alignment + 15% edge size. Then a Kelly bet/pass gate filters out picks that look real but don't clear minimum confidence + edge thresholds.

6

Settle every pick the next morning

At 9 AM ET we pull actual game results from MLB Stats API, settle yesterday's pick (win / loss / push), and update the public record. No quietly deleting losses. No "we were 50-0 in May" charts.

What you see vs what we see

Free users get the matchup + the running public record. Pro unlocks today's actual pick — the lean, the edge size, and the Kelly bet/pass verdict — plus the full Betting Analysis grid (every game's ML/RL/Total leans with edge and confidence), Game Deep Dives with pitcher matchups and lineup projections, and a Pick Tracker with personal P&L. It's all the same engine output — we don't hide "premium picks," paid just sees the full board instead of the headline.

Why one pick a day, not ten

Most pick services flood you with plays because volume hides the losses — if you "won 6 of 10," nobody notices the 4 losses. We post one play because that's what the model is actually highest-confidence on. If today's board is weak, the Kelly gate says PASS and we don't tweet a pick. That happens. It's the honest version.

Record integrity policy

Public aggregates only count picks that were actually published and settled. Internal statuses such as published_pick, unpublished_logged_pick, voided_before_game, and system_error keep the audit trail readable without quietly deleting rows. That is the difference between a transparent record and a marketing chart.

See today's pick + full breakdown

Live dashboard with today's matchup, supporting context, and the running public record — free. Today's actual pick unlocks at Pro.

Open the dashboard

MLB betting model guide | Public record policy | Kelly Criterion and PASS | The Lab

For entertainment purposes only. Not financial or betting advice.