// FOR * PICKLEBALL * TENNIS * BADMITTEN * PADEL * RAQUETBALL * MANY OTHER SPORTS TOO!
Perfect for town leagues, friend groups, and charity events
PICKLEBALL * TENNIS * BADMITTEN * PADEL * RAQUETBALL * MANY OTHER SPORTS TOO!

RUN YOUR
LEAGUE
LIKE A PRO

Smart pairings, tournament brackets, live standings, and player reports — all from a browser. No excessive fees, no subscriptions, no add tracking.

500+
Optimizer Tries
9
Pairing Factors
3
Tournament Modes
6
Player Roles
>

BUILT FOR REAL LEAGUES

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.

🎲

Intelligent Pairings

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!

Singles Doubles Mixed Doubles Fixed-Pair Doubles
AI-Powered
🏆

Three Tournament Formats

Single elimination, double elimination, and round-robin reseeded. Automatic seeding from standings or admin input, rotating byes, and live bracket display for players.

Flexible
📊

Live Standings & Finish Analysis

Season 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-Time
📧

Smart Email System

One-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.

Automated
👥

Attendance & Registration

Players 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.

Streamlined
🌐

Multi-League Support

Run 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.

Scalable

FOUR WAYS TO PLAY

Every regular (non-tournament) session supports a different game format. The optimizer adapts its pairing logic and partner-tracking to suit each one.

🏸
Singles
One vs one. Opponent history tracked to spread matchups evenly, with rank-balance weighting for competitive games.
🤝
Doubles
Four-player games with full partner & opponent history tracking across the season.
Mixed Doubles
Optimizer adds a gender-balance penalty to encourage mixed-gender partnerships each round.
👫
Fixed-Pair Doubles
Permanent doubles partners entered as a single unit. Runs as singles-style scheduling with pairs competing against other pairs.

THREE WAYS TO CROWN A CHAMPION

Every format handles seeding, byes, and partner assignment automatically — including for odd player counts.

Single Elimination

Classic bracket. One loss and you're out. Fastest format, perfect for end-of-season finales.

  • Top seeds vs bottom seeds
  • Top seed gets bye if odd count
  • Fixed doubles teams throughout
  • Champion when one team remains

Round Robin Reseeded

Everyone plays every round unless buys are necessary. No eliminations — the player with the most wins at the end takes the title.

  • Partners re-pair each round
  • Bye rotates to weakest player
  • Live standings after every round
  • Swiss-system fairness

NOT RANDOM.
OPTIMIZED.

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.

Pairing Quality Factors
Session Partners
50
Session Bye
30
Bye Variance
20
Session Opponents
20
Rank Balance (both team's average rank should be close to get even matches.)
15
History Partners (play with all other players evenly throughout the season)
10
Rank Std Dev (favor pairings of similarly ranked players)
8
History Opponents (make sure everyone plays against each other evenly throughout the entire season)
3
Mixed Balance (try to form pairs of Male and Female if in mixed-doubles mode)
40
All 9 weights fully configurable per league · Mixed balance shown only in mixed doubles mode
01

Hundreds of Random Starts

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.

02

Automatic Weight Calibration

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.

03

Season-Aware History

Every partner and opponent pairing from the full season is tracked. The optimizer actively avoids rematches across weeks, not just within a single session.

04

Rank-Based Balance

Player rankings feed directly into pairing decisions. Initial rankings let the optimizer balance games even before season standings exist.

TWO VIEWS.
ONE APP.

Admins get full control. Players get a clean, fast view of what they need. Everything loads quickly using cached data after the first load.

Season Standings
#1
Sandra T.
14W 3L
82%
#2
Richard K.
13W 4L
76%
#3
You ★
11W 6L
65%
#4
Paul D.
10W 7L
59%
#5
Gina M.
9W 8L
53%
Session 5 Scores
Round 1 3/3 ✓
Sandra & PaulTeam 1
117
Rich & GinaTeam 2
You & CathyTeam 1
95
Doug & JustinTeam 2
Round 2 1/3 · 2 left
Sandra & GinaTeam 1
93
Paul & JustinTeam 2
You & DougTeam 1
— vs —
Richard & CathyTeam 2

SIX ROLES.
RIGHT LEVEL FOR EVERYONE.

Every person in the league gets exactly the access they need — nothing more, nothing less. Roles are assigned per-player with a single dropdown.

App Manager
Developer / platform owner
Full platform control. Can manage all leagues, configure any setting, and set limits on what league admins can do. Identified by a secure password stored outside the spreadsheet — inaccessible to anyone else. Logs in via a dedicated protected path.
⚙️
League Admin
League organizer
Full control of their league. Manages players and PINs, configures the schedule and weights, generates pairings, runs tournaments, enters and deletes scores, approves registrations, and sends all emails. Logs in with a separate admin password — never confused with a player PIN.
🤝
Admin Assistant
Trusted volunteer
Can run the league on nights the admin is unavailable. Generates and locks pairings, runs tournaments, marks attendance, and enters new scores — but cannot view player PINs or emails, cannot delete or overwrite existing scores, and cannot clear pairings. Perfect for a trusted regular player.
✏️
Scorer
Score entry only
Has everything a regular player sees, plus the ability to enter scores from the player dashboard. Ideal for court captains who record results as games finish. Spectator-role members can also be granted scoring access — useful for large tournament helpers who don't play.
👀
Spectator
Non-playing member
Follows the league without playing — never appears in pairings or standings. Can view all scores, standings, and brackets. Optionally granted score-entry access, making them ideal as neutral scorekeepers at tournaments.
🎾
Player
Default for all members
View pairings, scores, standings, ranking trends, and tournament brackets. On the final round, see a live scenario analysis showing which results you need to finish in the top 3. Fast two-phase load works on any phone or tablet. Supports creating an icon on the phone to make it work just like an app. Can self-register with an invite code pending admin approval.
🔐
Separate Admin Authentication
Admins log in with a dedicated password — completely separate from the player PIN system. No player can accidentally gain admin access by choosing the same PIN. The App Manager password is stored in the server environment, never in any spreadsheet.

ONE APP.
UNLIMITED LEAGUES.

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.

Tuesday Doubles 12 players
Friday Mixed 16 players
Weekend Singles 8 players
Seniors League 10 players · hidden
Championship Series 24 players
+ Add League

ZERO SERVERS.
ZERO COST.

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.

📄
Google Apps Script
Backend API
📊
Google Sheets
Data Storage
GitHub Pages
Frontend Hosting
📧
Gmail API
Email Delivery
🔐
PIN Auth
No Passwords

FREE TO USE FOR SELECT ORGANIZATIONS.
DONATIONS WELCOME.

League Manager is currently free for non-commercial use for select organizations. No subscription, no ads, no data selling — ever.

Current
FREE
For select non-commercial leagues
  • All features included — nothing locked
  • Multiple leagues per deployment
  • All three tournament formats
  • Full email reporting suite
  • Ongoing updates and improvements
  • Responsive support
Access is by invitation — contact Doug Tucker to request access for your league. Has already been used to run two leagues and three more are in progress.
💛
Support Development
This app is built and maintained by a single developer as a community service. If it saves your league time and makes your sessions more fun, consider a donation to help cover time and hosting costs, allowing it to grow into a faster and better solution for running your games.
Donations support:
✓  Continued feature development
✓  Bug fixes and improvements
✓  Setup help and ongoing support
Contact Doug to Donate ↗
League Manager will never show ads, sell user data. You may wonder WHY??? Developer just wants to give back to the community that he enjoys being a part of! Any future paid tiers would only add new capabilities for larger or commercial operations.

GET YOUR LEAGUE
RUNNING TODAY

Set up in minutes. No technical experience required. Contact Doug Tucker to get access.