Club Admin Manual

Leagues — End-to-End Guide

Step-by-step instructions for Club Admins to create a Free or Paid League — Round Robin or Flight System Ladder — manage enrollments, run sessions through the season, and crown a season winner.

1. Before you start

To follow this manual you need:

Open the app, sign in, then tap the Events tab in the bottom nav.

Note. A league has its own lifecycle (DRAFT → OPEN_FOR_ENROLLMENT → ENROLLMENT_CLOSED → SCHEDULED → IN_PROGRESS → COMPLETED) and a nested session lifecycle inside it (INSUFFICIENT_PLAYERS → SCHEDULED → ACTIVE → COMPLETED). Sessions are how the league plays out across days/weeks.

2. Choosing a league format

PickLM supports two league formats. Pick before creating:

FormatBest forHow it plays
Round Robin Stable rosters, friendly play, recurring league nights Every team plays every other team. Standings = match wins → game diff → point diff.
Flight System Ladder Larger leagues, mixed skill levels, promotion/relegation flavor Players are grouped into flights (skill tiers). Top performers in each flight promote up; bottom relegate down between sessions.
Round Robin variants. Only Full Round Robin is fully available today. Double Round Robin and Partial Round Robin are marked Coming Soon in the create wizard.

3. Free League — end to end

Use this flow for casual seasonal leagues with no entry fee.

3.1 Open the create wizard

  1. On the Events tab, tap the floating + button.
  2. Tap Create League.
  3. If you've run a similar league before, the Start Fresh / Copy from Previous sheet appears. Pick one to seed the form.

3.2 Step 1 — Basics

3.3 Step 2 — Capacity

3.4 Step 3 — Schedule

3.5 Step 4 — Format-specific config

Round Robin only

Flight System Ladder only

3.6 Step 5 — Money

For a free league, leave both off:

3.7 Step 6 — DUPR rating gate (optional)

Same as tournaments — pick a DUPR Event Tier (Basic / DUPR+ / DUPR Verified) and optionally set a min/max DUPR rating range.

3.8 Step 7 — Venue

Same as tournaments — venue type (Indoor / Outdoor / Mixed), surface type, name and address.

3.9 Step 8 — Visibility & save

3.10 Publish for enrollment

  1. Open the league detail screen.
  2. Admin overflow → Publish (or change status to OPEN_FOR_ENROLLMENT).
  3. Players can now tap Enroll Me.

5. Managing enrollments

5.1 Open Manage Enrollments

League detail → admin overflow → Manage Enrollments. Tabs:

5.2 Approve / reject

Tap a Pending row → Accept or Reject with reason.

5.3 Bulk add

Leagues support bulk admin-add (tournaments don't). From Manage Enrollments:

  1. Tap Bulk Add.
  2. Paste a list of emails or pick from your club's members list.
  3. For paid leagues, every selected player receives a Razorpay payment link.
  4. For free leagues, every selected player is enrolled with ACCEPTED status.

5.4 Auto-enrollment to sessions

When you create a session inside the league, every ACCEPTED / ACTIVE player is auto-enrolled into it. Players can self-unenroll/re-enroll per session while the session is still SCHEDULED.

5.5 Self-unenroll vs withdraw

6. Sessions — running the season

A league is played across one or more sessions. Each session is a self-contained round of matches (e.g. weekly league night).

6.1 Session lifecycle

Each session walks through these states:

6.2 Creating a session

  1. League detail → Sessions tab → Add Session.
  2. Pick the date/time and (for Flight System Ladder) any session-specific overrides.
  3. Save. All ACTIVE league players are auto-enrolled.

6.3 Starting a session

  1. Open the session.
  2. Tap Start Session (admin action). Status flips to ACTIVE.
  3. The orchestrator generates the round-robin pairings or flight matches automatically.

6.4 Scoring matches

  1. Tap a match in the session.
  2. Tap Submit Score and enter game-by-game scores.
  3. Match goes through SCHEDULED → ACTIVE → SCORE_SUBMITTED → COMPLETED.
  4. Two-step verification: when a player submits, the opposing team must verify before COMPLETED. Admin submissions auto-verify.
  5. Forfeit: an admin can mark a match FORFEIT with a winning team, useful if a team no-shows.

6.5 Completing a session

When every match in the session is COMPLETED:

7. Viewing standings

7.1 League standings

League detail → Standings tab. Sorted by match wins → game differential → point differential. Updates after every COMPLETED match.

7.2 Flight standings (Flight System Ladder)

Each flight has its own standings panel showing the players in that flight with their session-by-session win rate and current promotion/relegation indicator.

7.3 Player view

Players see the same standings tabs plus a My Matches filter. Score submission is enabled for participants on their own matches.

8. Completing & cancelling a league

8.1 Completing

  1. Once your last session is COMPLETED, admin overflow → Mark Completed on the league.
  2. Status flips to COMPLETED.
  3. The standings page becomes the official season-end results. The top of the standings is the season winner.

8.2 Cancelling

  1. Admin overflow → Cancel League.
  2. Status → CANCELLED. The league disappears from public Events feeds.
  3. For paid leagues: file refunds through Razorpay for every captured entry fee. The platform does NOT auto-refund.

8.3 Editing a published paid league

Most fields lock once enrollment opens. To change capacity, dates, fees, or format config:

8.4 Score corrections

  1. Open the match → admin overflow → Reset Match.
  2. Match returns to SCHEDULED; standings recompute.
  3. Re-enter the correct score.

9. Frequently asked questions

Q. What's the difference between a league and a tournament?
A tournament is a single-event bracket that crowns a champion (Round Robin or Knockout) usually finished in one day or weekend. A league plays out across multiple sessions over a season — players accumulate wins across sessions, and (in Flight System Ladder) move up/down skill flights between sessions. Leagues also support bulk admin-add, which tournaments don't.
Q. What happens when a session has too few players?
It sits at status INSUFFICIENT_PLAYERS until you add enough enrollees to hit the minimum, or you delete the session and create a smaller one. Players can drop in/out while the session is still SCHEDULED — flights regenerate automatically.
Q. Can I do split payments for league entry fees?
No — split payments are tournament-only in v1. Each player pays their own league fee in full.
Q. Can a player switch fixed-partner mid-season?
No, partner changes during a Fixed-Partner league are not currently supported. The team is locked at enrollment. If you need to handle a partner injury / unavailability, your options are: (a) admin-add a substitute partner via Manage Enrollments → row overflow → Override Partner, or (b) withdraw the team from the league.
Q. How does flight promotion/relegation work?
At the end of each session in a Flight System Ladder league, players who played at least Min Matches for Promotion matches AND hit at least the Min Win Rate for Promotion threshold move up a flight. The bottom of each flight relegates down. The next session uses the new flight assignments.
Q. Are league standings updated live?
Yes — every time a match flips to COMPLETED, the league standings recompute. The Standings tab shows current totals at any moment.
Q. Can I change the entry fee mid-season?
No. Once a paid league has any captured entry fee, the fee is locked. To change it, cancel the league and re-create.
Q. Does PickLM hold entry-fee money?
No. Razorpay deposits entry fees directly into your club's Razorpay account. PickLM never takes custody of the money.