Edgewise

Find your edge. AI does the math.

How It Works

Concrete, falsifiable methodology. Per-sport ensemble weights, model versions, and what we explicitly don't model. Live results on the Track Record page.

What We Model

One bet type per sport, decided by what the market structure rewards. Pre-cutoff predictions (model versions before the dates listed) are filtered out of the public Track Record.

Sport
Bet Type
Current Model
Status
NBA
Against the spread
V4 (2026-04-18)
Active
NCAAM (basketball)
Against the spread
Production
Active
NFL
Against the spread
Production
Active (in season)
MLB
Moneyline
V6 (2026-04-22)
Active
NCAAF (football)
Against the spread
Planned for 2026 season
PGA Tour golf
Outright + placement
Data Golf wrapper
Active (see Golf section)

What We Don't Model

  • Player props. No points, rebounds, assists, passing yards, strikeouts, etc. Player-level modeling requires a different data pipeline we haven't built.
  • Parlays. No multi-leg correlated or uncorrelated parlays. Parlay-positive expected value is rare and hard to verify; we don't claim to find it.
  • Live / in-game betting. Predictions and locks happen pre-game. We don't update probabilities during play.
  • Totals (over/under). Not currently modeled for any sport. Markets are efficient and our edge has been on win/cover probabilities.

The 3-Model Ensemble (NBA · NCAAM · NFL · MLB)

Each prediction combines three independent models with sport-specific weights. Weights come from MODEL_WEIGHTS in the codebase and are tuned by historical performance — they aren't constants set by intuition.

Statistical Model

Team performance metrics, win/loss records, head-to-head data. Uses the Log5 method for matchup probability — same framework used in baseball analytics since Bill James. For MLB, ramps with games played: low weight in April, full weight by mid-season.

Win/Loss Team Stats Log5 Matchups Strength of Schedule

Market Model

Real-time sportsbook odds (DraftKings, FanDuel, BetMGM, others). Removes the vig (sum-normalized devig), corrects for favorite-longshot bias, and produces market-implied probabilities. Anchors the ensemble — markets are efficient and disagreeing with them too aggressively loses money.

Live Odds Devig F-L Bias Correction Multi-Book

Situational Model

Context the other two miss: home court / field, rest days, recent form, and verified injury impact. For MLB this includes starting pitcher matchup and ballpark factors. Returns an adjustment that shifts the ensemble probability based on real-world conditions.

Home/Away Rest Days Form Injuries MLB: Pitcher · Park

Per-Sport Ensemble Weights

Weights are normalized and combined with EMA trust scores that adjust based on recent calibration. Source: MODEL_WEIGHTS in src/lib/constants.ts.

Sport
Statistical
Market
Situational
NBA
0.6
1.0
0.4
NCAAM
1.0
1.5
0.5
NFL
1.0
1.5
0.5
MLB
0.4*
1.2
0.8

*MLB statistical weight ramps with games played — small early in the season, full by ~30 GP per team.

Calibration & Model Versions

1
Platt Scaling

The raw ensemble probability is passed through a Platt scaling layer — a logistic transform fitted on historical predictions for that sport. The goal: when we say "60% chance," the outcome occurs roughly 60% of the time. Calibration parameters are recomputed periodically.

2
Edge Calculation

Calibrated probability vs. market-implied probability. Positive edge = we see value the market doesn't. We use minimum edge thresholds per sport (e.g., MLB ML 5%, 6% in early season; NBA spread 7%) to filter out marginal picks.

3
Model Version Cutoffs

When we ship a meaningfully different model, we mark a cutoff date and exclude pre-cutoff predictions from the public Track Record. NBA V4 (2026-04-18) widened the cover-prob clamp; MLB V6 (2026-04-22) loosened the stat-prob clamp and added an IL-pitcher filter. Pre-V4 NBA and pre-V6 MLB predictions exist in our database but don't appear in /performance — they reflect a different model that no longer ships.

Closing Line Value (CLV)

Beating the closing line is the single best indicator of predictive skill — it means we're identifying value before the market does.

What it measures

The gap between the line at our pick time and the closing line. If we lock a team at -3 and the line closes at -5, we beat the close by 2 points. Aggregated across many picks, this is hard to fake.

Spread CLV

Reported in points (e.g., +0.3 pts average). Used for ATS picks: NBA, NCAAM, NFL.

Moneyline CLV

Reported as a percentage of implied probability movement. Used for MLB picks.

Golf (Separate Model)

Golf doesn't fit the 3-model ensemble — tournaments aren't binary head-to-head matchups. We don't model golf ourselves.

  • Source: Pre-tournament Monte Carlo simulation from Data Golf for win and placement (top-5 / top-10 / top-20) probabilities.
  • What Edgewise adds: Edge calculation against sportsbook lines across 4 markets (outright, top-5, top-10, top-20). Picks with positive expected value are surfaced as best bets.
  • Cadence: Snapshots Tuesday before each tournament; best bets locked Wednesday morning; resolved 3+ days after the final round closes.
  • Track record: Separate from the ensemble dashboard — see the Golf tab on /performance.

Transparency

Every prediction is logged with timestamps, odds, and model outputs.

Stored in a versioned database. Predictions aren't retroactively edited. When we change models, we keep the old predictions — we just stop including them in the published track record under a clearly-labeled cutoff.

Brier calibration is the calibration metric.

Lower is better. 0.25 = coin flip. Sub-0.20 indicates real skill. Tracked per-sport and per-bet-type on /performance.

Track Record is the source of truth.

Real-time numbers, not screenshots, not selectively chosen samples. /performance shows current state including any sport that's underperforming.

Frequently Asked Questions

What sports does Edgewise cover?

NBA, NCAA men's basketball (NCAAM), NFL, and MLB use the 3-model ensemble described below. NCAAF (NCAA men's football) is planned for the 2026 season — not yet active. Golf uses a separate model and is documented in its own section.

Why ATS for some sports and moneyline for MLB?

NBA, NCAAM, NFL, and (when active) NCAAF have meaningful point spreads with consistent juice — we model spread cover probability and pick against the spread. MLB uses a fixed 1.5-run line with heavy juice that makes run-line bets poor value, so we model win probability and pick the moneyline. The bet type is decided per sport, not per game.

How accurate are the predictions?

We track ATS accuracy, MLB moneyline record, ROI, Closing Line Value, and Brier calibration on the public Track Record page (/performance). Numbers update in real time as games resolve. We don't publish accuracy claims on this page because they'd go stale — the dashboard is the source of truth.

How does Closing Line Value (CLV) work?

CLV compares the line at the time of our pick to the closing line. Beating the closing line over a meaningful sample is the strongest known indicator of predictive skill — it means we're correctly identifying value before the market corrects. Tracked separately for spread picks (Spread CLV in points) and moneyline picks (price CLV).

Is this gambling advice?

No. Edgewise output is statistical model predictions for entertainment and research. Always gamble responsibly and within your means.

See the model in production