The record

Every bet I publish,
graded either way.

Anyone can pick winners yesterday. Everything below was published in the letter before kickoff, with the side, the number and the price it needed, and then graded once the games were played.

+6.15%
return per unit staked ±22.6
61
bets published and graded
35-24-2
won, lost, pushed — I expected 36.8 wins
59.3%
hit rate

Bands are two standard errors. At one season of bets that interval is wide, and it is the honest way to read any of this.

by market · tap a props row for the breakdown
BetsW-L-PHitExpected WReturn
Weather unders86-2-075.0% ±27.24.5+45.11%
Spreads73-2-260.0% ±33.13.8+8.94%
week by week
WeekBetsW-L-PReturn
2026 week 186-2-0+41.79%
2026 week 22715-11-1+1.66%
2026 week 32614-11-1−0.15%

Last graded 2026-09-29. First letter 2026-09-09.

How this page is kept honest

01

Logged before kickoff, graded after

A bet is written to the log at the moment the letter is sent, carrying the side, the number, the book, the price and the probability stated at publication. The result column is empty until the games are played and is filled from public play-by-play. Nothing can be added to a week after it has happened.

02

Losses stay up

Every bet published is graded, including the ones that lose and the weeks that are bad. There is no featured-picks tier, no separate premium record, and no bet that quietly fails to appear here.

03

Nothing is backfilled

The log starts accruing the day it is switched on and a lost season cannot be recovered. That is why this page begins at zero rather than opening with a decade of what the model would have done.

04

My picks and the model's are separated

Most bets come from the model. Some are mine — reads where I have context it lacks. Both are tagged at publication and reported apart, because blended into one line a good season tells you nothing about which half earned it.

05

The return decides, not the hit rate

A bet hitting 53% at −130 loses money. Wherever both appear, the return is the number that matters, and every rate carries the sampling error around it — one season is a small sample and the interval usually says more than the estimate does.

Watch it happen in real time

The bets on this page arrive in your inbox the morning of the games, hours before kickoff, with the exact price each one needs. Then they land here once those games finish, whatever they did. Free, a letter every game day.

Free. A letter every game day in season. Unsubscribe in one click.

Want to see the format first? Read an example letter.