Trust hub: Aggregate NBA NHL MLB Soccer Tennis Cricket UFC Model CLV Calibration

UFC Trust Dashboard

v1 ship 2026-05-29 — aggregate calibration vs no-vig market anchor + method-distribution split (ESPN-era backfill vs legacy ufcstats rows). Replaces ufcstats.com as outcome source after its 2026-04-18 JS bot challenge made the legacy scraper non-viable.

Variance disclosure. MMA is the lowest-N sport in the portfolio and the highest single-event variance. A 5-pick sample tells you nothing. Calibration here is meaningful at N≥100; until then, treat the lift number as directional and the status pill with low confidence.

Aggregate cohort

Settled-pick Brier on picks where ESPN/ufcstats has the outcome. Picked-side framing: best_side='home' → win = 1 if winner matches home_team. Lift = model − market (negative = model beats market). Status pill mirrors the tennis tripwire: |lift|<0.005 green, <0.020 yellow, else red.

UFC aggregate cohort calibration versus market.
N picksModel BrierMarket BrierLiftStatus
343 0.1782 0.1685 +0.0097 watch

Method distribution by source

Counts of ufc_fight_summaries.method bucketed by where the row came from. ESPN-era rows are the 2026-04-19 → today backfill via the public MMA scoreboard (UFC + PFL + Bellator). Legacy rows are the pre-block ufcstats corpus. PFL fights legitimately produce method=NULL because ESPN doesn't populate details[] for PFL — that's structural data absence, not a parser miss. The OTHER bucket is the parser-gap flag.

UFC method distribution by data source.
SourceDECSUBKONULLOTHERTotal
espn-era 69 44 76 76 0 265
legacy 3890 1682 2821 0 0 8397