DATA
Data and methodology
Where every input comes from, how a run becomes a page, and what happens when a source is missing.
Sources
Play by play and rosters
nflverse, twice daily
Schedules, injuries, scores
nflverse for schedules and injuries; ESPN for live scores
Stadium locations
OpenStreetMap (ODbL), Open-Meteo elevation (CC-BY 4.0)
Weather
nflverse schedule, temperature and wind
Benchmark
Closing line from the nflverse schedule, after the game
How published data works
A run reads the latest ingested sources, forecasts the week, and writes one set of JSON artifacts with a manifest that names the run, its kind, its engine versions and when it was made. The site serves the newest run; recent older runs stay at their permalink.
Nothing is recomputed on request: two people who open the same page see the same published numbers. The in-game line is the one live exception.
When a number is missing
A player with no published projection shows the reason instead of a guess: not enough sample, out for the week, or a position the model does not rank yet. A game with no closing line shows no market line.
UNAVAILABLE
No benchmark coverage
This game had no closing line recorded, so it shows no market line.
Uncertainty
The range on every game card runs from the 5th to the 95th percentile of the forecast; a player's floor and ceiling are the 20th and 80th. A wide range is the model telling you it does not know; for players, the track record shows how often the actual points land between the floor and ceiling.
Frequently asked
Why not update live?
The published call stays fixed so it can be scored; the live line sits beside it.
Do you use betting odds?
Never as an input. A closing line shows only after a game, labelled as the market's.
Can I download the data?
Not as files yet. Every number is on its page with its run id.
CURRENT SNAPSHOT
Rosters
Fri 07:01 PM
Injuries
Fri 07:01 PM
Weather
Not published yet.
Benchmark
after the game
FORMATS
Pages
JSON
Index
latest.json
Published from run 2026-04-injury-d57260f5 · Fri Oct 2 · 7:06 PM ET
Run 2026-04-injury-d57260f5 · Fri Oct 2 · 7:06 PM ET