After 100 graded signals, the data set is large enough to mean something. Not large enough to prove everything, but large enough to separate real patterns from noise.
The Numbers
We track every signal publicly. No deletions. No revisions. Every win, loss, and push sits in the record alongside the edge percentage, the closing line value, and the model's confidence at the time of publication.
At 100 picks, sample size concerns start to fade. You can calculate meaningful win rates, ROI, and CLV averages. You can segment by edge strength, by conference, by spread size. You can ask whether the model's 7%+ edges actually hit more often than the 3.5% threshold picks. (They do.)
What We Got Right
The discipline filter works. Nights where the model passed had an average closest-edge below 2.5% - meaning the filter isn't just withholding picks arbitrarily, it's correctly identifying low-value slates.
CLV has been consistently positive. The model is beating the closing line more often than not, which is the single best predictor of long-term profitability in sports betting. You can win bets through variance. You can't beat the close through variance.
What We Got Wrong
Early-season calibration was rough. The first 15-20 picks ran on a model that hadn't yet incorporated market-aware shrinkage. The raw predictions were overconfident, and a few edges that looked large at noon had evaporated by tip-off.
We addressed this with the February calibration update. Since then, edge persistence has improved and revocation rates dropped. The pre-tip validation cron catches most of the decay before you're exposed to it.
What Comes Next
More data means better segmentation. We're building toward sport-specific reporting (NBA, MLB, WNBA) and position-level analysis. The model retrains weekly on Sundays - same 56 features, same walk-forward methodology - but the coefficients sharpen as the sample grows.
100 picks is a milestone, not a destination. The process continues.