Fight Simulator
Pick two fighters. See how the data says it plays out.
How It Works
Each simulation runs a tick-based stochastic model across a three-state position system (distance, clinch, ground). Every 15-second tick, the engine samples striking output, takedown attempts, knockdowns, and submissions from each fighter's real UFC statistical distributions — bucketed by round (R1, R2, R3+) to capture fatigue curves.
Position transitions are driven by fighter tendencies: grapplers attempt takedowns at rates derived from their career averages, with success probability computed from attacker accuracy vs. defender takedown defense. Ground control duration scales with the top fighter's historical control time.
Finishes use two parallel mechanisms — a cumulative damage accumulator for TKO stoppages (scaled by knockout power), and per-knockdown Bernoulli trials weighted by the fighter's finish rate. Submissions are modeled from historical attempt-to-finish conversion rates, amplified by accumulated ground control.
A skill-edge multiplier derived from each fighter's win-rate differential ensures dominant fighters impose their game plan at higher rates — functioning as a latent “fight IQ” variable. Fighters with sparse data are smoothed toward population averages via Bayesian shrinkage.
Built on 1,812 fighter profiles with 30 statistical features each, sourced from UFCStats.com. Each simulation is seeded differently — click “Simulate Again” for a new outcome.