UFC fight data aggregation, analysis, and visualization
Live at panoctagon.jeffbrennan.dev
The dashboard has four main views:
Shows upcoming UFC events with fighter matchup comparisons, physical stats, records, and betting odds.
Individual fighter profiles with career stats, fight history, and performance breakdowns.
Visual graph of fighter matchup connections.
Searchable roster with division filtering and stat comparisons.
Available at /api. Full docs at /api/docs.
| Endpoint | Description |
|---|---|
GET /fighter |
Search fighters by name or division |
GET /fighter/{id} |
Fighter bio, record, and recent fights |
GET /fighter/{id}/stats |
Fighter statistics |
GET /fighter/{id}/fights |
Fight history |
GET /events |
List events |
GET /event/{id} |
Event details and fight card |
GET /fight/{id} |
Fight details with round-by-round stats |
GET /rankings |
Leaderboard by division |
GET /roster |
UFC roster with filters |
GET /upcoming |
Upcoming events and matchups |
GET /divisions |
All divisions |
The panoctagon CLI provides terminal access to the same data.
panoctagon upcoming
panoctagon fighter "Max Holloway"
panoctagon compare "Max Holloway" "Ilia Topuria"
panoctagon leaderboard
panoctagon event
panoctagon roster
Data is scraped, parsed, and transformed using Dagster and dbt.
Python, FastAPI, Dash, DuckDB, Dagster, dbt
- ufcstats.com - fight stats and decisions
- bestfightodds.com - betting odds




