calibrated SPORTS
NFLLinesReceipts

Lines · Receipts · 2026

Every lean the model published, graded, none removed.

Win or lose, it’s all here. The model scores worse than the market, and this is the ledger that shows it lean by lean.

1,234
Leans graded, 2026
663–571
Cleared · missed
53.7% [50.9, 56.5]
Hit rate · n = 1,234 cleared or missed
+9.3u [−55.2, +73.8]
Units at the read price

Running units

Up 9.28 units over 1,205 leans. The interval spans zero, so the record can’t be told apart from breaking even.

Hypothetical units at the read price, lean by lean1 unit a lean · flat
0u+29u−66u
the published leans, 1u eacha coin at the same priceszero

Nobody bet this: it is the published record at the prices that stood. A cleared lean pays what its price pays on one unit; a missed lean loses the unit; a push returns it; a void is not a bet. The price is the median American price on the lean’s side across the benchmark books at the read that published it, as the ledger records it. The dashed line is the same stakes at the same prices if every lean had cleared exactly half the time: a reference, not a verdict. The interval is the total’s, 95%: n × mean ± 1.96 × √n × sd of the per-lean returns, treating leans as independent. Leans in one game are not, so the real interval is wider. 29 settled leans have no valid recorded price (missing, or between −100 and +100, where no American price lies) and are on neither line.

The ledger

One row per lean, in the order it was published. Filter it any way you like; the total never changes.

#Wk · gamePlayerMarketLineSidePriceResultUnits
768W6 · SEA @ DENWRCooper KuppRec2.5Over+116.5clearedactual 5+1.17
770W6 · SEA @ DENWRJaylen WaddleRec4.5Under−114.5clearedactual 4+0.87
771W6 · SEA @ DENWRRashid ShaheedRec1.5Over−189clearedactual 5+0.53
772W6 · SEA @ DENRBEmanuel WilsonRec1.5Under−110.5clearedactual 0+0.91
773W6 · SEA @ DENRBEmanuel WilsonRush att17.5Under−102clearedactual 14+0.98
774W6 · SEA @ DENWRMarvin Mims Jr.Rec1.5Over+3not a valid priceclearedactual 2—
775W6 · SEA @ DENRBGeorge HolaniRec1.5Under+0.5not a valid priceclearedactual 0—
777W6 · SEA @ DENTEAJ BarnerRec2.5Over+104.5clearedactual 3+1.04
779W6 · SEA @ DENWRTory HortonRec0.5Over−169clearedactual 1+0.59
780W6 · SEA @ DENRBRJ HarveyRec3.5Under−118clearedactual 3+0.85
781W6 · SEA @ DENRBRJ HarveyRush att5.5Over+117clearedactual 6+1.17
782W6 · WAS @ SFWRMike EvansRec5.5Under+126clearedactual 3+1.26
783W6 · WAS @ SFTEGeorge KittleRec5.5Under−136clearedactual 5+0.74
784W6 · SEA @ DENQBSam DarnoldRush att2.5Under−134clearedactual 2+0.75
786W6 · SEA @ DENWRRashid ShaheedRec2.5Over+139.5clearedactual 5+1.40
788W6 · SEA @ DENRBEmanuel WilsonRush att18.5Under−115clearedactual 14+0.87
789W6 · SEA @ DENRBRJ HarveyRush att4.5Over−127clearedactual 6+0.79
790W6 · SEA @ DENRBJ.K. DobbinsRush att13.5Over−113clearedactual 17+0.89
791W6 · HOU @ JAXTEDalton SchultzRec3.5Over+100clearedactual 4+1.00
792W6 · HOU @ JAXWRJakobi MeyersRec3.5Over+124clearedactual 5+1.24
793W6 · HOU @ JAXWRNico CollinsRec5.5Under+105clearedactual 3+1.05
794W6 · HOU @ JAXWRParker WashingtonRec4.5Under−101clearedactual 4+0.99
795W6 · HOU @ JAXWRKayshon BoutteRec2.5Under−154clearedactual 2+0.65
797W6 · HOU @ JAXWRMarvin Harrison Jr.Rec1.5Over−159clearedactual 3+0.63
799W6 · HOU @ JAXRBWoody MarksRec2.5Under−108clearedactual 2+0.93
802W6 · HOU @ JAXRBBhayshul TutenRush att16.5Under−107clearedactual 12+0.93
803W6 · HOU @ JAXWRJosh CameronRec1.5Under−105clearedactual 0+0.95
805W6 · BAL @ CLERBDerrick HenryRush att20.5Under−131clearedactual 17+0.76
806W6 · BAL @ CLEWRDenzel BostonRec3.5Under+103clearedactual 1+1.03
807W6 · CAR @ PHITEDarren WallerRec2.5Under+113clearedactual 0+1.13
808W6 · CAR @ PHIRBChuba HubbardRec2.5Under−2not a valid priceclearedactual 1—
812W6 · CHI @ ATLWRKalif RaymondRec2.5Under−107.5clearedactual 2+0.93
814W6 · CHI @ ATLRBD'Andre SwiftRush att17.5Under−107clearedactual 16+0.93
815W6 · CHI @ ATLTECole KmetRec1.5Over+160clearedactual 2+1.60
816W6 · CHI @ ATLTEKyle PittsRec2.5Over−175clearedactual 5+0.57
817W6 · CHI @ ATLWRDrake LondonRec6.5Under−150clearedactual 4+0.67
819W6 · CHI @ ATLRBBrian RobinsonRush att8.5Under−124clearedactual 2+0.81
821W6 · CHI @ ATLRBBijan RobinsonRush att18.5Under−108.5clearedactual 9+0.92
822W6 · CHI @ ATLQBCaleb WilliamsRush att4.5Under−102clearedactual 4+0.98
830W6 · NO @ NYGWRDevaughn VeleRec4.5Under−135clearedactual 3+0.74
831W6 · NO @ NYGRBCam SkatteboRec1.5Under+118clearedactual 0+1.18
832W6 · NO @ NYGRBCam SkatteboRush att14.5Under−1.5not a valid priceclearedactual 0—
833W6 · NO @ NYGWRMalachi FieldsRec2.5Under−195clearedactual 2+0.51
835W6 · NYJ @ NERBRhamondre StevensonRec2.5Under+123clearedactual 0+1.23
836W6 · NYJ @ NERBRhamondre StevensonRush att16.5Under−106clearedactual 14+0.94
837W6 · NYJ @ NEWRGarrett WilsonRec6.5Under−128clearedactual 4+0.78
838W6 · NYJ @ NERBBraelon AllenRec2.5Under+114.5clearedactual 2+1.15
840W6 · PIT @ TBWRChris Godwin Jr.Rec3.5Over+120clearedactual 4+1.20
843W6 · PIT @ TBRBBucky IrvingRec1.5Over−177clearedactual 2+0.56
846W6 · TEN @ INDWRKeenan AllenRec3.5Over−154.5clearedactual 8+0.65
847W6 · TEN @ INDRBTony PollardRec1.5Under−102clearedactual 0+0.98
848W6 · TEN @ INDRBJonathan TaylorRec2.5Under+104clearedactual 2+1.04
851W6 · TEN @ INDWRJosh DownsRec4.5Under−149clearedactual 4+0.67
855W6 · TEN @ INDTEGunnar HelmRec2.5Under−160clearedactual 0+0.63
861W6 · ARI @ LATEColby ParkinsonRec1.5Over−120clearedactual 5+0.83
862W6 · ARI @ LATETrey McBrideRec7.5Under−140clearedactual 7+0.71
864W6 · ARI @ LAWRMichael WilsonRec5.5Under−125clearedactual 4+0.80
866W6 · ARI @ LAWRPuka NacuaRec7.5Under+105clearedactual 6+1.05
868W6 · ARI @ LARBBlake CorumRush att9.5Under−120clearedactual 9+0.83
870W6 · BUF @ LVQBJosh AllenRush att7.5Under−131clearedactual 5+0.76
872W6 · BUF @ LVRBJames CookRec1.5Over+106clearedactual 3+1.06
874W6 · BUF @ LVWRTre TuckerRec3.5Over−117clearedactual 5+0.85
877W6 · BUF @ LVTEBrock BowersRec6.5Under−102clearedactual 4+0.98
879W6 · LAC @ KCTETravis KelceRec4.5Under−126.5clearedactual 4+0.79
880W6 · LAC @ KCRBKenneth Walker IIIRec2.5Under+134clearedactual 2+1.34
881W6 · LAC @ KCRBKenneth Walker IIIRush att19.5Under−115clearedactual 19+0.87
885W6 · SEA @ DENTEAJ BarnerRec3.5Under−162clearedactual 3+0.62
887W6 · DAL @ GBRBJavonte WilliamsRec2.5Under+114clearedactual 2+1.14
888W6 · DAL @ GBRBJavonte WilliamsRush att16.5Under−104clearedactual 11+0.96
889W6 · DAL @ GBWRBo MeltonRec1.5Under−105clearedactual 0+0.95
893W6 · DAL @ GBWRChristian WatsonRec4.5Under+110clearedactual 3+1.10
896W6 · DAL @ GBRBMarShawn LloydRec2.5Under−190clearedactual 0+0.53
897W6 · DAL @ GBRBMarShawn LloydRush att11.5Under−120.5clearedactual 8+0.83
899W6 · WAS @ SFRBChristian McCaffreyRush att14.5Over−116clearedactual 16+0.86
901W6 · WAS @ SFQBJayden DanielsRush att6.5Under+106clearedactual 4+1.06
902W6 · HOU @ JAXWRXavier HutchinsonRec1.5Over−130clearedactual 2+0.77
903W6 · HOU @ JAXQBC.J. StroudRush att3.5Under−147clearedactual 1+0.68
904W6 · BAL @ CLERBDerrick HenryRec1.5Under−165clearedactual 1+0.61
906W6 · BAL @ CLETEMark AndrewsRec3.5Under−115clearedactual 1+0.87
908W6 · BAL @ CLEWRJerry JeudyRec1.5Over+124.5clearedactual 4+1.25
912W6 · BAL @ CLEWRKC ConcepcionRec4.5Under−128clearedactual 4+0.78
916W6 · CAR @ PHIRBDameon PierceRush att15.5Under−115clearedactual 12+0.87
917W6 · CAR @ PHIWRDontayvion WicksRec2.5Under−110.5clearedactual 2+0.91
922W6 · NO @ NYGRBCam SkatteboRush att13.5Under−117clearedactual 0+0.85
924W6 · NYJ @ NETEHunter HenryRec2.5Over−153clearedactual 4+0.65
925W6 · NYJ @ NEWRTim PatrickRec1.5Under−136clearedactual 1+0.74
927W6 · NYJ @ NERBRhamondre StevensonRush att15.5Under−118clearedactual 14+0.85
929W6 · NYJ @ NEQBDrake MayeRush att5.5Under−113clearedactual 4+0.89
930W6 · NYJ @ NETEMason TaylorRec1.5Over−159clearedactual 4+0.63
931W6 · NYJ @ NETEKenyon SadiqRec2.5Under−154clearedactual 1+0.65
933W6 · PIT @ TBRBRico DowdleRush att6.5Over+103clearedactual 7+1.03
934W6 · PIT @ TBTEPat FreiermuthRec3.5Under−124clearedactual 2+0.81
935W6 · PIT @ TBRBJaylen WarrenRec3.5Under−104clearedactual 2+0.96
936W6 · PIT @ TBRBJaylen WarrenRush att14.5Under−123clearedactual 14+0.81
937W6 · PIT @ TBWRTed Hurst IIIRec1.5Over+158clearedactual 3+1.58
938W6 · PIT @ TBQBJalon DanielsRush att7.5Under−143clearedactual 4+0.70
939W6 · TEN @ INDWRKeenan AllenRec4.5Over+115clearedactual 8+1.15
940W6 · TEN @ INDWRLaquon TreadwellRec2.5Under−166clearedactual 2+0.60
943W6 · BUF @ LVWRJalen NailorRec2.5Under−154clearedactual 1+0.65
947W6 · LAC @ KCRBKenneth Walker IIIRec3.5Under−180clearedactual 2+0.56
Showing 1–100 of 148 matching of 1,279 leans · 2,549 rows in the ledgerSorted oldest first · filters narrow the list, never the total

Show all 1,279

All 1,279 leans this season and every event, with prices and timestamps (CSV) · the same rows (parquet). Each row is one lean as the ledger has it: published at a read, then graded once on the line it was published at, or voided with a reason. A lean whose line later moved, or whose game has not been played, is still here.

Rows in the ledger

2,549 rows in the ledger, and the hash chain, recomputed here over every one of them, holds.

Rows in the ledger, by week: a running count

400
W3
1,024
W4
1,534
W5
2,054
W6
2,540
W7
2,549
W8

Rows are events: a lean is published once and graded or voided once, so it is one row or two. Week 3: 400 rows, 200 leans published · Week 4: 624 rows, 312 leans published · Week 5: 510 rows, 255 leans published · Week 6: 520 rows, 260 leans published · Week 7: 486 rows, 243 leans published · Week 8: 9 rows, 9 leans published. A running count read from one file cannot go down and cannot show a row taken out before the file was read, so it is a count here, not a proof.

The chain head

Recomputed here: every row’s hash is the SHA-256 of its 25 cells and the previous row’s hash, so editing or removing a row breaks every hash after it. Rows cut from the end leave a chain that still holds; only a head recorded before the cut catches that. The head is fab2bc85f6cb4b63dc640bd548e6eeab5ee864ac33eb987845d37d180d3dc739 - keep it, and check it against the next one.

  • Week 4’s index publishes row #1,024’s hash as 85a9…1844: this file's row #1,024 carries the same.
  • Week 5’s index publishes row #1,534’s hash as c58b…5471: this file's row #1,534 carries the same.
  • Week 6’s index publishes row #2,054’s hash as f713…37c3: this file's row #2,054 carries the same.
  • Week 7’s index publishes row #2,540’s hash as 95c9…1855: this file's row #2,540 carries the same.
  • Week 8’s index publishes row #2,549’s hash as fab2…c739: this file's row #2,549 carries the same.

Pushes and voids

0 pushes and 36 voids so far. Each stays on the record; neither counts toward the hit rate.

W3 · CAR @ CLEvoid
WRXavier Legette
Rec 1.5 · over
Void: inactive
W3 · NYJ @ DETvoid
WRAdonai Mitchell
Rec 3.5 · under
Void: inactive
W3 · BAL @ DALvoid
WRChris Moore
Rec 1.5 · under
Void: market pulled
W3 · BAL @ DALvoid
WRLaJohntay Wester
Rec 2.5 · under
Void: market pulled
W3 · HOU @ INDvoid
WRDarius Slayton
Rec 1.5 · over
Void: inactive
W3 · TEN @ NYGvoid
RBDevin Singletary
Rec 1.5 · under
Void: inactive
W4 · IND @ WASvoid
WRKeenan Allen
Rec 3.5 · over
Void: market pulled
W4 · IND @ WASvoid
WRStefon Diggs
Rec 4.5 · over
Void: market pulled
W4 · IND @ WASvoid
WRTerry McLaurin
Rec 4.5 · under
Void: market pulled
W4 · IND @ WASvoid
WRAntonio Williams
Rec 1.5 · under
Void: market pulled
W4 · LA @ PHIvoid
WRDeVonta Smith
Rec 5.5 · under
Void: market pulled
W4 · KC @ LVvoid
RBMike Washington Jr.
Rush att 4.5 · under
Void: market pulled
W4 · LAC @ SEAvoid
RBJadarian Price
Rec 1.5 · under
Void: market pulled
W4 · DET @ CARvoid
WRJalen Coker
Rec 4.5 · under
Void: market pulled
W4 · IND @ WASvoid
WRDarius Slayton
Rec 1.5 · over
Void: market pulled
W4 · ATL @ NOvoid
TENoah Fant
Rec 1.5 · over
Void: market pulled
W5 · LV @ NEvoid
RBAshton Jeanty
Rec 3.5 · under
Void: market pulled
W5 · LV @ NEvoid
RBAshton Jeanty
Rush att 16.5 · under
Void: market pulled
W5 · CHI @ GBvoid
RBKyle Monangai
Rush att 11.5 · under
Void: market pulled
W5 · DET @ ARIvoid
WRMarvin Harrison Jr.
Rec 2.5 · under
Void: market pulled
W5 · BUF @ LAvoid
WRJosh Palmer
Rec 1.5 · under
Void: market pulled
W5 · LV @ NEvoid
TEIan Thomas
Rec 0.5 · over
Void: market pulled
W5 · MIN @ NOvoid
WRJordan Addison
Rec 3.5 · under
Void: market pulled
W5 · DEN @ LACvoid
WRLadd McConkey
Rec 3.5 · under
Void: market pulled
W6 · TEN @ INDvoid
RBTyjae Spears
Rec 2.5 · over
Void: market pulled
W6 · TEN @ INDvoid
TETyler Warren
Rec 5.5 · under
Void: market pulled
W6 · BUF @ LVvoid
WRDJ Moore
Rec 3.5 · under
Void: market pulled
W6 · BAL @ CLEvoid
RBQuinshon Judkins
Rec 2.5 · under
Void: market pulled
W7 · LA @ LVvoid
TETyler Higbee
Rec 4.5 · under
Void: market pulled
W7 · LA @ LVvoid
WRPuka Nacua
Rec 8.5 · under
Void: market pulled
W7 · LA @ LVvoid
WRJordan Whittington
Rec 0.5 · over
Void: market pulled
W7 · LA @ LVvoid
WRKonata Mumpfield
Rec 1.5 · under
Void: market pulled
W7 · CLE @ TENvoid
WRCalvin Ridley
Rec 0.5 · over
Void: market pulled
W7 · CLE @ TENvoid
RBTyjae Spears
Rec 2.5 · over
Void: market pulled
W7 · SF @ ATLvoid
WROlamide Zaccheaus
Rec 1.5 · over
Void: market pulled
W7 · TB @ CARvoid
RBAJ Dillon
Rush att 3.5 · under
Void: market pulled

By market

Receptions carry most of the leans: 943 of 1,279.

MarketLeansCleared · missedHit rate · 95%Against 52.4%
Receptions943478–42552.9% 49.7–56.2contains 52.4%
Rush attempts336185–14655.9% 50.5–61.1contains 52.4%

By market and lean size

5 of 5 intervals contain 52.4%, the break-even at −110; 0 sit wholly under it; 0 sit wholly over it. 1 cell has no interval: fewer than 30 leans that cleared or missed.

MarketGapnCleared95%Against 52.4%
Receptions4–6 pp12246%37%–55%
Receptions6–8 pp8346%35%–56%
Receptions8+ pp69855%51%–59%
Rush attempts4–6 pp3639%25%–55%
Rush attempts6–8 pp20—pending
Rush attempts8+ pp27558%52%–64%

The size is the producer’s own band on each lean: the gap between the model’s probability and the market’s, in probability points, when the lean was published. A rate is shown where a market, or a market and size, has at least 30 leans that cleared or missed; a push is neither and is counted apart. The interval is Wilson’s, 95%, and it treats every lean as independent. Leans in one game are not, so the real uncertainty is wider than the interval drawn.

How the model scores against the market

Walk-forward Brier(model) - Brier(close), 2025

0.0195

95% 0.0144 to 0.0253 · n 6,031 outcomes

The model scored worse than the de-vigged sportsbook close, over 284 games (the board index’s copy, which agrees with the registry).

research/hypotheses.json · hypotheses[id=R15].estimate

Brier(model) - Brier(Kalshi mid), week 1

0.0142

95% 0.0007 to 0.0263 · n 925 predictions · 14 games

The model scored worse than the Kalshi mid.

research/calibration.json · brier.model_minus_market.estimate

Restatement note, from the metric registry

R10 is the 2026-09-17 restatement on n=706 (229 books one-sided at entry); research/calibration.json now scores n=935 because the Kalshi candle backfill supplies a two-sided entry quote for every prediction. Unresolved: which entry quote is correct (a-36). (research/hypotheses.json · hypotheses[id=R10].estimate, not printed here)

What a lean is

The side the model’s probability sits on, when it differs from the market’s de-vigged price by 4 points or more at the read that publishes it. In the board’s own words: over at gap >= +T, under at gap <= -T.

What it is not

A recommendation, or a claim that the model knows something the market does not. It is published so it can be graded, not because disagreeing has paid. Walk-forward, the model scored worse than the de-vigged sportsbook close (95% interval for the Brier difference 0.0144 to 0.0253).

What would change the verdict

A season whose walk-forward interval for Brier(model) − Brier(close) lies wholly under zero. On this page, a record whose 95% interval lies wholly over the −110 break-even. Each is where an interval sits, computed from the files, so either sentence above would change on its own.

Not a sportsbook · no wagers accepted · nothing here is advice · board/nfl/ledger.csv and board/nfl/ledger.parquet: 2,549 rows each, identical row for row · board indexes for week 3, 4, 5, 6, 7, 8 of 2026 · model baseline-usage-0.4+03571d4710af