The one number every sports tout hides
Closing-line value — did the model actually beat the market? I ran it on my own bets, including the ones where I was dead wrong.
Every capper on the internet shows you the same thing: a screenshot of green. Last night's winners. A 7–2 week. A highlight reel with the losses quietly cropped out.
None of it tells you whether they're any good.
There's a number that does, and it's the one you almost never see: closing-line value. This ledger is built around it — around showing the misses, the flat stretches, and the parts of my own model that don't work. So let's start with the test that matters most, and let's start by pointing it at myself.
What closing-line value actually is
When a game opens, the market sets a price. By the time it starts, thousands of bets — including the sharp ones — have pushed that price to its final "closing line." That closing line is the market's best, hardest-to-beat guess at what's about to happen.
If you consistently get your bets down at prices better than where the line closes, you're beating the market to the information. That's closing-line value (CLV), and over a long enough run it's the single most reliable sign that a bettor is actually winning — more than last week's record, more than any hot streak. Beating the close is the signal. Winning a particular bet is often just variance stacked on top of it.
It's also the number touts hide, because you can't fake it and show your work at the same time — it's checkable against the closing price, and it doesn't care about your highlight reel.
So I graded my own model against it.
The result — including the ugly half
I pulled every settled bet my model has made that has both an outcome and an attached closing line: 166 bets across NHL and MLB. (Small sample — hold that thought; I come back to it.) Then I split them into two piles: bets that beat the close, and bets that lost it.
| bets | model predicted | actually won | avg CLV | ROI | |
|---|---|---|---|---|---|
| Beat the close | 117 | 55.2% | 54.7% | +3.5pp | +0.6% |
| Lost the close | 49 | 58.7% | 38.8% | −1.2pp | −40% |
Read the top row first, because it's the good news. On bets that beat the close, the model won 54.7% against a predicted 55.2% — within half a point of its own claim. That's a calibrated model doing what it says on the label: roughly break-even, with the losses being variance, not a broken model.
Now the bottom row, which is the whole problem. When the market moved against me — when the closing price ended up better than the one I took — those bets won 38.8% against a model that claimed 58.7%. That's a 20-point overconfidence gap and a −40% ROI on 49 bets.
That's not a rounding error. That's the model being confidently, expensively wrong — with the market trying to tell me so, early, if I'd been listening.
What it means
Three takeaways, and I'll save the flattering one for last.
When the market disagrees with me early, I should listen. The most useful thing in this data isn't a model tweak — it's a discipline. If the line is already moving against a bet before I place it, that's the −40% cohort waving a flag. The fix is boring: stake down, or skip. (I'm prototyping exactly that as a pre-bet check.)
Not every sport is the same. My MLB model beats the close 83% of the time — real evidence it's finding value before the market prices it in. My NHL model beats it 46% of the time, which is a polite way of saying it sits at the market, not ahead of it. So I don't pretend otherwise: NHL game lines aren't where the edge is, and I lean NHL toward player props instead.
Where the model beats the close, the edge is real. That's the part worth building on. It's just smaller, and a lot more specific, than "trust me, I went 7–2."
The honest asterisk
166 bets is a small sample. The losing cohort is only 49. I'd want three times that before I bet the conclusions, let alone the games — and I'll re-run this as the number grows. I'm telling you that because a writeup that hides its sample sizes is just a tout with better formatting.
That's the whole idea. I built good-sport as a model you can interrogate: you connect it inside Claude, ChatGPT, or Grok and ask it where the edge is, where the money's moving, and — yes — how often it's wrong. It's a research assistant, not a picks service. This ledger is the same thing in longer form. I'll keep publishing the studies, including the ones where the answer is "no better than a coin flip."