Three wins, and one that wasn't there yet
The model went 4-0. Four plays posted, four correct, +3.018 units on the night — which at standard stakes means roughly three times what you risked on the average bet.
The site showed +2.313 units.
The season total at the time was 29.181 units. Add 3.018 and it should read 32.199. The site read 31.494. A strikeout play worth +0.704 units had graded correctly, sat in the database with the right result, and appeared nowhere it was supposed to appear.
By morning it was fine. The number had caught up overnight, the total read correctly, and nothing about the site suggested anything had been wrong. If you hadn't been watching at midnight, you'd have no reason to suspect it.
Sports results don't finish at the same time
Here's the underlying problem, and it isn't unique to us: sports data doesn't settle the way it looks like it does from the outside.
A baseball game that starts at 7 p.m. Eastern might not end until after midnight. A West Coast doubleheader can run until 1:30 a.m. The sportsbook posted its line hours before tip, the official box score lands late, and a stats feed processing strikeout totals for settlement purposes might run on its own schedule independent of both.
When you're pulling results across multiple sports and multiple data sources, something in the system has to answer the same question for every piece of information: when did this happen, and what date does it belong to? That sounds easy. Around midnight, it isn't.
Different sources make different calls. A live feed might define yesterday as anything before midnight Eastern. An overnight process might define it as anything before the job ran. A database might store timestamps in one timezone and query them in another. None of these is wrong, exactly — they're design choices, and every system in this space has to make them. The problem comes when different parts of the same system make slightly different ones and have to combine their results into a single number.
What a season record is built from
A "unit" is a standard way to measure profit without tying it to a dollar amount. At $100 per play, one unit is $100. A day at +3.018 units is roughly three times that stake, whatever yours happens to be.
A Play of the Day is a call we make when several things line up: our projection disagrees with what the sportsbook posted, the disagreement is in the right direction, and the edge clears the bar we've set for surfacing a play. When a play posts, the price is locked in at whatever the book is showing at that moment. After the game, the result determines whether it hit or missed.
The season record combines two kinds of plays. Team-total calls — where we post a number on how many runs a team scores — grade immediately once a final score exists. Individual player props and strikeout calls ran through an overnight process: it collected the previous day's results, ran the grades, and wrote everything at once.
Both types feed the same season total. The problem is that they don't finish on the same schedule.
Two clocks, same number
Team-total plays grade live. Final score, game over, the math runs, the record updates. That happens whenever the game ends — could be 10 p.m., could be 1 a.m.
The player props and strikeout calls settled in an overnight process that ran at 5 a.m. Eastern. It read the previous day's results, ran the grades, and updated the totals.
Before the fix, the live calculation asked a simple question to decide what to include: what is today's date?
This is exactly where the timing problem bites. Team-total results are ready at midnight. They're stamped with yesterday's date, and midnight is exactly when the calendar flips. The player prop results aren't ready until 5 a.m. So from midnight to 5 a.m., the previous day's player prop calls sit in a gap: they aren't today, and the settlement process hasn't handled them as yesterday yet.
For five hours every morning, yesterday's plays belonged to neither day.
The night in question, three team-total plays finished and folded into the season total at midnight: +2.313 units. The strikeout play also won, but it had nowhere to land. At 12:01 a.m., the site reported a 4-0 night as three wins and change. The correct total was 32.199. The displayed total was 31.494. The difference isn't rounding — it's one play that settled correctly and disappeared from the ledger until morning.
Why it heals before you can find it
At 5 a.m., the settlement process runs. The missing plays settle. The season total catches up. The discrepancy disappears.
This is what made it so hard to pin down.
Everyone reading the site in the morning sees correct numbers. Everyone reading during the day sees correct numbers. The only window where anything was wrong ran from midnight to 5 a.m., which is when almost nobody is watching. The first few times we noticed the totals not quite adding up, we looked for rounding errors or different aggregation windows — some explanation that didn't require a systematic bug. The numbers were close enough to feel explainable.
The complication is that anyone most likely to notice — someone watching the ledger while games are finishing, or checking a discrepancy the next morning — would see it resolved by the time they looked again. That encourages exactly the wrong conclusion: not a systematic problem, just the numbers still catching up. That conclusion was wrong. The five hours weren't lag. They were a gap, and the gap was the same every single morning.
The proof that it wasn't rounding is the arithmetic. 29.181 plus 3.018 is not 31.494. The difference is not noise. It's exactly one play that settled correctly and vanished from the ledger for five hours every night.
The fix
The live calculation now asks a different question.
Instead of asking what date it is today, it asks what date the overnight settlement last processed. Everything after that date grades live from whatever final results are available. Everything before it comes from the settled batch. No gap, no five-hour window where yesterday's calls float between the two halves of the same number.
This also closes a secondary problem: before the fix, a day the settlement had already covered could get counted twice — once by the batch and once by the live fold — if the two halves weren't careful about the boundary. The new approach makes it explicit. The batch owns every date it's processed. The live fold owns everything after.
Confirming it works is straightforward arithmetic: the season total through any given date, minus the season total through the previous date, should equal exactly what the daily ledger shows for that day. Those three numbers now run as an automatic check. If they don't agree, the system flags it before anyone has to notice a discrepancy at midnight and go looking themselves.
What this doesn't say
It doesn't say any of the calls themselves were wrong. The strikeout play that went missing won. The grade was correct. The issue was entirely about when the win appeared in the season total — not whether it belonged there.
It doesn't say the overnight settlement process is the wrong design. Running a settlement job at a fixed time is a reasonable approach to grading, and it still runs. The fix is making the live calculation aware of what's already been handled, so the two halves don't create a gap between them.
And it doesn't say this is a risk that belongs only to baseball plays. Any season record that pulls from two sources running on different schedules faces the same exposure whenever those sources cross a day boundary at different times. The timing problem described earlier — feeds settling on different clocks, overnight processes reading different definitions of yesterday — isn't unique to us. It's the standard challenge of building a live record on top of data that doesn't all arrive at once.
The consistency check now runs for every sport the season record covers. If the daily total and the season delta ever disagree, it surfaces before anyone has to notice a discrepancy at midnight and go looking themselves. A record that's wrong for five hours a night and right for the other nineteen doesn't look broken — which is exactly why the check has to exist.
Sources
Every number here comes from the graded ledger the boards publish. Research from a statistical model, not betting advice; no outcome is guaranteed. Method: how MatchWiz works.