Model Simulator
No black box. Pick any player, choose a stat, pick the opponent and watch the projection build step by step - the blend of season and recent form, the opponent matchup factor, then the gap against the bookmaker line. The slate board puts that projection next to the book line. EV is our read of that gap. It is a model number, not a pick.
Every tool, free and Pro
Research, the graded record, the player explorer and matchup context are free. The slate board, screener and stack builder need All-Access.
HC + BET picks logged before kickoff. The page and the graded record are free; upcoming picks are Pro.
Every pick logged before kickoff and graded against official NFL data.
Every skill-position player - season averages, L3/L5 trends, target and red-zone share.
Per-game matchup context - the factors that move each side of the board.
Anytime-touchdown research: role, red-zone usage and team context. Not the slate EV, and not a calibrated probability.
Defence-vs-position: which defences concede most by market, applied as a per-matchup factor.
One defence's full concession profile by position, with league ranks.
Hit rates and per-game form for every prop line, split by form, matchup and teammate-out. Past form, not a prediction.
Priced props for the next slate: projection, line, over, under and EV. All-Access.
Filter by market, position and opponent. A row with no book line is a projection only, not an edge. All-Access.
Analyst-curated same-game pick groupings, plus a build-your-own combination tool. No correlation score or joint probability. All-Access.
Slate EV
Projection is our blend of season form and recent games. The line is the number most books are quoting. EV is our read of that gap, at the middle price. It is a model number, not a pick. Open the slate.
Market-by-market
Pre-launch state. The right-most column will fill with graded hit rates once Week 1 picks start landing. The backtest column shows the v2 weights' HC hit rate against 916 real bookmaker lines - but those weights were fitted on that same set, so treat it as a description of the fit, not evidence of edge. The leakage-safe numbers are below.
Pre-launch. No NFL picks have published yet. TE receiving HC hit 63.6% across 916 real bookmaker lines in 2024 walk-forward validation - we don't market live numbers until at least 50 picks are graded.
Evidence tiers
Every NFL market states which of four tiers its output currently sits in.
Validated model - out-of-sample return is positive with a confidence interval above zero, and it survives correction for the number of tests run.
Limited-history model - positive out-of-sample return, but on a sample small enough that the confidence interval still includes zero. Treat as unproven.
Market-anchored baseline - the model does not beat the bookmaker price out of sample, so no directional pick is published for this market. The board shows the market itself.
Insufficient evidence - no pick - too few graded bets to say anything either way. No pick is published.
Expanding walk-forward, model refit inside every fold, each bet graded at a bookmaker's actual quoted price. q is the Benjamini-Hochberg adjusted p-value across every model tested in the same run.
The four model factors
Beyond the base projection, four factors shape how a pick is built. Each is documented end-to-end below.
Game Script Engine
Open pageVegas spreads and totals tell you the implied script before kickoff. A 9-point favourite runs out the clock; a 50+ total lifts every receiver; a 38 total buries volume on both sides. We classify every game into one of five buckets: Blowout Favourite, Blowout Underdog, Shootout, Grind, or Competitive.
Each bucket carries a position-specific modifier. Blowout favourite RBs get a +15% touch boost (clock-eating); blowout underdog WRs get +15% on receiving yards (garbage-time pass volume). The modifier surfaces on every pick card on this week's picks and tints rows where the script favours the projection.
Thresholds: |spread| ≥ 7 splits blowout from competitive; total ≥ 50 promotes a competitive game to shootout; total ≤ 41 demotes it to grind. Source of truth: classify_game_script() in NFL/nfl_pick_selector.py.
TD Probability Model
Open pageAnytime touchdown is a Poisson process - the probability of scoring at least one TD is P(TD ≥ 1) = 1 − e−λwhere λ is the expected TD count for the game. We shrink each player's observed TD rate toward a position-and-role-aware prior (k = 8), then multiply by a game-total adjustment and an opponent TD-defence factor.
Role priors are calibrated from 2020-24 actual hit rates: WR1 (target share ≥ 0.22) sits at 28%; WR2 (≥ 0.15) at 20%; RB1 (feature back) at 40%; TE1 (target share ≥ 0.18) at 22%.
Calibration: per-role isotonic regression fit on 2023, with 2024 held out. Fallback chain: role → position → ALL. Calibration version stamped on every pick. The TD model is research only and carries no directional pick. SportSphere's public NFL performance record covers non-touchdown player props only, so no touchdown betting results are published here.
Sizing and role quarantine (moot while no directional TD pick is published, kept for reference): any published pick uses quarter-Kelly, capped at 4% of bankroll. A role quarantine additionally demotes high-attention roles (WR1, WR2, QB, RB1, TE1) from HC to BET regardless of edge. Policy version: 2026-06-10.
Position Intelligence Matrix
Open pageFor every (team, position, market) we compute the average yards (or TDs) allowed per game. The league average across all 32 teams is the comparison anchor. Each cell's defense_factor = team_avg / league_avg: above 1.0 means the defence allows more than average (favourable for the offence); below 1.0 means tougher than average.
The factor multiplies into every projection that involves that defence. A WR facing a defence with a 1.20 receiving_yards factor gets a 20% baseline lift; facing a 0.85 factor takes a 15% haircut. The full table renders on /nfl/defencewith heat-map cells; clicking any team opens this week's picks targeting that slice - the same data, two surfaces.
Source: nfl_team_defense table, rebuilt daily by nfl_daily_refresh.py from nfl_game_logs. Read live at /api/nfl/dvp.
Stack Builder
Open pageStack Builder is a same-game multi comparison for Australian bookmakers. Pick one of the week's games, add outcomes from that game - player yards, receptions, passing TDs, anytime / first / last TD, 1+/2+/3+ TDs, head to head, line or total - and it shows, for each AU book, whether that book quotes every leg and the price you get by multiplying that book's own leg prices. A book that is missing a leg gets no number, only the reason (not listed, line or side not offered, market not offered, or a quote too old to trust).
Same-game prices are labelled indicative: books adjust a same-game multi for the correlation between its legs, so their real price will usually differ from the multiplied figure. No correlation coefficient or joint probability is computed or displayed anywhere in Stack Builder - the published NFL research card carries no calibrated per-leg win probability, so there is no valid probability to combine. Where one of our published picks matches a leg it is marked as our pick, nothing more. When analyst research writes a suggested stack for the current week (a shared game scenario, why it fits and the main risk) it appears below the comparison.
Full research for every leg is one click away from its card. Stack Builder is available on the All-Access plan.