Home

Methodology & track record

Model rebuilt Oct 29, 2026, 4:20 AM · numbers below update automatically after every game day.

Every projection on HoopVantage comes from one model, and this page shows how that model would have done on 1615 regular-season games it had never seen (2020–2025), plus every game graded so far this season. The test is walk-forward: each game is projected using only games played before it, and the model's settings were chosen on 2012–2019 and frozen before the test seasons were scored.

Out-of-sample results, 2020–2025

Winners picked
64.8%
1615 games
Avg margin miss
10.1 pts
Brier score
0.220
lower is better; 0.25 = coin flip
Avg total miss
10.3 pts

Compared with the closing line and our old model

Same gamesWinnersMargin MAEBrierLog lossTotal MAETop prob
This model64.8%10.140.2200.63310.3394%
Market closing line66.8%9.760.2100.60810.2893%
Previous site model60.7%11.020.2460.71611.32100%

The honest read: the betting market's closing line is still better than this model, by about 1.9 points of winner accuracy and 0.37 points of average margin error. That is normal — closing lines aggregate injury news, team information and a great deal of money, and very few public models beat them. Good public NFL models pick roughly 63–68% of winners; the ceiling is low because roughly a quarter of games are decided by a field goal or less. The model's margin landed closer to the final result than the closing line in 43% of games. The margin never uses a sportsbook line. The total does, since October 2026: see the totals recalibration below.

Totals recalibration (October 2026)

Our raw totals were not high against final scores: over 2016–25 they missed by 0.08 points on average. They were high against the closing total, about 1.7 points this season and 1.2 on average since 2022, and when the two disagreed by 3 or more the closing total was closer. "Model leans over" (our total 3+ above the book) went 141-173-2 (45%) to the over in 2016–25. So our total is now pulled toward the market total: our total = raw + k × (market total − raw). k is fitted each season on earlier seasons' out-of-sample totals only. Those fits came out at 0.86 or more every season, which would simply copy the market, so k is capped at 0.5: our number keeps its own opinion with half the gap. A plain mean-residual correction was tested first and made things worse. Scheduled games use the current market total (the closing total once a game has kicked off); a custom matchup with no line keeps the raw total.

Walk-forward checkTotal MAEAvg gap to closeLeans over → overLeans under → under
2017–24 before10.670.3113-138-2 (45%)92-78-2 (54%)
2017–24 after10.530.115-6 (71%)4-8 (33%)
2025 before10.510.923-24 (49%)6-4 (60%)
2025 after10.400.55-1 (83%)0-1 (0%)
2026 before11.441.78-13 (38%)2-0 (100%)
2026 after11.040.90-2 (0%)no games

Graded against nflverse closing totals; 2025 was held out. After the change "Model leans over" points the right way, but it fires only on a raw gap of about 6 points, so it is rare. "Model leans under" fires even less, and its few games went the wrong way: no totals chip here is an edge on its own. The stat-trend and tail-lean records do not use our total and did not change; the combos that read it were re-run (see the alert records).

The previous version of this site rated teams from the current season's scores alone with almost no regression, so after a week or two it produced numbers like 99% favourites. Over the same games it picked 60.7% of winners with a Brier score of 0.246 and a log loss of 0.716 — worse than calling every game 50/50 (log loss 0.693).

Model, market and blended projection

The blended projection mixes the model with the de-vigged closing market. Its weights were fitted once on 2012–2019 and frozen (23% model / 83% market for the margin). All three are scored on the same 1615 test games.

2020–2025WinnersMargin MAEBrierLog lossTotal MAE
Model only64.8%10.140.2200.63310.33
Market only (closing)66.8%9.760.2100.60810.28
Blended projection66.5%9.810.2110.61310.29

The blend improves on the model everywhere, but it does not beat the closing line: the market already contains most of what the model knows. The site shows all three so you can see where the model disagrees.

2026 backtest graded against recorded closing lines

Same gamesGamesWinnersMargin MAEBrierTotal MAE
Model7467.1%8.340.22310.50
Closing line7461.6%8.290.23110.45
Blended projection7461.6%8.360.22810.43

Model = the walk-forward backtest number (recomputed each model run, not the frozen pregame number; see the season record above). Closing line = the last line this site recorded before kickoff (consensus across books).

Features we tested

Rule: a feature stays only if it improves the 2012–2019 walk-forward. Kept: pace (offensive plays, totals only): -0.02 total MAE on 2012-2019. Tried and dropped because they made the backtest worse: OL/DL pressure proxy (sacks + QB hits per dropback); 4th-down aggressiveness; NGS receiver separation; short weeks; byes; non-QB injury load by snap share (WR/TE/OL, CB/S/DL/LB); pass / rush / success-rate rating splits.

Are the probabilities honest?

A calibrated model's 70% favourites should win about 70% of the time. Each row groups the test games by the favourite's projected chance and shows how often that favourite actually won.

Favourite's chanceGamesProjectedActually won
50–55%36952.5%55.1%
55–60%28057.3%60.4%
60–65%29362.3%60.8%
65–70%20067.5%67.5%
70–75%19472.3%75.3%
75–80%14377.2%72.7%
80–85%8582.2%77.6%
85–90%4087.2%90.0%
90–100%1191.7%81.8%

The highest regular-season chance the model gave any team in these six seasons was 94%. It does not hand out 99%: history does not support it.

Season by season

SeasonGamesWinnersLineOldMAELine MAEBrierLine Brier
202025667.1%67.5%62.7%10.109.830.2160.201
202127263.1%62.4%57.6%11.1010.780.2230.216
202227160.6%66.2%58.4%9.278.740.2250.209
202327264.0%68.0%59.2%10.299.900.2260.219
202427269.1%71.3%65.4%10.059.610.2130.200
202527265.3%65.3%60.9%10.029.720.2200.212

Early season vs late

Early weeks are where the old model broke. Preseason priors keep the new one steady.

WeeksGamesWinnersOldMAEOld MAETop probOld top
Weeks 1-219265.5%53.4%8.9510.0982%87%
Weeks 3-419161.4%49.7%10.8614.0789%100%
Weeks 5-834764.5%59.9%10.5411.6994%100%
Weeks 9-1343365.2%64.5%9.739.9989%97%
Weeks 14-1845265.9%65.3%10.4210.6093%98%

2026 season record

Graded from the last number the site published before each kickoff (snapshotted hourly by a scheduled job, frozen at kickoff), against the final score and the closing line. This is the honest live record. Every game is on the scorecard.

Winners picked
67.1%
49/73 · 74 games
Avg margin miss
8.5 pts
Brier score
0.228
Avg total miss
10.8 pts

Closing line on the same games: 61.6% winners, 8.3-point margin miss, 10.4-point total miss.

2026 walk-forward backtest (recomputed every model run, not frozen)

Winners picked
65.1%
107 games
Avg margin miss
9.7 pts
Brier score
0.228
Avg total miss
10.8 pts

Same games, closing line: 64.1% winners, 9.4-point margin miss. Previous site model: 56.6% winners, 11.8-point miss, Brier 0.268. These are backtest numbers: every run re-projects each game with today's model and settings, so they are not what the site showed before kickoff. A few weeks is a small sample; judge the model on the multi-season numbers above.

WeekGamesWinnersMargin MAEBrier
11668.8%11.620.207
21656.3%12.890.258
31662.5%8.040.223
41668.8%6.760.199
51571.4%10.290.209
61464.3%7.000.260
71464.3%11.220.249

Every game in the backtest

GameProjectedChanceFinalWinner
Wk 7 NE @ CHI24–25Bears 54%24–30✓
Wk 7 PIT @ NO25–21Steelers 60%16–10✓
Wk 7 SF @ ATL27–2249ers 67%20–29✗
Wk 7 CIN @ BAL25–23Bengals 57%35–13✓
Wk 7 TB @ CAR22–24Panthers 59%43–13✗
Wk 7 NYG @ HOU17–27Texans 78%27–21✗
Wk 7 IND @ MIN17–27Vikings 78%10–16✓
Wk 7 MIA @ NYJ19–22Jets 62%28–25✗
Wk 7 CLE @ TEN20–17Browns 59%27–24✓
Wk 7 DEN @ ARI25–20Broncos 66%30–16✓
Wk 7 GB @ DET25–30Lions 65%17–20✓
Wk 7 LA @ LV26–24Rams 56%35–21✓
Wk 7 KC @ SEA20–24Seahawks 61%3–20✓
Wk 7 DAL @ PHI22–24Eagles 58%38–21✗
Wk 6 SEA @ DEN21–20Seahawks 53%14–17✗
Wk 6 HOU @ JAX19–23Jaguars 62%34–31✗
Wk 6 CHI @ ATL26–25Bears 52%31–23✓
Wk 6 BAL @ CLE20–21Browns 53%10–13✓
Wk 6 TEN @ IND17–28Colts 79%26–20✗
Wk 6 NYJ @ NE17–27Patriots 79%19–26✓
Wk 6 NO @ NYG22–24Giants 57%34–27✗
Wk 6 CAR @ PHI21–21Panthers 52%25–14✓
Wk 6 PIT @ TB20–20Steelers 52%26–19✓
Wk 6 ARI @ LA20–32Rams 82%18–16✗
Wk 6 LAC @ KC17–26Chiefs 77%6–22✓
Wk 6 BUF @ LV30–25Bills 65%33–30✓
Wk 6 DAL @ GB25–28Packers 60%13–23✓
Wk 6 WAS @ SF22–3049ers 76%17–23✓
Wk 5 TB @ DAL21–29Cowboys 73%24–16✗
Wk 5 PHI @ JAX18–24Jaguars 67%17–19✓
Wk 5 CHI @ GB23–23Packers 52%7–31✓
Wk 5 CIN @ MIA25–20Bengals 66%31–24✓
Wk 5 LV @ NE20–25Patriots 63%17–45✓
Wk 5 MIN @ NO24–19Vikings 67%23–13✓
Wk 5 CLE @ NYJ20–20Jets 51%12–17✓
Wk 5 IND @ PIT21–23Steelers 56%22–34✓
Wk 5 HOU @ TEN23–17Texans 67%26–3✓
Wk 5 NYG @ WAS20–24Commanders 64%27–27tie
Wk 5 DEN @ LAC22–21Broncos 55%23–17✓
Wk 5 DET @ ARI29–26Lions 61%45–21✓
Wk 5 SF @ SEA23–24Seahawks 55%32–29✗
Wk 5 BAL @ ATL20–24Falcons 62%30–23✗
Wk 5 BUF @ LA27–28Rams 54%37–34✗
Wk 4 PIT @ CLE19–20Browns 52%24–27✓
Wk 4 IND @ WAS26–23Colts 57%30–13✓
Wk 4 TEN @ BAL15–29Ravens 85%18–24✓
Wk 4 NE @ BUF22–27Bills 65%29–26✗
Wk 4 NYJ @ CHI19–25Bears 67%12–23✓
Wk 4 JAX @ CIN26–24Jaguars 55%22–17✓
Wk 4 DAL @ HOU23–27Texans 61%34–30✗
Wk 4 ARI @ NYG22–22Cardinals 52%24–36✗
Wk 4 LA @ PHI23–21Rams 58%24–20✓
Wk 4 GB @ TB22–19Packers 59%17–14✓
Wk 4 MIA @ MIN14–26Vikings 82%10–15✓
Wk 4 KC @ LV25–23Chiefs 58%30–27✓
Wk 4 LAC @ SEA16–25Seahawks 77%23–30✓
Wk 4 DEN @ SF21–2749ers 68%14–24✓
Wk 4 DET @ CAR27–26Lions 55%26–32✗
Wk 4 ATL @ NO22–25Saints 59%45–24✗
Wk 3 ATL @ GB18–26Packers 72%35–14✗
Wk 3 LAC @ BUF20–29Bills 75%16–24✓
Wk 3 CAR @ CLE20–21Browns 53%18–21✓
Wk 3 NYJ @ DET21–29Lions 73%24–31✓
Wk 3 HOU @ IND23–23Colts 50%17–19✓
Wk 3 NE @ JAX22–23Jaguars 53%6–35✓
Wk 3 KC @ MIA26–20Chiefs 70%24–10✓
Wk 3 TEN @ NYG18–22Giants 64%7–12✓
Wk 3 CIN @ PIT22–21Bengals 52%27–30✗
Wk 3 SEA @ WAS25–18Seahawks 72%31–33✗
Wk 3 ARI @ SF18–3049ers 82%30–36✓
Wk 3 MIN @ TB24–19Vikings 66%23–16✓
Wk 3 BAL @ DAL29–25Ravens 63%34–31✓
Wk 3 LV @ NO21–24Saints 59%35–27✗
Wk 3 LA @ DEN22–22Rams 52%26–30✗
Wk 3 PHI @ CHI23–21Eagles 55%7–27✗
Wk 2 DET @ BUF25–29Bills 64%31–41✓
Wk 2 CAR @ ATL19–27Falcons 74%34–3✗
Wk 2 NO @ BAL19–28Ravens 75%24–17✗
Wk 2 MIN @ CHI23–25Bears 57%9–3✗
Wk 2 CIN @ HOU22–26Texans 63%20–6✗
Wk 2 PIT @ NE18–24Patriots 68%3–20✓
Wk 2 GB @ NYJ24–22Packers 56%20–17✓
Wk 2 CLE @ TB18–24Buccaneers 69%23–19✗
Wk 2 PHI @ TEN25–17Eagles 74%24–20✓
Wk 2 JAX @ DEN23–21Jaguars 57%13–20✗
Wk 2 LV @ LAC20–24Chargers 63%26–14✗
Wk 2 SEA @ ARI24–19Seahawks 64%31–7✓
Wk 2 WAS @ DAL27–28Cowboys 53%20–37✓
Wk 2 MIA @ SF18–2849ers 79%13–35✓
Wk 2 IND @ KC20–27Chiefs 70%30–33✓
Wk 2 NYG @ LA23–27Rams 64%6–28✓
Wk 1 NE @ SEA20–25Seahawks 64%10–13✓
Wk 1 SF @ LA24–26Rams 56%27–7✗
Wk 1 CHI @ CAR24–22Bears 56%59–37✓
Wk 1 TB @ CIN24–27Bengals 59%27–33✓
Wk 1 NO @ DET21–28Lions 71%30–31✓
Wk 1 BUF @ HOU22–24Texans 55%36–31✗
Wk 1 BAL @ IND25–26Colts 51%41–23✗
Wk 1 CLE @ JAX17–24Jaguars 72%10–34✓
Wk 1 ATL @ PIT17–25Steelers 73%13–20✓
Wk 1 NYJ @ TEN21–21Titans 52%23–10✗
Wk 1 ARI @ LAC20–27Chargers 72%26–14✗
Wk 1 MIA @ LV21–22Raiders 50%13–27✓
Wk 1 GB @ MIN22–25Vikings 62%22–39✓
Wk 1 WAS @ PHI20–26Eagles 68%22–24✓
Wk 1 DAL @ NYG24–25Giants 52%20–28✓
Wk 1 DEN @ KC21–22Chiefs 55%10–31✓

Projections here are the model's pregame numbers computed from games before each week (the same walk-forward rule as the backtest). The scorecard separately grades the numbers the site actually displayed before each kickoff.

How the model works

  1. Data. Every play since 2009 from nflverse play-by-play (expected points added, success rate, win probability), plus schedules, rest days, stadium roof and surface, weather, starting quarterbacks, injury reports, depth charts, snap counts, Next Gen Stats, team and player stats and PFR pressure data.
  2. Team ratings. Each team gets an offense and defense rating twice: in points per game and in EPA per play (garbage time removed). Both are opponent adjusted, so a good day against a strong defense counts for more.
  3. Preseason priors. A new season starts from last season's ratings regressed 30% toward average. The prior counts as 9 games for the points rating and 4 for the EPA rating, so two or three blowouts cannot swing a team to the top of the board.
  4. Quarterbacks. Every QB has a value in EPA per dropback, shrunk toward replacement level until he has thrown enough and faded across seasons. A game's QB adjustment is the starter's value minus the value of the QBs the team's rating was built on, so a backup starting (or a star returning) moves the number and a normal week does not. Starters come from the schedule, checked against the injury report and depth chart.
  5. Situation. Home field is worth 2.62 points before travel; the visitor loses 0.66 per 1,000 miles travelled and 0.09 per time zone. Net of travel, the average home edge is close to 2 points, in line with recent seasons. Rest differences count up to 1.37 points for a full week. Totals drop 0.36 per mph of wind above 10 and 1.40 per 10°F below 40; domes add 2.17.
  6. Margin, total, probability. The weights on each input are fitted on past seasons only (2010–2025, recent seasons counting more). The margin becomes a win probability through a logistic curve fitted on those seasons' out-of-sample projections (slope 0.129 per point): a 3-point favourite wins about 60%, a 7-point favourite about 71% and a 14-point favourite about 86%.
  7. Total vs the market. On a scheduled game the total is pulled 50% of the way toward the market total (fitted on earlier seasons, capped at half). See the totals recalibration above.
  8. Updates. The whole pipeline reruns on a schedule after every game day, re-tests itself and publishes new ratings, projections and this page.

Player outlook

Every player with 3+ games gets a projected line for passing yards, rushing yards, receiving yards, catches and touchdowns. The base is his own season: volume (attempts, carries, targets; the last three games weigh 35%) times efficiency (yards per attempt, carry and target and catch rate, pulled toward the position average by 40–120 plays). Then each factor the backtest kept moves it up or down. Players listed out or doubtful on the injury report get no projection; their share of targets and carries counts as "teammates out" for everyone else.

Data: nflverse weekly player stats, snap counts, play-by-play (red-zone usage), injury reports and schedules (CC BY 4.0). Every factor below was tried alone and in a forward selection scored on seasons it was not fitted on; only the kept ones (bold) are used.

Stat (2025–26)Season avg missBase missModel miss
Pass yds (462)64.664.2662.7
Rush yds (912)24.4424.2624.06
Rec yds (2054)24.323.8423.16
Catches (2054)1.721.711.68
TDs (1956)0.530.520.49
Every factor tested (33 per stat)
GroupFactorPass ydsRush ydsRec ydsCatchesTDs
Opponent defenseWhat this defense allows to the player's position (the same stat)+52% t3.3 ✓+42% t4.3 ✓+16% t2.1+25% t3.3+7% t1.6
Opponent defensePass yards allowed per game+52% t3.3-36% t-2.6+29% t2.2+23% t2.1+12% t0.8
Opponent defenseRush yards allowed per game+11% t1.2+50% t3.5+4% t0.5-3% t-0.5+24% t2.2
Opponent defensePoints allowed per game+25% t2.3-0% t-0.0-2% t-0.2-1% t-0.2+26% t2.2
Game scriptTeam's projected points from the line+30% t3.9 ✓+15% t1.6+24% t3.6 ✓+12% t2.2+18% t2.3
Game scriptProjected margin (favored by)+3% t2.1+2% t1.1+3% t2.6+2% t1.6+4% t3.1
Game scriptFavored: margin+5% t2.3+4% t1.3+5% t2.6+4% t2.2+7% t2.9
Game scriptUnderdog: margin-3% t-1.4-1% t-0.5-4% t-1.9-1% t-0.6-6% t-2.4
Game scriptFavored by 10++6% t1.4+10% t1.5+6% t1.5+4% t1.1+7% t1.4
Game scriptUnderdog by 10+-3% t-0.7+3% t0.5-2% t-0.4+4% t1.1-7% t-1.5
Game scriptGame total+6% t3.1+3% t1.2+3% t2.0+2% t1.4-2% t-0.8
Game contextTeam pace (plays per game)-47% t-3.1 ✓-64% t-3.9 ✓-38% t-2.6-45% t-3.9-13% t-0.7
Game contextOpponent pace+10% t0.5-27% t-1.2-21% t-1.3-13% t-0.9-27% t-1.4
WeatherWind 15+ mph, open air-16% t-3.7 ✓-10% t-1.7-9% t-2.1-5% t-1.5-10% t-2.1
Weather32°F or colder-3% t-0.5+12% t1.5-5% t-0.9-4% t-0.8-4% t-0.7
SettingDome / closed roof+2% t0.9-3% t-0.9+1% t0.4+1% t0.5+7% t2.5
SettingHome / road+2% t1.4+1% t0.7+3% t2.9+2% t2.3+4% t3.0
SettingShort week (5 days or fewer)+9% t1.8-5% t-0.8+5% t1.1+6% t1.7+3% t0.6
SettingComing off a bye-6% t-1.5-3% t-0.5-11% t-2.8-9% t-2.7-7% t-1.5
SettingDivision game-2% t-1.0-6% t-1.9-1% t-0.4-1% t-0.4-2% t-0.7
SettingWeek 13 or later-7% t-2.9-1% t-0.3+1% t0.3+1% t0.8-1% t-0.4
Usage and formVolume, last 3 games vs season-15% t-1.7 ✓+17% t2.4-12% t-2.3-13% t-3.0+10% t1.5
Usage and formTarget / carry share, last 3 vs season-99% t-0.5+77% t3.0-51% t-2.2-56% t-3.0+30% t0.7
Usage and formSnap share last game vs season (snap counts)+64% t4.6 ✓+117% t6.6 ✓+47% t4.5 ✓+41% t4.8 ✓+39% t3.2
Usage and formSeason snap share-13% t-1.0+6% t0.8+47% t6.0 ✓+27% t4.4 ✓+9% t1.5
Usage and formTarget share+1018157% t1.3+30% t0.9+85% t3.6+28% t1.7+7% t0.4
Usage and formCarry share-29% t-2.2+9% t0.8-20% t-3.9-19% t-4.5+13% t2.1
Usage and formRed-zone share (carries + targets inside the 20)-6% t-0.3+22% t1.4-17% t-1.7-23% t-3.0-11% t-1.0
Usage and formAir yards share-100% t-1.5+0% t0.0+41% t3.9+23% t2.9-6% t-0.7
AvailabilityListed questionable-6% t-0.8-8% t-1.1-5% t-1.1-2% t-0.5-8% t-1.5
AvailabilityTeammates out / doubtful (their target or carry share)-15% t-2.4+18% t2.5+4% t0.6+10% t1.7-6% t-0.7
AvailabilityBackup or new starter at QB+0% t0.0+1% t0.2-4% t-1.4-2% t-0.9-2% t-0.6
AvailabilityGames played (sample size)-7% t-1.4+2% t0.2+1% t0.2+6% t1.4-0% t-0.1

Effect = change in the stat per unit of the factor, fitted alone on 2021–23; t = how many standard errors from zero. ✓ = kept by the selection. Many factors that look strong alone add nothing once volume and the line are in the base.

Badge202520262025–26Typical2021–23 / 2024Status
🎯 High passing yards20-12 (63%) · 3 void7-4 (64%)27-16 (63%) · 3 void52%33-27 (55%) · 4 void / 13-8 (62%) · 1 voidOn cards
🧊 Low passing yards121-108 (53%) · 16 void14-7 (67%)135-115 (54%) · 16 void48%447-283 (61%) · 54 void / 123-124 (50%) · 13 voidDropped
🏃 High rushing yards22-12 (65%) · 3 void5-4 (56%)27-16 (63%) · 3 void42%82-52 (61%) · 1 void / 15-12 (56%)On cards
🧱 Low rushing yards63-34 (65%) · 9 void6-3 (67%) · 2 void69-37 (65%) · 11 void58%218-80 (73%) · 50 void / 92-31 (75%) · 12 voidOn cards
🙌 High receiving yards1-0 (100%)2-0 (100%)3-0 (100%)40%1-2 (33%) / 2-2 (50%)Dropped
🔒 Low receiving yards176-82 (68%) · 38 void44-20 (69%) · 9 void220-102 (68%) · 47 void60%565-242 (70%) · 93 void / 215-102 (68%) · 28 voidOn cards
🧲 High receptions0-0 (–)0-0 (–)0-0 (–)40%0-0 (–) / 0-0 (–)Dropped
🪫 Low receptions177-84 (68%) · 15 void86-44 (66%) · 6 void263-128 (67%) · 21 void60%481-233 (67%) · 44 void / 159-91 (64%) · 8 voidOn cards
📈 Receptions leader42-45 (48%) · 2 void7-14 (33%)49-59 (45%) · 2 void18%125-147 (46%) · 7 void / 42-42 (50%) · 1 voidDropped
🏈 TD threat35-45 (44%) · 2 void15-11 (58%)50-56 (47%) · 2 void33%115-115 (50%) · 8 void / 58-43 (57%) · 2 voidDropped

Fitted on 2021, 2022, 2023, thresholds set on 2024, tested on 2025 and 2026 (never used for fitting). "Typical" = how often any eligible player landed on that side of his own season average. A badge type shows on cards only at 55%+ on 30+ test badges and above the typical rate. Void = the player didn't play. Records only, not advice.

🔥 Undefeated finder

Every one- and two-part combination (three-part ones were tested too) of the board's pregame building blocks (both teams' league-rank thirds frozen before kickoff and the offense-vs-defense edges between them, line / total / implied-total buckets, our walk-forward number vs the line, venue, division game, rest, roof, recorded kickoff weather, season stage, each team's last result and cover) is searched on 2016–2021 (1548 regular-season games with a closing line) for six outcomes (favorite / underdog wins and covers, over, under). A condition is kept only if it hit 75%+ on at least the sample bar (0–50 games, set per outcome and tier where shuffled results produce fewer than one by chance), the record is under 1% likely from the line alone (big favorites winning doesn't count), and it then held up on 2022–2025 (1087 games it never saw). 2026 (107 games so far) is the untouched test record.

  • 🔥 Undefeated: no losses on every game found and checked.
  • 💎 Near-perfect: 90%+ on every game found and checked.
  • ⭐ Elite: 72%+ and 10+ points better than usual on games it never saw (20+ of them, 40+ in all). Each ⭐ shows the typical rate next to its record so the edge is visible.

Luck check: the whole pipeline on 10 shuffles of the results (moved only between games with similar spreads) keeps 0 conditions per shuffle by chance. Real run (2026-10-27): 0 survivors. Walk-forward (each season searched only on the seasons before it): 0-0 on 0 flagged games across 7 seasons. Player conditions use the same guards on 2021–2023 player games, validated on 2024–2025 and tested on 2026: 0 kept, 0.1 per shuffle by chance. Re-run by the weekly refresh. Records only, not advice.

Limits

Market data sources

Market lines are shown as neutral data for comparison. The scheduled lines job (never a page view) walks a fallback chain: The Odds API (US books plus Pinnacle, within its monthly credit budget), then ESPN's odds feed, then Action Network's public scoreboard, then the published nflverse line. When a game card still has no line, the site fills that gap from ESPN's scoreboard, Action Network, nflverse closing lines and finally the last stored copy; those scraped fallbacks run only on gaps, are rate-limited and cached, and every use is logged. Each card names its book and source. Kalshi and Polymarket win-probability markets are shown as a separate signal. The line a game had at kickoff is kept as its closing line and graded above.

SourceStatusGamesChecked
The Odds APIidle (idle this run (called Tue / Sat / Sun mornings to save credits))0Oct 29, 2026, 3:21 AM
ESPN odds feedok28Oct 29, 2026, 3:21 AM
nflverse schedulesok28Oct 29, 2026, 3:22 AM
Kalshiok28Oct 29, 2026, 3:22 AM
Polymarketok28Oct 29, 2026, 3:22 AM
Action Networkidle0Oct 27, 2026, 7:16 PM

Which source is serving each game card's line this season:

Served byGamesNewest read
ESPN odds feed77Oct 28, 3:15 PM EDT
nflverse closing lines33Sep 26, 10:34 AM EDT
The Odds API12Oct 25, 9:17 AM EDT

Fallback uses logged (lines, schedule, scores, stats, weather): 166 in total — lines via nflverse closing lines 63× · schedule via ESPN (browser agent) 42× · lines via nflverse schedules (lines job) 31× · schedule via ESPN CDN mirror 28× · lines via ESPN scoreboard 1× · schedule via ESPN site API refused 1×.

Market data for comparison only, not advice. 21+. Gambling problem? Call 1-800-GAMBLER.

Weather on game cards

Every card shows the kickoff forecast at the stadium, switching to current conditions (“Now”) from three hours before kickoff, “Indoors (dome)” for fixed roofs, and the recorded game-time weather once a game is final. Stadium coordinates and roof types come from our own checked venue table (all 30 NFL stadiums plus the international grounds). US forecasts and observations come from the National Weather Service; international venues use MET Norway. If those have nothing, the card falls back to ESPN's game weather, then nflverse's recorded kickoff weather for finals, then the last stored copy, and each fallback use is logged above. A scheduled job refreshes forecasts every two hours for the next seven days and every 15 minutes around kickoffs; pages only read the stored copy. The model's totals use the same kickoff forecast for wind, cold and roof.

Served byGamesNewest read
NWS20Oct 29, 1:56 AM EDT
Indoors (venue table)7—
MET Norway1Oct 25, 7:18 AM EDT

Last weather run Oct 29, 2:25 AM EDT: NWS ok (12) · MET Norway ok (1) · NWS current ok (1) · MET Norway current ok (1) · ESPN game summary ok (1).

Data and credits

Projections are statistical estimates for entertainment and analysis only. They are not betting advice and nothing here guarantees any result.