Defining a new user role and designing a live stats capture flow for large-scale sports tournaments

Company

Brackets App

Industry

Sports

Duration

~8 weeks

(Who and why?)

Context

01

The situation

Brackets is a web and mobile platform for sports tournament management. Administrators use the web tool to manage categories, teams, schedules, and results. Athletes follow game dates, results, standings, and live stats on the mobile app.

Before this project, tournament stats lived entirely on paper. Scorekeepers filled out sheets by hand, then handed them to admins after each match. Admins retyped the results into a spreadsheet and shared them over WhatsApp. With multiple tables and matches running at once, this chain needed several people and took real time to get results out.

It also meant no one outside that chain could see anything live. Family, friends, coaches, and other teams had no way to follow a match while it was happening. The only stats anyone saw were the ones that made it through paper, then Excel, then WhatsApp, usually well after the match ended.

02

My role & approach

Humberto, my co-founder, and I landed on a dedicated Scorekeeper role instead of stretching Admin to cover it, and I pushed to keep the two clearly separate. Stakeholder interviews showed each match table has its own team: scorekeeper, timekeeper, narrator. The head referee could work as a regular Admin. The scorekeeper could not. Multiple tables running at once meant giving every scorekeeper Admin access would break both the permission model and the UI.

Humberto and I cut scope down to one feature: live stats capture. We did not have time to build the full role. Live capture was the one thing tournament admins needed to see Brackets as viable, so everything else about the role could wait.

Diagram showing three tournament roles: Admin, who manages tournament logistics; Head referee, who assigns courts, referees, scorekeepers, and timekeepers per match; and Scorekeeper, who captures points, fouls, and stats live during the game.
Roles involved in a tournament: the admin manages logistics, the head referee coordinates courts and staff per match, and the scorekeeper captures live stats courtside.

(What I did)

Process & solution

03

The work

The first version of the stats capture screen was built for admins, not scorekeepers. Stats were input fields: type a number, save it. That worked fine for someone entering results after the fact, but not for someone sitting courtside, capturing every point, foul, rebound, steal, and block as it happened. There was no way to increase or decrease a stat in the moment, matching the actual pace of the game.

Screenshot of the original Brackets 'Editar Juego' screen showing a basketball game between Dragons and Eagles, with a player stats table where points, fouls, and shots are entered as manual number fields.
The original stats capture screen. Every stat was a manual input field, built for someone entering results after the fact, not for a scorekeeper trying to keep up with live play.

I redesigned the flow around four things a scorekeeper actually needed:

  • Recording a basket (1, 2, or 3 points) in the fewest clicks or taps possible
  • Logging fouls per player without leaving the main capture screen
  • Correcting a mistake on the spot, without interrupting the live flow
  • Showing the live score for both teams, so the scorekeeper could self-check against what they were seeing on the court
Flow diagram showing the scorekeeper journey. The admin creates an account and sends an invite. The scorekeeper receives the email, creates an account and signs in, navigates to their game, and captures game stats live. Game stats are visible to everyone in real time, and final results appear in the app once the scorekeeper closes the stats.
The first version of the scorekeeper flow: the admin invites a scorekeeper, who signs in, navigates to their game, and captures stats live until the game ends.
Screenshot of the redesigned Brackets live capture screen during a game between Búfalos Guadalupe and Guerreros Pacífico, showing player stats with tap-based increment and decrement buttons instead of manual input fields.
Live capture in Brackets. Points and fouls are logged with a single tap, no typing, so the scorekeeper can keep pace with real plays as they happen.

04

Validation and Iterating

We tested the flow live, with real scorekeepers at the table, over two days at ANUIES 2026 (32+ teams).

Day 1 surfaced two problems. Scorekeepers couldn't find their assigned game without help. Fast sequences caused a few missed plays. Together, these led to 4 discrepancies between the paper backup and Brackets, out of every point and stat captured live. Each one was easy to fix. An admin just corrected it directly in Brackets.

By Day 2, the friction was gone. Scorekeepers moved through the flow with no questions and no negative feedback.

At the end of the tournament, scorekeepers gave us feedback directly. One called it "very user-friendly." Another said "I picked it up right away."

Video showing the scorekeeper using Brackets App during a match at AUNIES 2026

After ANUIES, we redefined the role based on what Day 1 taught us. The navigation friction was the clearest, most fixable signal. Scorekeepers didn't need more training, they needed a shorter path to their game.

We limited the scorekeeper's access. A scorekeeper can now:

  • Only see and capture the games assigned to them
  • Only start a game at the correct date and time
  • Not edit a finished game (that stays admin-only)
  • Not access any tournament administration functions

Admins can also assign each scorekeeper to a specific court, so they only see their games for that day. Our hypothesis: this keeps tournament data safe, and gives administrators confidence in the new role.

I designed a dedicated scorekeeper home screen that shows only their assigned games right after login. No searching, no admin menus, no need for guidance.

Mockup showing the redesign of the home page for the scorekeeper user.
Redesign of the homescreen for the scorekeeper user. After they sign-in, they will see the list of games that they have assigned

05

The outcome

Brackets worked. Admins, athletes, and coaches followed the tournament live for the first time. It replaced a chain of paper, Excel, and WhatsApp with something scorekeepers could run themselves, and something everyone else could actually watch.

Screenshot of the Brackets mobile app spectator view, showing a live basketball game between Bulls and Lions with real-time score and a live stats table for each player on the court.
The same live stats, on mobile. Family, friends, and other teams can follow the score and player stats in real time, without waiting for someone to type up results after the match.

After ANUIES, we regrouped as a team to talk through what worked and what still needed fixing, for admins, scorekeepers, and athletes alike.

A few weeks later, we started talking with the administrator for the next tournament, Elite. Elite is a different environment: around 570 teams, 14 categories, and a venue with limited connectivity. Live capture couldn't depend on a stable connection, so we designed an offline version: the Digital Sheet. The scorekeeper captures the game offline, and once a connection is available, it syncs and becomes visible to everyone.

Key decisions behind it:

  • Data saves locally during capture, so closing the tab or a device shutting down doesn't lose the game
  • The scorekeeper can exit and return mid-game, resuming exactly where they left off
  • The system confirms a successful sync, so the scorekeeper knows the data reached the server
  • Once synced, the result looks identical to a live-captured game, so athletes and fans get the same experience either way

Elite was close to ANUIES, but not identical. Matches run in two halves instead of four quarters, and the scorekeeper works alone at the table, without a timekeeper or narrator. That meant a few things needed to be more explicit than before:

  • Local vs. visitor colors: I defined which team was local and which was visitor, then set uniform colors in the app, black for local, red for visitor, so a solo scorekeeper could tell teams apart at a glance.
  • Sticky footer: I moved match info, the score, and the finalize/publish actions into a fixed footer, so the scorekeeper always had what mattered most without losing screen space to scrolling.

This flow is what makes Brackets usable at Elite's scale, where the venue's limits would otherwise block live capture entirely.

Offline scoresheet interface showing team rosters, live stat entry for points, fouls, and blocks, period-by-period score tracking, and a play-by-play annotation grid for two teams.
The offline capture screen: scorekeepers log points, fouls, and play-by-play detail court-side, with no dependency on a live connection.

(Final thoughts)

Reflections

06

Final thoughts

Elite starts in July 2026, and it's the real test for the Digital Sheet: real scorekeepers, in a venue with limited connectivity. At the same time, we're improving the athlete app across web, iOS, and Android, fixing visual inconsistencies and improving how information is organized. Elite is also a research opportunity. We plan to talk to athletes, coaches, and family and friends during the tournament, a rare chance to reach real users at a semi-professional level and learn what matters most to them.

Adding the scorekeeper was never just a feature. It's the piece that makes the rest of the product work. Brackets means designing for people on both sides of the game: less manual work for administrators, real stats and recognition for athletes, and a live game to follow for family and friends. If Elite goes well, we believe Brackets can grow fast from here. There's a lot more we want to build.