What this shows: the grade and the numbers behind it, over the seven test seasons. A typical miss is how many points the line was off from the final margin in an ordinary game (statisticians call it RMSE). Difference is ours minus the market’s, and luck is how much it could wobble by chance. The win-chance score grades our percentages: lower is better, and guessing 50% every game scores 0.693.
What this shows: the settings Method A worked out for itself from past games: what home field, a bye, a short or long week and travel are worth in points, how quickly a rating forgets old games and how much of last season it keeps. Spread of misses says how far a real score usually lands from our line, which is how a line becomes a win chance. Beyond the market asks whether our line knows anything the market’s doesn’t: 0 means no.
What this shows: how far off we were each season, next to the market. Difference is ours minus the market’s; green means within the half-point goal. Tune seasons set the model up; Test seasons are the exam it never saw.
What this shows: on the left, each dot is a group of games where we gave the home team about the same chance to win; bigger dots hold more games. Dots near the dashed line mean our percentages can be trusted. On the right, the longest bar is games where a team changed quarterbacks: Method A only sees scores, so it learns about a new starter from the losses. That is the job of Method C. Weeks 1–4 are hard too, while ratings catch up with the off-season.
What this shows: what you would have won betting our side every time our line was at least that many points from the market’s. Every bar sits near 50%: when we disagree with the market, we are not more likely to be right.
What this shows: the ten test games where our line and the market’s were furthest apart, with the final score and what was going on. Most are quarterback changes: the market knew who was starting, and Method A didn’t.
What this shows: the grade and the numbers behind it, over the seven test seasons. A typical miss is how far our total was from the real total in an ordinary game. Over/under chances off by is how far our chances of the over were from what really happened, on average.
What this shows: what Method B worked out from past games: the average total, what wind, rain or snow, cold and a roof do to it, and how much a better quarterback adds. Spread of misses is how far a real total usually lands from ours, which turns a total into a chance of the over. Beyond the market asks whether our total knows anything the market’s doesn’t: 0 means no.
What this shows: how far off we were each season, next to the market. Difference is ours minus the market’s; green means within the half-point goal. Real minus ours is how many more points were scored than we said, on average: a plus means we guessed low.
What this shows: on the left, each dot is a group of games where we gave the over about the same chance. If our chances were right, the dots would sit on the dashed line; they lie flatter than it, so games we called likely overs went over about half the time. On the right, what you would have won betting our side every time we were at least that many points from the market’s total.
What this shows: team rating is Method A’s points against an average team. Scoring tendency is how many more (+) or fewer (−) points its games hold than average. Points for and against are what that means against an average opponent. Green is good on both.
What this shows: the grade and the numbers behind it. Method C’s test is only the games where a team started a different quarterback from its previous game, and the number to beat is Method A’s typical miss on those same games. C minus A below zero means Method C was closer.
What this shows: what Method C worked out from past games: how many points one unit of quarterback rating is worth, where a new quarterback starts before he has much of a record, and how quickly old games fade.
What this shows: how far off we were each season, next to the market. Difference is ours minus the market’s; green means within the half-point goal. The win-chance score grades our percentages: lower is better, and guessing 50% every game scores 0.693.
What this shows: the test games split by who started at quarterback. Method C beats Method A by the most when a backup or rookie starts. With the same quarterbacks as last game the two are nearly even, as you would expect. Green means C beat A by more than luck explains.
What this shows: on the left, dots near the dashed line mean our win chances can be trusted. On the right, games with a quarterback change: Method A falls well behind the market, and Method C closes much of that gap. With the same quarterbacks the two are about the same.
What this shows: each quarterback’s worth in points against an average starter, the number Method C prices. It comes from his EPA per dropback: on every pass, sack or scramble, how much the play changed his team’s expected points. Ratings start near a backup’s level and earn their way up, so even the best read below zero on that scale.
What this shows: how good the closing line was, over all seasons or one at a time (the box above). The typical miss is how far the final score landed from the line in an ordinary game. Home teams vs the line is how much home teams beat (+) or fell short of (−) the line on average: near 0 means the market priced home field right. The win-chance scores grade the moneyline’s chances: lower is better.
What this shows: football points come in 3s and 7s, so games end by exactly 3 or 7 far more often than by 5 or 9. The gold bars are what happened; the dashed line is what a smooth bell curve expects; the dots are our key-number model, built on earlier seasons. Our model follows the bars; the bell curve badly misses 3 and 7. This matters because a line of exactly 3 or 7 is a push (a tie: your bet is refunded) far more often than a bell curve says.
What this shows: for games that closed at a whole-number spread, how often the final margin landed exactly on it (a push), next to what our model and a bell curve expected.
What this shows: the scorecard’s numbers, one season per row. Home field has shrunk over the years, and 2020 was played mostly in empty stadiums. Green and red mark home teams, or totals, beating or falling short of the line; pale means close to zero, which is what a good line looks like.
What this shows: games grouped by how big the closing spread was. Each bar shows how widely the final margins scattered around the line, right of the middle for more than average and left for less. In football the scatter barely changes: about 13 points whether the game is a toss-up or a two-touchdown mismatch.
What this shows: the test this page has to pass, and the counts behind it: every game, the games with a closing spread and total, with a moneyline, with every play, and with both starting quarterbacks.
What this shows: how many games we have, season by season. Neutral site games (the international games and Super Bowls) give neither team home field. Green means every game has its play-by-play and both starting quarterbacks. Outdoor with weather counts open-air games with a recorded temperature and wind.
What this shows: how many games each season have each kind of closing line, and the prices on each side. Red marks games with no closing moneyline; they are left out of the moneyline scores only.
What this shows: where every piece comes from, and its license. All of it is free.
We price every NFL game ourselves: a fair spread, total and moneyline with no vig, built as a probability distribution of the final score that knows football’s key numbers. We compare that price to the market and keep score with closing line value and calibration, never short-run wins. Our team ratings come within 0.42 points of the closing line’s typical miss, and with the quarterbacks priced separately, within 0.27. The edge we are building toward lives where the line is slow: quarterback news, weather, soft early numbers and the half points around 3 and 7.
School of thought
- Price a distribution, not a point. A projected margin of −4.5 means little until you know how widely games scatter around it, and in football, how often they land on 3 and 7. Spreads, moneylines and totals are three readings of the same distribution.
- The market is the benchmark, and a strong prior. The closing line carries everyone’s information. We measure ourselves against it, expect to lose to it on main lines, and bet only where we have a reason to know something it doesn’t.
- Keep score with closing line value and calibration, not wins. A true 55% bettor at −110 still shows a loss after 200 bets about 23% of the time. Beating the closing number shows within a few hundred bets; profit takes thousands, which in football is several seasons.
- Walk forward, always. Every prediction uses only what was known before kickoff. A game is priced from the days before it, never its own.
- Estimate from data, never from folklore. Home field, rest, byes, travel and weather are fitted, not hard-coded. The data has already overruled folklore: crossing time zones costs the visitors almost nothing once ratings and rest are known.
- Be honest about results. Settings are chosen on 2012–18 and judged on 2019–25, untouched. Every backtest run, good or bad, is logged, and no tuned setting may sit on the edge of its search grid.
- Paper trade before money. No real bets until 300+ logged picks show positive average closing line value.
How a line is made
Each morning the pipeline pulls the latest results and plays, the projected starting quarterbacks, the venues, FanDuel’s and DraftKings’ lines and the weather forecast, updates the ratings and prices this week’s and next week’s games. You type the line your book offers, or fill FanDuel’s or DraftKings’; the page turns the gap into a probability and an expected value and gives a verdict. Logged picks are graded as results land, and the closing line scores them.
The math
Team strength (Method A): a Kalman filter on final margins
Each team’s rating is a hidden quantity that drifts; each game is a noisy measurement of the gap between two ratings. The Kalman filter moves every rating after each game by exactly as much as the evidence warrants: a lot in September, less once a rating is established. It is the state-space model Glickman and Stern proposed for NFL scores in 1998.
What the data said: home field is worth +2.20 points; coming off a bye +1.15; a long week after a Thursday game +0.37; a short week +0.23 (both teams usually share it); each time zone the visitors crossed −0.11. A result’s weight halves in about 12 games. Capping blowouts did not help. Out of sample it misses final margins by 13.13 points against the close’s 12.72, a gap of +0.42 ± 0.07: inside the +0.5 target.
Key numbers: the score distribution football actually has
Points come in 3s and 7s, so margins pile up on 3, 7, 10 and 14 and avoid 5, 9 and 12. A bell curve gives every whole number about the same share, which badly underprices pushes on 3 and 7 and overprices pushes on 5. We keep the bell curve’s center and spread from the model and bend it by one weight per margin, fitted on the 2015–18 tune seasons (played under today’s extra-point rule) with the closing line as each game’s center, and a penalty, chosen by leaving one season out at a time, that keeps thin weights near 1. On the 2019–25 seasons it never saw, it says 14.6% of games end by exactly 3, against 14.5% that did; a bell curve says 5.5%. Totals get the same treatment, one weight per total (44, 41, 37, 51 and 47 come up most).
Quarterbacks (Method C)
Lines move most on who plays quarterback. Method C rates each quarterback from his dropbacks (passes, sacks and scrambles) by EPA, expected points added, nflverse’s measure of how much each play changed the expected score. A rating halves its weight on old games every 120 days and is pulled toward a backup’s level until 800 dropbacks of evidence outweigh the pull. Team ratings are learned with the quarterbacks who took the snaps taken out of each result, so a team that loses its starter is priced with the backup the morning he starts, not after the losses teach the ratings.
What the data said: on 2019–25 games where a team started a different quarterback from its previous game, Method C missed by 13.24 points against Method A’s 13.63 (−0.39 ± 0.14). Over all test games it trails the close by +0.27 ± 0.06.
Totals (Method B): scoring, weather and quarterbacks
Each team has a scoring tendency (how many points its games hold against an average opponent); two filters learn it, one from points and one from EPA, which strips some of the luck of turnovers, short fields and missed kicks. The weather terms are fitted: wind takes 0.23 points of total per mph over 10 (2.3 at 20 mph), rain or snow 1.63, and a roof adds 1.22. On the slate the weather is Open-Meteo’s forecast for kickoff; in the backtest it is the weather recorded at the game, a little kinder than a forecast. Its totals trail the closing total by only +0.13 ± 0.06, but its over/under probabilities miss calibration against the close (4.7% error): when it disagrees with the closing total, games still go over about half the time.
From a number to a price
To compare with a market we strip its vig: multiplicatively for spreads and totals, and with the power method for moneylines, which takes more vig off the longshot (the favorite–longshot bias).
The blend (later)
Our “beyond the close” test estimates w: regress how far the result landed from the close on how far we disagreed with it. A slope of zero means the market already holds everything the model knows. Today it is −0.04 ± 0.09 for Method A, −0.04 ± 0.12 for Method C and +0.17 ± 0.12 for Method B’s totals: no method has shown it knows something the close does not. Method C’s value is speed on quarterback news.
How we test
- Walk-forward. Each game day is priced from earlier days only.
- Splits. 2006–11 warm the ratings up; 2012–18 choose the settings; 2019–25 judge them untouched.
- Scorecards. Margin and total error against the close on the same games, log loss and Brier score against the de-vigged close, calibration in 5% buckets, the beyond-the-close slope, and bootstrap error bars on every gap.
- Logs. Every run is appended to the backtest logs in
reports/nfl/, including the ones that looked worse.
Choices and alternatives
| Decision | Our choice | Alternatives considered | Why |
|---|---|---|---|
| Keeping score | Closing line value and calibration | Win rate, ROI | Win rate needs thousands of bets to separate skill from luck; CLV shows in hundreds. |
| History | nflverse, free and openly licensed | Paid odds feeds; scraping | Free, complete since 2006, with play-by-play and starting quarterbacks. The price: one consensus close per game, no openers. |
| Team strength | Kalman ratings on final margins | EPA ratings; Elo; machine learning on box scores | EPA ratings alone trailed the points ratings on the tune seasons and added nothing on top of them, so EPA earns its place in totals and quarterbacks instead. |
| Score distribution | Bell curve bent toward key numbers | Plain normal; raw historical frequencies | A normal misprices every push on 3 and 7; raw frequencies ignore where a game is centered. The weights fix the first and keep the second. |
| Quarterbacks | EPA per dropback, shrunk, inside the team model | A flat value per starter; passer rating; QBR | EPA is points-scaled and walk-forward from our own plays; taking the quarterback out of team ratings stops a change being counted twice. |
| Weather | Wind, rain or snow, cold and roof, fitted | Hand-set rules (“wind over 15: take the under”) | Fitted effects grow with severity and are judged out of sample; rules of thumb are already in the line. |
| De-vig | Multiplicative; power for moneylines | Additive; Shin | Power handles the favorite–longshot bias. |
| Validation | Walk-forward, tune/test split, every run logged | k-fold cross-validation; in-sample fit | Cross-validation leaks the future in time series; in-sample flatters. |
| Live prices | You type your book’s line, or fill FanDuel’s or DraftKings’ (Action Network’s and ESPN’s public scoreboards) | A paid odds feed | Free and works today; each book’s last line before kickoff gives every pick a ready closing line. Both feeds are unofficial and could change or stop. |
Where the edge is, and isn’t
Not in out-modeling closing lines on main markets with public team stats. Betting Method A’s side against the closing spread won 49.0% when we disagreed by a point or more, Method C’s 48.5%; Method B’s over/under won 51.0% against closing totals. At −110, 52.4% breaks even. Where an edge can live, in the order we plan to pursue it:
- Quarterback news. A starter ruled out moves a line 3–7 points. Method C reprices the card the moment you change who starts, before slower books adjust.
- Key numbers. Half a point through 3 or 7 is worth far more than half a point anywhere else. The cards price every push, so you can see when −2.5 at −120 beats −3 at −110.
- Soft and early numbers. Openers and recreational books lag the sharp market, and you will almost always bet before the close. The CLV log measures exactly this.
- Weather. Forecasts firm up during the week; wind is the term worth watching for totals.
- Selection. PASS most games and CHECK NEWS when a gap is suspicious. Skipping bad bets is part of the edge.
How we’ll know: paper trading, and 300+ logged picks with positive average closing line value before any money.
Betting football: principles we follow
Keeping score
- Closing line value is the scoreboard. Beat the closing number consistently and results follow; fail to, and they won’t, whatever the short-run record says.
- A season is only 272 games. Variance is huge: a true 55% bettor at −110 is still down after 200 bets about 23% of the time.
Price
- Know your break-even: 52.4% at −110, 51.2% at −105.
- De-vig before comparing: a −110 / −110 market carries 4.76% vig.
- Shop every bet, and value points by where they land: moving off 3 or 7 is worth several times a move off 5 or 9. A key number’s push is your stake back; a half point through it turns that push into a win or a loss.
- Whole numbers can push; half points cannot. A moneyline pushes only on a tie, about 0.3% of games.
Information
- Quarterbacks drive NFL lines. Know who starts before you bet.
- Byes help (about +1.15 points here) and are priced; home field has shrunk to about 1.5 points in recent closing lines.
- Wind, more than cold or rain, takes points off totals.
Discipline
- Size bets as a research budget: flat small stakes or fractional Kelly. Kelly stakes f = (b·p − q) / b of bankroll (b = decimal odds − 1, q = 1 − p): 5.5% at a true 55% and −110. Quarter Kelly (about 1.4%) guards against overestimating p.
- Correlated bets (same game, same quarterback) are one bigger bet.
- A huge disagreement usually means you are missing news: check it before betting it.
- Parlays multiply the vig unless the legs are correlated in your favor. Teasers through 3 and 7 are the one football bet whose value comes straight from key numbers.
- Record every bet: line, price, close and result. Bet only where it is legal.
Status and next steps
| Phase | Status | Result |
|---|---|---|
| 0 · Data | DONE | Every 2006–25 game with a closing line, play-by-play and both starting quarterbacks. |
| Key numbers | DONE | Margin and total weights; pushes on 3 and 7 priced right out of sample. |
| 1 · Method A | PASS | Gap +0.42 ± 0.07 against the +0.50 target. |
| 2 · Method C | PASS | Beats Method A by 0.39 ± 0.14 when a team changes quarterbacks; gap to the close +0.27. |
| 3 · Method B | FAIL | Totals gap +0.13; over/under not calibrated against the close. |
| Weekly slate | DONE | This week and next; quarterbacks, weather, and FanDuel’s or DraftKings’ line a press away on every card. |
| 4 · Blend | PLANNED | Weights from the beyond-the-close test. |
| 5 · Paper trade | NOW | 300+ picks with positive CLV before money. |
Glossary
- Closing line value (CLV)
- How much better your price was than the final pre-game price: decimal odds taken ÷ fair closing decimal − 1. For spreads and totals, also points beaten and the cover chance they are worth.
- ATS
- Against the spread: whether a team beat the line, not just the other team.
- Key numbers
- Margins games end on far more often than their neighbors: 3, 7, 10, 14, 6 and 4.
- Push
- A bet that lands exactly on the line: the stake comes back.
- EPA
- Expected points added: how much a play changed the offense’s expected points, from down, distance, field position and clock.
- Dropback
- A pass attempt, a sack or a quarterback scramble.
- De-vig, overround
- Books price both sides above 100% combined; the excess is the vig. De-vigging rescales to fair probabilities.
- Sigma (σ)
- The typical scatter of results around a forecast; turns a projected margin into probabilities.
- RMSE
- Root-mean-square error: the typical size of a forecast miss, in points.
- Log loss, Brier score
- Scores for probability forecasts; lower is better.
- Calibration, ECE
- Do 60% calls come in 60% of the time? ECE is the average gap between predicted and actual.
- Kalman filter
- A method that tracks hidden, drifting quantities from noisy measurements and knows how sure it is.
- Walk-forward
- Testing a forecast only with information available at the time.
- Beyond-the-close slope
- Whether our disagreements with the market predict results; zero means the market already knew it.
- Expected value (EV)
- Average profit per unit staked at a price, given our probabilities.
Further reading: closing line value · de-vig methods · nflverse · Glickman & Stern (1998), a state-space model for NFL scores · Stern (1991), on the probability of winning a football game · Kelly (1956), a new interpretation of information rate
Each card is our own price for one game: a spread, a moneyline, a total and team totals, all with no vig. Type the line and price your book offers (or press Use FanDuel or Use DraftKings) and the card compares the two: is your book’s price better than ours by enough to bet? The switch at the top shows this week or next. Logged picks go to the Picks tab, where the closing line scores them.
The verdicts
- LEAN
- The best bet at your prices returns +3% or more on average (its expected value, below), and your book is close enough to our number to trust the comparison. Log it as a paper pick. It is not yet a real bet: no model here has beaten the closing line in a backtest.
- PASS
- Nothing reaches +3%. The card still names the best option and its EV. Most games should be a PASS: books price every side to lose a little on average.
- CHECK NEWS
- Your book is 4+ points from our spread (or its moneyline implies a margin that far from ours), or 4+ points from our total. About one game in twelve gets a gap that big, and it usually means the book knows something: a quarterback ruled out, an injury, weather. Check the news, and change who starts under Who starts at QB: if the book moved for the same news, the gap closes. The card never says LEAN on these.
- Enter your book’s line
- Nothing typed yet. A blank price counts as −110.
Our line, whole numbers and key numbers
The big number is our fair spread for the favorite, rounded to the nearest half point the way books post lines, so it can land on a whole number.
Football scores come in 3s and 7s, so games end by exactly 3 points about 14.5% of the time and by 7 about 8.4%, far more than any other margins. Our probabilities know this. Under the spread boxes the card spells out the line you typed: how often it wins, pushes (your stake back) and loses. At −3 the push can be 8–9%; at −2.5 there is none, so the half point through a key number is worth far more than one off 5 or 9. That is why −2.5 at −120 can beat −3 at −110, and the card prices both exactly.
Who starts at QB: Method C on the card
Each card prices its spread with Method C, which rates the starting quarterbacks. Press Edit under Who starts at QB to see both teams’ quarterbacks: each one’s value in points against an average starter, and how many dropbacks back it up. The starter is the projected one from nflverse, with two exceptions: if the week’s injury report has him Out or Doubtful, the next healthy quarterback on the depth chart starts; and if nflverse is plainly behind (another quarterback led the team’s dropbacks last game, tops the depth chart, and nflverse has last game wrong too), that quarterback starts. A quarterback on the week’s injury report shows its status and injury on his row; a questionable one still starts until you press Q. To change the starter, press START on another quarterback.
- START
- He starts. Press it once more to make him questionable.
- Q
- Questionable: the game is priced both ways, half with him and half with the next quarterback on the list.
- BENCH
- Not starting. Press it to start him instead.
- IR
- On injured reserve (or the like) per nflverse’s roster, or Out or Doubtful on the week’s injury report, so he starts out of the picture.
A quarterback with few dropbacks on record is valued near a backup’s level, about −4 points against an average starter, until his own games say otherwise. The card reprices at once: line, moneyline, win chance, total, team totals and verdicts. Your choices stay in this browser until you press Reset.
Spreads · C · QBs or A · Teams
The switch at the top picks the model behind every card’s big line, fair moneyline, win chance and spread verdict. Every pick you log saves both models’ numbers, so the closing lines will show which one beats the market.
- C · QBs (the default)
- Team ratings with the quarterback taken out, plus tonight’s starters. In the 2019–25 backtest it beat Method A by 0.39 points of typical miss on games where a team changed quarterbacks, and came closer to the closing line overall (+0.27 against A’s +0.42).
- A · Teams
- One rating per team, learned from its results. It cannot see who starts, so with A your quarterback choices move only Method C’s number in the small print, and the total.
Our total (Method B) always uses the starters, under either switch.
Use FanDuel, Use DraftKings
Each card has both buttons: press the one for the book you bet. It fills every box with that book’s current spread and prices, moneylines and total, and the note beside it says which book and when the line was seen; type over any box and the note says edited. No book’s numbers show until you press one, and the other button swaps to the other book. Clear empties the boxes.
The lines come from Action Network’s public scoreboard (both books) and ESPN’s (DraftKings) each morning, and again every ten minutes or so while this page is open. A line can be a few minutes old, so check the book before betting. The page also keeps each book’s last line before kickoff, which the Picks tab offers as each pick’s closing line, from the book that filled its card. The buttons go once a game kicks off.
Spread or moneyline: how the card chooses
The card prices every option you type, both sides of the spread and both moneylines, from one forecast, then shows the one that returns the most on average. Books set spreads and moneylines separately, so one is often cheaper than the other for the same team. A favorite’s moneyline costs more but only needs a win; an underdog’s pays more but loses every time they lose, where the spread also wins their close losses. Around 3 and 7 the spread’s pushes shift the balance, and the math already includes them.
Fair moneyline
The moneyline with no vig that matches our win probability. A tie refunds a moneyline bet, so the fair price uses our chance of winning given the game does not tie.
Totals, team totals and weather
Our total comes from Method B: each team’s scoring tendency, both starting quarterbacks, and the weather at kickoff (wind over 10 mph, rain or snow, cold, a roof). Team totals split it by our spread, so they add up to it. Totals have key numbers too (44, 41, 37, 51, 47), and the over/under math prices their pushes.
Weather on the card is Open-Meteo’s forecast for the four hours from kickoff, once a game is within 16 days. Domes show Indoor; a retractable roof is priced closed (teams shut it for bad weather) and its forecast shown for reference.
Expected value (EV)
What a bet returns on average per $1 staked, if our probabilities are right. A push returns the stake.
- Below 0: the price is worse than ours. Most options on most cards.
- 0 to +3%: a thin edge, well inside the model’s own error. PASS.
- +3% to about +8%: a LEAN. Skilled bettors’ long-run edges are a few percent, so this is where a real edge would show up.
- Above about +10%: be suspicious. It nearly always means the model is missing news. Check before logging.
The rest of the card
- Badges
- DIV: a division game. NEUTRAL: neither team at home (the international games), so no home field. SHORT WEEK: a team playing on 4–5 days’ rest. OFF BYE: a team coming off its bye. WIND, RAIN, COLD: the forecast at kickoff passes 15 mph, a 50% chance, or 32 F. DOME and ROOF: no weather.
- LIVE, FINAL
- Once a game kicks off, each team’s score sits beside its name, with the quarter and clock at the right, and logging a pick on it is off. BOX SCORE opens the box score. Once final, the winner’s score is gold. Scores come from ESPN while the page is open, every 10 seconds during games.
- Green and red, after the final
- Our line turns green if the favorite covered it and red if not: at DAL −8, Dallas had to win by 9 or more (a win by exactly 8 is a push, grey). Our total turns green if the game went over it and red if under. The small print says by how much. It grades our numbers, not your bet: a pick you logged is graded on the Picks tab at the line you got.
- Log pick
- Opens a confirmation listing every option the card prices at your book’s numbers (both sides of the spread and the moneyline, and the over and under once a total is entered), each with its chance to win and EV. The best is chosen first and marked LEAN when it is one; tap another to log it instead. The confirmation shows the chosen pick’s line, its chance to win, push and EV, and Full Kelly: the share of your bankroll that grows it fastest if our chance to win is exactly right (ours is an estimate, so many bettors stake a half or a quarter of it, and none when it reads 0%). Choose paper or real money (units are for real-money picks), then Confirm pick saves it to the Picks tab.
- Parlay
- The Parlay button beside Guide opens a parlay slip. Your parlay: pick a game and tap any option to add it (tap again to take it off), priced at the numbers on its card or, when it has none, the book’s current line; Add to parlay in Log pick does the same from a card. Change a leg’s price to match your book. Our chance that every leg wins is the legs’ chances multiplied, as if the games were unrelated. Type the book’s parlay price, or leave it blank for the legs’ prices multiplied (what books pay across different games), to see the fair price, EV and Kelly. A push drops its leg and the book pays the rest. Legs from the same game are flagged: they move together, so the numbers are off for them. Suggested shows the parlay-style bet our backtests support, when there is one, and our model’s highest-EV and likeliest +EV parlays, marked unproven. Log parlay (two legs or more) saves it to Picks, paper or real money, graded as its legs finish; Picks has a Parlays filter.
A prop is a bet on one player or one team instead of on who wins: will the quarterback throw for over 249.5 yards, will this receiver catch over 5.5 passes, will this running back score a touchdown, will the home team score over 13.5 points in the 1st half. This page shows how players and teams have actually done, so you can see how often a number has been beaten. It is history, not a prediction, and the books see the same numbers when they set their lines.
The three pages
- This week
- The games of the week chosen on the Slate, both teams side by side. Show players opens each team’s likely starters: the quarterback chosen under Who starts at QB on the Slate (change him there and he changes here), then the running backs, receivers and tight ends who have had the most touches and targets lately, and the kicker.
- Players
- Every quarterback, running back, receiver, tight end and kicker on a team this week with a real role. Pick a position for its own columns, sort any column, search a name, and click a player for his card.
- Teams
- Every team’s scoring by game, half and quarter, for and against. Click a team for its card.
The filters
- Season
- This season or last. Early in a season last season has far more games; players are listed with their team today, so a player who moved shows last season’s numbers from his old team.
- Last 5 · 3
- Only his or its most recent games: recent form. A season is only 17 games, so the fewer the games, the more one big day moves the number.
- Home · Away
- Only home games or only road games.
Player props
- Passing
- Completions (CMP), attempts (ATT), passing yards, passing touchdowns and interceptions (INT), per game.
- Rushing
- Carries (CAR) and rushing yards per game. Quarterbacks’ scrambles count as rushes.
- Receiving
- Targets (TGT, passes thrown his way), receptions (REC), receiving yards, and his longest catch (LNG, the average of each game’s longest), for the longest-reception prop.
- Rush + rec
- Rushing plus receiving yards, a common running-back prop.
- TD rate
- How often he scored at least one touchdown: the anytime touchdown bet. A rushing, receiving or return touchdown counts; a touchdown he threw does not.
- 1st TD
- How many times he scored the game’s first touchdown, the first touchdown scorer bet. It pays a lot because so many players could score it.
- Kicking
- Field goals made (FGM) and attempted (FGA), extra points (XP) and kicking points (3 per field goal, 1 per extra point).
- GP
- Games played among the games shown. Every average is over these games.
The line checker
On a player’s or a team’s card, pick the bet and type your book’s line. You see how often it went over in the last 3, 5 and 8 games, all season, at home and on the road, with a bar for each recent game. A line like 64.5 cannot land exactly; a whole number like 65 can, and that game is a push (grey): your stake back. For a touchdown, the line 0.5 means “scores at least once”.
Read it with care. Football gives you few games: 6 of 8 sounds strong, but a coin lands heads 6 or more times in 8 about one time in seven. Check that his role has not changed (a new quarterback, an injured teammate, a backup now starting), and remember the book already knows his average: the line is usually set near it.
Team props
- Team total
- Points one team scores in the game, overtime included.
- 1st half · 1st quarter
- Points in that part of the game only; overtime never counts.
- Allowed
- What its opponents scored. A team total is one team’s offense against the other’s defense, so read both teams’ columns.
- Won 1H
- How often it led at halftime (tied halves left out).
- Scored first
- How often it scored the game’s first points (a field goal counts).
- 1st TD
- How often it scored the game’s first touchdown.
- Over team total
- How often the team scored more than the closing line’s team total (the game total split by the spread). The closing line is sharp, so near 50% is normal.
- Our team total
- On This week: our own projection, the Slate card’s team totals (our total split by our spread), with its quarterbacks and weather.
Use it well
- Check who plays first: a backup quarterback changes every receiver’s numbers.
- Weather matters for passing and kicking: check the Schedule’s wind before an over on yards or field goals.
- Small samples lie: three games are a hint, not proof.
- Log your picks on the Picks tab and add the closing line. Beating the closing line, not winning a few bets, is what shows a read is good.
For information and entertainment. Bet only what you can afford to lose. If gambling stops being fun, call 1-800-GAMBLER.
When our line is far from the books’, the books usually know something we do not: a player out, a role change, a trade. This page puts the news next to the lines, one card per game, so you can see whether the gap has a reason. Games go by kickoff.
Reading a game
- Spread and total
- Ours in gold, then each book’s, all for the home team. The book lines are the newest this browser has seen: the morning run’s, then whatever the Slate fetched since.
- Out
- Only players with a note in the window above. Each team’s quarterback first, as the card prices him. QB change means he is not the team’s usual starter (the quarterback with the most dropbacks this season), with the reason the usual one is not starting: out, questionable, or another pick of yours under Who starts at QB. If ESPN’s report now has the card’s starter out or doubtful, that shows too: change him under Who starts at QB and the card reprices. Then the running backs, receivers and tight ends ESPN lists as out, doubtful or questionable. Red is out or doubtful; gold is questionable.
- Notes
- Rotowire’s notes on either team’s players, newest first, three to a game, two on a phone (All shows the rest). Tap one for Rotowire’s analysis. A status tag beside a name is ESPN’s report.
Filters
- 24h, 3d, 7d
- How far back the notes go.
- Tags
- Each note is tagged from its headline: Injury, Role (starting, minutes), Move (a trade or signing), Rest, Game (a box-score recap) or Note. Game starts off, since recaps say little about the next game. The tags are read from words in the headline, so now and then one is off.
Where it comes from
All ESPN, read when the tab opens and kept ten minutes: its injury report, its player list (which players on these teams have news), and Rotowire’s notes through ESPN’s fantasy pages, forty players at a time, those with the newest news first.
Every division and conference as ESPN publishes it, in the NFL’s order with its tiebreakers applied. The page reads ESPN when you open the tab (again after five minutes), so it moves the evening a game ends; if ESPN does not answer, it shows the copy saved with the morning’s slate and says so.
Division and Conference
Division shows the eight divisions, four teams each. Conference shows each conference’s playoff picture: seeds 1 to 4 are the division leaders (above the dashed line), 5 to 7 the wild cards; the gold line is the edge of the seven-team field. Only the 1 seed gets a first-round bye.
The columns
- W-L-T, PCT
- Wins, losses and ties; a tie counts as half a win in the percentage.
- Div, Conf
- The record against the division and against the conference: the first tiebreakers.
- PF, PA, Diff
- Points for, points against, and the difference: over a season a better guide to strength than the record.
- Strk
- The current run of wins (W) or losses (L).
- Letters after a team
- ESPN’s clinch marks, late in the season: x a playoff spot, y the division, z a first-round bye, * home field throughout, e eliminated.
On a phone, PCT, PF and PA are left out to fit the screen.
The Betting view
Record or Betting at the top switches the columns. Betting shows each team’s season so far the way a bettor reads it, from the morning’s run (the record beside it stays ESPN’s, live).
- ATS
- Against the spread: how often the team covered the closing line (nflverse’s consensus close), as wins-losses (and pushes, when there are any). A team covers when its margin beats its line: a 7-point favorite has to win by 8.
- Cover
- How many points a game the team beat the spread by, on average. Above 0, the market has been underrating it.
- O/U
- How often its games went over or under the closing total.
- Power
- Our team rating (Method A): points better than an average team on a neutral field, and its rank. It is who would win a game today, apart from the record.
- Luck
- Wins minus the wins the team’s points scored and allowed predict (the Pythagorean formula with Pro-Football-Reference’s exponent, 2.37). A team well above 0 has won its close games, and that seldom lasts; one well below has lost them.
None of these is a bet on its own: the closing line already knows most of it. They show where a team’s record and the market have parted ways, and early in a season one game moves every number. A tie counts as half a win. On a phone, Cover is left out to fit the screen.
The whole regular season, a week at a time: when each game kicks off, where, on which channel, what the betting market expects, and the weather at kickoff. The week buttons pick a week (WK marks this one); the team box shows one team’s whole season instead. Any game that has started opens its box score.
Reading a row
- Kickoff (ET)
- Day and time, Eastern, with the date underneath.
- Game
- Away @ home. Once a game starts, the score and the clock (in green while it is on), then Final. Once final, the winning team is in gold and the losing team greyed.
- TV
- Who shows it nationally.
- Venue
- The stadium, its roof (open air, dome or retractable) and its city. Neutral-site and international games show where they are actually played.
- Line
- The favorite and the spread, then the total (O/U). Before kickoff it is DraftKings’ current line, from ESPN; after the game, the closing line nflverse records.
- Implied points
- How many points the line expects each team to score: the total split by the spread. Total 44.5 with the home team −3.5 gives home 24.0 and away 20.5.
- Weather
- For open-air games within 16 days, Open-Meteo’s forecast from kickoff to three hours later: kickoff temperature, the strongest wind (gusts in brackets) and the highest chance of rain or snow. Domes say Indoor. A retractable roof’s forecast is greyed (the roof may close) and never flagged. Once a game is over, the weather recorded at it.
Weather flags
- WIND
- Wind of 15 mph or more. Wind is the weather that takes the most points off a game: our totals take about 0.23 points off for every mph over 10.
- RAIN, SNOW
- At least a 60% chance of rain or snow; about 1.63 points off our total.
- COLD
- 25°F or colder.
Hover a flag for what it does to our totals. The Slate prices the forecast itself (the average wind, the chance of rain or snow, the temperature), so a flag is a reminder, not an extra adjustment.
Game day
Above the table, a card for every game kicking off today or being played now, with the score. Tap one for its box score.
One team’s season
Pick a team to see its 18 weeks, its bye included: each game’s result (W, L or T and the score) or kickoff, the line, the points the line expected that team to score, and the weather. The tiles show its record, home and away, its bye week and its next game.
Live scores and box scores
While the page is open it asks ESPN for the week’s scores (and DraftKings’ lines): every 10 seconds while a game is on, otherwise just before the next kickoff. The note at the top right says when the scores were last checked, or that ESPN is not answering. A box score shows the score by quarter beside the team totals (yards, first downs, third downs, turnovers, penalties, possession), then each team’s passing, rushing, receiving and kicking. Live scores are for watching only: our lines never use them.
Where it comes from
The schedule and results from nflverse; kickoff times, TV, venues, byes and DraftKings’ lines from ESPN’s public scoreboard; forecasts from Open-Meteo (CC BY 4.0).
A pick wins or loses on one game, which is mostly luck. Whether you beat the closing line is mostly skill, and it shows in a few hundred picks instead of a few thousand. So each pick here is graded (won, lost or pushed) and scored against its closing line.
The tiles
- Record
- Won-lost-push, from the final scores.
- Real money
- Units won on graded real-money picks. Paper picks stake nothing.
- Points beaten
- How many points better your line was than the close, on average: −2.5 taken when it closed −3.5 is +1.0.
- Cover % gained
- What those points were worth. A point through 3 or 7 is worth several times a point anywhere else, so each pick’s points are priced: its chance of winning at your line, minus its chance at the closing line, both from a distribution centered on the close. −2.5 against a −3 close is worth about 4%; −5.5 against −6, about 2%.
- CLV
- For moneylines: your decimal odds against the closing line’s fair (de-vigged) odds. +3% means you got 3% more than the close said the bet was worth.
Closing lines
Type the close in each pick’s row, or press Fill closes: for every game that has kicked off, it fills empty closes with the last line this page or the morning run saw before kickoff, from the pick’s own book: FanDuel if Use FanDuel filled its card, DraftKings if Use DraftKings did. A pick typed by hand takes the book you last used. It may be a few hours before the true close if the page was not open near kickoff.
Edit, delete, back up
Edit changes the line, the price, the close and paper or real money (a changed line or price is repriced the way the card priced it). Delete asks first. Picks live in this browser: under Files, Back up saves a file, Restore brings it back, and Export CSV gives a spreadsheet.
What a backtest is
We pretend it is a morning in the past. Using only what we knew that day, we make our line for every game. Then we look at how the games really finished. We did that for every NFL game from 2006 to 2025.
What we compare against
The betting market’s last line before kickoff, called the closing line. Millions of dollars and every injury report go into it, so it is the best public guess at how a game will finish. Beating it on average is very hard. Our goal is to come within half a point of it.
The three methods, in one line each
- A · Spreads. Every team has a power rating. Home rating minus away rating, plus home field, rest and travel, is our predicted winning margin.
- B · Totals. Each team’s scoring, the weather, the stadium and both quarterbacks give the total points in the game.
- C · QBs. Method A plus the quarterbacks: when a backup starts, the line moves that morning.
PASS, TIE and FAIL
- PASS: it met its goal.
- TIE: it missed by so little that plain luck could explain it. We can’t tell it apart from a pass.
- FAIL: it missed by more than luck explains.
Why the seasons are split
2006–11 only warm the ratings up. 2012–18 were used to set each method up. 2019–25 were kept aside as the exam, like a test the method never studied for, so its grade is honest.
A backtest replays the past one game day at a time. Each day is priced using only what was known before kickoff, then compared with the final scores and with the closing line. The settings were chosen on 2012–18 (tune). The 2019–25 seasons (test) played no part in choosing them, so the test numbers are an honest preview. 2006–11 only warm the ratings up.
The three methods
- A · Spreads: team ratings
- Every team gets one number: points better than an average team. A Kalman filter updates it after every game. Projected margin = home rating − away rating + home field + rest + travel. It sees results, not rosters: it cannot tell that the starter is out.
- B · Totals
- Each team’s scoring tendency, from points and from EPA, plus both starting quarterbacks and the weather. That gives our total and both team totals.
- C · QBs: who starts
- Team ratings with the quarterback taken out, plus each starter’s rating from his EPA per dropback. When a backup starts, his team’s line drops by what the starter is worth.
The numbers
- RMSE
- Root-mean-square error: the typical size of a miss, in points. Square every miss, average, take the root; big misses count extra. Lower is better. Even the closing line misses by about 12.72 points.
- Close RMSE
- The same for the closing line on the same games. This is the benchmark.
- Gap
- Model RMSE minus close RMSE. Positive means the market was closer. A model’s target is +0.50 or less.
- ± (error bar)
- How much a number could move from luck alone (a bootstrap standard error). A difference smaller than about twice its error bar is within noise.
- Log loss, Brier
- Scores for win probabilities; lower is better. A coin flip scores 0.693 log loss and 0.25 Brier.
- Calibration
- When we say 60%, does the home team win 60% of the time? Dots on the dashed line are calibrated; bigger dots stand for more games.
- Beyond the close
- Whether our disagreements with the closing line predict results. 0 means the market already knew everything we knew.
- Pricing sigma
- How widely results scatter around our own predictions.
- Against the close
- How often betting the model’s side at the closing line won, pushes left out. 52.4% breaks even at −110.
- PASS, TIE, FAIL
- Each phase’s exit test. TIE means the result misses the target by less than twice its error bar. Click a grade to see what it means for that method, and why.
What each view shows
- A · Spreads. The exit test (a gap of +0.50 or less), the fitted home field, rest and travel effects, every season, calibration, the gap by likely cause, betting its side at the close, and the biggest disagreements.
- B · Totals. The same for totals, the weather terms, over/under calibration and each team’s scoring.
- C · QBs. Whether knowing who starts helps. The exit test asks Method C to beat Method A on games where a team started a different quarterback from its previous game. The quarterback table shows each rating in points against an average starter.
Every run is logged in reports/nfl/, including the ones that looked worse.
Written for a reader with graduate statistics. Every formula below is the one the code runs; parameter values are the ones tuned on 2012–18.
Notation and the walk-forward protocol
Games are g, game days t, and 𝓕t−1 is everything known before day t. Every forecast is 𝓕t−1-measurable: all games of day t are priced from the state at the start of t, and only then does the day’s data update it. 2006–11 warm the filters up, a grid search on 2012–18 minimizes RMSE, and 2019–25 is scored once. A unit test permutes every result after a cutoff date and requires the predictions before it to be identical.
Method A: a linear-Gaussian state-space model
mg is the home margin in points (no margin cap). The update is the standard Kalman recursion, applied game by game within a day, which equals one batch update:
The published margin is μ = β·hᵀx with β a through-the-origin recalibration (Σμm/Σμ²), refit on finished games before each slate.
Where “a half-life of about 12 games” comes from
Collapse the filter to one team seen once a week: a scalar local-level model with q = 0.08 × 7 = 0.56 and r = 169. The steady-state Riccati equation gives
A real game informs rhome − raway, not one rating, so this is a guide; what the tuning chose is the signal-to-noise ratio q/r.
Key numbers: a reweighted discretized normal
The weights are fitted by penalized maximum likelihood on 2015–18 (today’s extra-point rule), centered on each game’s closing line:
The diagonal Hessian is a good approximation because each weight mostly moves its own class’s mass. The tie weight is left unpenalized: overtime makes ties far rarer than the normal’s mass at 0. λ is chosen by leaving one season out (grid 1–300; λ = 3). Fitted w(3) ≈ 2.8 and w(7) ≈ 1.9; on the 2019–25 test the held-out log-likelihood is −3.836 per game against −3.962 for the plain normal, a gain of 0.126 nats per game.
Method C: quarterback ratings as a shrinkage estimator
This is the posterior mean of a normal–normal model in which the prior is worth N₀ dropbacks at m₀, a backup’s level: a new quarterback starts there and earns his way up. Exponential weights make old games, and long layoffs, count less. ê is itself an EWMA with a one-year half-life, so the league’s rise in passing efficiency since 2006 does not read as every quarterback improving.
“Played” is weighted by dropbacks, so a starter hurt in the first quarter is not charged for a game he didn’t play. Taking the quarterbacks out of what the team ratings learn from is what stops a change being counted twice. k = 30 points per unit of EPA per dropback is about a starter’s dropbacks in one game.
Method B: two views of a total, blended
Since the EPA view sits near 0 on average, the blend is close to 17.8 + 0.607·Tpoints: it shrinks the points view about 39% toward the mean, which is what a regression of totals on a noisy forecast should do. The quarterbacks’ coefficient in the published total is b₁·kqb = 6.07. Weather in the backtest is what was recorded at the game; on the Slate it is a forecast, so the backtest is a little optimistic about weather.
The gap, and why its error bar is so small
Write ec = m − c and d = c − μ, how far we sit from the market. Then emodel = ec + d, and
The game’s own luck enters only multiplied by our disagreement. On the test seasons rms(d) = 3.2 points over n = 1,960 games, so rms(d)/√n = 0.072, matching the bootstrap’s 0.072.
Beyond the close: an encompassing regression
Estimates: Method A −0.04 ± 0.09, Method C −0.04 ± 0.12, Method B (totals) +0.17 ± 0.12. None is clearly above 0, so the best blend is, for now, the market itself.
Calibration, and its noise floor
With about 1,950 test games, even a perfectly calibrated model shows an ECE near 2.4% for Method B’s bins (simulated 95th percentile 3.6%). Method B’s 4.7% is outside that range, so its miscalibration is real.
So the exit test compares the ECE with its own null distribution: the target is 3.6% here, and only 0.2% of perfectly calibrated runs reach Method B’s error. Until 2026-10-22 the target was a flat 2.5%, which sits at the null’s median: a perfectly calibrated model would have failed it about 43% of the time. A complementary check is the calibration regression logit(y) = a + b·logit(p), testing a = 0 and b = 1; a slope below 1 is the “too sure of itself” pattern seen here.
Proper scoring rules
Both are strictly proper; win chances are scored on games that did not tie, against the de-vigged close. A constant 50% forecast scores exactly 0.693 and 0.25 whatever happens.
Full write-ups: reports/nfl/method_a.md, method_b.md, method_c.md, and
every run in the backtest logs.
What a betting line is
A sportsbook posts three kinds of line for every game.
- Spread. Chiefs −3 means Kansas City is expected to win by about 3. A bet on the Chiefs wins if they win by 4 or more; if they win by exactly 3 it is a push, and the money comes back.
- Total. 44.5 is the book’s guess at both teams’ points added together. You bet over or under it.
- Moneyline. Just who wins, at a price. −150 means bet $150 to win $100 (a favorite); +130 means bet $100 to win $130 (an underdog).
What the closing line is
Lines move as people bet and news comes in. The last line before kickoff is the closing line. By then it holds every injury report, every quarterback decision and the money of the sharpest bettors, so it is the best public prediction of how a game will finish.
Why it’s the number to beat
If our line can come close to the closing line, our method is about as good as the whole market. That is why every grade on the Backtest page compares a method with the closing line on the same games.
The typical miss
How far the final margin lands from the line in an ordinary game: about 13.18 points, about two touchdowns. Football is full of luck, so even the best line misses by that much.
Key numbers
Points come in 3s (field goals) and 7s (touchdowns), so games end by exactly 3 or 7 far more often than by 5 or 9. A line of 3 is a push surprisingly often.
Three things we found
- Home field is worth about 2.2 points, and it has shrunk over the years.
- Totals are fair: games go over and under about equally.
- Results scatter about the same whatever the spread.
The closing line is the market’s last price before kickoff, after the bets and the news are in. It is the best public forecast of an NFL game, so it is our benchmark. This page measures how close it came to the final scores from 2006 to 2025; the season box shows one season at a time.
Key numbers
The chart counts how often games end by each margin from 0 to 21 points (either team winning) in the 2019–25 seasons. The gold bars are what happened. The dashed line is what a bell curve centered on each game’s closing line expects; the blue dots are our key-number model, fitted on 2015–18 only. Games end by exactly 3 about 14.5% of the time, nearly three times the bell curve’s share, and by 7 about 8.4%. The table under it shows pushes at the key lines: how often a game closed at a whole-number spread landed exactly on it.
Spreads
- Spread RMSE
- How far final margins landed from the closing spread, as a root-mean-square error: the typical miss, with big misses counting extra. About 13.18 points over 2006–25: even the best forecast misses by about two touchdowns in a typical game.
- Market HFA
- Home field as the market prices it: the average closing spread for home teams in their own stadium. About 2.2 points over 2006–25 and 1.5 last season; about 1.2 in 2020, when stadiums were mostly empty.
- Home vs line
- Home margin minus the market’s expected home margin, averaged: how much home teams beat (+) or fell short of (−) the closing spread.
- Home margin
- How much home teams actually won by, on average.
- Ties
- Games that ended tied, which refund a moneyline bet.
Totals
- Total RMSE
- How far final totals (both teams’ points) landed from the closing total. About 13.3 points.
- Total bias
- Final total minus closing total, averaged. Positive: games went over the close on average. Over 2006–25 it is +0.65 points, too small to bet overs blindly: the vig costs more.
Moneylines
- De-vigged close
- A book’s two moneylines add up to more than 100%; the excess is the vig. We remove it with the power method, which takes more off the longshot.
- ML log loss
- The average of −ln(the probability the line gave the eventual winner). A coin flip scores 0.693; lower is better. The close scores 0.609.
- ML Brier
- The average squared gap between the home-win probability and the result. A coin flip scores 0.25; the close scores 0.211.
Sigma by spread size
How widely results scatter around the closing spread, grouped by the size of the spread. Unlike some sports, the scatter barely changes with the spread: about 13 points whether the game is a pick’em or a two-touchdown mismatch.
RMSE, and why football is not quite normal
Model the home margin as m = −s + e with s the closing home spread; if the line is unbiased the RMSE is sd(e). For normal e, E|e| = σ√(2/π) ≈ 0.798σ. Football gives about 0.77 (10.0 ÷ 13.0 for spreads of 3 to 5.5): margins are lumpy, piling on 3 and 7, and a few blowouts stretch the tails.
From a line to a chance
The full key-number model and its fitting are in the Backtest guide.
How well one season pins it down
One NFL season can’t tell a 13.0 RMSE from a 13.5. Comparing two forecasts on the same games is far sharper: SE ≈ rms(disagreement)/√n, about ±0.07 for Method A over seven seasons.
Removing the book’s cut
f(k) is strictly decreasing when each π < 1, so k is unique. Since pi/πi = πik−1 with k > 1, the longshot gives up a larger share: the favorite–longshot bias. Example: −150 / +130 quotes 0.600 + 0.435 = 1.035; the power method finds k = 1.053 and fair chances of 58.4% and 41.6%, where the multiplicative method gives 58.0% and 42.0%. With ties refunded, a fair home moneyline is P(M > 0)/(1 − P(M = 0)).
Scoring the moneyline
Log loss and Brier score are strictly proper (see the Backtest guide). The de-vigged close scores 0.609 and 0.211, against 0.693 and 0.25 for a constant 50%.
Home field as an estimator
Each team plays as many home games as away, so team strength cancels in the mean. A single season pins home field only to about ±0.35, so year-to-year wiggles are mostly noise; the decline from about 3 in 2006 to about 1.5 is many standard errors and real.
Limits
One consensus closing line per game, a little softer than a sharp book’s close, and no opening lines, so closing line value can’t be measured on past seasons. The live season records FanDuel’s and DraftKings’ lines each morning.
What we collected
Every NFL game from 2006 to 2025, regular season and playoffs. For each one: the final score, every play, both starting quarterbacks, the weather and the betting market’s closing line.
Where it came from
nflverse, a free, openly licensed collection of NFL data. This season’s live lines come from public scoreboards, and the weather forecasts from Open-Meteo. We paid for nothing.
How we checked it
Every game must have a closing spread, a closing total and its plays. Every one does, so the page passes.
What’s missing
Opening lines (the first line posted) and the times lines moved. The history has only the close, so this season we record lines ourselves each morning.
Phase 0’s job was to collect every NFL game from 2006 to 2025 (regular season and playoffs) with its play-by-play, both starting quarterbacks and a closing line, from free sources only, and to check that the result is complete. Every number on the other pages is only as good as this data.
The exit test
Phase 0 passes when every game has a closing spread, a closing total and play-by-play. The header also counts games with a closing moneyline and with both starting quarterbacks.
Games
Games per season: regular season, playoffs and neutral-site games (the international games and Super Bowls). Play-by-play counts games with every play recorded; Methods B and C read it for EPA. Outdoor with weather counts open-air games with a recorded temperature and wind. Relocated teams (Oakland to Las Vegas, San Diego to Los Angeles, St. Louis to Los Angeles) keep one rating under today’s name.
Closing lines
One closing line per game from nflverse’s games file: spread, total and, from 2006, moneylines and the prices on each side. A few 2006–09 games have no moneyline; they are left out of the moneyline scores only.
What is still missing
- Opening lines and timestamps in the history, so CLV against openers cannot be backtested. The live season records FanDuel’s and DraftKings’ current lines (Action Network) and where DraftKings opened (ESPN).
- A sharp-book close. The consensus close is a little softer than the sharpest market.
- Forecasts in the backtest. The backtest uses the weather recorded at each game, kinder than a morning forecast.
The games file
nflverse’s games file gives each game’s result, rest days, roof, recorded weather, both starting quarterbacks and one closing spread, total and moneyline with prices. Some 2006–09 games have no moneyline; they leave the moneyline scores only.
Expected points and EPA
The classifier for the next score is nflverse’s. Method B reads team EPA; Method C reads each quarterback’s dropbacks (passes, sacks and scrambles), measured against the league’s walk-forward level.
Starting quarterbacks
The history records who actually started and who took each dropback. Method C learns from the dropback-weighted rating of who played and prices with who starts (see the Backtest guide). For the coming week, the Slate reads rosters, depth charts and the teams’ injury reports to pick the likely starter, and you can change him on the card.
Weather
The hinges mean wind under 10 mph and temperatures above 40°F cost nothing. The backtest uses the weather recorded at each game; the Slate uses Open-Meteo’s forecast for kickoff, so its weather terms carry forecast error the backtest never saw.
Team names
Teams that moved (Oakland to Las Vegas, San Diego to Los Angeles, St. Louis to Los Angeles) keep one rating under today’s name, so the filter’s state carries across the move.
Where to read more
The full write-up is reports/nfl/phase0_data.md.
For information and entertainment only. Nothing on this page is betting, financial or legal advice. Our lines, chances, EVs and stakes are estimates from statistical models: they can be wrong, and past results do not predict future ones. Paper picks and Kelly stakes illustrate the math; they are not recommendations. Any bet is your own decision and your own risk: only where sports betting is legal, only if you are 21 or older (or the legal age where you are), and only with money you can afford to lose.
Not affiliated with or endorsed by the NBA, the NFL, the NCAA, any team or conference, ESPN, Action Network or any sportsbook. Team names belong to their owners. Book lines come from third parties and can be late or wrong: check your book before you bet.
Gambling problem? Call 1-800-GAMBLER.