Fam — it’s truth time.

Recently, my prediction model started missing on its highest-confidence “lock” calls. Not a one-off — a cluster of misses bunched together over a short window, in exactly the bucket we expect to be near-certain. That hurts. Annoyed Vegeta noises [1].

More than hurts — it’s UNACCEPTABLE, especially since I pride myself on giving you, the SaltyBet adoring public, the fighting edge over random guessing and the chat.

The misses arrived as an alert from one of my own AI agents. Cool, polite, professional. Like a doctor saying “the test results came back, please sit down.” So first, I panicked. Then I investigated. Then I investigated harder, because what I found was bigger than a few bad predictions — it was the kind of stuff you only learn while you’re building something.

The headline. A cluster of LOCK losses kicked off a bug hunt that ended with rebuilding parts of the prediction pipeline, fixing some long-standing issues I hadn’t spotted, and shipping a healthier model. Here’s the honest version, minus the engineering deep-dive.


Quick Refresher: What “High” and “Lock” Mean

Skip this if you’ve been reading along.

TierWhat it means
LockNear-certainty. Bet your Salty Bucks confidently.
HighStrong favorite, model is confident.
MediumLeaning, but expect surprises.
LowCoinflip-ish. For funzies only.

Lock and high are the calls people actually act on. When SaltyTrack stamps a fight as a lock, the implicit promise is “I’m very sure.” Bet-your-mama on it sure, go-all-in on it sure.

A cluster of lock losses breaks that promise, and is straight up unacceptable. For more on how we get to those probabilities at all, see How SaltyTrack Predicts Fights.

The other tiers were holding up to expectations during the same window. The LOCK bucket was the genuine outlier — and that’s where I started digging.


What I Thought Was Happening

A couple of patterns jumped out from the misses:

Initial fix idea: tweak the inputs, retrain, ship. I had the article half-drafted in my head.

Then I audited the pipeline. And things got weird.


What Was Actually Happening

The investigation surfaced more than a few bad predictions. I found multiple issues — some old, some subtle, some embarrassing — that had been quietly nudging the model toward overconfidence in exactly the wrong cases.

I’m not going to walk through the engineering specifics because it’s some pretty nuanced stuff. The short version: when the model said it was very sure, it usually had good reasons. But in the genuine edge cases, it was doubling down on the wrong answer. BAMBOOZLED! By my own creation!

That’s the LOCK miss pattern I observed.


And Then I Created a New Bug 🙃

This is the part where I admit I am not a god.

The first round of fixes traded one problem for another. Brand-new fighters started getting predictions that didn’t make any sense — in the opposite direction of the original problem. Predictably, also very wrong.

So I fixed that too — with a more graceful approach to “I don’t know much about this fighter yet,” so the model behaves the way you’d actually want it to.


Where We Are Now

Honest framing. Will LOCK accuracy snap back to where we want it on the next rolling window? Genuinely don’t know yet. The new model is fresh, the dashboard’s rolling window takes time to update, and I want to be straight with you that this is observed-but-not-yet-confirmed. Future investigations will probably find more issues. That’s how this goes.

If a follow-up article shows up next month titled “Remember That Fix? About That,” you’ll know I found something else. I’ll write about that one too.

That’s it for this week’s “I got humbled” check-in. The model is back on its feet. So am I.


FAQ

What does a SaltyTrack lock prediction mean?
A lock is SaltyTrack’s highest confidence tier, reserved for predictions where the model is near-certain about the outcome. Lock and high are the calls people actually act on — when SaltyTrack stamps a fight as a lock, the implicit promise is that the model is very sure.

What does SaltyTrack do when its model misses?
Investigate, fix, and write about it honestly. When the model misses on its highest-confidence calls, the response is to audit the prediction pipeline, fix the underlying issues, and ship a healthier model.

Why did SaltyTrack’s lock predictions miss recently?
A cluster of LOCK losses kicked off a bug hunt that surfaced more than a few bad predictions. The investigation found multiple long-standing issues that had been quietly nudging the model toward overconfidence in edge cases. The pipeline was rebuilt, the issues were addressed, and a healthier model was shipped.


Related Reading


If you want SaltyTrack’s confidence calls (and accuracy stats) right next to the betting buttons, grab the Chrome extension. Free, no account, no nonsense — and yes, I eat my own dogfood every night when SaltyBet is live.

SaltyBet uses virtual currency only. No real money is wagered or exchanged. SaltyTrack is not affiliated with SaltyBet.

References

  1. SaltyTrack internal data — accuracy bucket telemetry, observed during recent rolling window.