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

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.

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

ScoreMaster

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.

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

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.

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.

By court

Each court runs its own rotation from the players assigned to it.

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 games played 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)
By courtCourts are pre-sold, or club teams own a court for the morningAssigning 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.

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 posting

/s/<session id>

Goes in the group chat days ahead. People read the venue and start time and — if registration is on — sign up on it. After the session it becomes the public results board.

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.

The live board

/live/<host>/<id>

Courts, queue, podium and standings in your club's colours, for the TV by the courts. It has no controls — the colours are set from the app.

scoremaster.app — session · players

2 requests to join

Rowena DiazApproveDecline
Ken SalazarApproveDecline

The posting

Share it days ahead — people read it and sign up

14 joined
scoremaster.app/s/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 /s/ 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 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.

scoremaster.app — session · courts

6

Waiting

8

Playing

2

Idle

Lineup queue · 3

⟳ Generate all+ New lineup

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.

Next upDoubles

Marco V. + Jen O.

vs

Grace L. + Paolo C.

Court 3Court 4✎ Edit
QueuedDoubles

Ken S. + Rowena D.

vs

Bea T. + Chris A.

Court 3Court 4✎ Edit
✓ Approve all (2)Discard all1 with recent pairings
Suggested

Ana R. + Miguel F.

vs

Tin P. + Jomar B.

Suggested

Sam O. + Kaye M.

vs

Dennis U. + Faith L.

Sam & Kaye played together 2 games ago

Queue above, suggestions below. Approved lineups keep the top of the list; proposals wait underneath in dashed blue with per-card approve (✓), shuffle (⟳) and discard (✕). The recent-pairing flag is advisory — it never blocks a lineup, and it never appears on the court cards.

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

  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

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

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.

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 VillanuevaK7XQ2M★★★★86/275%PaidManage
Grace LimP4RB8T★★★★★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.

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.

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

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 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 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 → Copy posting linkPaste /s/ 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 screenGenerate all → approve → drop on a free court, which starts it
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 /s/ 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 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.