The Parlae Blog

How we grade every pick

Fire-time capture, graded at the price we recommended, no backfill. Here's the whole pipeline — including the cleanup that removed thousands of rows we never actually published.

Parlae Research

Everything we publish comes from the same graded ledger: each pick captured at the moment it fires, settled at the price we recommended, no backfill and no re-pricing. You can check the whole thing on our public track record.

What "graded" means here

A pick enters the ledger the second the engine fires it. We store the book, the price, the fair probability we computed, and the timestamp. Nothing about that row can change afterwards — not the price, not the fair value, not the sport. When the game finishes, we settle it against the official result at the price we recommended, not at some better number we could have found later.

That's the whole trick, and it's also the whole difference. Most published records are assembled after the fact, which quietly lets a losing bet get re-priced into a winner or dropped entirely. Ours can't be, because the row already exists.

Where the ledger stands right now

  • Tracking since: 2026-06-21
  • Picks captured: 4,432
  • Graded: 3,788
  • Record (W-L-P): 1944-1765-79
  • Units at flat 1u: +194.41u
  • ROI: +5.24%
  • Beat the close: 83.5% of 734 CLV-measurable picks
  • Average CLV: +3.20%

Those numbers update as games settle, so whatever you're reading is what the database says today — not a snapshot we typed in once and forgot.

The shadow-row cleanup

The engine evaluates far more candidates than it publishes. Rejected candidates still get logged — they're how we calibrate the model — and they're flagged as shadow rows with a reject reason attached.

For a while our daily results log was counting those shadow rows alongside real published picks. That's how a single day could show thousands of "plays" nobody could have bet. We fixed it by filtering the log to published picks only and recomputing every day since launch. The headline record never included shadow rows; the daily table now matches it exactly. We're writing that down rather than quietly patching it, because a track record you can't audit is just a screenshot.

Why beat-close matters more than win rate

Win rate is mostly variance for a long time. At −110, a genuinely profitable bettor and a break-even one can look identical for hundreds of bets. Closing-line value doesn't wait around like that: if you consistently get a better number than the market settles at, you were on the right side of the price, whether or not the ball bounced your way.

So the number we actually steer by is beat-close rate — currently 83.5% across 734 picks with a measurable close. It's the earliest honest read on whether the model finds real mispricing. Win rate and ROI are the slower confirmation.

What we still can't grade

Some leagues have no reliable settled-score feed, so picks in them sit pending instead of being graded on a guess. Right now 644 captured picks are ungraded, 576 of them past the point where they should have settled. We show that gap on the track-record page rather than hiding it in the denominator — a record with silent holes isn't a record.

Tools that go with this

21+. Parlae is analytics and education — we don't take bets. Please play responsibly.

Find value bets →