Divisional underdogs went 1,359-1,252-74 ATS from 1999 through 2025. That is a 52.0% cover rate across 2,611 non-push decisions. The road slice was stronger: 886-768-45, or 53.6%. The home-dog slice was 473-484-29, or 49.4%.
The headline survives a broad sample, but it still needs its labels. These are regular-season divisional games, graded against the closing spread. Pick’em games are absent because there is no underdog. The result is a historical market record, not proof that familiarity, rivalry, or coaching caused the covers.
The broad divisional comparison
| Split | Underdog ATS | Cover rate |
|---|---|---|
| All divisional games | 1,359-1,252-74 | 52.0% |
| Road divisional dogs | 886-768-45 | 53.6% |
| Home divisional dogs | 473-484-29 | 49.4% |
| All non-divisional games | 2,091-2,046-115 | 50.5% |
The divisional group finished about 1.5 percentage points above the non-divisional underdog group. The difference came from road dogs. Home divisional dogs lost more ATS decisions than they won. A slogan such as “division dogs know each other” hides the location split that actually carried the aggregate.
Favorite and home-side views
The same rows can be read from the other side. Divisional favorites went 1,252-1,359-74 ATS, a 48.0% cover rate. Home teams in divisional games went 1,241-1,370-74 ATS, a 47.5% cover rate. Road teams went 1,370-1,241-74, or 52.5%.
Favorite and home team are not synonyms. In 986 divisional games the home team was the underdog. In 1,699 the road team was the underdog. The underdog location table preserves that distinction. A “road team” angle includes road favorites; a “road dog” angle does not.
This is why the source convention matters. Positive spread_line means the home team is favored. A negative value means the away team is favored and the home team is the dog. Reversing that sign would swap the location splits and manufacture the opposite conclusion.
The spread buckets stayed close
| Divisional dog points | ATS record | Cover rate | Outright wins |
|---|---|---|---|
| +1 to +3 | 468-425-38 | 52.4% | 425 |
| +3.5 to +6.5 | 452-422-8 | 51.7% | 282 |
| +7 or more | 439-405-28 | 52.0% | 175 |
No single bucket owns the full result. Small divisional dogs covered 52.4%, middle dogs 51.7%, and large dogs 52.0%. The records differ, but all three rates sit within seven-tenths of a percentage point. That is more stable than a result carried by one tiny band.
It still does not establish profit. The table counts cover decisions. It does not impose a common price on every spread. A small spread at one price and a large spread at another each contribute one ATS decision. Return needs the recorded odds and an explicit unit rule.
The result moved by era
Divisional dogs went 537-482-34 ATS from 1999–2008, a 52.7% rate. They were nearly even in 2009–2018 at 469-464-27, or 50.3%. They rose to 353-306-13 in 2019–2025, or 53.6%. The full-period 52.0% result is an average of different era paths.
The recent five completed seasons were 250-221-9, a 53.1% cover rate. That supports recent persistence, but it does not explain it. A cause claim would need to compare rules, scheduling, team strength, closing-price formation, and other variables under a predeclared model. This post did not do that.
Annual divisional records were noisy. Dogs covered 63.4% in 2006 and 40.2% in 2017. They were 46.2% in 2023, 56.4% in 2024, and 53.1% in 2025. The long sample is useful precisely because a single season can point in the opposite direction.
Why “familiar opponents” is not in the result
The CSV marks a game as divisional. It does not measure familiarity. It does not record how much a coaching staff changed, whether quarterbacks had faced the scheme, or how stable a roster was. Those stories may be interesting hypotheses. They are not columns in this calculation.
Divisional schedules also differ from non-divisional schedules in ways this one-variable comparison does not control. Opponent pairs can recur within a season. Team strength and injuries vary. The line is set with the matchup identity already known. A residual ATS difference can motivate a model, but it is not automatically an unpriced effect.
The clean claim is narrower: in this historical closing-line sample, divisional underdogs covered more often than non-divisional underdogs, and the excess was concentrated in road divisional dogs.
The Receipts Drawer
The receipt has four lines. All divisional dogs: 1,359-1,252-74. Road divisional dogs: 886-768-45. Home divisional dogs: 473-484-29. Non-divisional dogs: 2,091-2,046-115. Those lines let a reader reject the lazy version without rejecting the data.
For current decisions, open the NFL picks page and require a current line. Use Analytics to reproduce the divisional filter with a declared date range. The divisional betting guide supplies broader context; this post supplies the frozen closing-line count.
How to test this without moving the goalposts
Register the broad rule before the next completed season: regular-season games with div_game = 1, nonzero close, underdog side, and one named close source. Keep road versus home and the three spread bands as diagnostics. Do not add a new cutoff because a current week happens to fit it.
Append new graded games to the old record. Report W-L-P before the percentage. Keep any missing line as an error or unavailable row, never as a push. If an opening line is later added, treat opening and closing records as separate questions rather than silently changing the historical grade.
What this article cannot answer
It cannot say whether a current divisional underdog is mispriced. It cannot reconstruct opening-to-closing movement. It cannot attribute the historical result to familiarity. It cannot compare units without using the side prices. Those are not weaknesses to smooth over; they are boundaries around a valid result.
The dataset does support one additional honest statement: divisional underdogs won 882 of the 2,685 games outright. That count is included to separate moneyline outcomes from ATS outcomes. It does not alter the spread record.
A 52% record still needs its price
The divisional-dog rate is 52.0%, but this article does not turn that percentage into a profit claim. A cover at one side price and a cover at another both count as one win. Losses behave the same way. Return depends on the actual odds and the unit rule.
That boundary matters because a percentage near the market’s middle can look profitable or unprofitable under different prices. The honest archive line is W-L-P. A future unit study should read each recorded side price, reject missing prices with a typed reason, and declare whether stakes are flat before calculating return.
Until then, the result is a research split: divisional dogs covered more often than they failed in this sample, with the stronger record on the road. It is not a backfilled bankroll curve.
A reviewer can reproduce the claim with one filter and one sign normalization. That simplicity is a feature. If a later result requires hidden exclusions, renamed buckets, or a different close, it is a new study and should receive a new record rather than inheriting this one.
Where these numbers come from
How we counted: We concatenated the four NFL schedule CSV shards, kept played regular-season rows from 1999–2025 with div_game = 1 and nonzero spread_line, and graded the underdog against the closing spread. The dictionary’s sign convention makes the away team the dog when spread_line > 0 and the home team the dog when it is negative. Positive underdog ATS margin is a cover, zero a push, negative a loss. Spread buckets use abs(spread_line). The non-divisional baseline repeats the same computation with div_game != 1. Cover rates exclude pushes. Source definitions and hashes are in DICTIONARY.json and manifest.json.
NFL ATS cover-margin distribution
Distribution of (final margin − closing spread) across an NFL season. Roughly normal with mean ≈ 0 and standard deviation ≈ 13 points, which is why most ATS edges live in the ±1.5 point window.
Model calibration: predicted vs observed
Predicted win probability bucket vs the empirical win rate inside that bucket on the test set. Points on the y=x reference line are perfectly calibrated; points below mean the model is overconfident in that bucket.


