NFL

Analyst · Week 1

The stats model is the foundation. This layer reads the week's news and forecasts, reports only what the model is not already counting, and moves the number by a capped amount: every claim linked to its source, every claim graded after the final. · predictions are published to show the model works. nothing here is betting advice.Last updated: predictions Oct 1, 11:02 AM ET · results graded Sep 28, 11:22 PM ET
W1W2W3W4W5 mode: api · 6,185 news items · latest Oct 1, 10:53 AM ET · cap ±10 pts per game

Is the news layer helping?

Since the layer went live, over 93 graded claims:
  • The adjusted forecast has been worse than the stats model alone: net change in squared error (Brier) of +0.334, where negative is better.
  • 42 of 93 claims pushed the number toward the actual result.
  • It changed the final pick in 1 game, and those flips went 1–0.
This is the whole test. News can't be backtested the way the base model was (2010–25), so the layer earns its place only forward, and only if it lowers the error over many games, not on any one result. Its job is to move the number toward the truth, not to rescue a pick: when it cut a heavy home pick by 10 points and the team still lost, the move was correct (it lowered the error) even though the pick was wrong: the base model had simply started too far above the market. Picks where we disagree with the market's final price are our weaker spot (about 44% in the backtest, versus 68% when we agree): they're flagged “we differ” on the picks table so you can watch them.

What we do with the news, step by step

This page is the news layer's public notebook. In plain terms:
  1. Before kickoff, every run pulls the feeds and attaches new items to the games they concern. Items published after a game has started are never read: in-game news is not a prediction input.
  2. The reader turns new items into claims: a type (QB change, key starter out, resting starters…), a team, a player, a direction, and a confidence.
  3. The filters decide, in the same run, whether a claim is applied or declined. Declined if it is below the confidence floor for its type, if the model already counts it (the player is on the injury report, the QB is already the named starter), or if it is the kind of story that has no place (offseason hires, turf, "limited in practice").
  4. Applied claims move the probability right then, by a fixed number of points for the type, scaled by confidence, capped. That adjusted number is the pick. "Model 74% → analyst 76%" on a game below means exactly that.
  5. After the final, every claim is graded, applied or declined: did it point the right way, and did it lower the error? Declined claims are graded as if they had been applied, so we learn whether the filter was right to say no.
  6. Once a month, with enough graded cases, the rules change for future weeks: a type that keeps hurting loses weight; a rejection reason that keeps "would have helped" gets loosened. Past picks are never touched. Every rule change is dated in the changelog.
A claim only affects the game it is attached to. It does not carry into next week's model: a starter who misses Week 2 is caught by the injury report by then, and the model counts him there.

How it works

Sources: ProFootballTalk, CBS and ESPN feeds; the National Weather Service forecast at kickoff for outdoor stadiums; the nflverse injury report and named starters are what the model already counts. The reader (one language-model call per game, only when there is new news) returns typed claims about things not already counted. A fixed table turns each claim into points, scaled by the reader's confidence, capped per type and ±10 in total. Weather is logged at zero weight until a season of grading says otherwise.
Claim typeMax points
starting QB change not yet in the feed6.0
key starter out, not on the injury report2.0
key starter returning1.5
resting starters / playing backups8.0
suspension2.0
coaching change2.0
motivation / eliminated / nothing to play for1.5
locker-room or organizational turmoil1.0
unusual travel or schedule disruption1.0
weather at kickoff (logged, zero weight)0.0
other (in-week, concrete, high confidence only)0.5

Scorecard by claim type

After each final: did the move go the right way, and did it lower the squared error (Brier)? Negative Brier change is good. Types that don't earn their weight get zeroed at season's end.
TypeClaimsGradedAvg ptsHelpedBrier Δ
key starter out, not on the injury report96581.9 29/58+0.021
other (in-week, concrete, high confidence only)21120.4 5/12+0.008
starting QB change not yet in the feed1295.4 2/9+0.294
motivation / eliminated / nothing to play for1071.1 4/7+0.007
unusual travel or schedule disruption330.8 1/3+0.005
weather at kickoff (logged, zero weight)220.0 0/2+0.000
locker-room or organizational turmoil110.8 0/1+0.010
coaching change111.5 1/1-0.010

Shadow scorecard · what we declined

Rejected claims are kept at zero weight and graded as if applied. If a rejection reason keeps "helping", the rule is too strict; if "other" keeps hurting, it stays out. This is how the layer learns.
Rejected becauseTypeClaimsGradedWould have helpedBrier Δ if applied
no ruled-out language (practice status is not 'out')key_player_out11181 38/81+0.043
retired: now on the injury reportkey_player_out6159 31/59-0.015
confidence 0.75 below floor for otherother3327 10/27+0.018
no ruled-out language (practice status is not 'out')qb_change3022 7/22+0.470
return of a player the model was not counting outkey_player_return2518 11/18-0.032
confidence 0.65 below floor for otherother1413 7/13-0.002
confidence 0.70 below floor for otherother84 2/4+0.001
confidence 0.60 below floor for otherother53 2/3-0.002
confidence 0.45 below floor for key_player_outkey_player_out42 2/2-0.009
confidence 0.65 below floor for motivationmotivation44 2/4-0.007
confidence 0.75 below floor for turmoilturmoil44 3/4-0.005
no ruled-out language (practice status is not 'out')suspension43 1/3+0.033
offseason / logistics story, already priced inmotivation44 0/4+0.047
soft status (limited/questionable/cleared)key_player_return43 2/3-0.002
confidence 0.35 below floor for key_player_outkey_player_out32 0/2+0.012
confidence 0.70 below floor for turmoilturmoil33 2/3+0.001
not an in-week coaching changecoaching_change33 1/3+0.011
offseason / logistics story, already priced inother33 0/3+0.010
already on the injury reportkey_player_out22 1/2+0.005
confidence 0.30 below floor for key_player_outkey_player_out22 1/2-0.001
confidence 0.40 below floor for key_player_outkey_player_out22 0/2+0.013
retired: schedule feed now names this QBqb_change22 0/2+0.104
QB is already the named starterqb_change11 0/1+0.063
confidence 0.00 below floor for coaching_changecoaching_change11 0/1+0.000
confidence 0.00 below floor for qb_changeqb_change10 ––
confidence 0.30 below floor for otherother11 0/1+0.002
confidence 0.50 below floor for otherother11 1/1-0.002
confidence 0.55 below floor for otherother10 ––
confidence 0.60 below floor for coaching_changecoaching_change11 1/1-0.007
confidence 0.60 below floor for motivationmotivation11 0/1+0.006
confidence 0.60 below floor for turmoilturmoil10 ––
confidence 0.65 below floor for coaching_changecoaching_change10 ––
confidence 0.65 below floor for traveltravel11 1/1-0.005
offseason / logistics story, already priced incoaching_change11 1/1-0.010
Season: stats model 28–18, model + analyst 29–17; 35 games moved, 1 picks flipped (1 won).

SF @ LA Thu 8:35 PM

no prediction stored yet · final 27–7
No claims: nothing in the news beyond what the model already counts.
12 news items considered

CHI @ CAR Sun 1:00 PM

model 43% home · no adjustment · forecast at kickoff: 84.0°F, wind 2.0 mph, Sunny · final 59–37
ClaimTeamPlayerConf.Points (home)SourceGraded
other (in-week, concrete, high confidence only) declined: confidence 0.75 below floor for other
Backup QB Tyson Bagent listed questionable with back injury, expected to be inactive; Miller Moss signed to practice squad and elevated for Sunday
CHI 0.75+0.4 api hurt +0.003
12 news items considered

TB @ CIN Sun 1:00 PM

model 65% home · no adjustment · forecast at kickoff: 83.0°F, wind 2.0 mph, Sunny · final 27–33
No claims: nothing in the news beyond what the model already counts.
12 news items considered

NO @ DET Sun 1:00 PM

model 74% home → analyst 76% (+1.9 pts) · final 30–31
ClaimTeamPlayerConf.Points (home)SourceGraded
key starter out, not on the injury report declined: after kickoff (excluded)
RB not expected to play Sunday vs Lions
NOAlvin Kamara 0.95+1.9 api pending
key starter out, not on the injury report declined: after kickoff (excluded)
RB not expected to play Sunday
NOAlvin Kamara 0.95+1.9 api pending
key starter out, not on the injury report declined: no ruled-out language (practice status is not 'out')
Not expected to play Sunday
NOAlvin Kamara 0.95+1.9 api helped -0.009
key starter out, not on the injury report declined: after kickoff (excluded)
LG carted off with knee injury during game
DETChristian Mahogany 0.90-1.8 api pending
12 news items considered

BUF @ HOU Sun 1:00 PM

model 51% home · no adjustment · forecast at kickoff: 94.0°F, wind 5.0 mph, Chance Showers And Thunderstorms · final 36–31
ClaimTeamPlayerConf.Points (home)SourceGraded
other (in-week, concrete, high confidence only) declined: confidence 0.70 below floor for other
Bills' new stadium grass field had major deformations; replacement field in use for Week 1
BUF 0.70+0.3 api hurt +0.004
12 news items considered

BAL @ IND Sun 1:00 PM

model 39% home · no adjustment · forecast at kickoff: 81.0°F, wind 2.0 mph, Mostly Sunny · final 41–23
ClaimTeamPlayerConf.Points (home)SourceGraded
key starter out, not on the injury report declined: after kickoff (excluded)
Ruled out for second half with hamstring injury during game
BALZay Flowers 0.95+1.9 api pending
key starter out, not on the injury report declined: retired: now on the injury report
LB downgraded to out for Ravens game
INDAustin Ajiake 0.95-1.9 api helped -0.014
other (in-week, concrete, high confidence only) declined: confidence 0.75 below floor for other
Expected to be on snap count in Week 1 vs. Ravens; workload will be limited
INDAlec Pierce 0.75-0.4 api helped -0.003
coaching change declined: confidence 0.00 below floor for coaching_change
John Harbaugh left Ravens to become Giants head coach in offseason
IND 0.00+0.0 api pending +0.000
12 news items considered

CLE @ JAX Sun 1:00 PM

model 81% home · no adjustment · forecast at kickoff: 88.0°F, wind 6.0 mph, Mostly Sunny · final 10–34
No claims: nothing in the news beyond what the model already counts.
12 news items considered

ATL @ PIT Sun 1:00 PM

model 67% home → analyst 65% (-1.9 pts) · forecast at kickoff: 77.0°F, wind 5.0 mph, Partly Sunny · final 13–20
ClaimTeamPlayerConf.Points (home)SourceGraded
key starter out, not on the injury report declined: after kickoff (excluded)
CB ruled out with back injury; inactive for Week 1 vs. Falcons
PITJoey Porter Jr. 0.95-1.9 api pending
key starter out, not on the injury report declined: after kickoff (excluded)
CB ruled out with back injury; inactive for Week 1
PITJoey Porter Jr. 0.95-1.9 api pending
key starter out, not on the injury report declined: after kickoff (excluded)
OT left Week 1 game vs. Falcons with injury
PITTroy Fautanu 0.85-1.7 api pending
key starter out, not on the injury report declined: no ruled-out language (practice status is not 'out')
CB unlikely to play Week 1 due to back injury and contract dispute
PITJoey Porter Jr. 0.85-1.7 api hurt +0.012
other (in-week, concrete, high confidence only) declined: confidence 0.70 below floor for other
Starting QB dealing with back spasms as of Saturday; Falcons still expect him to start but condition could affect performance
ATLCooper Rush 0.70+0.3 api helped -0.002
other (in-week, concrete, high confidence only) declined: confidence 0.65 below floor for other
CB status unclear for Sunday; Steelers elevated backup Doneiko Slaughter to active roster as contingency
PITJoey Porter Jr. 0.65-0.3 api hurt +0.002
12 news items considered

NYJ @ TEN Sun 1:00 PM

model 53% home · no adjustment · forecast at kickoff: 88.0°F, wind 0.0 mph, Sunny · final 23–10
ClaimTeamPlayerConf.Points (home)SourceGraded
coaching change declined: not an in-week coaching change
Robert Saleh hired as new head coach of Titans, making debut this week
TEN 0.70-1.4 api helped -0.015
key starter out, not on the injury report declined: after kickoff (excluded)
CB sustained injury in first quarter
NYJJarvis Brownlee 0.40+0.8 api pending
key starter out, not on the injury report declined: after kickoff (excluded)
Safety exited in opening quarter, status unclear but reported as questionable to return
NYJMinkah Fitzpatrick 0.40+0.8 api pending
key starter out, not on the injury report declined: after kickoff (excluded)
WR exited in opening quarter, status unclear but reported as questionable to return
NYJOmar Cooper 0.40+0.8 api pending
12 news items considered

ARI @ LAC Sun 4:25 PM

model 75% home · no adjustment · final 26–14
ClaimTeamPlayerConf.Points (home)SourceGraded
key starter out, not on the injury report declined: after kickoff (excluded)
WR exited Week 1 game after taking big hit over the middle; injury status unclear but game exit reported
LACLadd McConkey 0.60-1.2 api pending
12 news items considered

MIA @ LV Sun 4:25 PM

model 41% home → analyst 43% (+1.9 pts) · final 13–27
ClaimTeamPlayerConf.Points (home)SourceGraded
other (in-week, concrete, high confidence only)
TE elevated from practice squad for Week 1 to replace Bowers
LVChris Myarick 0.85-0.4 api hurt +0.005
other (in-week, concrete, high confidence only)
WR elevated from practice squad for Week 1
LVCody White 0.80+0.4 api helped -0.005
key starter out, not on the injury report declined: after kickoff (excluded)
Wide receiver inactive for Week 1 vs Raiders
MIAJalen Tolbert 0.95+1.9 api pending
key starter out, not on the injury report declined: already on the injury report
Head coach Klint Kubiak confirmed TE will not play Week 1 vs. Dolphins despite earlier optimism
LVBrock Bowers 0.95-1.9 api hurt +0.023
key starter out, not on the injury report declined: after kickoff (excluded)
Wide receiver inactive for Week 1 game vs Raiders
MIAJalen Tolbert 0.85+1.7 api pending
key starter returning declined: return of a player the model was not counting out
Off injury report, set to play Week 1 vs. Dolphins
LVAshton Jeanty 0.90+1.4 api helped -0.016
other (in-week, concrete, high confidence only) declined: after kickoff (excluded)
Raiders elevated TE Chris Myarick and WR Cody White from practice squad for Week 1
LV 0.85+0.4 api pending
12 news items considered

GB @ MIN Sun 4:25 PM

model 53% home → analyst 55% (+1.9 pts) · final 22–39
ClaimTeamPlayerConf.Points (home)SourceGraded
key starter out, not on the injury report
Guard inactive for Packers-Vikings game
GBAaron Banks 0.95+1.9 api helped -0.018
starting QB change not yet in the feed declined: after kickoff (excluded)
Kyler Murray ruled out with concussion in first quarter; Wentz entered game
MINCarson Wentz 0.95-5.7 api pending
starting QB change not yet in the feed declined: after kickoff (excluded)
Kyler Murray ruled out with concussion after first-quarter hit; Carson Wentz entered game
MINCarson Wentz 0.95-5.7 api pending
other (in-week, concrete, high confidence only) declined: confidence 0.65 below floor for other
Running back pleaded no contest to multiple misdemeanor charges; video sealed by judge, potential career complication
GBJosh Jacobs 0.65+0.3 api helped -0.003
12 news items considered

WAS @ PHI Sun 4:25 PM

model 70% home · no adjustment · forecast at kickoff: 81.0°F, wind 5.0 mph, Mostly Sunny · final 22–24
ClaimTeamPlayerConf.Points (home)SourceGraded
key starter out, not on the injury report declined: retired: now on the injury report
Rookie tight end placed on injured reserve; will not play Week 1
PHIEli Stowers 0.95-1.9 api hurt +0.012
coaching change declined: confidence 0.60 below floor for coaching_change
Eagles offensive coordinator moved to booth for first time under Nick Sirianni
PHI 0.60+1.2 api helped -0.007
other (in-week, concrete, high confidence only) declined: confidence 0.65 below floor for other
Offensive coordinator moving to booth for first time under Nick Sirianni; change in play-calling communication structure
PHI 0.65-0.3 api hurt +0.002
12 news items considered

DAL @ NYG Sun 8:20 PM

model 55% home · no adjustment · forecast at kickoff: 78.0°F, wind 2.0 mph, Mostly Clear · final 20–28
ClaimTeamPlayerConf.Points (home)SourceGraded
key starter out, not on the injury report declined: already on the injury report
RB out for the year after hip surgery
DALMalik Davis 1.00+2.0 api helped -0.017
key starter returning declined: return of a player the model was not counting out
WR officially active for Week 1 after torn ACL last season
NYGMalik Nabers 0.95+1.4 api helped -0.012
key starter out, not on the injury report declined: confidence 0.35 below floor for key_player_out
WR listed as questionable; Giants signed insurance WR Dalen Cambre from practice squad
NYGMalik Nabers 0.35-0.7 api hurt +0.006
other (in-week, concrete, high confidence only) declined: confidence 0.75 below floor for other
John Harbaugh era begins; Giants coaching staff change from previous season
NYG 0.75+0.4 api helped -0.003
12 news items considered

DEN @ KC Mon 8:15 PM

model 41% home → analyst 38% (-2.5 pts) · forecast at kickoff: 88.0°F, wind 13.0 mph, Clear · final 10–31
ClaimTeamPlayerConf.Points (home)SourceGraded
key starter out, not on the injury report
Undrafted rookie starting at LT due to Josh Simmons ruled out; inexperienced blindside protection for Mahomes
KCKahlil Benson 0.85-1.7 api hurt +0.020
other (in-week, concrete, high confidence only)
Undrafted rookie starting at LT for injured Josh Simmons; significant downgrade in pass protection
KCKahlil Benson 0.85-0.4 api hurt +0.005
other (in-week, concrete, high confidence only)
Rookie LT Kahlil Benson (undrafted) starting at left tackle for first time in NFL
KC 0.85-0.4 api hurt +0.005
key starter out, not on the injury report declined: retired: now on the injury report
Ruled out for Chiefs' opener Monday night
KCChamarri Conner 0.95-1.9 api hurt +0.023
key starter out, not on the injury report declined: retired: now on the injury report
Left tackle ruled out for Monday night; undrafted rookie Kahlil Benson to start
KCJosh Simmons 0.95-1.9 api hurt +0.023
key starter out, not on the injury report declined: confidence 0.30 below floor for key_player_out
Defensive lineman listed as limited with calf injury on Friday injury report
KCChris Jones 0.30-0.6 api hurt +0.007
other (in-week, concrete, high confidence only) declined: offseason / logistics story, already priced in
Returning from major knee injury sustained in December; first game back after extended absence
KCPatrick Mahomes 0.80-0.4 api hurt +0.005
other (in-week, concrete, high confidence only) declined: confidence 0.75 below floor for other
Patrick Mahomes returning from major knee injury (out since December); first game back
KC 0.75-0.4 api hurt +0.004
12 news items considered