Methodology · v0.1
How we calculate UFC ratings
Two numbers describe every fighter on this site.
The raw point estimate of skill. Standard Elo with three corrections (decay, shrinkage, K-factor multipliers).
Global Elo with the uncertainty discount baked in. This is the headline number on every leaderboard, and what we sort by.
Definition: Elo rating = Global Elo − 1.3 × σ, where σ is the bootstrap standard deviation of the rating (see §4 below).
Elo engine
Standard Elo: every UFC fighter starts at 1500. After each bout the winner gains points, the loser loses an equal amount, and the swing scales with the pre-fight gap — favourites gain less for expected wins and lose more for upsets. K-factor is 32, multiplied by 1.25 for title fights, 1.15 for finishes, and 1.5 for fighters with fewer than 5 UFC appearances (so ratings find their level faster). The cumulative Global Elo over a career is what the Honest Elo history chart on each fighter page plots.
Expected score: E_A = 1 / (1 + 10^((R_B − R_A) / 400)) Rating update: R'_A = R_A + K_eff × (S_A − E_A) where S_A is 1 for a win, 0 for a loss, 0.5 for a draw, and K_eff = 32 × title_mult × finish_mult × newcomer_mult.
Inactivity decay
A retired champion shouldn't top the rankings forever. After 12 months without a UFC bout, a fighter's Global Elo drifts toward the division mean at 15% of the above-mean excess per year, capped at 25% total. The decay is mild by design — it doesn't punish brief layoffs, only prolonged ones. For multi-division fighters, the division mean is taken from the fighter's most recent UFC bout's division. Catchweight bouts fall back to the most recent non-catchweight division on file.
Provisional shrinkage
Fighters with fewer than 4 UFC fights have their Global Elo pulled toward the division mean, weighted by n_fights / 4. A 1-fight newcomer keeps only 25% of their raw swing; at 4 fights the rating stands on its own. Below 6 fights the fighter is also flagged with a Provisional chip on their card.
Bootstrap uncertainty (σ)
We re-simulate each fighter's last 8 fights 400 times by resampling with replacement and recomputing the Global Elo update chain. The standard deviation of the final ratings is our σ. Fighters with fewer than 8 fights get σ inflated by √(8/n) to reflect the thin sample.
This is an uncertainty proxy — not a full Bayesian posterior. It measures how sensitive a fighter's rating is to which subset of recent fights we credit, not how MMA history would have played out under counterfactual matchmaking. Order matters in real Elo update chains, and bootstrap resampling can produce sequences that wouldn't occur naturally; we accept that tradeoff because the proxy ranks fighters in roughly the right order of reliability.
Elo rating = Global Elo − 1.3 × σ
The headline Elo rating on every leaderboard is Global Elo minus 1.3 × σ. A provisional star with Global Elo 1700 and σ 120 (Elo rating ≈ 1544) ranks below a proven contender with Global Elo 1680 and σ 40 (Elo rating ≈ 1628) — and that's the point. Our published rank is always by Elo rating, never by Global Elo.
Elo rating = Global Elo − 1.3 × σ
p_win for past fights. It's the standard logistic from the pre-fight Global Elo gap, nothing else. We deliberately do not publish a "betting pick": our research model stays internal, and that's not what this site is for.
Honest Elo mode
The Honest Elo Meter has two modes, surfaced as a toggle above the gauge whenever an opening market line is available for a fight.
Pure Elo
DefaultPure Elo with bootstrap uncertainty. The 20,000 simulations sample each fighter's rating from a normal distribution centred on their Global Elo with their σ as the spread.
What the meter has always shown, unchanged.
Honest Elo
Opt-inAdds one input on top of pure skill: the opening line. We don't show the market price itself — we feed it into a pooled model that combines it with the skill features.
Available only when an opening line was captured before the line moved.
Why the two modes can disagree
The opening line carries information pure Elo can't see — camp news, weight cuts, recent training reports, last-minute injury whispers. Honest Elo mode treats the line as a noisy signal of those unobserved factors, not as ground truth.
This is why a fighter with a higher headline Elo can still come out lower in Honest Elo mode — for example, when the market opens with that fighter as a small favourite while their pure-Elo gap suggests they should be a much larger one. The pooled model takes the gap between "what Elo says" and "what the market says" and produces a calibrated probability that's neither pure Elo nor a copy of the line.
Honest Elo mode is not a betting pick, a value indicator, or a recommendation. It expresses the pooled model's calibrated win probability in the same meter format as Pure Elo, so the two views can be compared directly side by side.
Pure Elo stays the default reference for the rest of the site — rankings, fighter pages, division leaderboards. Both modes are honest, just from different starting points; the toggle on /vs pages exists so you can compare them yourself.
Model limitations
Pure Elo can't see
Results-basedPure Elo knows UFC results and rating uncertainty only. It does not directly model:
- Injuries, weight-cut struggles, or short-notice replacements.
- Stylistic matchups — a great wrestler vs a great striker can swing wildly from raw Elo.
- Camp changes, retirements-from-the-sport followed by returns, judging controversy.
- Non-UFC competition — only UFC bouts feed the rating, so a fighter's Bellator / ONE / RIZIN history doesn't count here.
Honest Elo addendum
Pooled modelHonest Elo mode adds the first captured opening line as a noisy market signal, which may indirectly reflect some context Pure Elo cannot see. It still does not know why the market is priced that way and should not be treated as inside information or betting advice.
Data
Historical UFC event records — 8,611 fights between 1994-03-11 and 2026-06-20. This page reflects the snapshot from Jun 20, 2026.
Frequently asked
What's the difference between Elo rating and Global Elo on this site?
Global Elo is the raw point estimate of skill — standard Elo with the three corrections in §1-3 above. Elo rating (the headline number on every leaderboard) is Global Elo minus 1.3 × σ, where σ is the bootstrap standard deviation. The discount means a thin-sample star with one big win can't outrank a proven contender by construction. We always sort by Elo rating, never by Global Elo.
How often are the ratings updated?
After every UFC card. Within 24 hours of an event we ingest the fight results, recompute Elo and σ for everyone affected, and republish. The site is a static build, so the deployed ratings reflect a specific snapshot — currently the snapshot from Jun 20, 2026.
Why does HonestElo's ranking differ from UFC's official rankings?
UFC's official rankings are panel-based and can reflect human judgment, recent activity, divisional context, and public perception. HonestElo is purely mechanical and data-driven: every fighter's Elo rating is computed from their bout history, then discounted by uncertainty. Two systems answering different questions, both legitimate.
Is HonestElo affiliated with UFC?
No. HonestElo is independent analytics, not affiliated with or endorsed by the Ultimate Fighting Championship. We use UFC fight results because they're the public record of professional MMA at the top level, but the ratings, uncertainty bands, and analytics on this site are entirely our own work.
Where does the fight data come from?
Historical bout results, per-fight statistics (significant strikes, takedowns, control time), and physical attributes (height, weight, reach, stance, DOB) come from publicly available UFC event records on UFCStats.com. We compute everything else — Elo trajectory, bootstrap σ, division-relative z-scores, win probabilities — ourselves.
How is win probability calculated?
Pure Elo mode uses the standard Elo logistic from the pre-fight Global Elo gap: p(A wins) = 1 / (1 + 10^((B.elo − A.elo) / 400)). It uses Global Elo, not the discounted Elo rating — the discount is for ranking, the raw rating is the input for the simulation. When an opening market line is available, the /vs page may also offer Honest Elo mode: a separate pooled probability that combines fighter skill features with the opening market signal. That snapshot is frozen for the fight and does not update with later line movement. Honest Elo mode is still an analytics probability, not a betting pick or recommendation.
Why include an uncertainty band at all?
Two fighters can have the same Global Elo but radically different evidence: one with 18 fights against a varied schedule, one with 4 fights including a single big upset. Without an uncertainty discount, both would rank identically — which is wrong. The bootstrap σ measures how stable the rating is under resampling. Discounting by σ makes the leaderboard reward proven, well-supported skill over hot streaks.
What does the inactivity decay do?
After 12 months without a UFC bout, a fighter's Global Elo drifts back toward the division mean by 15% of the above-mean excess per year, capped at 25% total. Without it, retired or long-idle champions would top the rankings forever based on results from a different era. The decay is mild on purpose — it doesn't punish brief layoffs, only prolonged ones.
Can I share or embed your ratings?
Yes, please do — that's the whole point of an open analytics site. Each fighter, division, and pound-for-pound page has a Share button that pre-fills a shareable post for X (Twitter) or Reddit, and every page generates its own OpenGraph image so the share looks like a real product card on social platforms. Attribution to honestelo.com is appreciated.
Version
- Methodology
- v0.1
- Snapshot
- Jun 20, 2026
Material changes to the rating pipeline — new K-factor multipliers, σ formula adjustments, division-transfer handling, etc. — are logged here as new versions. Cosmetic site updates (typography, OG cards, share buttons) do not bump the methodology version.