Model decisions
Companion notes to About the model: ELO in context, what goes into matchup features, and why forecasts sometimes carry wide ranges (divisions, sparse history, long layoffs).
-
ELO as a method
The foundational question in any combat sports rating system is what a win actually means. Raw records ignore who you beat, when you beat them, and how definitively you beat them. A fighter who goes 5-0 against regional prospects is not the same as a fighter who goes 5-0 inside the UFC against ranked opponents, but a win-loss column treats them identically. ELO fixes that by making the value of a win a function of who you beat.
-
Fight attribution comparative axes
The central challenge in building fight-level features is the symmetry problem. The model takes a matchup as input and produces a six-way probability distribution as output. Swapping Fighter A and Fighter B should flip that distribution correctly. Raw statistics do not generally behave that way by construction. Think about the problem of percentage changes. You need much larger percent growth to balance out lesser percent declines, so we needed to make mathematical adjustments to keep things symmetrical. The forecast model uses exactly twelve inputs: head-to-head differences plus clash-of-styles terms. There are no share-of-total ratio columns in the shipped version. That is an intentional simplification worth stating upfront.
-
Uncertainty, weight classes & layoffs
The honest answer to "how confident is the model?" is not always "very." Some fights sit in uncertain territory: debut fights at a new weight class, returns from long layoffs, matchups between fighters with sparse data at overlapping quality levels. A model that outputs false precision in those situations is not being rigorous. It is hiding uncertainty from the reader. I would rather label the doubt than let it lie in wait.