FFightDetective

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

01

Recency Decay

K × exp(−age_months / 18)

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 ago14%
7 years ago< 1%
A fighter who won the title in 2017 and has been losing since 2022 will NOT rank highly — their championship wins are ancient history.
02

Hot / Cold Streak Amplification

Win streak ≥ 3 → K_win × 1.30 · Loss streak ≥ 2 → K_loss × 1.35

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–2K × 1.0
Win streak 3+K_win × 1.30
Loss streak 1K × 1.0
Loss streak 2+K_loss × 1.35
Momentum is real in combat sports. Consecutive wins and losses reveal trend — this formula encodes that signal into ELO movement.
03

Activity Velocity Bonus

K_win × (1 + 0.08 × min(fights_last_12m, 6))

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 12mK_win × 1.08
3 fights in last 12mK_win × 1.24
6+ fights in last 12mK_win × 1.48
6 wins + hot streakK_win × 1.92
A fighter who goes 6-0 in 12 months sees their later wins give almost double the normal ELO boost. Speed of winning directly translates to ELO acceleration.
04

Early-Career Volatility

First 5 fights → K × 1.5 (both win and loss)

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–5K × 1.5
Fights 6+K × 1.0
A prospect going 3-0 in their first 3 fights rises faster than a 10-year veteran going 3-0 in the same period. That reflects the information value of each result.
05

Career-Death Penalty

30+ months inactive + 2+ consecutive losses → floor 1350

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 cleanlyDecays → floor 1490
2+ losses then 30m+ silentDecays → floor 1350
5 years silent after losing streakNear 1350
A fighter who went 0-3 in 2021 and hasn't been heard from since should not appear in rankings. This layer makes that disappearance quantitative.
06

Finish Bonuses

KO/TKO: K × 1.2 · Submission: K × 1.15 · Decision: K × 1.0

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 / TKOK × 1.20
SubmissionK × 1.15
DecisionK × 1.00
A KO artist who keeps stopping opponents will accumulate ELO faster than an equally skilled decision fighter. This rewards the most dominant form of winning.

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.

Elite
≥ 1580

World-class recent form. Hot streak + velocity + dominant finishes.

Top-tier
≥ 1550

Upper echelon. Consistent winner in the last 12–18 months.

Contender
≥ 1520

Above average. Winning more than losing with decent recency.

Mid-tier
≥ 1500

Around the baseline. Mixed record or limited recent activity.

Developing
< 1450

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.

Rising

Win streak of 2+ with the last fight within 18 months. The fighter is on a hot run.

Stable

Mixed recent results, inactive 18+ months, or streak of exactly 1 in either direction.

Falling

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.

ParameterValue
Base K32
Veteran fights threshold20
Veteran K scale× 0.8
Recency decay constant18 months
Hot streak threshold3 wins
Hot streak K multiplier× 1.30
Cold streak threshold2 losses
Cold streak K multiplier× 1.35
Velocity K per fight+ 8%
Velocity cap6 fights
Early career fights≤ 5
Early career K× 1.5
Inactivity grace period30 months
Inactivity half-life30 months
Inactivity floor (clean)1490
Career-dead months30 months
Career-dead streak≤ −2
Career-dead floor1350
Default ELO1500
Active threshold24 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.