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.

18 sections~20 min readDoubles & singlesPickleball · badminton · tennis

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

One public page: the live board you put on a TV and paste into the group chat. It never 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.

StateHow it gets thereWhat you can do
ScheduledYou tap Create sessionCheck people in, add courts, edit settings. Lineups are closed.
LiveYou tap Start sessionEverything: generate lineups, start matches, record scores. Clocks run.
StoppedYou tap Stop session — a rain delay, a breakMatch clocks are held and no new lineups can be queued. Tap Resume session and carry on.
EndedYou tap End session, twiceThe 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.

  1. 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.
  2. 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. The password is typed twice, and the eye at the end of each box shows what you typed.
  3. Confirm your emailAsked the first time you start an open play, a tournament or a club: tap Send the link, then the link in your inbox. Playing, checking in and your own record never need it.
  4. 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.app — sign up

Run the queue without chaos

Continue with Google
or
Log inSign up
NameAlex ReyesEmailalex@sunsetpickle.phPassword••••••••••Create account
Sign-up. Google sits above the form because it is the faster door. The Log in / Sign up switch remembers which one sent you here.

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.

Forgot your password?

On the log in form, tap Forgot password? and enter the email you signed up with. We send a link to choose a new one. It works once, for an hour, and only the newest link you asked for. Using it signs you in and signs every other device out. If nothing arrives, check spam and that it is the address on your account — the form says the same thing whether or not an address has one.

Changing your email or password

Both are under Sign-in on your Account screen, and both ask for your current password first. A new email takes effect at once and starts unconfirmed, so a host confirms it once before hosting again. Changing your password keeps you signed in on the device you changed it from and signs the others out.

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.

scoremaster.app — new open play

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.

Session nameSaturday Morning Open Play
DateSat 13 Sep 2026Start time08:00
VenueSunset Sports Hub, Court A–DMaps link (optional)Paste a Google Maps link

Courts

How many courts are running

−4+

Who can see this

PublicPrivate

Listed on the What’s On feed, and the link works for anyone you send it to.

Let people register from the linkAnyone with the link can sign up. They still check in with you on the day.

When someone signs up

They're inI approve
The top of the create form. Public or private is asked outright rather than inferred from whether standings are on. Registration and the posting description only appear on a public session.

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 · in Manage courts

When a game ends, queued lineups go straight out onto the free courts in queue order — Next up first, then Match 2, then Match 3 — each onto the court it was set for, or else a free court it fits. Turn it off to send every lineup out yourself. It lives in Manage courts, beside Active courts, with auto start and court lanes.

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.

scoremaster.app — matching style

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.

Custom groups

You group the levels — say beginners on their own, novices and intermediates together. Games never cross a group; inside one, levels mix evenly.

Four styles. Balanced is the default and the right answer for most clubs. The two skill modes need star ratings on players before they bite.
StyleUse it whenWhat it needs from you
BalancedMixed social play, everyone plays everyoneNothing — it works on wait time and recent partners
Skill separatedLevels vary widely and strong players are steamrollingA star rating on each player
Competitive ladderYou suspect some ratings are wrong and want play to correct themA star rating, plus scores recorded (not winner-only)
Custom groupsBeginners need their own games but the middle of the room can mixA star rating on each player, and the levels grouped — a level can sit in more than one group

What Balanced actually does

It is not a coin toss. In order of priority, it:

  • follows the waiting board in order — the longest waits get the seats in Next up, and nobody further down the board is picked ahead of someone who has waited longer. Games already played don’t count: someone who arrives late joins the back of the queue and plays fewer games, rather than jumping ahead to catch up;
  • mixes only among players whose waits are level to within five minutes — four who came off one court together, or players who sat down a few minutes apart. Inside that tie it keeps people from going straight back on with the players they just played and reaches for new faces;
  • splits tiers evenly across a game rather than stacking a 3–1;
  • puts winners against winners, so a hot pair meets a hot pair;
  • 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.

scoremaster.app — court fee

Court fee

Split per gameFixed / player
Total court fee2400Per player0

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 player
✓ Marco Villanueva★★★★★
✓ Grace Lim★★★★★
Jen Ocampo★★★★★
Paolo Cruz★★★★★
Create session · 12 on the list
Fee and check-in list. The create button counts the people you picked. Star tiers only appear here when you chose a skill matching style.

Split 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.00

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

07

Posting link & check-in QR

Two links that do different jobs and are easy to confuse. Getting them the wrong way round is the most common host mistake, so they sit side by side on the session screen with their own counts.

The live board

/live/<host>/<id>

Goes in the group chat. Courts, queue, podium and standings in your club's colours — on a phone or the TV by the courts. It has no controls; the colours are set from the app. After the session it is the final board: standings, highlights, every match, and a rank-list image anyone can save or share.

The check-in QR

/j/<session id>

Taped to the door on the day. A player who already joined signs in and marks themselves present. It cannot add anyone new, and nobody can check in anybody but themselves — a QR on a wall is not a secret.

scoremaster.app — session · players

2 requests to join

Rowena DiazApproveDecline
Ken SalazarApproveDecline

Live board link

Post it in the group chat — courts, queue and standings

14 joined
scoremaster.app/live/your-club/9f2a-7c41Copy

Check-in QR

Tape this to the door on the day

Self check-in
scoremaster.app/j/9f2a-7c41Copy

9 of 14 here now. Players scan, sign in and mark themselves present — they cannot check anyone else in.

The check-in panel. Requests to join come first when there are any — somebody is standing by for an answer. The two links carry their own counts, so you can tell at a glance which one people are actually using.

A workable rhythm. Post the /live/ link to the group chat when you create the session. Print the /j/ QR the night before. On the day, work the Players sheet (Manage on the waiting board): approve requests, tap in the walk-ins, and let the regulars scan themselves in.

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.

  1. 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.
  2. 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.
  3. Tap Start sessionClocks begin, lineups open, and the session shows as Live now in everyone's feed.
scoremaster.app — session · not started

Saturday Morning Open Play

Sat 13 Sep · 4 courts · doubles

Live linkEditStart session

Not started yet. Check people in and set the courts up now — lineups open when you start play.

Start session

14

On the list

9

Here now

4

Courts

Waiting (9)Avg wait 6m · 0 on courtManage
Scheduled, not live. Note what is not on this screen: no End session, no Stop. The only irreversible control appears once there is something to end.

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 session screen is where you will spend the session: the court cards on top, then the waiting board beside Next up — the one game the app has drawn to go on next.

Three ways a lineup appears

Drawn for you

the one you will use most

In the random queue the app draws the next game by itself, straight into Next up — no approval step. + Generate match draws more (Match 2, 3…) when you want them. Don't like Next up? ↻ Different matchup draws it again: whoever has waited longest keeps their seat, and the other seats and the sides change to avoid the one you waved off.

📺 On the boards

the TV button on Match 2, 3…

The court board and the live link show Next up only — later matches get redrawn as courts free up. Tap a match's TV button to show it under Next up on both boards too; tap again to hide it. To look a matchup over before the room sees it, open ⚙ beside Match history and turn off Show Next up on the boards — then Next up waits for its own TV button as well.

Auto advance

Manage courts, on by default

When a game ends, queued lineups go out on their own in queue order — Next up first, then Match 2, then Match 3 — onto the court each was set for, or any free court it fits — and the next game is drawn once the queue is empty. With court lanes on, a freed court takes the next game that fits it instead. Auto start decides whether its clock starts on arrival or waits for ▶ Start match.

+ Build 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.

How the next game is picked

Every matching style starts the same way: the longest wait goes first — the top of the waiting board is always in the lineup. Balanced goes further and takes the board in order, mixing only among waits that are level to within five minutes. In the other styles the remaining seats go first to whoever isn’t already ahead on games, so people who checked in together finish within a game or two of each other — a late arrival plays fewer and is never rushed up the queue to catch up — and then to people who didn’t just play each other, and haven’t shared a court yet, inside whatever skill rule the style sets. The ⓘ Matching strip above Next up stays closed until you tap it; open, it says how many of Next up’s pairings are first meetings, and lists fresh pairs still waiting — handy when you build a game by hand.

It also watches the ratings. When someone has played four or more games against players at their own level or tougher, won at least three in four of them, and by a clear margin, the closed strip shakes and glows with a suggestion: who, their record, and a Move to ★★★ button that rates them one star up from the next draw. Dismiss leaves their rating alone and it is not suggested again. It is only ever a suggestion — nobody’s stars change unless you tap.

scoremaster.app — session · courts

ⓘ Matching · longest wait first → not who you just played → new pairings → sides split evenly by level

Next up: 5 of 6 pairings are first meetings. Met before: Marco V. & Grace L. (1×)

Haven't played together yet: Ken S. + Bea T. · Rowena D. + Chris A.

Next up

+ Build lineup
⠿ Doubles↻ Different matchup

Marco V. + Jen O.

vs

Grace L. + Paolo C.

→ Court 3Court 1 nextCancel

Drag ⠿ onto a court to send it, or a name onto another name — here or on a court — to swap them. Tap a name to edit that player.

One game drawn at a time. The next lineup goes straight into Next up — no approval step. Send it to a free court, fix a name with ✎, or tap ↻ for a different four; the one after it is drawn the moment this one leaves.

Each fresh pair shows both players’ stars, and only pairs your matching style would actually put together are offered — one level under Skill separated, one group under Custom groups, where the list is sorted into a row per level or group.

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. It is on every name on a court card too, mid-game included: pick anyone waiting, or anyone in a queued lineup — they trade seats, so the player coming off takes that place in the queue.

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 — hover it to see who they are locked with. A lock is always exactly two people, and each player can be in one lock at most; unlock a pair to re-pair them.

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.

  1. 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.
  2. ▶ 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.
  3. 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.
scoremaster.app — court cards
Court 1Live now
14:07❚❚ Pause⇄

Team 1

Marco Villanueva

Jen Ocampo

vs

Team 2

Grace Lim

Paolo Cruz

21–17
Team 1 winsTeam 2 wins
Court 2Assigned

Team 1

Ken Salazar

Rowena Diaz

vs

Team 2

Bea Tolentino

Chris Ang

▶ Start match

Timer begins when you start the match

Court 3Idle

No active match — assign one from the lineup queue.

Court 4Idle

No active match — assign one from the lineup queue.

Four courts, three states. Live, Assigned and Idle each read at a glance from the badge and the border. The winning side is highlighted from the score you typed, so a mis-tap that contradicts its own scoreline is visible before it happens.

Manage courts: auto advance, auto start and court lanes

⚙ Manage courts, beside Active courts, sets how games reach the courts once they are drawn.

Auto advance

When a game finishes, queued lineups fill the free courts in queue order: Next up first, then Match 2, then Match 3. A later match only goes ahead when an earlier one has no court it may take.

Auto start

off by default

Starts the clock the moment auto advance puts a game on court. Off, the card shows Assigned and waits for ▶ Start match — room for the changeover. Sending a lineup to a free court yourself always starts it.

Court lanes

Keep a court for certain star levels — or, under Custom groups, for certain matching groups. When a laned court frees, auto advance only sends a queued lineup that fits it — or one you set for that court — and never another lane's game. Each lane keeps a Next up of its own, drawn from the players who belong on its courts, so there is always one ready. A court with nothing picked takes any game, and the lane shows beside the court's name.

A lane binds auto advance, not you. It only steers auto advance — you can still send any lineup to any court yourself. When nothing queued fits a laned court, it stays free until you send something, so a game from outside its lane only goes on by your hand.

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

Open Match history (beside + Build lineup) and tap ✎ on a game — or do the same on the summary — to correct a score, the winner, or which side a player was on. The editor is laid out like a court card, Team 1 and Team 2 side by side with their players, and the game keeps its place in the list after you save. 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.

next up

They are already in the Next up lineup, so their turn is settled.

Out

Takes them out of the rotation in one tap. They move to the Out list under the board and drop out of matchmaking; Check in there puts them back on the waiting list. It refuses on anyone already in a lineup: swap them out with ✎ first, so one tap on one person never quietly discards a matchup built around three others.

+ Add player in the board’s header puts a name straight onto the waiting list — here and in the rotation, no second step — and lists your saved players for one-tap adds. Manage players opens the full table, with Remove beside each row for anyone who hasn’t played. Tap any name — on the board, in a lineup, or on a court mid-game — to open their player sheet: name, rating, DUPR ID, locked partner, account link.

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.

scoremaster.app — session · players

8

Playing

4

Up next

6

Waiting

2

Resting

Check in several from saved players
Search or add a playerAll skill levels ▾
PlayerDUPRSkillGamesW/LWin%Paid
Marco Villanueva◆K7XQ2M★★★★★86/275%PaidManage
Grace Lim◆P4RB8T★★★★★53/260%UnpaidManage
Jen Ocampo—★★★★★21/150%UnpaidManage
Paolo CruzResting—★★★★★41/325%PaidManage

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.

The roster table. Tap any column header to sort. The ◆ marks a player linked to a ScoreMaster account; tap a Paid badge to toggle it. Sample data.

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.

Out, retired and returning

Out is someone sitting out by choice — they stay on the list and come back the moment you tap Check in. Retired is automatic: they hit the games cap, and show in the Out list too. 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 six numbers you need — matches, players, the average length of a game, who has paid, what is owed and the court fee — and the 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. Under them the leaderboard sits beside the session highlights (the tightest game, the longest streak, the biggest win — the same ones the live link shows once the session ends).

scoremaster.app — session summary

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

PlayerDUPR IDOwedPaid
Bea TolentinoR9WK4D₱360.00Paid
Grace LimP4RB8T₱300.00Unpaid
Jen Ocampo—₱120.00Unpaid
Marco VillanuevaK7XQ2M₱480.00Paid
Settle up. Alphabetical, not by finishing position — finishing order is what you read, a name is what you look up. Paid is a button here and a read-only badge on the result cards below. Sample figures.

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 (on a phone it is under the ⋯ menu at the top right, with Stop session, Live link and Edit 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 live board

/live/<host>/<id>

Once the session ends it is the final board: standings, highlights, an All matches tab, and a Rank list image button that previews the picture and lets anyone share or download it. Unlisting it from the summary only takes it off the feed — the link keeps working.

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.

scoremaster.app — export for DUPR

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-outRally

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.

Jen Ocampoholding back 2 gamesAdd DUPR ID
Chris Angholding back 1 gameAdd DUPR ID

1 game can’t be exported

1 × no scores recorded

DUPR rates on scorelines, so a game recorded winner-only has nothing to send.

Download CSV (14)Done
The export sheet. The count at the top moves while you type — filling in one ID releases every game that player was holding back. Skips you cannot fix are grouped by reason underneath.
  1. 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.
  2. Pick the scoring typeSide-out (only the serving side scores) or Rally. Pick whichever you actually played.
  3. Fill in the missing IDsEach named player says how many games they are holding back. Type the ID and watch the ready count climb.
  4. Download the CSVIt arrives as dupr-<session>-<date>.csv, already in DUPR's template.
  5. 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 every game they play with you lands in the Open plays tab of their own dashboard, with its live link and their record.

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 scans it on their own phone, logs in or signs up, and confirms it is them. The sheet flips to Linked on its own, the code is spent, and the session shows on their dashboard with their place in the queue.

From saved players

no session running

Open the saved player's Manage sheet and tap Show QR to scan. They scan it, log in or sign up, and every session they have played with you goes onto their account — the sheet flips to Linked on its own. Pick from accounts is the other way: it lists people who have already played one of your sessions signed in.

Whichever way you link, it carries the past as well as the future: every session that saved player has played with you goes onto their account, and every later one does too — the link lives on the saved player, not on one session’s row. A link made before this was true shows how many earlier sessions it left behind, with a button that brings them across.

Unlink account is the undo. It asks first, then takes those sessions back off the account’s record. The results themselves never change.

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 seeWhat it meansWhat to do
Generate produces nothingNot enough players marked present — doubles needs fourManage on the waiting board: check the here now count, not the list count
“Lineups open once you start”The session is Scheduled, or StoppedTap Start session, or Resume session
Skill matching ignores levelsPlayers are unrated, so they go wherever they are neededTap a name on the waiting board and set their stars
Someone keeps getting the same partnerThe room is small, or they are a locked pairCheck the lock list; shuffle (⟳) the suggestion
“Can't reach the server”Offline. Play continues from this device and keeps retryingKeep 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 slotCancel any lineup holding a removed player; quote the reference shown
Amounts owed look wrong mid-sessionSplit-per-game recalculates after every gameRead them on the summary, once play is done
Export says 0 of N readyNo DUPR IDs, or every game is winner-onlyFill IDs in the sheet; record scorelines from now on
A player can't check themselves inThey never joined the posting, or self check-in is offCheck them in yourself — Manage on the waiting board

18

One-page cheat sheet

The whole flow, in the order it happens.

WhenWhereDo this
Once, everAccountConfirm your email; add your photo and your DUPR ID
Once, everAccount → Saved playersFill in DUPR IDs for your regulars
Days aheadOpen Plays → + New Open PlayName, start time, venue, courts; matching style; court fee
Days aheadSession → Live board linkPaste /live/ into the group chat
Night beforeSession → Check-in QRPrint the /j/ code for the door
On arrivalWaiting board → ManageApprove requests, tap in walk-ins, tag any missing skill levels
First serveSession headerStart session
Every rotationThe session screenSend Next up to a free court, which starts it — the next one is drawn for you
Every game endCourt cardType both scores, tap the winning side
Rain / breakSession headerStop session, then Resume session
Last gameSession headerEnd session — twice
Settling upSummaryCorrect the court fee; tick people off as they pay
Posting resultsSummaryCopy the chat message, or share the /live/ board
Rating gamesSummary → Export for DUPRFill 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 the name at the top is in every lineup the app draws. Under Balanced the next seats follow the board in order too; only waits level to within five minutes are mixed.

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.