Skip to content
CURRENT
-6 → -5.5 (+0.5) over 24 captures ATL @ GB spread -6 → -5.5 ATL @ GB ATL 47% tix / 57% $ — reverse line move house House backtest last 10: 4–6 · 90-day all-market 54.6% (n=8572) · 1d ago Wire Woman says she reported alleged 49ers impersonator to team in December · 6h ago Wire Source: Niners signing veteran receiver Cooks to practice squad · 8h ago Wire Kimes on Packers' latest O-line injury: 'It completely changes their identity' · 10h ago

Model output, not advice.

Picks · this week

Picks: one play, the price, the heat — and why

The slate is a heat map of calibrated confidence — glow is earned by the model's gate, not marketing. Each play opens into its attribution: which lenses fired, what the sharp money did, where the key numbers sit.

This week’s picks · NFL 2026 Week 3

16 house plays across 16 games · first kickoff in 1 day

as of Sep 23, 2:23 AM ET · n=16

This week’s picks · NFL 2026 Week 3 · 16 plays above the floor, 0 NO PLAYs shown so you know we looked

The side the model favors and how far past a coin flip it leans (bar from 50, the 0.55 play floor ticked), the matchup's side/total/top-prop reads · best captured price · published edge · the side each lens likes on this line

? · what this block is

tonight table

What
One matchup card per game on the slate, three stacked facts (Grant 2026-09-04): the side the model likes and how far past a coin flip it leans, its total read the same way, and up to 3 player-prop reads ranked by heat — plus the house play, best captured price, published edge and per-lens reads underneath.
Why it is here
The whole slate in one glance, with the NO PLAYs shown so you know we looked.
Example (illustrative rows, not measured)
PlayGameSideTotalTop propsBest priceEdgeLens reads
NE −2.5SEA @ NE · Thu 8:20 PM ET0.62 · NE favored ▮▮▮0.55 · Over favored ▮Metcalf Rec yds O68.5 · 0.66−108 DK+2.1%Divisional Dog NE ✓ · 360-314 · Rest Edge NE ✓ · 208-206 · +1
OVER 44.5KC @ LAC · Sun 4:25 PM ETno side published yet0.57 · Over favored ▮(no props block: no prop confidence published yet)−105 Pinnacleno graded lens reads this game
Honesty
Every number is read from the picks and odds tables; an uncaptured price prints a dash and is never filled with −110; a market with no published pick for a game prints an honest "no side/total published yet" instead of a fabricated 50/50 read; props is [] and the whole props block does not render when the sport has no prop confidence yet — never a resting "no reads" line (Grant: cut empty widgets).
Source
picks + odds_snapshots through the /picks loader (projectTonightTable)
Checked live
rows_match_countsprice_names_its_sourceheat_and_edge_in_rangeedge_absence_is_explainedfavored_side_matches_decisiongraded_voices_are_well_formedbar_ends_name_both_sidesgame_ids_uniquematchup_fact_honestymatchup_props_bounded
PlayGameModelBest priceEdgeLens reads
ATL +6.5 0.80 ATL favored ATL GB
Side ATL GB 0.80 · ATL favored
Total UND OVR 0.60 · Under favored
−105ticket+11.9Primetime Dog ATL ✓ · 221-196 · ATS Streak Regression GB ✗ · 410-388 · Line Value ATL ✓ · 389-358
  • Primetime Dog ATL ✓ · 221-196
  • ATS Streak Regression GB ✗ · 410-388
  • Line Value ATL ✓ · 389-358
NYG +5.5 0.66 NYG favored TEN NYG
Side TEN NYG 0.66 · NYG favored
Total UND OVR 0.71 · Over favored
−110ticket+8.3ATS Streak Regression TEN ✗ · 410-388 · Line Value TEN ✗ · 389-358
  • ATS Streak Regression TEN ✗ · 410-388
  • Line Value TEN ✗ · 389-358
CLE −2.5 0.79 CLE favored CAR CLE
Side CAR CLE 0.79 · CLE favored
Total UND OVR 0.61 · Over favored
−110ticket+7.9Line Value CLE ✓ · 389-358 · ATS Streak Regression CAR ✗ · 410-388
  • Line Value CLE ✓ · 389-358
  • ATS Streak Regression CAR ✗ · 410-388
DET +7 0.78 DET favored NYJ DET
Side NYJ DET 0.78 · DET favored
Total UND OVR 0.57 · Over favored
−110ticket+1.3Rest Edge DET ✓ · 212-206 · Line Value NYJ ✗ · 389-358 · ATS Streak Regression NYJ ✗ · 410-388
  • Rest Edge DET ✓ · 212-206
  • Line Value NYJ ✗ · 389-358
  • ATS Streak Regression NYJ ✗ · 410-388
MIA −8.5 0.90 MIA favored KC MIA
Side KC MIA 0.90 · MIA favored
Total UND OVR 0.61 · Under favored
−110ticket+15.3Line Value MIA ✓ · 389-358 · ATS Streak Regression MIA ✓ · 410-388
  • Line Value MIA ✓ · 389-358
  • ATS Streak Regression MIA ✓ · 410-388
SEA −2.5 0.86 SEA favored SEA WAS
Side SEA WAS 0.86 · SEA favored
Total UND OVR 0.77 · Over favored
−110ticket+10.5ATS Streak Regression WAS ✗ · 410-388 · Line Value WAS ✗ · 389-358
  • ATS Streak Regression WAS ✗ · 410-388
  • Line Value WAS ✗ · 389-358
BUF +4.5 0.58 BUF favored LAC BUF
Side LAC BUF 0.58 · BUF favored
Total UND OVR 0.72 · Under favored
−110ticket+7.1Line Value LAC ✗ · 389-358 · Rest Edge BUF ✓ · 212-206 · ATS Streak Regression LAC ✗ · 410-388
  • Line Value LAC ✗ · 389-358
  • Rest Edge BUF ✓ · 212-206
  • ATS Streak Regression LAC ✗ · 410-388
IND −2.5 0.63 IND favored HOU IND
Side HOU IND 0.63 · IND favored
Total UND OVR 0.69 · Over favored
−110ticket+1.8Line Value IND ✓ · 389-358 · ATS Streak Regression HOU ✗ · 410-388 · Divisional Dog IND ✓ · 366-319
  • Line Value IND ✓ · 389-358
  • ATS Streak Regression HOU ✗ · 410-388
  • Divisional Dog IND ✓ · 366-319
PIT −2.5 0.90 PIT favored CIN PIT
Side CIN PIT 0.90 · PIT favored
Total UND OVR 0.71 · Over favored
−110ticket+13.4Divisional Dog PIT ✓ · 366-319 · Line Value PIT ✓ · 389-358
  • Divisional Dog PIT ✓ · 366-319
  • Line Value PIT ✓ · 389-358
NE +2.5 0.60 NE favored NE JAX
Side NE JAX 0.60 · NE favored
Total UND OVR 0.56 · Over favored
−110ticket−1.8Line Value NE ✓ · 389-358
  • Line Value NE ✓ · 389-358
ARI +8.5 0.67 ARI favored ARI SF
Side ARI SF 0.67 · ARI favored
Total UND OVR 0.61 · Over favored
−106Pinnacle+12.0Divisional Dog ARI ✓ · 366-319 · ATS Streak Regression ARI ✓ · 410-388
  • Divisional Dog ARI ✓ · 366-319
  • ATS Streak Regression ARI ✓ · 410-388
MIN +1.5 0.67 MIN favored MIN TB
Side MIN TB 0.67 · MIN favored
Total UND OVR 0.60 · Under favored
−110ticket+3.9Line Value TB ✗ · 389-358
  • Line Value TB ✗ · 389-358
DAL −3 0.75 DAL favored BAL DAL
Side BAL DAL 0.75 · DAL favored
Total UND OVR 0.60 · Over favored
−110ticket+5.2ATS Streak Regression DAL ✓ · 410-388 · Line Value DAL ✓ · 389-358
  • ATS Streak Regression DAL ✓ · 410-388
  • Line Value DAL ✓ · 389-358
NO +3 0.74 NO favored LV NO
Side LV NO 0.74 · NO favored
Total UND OVR 0.73 · Under favored
−110ticket+6.4Line Value LV ✗ · 389-358 · ATS Streak Regression LV ✗ · 410-388
  • Line Value LV ✗ · 389-358
  • ATS Streak Regression LV ✗ · 410-388
DEN −2.5 0.75 DEN favored LA DEN
Side LA DEN 0.75 · DEN favored
Total UND OVR 0.59 · Over favored
−110ticket+8.1ATS Streak Regression LA ✗ · 410-388 · Line Value DEN ✓ · 389-358 · Primetime Dog DEN ✓ · 221-196 · Home Dog Primetime DEN ✓ · 86-74
  • ATS Streak Regression LA ✗ · 410-388
  • Line Value DEN ✓ · 389-358
  • Primetime Dog DEN ✓ · 221-196
  • Home Dog Primetime DEN ✓ · 86-74
CHI +1.5 0.64 CHI favored PHI CHI
Side PHI CHI 0.64 · CHI favored
Total UND OVR 0.55 · Under favored
−105ticket+4.2Home Dog Primetime CHI ✓ · 86-74 · ATS Streak Regression PHI ✗ · 410-388 · Line Value CHI ✓ · 389-358 · Primetime Dog CHI ✓ · 221-196
  • Home Dog Primetime CHI ✓ · 86-74
  • ATS Streak Regression PHI ✗ · 410-388
  • Line Value CHI ✓ · 389-358
  • Primetime Dog CHI ✓ · 221-196

Best price = the best captured book price at the play’s own line, across books (ticket = the price at publish when no book quotes that exact line yet; — = no price at all, never −110). Edge = published edge vs the opening no-vig fair price, pts. Lens reads: each GRADED canonical lens’s side on this line’s market and its win-loss record · ✓ agrees with the house · ✗ opposes · persona voices never render here. n=16 games · as of Sep 23, 2:23 AM ET

Game spotlight · NFL

? · what this block is

game spotlight

What
Everything about one game: the market by book, the player prop lines grouped per player with the model’s read when it has one, the released house pick, and the open → now movement.
Why it is here
A pick is a claim about a game; the spotlight shows the whole game so the claim can be judged.
Example (illustrative rows, not measured)
PlayerMarketLineModel read
D. MayePassing yards245.5no model read yet
S. DarnoldPassing TDs1.5no model read yet
Honesty
Prop lines are the books’ own captured lines and carry no price; a prop without a model read says so instead of drawing a bar; each section degrades on its own and prints its cure.
Source
GET /api/game-spotlight (odds_snapshots, underdog_props_latest, picks, odds_opening_lines)
Checked live
game_identity_presentready_sections_carry_rowsconfidence_in_unit_intervalplayers_unique

Loading upcoming games…

ATL @ GB · the why

? · what this block is

play why

What
The house play with its calibrated confidence against the floor, and one row per lens voice: agrees, opposes or no read, with the stored signal strength.
Why it is here
Attribution, not vibes — which lenses fired and how hard is what makes a play defensible.
Example (illustrative rows, not measured)
LensMarkStrengthTake
Sharp money divergence84%Line moved NE −1 → −2.5 against 38% of tickets.
Contrarianno readNothing to fade.
Honesty
Strengths are stored lens_signals values printed as-is; a lens without a fired signal prints “no read” and no number; a NO PLAY still lists what was weighed.
Source
picks + lens_signals through projectPlayWhy
Checked live
agree_count_matches_lensesno_read_has_no_strengthheat_in_unit_intervallens_ids_unique

ATL +6.5

calibrated 0.80 vs the 0.55 floor · attribution, not vibes

  • Fan no read
  • Casual bettor no read
  • Sharp money 100%
  • Modeler 100%
  • Contrarian 100%
2 of 5 voices agree

as of Sep 23, 2:23 AM ET

Where the money is going

? · what this block is

money flow

What
Where the money is going on each game: the side it leans to, tickets versus dollars, the open → now line and a one-word read.
Why it is here
A line that moves against the ticket count is the sharpest public signal there is; the read names it.
Example (illustrative rows, not measured)
GameSideOpenNowRead
SEA @ NENENE −1NE −2.5sharp side · 38% tickets · 61% money
KC @ LACKCKC −3KC −3split · 52% tickets · 49% money
Honesty
Percentages are the splits feed rounded to whole numbers; the read is a closed set (public pile-on, sharp side, split, no read) derived only from those splits and the line; an empty slate prints its own empty text.
Source
spread splits + odds_snapshots through projectMoneyFlow
Checked live
percentages_are_integers_in_rangerow_text_presentempty_slate_has_its_textgame_ids_unique

open → now · tickets vs dollars · 10 books

GameOpenNowRead
ATL @ GBATL +7ATL +5.549% tickets · 59% money
TEN @ NYGTEN +6TEN +2.556% tickets · 51% money
CAR @ CLECAR −2.5CAR −379% tickets · 82% money
NYJ @ DETDET −6.5DET −6.572% tickets · 63% money
KC @ MIAKC −10.5KC −11.586% tickets · 93% money
SEA @ WASSEA −6.5SEA −786% tickets · 94% money
LAC @ BUFBUF −7BUF −7.575% tickets · 67% money
HOU @ INDIND +2.5IND +2.558% tickets · 56% money
CIN @ PITCIN −3.5CIN −3.571% tickets · 86% money
NE @ JAXJAX −3JAX −335% tickets · 51% money
ARI @ SFSF −8SF −8.576% tickets · 83% money
MIN @ TBMIN −2.5MIN −1.564% tickets · 57% money
BAL @ DALBAL −2.5BAL −3.546% tickets · 77% money
LV @ NOLV +3LV +357% tickets · 60% money
LA @ DENLA −2.5LA −2.560% tickets · 72% money
PHI @ CHIPHI −4.5PHI −4.564% tickets · 77% money

as of Sep 23, 2:20 AM ET

Steam · live rail

? · what this block is

steam rail

What
Timestamped line moves on the slate, largest first: the game, the market, from → to, the books behind it and the cause when the data names one.
Why it is here
Steam is the market talking; a rail that says who moved and when beats a chart nobody reads.
Example (illustrative rows, not measured)
TimeGameMoveBooksCause
3:41 AM ETSEA @ NENE −2 → −2.54 books in 90 ssharp origin
2:58 AM ETBUF @ MIABUF −3 holding at key6 booksno action
Honesty
Magnitude is the absolute points moved between captures; a cause is a tag from the data or “unknown”, never inferred from prose; moves under the threshold are not shown.
Source
odds_opening_lines vs the latest odds_snapshots capture through projectSteamRail
Checked live
rows_largest_move_firstmagnitude_nonnegative_finiterow_text_presentempty_slate_has_its_text

open → now on the slate, largest first · cause tags arrive with the splits read

  1. 2:07 AM ET TEN @ NYG · spread · NYG −6 → −2.5 2 books through a key number
  2. 2:07 AM ET ATL @ GB · spread · GB −7 → −5.5 2 books through a key number
  3. 2:07 AM ET KC @ MIA · spread · MIA +10.5 → +11.5 2 books cause not tagged yet
  4. 2:07 AM ET MIN @ TB · spread · TB +2.5 → +1.5 2 books cause not tagged yet
  5. 1:57 AM ET BAL @ DAL · spread · DAL +2.5 → +3.5 22 books through a key number
  6. 2:07 AM ET CAR @ CLE · spread · CLE +2.5 → +3 2 books through a key number
  7. 2:07 AM ET SEA @ WAS · spread · WAS +6.5 → +7 2 books through a key number
  8. 2:07 AM ET LAC @ BUF · spread · BUF −7 → −7.5 2 books through a key number
  9. 2:07 AM ET ARI @ SF · spread · SF −8 → −8.5 2 books cause not tagged yet

as of Sep 23, 2:23 AM ET

Book screen · best number lit

every book on the same line — nothing to chase

? · what this block is

book screen

What
One row per house PLAY, one column per book quoting the home spread; the cell that gives the house side the best number is lit. Closed by default: the summary counts the games where books disagree on the line and glows only then.
Why it is here
The same play at a better number is free money; the screen makes the best book obvious.
Example (illustrative rows, not measured)
GamePlayDKFDMGMPinny
SEA @ NENE −2.5−2.5−2.5−2 ★−2.5
Honesty
Captured prices only; a book that did not quote a game leaves its cell empty rather than printing a dash as if it were a number; a total or moneyline play lights no cell.
Source
odds_snapshots per book through the /picks loader (TonightGame.lines.books)
Checked live
cells_follow_booksbest_cell_has_a_lineno_best_without_spread_sidegap_rows_counts_rows_with_a_gapgame_ids_unique
2 books, one glance — never take a worse number
PlayPinnacleBovada
ATL @ GB ATL +6.5−5.5−5.5

home spread per book · live pregame · n=2 quotes · captured Sep 23, 2:23 AM ET. Totals and moneylines have no home-spread number to light.

Value board · ranked by edge · edge vs the opening no-vig fair price

? · what this block is

edge board

What
Every house PLAY ranked by the published edge over the opening no-vig fair probability, with the captured price for the play’s side.
Why it is here
Edge is the reason to bet; ranking by it puts the strongest claim first.
Example (illustrative rows, not measured)
GamePlayEdgePriceConfidence
SEA @ NENE −2.5+3.4%−1080.63 vs 0.55 floor
KC @ LACKC −3edge not published−1100.58 vs 0.55 floor
Honesty
The edge is read from picks.metadata as published, never recomputed here; a play whose writer published no edge is listed after the ranked rows as “edge not published”, never given 0.
Source
picks.metadata.edge_vs_opening_fair_probability + the captured play-side price (resolveParlayOdds)
Checked live
ranked_rows_sorted_by_edgeunranked_rows_have_no_edgeplay_count_is_row_countpriced_count_matches_rowsrelease_ids_unique

16 house plays · This week’s picks · NFL 2026 Week 3

16 ranked by published edge · 0 without a published edge · 16 priced

#GamePlayEdgeTicket priceModel p
1KC @ MIAMIA −8.5+15.3 pts−11090%
2CIN @ PITPIT −2.5+13.4 pts−11090%
3ARI @ SFARI +8.5+12.0 pts−11067%
4ATL @ GBATL +6.5+11.9 pts−10580%
5SEA @ WASSEA −2.5+10.5 pts−11086%
6TEN @ NYGNYG +5.5+8.3 pts−11066%
7LA @ DENDEN −2.5+8.1 pts−11075%
8CAR @ CLECLE −2.5+7.9 pts−11079%
9LAC @ BUFBUF +4.5+7.1 pts−11058%
10LV @ NONO +3+6.4 pts−11074%
11BAL @ DALDAL −3+5.2 pts−11075%
12PHI @ CHICHI +1.5+4.2 pts−10564%
13MIN @ TBMIN +1.5+3.9 pts−11067%
14HOU @ INDIND −2.5+1.8 pts−11063%
15NYJ @ DETDET +7+1.3 pts−11078%
16NE @ JAXNE +2.5−1.8 pts−11060%

Swipe the table for price · model p

Edge is the number the model release published against the opening no-vig fair price — never derived here. Ticket price = the play's price at publish (the best book price at the play's line is on the tonight table); a missing capture reads as its words, never as −110.

Unlock the full toolkit

This week's slate above is free to read. Go Research Pro for alerts, CSV export, the DFS optimizer and unlimited model training.

$1 for your first week, then $5.99 per week.

Unlock for $1

Alerts · wake me when it matters

push · email · SMS · the slate moves while you work

Sign in to arm and manage alerts.

Sunday digest 09:00

Crew

Crew · your people, graded together

No crew yet — crews arrive with sign-in.

Sign in

Loading your Playbook board…