Open play, end to end
Run a session without the whiteboard
Everything a host does in ScoreMaster, in the order they do it: make an account, set up an open play, get people checked in, build and generate lineups, record scores, split the court fee, and send the games to DUPR.
01
How it fits together
ScoreMaster is one app with three audiences, and knowing which is which saves most of the confusion later.
You, the host
signed in on your phone
You create the session, check people in, generate lineups, record winners and mark who has paid. Everything in this handbook is yours unless it says otherwise.
Players
a free account, or none at all
A player can be just a name you typed. If they have a ScoreMaster account and you link it, their DUPR ID and their own record follow them into every session you run.
Anyone with a link
no account needed
Two public pages: the posting people read and sign up on before the day, and the live board you put on a TV. Neither ever shows fees, amounts owed, or payment status.
The shape of a session
A session moves through four states, and each one changes what the app will let you do.
| State | How it gets there | What you can do |
|---|---|---|
| Scheduled | You tap Create session | Check people in, add courts, edit settings. Lineups are closed. |
| Live | You tap Start session | Everything: generate lineups, start matches, record scores. Clocks run. |
| Stopped | You tap Stop session — a rain delay, a break | Match clocks are held and no new lineups can be queued. Tap Resume session and carry on. |
| Ended | You tap End session, twice | The queue closes and you land on the summary. Scores stay editable; Reopen undoes it. |
Creating is not starting. A session you make on Tuesday for Saturday sits as Scheduled until you tap Start on the day. Nothing is live, no clocks run, and no lineups can be queued until then.
02
Create your account
Hosting needs an account with a confirmed email address. It takes about a minute.
- Open ScoreMaster and choose Sign upFrom the landing page, tap Create a free account. You can also use Continue with Google, which skips the password entirely.
- Enter your name, email and a passwordYour name is what players see on the postings you host, so use the name your club knows you by.
- Confirm your emailWe send a link. Until you tap it, hosting, clubs and your stats stay locked — the prompt sits at the top of your Account screen with a resend button.
- Fill in your profileUnder Account: a photo (shown on events you host), a phone number if you want one, and your own DUPR ID.
ScoreMaster
Run the queue without chaos
Your own DUPR ID
Set it once on your Account screen and it belongs to you, not to any one host’s book. Every host you link with picks it up automatically, so you never hand it out again.
Dark mode
Your name in the top right opens the account menu, and Dark mode is the switch at the bottom of it. It is remembered per device rather than per account — the same host wants a bright screen on a phone in a lit gym and a dark one on a laptop at home, and it deliberately does not follow your phone’s own night setting, which would hand you a dark app at the exact hour you need the brightest one. The broadcast boards stay dark either way; a TV across a gym reads them better.
Do this before your first session. A confirmed email plus a filled-in profile means the Create button works the first time you reach for it, rather than at the venue with twenty people waiting.
03
Create a session
From Open Plays, tap + New Open Play. The form is one screen, top to bottom, and the button at the bottom tells you what is still missing rather than sitting there greyed out.
First: how do you want to run it?
This choice governs everything after it, so it is asked first.
Lineups & courts
the full flow
Build or generate matches, assign them to courts, run a clock, record scores and winners. Almost every open play wants this.
Simple tally
just the games
Log who played each game — no courts, no lineups, no scores — and the fee splits by games played. Good for a casual afternoon where you only need the money to come out right.
Then the four things it will not create without
A name, a start time, a venue and at least one court. Everything else on the form has a sensible default. If you try to submit early, the button says exactly which of the four is missing.
New Open Play
Set it up in a few taps
How do you want to run it?
✓ Lineups & courts
Full flow — build matches, assign courts, record winners.
Simple tally
Just log who played each game. Fee splits by games played.
Courts
How many courts are running
Who can see this
Listed on the What’s On feed, and the link works for anyone you send it to.
When someone signs up
Public, private, and registration
Public
Listed on the What's On feed, and the link works for anyone you send it. Live standings are on.
Private
Not listed anywhere and the public link is off. Only you and the players you add can see it — you can make it public later.
Let people register
public only
Turns the link into a sign-up sheet. Leave it off and the link is a read-only board you add everyone to yourself.
They're in / I approve
They’re in puts sign-ups straight on the list. I approve holds them as requests you accept one by one on the session screen.
Registering is not checking in. Someone who signed up from the link is on the list but marked not present, and sits out of every lineup until they arrive and are checked in. That is deliberate — a sign-up a week ahead is not a promise they turned up.
Game mode
Doubles or Singles. This sets the default for generated lineups; you can still build a one-off lineup of the other kind by hand.
Session options
Folded away behind a one-line summary, because they are set once and rarely touched. All of them can still be changed mid-session.
Auto advance
on by default
When a game ends, the next lineup in the queue goes straight out — onto the court it was set for if it has one, otherwise onto whichever court just freed up. Turn it off to send every lineup out yourself.
Cap games per player
Everyone retires from the queue after the same number of games. A banner in the Players sheet offers to return them all when you want to keep going.
Limit players
A target headcount. Allow walk-ins past the limit keeps it soft — on by default, because walk-ins are the norm. Turn it off and check-in closes at the number.
Player self check-in
Players who already joined scan the door QR and mark themselves in from their own account. The QR lives on the session screen.
Skill labels
Rename the five star tiers to whatever your club says — Beginner / Intermediate / Advanced, or 2.5 / 3.0 / 3.5 / 4.0 / 4.5. Only worth setting if you use skill matching.
Who’s coming
On the right of the form (below it on a phone) is your saved player book. Tap everyone you expect. New names typed here are saved to the book automatically, so next week it is one tap. They go on the list without being checked in.
04
Choosing a matching style
How teams get formed for every generated game. This is the single setting that most changes how a session feels, and you can change it mid-session: the session screen carries a Matching setup line saying what it is currently set to, with an Edit beside it that opens the lot in a sheet.
Matching style
How teams are formed for each game.
✓ BalancedRecommended
Fair teams and turns, fewest repeats. Best for most open play.
Skill separated
One rating per court — a game only crosses levels when a single one can't fill it. Best when levels vary widely.
Competitive ladder
Skill separated, but the results can overrule it. Someone winning well above their level is moved up into stronger games; someone losing below theirs is moved down.
By court
Each court runs its own rotation from the players assigned to it.
| Style | Use it when | What it needs from you |
|---|---|---|
| Balanced | Mixed social play, everyone plays everyone | Nothing — it works on games played and recent partners |
| Skill separated | Levels vary widely and strong players are steamrolling | A star rating on each player |
| Competitive ladder | You suspect some ratings are wrong and want play to correct them | A star rating, plus scores recorded (not winner-only) |
| By court | Courts are pre-sold, or club teams own a court for the morning | Assigning each player to a court |
What Balanced actually does
It is not a coin toss. In order of priority, it:
- gives everyone an even number of games — whoever has waited longest and played least goes on first;
- splits tiers evenly across a game rather than stacking a 3–1;
- puts winners against winners, so a hot pair meets a hot pair;
- softly rotates partners, so you do not play with the same person four games running;
- and adds a little randomness, so an unchanged room does not replay the same game.
Where it cannot avoid a repeat it does not hide it: the lineup card gets a Recent pairings flag saying these two were together two games ago, and you decide.
What the ladder adds
Competitive ladder starts from the same stars Skill uses but does not treat them as final. Most games stay inside a level; two more wins than losses moves someone up, and two more losses than wins moves them down. It reads point share rather than bare win/loss, because in doubles a mis-rated player can be carried to wins by a strong partner while their point margin gives them away.
Unrated players are matched wherever they are needed. Skill separation only bites once people have stars, so if you pick a skill mode, tag levels as you check people in — or later, by tapping any name on the waiting board.
05
Setting the court fee
Two ways to charge, chosen at the bottom of the create form and changeable at any time from Edit session or straight off the summary.
Court fee
Who’s coming (optional)
Tap everyone you expect. They go on the list without being checked in — mark them in on the day, or let them check themselves in with the QR.
Search or add a playerSplit per game
The default, and the fair one when people arrive and leave at different times. The total fee is divided by every game played by everyone, and each player owes their share of that rate.
rate = total_court_fee ÷ total games played by all players
owed = that player's games_played × rate
// Fee ₱2,400 · 40 player-games across the morning
rate = 2400 ÷ 40 = ₱60.00 per game
Marco played 8 → 8 × 60 = ₱480.00
Grace played 5 → 5 × 60 = ₱300.00
Jen played 2 → 2 × 60 = ₱120.00The number moves as the session runs, which is why the summary recalculates every time a match is recorded or deleted. Do not chase it mid-session — read it when play is done.
Fixed per player
Everyone owes the same amount no matter how much they played. Set Per player and that is what every person on the list owes, from the moment they are added.
Deleting a match refunds it. Removing a recorded game rolls back each player’s game count, wins, losses and their share of the fee. That is the right behaviour, but it means a correction after people have paid in cash needs a second look at the totals.
06
Saved players & check-in
Your saved players book is what makes week two faster than week one. Everyone who has ever played in one of your sessions is in it, most frequent first, and it learns names from play — you never have to build it deliberately.
Three ways somebody gets on the list
You tap them from the book
On the create form, or from Check in several from saved players in the Players sheet of a running session — Manage on the waiting board.
You type a new name
Type it in the search box and tap add. They are filed in your book from that session onward, so it is a one-time cost.
They register from the posting
Only when the session is public and registration is on. Instant or held for approval, depending on the policy you set.
Adding a player never checks them in, and you are never added to your own session. A host who is also playing has to add themselves like anyone else. Presence is what gates lineups — nothing else does.
Roster edits reach every future session
From Account → Your saved players, a name, star level, DUPR ID or photo edited there belongs to the person rather than to one night. Change it once and every session they play for you from then on picks it up. That is the right place to sit down and fill in a book of DUPR IDs.
08
Starting play
Until you tap Start session, the session is set up but not under way. A banner says so, and it is the only primary button on the screen.
- Check people in firstLineups draw only from players marked present. Tap Manage on the waiting board and work the list until the here now count matches the room.
- Rename or add courts if the venue changedTap a court name to rename it; the + adds one. Matches stay attached to their court when you do.
- Tap Start sessionClocks begin, lineups open, and the session shows as Live now in everyone's feed.
Saturday Morning Open Play
Sat 13 Sep · 4 courts · doubles
Not started yet. Check people in and set the courts up now — lineups open when you start play.
Start session14
On the list
9
Here now
4
Courts
Stop is not End
Once live you get two buttons, in that order deliberately. Stop session is the reversible one — it holds every match clock and closes the queue for a rain delay or a lunch break, and Resume picks up exactly where you left off. End session is red, sits second, and takes two confirmations; the first tells you what is unfinished — matches still on court, lineups still queued, players still unpaid.
09
Generating lineups
The Courts tab is where you will spend the session. Three numbers at the top answer “what is the state of the room” — Waiting, Playing, Idle courts — then the court cards, then the lineup queue underneath.
Three ways a lineup appears
Generate all
the button you will use most
Queues a balanced set of lineups for everyone present, in one tap. It fills as many games as the room supports, using the matching style you chose.
Auto advance
a session option, on by default
When a game ends, the next lineup in the queue goes out on its own — onto the court it was set for, or the one that just freed up. It moves lineups you have already approved; it never invents one. Suggestions still arrive by themselves, and nothing is queued until you approve it.
+ New lineup
build one by hand
Pick the players yourself and drop the lineup on a court or into the queue. Use it for a grudge match, a coaching pair, or a game the generator will not think of.
Suggestions and the queue are different things
The lineup queue is what is actually happening next — approved, ordered, ready to go on court. Suggestions sit underneath it in dashed blue: the app’s proposals, pending your yes. Nothing gets queued until you approve it, and you can approve, shuffle or discard them one at a time or all at once.
6
Waiting
8
Playing
2
Idle
Lineup queue · 3
Drag ⠿ to reorder or onto a court to assign. Drag a player onto the other team to trade places, onto another name to swap — or use the ✎ on a name.
Marco V. + Jen O.
vs
Grace L. + Paolo C.
Ken S. + Rowena D.
vs
Bea T. + Chris A.
Ana R. + Miguel F.
vs
Tin P. + Jomar B.
Sam O. + Kaye M.
vs
Dennis U. + Faith L.
⚠ Sam & Kaye played together 2 games ago
“Generate all” only appears in the random queue. If you picked By court, each court runs its own rotation instead — open Court assignments, put players on courts, and generate per court from there.
Smart suggestions
A strip at the bottom of the screen surfaces things worth knowing rather than deciding for you: a player on a long win streak, someone who has sat out too many rotations, a court that has been idle. Dismiss one with ✕ and it stays gone.
10
Editing & locking pairs
Every generated lineup is a proposal you can overrule. Three ways, all of which work on a queued lineup and a suggestion alike.
Drag onto the other team
Moves that player across sides within the same lineup.
Drag onto another player
Swaps the two. This is how you move somebody between two different lineups — a team area alone does not say who leaves, so drop them on the name they are replacing.
Tap ✎ on a name
The same swaps without dragging, which is what you want one-handed at courtside.
Drag ⠿ on the card
Reorders the queue, or drops the whole lineup onto an idle court.
Locked pairs
Lock a pair keeps two people together in every generated lineup — a coach and their student, a husband-and-wife team, a pair practising for a tournament. Locked partners are honoured by the generator and shown with an unlock control, so it is never a mystery why those two keep appearing together. The quickest way in is the waiting board: tap someone’s name and pick who they stay with. A 🔒 then rides beside their name wherever it appears.
Court assignments
For the By court style, Court assignments is where players get pinned to a court and each court’s rotation is generated from just those people. A player with no court assignment sits in the general pool.
Every slot in a lineup must be a real checked-in player. If you remove somebody who is still sitting in a queued lineup, fix or cancel that lineup — an orphaned slot is the one thing that will stop the session saving.
11
Courts and scores
A court card holds one match at a time and walks through the same beats: send it out, and record it.
- Send a lineup to a courtTap a court button on a queue card, or drag the lineup onto the court. If the court is free the clock starts there and then — you are sending it because those four are walking on.
- ▶ Start match, when it doesn't start itselfA court that already has a game on it, and a session that is stopped, both hold the clock — the card shows Assigned and waits for you. ❚❚ Pause holds a running clock for a disputed point or an injury.
- Type the score and tap the winnerTwo number fields and two full-size buttons. Once both scores are in, the side with more points is filled in rather than outlined — but both buttons stay live, because you are the referee and a game-based format can legitimately hand the win to the lower number.
Team 1
Marco Villanueva
Jen Ocampo
vs
Team 2
Grace Lim
Paolo Cruz
Team 1
Ken Salazar
Rowena Diaz
vs
Team 2
Bea Tolentino
Chris Ang
Timer begins when you start the match
No active match — assign one from the lineup queue.
No active match — assign one from the lineup queue.
Record the score, not just the winner
You can record winner-only and everything on the boards still works. But two features need real scorelines: the competitive ladder reads point share to spot a mis-rated player, and DUPR rates on scorelines and will not accept a game without them. A winner-only game cannot be fixed after the fact for export purposes.
Fixing a result
Tap ✎ on any match in Match history or on the summary to correct a score, the winner, or which side a player was on. Results stay editable after the session ends — which is usually when a wrong winner gets noticed.
The second screen
Scoreboard ↗ opens a full-screen dark board in a new tab for a laptop or TV at the venue. Live link is the shareable version in your club’s colours — courts, queue, podium and streak standings, safe to paste into a group chat.
12
Managing players live
The waiting board — the dark panel beside the lineup queue — is where you manage people during play. It lists everyone checked in and not on court, longest wait first, so the name at the top is always the person with the best claim on the next game.
Reading a row
The big number
How long since they came off court — or since they checked in, if they have not played yet. It turns orange past ten minutes, which is roughly two games: past that they have been skipped rather than simply not called yet.
avg
Their typical wait between games tonight. One unlucky wait barely moves it, so a high average is the real sign somebody is being left out.
Dots and NG
Their star level and games played, for deciding who can go on the strong court.
queued
They are already in an approved lineup, so their turn is settled.
❚❚ Idle
Sits them out. They leave the board and drop out of matchmaking entirely, and reappear as a chip under Not on the waiting list — tap it to check them back in. It refuses on anyone already in a lineup: swap them out with ✎ or cancel that lineup first, so one tap on one person never quietly discards a matchup built around three others.
Tap a name. A small sheet opens with the two things you decide courtside: their star rating, and who they are locked with. Neither costs you the session screen.
Above the courts
Three numbers run across the top of the session screen: Courts (busy of total), Players (everyone on the list), and Waiting. They are the ones you cannot read off the rest of the screen without counting.
The Players sheet
Manage on the waiting board opens the full roster: a sortable table of everyone on the list, with the search box doubling as the add box. Someone who has played with you before carries a ★ Regular tag — their level, DUPR ID and account link came out of your saved players and will be there next week too, so a blank one is worth filling in. A player you add lands at the top of the table straight away, whether or not they have checked in yet.
8
Playing
4
Up next
6
Waiting
2
Resting
| Player | DUPR | Skill | Games | W/L | Win% | Paid | |
|---|---|---|---|---|---|---|---|
| Marco Villanueva◆ | K7XQ2M | ★★★★★ | 8 | 6/2 | 75% | Paid | Manage |
| Grace Lim◆ | P4RB8T | ★★★★★ | 5 | 3/2 | 60% | Unpaid | Manage |
| Jen Ocampo | — | ★★★★★ | 2 | 1/1 | 50% | Unpaid | Manage |
| Paolo CruzResting | — | ★★★★★ | 4 | 1/3 | 25% | Paid | Manage |
Sorts on most wins, then win rate — the same order as the live board, which is why a 100% entry can sit below an 80% one.
What Manage on a row does
Rename
Fixes a typo everywhere, including in lineups already queued.
Skill level
Five stars, using your session's own labels. Takes effect on the next generated lineup.
DUPR ID
Saved to your player book, so you only type it once. If they are linked to an account it comes from their account, and editing it here is a local override.
Here now
The presence checkbox. Unticked, they are registered but sit out of every lineup until they arrive.
Link an account
By email lookup, or by showing a QR they scan on their own phone.
Remove from session
Takes them off the list entirely. Check no queued lineup still has them in it first.
Idle, retired and returning
Idle is someone sitting out a few rotations by choice — they stay on the list and come back the moment you tap their chip. Retired is automatic: they hit the games cap. Neither can be drawn into a lineup. When retired players should keep playing, a banner offers Return them to the queue — removing the cap alone does not un-retire anyone.
The same list holds people who signed up and have not walked in yet. The app does not tell the two apart, and does not need to: both are off the waiting list, and both are one tap from being on it.
13
Payments & settle up
ScoreMaster does not take money. It works out who owes what and keeps a paid/unpaid checklist — you collect in whatever way your club already does.
During the session
Tap the Paid badge on any roster row to toggle it. That is the whole interaction. On split per game the amounts keep moving as games are played, so it is normal for the totals to look wrong until play is done.
At the end
The summary opens with the five numbers you need, and the court fee among them is editable right there — if the venue charged ₱2,600 rather than ₱2,400, tap it, change it, and every share recalculates.
18
Matches
14
Players
9/14
Paid
₱2,400
Total owed
₱2,400
Court fee ✎
Settle up & DUPR IDs
9/14 paid · ₱2,400.00 total
| Player | DUPR ID | Owed | Paid |
|---|---|---|---|
| Bea Tolentino | R9WK4D | ₱360.00 | Paid |
| Grace Lim | P4RB8T | ₱300.00 | Unpaid |
| Jen Ocampo | — | ₱120.00 | Unpaid |
| Marco Villanueva | K7XQ2M | ₱480.00 | Paid |
Money never leaves this screen. The public results board, the live board and the copy-to-chat message all carry results only — no fee, no amounts owed, no payment status. That is exactly what makes them safe to paste into a club group chat.
Common fee questions
Someone left early
Split per game already handles it — they owe for the games they played and nothing more.
Someone paid for a friend
Mark both as paid. The app tracks who has settled, not who handed over the note.
A match was recorded twice
Delete the duplicate from the summary. Game counts, W/L and fee shares all roll back with it.
The fee changed after the fact
Tap the court fee on the summary. Everyone's share recalculates immediately.
14
Ending & sharing results
End session asks twice. The first confirmation is a status report — matches still on court, lineups still queued, players still unpaid — so you can go back and finish rather than discover it later. The second is the actual yes.
Three ways to share the result
Post to the group chat
The results already written as plain text, ready to paste into Messenger, Viber or WhatsApp. The preview is shown, not hidden behind the button — you should read what you post. DUPR IDs are never included.
The results board
/s/<id>
Match log, win rates and games played, with an image card when the link is pasted. Turn it on or off from the summary; turning it private breaks the link immediately.
Podiums
Optionally split the standings by level, so each tier gets its own first place rather than one table where the strongest bracket takes every spot.
How standings are ranked
Most wins first, then exact win rate, then strength of schedule. Exact ties share a rank. No win rate can put a 4–1 record above a 3–0 one — the ⓘ on every board explains the ordering to players who ask, and short records are footnoted as provisional against the session average.
Reopening
Ending is not final. Reopen session puts it back to live — useful when a scoreline was wrong, or a last game got played after you thought the morning was over. Archiving is different: it hides an event from your own list while the public link and every player’s record survive untouched.
15
DUPR export
ScoreMaster produces a CSV in DUPR’s match-import format, ready to upload. It downloads rather than uploads: DUPR’s import is a page a club admin signs into, and posting on your behalf would mean holding their credentials.
What DUPR needs from every game
- A DUPR ID for every player in it. One missing ID holds back every game that player was in.
- A real scoreline. DUPR rates on points, so a winner-only game has nothing to send — and that cannot be fixed after the fact.
- A finished match. Queued and in-progress games are not exported.
Where DUPR IDs live
On their account
the authoritative copy
Set by the player, on their own Account screen. Every host they link with picks it up automatically — you cannot lose it and they never have to give it out twice.
In your player book
your copy
For players with no account. Fill them in from Account → Your saved players and every session you export afterwards is already done.
On the session row
a one-off
Typed from Manage, the settle-up table, or inside the export sheet itself. For a linked player this is a local override their own next update wins back.
Export for DUPR
Saturday Morning Open Play · 18 finished games
14 of 18
games are ready to upload. The rest are listed below.
Scoring
Side-out is the traditional rule, where only the serving side can score. Pick whichever you played.
2 players need a DUPR ID
Type it here and their games join the export straight away. It’s saved to your player book, so next week they’re already done.
1 game can’t be exported
1 × no scores recorded
DUPR rates on scorelines, so a game recorded winner-only has nothing to send.
- Open the summary and find “Send results to DUPR”It is host-only and does not appear until at least one game is finished. It never shows on the public board — DUPR IDs belong to the players.
- Pick the scoring typeSide-out (only the serving side scores) or Rally. Pick whichever you actually played.
- Fill in the missing IDsEach named player says how many games they are holding back. Type the ID and watch the ready count climb.
- Download the CSVIt arrives as dupr-<session>-<date>.csv, already in DUPR's template.
- Upload it from DUPR's match import pageSign in there as a club admin and import the file as it is.
Two habits make this a five-second job. Record real scores rather than winner-only, and spend ten minutes once filling DUPR IDs into your saved player book. After that every export comes out clean without touching this sheet.
If an ID does not look like the usual six letters and numbers, the sheet says so before you download and includes it as typed — it is a nudge, not a block.
16
Linking player accounts
A linked player is worth the thirty seconds: their DUPR ID and their own cross-session record follow them into every session you run, and they get a My stats page of their own.
By email
when you know it
In Manage, look the address up. The sheet then shows the account's name and email, so you can be sure you linked the right one of your two Marcos.
By QR
the usual case at a gym
Show the code from Manage. The player, signed in on their own phone, scans it and confirms it is them. The sheet flips to Linked on its own and the code is spent.
Once linked, that person is linked in every future session you host — the link lives on the saved player, not on one night’s row.
The door QR and the link QR are different codes. The door QR (/j/<id>) lets people mark themselves present. The link QR comes out of one player’s Manage sheet and connects that one row to that one account.
17
When something looks wrong
The failures a host actually hits, and what each one is telling you.
| What you see | What it means | What to do |
|---|---|---|
| Generate produces nothing | Not enough players marked present — doubles needs four | Manage on the waiting board: check the here now count, not the list count |
| “Lineups open once you start” | The session is Scheduled, or Stopped | Tap Start session, or Resume session |
| Skill matching ignores levels | Players are unrated, so they go wherever they are needed | Tap a name on the waiting board and set their stars |
| Someone keeps getting the same partner | The room is small, or they are a locked pair | Check the lock list; shuffle (⟳) the suggestion |
| “Can't reach the server” | Offline. Play continues from this device and keeps retrying | Keep the tab open — it syncs itself when the connection returns |
| “Refusing to save this session” | The server answered but rejected the write — usually an orphaned lineup slot | Cancel any lineup holding a removed player; quote the reference shown |
| Amounts owed look wrong mid-session | Split-per-game recalculates after every game | Read them on the summary, once play is done |
| Export says 0 of N ready | No DUPR IDs, or every game is winner-only | Fill IDs in the sheet; record scorelines from now on |
| A player can't check themselves in | They never joined the posting, or self check-in is off | Check them in yourself — Manage on the waiting board |
18
One-page cheat sheet
The whole flow, in the order it happens.
| When | Where | Do this |
|---|---|---|
| Once, ever | Account | Confirm your email; add your photo and your DUPR ID |
| Once, ever | Account → Saved players | Fill in DUPR IDs for your regulars |
| Days ahead | Open Plays → + New Open Play | Name, start time, venue, courts; matching style; court fee |
| Days ahead | Session → Copy posting link | Paste /s/ into the group chat |
| Night before | Session → Check-in QR | Print the /j/ code for the door |
| On arrival | Waiting board → Manage | Approve requests, tap in walk-ins, tag any missing skill levels |
| First serve | Session header | Start session |
| Every rotation | The session screen | Generate all → approve → drop on a free court, which starts it |
| Every game end | Court card | Type both scores, tap the winning side |
| Rain / break | Session header | Stop session, then Resume session |
| Last game | Session header | End session — twice |
| Settling up | Summary | Correct the court fee; tick people off as they pay |
| Posting results | Summary | Copy the chat message, or share the /s/ board |
| Rating games | Summary → Export for DUPR | Fill missing IDs, download, upload to DUPR |
Things worth remembering
- Creating is not starting. Lineups stay closed until you tap Start.
- Registering is not checking in. Only presence gates lineups.
- Adding a player never checks them in, and you are never added to your own session.
- Stop is reversible, End is not — though Reopen exists for when it needed to be.
- Record scores, not just winners, or DUPR and the ladder have nothing to work with.
- Money never leaves your screen. No public page carries a fee or a payment status.
- Private only unlists a session. The live link still works for anyone you send it to.
- Longest wait is the top of the board, and that is not always the same as queue order.
Every screen in this handbook is an illustration built with sample players — Marco, Grace, Jen and the rest are not real people, and the figures are examples, not anyone’s data.