More markets.
Measured performance.
Market engine v1.0.0. 36 weekly expanding backtests cover the 2024 and 2025 regular seasons. Each test week follows separate earlier training, tuning, and error-calibration windows. Results below are from 2025.
Player props
MAE is average absolute error in the stat’s units. “Regular usage” means at least 3 prior targets, 5 carries, or 15 pass attempts per game. Probability scores use synthetic half-point thresholds based on prior averages, not actual historical book lines.
| Market | MAE / baseline | Regular usage MAE / baseline | Probability Brier / baseline | 80% range coverage |
|---|---|---|---|---|
| Receiving yards | 12.94 / 14.71 | 22.46 / 25.47 (2282) | 0.2181 / 0.2270 | 80.5% |
| Rushing yards | 7.23 / 8.29 | 23.41 / 26.73 (1013) | 0.1547 / 0.1738 | 81.8% |
| Passing yards | 66.09 / 71.85 | 67.56 / 74.40 (555) | 0.2381 / 0.2535 | 78.0% |
| Receptions | 1.03 / 1.15 | 1.65 / 1.85 (2282) | 0.2130 / 0.2225 | 91.2% |
| Passing completions | 5.51 / 6.06 | 5.46 / 6.02 (555) | 0.2264 / 0.2507 | 80.8% |
| Passing attempts | 8.06 / 8.84 | 7.91 / 8.59 (555) | 0.2257 / 0.2525 | 79.0% |
| Rushing attempts | 1.25 / 1.38 | 3.80 / 4.16 (1013) | 0.1584 / 0.1740 | 86.1% |
| Longest reception | 6.57 / 7.71 | 9.20 / 10.82 (2282) | 0.2130 / 0.2292 | 81.1% |
| Longest rush | 2.96 / 3.75 | 7.54 / 9.75 (1013) | 0.1520 / 0.1735 | 82.6% |
Game scoring and period markets
Each row covers 272 games. Baselines use schedule-implied full-game scores and prior historical scoring fractions for halves and quarters. Error differences of a few hundredths of a point are too small to establish a meaningful edge.
| Market | MAE / baseline | Probability Brier / baseline | 80% range coverage |
|---|---|---|---|
| Full game · total | 10.370 / 10.393 | 0.2513 / 0.2517 | 82.7% |
| Full game · margin | 9.709 / 9.722 | 0.2482 / 0.2518 | 86.4% |
| Full game · home | 7.254 / 7.260 | 0.2535 / 0.2510 | 83.5% |
| Full game · away | 7.213 / 7.234 | 0.2499 / 0.2518 | 83.8% |
| First half · total | 7.003 / 6.996 | 0.2496 / 0.2492 | 84.2% |
| First half · margin | 7.603 / 7.617 | 0.2500 / 0.2496 | 87.9% |
| First half · home | 5.320 / 5.326 | 0.2467 / 0.2477 | 88.6% |
| First half · away | 5.014 / 5.016 | 0.2463 / 0.2488 | 90.1% |
| First quarter · total | 4.663 / 4.659 | 0.2483 / 0.2503 | 87.1% |
| First quarter · margin | 4.907 / 4.904 | 0.2501 / 0.2502 | 86.8% |
| First quarter · home | 3.651 / 3.635 | 0.2458 / 0.2511 | 90.8% |
| First quarter · away | 3.288 / 3.312 | 0.2405 / 0.2477 | 92.3% |
Same-game correlation
544 QB–leading-receiver two-leg cases. Joint-outcome Brier: 0.1824 with estimated dependence versus 0.1858 under independence. Lower is better. The test uses both players over synthetic prior-average thresholds; it does not validate every combination supported by the builder.
The builder uses shrunk rank correlations of held-out forecast errors and a Gaussian copula. Every pair needs at least 40 calibration games. It allows one prop per player and one game-score leg, declines unsupported relationships and integer push lines, and requires the actual combined payout before showing hypothetical SGP return.
Pricing and provider rules
- Sportsbook EV = win probability × net payout − loss probability. Pushes return the stake.
- No-vig comparison requires both opposing sides at the same book, provider capture, market, period, participant, and line.
- PrizePicks, Underdog, and other DFS prices are never treated as independent-leg sportsbook payouts.
- Freshness checks use both capture time and the provider’s market-update timestamp where provided. Direct public-feed quotes are labeled with observation time because the book update time is unavailable. Quotes disappear after 30 minutes or at kickoff.
- Multiple feeds merge by matchup and exact offer; the newest source wins. Missing markets stay visibly unavailable.
Limits and forward evaluation
- 2024 and 2025 are retrospective development/evaluation seasons, not untouched prospective validation.
- Synthetic half-point thresholds are derived from prior averages or game lines. They are not historical sportsbook or DFS quotes.
- Brier scores at synthetic thresholds do not establish profitable live odds or pick’em payouts.
- Closing game lines and revised historical statistics are used; injury archives lack exact 2025 update timestamps.
- Player tests condition on participation. Current depth charts cannot establish historical starter accuracy.
- SGP evaluation covers same-team starting-QB passing yards with the leading receiver’s yards, at synthetic thresholds. Other combinations remain experimental.
- Discrete scores preserve historical scoring patterns, but unusual future scores and tail events can be underrepresented.
Forecast distributions, quoted prices, availability captures, and alert history are stored for forward evaluation. Monitoring is scheduled every 15 minutes within six hours of kickoff. Injuries and starter changes trigger a recalculation; prices refresh between model runs. Provider updates and scheduled jobs can be delayed.
Original touchdown and winner model evaluation ↗
Provider references: The Odds API markets · SportsGameOdds schema · Depth-chart timestamps