Transparent scheduling

The Fairness Receipt

“Fair” is not a magic label. Every generated round should be able to answer who played, who sat, what repeated, and why.

DinkFair’s order: valid unique assignment; games within one when feasible; no avoidable consecutive bye; fewest repeated partners found; then fewest repeated opponents found.

Hard constraints

Hard constraints protect the session’s basic integrity. Each active player appears exactly once in the round—as one of four players on a court or on the bye list. Games stay within one when the history and active roster permit. A player who sat last round gets priority among players with the same game count.

Soft preferences

Partner and opponent variety are optimization goals, not impossible promises. The deterministic search scores past partner encounters first. Among low-partner-cost options, it scores prior opposing encounters. Nonzero cost is shown, never disguised.

Example receipt

  • ✓ Every player accounted for
    Nine active players appear across two courts and one bye.
  • ✓ Games stay within one
    The most- and least-used players differ by one game.
  • ✓ Avoid consecutive byes
    The previous bye player was given a playing spot.
  • ! Minimize repeated partners
    One prior partnership encounter was necessary after six completed rounds.
  • ✓ Minimize repeated opponents
    No opposing pair in the selected court assignment had met before.

Player ledger and matrix

The player ledger shows total games, byes, repeat partner assignments, repeat opponent assignments, and consecutive-bye status. The matrix counts pair relationships across immutable completed rounds. This lets an organizer inspect the evidence instead of trusting a single score.

Reproducible seeds

The same roster identifiers, prior completed rounds, court labels and seed produce the same round. The seed is printed in organizer exports so a disputed fixture can be reproduced.

Generate a receipt

Fairness at the courtside

Keep accepted rounds and receipts on iPhone.

iPhone release in preparation