A second opinion for a schedule you already have

Doubles schedule checker

Paste a schedule from any generator, spreadsheet or club organiser. This page recounts every partnership, opposition, game and bye, then hands you the schedule and tallies it actually checked.

Everything runs in this browser. Nothing is uploaded.

One line per round, such as Round 1: A/B vs C/D, E/F vs G/H, or CSV with the six columns named below. Blank lines and lines beginning with # are ignored. Every other line must parse or the check stops.

One name per line or comma-separated. Supply this if somebody might sit out every round. Otherwise names are inferred from the schedule.

Choose only a claim the source actually made. The arithmetic can show that some claims were impossible before any schedule was generated.

What a pass means

A countable claim, with narrow limits

A passing certificate proves that the displayed rows form a physically playable doubles schedule and that the displayed partner, opponent, game and bye counts come from those rows. It also proves a named spread is optimal when its actual spread reaches the displayed arithmetic lower bound.

It does not prove that this is a good schedule for a real evening, that players have comparable skill, that courts are used well, or that no better schedule exists for a metric whose bound remains open.

An imperfect schedule gets a useful audit trail and a certificate of feasibility for its counts. It does not get a general certificate of optimality. Re-running a generator or trusting its search log would not close that gap.

How to check it yourself

Six tallies per game

  1. For each game A/B vs C/D, add one partnership to A/B and C/D.
  2. Add one opposition to A/C, A/D, B/C and B/D.
  3. Mark all four players as playing that round. Reject the schedule if any player appears twice in one round.
  4. Every rostered player not marked in a round has one bye. Scan each player's marks to find consecutive-bye runs.
  5. Compare your tallies with the two matrices and the attendance table.

You can do this with pencil marks, a spreadsheet, or a few loops of your own code. You do not need this page's parser or any schedule generator.

The arithmetic edge

Some promises cannot fit

Each doubles game uses exactly two unordered partnerships and four unordered opponent-pairs. If there are n players, there are n(n-1)/2 possible pairs. A claim that every pair partners once therefore needs exactly that many partnership slots. Fewer cannot cover the pairs, and more cannot use each exactly once.

For any fixed total distributed among integer slots, the smallest possible maximum-minus-minimum spread is 0 when the total divides evenly, and 1 otherwise. When a schedule reaches that bound, its optimality for that one spread follows from counting alone. No search needs to be trusted.

Input contract

What this checker accepts

  • Round text: Round 2: Ana / Bo vs Cy / Dee, Eli / Fran vs Gus / Han.
  • CSV with exactly these headers, in any order: round,court,team1player1,team1player2,team2player1,team2player2.
  • Up to 40 players, 40 rounds and 400 games. Every game is assumed to have two teams of two. Other match sizes are refused.
  • Names are case-sensitive. Commas and the symbols / : + & | are reserved separators and cannot appear in a player name.

Source for the worked control

A schedule transcribed, not generated here

The five-player example is transcribed from Julian D. A. Wiseman, “Individual-pairs tournament design for 5 players”, June 2003. Wiseman states that every pair partners once and opposes twice. The repository verifier recounts those properties from the transcribed rows.

Terminology and existence context: I. Anderson, “A Hundred Years of Whist Tournaments”, Journal of Combinatorial Mathematics and Combinatorial Computing 19 (1995), 129–150.

The checker makes no third-party requests. These are ordinary source links, opened only if you choose them.

Two things the arithmetic settles before any schedule exists

A claim can be impossible before anybody generates anything

With n players, R rounds and c courts of four, each game creates two partnerships, so the whole event creates 2Rc of them, against the n(n − 1)/2 pairs that exist. If 2Rc is smaller than that, then "everyone partners everyone at least once" is not a hard schedule to find. It is not a schedule at all. There is a second bound that is easier to hold in your head: a player gains at most one new partner per round, so at least n − 1 rounds are needed no matter how many courts you own.

That division is worth doing on any claim you are shown. Here is one, checked on 31 August 2026. CourtDraw sells pre-made doubles schedules for 6 to 24 players, at 2.99 US dollars a schedule, and its front page says:

“For pickleball doubles, CourtDraw generates 7 balanced games where every player partners with every other player at least once — across 1 to 6 courts depending on your group size.”

The same page fixes the courts: 8 players is 2 courts, 12 is 3, 24 is 6. Seven games is seven rounds, so the partnerships available are 14c. Run the division across the nineteen player counts they support and it clears exactly one of them.

playerscourtspartnerships available (2 × 7 × c)pairs that existpossible at all?
611415no
822828yes, exactly
1234266no
16456120no
20570190no
24684276no

At 24 players each person plays 7 games and so meets at most 7 partners out of the 23 others. No schedule can do better, theirs included, and none of this depends on anything about their files. The fair part, and it matters: at 8 players the number is exactly 28, the case is tight rather than impossible, and the three games they show free are consistent with a genuine whist tournament: twelve distinct partnerships, no repeats. Elsewhere on the same page the wording is the weaker "partners with every other player fairly", which the arithmetic has nothing to say about. We did not buy a schedule and have not seen their files. The claim checked here is the advertised one, and it is checked with a division.

And "not a whist tournament" often cannot be fixed by moving the courts around

If your schedule already has everyone partnering everyone exactly once, it is tempting to think a whist tournament is one court reassignment away: keep the partnerships, just choose differently which pair faces which. For 8 players there are 3 choices per round and 7 rounds, so 2,187 ways to try.

Build the partnerships the way almost everybody builds them, by the circle method, where one player stays put and the rest rotate. It is partner-perfect: all 28 pairs, once each. Not one of its 2,187 court assignments is a whist tournament. The best any of them manages leaves some pair never opposing anybody and another pair opposing four times. The partner structure itself is in the way, and no amount of court juggling gets you out of it. So read a "not whist" verdict here as a fact about your schedule, not as a to-do: sometimes the honest next step is a different partner schedule entirely, not a better court assignment.

Both numbers on this page were computed here and can be recomputed in a few lines. The nineteen-row division needs no code at all.