| Step | Purpose | Example Output |
|---|---|---|
| 1. Data Inputs | Pull 8-week rolling team stats, Vegas lines, injuries | Yards/play, turnover %, rest days |
| 2. Feature Engineering | Compute matchup-adjusted strengths | Off – Def differential |
| 3. Model Prediction | Predict continuous expected points per team | Home: 24.3, Away: 19.8 |
| 4. Post-Processing | Round to realistic NFL scores | → 24–20 |
| 5. EV Computation | Compare model vs. book probabilities | +3.8% expected edge |
| 6. Output | Display in report with odds & predicted score | "Lines Over the Next 7 Days" table |
| Sub-step | What It Does | Example |
|---|---|---|
| 1. Normalize stats | Standardize team metrics so all inputs are on a comparable scale. | Yards/play → 0.65 |
| 2. Rolling averages | Use 8-week moving window to smooth randomness in performance. | 24 → 22.7 adjusted |
| 3. Matchup differentials | Compute offense vs. opponent’s defensive strength. | KC offense (0.8) – NYJ defense (0.5) = +0.3 |
| 4. Vegas baselines | Convert spread + total into implied team points. | Spread −3, Total 48 → 25.5 vs 22.5 |
| 5. Composite features | Combine all signals: efficiency, rest, travel, home-field, weather, etc. | X = [net_strength, rest_days, dome_flag] |
| Component | Description | Formula / Logic |
|---|---|---|
| Model Probability | Chance of winning or covering derived from model simulations. | Pmodel = 67.2% |
| Implied Probability | Converted from sportsbook odds. | Pimplied = 1 / (1 + (odds/100)) |
| Expected Value | Model’s predicted edge over bookmaker. | EV = (Pmodel − Pimplied) × 100 |
| Filters | Retain bets only if EV ≥ threshold. | 1% for spreads, 2% for ML/totals |
Integrate realistic scoring directly into training: