Understanding our ELO
A fully transparent breakdown of how we rate UFC fighters — built for current form, not career nostalgia.
Why not standard ELO?
Standard chess-style ELO accumulates ratings across an entire career with equal weight on every result. In chess, a game from 10 years ago is still relevant because the pieces haven't changed. In combat sports, a 7-year-old fight is ancient history.
UFC evolves faster than almost any other sport. Weight cuts are regulated differently. Training methods, judging criteria, and the fighter pool all shift constantly. A fighter's performance in 2018 tells you very little about their ability in 2025.
Our ELO is designed around a single principle: current form matters far more than career achievement. A fighter going 6-0 in the last 12 months should rank above a fighter who went 30-5 over 10 years and has lost their last three.
The Six Layers
Recency Decay
Each fight's K-factor is multiplied by exp(−age/18). At 18 months the weight is ~37% of a fight last week. At 7 years it is less than 1%. Old results simply can't prop up a fighter who has been declining.
| Last month | ~95% |
| 18 months ago | ~37% |
| 3 years ago | 14% |
| 7 years ago | < 1% |
Hot / Cold Streak Amplification
Consecutive results amplify K in the direction of the streak. A fighter on a 4-fight win run earns more ELO per win than the same 4 wins scattered across 3 years. A fighter on a 3-fight losing skid loses more per defeat.
| Win streak 1–2 | K × 1.0 |
| Win streak 3+ | K_win × 1.30 |
| Loss streak 1 | K × 1.0 |
| Loss streak 2+ | K_loss × 1.35 |
Activity Velocity Bonus
Each fight in the rolling 12-month window adds 8% to K_win, capped at 6 fights (+48%). This only applies to wins — frequent winning is exponentially rewarded. Losing a lot is not additionally punished here.
| 1 fight in last 12m | K_win × 1.08 |
| 3 fights in last 12m | K_win × 1.24 |
| 6+ fights in last 12m | K_win × 1.48 |
| 6 wins + hot streak | K_win × 1.92 |
Early-Career Volatility
New fighters are inherently unknown — their true skill could be anywhere. The first 5 fights carry 50% higher K in both directions so the ELO settles on a realistic rating quickly rather than lingering near the default 1500.
| Fights 1–5 | K × 1.5 |
| Fights 6+ | K × 1.0 |
Career-Death Penalty
If a fighter ended their career on a losing streak (≥2) and has been silent for 30+ months, we treat that career as over. Their ELO decays toward a floor of 1350, pulling well below mid-tier. Fighters who retired cleanly decay toward 1490.
| Active (< 30m silent) | No penalty |
| Retired cleanly | Decays → floor 1490 |
| 2+ losses then 30m+ silent | Decays → floor 1350 |
| 5 years silent after losing streak | Near 1350 |
Finish Bonuses
A finish is more informative than a decision. When a fighter stops their opponent, the K-factor is boosted because the result is unambiguous — there is no judging uncertainty. This applies symmetrically to both winner and loser.
| KO / TKO | K × 1.20 |
| Submission | K × 1.15 |
| Decision | K × 1.00 |
ELO Tiers
Tiers are displayed on every fighter's profile. Because our ELO is recency-weighted, the distribution is tighter than traditional career-ELO systems — truly elite fighters have to keep winning recently to hold top-tier ratings.
World-class recent form. Hot streak + velocity + dominant finishes.
Upper echelon. Consistent winner in the last 12–18 months.
Above average. Winning more than losing with decent recency.
Around the baseline. Mixed record or limited recent activity.
Below baseline. Early career, on a losing run, or long inactive.
Reading the Trend Arrows
Every fighter profile and division ranking table shows a trend indicator next to their ELO. This reflects their current form — not their all-time trajectory.
Win streak of 2+ with the last fight within 18 months. The fighter is on a hot run.
Mixed recent results, inactive 18+ months, or streak of exactly 1 in either direction.
Loss streak of 2+ with the last fight within 18 months. The fighter is in a cold spiral.
All Parameters
Every constant used in the formula — no black boxes. If you want to replicate or critique the math, here is everything you need.
| Parameter | Value |
|---|---|
| Base K | 32 |
| Veteran fights threshold | 20 |
| Veteran K scale | × 0.8 |
| Recency decay constant | 18 months |
| Hot streak threshold | 3 wins |
| Hot streak K multiplier | × 1.30 |
| Cold streak threshold | 2 losses |
| Cold streak K multiplier | × 1.35 |
| Velocity K per fight | + 8% |
| Velocity cap | 6 fights |
| Early career fights | ≤ 5 |
| Early career K | × 1.5 |
| Inactivity grace period | 30 months |
| Inactivity half-life | 30 months |
| Inactivity floor (clean) | 1490 |
| Career-dead months | 30 months |
| Career-dead streak | ≤ −2 |
| Career-dead floor | 1350 |
| Default ELO | 1500 |
| Active threshold | 24 months |
| KO/TKO finish bonus | × 1.20 |
| Submission finish bonus | × 1.15 |
Display ELO vs Training ELO
The ELO you see on fighter profiles and rankings is the display ELO — optimised for communicating current form to a human reader.
Our prediction model uses a separate ELO computed by the training pipeline (stored in our database as a pre-fight feature). That ELO is designed for maximum predictive accuracy and uses sequential updates without recency decay — which is correct for the ML model but would produce misleading rankings for humans.
The two systems are intentionally separate. Rankings reflect what the sport looks like today. Predictions reflect what the data says about probable outcomes.
See the rankings in action
Browse every weight division, sorted by recency-weighted ELO with live trend arrows.