Beta Release

DoublesMatch3Web

A complete guide to running pickleball, badminton and tennis doubles court rotations β€” player pool management, fair-play allocation, live court tracking, and session history.

Full dashboard view πŸ“Έ
Screenshot: Full dashboard view
A wide screenshot of the main screen with several courts active and a few players on the bench, to give a first-glance overview at the top of the manual.

1. Overview

DoublesMatch3Web (DM3W) helps you run a doubles session β€” badminton, tennis or pickleball β€” for any number of players and courts. It keeps a pool of players, automatically allocates fair doubles matchups onto active courts each round, tracks who has played with whom and how often, and lets you manually override anything the automatic engine produces.

A typical session looks like this:

  1. 1Build or import your player pool, and mark everyone who is present as checked in.
  2. 2Choose your allocation options (fixed partners, mixed/gender/skill-tier doubles, rating balance, etc).
  3. 3Click ⚑ Run Allocation to generate the first round.
  4. 4Play the round, using the round timer (pop it out into its own window with ⏱️ Open Timer) if you like.
  5. 5Click ⚑ Run Allocation again for the next round β€” the engine automatically prioritises anyone who sat out.
  6. 6At the end of the session, use πŸ’Ύ Save Session to export your records.
No installation needed for players Only the person running the session (you) needs to operate the app. Everything is stored locally in the browser, so the same device should be used to run each session unless you export/import your data.

2. Getting Started & Locations

The Location dropdown in the toolbar lets you keep separate player pools and rounds for different venues (for example, two different clubs or courts on different nights) inside the same installation of the app.

Full dashboard view πŸ“Έ
Screenshot: Toolbar with the Location dropdown highlighted
Close-up of the toolbar row, with a box or arrow drawn around the "Location:" dropdown.
Only real venues are ever listed The dropdown lists only the actual venue names found in your player data (sorted alphabetically) β€” there is no "All Locations" / "show everyone" option. This is deliberate: with every location visible and selectable at once, a check-in or court edit could silently mix players from different venues onto the same board. On a brand-new, empty database the dropdown has nothing to show yet; it fills in with real names as soon as you import a file or load the built-in sample roster, and the app automatically selects the first venue found.

Changing location

Selecting a different location from the dropdown will:

  • Ask you to confirm, since it resets the current round board.
  • Optionally offer to back up the current roster and round history as CSV files before continuing.
  • Clear the on-screen courts and round history, and reset each player's "times played" and "last court" counters for the new location.
Before switching locations Always accept the backup offer if you have not already exported your data for the session you are leaving β€” this is the safest way to keep a permanent copy of a completed session's records.

3. Installing as an App

DM3W can be installed like a native app on supported devices, so you (or whoever runs the session) don't need to keep finding it in a browser tab or remember a web address.

Install App button in the header πŸ“Έ
Screenshot: The πŸ“² Install App button in the header
Close-up of the header toolbar showing the Install App button, ideally with the browser's own install confirmation prompt also visible.

Installing on Chrome, Edge or Android

  1. 1Once the app is ready to be installed, a πŸ“² Install App button appears in the header.
  2. 2Click it, then confirm the browser's own install prompt.
  3. 3DM3W now opens from its own icon (desktop, Start Menu, or home screen) in its own window, without the browser's address bar.
Button not showing? The button only appears where the browser actually supports this kind of install (Chrome/Edge on desktop, Chrome on Android), and it disappears once the app is already installed for that browser/device β€” both are expected, not a fault.

iPhone / iPad (Safari)

No install button on iOS Safari doesn't support this kind of programmatic install prompt, so the Install App button never appears there. To add DM3W to your home screen on an iPhone or iPad instead, open the page in Safari, tap the Share icon, then choose Add to Home Screen.

4. Trial & Registration

DM3W includes a free trial so you can evaluate it before registering with a purchased license key.

Trial status badge and registration dialog πŸ“Έ
Screenshot: Trial status badge and the registration dialog
The small trial-status badge in the bottom-right corner, and (if possible) the registration dialog it opens when clicked.

How the trial works

  • A small badge in the bottom-right corner shows your remaining trial uses or days β€” it doesn't block anything on its own while the trial is still active.
  • The trial ends after 15 app launches or 30 days, whichever comes first.
  • Once the trial ends, a registration screen blocks further use until you register.

Registering

  1. 1Click Register on the trial badge (or wait for the registration screen once the trial ends).
  2. 2Enter the email address and license key you were provided when you purchased DM3W.
  3. 3Submit β€” the key is checked securely online, so the device needs an internet connection at this moment.
Only needs to be online once An internet connection is only required at the moment you register. Once verified, registration is remembered on that device/browser, and DM3W works normally offline afterwards β€” the same as it did during the trial.
Don't have a license key yet? Contact wherever you obtained DM3W to purchase one. If you're upgrading from an older DoublesMatch2 installation you already paid for, ask about an upgrade path before buying a new key.

5. Managing the Player Pool

Click πŸ‘₯ Manage Players in the toolbar to open the player roster drawer. This is where you add, edit, check in, and remove players, where the fixed-partner links are set up, and where you import and export your dataset as CSV files.

Full dashboard view πŸ“Έ
Screenshot: The Manage Player Pool drawer, full view
The open roster drawer showing several player rows, with the Import/Export & Filename panel and bulk-action buttons visible at the top.

Adding and editing a player

Use the inline edit row to add a new player or update an existing one. Click ✏️ Edit Profile on a player's row, make your changes, then click πŸ’Ύ Save to commit them.

FieldWhat it does
NameThe player's display name. Used everywhere else in the app to identify them.
SexUsed by the Gender Doubles and Mixed Doubles allocation options.
RatingA numeric skill rating used by "Balance Team Ratings," "High / Low Pairing Split," and the "Skill-Tier Doubles" option (see Allocation Options).
Partner (Fixed Partner)An autocomplete field for locking this player to a fixed doubles partner. See below.
Playing LocationWhich venue/location this player belongs to.
In / Out (attendance)Checkbox marking the player as checked in (present and eligible to be allocated to a court) or checked out (excluded entirely, no bench slot).
BkdA separate "booked" flag, independent of attendance, used for your own bookkeeping/tracking purposes.

Fixed Partners

Typing into the Partner field shows an autocomplete dropdown of existing players. Selecting a partner creates a reciprocal link β€” the other player's own Partner field is automatically updated to point back to this player. Fixed partners are only actually kept together on court when the πŸ”— Use Fixed Partners allocation option is switched on (see Allocation Options).

Reassigning a partner If you change Player A's partner from B to C, Player B's own partner field is automatically cleared so it doesn't keep pointing at A. You don't need to manually tidy up the old link.
Two players with the same name? If your roster has two players who share an exact name (common when the same person plays at more than one venue, or a club simply has two members with the same name), give each one a small distinguishing mark in their Name field β€” for example an extra initial or a trailing * β€” so the Partner autocomplete, and the πŸ”— badge on the court board, can always tell them apart.
Full dashboard view πŸ“Έ
Screenshot: Partner autocomplete dropdown in action
The inline edit row with the Partner field focused and the suggestion dropdown open, showing a few matching names.

Bulk actions

At the top of the drawer, four buttons let you set attendance or booked status for every player currently shown (i.e. matching your active Location filter) at once:

  • All +Bkd / All -Bkd β€” mark everyone as booked / not booked.
  • All +Play / All -Play β€” check everyone in / out.

Managing your dataset: how Import and Export really work

Your data lives in two separate places inside the browser:

  • The Player Pool β€” every player profile, across every location, stored together as one single dataset.
  • The Round History β€” the log of rounds played, which only covers whichever location is currently active (it's cleared out automatically whenever you switch locations β€” see Getting Started & Locations).

Nothing is uploaded anywhere automatically β€” everything stays in this browser's local storage on this device. Exporting and importing CSV files is therefore your only way to back up your data, move it to another device or browser, or clean it up outside the app (e.g. in a spreadsheet).

Import and Export always cover EVERY location at once, not just the one you're viewing The roster CSV holds every player from every location in one file (each row carries its own Playing Location column) β€” exporting always downloads the whole roster, no matter which location is currently selected. Importing is the mirror image of that: it completely replaces the entire player pool, deleting every existing player at every location and rebuilding the roster from scratch out of the file you chose. It is not additive, and it is not limited to the current location. If you manage more than one venue from this installation, always export a full backup first before importing a file that only contains one venue's players β€” otherwise the other venues' players are permanently deleted along with the round history.

The Import/Export & Filename panel

Expand the πŸ—ƒοΈ Import/Export & Filename panel at the top of the drawer to find the three file-action buttons and a Filename field:

  • The Filename field sets the base name used for every file this drawer downloads. It's remembered between visits, and it automatically updates to match whatever file you last imported.
  • Exporting here downloads only the player pool (roster) as <filename>.csv β€” it does not include round history.

Round history is a separate export, produced from two other places in the app instead: the πŸ“₯ Export CSV button in the Round Log History section, and πŸ’Ύ Save Session (see Session Management), which exports both the roster and the current location's round history together in one step.

Importing players

Two import formats are supported, each with its own button:

ButtonFormat
πŸ“₯ Import DM3W's own native CSV format β€” the same layout produced by this app's own πŸ“€ Export button, so it is the easiest way to reload a previously exported roster or move a dataset between devices.
πŸ“₯ Import DoublesMatch2 File The legacy column layout used by the older "DoublesMatch2" spreadsheet tool (PlayingLocation, Name, Sex, Rating, Playing, YesTime, LastCourt, xPlayed, Bkd, SetPartner). The text (No Partner) in the SetPartner column is recognised as "no fixed partner." Use this button only if you're bringing across a roster originally built for DoublesMatch2.

Both import buttons behave the same way once a file is chosen:

  1. 1You're asked to confirm, since this overwrites your entire current player pool and round history.
  2. 2The file is read and every row becomes a player. A row needs at least a name, sex, rating, and attendance value to be accepted β€” badly-formed rows are skipped rather than crashing the import.
  3. 3Fixed-partner links are automatically repaired to be reciprocal: if only one side of a pair's Locked Partner/SetPartner column was filled in, the app fills in the matching player's own link to point back, so both halves of the pair are properly linked (see The Court Board for how this link is shown on court cards).
  4. 4The Location dropdown switches to the first venue found in the file (alphabetically), and the page reloads with the new roster in place.
Editing an exported CSV by hand The importer does a simple comma-split on each row, so if you edit the file in a spreadsheet program, avoid putting a comma inside a player's name or location β€” it will misalign that row's columns. Keep the header row exactly as exported.

Exporting players

Click πŸ“€ Export to download the current entire roster (every location) as a CSV file, using the columns below β€” a full backup of every player's name, sex, rating, attendance state, fixed partner, location and booked flag:

CSV ColumnMeaning
Player NameThe player's display name.
SexAny single character is accepted (not just M/F).
RatingNumeric skill rating.
Is Active1 for checked-in, 0 for checked-out.
Locked PartnerThe fixed partner's exact name, or blank for none.
Playing LocationWhich venue this player belongs to.
BKDYes or No β€” the separate booked flag.
Good habits for managing your dataset Export a full backup regularly, and always before importing a new file, switching locations for the first time in a while, or doing any large bulk edit. Because import fully replaces your data, a recent export is the only way to undo an import mistake.

Deleting a player

Click πŸ—‘οΈ Delete Profile on a player's row to permanently remove them from the pool. Any player whose Partner field points at them is automatically unlinked at the same time, so no other profile is left with a dangling fixed-partner reference. This cannot be undone from within the app β€” export a backup first if you might need the record later.

6. The Court Board

The main grid of court cards is where each round's matchups are displayed and can be adjusted by hand.

Full dashboard view πŸ“Έ
Screenshot: Court grid with several active courts showing matchups
A wide shot of the court cards after a round has been generated, ideally with at least one fixed-partner pairing (πŸ”— badge) visible.

Reading a court card

ElementMeaning
Checkbox / "Use Court N"Whether the court is switched on and available for allocation.
Diff badge (πŸ“Š)Shows how balanced the two teams' combined ratings are on that court, when "Show Court Balance" is enabled.
β˜… rating badgeEach player's skill rating, when "Show Skill Ratings" is enabled.
P: n badgeHow many rounds that player has played so far this session, when "Show Matches Played" is enabled.
Last-court badgeWhich court that player was on in the previous round, when "Show Last Court" is enabled.
πŸ”— badgeAppears between two players who are locked fixed partners and are playing together.
Coloured background/border glow on a slotGender Glow highlighting β€” tints the whole player slot (background, border and a soft shadow), not just the name, as a quick visual cue for each player's sex when enabled. The same toggle also adds a matching coloured accent to names in the Bench Pool.

Auto-sizing active courts

DM3W automatically activates only as many courts as are needed for the number of currently checked-in players (four players per court), and any surplus players remain in the Bench Pool. As you check players in or out in the Manage Player Pool drawer, the number of active courts grows or shrinks live to match β€” you don't need to tick courts on or off yourself in the ordinary course of a session.

Manual override still works You can still tick a court's own checkbox on or off by hand at any time β€” for example, to take a court out of use for maintenance, or force an extra court on early. Your manual choice is respected until the player count changes enough to require another adjustment.

Drag and drop

You can manually adjust who's playing where:

  • Drag a player from one court slot to another to swap them.
  • Drag a bench player onto an empty (or occupied) court slot to bring them into play.
  • Drag a player from a court back onto the Bench Pool sidebar to take them out of the round.

Manual changes are reflected immediately and are taken into account the next time you run an allocation or view the history matrix.

Bench Pool

The sidebar on the right lists every checked-in player who isn't currently placed on a court. A player's name flashes red with a ⚠️ Double Bye label if they have missed two rounds in a row, so you can spot and fix an unfair bench streak at a glance. Double-click any bench player's name to open the "Played With" panel for them.

7. Display Formats

Click πŸ‘οΈ Display Formats in the toolbar to control what's shown on each court card and in the Bench Pool, and to turn on the hover matchup preview.

Full dashboard view πŸ“Έ
Screenshot: Display Formats dropdown open
The open dropdown panel showing all the checkboxes, including the Hover Matchup Preview option at the bottom.
OptionEffect
Show Skill RatingsDisplays each player's β˜… rating badge on court cards and the bench, coloured by their skill level. A Minimal (colour only, no number) sub-option appears underneath once this is ticked β€” see below.
Show Last CourtDisplays which court each player was on in the previous round.
Show Matches PlayedDisplays each player's running "P: n" games-played count.
Gender Glow ✨Tints each player's court slot (background, border and shadow) based on sex, for quick visual scanning, and adds a matching coloured accent to names in the Bench Pool.
Level Glow 🎨The same whole-slot tint as Gender Glow, but by each player's own skill level colour instead of their sex β€” see below.
Court DividerA Hidden / Normal / Bold selector for the line between the two team rows on each court card β€” see below.
Show Court Balance (Diffs) πŸ“ŠShows a rating-difference badge on each court, indicating how evenly matched the two teams are.
Hover Matchup Preview πŸ”ŽHovering a player's name β€” on a court card or in the Bench Pool β€” for about 2 seconds pops up a small tooltip listing who they've already played with, without opening the full Played With panel. On by default; untick here to turn it off.

Minimal Rating Badge

With Show Skill Ratings ticked, a smaller Minimal (colour only, no number) checkbox appears indented beneath it. Turning this on replaces the "β˜…2.54" text badge with a plain small square in that player's skill-level colour β€” a subtler cue for a quick glance across the board without the clutter of printed numbers everywhere. The exact rating is still available: hover over the swatch to see it in a tooltip, the same way it's always printed when this option is off.

Level Glow 🎨

Level Glow tints each player's entire court-card slot β€” and, more subtly, their row in the Bench Pool β€” using their own skill level's colour (the same colour configured in Edit Skill Levels), rather than printing a separate badge. It's the same idea as Gender Glow, just driven by skill level instead of sex, and is meant for a quick at-a-glance read of who's in which level across a whole board of courts.

Gender Glow and Level Glow are mutually exclusive Both tint the same slot background, border and shadow, so only one can be active at a time. Ticking one automatically unticks the other β€” this is expected, not a bug.

Court Divider

Each court card shows two team rows, and by default a line separates them β€” a visual "net." The Court Divider selector controls that line:

  • Hidden β€” no line at all. Useful when you're placing 4 players on a court and telling them to sort out partners themselves, since a visible team split isn't meaningful there.
  • Normal β€” today's existing look (the default; nothing changes until you switch this).
  • Bold β€” a thicker, darker line, for sessions where which two players are actually paired together matters and should stand out.
Fixed partners always turn the divider indigo, regardless of this setting When πŸ”— Use Fixed Partners is on and a locked pair is seated together on either team, the shared divider line turns indigo β€” whichever side of the court they landed on, and even if Court Divider is set to Hidden. That's showing a different fact (these two are a locked pair) than the generic team split, so it always takes priority over this setting.

8. Allocation Options

Click βš™οΈ Options in the toolbar to control how the automatic allocation engine builds each round's matchups. These settings apply the next time you click ⚑ Run Allocation.

Full dashboard view πŸ“Έ
Screenshot: Options (Algorithm Directives) dropdown open
The open Options dropdown panel showing all seven checkboxes and their descriptions, including Skill-Tier Doubles.
OptionDescription
Prioritise Bench PlayersGuarantees bye pool members are assigned to play in the next round.
Balance Team Ratings βš–οΈShuffles court groupings so combined team ratings stay evenly matched.
Force Gender Doubles ⚧Strictly splits pairings into Men's Doubles or Women's Doubles rows.
Force Mixed Doubles πŸ‘«Strictly structures matches as Male + Female pairs across the net as much as possible.
High / Low Pairing SplitPairs top-tier skill players exclusively with lower-rated standby players.
Skill-Tier Doubles 🎯Groups players together by rating wherever possible, only mixing levels when a tier can't fill a court on its own. Tiers are your own editable skill levels (see below), not a fixed set of bands. Mixing a thin tier with its nearest neighbour is expected whenever that tier's headcount this round isn't an exact multiple of four β€” the few players left over are matched with whichever tier is closest rather than sitting out.
Use Fixed Partners πŸ”—Strictly locks pre-assigned doubles partnerships together regardless of other engine rules.
Four options are mutually exclusive Force Gender Doubles, Force Mixed Doubles, Skill-Tier Doubles and High / Low Pairing Split each drive court selection or team arrangement in a fundamentally different, incompatible way, so only one can be switched on at a time. Turning one of the four on automatically switches the other three off β€” this is expected, not a bug. Use Fixed Partners and Balance Team Ratings are not part of this group and can be combined freely with whichever of the four you choose.
Combining Use Fixed Partners with a grouping option "Use Fixed Partners" together with, say, "Force Mixed Doubles" or "Skill-Tier Doubles" will try to keep a locked pair together on the same court as well as satisfying the other rule. If a combination can't be fully satisfied for a given round (for example, not enough players of one sex are checked in), the engine relaxes the least critical rule to still produce full courts wherever possible β€” occasionally that means one half of a pair plays without their partner for that round rather than the whole pair sitting out.
Fixed Partners + Skill-Tier Doubles: the lower-rated half follows the higher-rated half When both options are on and a locked pair's two ratings fall into different skill levels, the pair is always grouped by the higher-rated half's level β€” the lower-rated half simply plays up at their partner's level, every round, whatever the size of the gap. Their own rating and rating badge are unaffected everywhere else in the app; only this one grouping decision treats them as belonging to the partner's level. A pair whose link isn't confirmed that round (one half checked out, or the Partner field only set on one side) is unaffected and uses its own true level as normal.

Editing Skill Levels

Next to the Skill-Tier Doubles checkbox is an ✏️ Edit Levels link showing how many levels are currently defined. Click it to open the level editor.

Each level is a row with four parts: a colour swatch (used for that level's rating-badge colour throughout the app), a name you can type freely, a floor rating (the lowest rating, inclusive, that belongs to this level), and a live count of how many of this session's currently-active players (within the current location filter, if one is set) fall into that level right now. Levels must be entered lowest floor to highest, starting at 0 β€” the app runs each player's rating down the list and places them in the highest level whose floor they meet or exceed. The count updates as you type, so you can see straight away whether a floor change has emptied one level into its neighbour or split a crowded one apart.

Use βž• Add Level to insert another row (up to 8 levels total), or the πŸ—‘οΈ icon to remove one (down to a minimum of 2). Reset to Default restores the app's built-in five-level starting point (Beginner / Novice / Intermediate / Advanced / Pro at 0 / 2 / 3 / 4 / 5). Changes only take effect once you click Save β€” closing with Cancel or βœ• discards them. Your levels are saved on this device and are used both by Skill-Tier Doubles allocation and by the colour of every player's rating badge elsewhere in the app.

Tip: splitting a crowded band If one level ends up with far more players than the others, consider splitting it into two narrower levels (e.g. a wide "2.0–2.99" band split into "2.0–2.49" and "2.5–2.99"). This gives the stronger half of that group a tighter, more evenly-matched game instead of being lumped in with players a full point lower.

9. Generating a Round

  1. 1Make sure everyone present is checked in via the Manage Player Pool drawer.
  2. 2Set your allocation options as described above.
  3. 3Click ⚑ Run Allocation.

The engine fills every active court, updates each player's games-played and last-court figures, and logs the round into the Round Log History and History Matrix sections below. Anyone left over becomes the new Bench Pool for that round.

You can run allocations again at any time to generate the next round β€” the engine automatically takes bench history into account (especially with "Prioritise Bench Players" enabled) so the same players aren't left out repeatedly.

Accidental repeat-click warning If you click ⚑ Run Allocation again within 5 minutes of the last round being generated, a confirmation dialog appears first, showing how long ago that round ran. This catches the common mix-up where someone double-clicks, or clicks again because they're not sure the first click registered β€” every click generates a real, permanent round and bumps every seated player's games-played count, so an accidental repeat would otherwise count people as having played an extra game they didn't. Click Cancel to stop without changing anything, or OK to proceed if you genuinely did mean to generate another round so soon.

Undoing a round

Click ↩️ Undo Last Round next to ⚑ Run Allocation to reverse the most recently generated round: every involved player's games-played count and last-court badge is rolled back, and the court board is restored to how it looked before that round ran.

Undo only goes back one round Undo is limited to the single most recent round, as a quick fix for "that last run was a mistake," not a full history scrubber. Once you've undone a round, the ↩️ Undo Last Round button is disabled again until you generate a new round β€” it won't let you keep stepping back further into earlier rounds.

10. "Played With" Panel

Double-click any player's name β€” on a court card or in the Bench Pool β€” to open the Played With panel. It shows:

  • Which round numbers that player has appeared in so far this session.
  • An Already Matched column β€” every other checked-in player they've shared a court with, and how many times.
  • A Not Yet Matched column β€” everyone they haven't played with yet.

This is useful for manually steering variety, or for spotting when two players have (or haven't) played together enough over the course of a session.

Full dashboard view πŸ“Έ
Screenshot: Played With panel open
The right-hand drawer open for a player with several names in both the Already Matched and Not Yet Matched columns, showing the scrollbar with a longer player list.
Quicker alternative: hover instead of double-clicking With Hover Matchup Preview switched on (see Display Formats β€” it's on by default), just hovering a player's name for about 2 seconds shows a small tooltip with their Already Matched list, without opening this full panel. It only shows who they've played with, not the Not Yet Matched list.

11. Round History Matrix

The πŸ“Š Players Games & Court History Matrix section at the bottom of the page shows a full grid: one row per checked-in player, one column per round played, with the court number they were on (or a red βœ– if they missed that round), plus a running Missed count per player.

Click πŸ”„ Refresh to reload the matrix β€” useful after you make manual drag-and-drop changes, since the matrix does not always update itself live.

Full dashboard view πŸ“Έ
Screenshot: Round History Matrix table
The scrollable history table with several rounds' worth of columns, showing a mix of court numbers and red "missed" marks.

12. Round Log History

The πŸ“œ Chronological Round Log History section lists every round generated this session, with the exact matchups per court. Click πŸ“₯ Export CSV to download the complete round-by-round log as a spreadsheet for your own records.

This round-history export is separate from the Manage Player Pool drawer, which only ever exports the player pool (roster), not round history (see Managing the Player Pool). The same round-history data is also included automatically whenever you use πŸ’Ύ Save Session or back up before switching locations (see Session Management), if a round history exists for the current location.

13. Countdown Timer

The round timer lives in its own separate window, not in the main dashboard β€” this means it can be dragged onto a different monitor (handy for a second screen the players can see) and keeps running on its own, independently of whatever you're doing on the dashboard.

  1. 1Click ⏱️ Open Timer in the header to open the timer window.
  2. 2Clicking the same button again while the timer window is already open simply brings it back into focus β€” it will not reset or reload an in-progress countdown.

Inside the timer window:

  • Edit the minutes/seconds fields directly to set a custom duration (defaults to 15 minutes). These fields are locked while the timer is actively running or paused mid-count.
  • Click ▢️ Start to begin the countdown; it becomes ⏸️ Pause while running.
  • Click πŸ”„ Reset to return to the last duration you set.
  • When the timer reaches zero, an alarm sound plays. Click πŸ“‚ Browse... in the timer window to upload your own .wav sound file instead of the default beep, or πŸ—‘οΈ Reset to Default to remove a custom sound. This replaces the default beep, or your own uploaded sound file β€” the alarm sound setting lives in this window now, not in Display Formats.
Closing the timer window If you try to close the timer window while a countdown is actively running or paused mid-count, your browser will ask you to confirm β€” closing it loses that countdown entirely, since nothing about it is saved anywhere.
If you close the main dashboard first Closing the main dashboard tab/window doesn't automatically close the timer. Instead, the timer window notices and β€” if a countdown is actively running β€” asks whether to keep it running on its own or close it too. If nothing was running, it simply closes itself quietly along with the dashboard.

14. Session Management

ButtonWhat it does
πŸ’Ύ Save Session Confirms with you, then exports both the current (all-location) roster and the current location's round history as CSV files in one step β€” the recommended way to end a session cleanly.
πŸ”„ Reset Session Confirms with you, then clears every player's games-played and last-court figures and wipes the round history β€” use this to start a completely fresh session with the same roster. This affects the whole player pool (every location), not just the currently-selected one.
Closing the browser tab DM3W will warn you before closing or navigating away from the page if you haven't yet saved/exported your session, to help avoid losing a night's records.

15. Tips & Troubleshooting

  • A player's fixed partner didn't update, or the πŸ”— badge isn't showing? Open Manage Player Pool and re-save the Partner field on either player β€” this forces the reciprocal link to be written on both records. If two players share the exact same name, give one of them a small distinguishing mark (see Managing the Player Pool) so the app can always tell them apart.
  • Can't find "All Locations" in the Location dropdown anymore? That option has been removed on purpose (see Getting Started & Locations) β€” pick the specific venue you want to work with instead.
  • Courts aren't turning on as I check players in? Auto-sizing only activates courts up to the number needed for the currently checked-in count at four players per court; if you need more courts active than the current headcount justifies, tick them on manually.
  • The history matrix looks out of date after a manual drag-and-drop change? Click the πŸ”„ Refresh button in that section.
  • Switching locations wiped my round history? This is expected β€” each location keeps its own independent round history. Always accept the backup prompt before switching if you want to keep a copy.
  • Importing a file wiped out players from a different venue? Also expected β€” Import always replaces the entire player pool across every location, not just the current one (see Managing the Player Pool). Always export a full backup first.
  • Importing a DoublesMatch2 file didn't bring across partners correctly? Make sure the SetPartner column uses (No Partner) exactly for players without a fixed partner, and that partner names match another row's Name column exactly (including spelling and capitalisation).
  • Losing data between sessions? DM3W stores everything locally in your browser. Using a different browser, device, or a private/incognito window will not show your existing data. Export regularly, especially with πŸ’Ύ Save Session.
  • No Install App button? It only appears on Chrome/Edge desktop or Chrome on Android, and only before the app is already installed. On an iPhone or iPad, use Safari's own Share β†’ Add to Home Screen instead (see Installing as an App).
  • Registration won't go through? Double-check the email and license key are typed exactly as provided, and make sure the device is online β€” the key is verified securely over the internet (see Trial & Registration).