Smart pairings, tournament brackets, live standings, and player reports — all from a browser. No excessive fees, no subscriptions, no add tracking.
Every feature was carefully designed around how recreational leagues actually run — from the first session to the final optional tournament.
Built to be feature-rich but easy to use for both the league administrator and player.
A multi-factor optimizer runs hundreds of candidate solutions with optional hill-climb swap passes to find the most balanced game assignments. 9 configurable weight factors self tuned to your league's needs. Generate all rounds at once or one at a time. YOU decide what factors are important in making fair pairings!
Single elimination, double elimination, and round-robin reseeded. Automatic seeding from standings or admin input, rotating byes, and live bracket display for players.
FlexibleSeason and per-session standings update as scores are entered. On the final round of the last session, an automatic scenario analysis shows every player who can still reach the top 3 — and exactly which game outcomes get them there!
Real-TimeOne-click availability requests let players mark themselves IN/OUT/NOT SURE directly from their email — no login required. Emails show their full session-by-session attendance record. Session results, custom messages with optional standings, and individual player reports all supported.
AutomatedPlayers mark availability per session from the app or directly from email. Admin sees and can modify a full attendance grid — with M/F/Either breakdowns for mixed doubles format — and only present players are included in pairing generation. Option for new players to self-register with an invite code; admin approves before they go active.
StreamlinedRun many leagues from a single deployment. Public, private, and hidden leagues. Each league has its own players, schedule, and data. Direct league ID entry on the login page for fast access without searching the list.
Leage database may be kept on your own Google sheet or created and stored by the app developer.
ScalableEvery regular (non-tournament) session supports a different game format. The optimizer adapts its pairing logic and partner-tracking to suit each one.
Every format handles seeding, byes, and partner assignment automatically — including for odd player counts.
Classic bracket. One loss and you're out. Fastest format, perfect for end-of-season finales.
Two separate brackets — winners and losers. Players need two losses to be eliminated, giving everyone a second chance.
Everyone plays every round unless buys are necessary. No eliminations — the player with the most wins at the end takes the title.
The pairing optimizer evaluates hundreds of candidate solutions against up to nine weighted factors, self calibrated to your league's size and history. Hill-climb swap passes refine each candidate after generation for an even better result.
Each optimization run evaluates up to 500 independently shuffled candidate solutions, guaranteeing broad coverage of the solution space.
Can rerun as many times as admin wants and it will only save if it finds a better solution.
Weights are normalized by sampling real distributions, so a "50" for partner repetition and "15" for rank balance are genuinely proportional — not just raw numbers.
Every partner and opponent pairing from the full season is tracked. The optimizer actively avoids rematches across weeks, not just within a single session.
Player rankings feed directly into pairing decisions. Initial rankings let the optimizer balance games even before season standings exist.
Admins get full control. Players get a clean, fast view of what they need. Everything loads quickly using cached data after the first load.
Keep every player in the loop without any manual effort. Results, standings, and announcements go straight to their inbox — and players can respond without ever logging in.
Every person in the league gets exactly the access they need — nothing more, nothing less. Roles are assigned per-player with a single dropdown.
Deploy once and support multiple leagues in your community. Public leagues in the dropdown. Private leagues accessible by URL with private code only.
Very easy to get up and running once your organization is approved.
Your data lives in a Google Sheet you control, or let it live on the app developer's drive. No monthly fees (but donations to help support future development and cover hosting costs are welcome), no vendor lock-in.
League Manager is currently free for non-commercial use for select organizations. No subscription, no ads, no data selling — ever.
Set up in minutes. No technical experience required. Contact Doug Tucker to get access.