Live odds ingestion
We ingest live odds from multiple sportsbooks on a regular schedule and score every available matchup.
Methodology
No black box. The pipeline is four phases — Ingest, Score, Publish, Calibrate — and every public surface is gated by what the data can honestly support.
The data pipeline runs on a regular cadence (every 30 minutes during peak hours, more often as a slate approaches kickoff). Every odds row is stamped with bookmaker count and a freshness timestamp. If a market is thin, the data-quality score reflects that on the pick card.
Inputs
Live lines from multiple sportsbooks, on a schedule.
Outputs
Normalized markets — spread, total, moneyline — timestamped per fetch.
The scoring engine computes implied probabilities, weighs sharp line movement, evaluates head-to-head context, and looks at venue form. Each contributor is exposed in the factor breakdown so a serious reviewer can see exactly what moved the dial.
Inputs
Normalized markets + historical team-game logs (after the model-history gate opens).
Outputs
A confidence range, an edge projection, and a risk profile per side.
A pick is only published when the public-picks gate is open, and a numeric confidence value is only shown when the calibration gate is open. Until then, confidence is presented as a label (Lean / Strong / Top Pick) and the page surfaces a "collecting baseline data" note.
Inputs
Engine output + the readiness gates.
Outputs
The pick card you see — selection, confidence band, risk, reasoning, freshness, and factor breakdown.
The model only learns from real outcomes paired with the signal state at the moment a pick was made — never from its own prior reasoning text. When a proposed weight change improves out-of-sample calibration, it lands in a versioned model bump that a human reviews and merges. Customers see the model version on every pick card.
Inputs
Settled outcomes from real games, paired with the engine state at prediction time.
Outputs
A calibration proposal. Not a silent weight change.
Every published card is tied back to live markets, timestamped data, factor scoring, and the gates that keep weak signals off the board.
We ingest live odds from multiple sportsbooks on a regular schedule and score every available matchup.
Each pick is scored against the bookmakers that had a market for the game at the time of scoring. We surface the bookmaker count as a transparency signal.
Where available, each pick shows the timestamp of the odds data it was scored against so you can judge freshness for yourself.
Confidence is expressed as a label or score depending on the platform's current confidence-display mode. Numeric scores are only shown once calibrated against settled outcomes.
Until we have enough settled outcomes to calibrate against, confidence is shown as a label, not a number.
Each pick carries a risk level reflecting bookmaker consensus, market depth, and known volatility factors.
Subscribers with the right entitlement can see a factor-by-factor breakdown of how each pick was scored.
Public performance statistics are only displayed after the platform has accumulated enough settled, canonical picks to compute them honestly.
When you see win-loss numbers on the Performance page, you'll also see the period, sample size, model version, and the exact win-rate definition.
Readiness gates
These flags are public-facing on purpose. They're the difference between a tout site and a system you can audit.
The full gate sequence and its prerequisites are documented in the operator runbook in this repo, not just in marketing copy.
The Picks page is the same engine, the same calibration policy, and the same disclosure stack — just one slate at a time.
Sports betting carries risk. Only wager what you can afford to lose. If you or someone you know has a gambling problem, call 1-800-GAMBLER.