Before You Start
- Subscription: Club League ($99/season) or Multi-Club League ($249/season). Multi-Club inherits every Club League feature.
- Team list: Every team, organized by division. 4–10 teams per division works best for round-robin.
- Weekly schedule: One game day per division (e.g., Saturdays), the start times, and the courts/pools.
- Optional sheet: If your league lives in Google Sheets, you can skip the auto-scheduler and import it directly.
Quick Facts
Open the Leagues tab
Sign in at eggbeater.app/admin.html. Click the Leagues nav item (👑 crown means entitled). The setup card greets you with a "Set up league →" button.
- Free clubs see 🔒 — upgrade to Club League first
- Director tab stays for tournaments only
Run the wizard
Tap Set up league →. Fill in:
- League name + season label
- Divisions with their teams
- Format (round-robin, single-elim, Swiss, etc.)
- Weekly preset — day, start times, courts
- Points policy (default W=3, T=1, L=0)
Generate the schedule
Tap Generate Schedule. Every game materializes with date, time, court, weekIndex. Review the games card.
- Already in a sheet? Tap 📥 Import from Sheet instead
- The wizard saves your column mapping for next season
Publish the league
On the Publishing card, hit Publish League. Eggbeater mints a 6-character share code and a public URL.
- Copy Code → for visiting clubs to import
- Copy Link → for parents / spectators
- Auto-publishes /leagues/{slug}/ SEO page
Score the games
Volunteers score from the standard Tournament Scorer. Open the share code on a tablet at the desk, tap the action, tap the player.
- Scoreboard updates everywhere in < 5 seconds
- Live Game Console on Leagues tab = host fallback for stuck games
- Standings recompute on every finalization
Archive when done
End of season? Hit 📦 Archive this league. Final standings freeze, the season moves to Past Leagues, share code stays valid for lookups.
- Start next season fresh, or clone from archive
- Subscribers age out naturally with the share code's TTL
🏆 At the desk — every game
Volunteer scorers should:
- Verify cap colors match the convention (team1 = White)
- Tap Goal → tap the player → optional assist
- Tap Final at the end (or the host can finalize from the Console)
- Refs sign off via the prompt at game end
✓ Looking good
You're in the green when:
- Standings show on the public link
- Live Dashboard shows finalized + in-progress counts matching the schedule
- "Week N · vs Opponent" reminders are firing (check your phone before each game)
⚠ Watch out for
Things to keep an eye on:
- Team-name mismatch on sheet import — fix the source, re-fetch
- Stuck games (scorer forgot Final) — use the Console's one-click finalize
- Standings hidden by policy — adjust hide-until-week-N in the wizard
- Cap color convention mismatched between divisions — set per-league in Scorer Display
🚨 Stop & check
If you see any of these, pause:
- Live Dashboard shows conflicts > 0 — two scorers on the same game
- Score override needed at the Console — typo, wrong team, etc.
- Visiting club can't import the code — confirm Multi-Club League is the active SKU
- Sheet write-back failures — check the Apps Script logs