UFC/MMA Desk — Data Collection Spec (Mar 14, 2026)

Full design document: /home/ubuntu/edgeclaw/UFC_MMA_Analytics_Full_Design.txt (1310 lines, SQL schema included)

What This Document Is

Summary of the UFC/MMA desk specification. The full design document (linked above) is self-contained — an AI builder can read it and build the entire module from scratch. This inventory covers what data we collect, from where, and the key differences from team sports.

The Business Model

Same as all other desks — trade on Kalshi + Polymarket, compare to Pinnacle fair value, find mispriced lines. See sports-desk-data-inventory.md for full explanation.

How UFC Is Fundamentally Different From Team Sports

  1. Individual vs team — one "player" IS the team. No teammates to compensate.
  2. Multiple win conditions — KO/TKO, submission, decision (unanimous/split/majority), DQ, doctor stoppage. Method of Victory markets are often MORE exploitable than moneyline.
  3. Tiny sample sizes — fighters fight 2-4x/year, many have only 5-10 UFC fights total. Rolling averages are volatile.
  4. Nonlinear decline — chin degradation is permanent and cumulative. Age 35 cliff below 185 lbs is a step function, not gradual.
  5. Style geometry > raw talent — wrestler beats striker, BJJ beats wrestler, striker beats BJJ. Matchup matrix matters more than rankings.
  6. Weight classes = separate ecosystems — all stats must be calculated WITHIN weight class.
  7. Judging is subjective — judge bias tracking (aggressor vs control vs damage) is a real edge vector.
  8. Cage size matters — UFC Apex 25ft cage vs standard 30ft. Smaller cage increases finish rates, favors wrestlers/pressure fighters.
  9. Weight cuts — severity of missed weight (how many lbs over) is predictive, not just if they missed.
  10. No season — event-driven, ~45 events/year. No standings, no playoffs.

Data We Collect

Fighter Statistics (from UFCStats.com/FightMetric — FREE)

All stats tracked as career averages + rolling last 3 + rolling last 5 fights, computed WITHIN weight class.

Style Matchup Matrix

Historical win rates for each style pairing within each weight class (e.g., Wrestler vs Boxer at Lightweight). Used as 10% of composite formula.

Betting Data (same pipeline as team sports)

Prediction Models (5-7 sources)

Source Type Access
BetMMA.tips Community predictions with verified track records Scrape
Tapology Community + staff picks Scrape
FightMatrix ELO-based fighter rankings Scrape
Action Network Staff model predictions Scrape
Bloody Elbow Expert panel picks (5-8 writers) Scrape
Market-implied (Pinnacle) No-vig closing line baseline Calculated
Internal ELO/Glicko-2 EdgeClaw model trained on UFCStats backfill Built in-house

Judge Data (from MMADecisions.com — FREE)

Per-judge tendencies: % unanimous, % split, % favoring aggressor vs control vs damage, agreement rate with other judges, controversial decision rate.

Data Sources Summary

Source What Cost
UFCStats.com (FightMetric) All fighter stats, per-round breakdowns, 67+ categories FREE (scrape)
Sherdog.com Fighter records, results, event history, pre-UFC record FREE (scrape)
Tapology.com Records, rankings, weigh-in results, regional data FREE (scrape)
MMADecisions.com Judge scorecards, judge tendencies, bias analysis FREE (scrape)
BestFightOdds.com / FightOdds.io Historical odds, line movement, multi-book comparison FREE (scrape)
Kalshi API Prediction market prices, volume, order book FREE (API key)
Polymarket Prediction market prices, volume, on-chain data FREE
Odds API Multi-book aggregation (Pinnacle, DK, FanDuel, BetMGM) FREE tier
MMA Junkie / MMA Fighting News, camp reports, injury updates, camp changes RSS (free)

Quality Composite Formula (0-100, matchup-specific)

Component Weight What It Captures
Striking Differential 25% Percentile rank of SLpM - SApM within weight class. Bonuses for reach advantage >3" and knockdown rate.
Grappling Advantage 20% Weighted blend: 40% TD accuracy + 30% TD defense + 20% control time + 10% sub attempts
Finishing Ability 15% Career finish rate + knockdown rate + opponent's chin vulnerability (3+ KO losses = +20)
Cardio/Pace 10% 100 minus output decline %. Bonus for championship round history. Penalty for Cardio Cliff archetype.
Durability/Chin 10% Nonlinear KO loss penalty: 0/-15/-30/-50 for 0/1/2/3+ KO losses. Doubled if KO loss in last 2 fights.
Style Matchup 10% Historical win rate for this style pairing in this weight class from matchup matrix.
Experience/Recency 5% UFC fights * 5 (capped at 50). Layoff penalties: -10 short camp, -15 ring rust, -25 severe.
Situational 5% Title fight bonus, PPV bonus, missed weight penalty, weight class change, cage size modifier, age 35 cliff (step function below 185 lbs).

Compound Boosters (stack on top of base composite)

Edge Tiers (stricter than team sports — smaller samples)

Tier Composite Model Edge Action
S 85-100 +7% vs market Max unit
A 70-84 +5% vs market Standard unit
B 55-69 +3% vs market Half unit
C 40-54 Any positive Track only
D 0-39 N/A Skip

Method of Victory Modeling (THE unique UFC edge)

Method markets (KO/Sub/Decision) are less efficient than moneyline because books must price three-way probabilities. Public systematically overvalues KOs and underprices decisions.

Method probability calculation:

  1. Start with each fighter's historical method rates (win by KO/Sub/Dec)
  2. Blend with opponent's loss profile (how they lose — KO/Sub/Dec)
  3. Weight by sample size for stability
  4. Apply adjustments: chin damage (+KO), TD defense <60% (+Sub), both >60% decision rate (+Dec), weight class finish rate priors, cardio disparity, reach advantage
  5. Compare to DraftKings method prop prices — edge = model prob minus market implied

Two approaches specified: sample-size weighted blend vs geometric mean. Both to be backtested; use whichever performs better.

Round-by-Round Modeling

Cardio curves (output per round) feed into:

Live Tracking (1-minute intervals)

Database

Full SQL schema (PostgreSQL, 16 tables) in the design document. No Google Sheets. Tables: weight_classes, fighters, events, fights, fight_results, judges, bout_judges, fighter_fight_stats, fighter_round_stats, fighter_rolling_stats, fighter_weight_history, style_matchup_matrix, betting_odds, predictions, calculated_edges, live_tracking.

Implementation Roadmap (12 weeks, 6 phases)

Source: ~/.claude/projects/-home-ubuntu-edgeclaw/memory/ufc-desk-data-inventory.md