Predictions

Inside the Model: How We're Beating UFC Betting Markets

Anyone can pick winners on a hot streak. We wanted to know if a model could do it on purpose. So we built one, set a hard discipline bar, staked every call, and tracked the bankroll in public. Here's how the system works, where the real edge is, and what it's actually returned.

The Fight Algorithm2026-06-2211 min read

Picking winners is easy. Picking them on purpose is the hard part.

Anyone can ride a hot streak for a few weeks. The question that actually matters is whether a process — a repeatable system, not a gut feel — can beat a market full of sharp, motivated money over a meaningful run of fights. That's a much taller order. Betting markets on UFC fights are reasonably efficient: by the time the cage door closes, the price usually reflects the truth.

So we built a model, gave it a strict set of rules, staked every pick it published, and tracked the result in the open. Six months in, here's where it stands.

$0
Bankroll
from $10,000
+0.0%
Return
+$5,942 profit
0-0
Record
59 graded bets
0.0%
Hit Rate
of bets won

A $10,000 starting stake is now $15,942 — a +59% return across 59 graded bets, hitting at 68%. This article is about the how: the engine that produces the picks, the discipline that decides which ones we actually back, and the honest accounting of whether any of it is real or just a good run. We won't hand over the recipe — but we'll show you enough to judge the system for yourself.

I. Why a Model at All

Humans are bad at fight prediction in specific, predictable ways. We over-weight the last thing we saw — a highlight-reel knockout, a viral press-conference moment. We fall for names. We let narrative ("he's due," "she looks unstoppable") stand in for evidence. And we're wildly inconsistent: ask the same fan to price the same fight twice and you'll get two different numbers.

A model fixes none of those things by being smarter. It fixes them by being boring. It looks at the same inputs, in the same way, every single time. It doesn't care who's on the poster. It doesn't get excited. It produces a number — a probability — and that number means the same thing this week as it did last week.

That consistency is the whole point. It's what lets us do the only thing that matters in betting: compare our number to the market's number, and only act when the gap is real.

II. What the Model Actually Does

Here's the honest version of the part everyone wants to know about, told at the altitude we're willing to publish.

The model is a statistical engine trained on years of UFC fight data. For any matchup, it builds a profile of each fighter from their complete record — not box-score totals, but the shape of how they fight: how much they strike and how accurately, how they grapple and control, how much damage they take, and which way their form has been trending. It compares the two profiles, accounts for the physical mismatch between them, and outputs a single number: the probability that each fighter wins.

A few principles we will state plainly, because they're what make it trustworthy rather than what make it work:

  • It doesn't over-trust thin résumés. A fighter with two UFC appearances doesn't get the same confidence as one with twenty. The model deliberately pulls inexperienced fighters toward league-typical baselines until they've earned a real sample. This is why it can price a debut-heavy card without producing nonsense.
  • It's trained to be calibrated, not just right. Being "right" 68% of the time on your 68% picks matters more than any single upset. (We'll prove this in the next section.)
  • It's evaluated against the market, never in a vacuum. A correct pick on a heavy favorite that everyone already had at -500 is not an edge. The model only earns its keep when its number disagrees with the price.

What we're not publishing: exactly which inputs it weighs, how they're combined, or how the engine is tuned. That's the part that took the work, and it's the part that stops being an edge the moment it's public. Everything downstream of that number, though, we'll show you completely.

III. The Discipline Bar

A probability is useless without a rule for what to do with it. Ours is simple and strict: we only publish — and only bet — a fight when the model rates it at least 68%. Below that line, we call it a no-play and stay out, no matter how tempting the name or the narrative.

Why 68% specifically? Because that's where the model's confidence becomes reliable enough to act on. To prove it, we ran the model back across every season from 2019 to 2025, training it only on fights that had already happened at each point in time — no peeking at the future — and recorded every high-confidence call it would have made. Then we asked the only question that matters: when the model said 75%, did those fights actually win 75% of the time?

When We Say 75%, It Wins 75%

Predicted win probability vs. how often the pick actually won. The dashed line is perfect calibration. Across 457 high-confidence calls from 2019-2025, the model predicted 73.5% and hit 73.5%. Green dots are our 38 live 2026 picks (small sample, so they bounce around).

They did. Across 457 high-confidence calls, the model predicted an average of 73.5% and the fighters actually won 73.5%. The amber line hugs the dashed "perfect" diagonal almost exactly — and where it strays, it strays conservatively: the model's most confident picks (83%+) won more than 90% of the time. It under-promises at the top end rather than over-promising.

This is the single most important chart on the page. A model that wins is nice. A model whose stated confidence you can trust is bankable — because it tells you not just who to bet, but how much. Our live 2026 picks (the green dots) are a small sample and bounce around, exactly as a few dozen coin-flips weighted toward heads should. The backtest is the signal; the live dots are the early read.

IV. How We Size the Bet

Knowing a pick is good doesn't tell you how much to risk. Bet too little and you leave money on the table; bet too much and one bad night ends the experiment. The answer to that problem is nearly a century old: the Kelly criterion, a formula that sizes each bet in proportion to your edge and the odds on offer.

Full Kelly is mathematically optimal and practically brutal — the swings will give you an ulcer. So we use a quarter of Kelly, cap any single bet at a small fraction of the bankroll, and never let one fight blow up the account. Bigger edge, bigger bet; thin edge, small bet; no edge, no bet. The math does the discipline so we don't have to.

And that word — edge — is where the whole strategy lives. Every pick falls into one of two buckets:

  • A Value Bet is one where the model's probability beats the price the market is offering. The book is, in our estimation, wrong, and we're getting paid more than the risk deserves.
  • A Model Pick is one where the model likes a fighter but the market has already priced them correctly. We agree with the favorite — but there's no value in paying full freight for a truth everyone already knows.

We bet both. But they do very different things to a bankroll.

The Money Is in the Edge

Return by pick type. When the model beats the offered price (a Value Bet), the picks compound. When it just agrees with the favorite (a Model Pick), they roughly break even. 212 high-confidence picks, 2024-2026, at real opening lines.

Over 212 high-confidence picks at real opening prices, the Value Bets returned +27.9% while the Model Picks essentially broke even at +2.2%. That's not a flaw — it's the entire thesis in one chart. The edge picks are the engine. The no-edge picks are fairly-priced favorites that, on average, pay for themselves without growing the stack. Knowing which is which — and saying so out loud on every pick we publish — is the difference between betting and gambling.

V. Six Months, Tracked

Theory is cheap. So we ran it for real, starting with $10,000 on New Year's Day and staking every single pick the model published, settling each one at the real opening line. No cherry-picking, no quiet deletions of the losers. Here's the full curve.

Six Months, One Bankroll

Every graded pick, staked and settled in order from a $10,000 start on Jan 1, 2026. The dashed line marks even — green means we're ahead of where we began.

The shape tells the honest story. There's an early surge — a strong February ran the bankroll up fast — followed by chop, drawdowns, and grind. That's what a real betting record looks like: not a straight line up, but a noisy climb that ends, so far, well above where it started. Every dot is an event; hover any of them to see exactly what that card did to the stack.

Six months is not a lifetime. But it's long enough to include the bad nights, and the bad nights are where systems usually die.

VI. Does It Actually Work?

Here's where we have to be careful, because this is exactly the spot where people fool themselves.

Three independent things have to line up before we'll believe a betting model, and all three do:

  1. It's calibrated. Section III isn't a backtest of profits — it's a test of honesty. Over 455 out-of-sample calls, the model's confidence matched reality almost perfectly. That's the foundation everything else stands on.
  2. The edge is where the theory says it should be. If the model were just riding favorites, the no-edge picks would carry the returns. They don't — the Value Bets do, by more than 20 points, and they've beaten the no-edge bucket every year we've measured. The money shows up exactly where the model claims its advantage is.
  3. The engine improved on purpose. When we last upgraded the model, we tested the new version against nearly 2,000 UFC events going back to 2008. It beat the version it replaced — and the gains were largest in recent years, the era we actually bet on. The system isn't frozen; it's been sharpened against history.

Calibration, edge concentration, and a tested upgrade path. One of those could be luck. All three pointing the same way is a system.

VII. The Honest Part

Now the caveats, because a piece that only sells you the wins isn't analysis — it's marketing.

The live sample is small. Fifty-nine bets is enough to be encouraging and nowhere near enough to be certain. A +59% run over six months has real variance baked into it; the same system could have finished the half-year up 20% or down 10% on luck alone. We lean on the multi-year backtest precisely because the live record, on its own, can't carry the weight.

Favorites do most of the lifting, and favorites lose. The model wins about two of every three bets, which means it loses one in three — often on chalk that "should" have won. If a string of those rattles you, this is not a system you can run. The discipline only works if you keep feeding it after a bad night.

This is a model, not a crystal ball. It prices tendencies, not certainties. It will never see the flash knockout coming, the missed weight, the torn ligament in round one. It's built to be right on average, over time — which is the only way anyone beats a betting market, and also the way that feels worst in the moment.

We'll keep publishing every pick, every stake, and every result — winners and losers — on the predictions page. The record either holds up or it doesn't, in public, fight by fight. That's the deal. A model you can't audit is just a guy with opinions.

Methodology: Win probabilities come from our forecasting model, trained on UFCStats data and evaluated walk-forward — at each point in time the model only sees fights that had already happened, so the backtest contains no hindsight. The calibration chart pools every high-confidence (≥68%) call from 2019–2025 (457 picks) against its real result; the live overlay is our 38 graded 2026 picks at or above the bar. The bankroll tracks all 59 settled picks staked at real BestFightOdds opening lines using quarter-Kelly sizing; it includes a stretch of early-2026 picks made before we tightened to the 68%-only rule, which is why the full record (59 bets) runs ahead of the high-confidence pick count (38). The edge study covers 212 high-confidence picks across 2024–2026 at real opening prices, split by whether the model beat the offered line (Value Bet) or merely matched it (Model Pick). We do not publish the model's feature set, weighting, or tuning.

Want to see the engine reason about a specific matchup? Try the Fight Simulator, or follow the live slate on the predictions page.