Thursday Night · Bet it. Do it. Love it.

Transparent engine

How the number is made

Additive efficiency model used by professional desks. Every assumption is editable. Ratings live on the Rankings page; game-level knobs live on each card.

Expected points

Each team has an offensive rating (points scored vs an average defense) and a defensive rating (points allowed vs an average offense). League mean is 22.6.

homePts = home.off + (away.def − league) + HFA/2 + rest + injuries + coaching + pace
awayPts = away.off + (home.def − league) − HFA/2 + rest + injuries + coaching + pace

Neutral sites (Melbourne this week) cut home-field to +0.4. Pace is the average of both teams' play-volume index; 5% extra pace adds about 0.45 points to each side. Rest: short week (≤4 days) is −1.1, extra rest (≥9) is +0.45. Offseason rest (10+ days) is ignored so Week 1 is a clean rating vs rating.

Spread, total, moneyline

modelSpread (home) = −round_half(homePts − awayPts)
modelTotal          =  round_half(homePts + awayPts)
P(home covers s)    =  Φ((margin + marketSpread) / σ)
P(over t)           =  Φ((projTotal − marketTotal) / σ_total)

σ for margins defaults to 13.86 (NFL historical). Totals use 13.5. Projected totals are regressed 40% toward the league mean so two stout defenses don't produce a 35-point game. Win probability is the same normal with no-vig conversion to American odds. EV at −110 needs 52.38% to break even.

Units

Quarter-Kelly, 1u = 1% of bankroll, capped at 2.5u. Plays under 1.8% EV are passed. That is conservative on purpose — you can raise the Kelly fraction below if you want more heat.

b = american_profit(odds)
kelly = (p · (b+1) − 1) / b
units = clamp(kelly · kellyFrac · 100, 0, 2.5)

Sharp flags

  • Differential = money% − bet% on the favorite. Highlighted at +10 / +15 / +20.
  • Sharp when |Δ| ≥ 10. The side with more money than tickets is the sharp side.
  • Public steam when tickets ≥ 65% on a side and money lags by 10+.
  • RLM when the line moves toward the side with fewer bets.
  • TNF BOMB when model edge ≥ 3%, money differential ≥ 15%, RLM is on, and model + sharp agree.

Global knobs

Weekly workflow

  1. Re-rate teams on Rankings after the Sunday/Monday tape.
  2. Open each card. Punch in current spread, juice, total, and the two split percentages. Inputs are large on purpose.
  3. Nudge injuries, weather, rest, and coaching. The projection and flags recompute instantly.
  4. Sort the slate by +EV. Log the play into the tracker. Grade it after the game.

Opening 2026 ratings are a preseason board calibrated to the listed Week 1 markets, with a few intentional 1–2.5 point disagreements. They are a starting point, not gospel.