The Mixer: live round-robin generator

Live controls during a mix

Shoo in a late arrival, swap players between courts with repeat-aware highlights, view a player's session history, and undo a clear-all, all mid-round.

Once a round is underway, the tools for correcting mistakes, handling late arrivals, and reviewing session history are all within reach without stopping or restarting. They live behind each player's ⋮ menu and, for swapping, on the ⋮ handle itself.

Shoo-in a late arrival

Someone showed up after you already hit Mix. Open their ⋮ menu in the roster and tap 👟 Shoo-in to current game. The player is placed into the sitting-out card for this round so the Mixer knows they exist.

If that creates a situation where four or more players are sitting out and an extra court is free, the Mixer offers three paths:

  • Freeze All + Remix: players have already walked to their courts. This freezes every active court in place and runs a remix that uses the extra court only for the sitting-out group. The players on court stay put; the new court fills from the bench.
  • Remix All: no one has moved yet. Clears frozen state and remixes everyone from scratch, which gives the Mixer the most room to work.
  • Cancel: keep the player sitting out. You can do manual swaps (see below) to put them on court yourself.

If there isn't a free court, the player joins the sit-out card with no dialog and is included in the next round automatically.

With Player self-service on, late arrivals can also add themselves by scanning the big-screen QR. They land on your roster immediately and get a court at the next mix. The same goes for breaks and departures: players request them from their own phones, and the requests fold into the next mix.

Swap players between courts

Two ways to swap, same outcome. Drag: the ⋮ button on every court player and sit-out player is draggable; its title reads "Drag to swap." Drop it onto any other player, whether on a different court or in the sitting-out area. Tap: open a player's ⋮ menu on a court card and choose ↔ Swap... The player gets highlighted; then tap the ⋮ button on whoever you want to swap with. The Mixer completes the exchange immediately.

To cancel, tap the ⋮ of the player you armed (the one wearing the amber ring) a second time and you'll get a "Swap cancelled" confirmation. Pressing Escape does the same thing.

Green highlights: which swap costs you least

Once a swap is armed, by either method, the Mixer scores every player you could swap with and rings the best options in green:

  • Strong green ring: the least painful swap available, the one that adds the fewest repeat partners and repeat opponents.
  • Faint green ring: the next-best group. These never create a new repeat partner; they may repeat an opponent.
  • No ring: a workable swap, just a more repetitive one.

The ranking takes recent repeats more seriously than old ones, and a repeat partner more seriously than a repeat opponent, which is why the two shades split the way they do.

In the first game of a session there's no history yet, so every swap is equally fine and every candidate is ringed strong green. Same when a later round ties: if there's no wrong choice, they all light up. A faint ring only ever appears when something else beat it.

Sit-out players are ranked on repeats only; the rings don't consider who is owed court time.

The rings are only guidance. Any swap you could make before, you can still make.

Repeat warnings when you swap

The confirm box lists the repeats a swap would add (partners again, opponents for the second game in a row, or a court replaying the same game) and the button changes to Swap anyway. Plain opponent repeats aren't listed; on a small roster they're unavoidable. When a different swap would add none of them, the box names it.

If none of the green (fewest-repeats) players are on screen, a Best swap line in the bottom bar points to the nearest one. Tap it to jump there with the swap still armed.

The Swap option appears on court cards and on the sit-out card. It does not appear in the roster list, which is for setting up players rather than placing them on courts.

Undo a clear-all

After Clear all players or Clear all games, an Undo option appears immediately. It lasts only until you add a new player or mix a new game. Use it right away; there's no multi-step history.

Action What Undo restores
Clear all players Full roster (players only; game history is not restored)
Clear all games Game history, current game index, and courts state

Player history

After at least one game has been mixed, open a player's ⋮ menu and choose 📊 History. The dialog shows:

  • Summary: total games played, times sat out, last sit-out game number, and how many games have passed since the last sit-out.
  • Games: each game the player has been on court: game number, court, partner, and both opponents.
  • Partners: every partner with a repeat count and the game numbers where they were paired together.
  • Opponents: same format for opponents.
  • Courts: which court numbers the player has been assigned to and how many times.

History is session-only and resets when you clear games. Use it to spot whether someone keeps landing the same partner or the same court, then fix it with a swap or a pin.

The Pairing Summary

Games Settings has a Session Report section with one button, Pairing Summary: who played with and against whom, and how many times. It reads the mixer's own game history on your device, so it works offline and sends nothing, and it counts played rounds only: a round mixed ahead, or one you stepped past, is left out. The title says how far it reaches, such as "Pairing Summary — after game 12".

The grid has a row and a column per player. Each cell shows two counts, partnered / opposed, shaded darker the more often the two partnered; hover a cell for the game numbers. A dot means the two were never on the same court. Each row ends with GP (games played), Sit (sit-outs), Prt (unique partners), Opp (unique opponents) and, when attendance varied, Rnd (rounds present).

Above the grid, a scorecard: Rounds (with the courts mixed), Players who met, Met as partners and Met as opponents (each as a share of all possible pairs), Courts with a repeat (the same pairing again), Courts with a crossover (roles flipped), Partner repeats and Opponent repeats (with the most for one player), Players who sat out, and Sat out of turn. Every repeat count is beyond the first, so 0 means perfectly mixed, and the pairs that repeated most are listed under the tiles. Once the history limit has trimmed old rounds, a note says "Showing the last N rounds only".

What's next