Count the fixtures before choosing the window
A single round robin gives each unordered pair of entrants one fixture. With n entrants, that produces n × (n − 1) / 2 matches. Six teams therefore need fifteen matches, and every team has five opponents. An odd entrant count creates a rotating bye in each pairing round; a bye does not occupy a court and is not a scored win.
The displayed round number identifies the pairing construction. The placement algorithm does not require all matches from a round to finish together before another round can start. It can place a later pairing into an available earlier gap as long as the actual court, participant and rest conditions allow it. A/B is a label, not a guaranteed home/away, service or chess-color assignment.
Measure rest from the end, not the start
If a match starts at 09:00 and lasts twenty minutes, a ten-minute rest rule means the same participant can start again at 09:30. A new match at 09:20 satisfies court turnover but gives that participant no rest. The checker treats those as separate conditions instead of combining every constraint into a rough slot count.
Choose duration and rest values appropriate to the event. Include expected court changeover inside the uniform duration when that is needed. This planner does not infer medical recovery recommendations, governing-body rest requirements or the likely length of a specific sport. Actual delays can invalidate an otherwise consistent printed plan.
Read necessary bounds separately from a failed search
Court capacity gives one necessary minimum: the complete fixture load must fit across the available courts. A participant who plays several matches also needs all of those durations plus the gaps between them. The larger lower bound is useful for rejecting a clearly too-short window before experimenting with placements. It is not always a sufficient amount of time.
The deterministic earliest-fit order is deliberately bounded for a small browser tool. An unplaced fixture can mean the chosen ordering left an awkward gap, even if a different arrangement would work. Increase the window, change the resource assumptions where appropriate, or inspect manual reservations. Treat an incomplete plan as a draft and review the complete validation JSON before posting an order of play.