Data integrity

Source first. Validate everything.

New archive data must pass the same automated checks before it can replace the working public dataset. A failed download or validation leaves the previous version untouched.

4,605

profiles checked

17,758

fighter-bout rows

4,644

UFC finishes

archive through

01

Primary source

Fight outcomes, round statistics, physical attributes, and profile links originate from UFCStats data. The production refresh uses a daily-updated archive mirror because direct runtime scraping of UFCStats is unreliable and may be blocked.

Statleaders may be used as a secondary official reference for leaderboard context, but it does not replace bout-level UFCStats records.

02

Update policy

The refresh checks for new source files daily. Downloads must pass response, size, and CSV-format checks before processing. Changed data is rebuilt, validated, and published; unchanged data is not redeployed unnecessarily.

03

Validation gates

  • Wins, losses, draws, and no contests must equal the fight total.
  • Win-method totals must equal recorded wins.
  • Fight-log and finish timeline counts must reconcile.
  • Percentage metrics must stay between 0% and 100%.
  • Every fight requires an opponent, event, result, and method.
  • Finish timestamps must reproduce their stored elapsed time.

04

Known limitations

Historical source records sometimes omit reach, height, weight, stance, or date of birth. Fighters sharing the same name can also be ambiguous in name-keyed historical files. Missing values are shown as unavailable rather than estimated.

Opponent records and ages shown beside finish clips require date-specific enrichment; until that layer is completed, the fighter’s searchable profile is the reliable opponent reference.

05

Status

Current validation: PASSED

Validated August 31, 2026. The public interface also displays the source archive date on every fighter page.