Leagues¶
What it does¶
A League is a season-based competition. Points accumulate across rounds into standings, and the league tracks handicaps, entry fees, and fines along the way. It is the fully shipped competition format in thecomp today, and the one Scout, Smart Import, and The Ledger are built around.
How it works¶
- Create a league — through Scout, manual step-by-step setup, or Smart Import.
- Build the roster — add members directly, approve join requests, or import them.
- Schedule rounds — set the course, date, format, and any points multiplier for each round.
- Play — score rounds live; scores feed the live leaderboard.
- Finalise — points roll into the season standings, and The Ledger picks up that round's entry fees and fines.
Key details¶
- A league is defined by its season context: standings accumulate over rounds, unlike one-off competitions.
- The Rulebook configures points distribution, tie-breaking, dropping lowest rounds, fine types, and entry fees.
- Members join by invite code or by requesting to join and being approved by an admin.
- Roles separate responsibilities — a commissioner/admin runs the league, and a finance manager (CFO) manages The Ledger.
- A league can optionally publish a public dashboard with a shareable link. The organiser controls what is shown — handicaps, fine totals, and per-player pages can each be turned on or off.
Technical notes¶
Built with Flutter/Dart. League data lives in Firestore, with Firebase Auth and role checks gating access. Join and approval flows run through Firebase Cloud Functions. The optional public dashboard is served on Firebase Hosting.
Related features¶
- Scoring Engine — turns rounds into standings.
- The Ledger — tracks the league's money.
- Scout and Smart Import — two ways to create a league.
- Golf — the sport leagues are played in.
- Tournaments and Matches — the other two competition formats.
Last updated: 2026-06-03