Methodology
A technical overview of the prediction pipeline, bet sizing, and verification protocol behind TiltDataLabs.
The Model
Each sport is modeled by an ensemble of five algorithms: Logistic Regression, Linear Discriminant Analysis, XGBoost, a multi-layer perceptron (MLP), and Random Forest. Predictions are aggregated across models — a pick is surfaced only when a consensus threshold of models agree on the direction.
Feature Engineering
- Rolling team stats — win rate, points, offensive/defensive efficiency, pace, and rest days over configurable windows (last 5, 10, 20 games).
- Pitcher / player stats — season and rolling game-log metrics for starting pitchers (MLB) and key players.
- Opponent-adjusted metrics — strength of schedule corrections so a win streak against weak teams doesn't receive the same weight as one against contenders.
- Context signals — rest days, back-to-backs, travel, and weather for outdoor totals markets.
- Sharp-vs-public book skew — the gap between what sharp books (BetOnline, LowVig) and public books (DraftKings, FanDuel) show at close. We do not use betting odds themselves as model features, but the disagreement between sharp and public pricing is a selection signal — the picks that beat the closing line most often are the ones the public isn't on.
All features are strictly backward-looking. Training uses chronological splits — the model never sees future data during training or validation. This leak-free discipline is the single most important design constraint in the pipeline.
Finding the Edge
For each game and market (moneyline, spread, over/under), the ensemble produces a model probability. This is compared against the implied probability derived from the best available decimal odds:
A positive edge means the model believes the true probability is higher than what the market is pricing. Picks below a per-sport, per-market threshold are dropped. Thresholds are tuned by walk-forward backtesting and updated when calibration drifts.
Bet Sizing: Kelly Criterion
The Kelly criterion determines the fraction of bankroll to wager on each edge, maximizing the expected logarithmic growth of wealth:
where p = model probability, q = 1 − p, and b = decimal odds − 1.
Safeguards
- Fractional Kelly — we stake a fraction of the theoretical optimum to reduce variance and protect against model mis-calibration.
- Minimum bet floor — small-edge picks get bumped up to a floor so a real pick is a real bet, not a token stake. Prevents Kelly from suggesting sub-cent bets on marginal edges.
- Edge threshold gating — picks below the market's minimum edge are dropped entirely, regardless of Kelly sizing.
Public Proof
Every daily pick file is a canonical JSON document containing the game date, picks, odds, and model probabilities. We publish that file through two independent proof layers so anyone can verify — without our help — that the pick was locked in before games started and hasn't been altered since.
Layer 1 · GitHub commit + Sigstore Rekor
The pick file is committed to a public GitHub repo (the commit time is the timing evidence — GitHub's server records it and it's cryptographically bound to the file's SHA) and signed to Sigstore's Rekor transparency log. Both happen pre-game and are publicly verifiable within seconds.
This is the layer that proves pre-game timing. It's what the Pre-game ✓ badge on the audit trail is checking against.
Layer 2 · OpenTimestamps → Bitcoin
We also submit the pick file's SHA-256 hash to OpenTimestamps calendar servers. Those calendars aggregate hashes into a Merkle root that gets anchored in a Bitcoin block, giving the proof permanent immutability once Bitcoin confirms it.
Bitcoin anchoring is best-effort — calendar servers batch and publish on their own cadence. When an OTS receipt upgrades to a Bitcoin attestation, it's a bonus immutability layer on top of the already-verifiable Layer 1 proof. Not required for the pre-game timing claim.
Verification is trustless in both layers: anyone with the JSON file can independently confirm the GitHub commit and Rekor entry, and anyone with the .ots proof can confirm any Bitcoin attestation using the open-source ots-cli tool or our in-app verify button. No trust in TiltDataLabs is required.
Markets we model
We model every major market across every sport we cover — moneyline, spread, totals, and the MLB-specific First 5 (innings) variants. The markets we actually surface on any given day are the ones where current walk-forward backtests show a durable edge. That set evolves as we re-evaluate against live closing lines: a market that loses its edge gets pulled, and a market we previously sat out can come back when the calibration shifts.
Modeled markets, every sport
MLB-only variants
First 5 markets settle on the first five innings, isolating starting pitcher impact and avoiding late-bullpen variance.
What's active right now is on the Performance page: breakdown by market, win rate, ROI, and the calibration events where we've added or pulled a market from the live slate.
See it in action
Check the live track record or sign up for a free trial.