CAGEDEX

About

How the ratings work · How the predictor works · What's coming next

What is CageDex?

CageDex is an independent ratings and prediction engine for UFC fighters. It's not affiliated with the UFC, and it's not trying to replace the official rankings — it's asking a different question: what does the fight record actually say?

Every fighter in the database has a rating built entirely from results. Who they beat, who beat them, how decisive those wins were, and how recently. The system has processed every UFC event from 1993 to the present — over 8,860 fights — and uses that data to rank fighters, compare them across divisions, and power a machine learning predictor for upcoming matchups.

No committees. No narratives. Just the math.

How ELO Ratings Work

Every fighter in the database starts at 1500 — a neutral baseline meaning "we have no information on you yet." From there, ratings move based on results. Beat a highly-rated opponent and you gain a lot. Grind out a split-decision over a low-rated fighter and you gain much less.

The core idea: your rating reflects the quality of your wins and losses, not just the number of them. A 20-fight veteran feasting on journeymen might be rated lower than a 7-fight prospect who's already beaten two ranked opponents.

[ Finish Type Matters ]

A knockout or submission is worth more than a unanimous decision, and a unanimous decision more than a split. Finishing a fight is a stronger signal of dominance. Fighters who consistently finish get more credit.

[ New Fighters Move Faster ]

Early ratings move faster while the system is still learning a fighter. The PROV tag on rankings means 3 or fewer actual fights in that displayed division, including fighters who just moved weight classes. Treat those rankings as useful, but still small-sample.

[ Title Fights Carry Extra Weight ]

Championship bouts have bigger impact. The stakes are higher, the competition certified elite, and the system treats those results accordingly.

[ Inactivity Decay ]

A rating earned two years ago and undefended isn't worth as much as one earned last month. Division ratings inactive for 12+ months get a current freshness adjustment toward 1500. Fight results still update from fight-night skill signals, not a pre-fight layoff penalty.

[ Confidence Scores ]

Every rating has a confidence score. High confidence = recently active with enough fights. Low confidence flags provisional fighters or those deep in a layoff. The number is still informative — treat it with appropriate skepticism.

[ P4P Movers ]

Changing divisions does not erase a fighter's history, but current ranking surfaces use current-division Elo. Transfer logic can seed the new rating, then P4P compares that current-division rating against the new division's field. A moved fighter can appear in the new division before 3 actual fights there, with the PROV tag carrying the small-sample warning.

[ Opposition Record ]

The OPPOSITION figure on a fighter profile is the combined UFC record of everyone that fighter has faced — each opponent counted once as a person, however many times they were fought, across their entire UFC careers and all divisions. It is a rough read on strength of schedule: a high win percentage means he has been sharing the cage with people who beat most of their other opponents.

Fights against the fighter himself are left out of the total, and that exclusion matters more than it sounds. Counted the naive way, every win you score becomes a loss on your own opposition's ledger — so beating twelve straight opponents would make your competition look twelve losses worse, and the fighter with the longest win streak in a division would appear to have faced the weakest field. Removing the subject's own bouts asks the question that was actually intended: how did these people do against everybody else?

No-contests are excluded from the win-loss totals, as they are from a normal MMA record. The number counts UFC bouts only — regional and pre-UFC fights are not in the database, so it is not directly comparable to a fighter's headline pro record.

[ Fight Pace ]

The FIGHT PACE figure on a fighter profile is how often he actually fights, in UFC bouts per year, across his whole UFC career and all divisions. It counts every completed bout as an appearance — wins, losses, draws and no-contests alike — because this measures activity rather than results.

It counts the gaps between fights, not the fights themselves. A fighter with ten UFC bouts has nine intervals between them, so ten fights spread over five years is 1.80 per year, not 2.00. Dividing the raw bout count by the career span instead would credit every fighter with one extra fight he never had, which distorts a short career badly and a long one slightly.

For a fighter still on the roster, the clock runs to today. A layoff is an open interval that has not closed yet, and it is allowed to drag the figure down for as long as it lasts. Someone who has not been booked in two years should not read as busy as he did the week of his last walkout.

For a fighter who is off the roster, the clock stops at his last fight. A finished career has a finished length, and measuring it against today would report how long a man has been retired rather than how often he fought. Georges St-Pierre fought sixteen times in twelve years; run to the present day that becomes 0.93 per year, which describes his retirement and not his career. Stopping the clock gives the figure that was actually earned — 1.53 — and it never moves again.

A fighter with fewer than two UFC bouts shows no figure at all rather than a zero, because there is no interval yet to measure. As with the opposition record, UFC bouts only — regional and pre-UFC fights are not in the database, so a fighter's pace before he was signed is not part of it.

[ P4P Head-To-Head ]

Pound-for-pound starts with cross-division Elo, then checks direct results between fighters on the list. If one ranked fighter has beaten another and never lost back to him, the winner cannot sit below him. Split series and circular MMA math go back to the normal ranking order.

How the Fight Predictor Works

A machine learning model trained on historical UFC fights. Given two fighters, it outputs a win probability for each — not a gut feeling or a narrative, just what the data says has historically happened when fighters with similar profiles match up.

[ Training Data ]

The deployed model retrains on every completed eligible UFC fight and studies each matchup from both fighter orderings. Its public benchmark stays leakage-free: every test fight is predicted by a walk-forward model trained only on fights that happened earlier.

[ 37 Input Signals ]

Striking output (SLpM), striking absorption (SApM), opponent quality, Elo rating, recent form (last 5), finish rate, days inactive, age, reach, stance, takedown stats, rolling knockdown rate, and rolling submission attempt rate. Public matchup predictions are model-only; Vegas odds are not used as a live input.

[ Accuracy ]

Measured the way the site actually runs — no betting odds as input and both fighter orderings averaged — Predictor v6.1 picks the winner 68.8% of the time across a 889-fight walk-forward backtest. Every test fight was predicted by a model trained only on earlier fights.

We also publish the live record for pre-event snapshots: 87/140 (62.1%). The model's average stated confidence on those picks is 66.7%. Update Error fights, draws, and no contests are excluded rather than quietly graded.

Real numbers, not cherry-picked. The model is solid. It's also not infallible — MMA is chaotic, and no model captures a fighter's chin, their corner, or whether they had a bad camp.

[ Vegas Policy ]

Public matchup predictions do not use Vegas odds as an input. Best Fight Odds lines are used for benchmarking, event context, and betting-edge analysis where available. That keeps CageDex predictions independent from the market, while still letting Events and betting analysis compare the model against Best Fight Odds when lines exist.

[ What the % Means ]

When Fighter A wins 67%, it means: historically, when fighters with profiles like these matched up, the Fighter A analog won ~⅔ of those fights. A statement about distributions — not a guarantee about Saturday night.

What's Coming

The site is in active development. Post-launch pipeline:

[ Expert Picks Layer ]

Surface picks from top MMA analysts alongside the model probability and Vegas line. Three signals at once: the data, the market, and the minds who watch this sport for a living.

[ Rematch History Panel ]

When two fighters have history, it should be visible. A fight timeline that gives every rematch the context it deserves.

[ Time-Travel Predictions ]

The model knows every fighter's Elo and stats at any point in history. GSP vs. Khabib at their respective peaks. Fedor vs. Ngannou in 2009. It's a natural extension of the data.

[ Coach ELO ]

Every great fighter has a great corner. CageDex will rate coaches the same way it rates fighters — by results. Every time a fighter wins, their coach's rating goes up. Every time they lose, it goes down. A ranking of the most proven corners in MMA.

[ Fighter Headshots ]

Fighter profile pages currently use data-only layouts. The plan is to bring in real headshots for every fighter in the database, so the numbers have a face.

Key Terms

ELO Rating
Starts at 1500. Reflects performance quality weighted by opponent level and finish type. Top P4P contenders typically sit 1650–1720+.
ELO Win Probability
Raw prediction from the Elo gap alone — one of 37 signals in the full model. Layering in striking stats meaningfully improves over Elo alone.
Z-Score (P4P)
Standard deviations above divisional mean. Fixes the cross-division comparison problem — raw Elo ratings can't be compared across weight classes. Movers are scored from their current-division Elo.
PROV Tag
Small-sample warning on active rankings. Applies to non-champions with 3 or fewer actual fights in the displayed division.
Confidence Score
0.0–1.0. High = recently active, enough fights. Low = new, inactive, or provisional. Doesn't affect the math, just tells you how much to trust the number.
Recent Form
Win rate over last 5 fights. Recency matters — a fighter on a streak gets a bump regardless of career Elo.
Finish Rate
% of wins by KO/TKO/sub. High finish rate = more volatility. Factored into matchup dynamics.
Days Inactive
Days since last bout. Used as a direct predictor feature and for current-rating freshness. Ring rust is real.