NFL

NFL Projector

Games · Rankings · Defense · Export · Phase 4

Pick a season, type (Regular/Preseason/Postseason) and week, then click "Load Slate." Click a game to see player stat lines and projections. Preseason note: preseason games load and display, but preseason stats are excluded from projection baselines — starters play a series or two and those averages would poison Week 1.
Phase 1 · Live Data Plumbing (Historical Mode)

Loads real games straight from ESPN — real teams, real players, real stat lines. Pick a season, season type and week, then click a game for its matchup board: both teams side by side in depth-chart order, actual stat line (once played) next to the model's projection, injury status, and market lines after a Pull Odds. Weather is the Open-Meteo forecast for the kickoff hour when kickoff is within 7 days (labeled); otherwise the nearest available hour, also labeled. Season type matters: the opponent-defense multiplier only applies if Defense Ranks have been built for the same season AND type; if they haven't, a warning banner says so and the projections shown are baseline × weather × form only.

📊 Weekly Tracking

Saved snapshots of your built Rankings, one per season/type/week/position. Once a week's games are final, press Verify vs nflverse to cross-check your saved projections against nflverse — a free, independently maintained NFL stats project — so you have a second source confirming (or catching drift in) what ESPN reported, not just a copy of ESPN's own numbers.

⚙ Sportsbook Odds Setup

Same the-odds-api.com account as your MLB app works fine here — sport is selected by a parameter, not by key. The key is stored in sessionStorage only, under a name separate from the MLB app's, so clearing one never clears the other. It is wiped when you close this tab, never written to disk, and never included in a backup export. You will re-enter it each session — deliberate, so a key in localStorage never rides along in a shared file.
Books marked [ref] are priced and shown but do not enter the consensus median. Hard Rock (FL) is reference-only on purpose: it is the book you bet into, so it is the thing being compared, not part of the yardstick. Caesars and Fanatics require a paid plan. Pinnacle is an EU book scraped from their public site, so it can lag — a sharp anchor, not a live price.
Read this before you trust a gap.
This model outputs a projected yardage number, not a win probability, so the vs Market column is a yards gap (model minus the book's line) — it is not a de-vigged edge like the MLB app computes. Turning a yards gap into a true cover-probability edge needs a variance model this app does not build yet. Treat a big gap as a smoke detector for your own math first, a betting signal a distant second.
Player props use the event-odds endpoint: 1 call per game, cost = markets × regions. This app requests one market at a time (whichever prop matches the position you're viewing — pass yds for QB, rush yds for RB, rec yds for WR/TE), so a ~14-game NFL week × 1 market × 1 region = ~14 credits per pull. Pulling all three positions for one week costs about ~42 credits. Your 20,000-credit tier covers a full season of pulls many times over.

The historical endpoint costs 10× per call and is deliberately not used here: a live pull taken close to kickoff is the closing line, captured once, stored locally forever.