How we make picks
Every pick comes from the same three-stage pipeline: predict a probability for each side of every market, compare it against the live odds, then size the bets that survive into a portfolio. Everything below the headline number on the backtest is produced by this pipeline running on past data with no peeking forward.
Game records. Box scores, schedules, player and team stats from ESPN — back through the full window that's available for each sport (a decade or more for the major leagues). Refreshed every morning before picks publish.
Live odds. Kalshi as the primary book — a regulated US exchange whose prices reflect actual cleared trades, not a sportsbook's marketing line. We also reference The Odds API for cross-checks.
No insider or scraped data. Public box scores and public market prices only. No paywalled feeds, no scraped sportsbook backends, no whisper info.
One ensemble per sport. An XGBoost model and a LightGBM model — two different gradient-boosting libraries that make subtly different mistakes — averaged together. Each is trained on team- and player-level features that are derivable purely from games before the matchup we're predicting.
Hyperparameters chosen by Optuna. Per-sport tuning over hundreds of configurations to optimise predictive log-loss on held-out games, not in-sample fit. Re-tuned periodically as more seasons land.
Probabilities are calibrated. A raw classifier's 70% often isn't a real 70%. We fit an isotonic calibration on out-of-fold predictions so the probability we publish is the rate of actually winning at that confidence level. The reliability plot on the backtest is the audit of this — bins should sit on the diagonal.
For every market side, we compute the edge as model_prob − market_implied_prob. A side passes the filter only if the model thinks it's more likely than the price implies and the gap clears a per-sport minimum (typically 3–5%). The rest are dropped — no bet is better than a thin bet.
Expected value follows directly: EV = model_prob × payout − 1. We rank candidates by EV inside each portfolio but require the edge floor regardless of payout size.
Fractional Kelly. The Kelly criterion gives the bankroll fraction that maximises long-run geometric growth for a single bet. Full Kelly maximises growth but courts ruin; we run a quarter of full Kelly, which gives up some upside in exchange for shallower drawdowns.
Mean-variance optimisation across the slate. Single-Kelly sizing treats every bet in isolation. We solve a portfolio problem instead — picking allocations that maximise expected return for a target variance, with caps on per-bet, per-game, and total exposure. Same-game correlated bets (e.g. moneyline + spread) get sized down together.
Outputs are percentages, not dollar amounts. Each pick comes with the fraction of your bankroll to stake; you choose what dollar that fraction means. The email and homepage show those fractions verbatim.
Walk-forward backtest. For every historical day, we retrain (or incrementally update) the model using only games that finished before that day, then evaluate against the actual outcomes that followed. No future leakage — the model never sees a result before it has to predict it. The ROI, win rate, and calibration on the backtest all come from this loop.
Live picks use the same code path. The CLI that emits today's picks (sports digest send) shares its predictor, edge calculation, and portfolio builder with the backtest. There is no separate "production model" — the version that backtested is the version that posts.
Yesterday's portfolio is published, settled, and never edited. The picks you saw yesterday morning are the picks we score against the games that finished overnight. The lookback dropdown on the homepage lets you walk back through them — wins, losses, and pushes.
It isn't a guarantee. Even a model with a real edge loses individual bets and loses streaks of bets — the bankroll math assumes you'll keep sizing through the variance. The backtest's drawdown chart is the honest picture of how rough a real run can get.
It isn't every sport. We only publish picks for sports where the backtest shows a real, repeatable edge: NFL, college football, NBA, WNBA, men's and women's college basketball, and MLB. Sports that don't clear that bar — NHL, for example — sit out of the digest entirely.
It isn't financial advice. Past performance isn't future performance; size only what you can afford to lose.
First month free. Cancel anytime.