TrueProps

Methodology

How TrueProps models work

Two models, one picking surface. Both emit a confidence score from the same unified pipeline; odds layer on top when they're available.

Model 1 — odds-backed edge

For every listed prop, Model 1 computes model probability (our estimate of the over hitting) and compares it to the no-vig implied probability (what the book's line says). The difference is the edge. Positive edge = the model thinks the over is underpriced; negative edge = overpriced.

When we recommend a pick, the edge is ≥ 5 percentage points. Everything else is available to browse — nothing is hidden — but "recommend" is a high bar deliberately.

Model 2 — no-odds confidence

Model 2 (Smart Picks) scores batter performance without looking at the bookmaker line at all. It's the answer to "how confident is the model this player has a good game" independent of whether a book has priced it.

Both models feed the same unified confidence pipeline: every factor (park, recent form, BvP history, handedness matchup, bullpen profile, pitcher Statcast profile, weather when available) emits a signed score in [-1, +1]. Signals get weight-combined into a single number in [0, 1]. The factor that contributes most becomes the headline narrative on each card.

Public calibration

If we say a pick is 60% to hit, how often does 60%-group actually hit? That number is on the homepage banner and updates from live data — we log every prediction, reconcile it against the final result, and publish the calibration rate for the last 90 days.

When calibration drifts or sample size is too thin, the banner degrades to "Calibration refresh in progress." We'd rather say nothing than fabricate a number.

What's current, what's in development

  • Live for MLB: hits, total bases, home runs, pitcher strikeouts, team totals, moneylines.
  • HR confidence: ships with the scoring guardrails from Phase 7.6A+ and a 0.55 recommendation threshold. We monitor live-slate calibration continuously.
  • Weather factor: in scope via OpenWeather integration, currently absent from live scoring. We treat "weather unavailable" as neutral rather than faking a signal.
  • Multi-sport: NFL / NBA / NHL queued behind MLB stability. The engine is sport-agnostic by design so adding a new market is ~30 lines of spec, not a rewrite.