Scoring a new league, live

UFC BJJ needed a way to score matches as they happen and send the data to commentators and partners. We built the scoring, data and commentary systems on one shared database.

The challenge

UFC BJJ is TKO's new professional Brazilian Jiu-Jitsu league, and a league needs a way to score its matches. Scorers enter data during live bouts, the system tracks every match on an event card, and the data has to reach commentators and external partners in real time.

TKO already had a scoring system for its boxing events, and the new one would use it as its reference. That meant working out the logic and rules of the existing system, rebuilding what still applied in Python and Django, and adding the scoring rules and timing that are specific to jiu-jitsu. Everything downstream depends on the scores being right as they happen, so scorers had to enter data quickly and accurately, and the scoring, data and commentary systems could never disagree.

A live scoring screen for a jiu-jitsu bout, with a round timer, stat counters for each fighter and a play-by-play log.

What we built

  • A data input system for the scorers at the event, with the inputs each kind of scorer needs to record the action as it happens.
  • An API that reads from the same database and serves live match data to the commentator system and to external data consumers.
  • A commentator screen showing live stats and analytics from the API, for use on air.
  • One shared database behind all three, so scoring, commentary and data feeds always draw on the same record.

How we worked

Our engineers built the full system. TKO's internal dev team handled deployment, so TKO kept control of its infrastructure while we owned building the product. We used the same lightweight stack as UFC War Room: Django, HTMX and Alpine.js. It let us move quickly and gave scorers and commentators a responsive interface for fast-paced live use.

Outcome

  • In use at live UFC BJJ events
  • One shared data source powering scoring, commentary and external data feeds at the same time
  • Rules and logic from TKO's boxing scoring system carried into a new Python platform, extended for jiu-jitsu
  • A second product delivered for TKO, after UFC War Room

More case studies

All work

Have a project like this one?