Set up your water polo league, step by step
A guided walkthrough from empty admin panel to live spectator URL with auto-syncing Google Sheets workbook. Designed for a first-time league admin — read top to bottom, ~30 minutes to complete.
A guided walkthrough from empty admin panel to live spectator URL with auto-syncing Google Sheets workbook. Designed for a first-time league admin — read top to bottom, ~30 minutes to complete.
Open eggbeater.app/admin.html and sign in with the Google account that owns your club. Click the Purchases tab in the sidebar.
Pick the right SKU for your league:
Stripe handles the checkout. Cancel anytime — the subscription is per season, not annual. Once payment clears, the Leagues tab in the sidebar shows a crown 👑 instead of a lock 🔒.
In the admin sidebar, click Leagues. You'll see a setup card at the top with two primary buttons:
Below the setup card you'll find the empty states for Live Dashboard, Live Game Console, Standings, Player Stats, and Past Leagues. They fill in as you complete the next steps.
Click Set up league →. The wizard is one scrolling form. Fill in:
Save and close at any point — your wizard draft persists locally until you commit.
In the wizard's Divisions & Teams step, add at least one division (most leagues use one — e.g. "Adult" or "Open"). For each division, list every team by name.
Rosters can be loaded two ways:
Roster entries flow into:
Two paths depending on whether you have an existing schedule:
Leagues with multiple stages — preseason exhibition, regular season, playoffs — should configure phases so standings and stats segment correctly.
Each phase has:
Each game has a phaseId. Edit a game (✏️ Edit button) to change which phase it belongs to, or mark it as an exhibition game so it doesn't affect standings even when finalized.
In the wizard's Points & tiebreakers step, configure your scoring rules.
Default points policy: 3 win / 1 tie / 0 loss. Shootout wins default to 2 pts (per FINA convention).
Tiebreakers resolve teams with equal points. The default chain (most-to-least applied):
Many leagues simplify to a shorter chain like points → goals-for → name. Pick whatever matches your league's bylaws — Eggbeater applies it consistently across all standings views.
On the Leagues tab, find the Publishing card and click Publish League. Eggbeater:
The spectator page detects the league's display language and auto-switches the UI accordingly. French leagues land in French; Spanish leagues land in Spanish.
On the standings card header, click 📊 Export to Sheets. The first time you'll grant Google Sheets API access via OAuth. After that:
Auto-sync: every time a game's score flips to FINAL, the workbook updates within a few seconds — no manual re-export needed. Auth survives for ~50 minutes; after that, click Re-export once to refresh the token.
Three paths to record a score:
Before flipping a game to FINAL, fill in the two referee names via ✏️ Edit. Eggbeater warns when the refs are missing on a non-exhibition game.