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
601W5 · DEN @ LACTEEvan EngramRec2.5Over+125clearedactual 4+1.25
602W5 · DEN @ LACWRCourtland SuttonRec3.5Over+107missedactual 2−1.00
603W5 · DEN @ LACWRJaylen WaddleRec4.5Under−120clearedactual 2+0.83
604W5 · DEN @ LACRBKeaton MitchellRush att7.5Under−103clearedactual 6+0.97
605W5 · DEN @ LACWRMarvin Mims Jr.Rec1.5Over+111clearedactual 2+1.11
606W5 · DEN @ LACQBBo NixRush att4.5Under−132clearedactual 4+0.76
607W5 · DEN @ LACWRTroy FranklinRec1.5Over−115clearedactual 2+0.87
608W5 · DEN @ LACRBOmarion HamptonRush att10.5Over−107.5clearedactual 14+0.93
609W5 · DEN @ LACRBRJ HarveyRec3.5Under+130clearedactual 0+1.30
610W5 · DET @ ARIWRAmon-Ra St. BrownRec7.5Under−137.5clearedactual 6+0.73
611W5 · DET @ ARIWRJameson WilliamsRec3.5Under+104clearedactual 2+1.04
612W5 · DET @ ARIRBTyler AllgeierRec1.5Under+131missedactual 2−1.00
613W5 · DET @ ARITETrey McBrideRec7.5Under+108missedactual 9−1.00
614W5 · DET @ ARIWRMichael WilsonRec5.5Under+111clearedactual 4+1.11
615W5 · DET @ ARITESam LaPortaRec4.5Under+116missedactual 5−1.00
616W5 · DET @ ARIRBJahmyr GibbsRec4.5Under−103missedactual 5−1.00
617W5 · DET @ ARIRBJahmyr GibbsRush att19.5Under−116missedactual 25−1.00
618W5 · DET @ ARIWRMarvin Harrison Jr.Rec2.5Under+108voidmarket pulled—
619W5 · DET @ ARIWRIsaac TeSlaaRec2.5Under−175clearedactual 0+0.57
620W5 · DET @ ARIRBJeremiyah LoveRec2.5Under−130clearedactual 0+0.77
621W5 · DET @ ARIRBJeremiyah LoveRush att12.5Under−131clearedactual 12+0.76
622W5 · SF @ SEAWRMike EvansRec4.5Under−160missedactual 7−1.00
623W5 · SF @ SEARBChristian McCaffreyRush att14.5Over−117.5missedactual 11−1.00
624W5 · SF @ SEAWRCooper KuppRec2.5Over+107missedactual 2−1.00
625W5 · SF @ SEAWRDeebo Samuel Sr.Rec3.5Over−118missedactual 2−1.00
626W5 · SF @ SEAWRRashid ShaheedRec1.5Over−185.5clearedactual 2+0.54
627W5 · SF @ SEARBEmanuel WilsonRec1.5Under+120missedactual 2−1.00
628W5 · SF @ SEARBEmanuel WilsonRush att16.5Under−109.5missedactual 20−1.00
629W5 · SF @ SEARBGeorge HolaniRec1.5Under+122missedactual 4−1.00
630W5 · TB @ DALQBDak PrescottRush att3.5Under−146clearedactual 0+0.68
631W5 · BAL @ ATLRBDerrick HenryRush att20.5Under−114missedactual 24−1.00
632W5 · BAL @ ATLTEMark AndrewsRec3.5Under−102missedactual 4−1.00
633W5 · BAL @ ATLTEKyle PittsRec2.5Over+102clearedactual 5+1.02
634W5 · BAL @ ATLWRDrake LondonRec5.5Under+106missedactual 7−1.00
635W5 · BAL @ ATLWRJahan DotsonRec1.5Under+111missedactual 2−1.00
636W5 · BAL @ ATLRBBrian RobinsonRush att9.5Under−141clearedactual 7+0.71
637W5 · BAL @ ATLRBBijan RobinsonRush att18.5Under−109clearedactual 17+0.92
638W5 · BAL @ ATLWRZay FlowersRec5.5Under−126missedactual 8−1.00
639W5 · MIN @ NOWRChris OlaveRec6.5Under−125.5clearedactual 4+0.80
640W5 · BUF @ LAWRDavante AdamsRec4.5Under−122missedactual 5−1.00
641W5 · BUF @ LATETyler HigbeeRec2.5Under+103.5missedactual 5−1.00
642W5 · BUF @ LAQBJosh AllenRush att7.5Under−111missedactual 10−1.00
643W5 · BUF @ LARBTy JohnsonRec2.5Under−188missedactual 4−1.00
644W5 · BUF @ LATEDawson KnoxRec1.5Over+116.5missedactual 1−1.00
645W5 · BUF @ LATEColby ParkinsonRec1.5Over−177.5missedactual 1−1.00
646W5 · BUF @ LAWRJosh PalmerRec1.5Under+115voidmarket pulled—
647W5 · BUF @ LATEDalton KincaidRec4.5Under−165clearedactual 1+0.61
648W5 · BUF @ LAWRPuka NacuaRec7.5Under−134missedactual 17−1.00
649W5 · BUF @ LAWRJordan WhittingtonRec0.5Over−186.5missedactual 0−1.00
650W5 · BUF @ LAWRKonata MumpfieldRec0.5Under+136clearedactual 0+1.36
651W5 · PHI @ JAXTEDallas GoedertRec4.5Under−133missedactual 6−1.00
652W5 · PHI @ JAXRBChris Rodriguez Jr.Rush att6.5Over−123missedactual 2−1.00
653W5 · PHI @ JAXRBWill ShipleyRush att10.5Under−123clearedactual 5+0.81
654W5 · PHI @ JAXWRDarius CooperRec2.5Under−157clearedactual 2+0.64
655W5 · CIN @ MIATEGreg DulcichRec2.5Over−135clearedactual 4+0.74
656W5 · CIN @ MIAQBMalik WillisRush att5.5Under+106missedactual 8−1.00
657W5 · CIN @ MIATEWill KacmarekRec1.5Under−235clearedactual 1+0.43
658W5 · CIN @ MIAWRChris BellRec2.5Under−123.5clearedactual 0+0.81
659W5 · CIN @ MIAWRKevin Coleman Jr.Rec1.5Under+118missedactual 3−1.00
660W5 · CLE @ NYJWRJerry JeudyRec1.5Over+100clearedactual 3+1.00
661W5 · CLE @ NYJWRGarrett WilsonRec5.5Under+111.5missedactual 7−1.00
662W5 · CLE @ NYJWRIsaiah WilliamsRec2.5Under−136clearedactual 1+0.74
663W5 · CLE @ NYJRBBraelon AllenRec2.5Under−130clearedactual 1+0.77
664W5 · CLE @ NYJRBBraelon AllenRush att16.5Under+102missedactual 24−1.00
665W5 · CLE @ NYJRBRaheim SandersRec1.5Under+139.5clearedactual 1+1.40
666W5 · CLE @ NYJTEHarold Fannin Jr.Rec4.5Under−146clearedactual 1+0.68
667W5 · CLE @ NYJTEMason TaylorRec1.5Over−155clearedactual 3+0.65
668W5 · CLE @ NYJRBQuinshon JudkinsRec2.5Under+101missedactual 3−1.00
669W5 · CLE @ NYJTEKenyon SadiqRec3.5Under−140clearedactual 2+0.71
670W5 · HOU @ TENTEDalton SchultzRec4.5Over+120missedactual 3−1.00
671W5 · HOU @ TENRBTony PollardRush att14.5Under−124clearedactual 14+0.81
672W5 · HOU @ TENRBDavid MontgomeryRush att13.5Under+104clearedactual 5+1.04
673W5 · IND @ PITWRLaquon TreadwellRec1.5Under−127missedactual 2−1.00
674W5 · IND @ PITRBJaylen WarrenRec2.5Under+107missedactual 6−1.00
675W5 · IND @ PITRBJaylen WarrenRush att15.5Under−117clearedactual 15+0.85
676W5 · LV @ NETEIan ThomasRec0.5Over+115voidmarket pulled—
677W5 · LV @ NERBRhamondre StevensonRec2.5Under+102missedactual 3−1.00
678W5 · LV @ NERBRhamondre StevensonRush att10.5Under+102missedactual 13−1.00
679W5 · LV @ NEQBDrake MayeRush att5.5Under+5not a valid pricemissedactual 7—
680W5 · LV @ NEWREfton Chism IIIRec1.5Under+134missedactual 5−1.00
681W5 · LV @ NERBTreVeyon HendersonRush att12.5Under−133clearedactual 4+0.75
682W5 · LV @ NETEEli RaridonRec1.5Under−172missedactual 5−1.00
683W5 · MIN @ NORBAaron JonesRec2.5Under+116missedactual 3−1.00
684W5 · MIN @ NORBAaron JonesRush att17.5Under−115missedactual 25−1.00
685W5 · MIN @ NORBAlvin KamaraRec3.5Under−132clearedactual 2+0.76
686W5 · MIN @ NORBAlvin KamaraRush att10.5Over−116.5missedactual 3−1.00
687W5 · MIN @ NOTET.J. HockensonRec4.5Under−144clearedactual 1+0.69
688W5 · MIN @ NOTENoah FantRec1.5Over−136missedactual 1−1.00
689W5 · MIN @ NOWRJustin JeffersonRec6.5Under−134clearedactual 6+0.75
690W5 · MIN @ NORBKendre MillerRush att6.5Under−113missedactual 10−1.00
691W5 · MIN @ NOWRJordan AddisonRec3.5Under−139voidmarket pulled—
692W5 · NYG @ WASRBCam SkatteboRush att14.5Under−110clearedactual 13+0.91
693W5 · CHI @ GBTEJonnu SmithRec1.5Over+173.5missedactual 0−1.00
694W5 · CHI @ GBRBD'Andre SwiftRec2.5Under−105missedactual 4−1.00
695W5 · CHI @ GBRBD'Andre SwiftRush att19.5Under−121.5clearedactual 9+0.82
696W5 · CHI @ GBTECole KmetRec1.5Over+129missedactual 1−1.00
697W5 · CHI @ GBWRChristian WatsonRec4.5Under−135missedactual 6−1.00
698W5 · CHI @ GBRBMarShawn LloydRush att8.5Under−123missedactual 10−1.00
699W5 · CHI @ GBTEColston LovelandRec4.5Under−159clearedactual 2+0.63
700W5 · CHI @ GBRBKaleb JohnsonRush att9.5Under−115clearedactual 7+0.87
Showing 601–700 of 1,279 matching of 1,279 leans · 2,549 rows in the ledgerSorted oldest first · filters narrow the list, never the total

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