top of page

With the help of ChatGPT, I created custom VBA software in Excel that will generate a high-quality round-robin scheduler. I was dissatisfied with free versions of round-robin schedulers because they did not balance byes and rotation of partners and opponents. 

This scheduler doesn't just randomly create games. It scores thousands of possible combinations using multiple weighted fairness rules, then chooses the schedule that best satisfies those rules.

The Excel scheduler software is not yet available because I need to give it a user-friendly interface. In the interium, I generated schedules for 5-20 players on 4 courts. These schedules can be viewed as a PDF or downloaded to Excel.


Here are the built-in considerations my scheduler currently uses, roughly in order of importance:

  • Balanced byes (highest priority).
    The scheduler always tries to give every player the same number of byes (or as close as mathematically possible).

  • No consecutive byes.
    A player who sits out one game is heavily discouraged from receiving another bye in the next game even though the number of byes is fair.

  • Players returning from a bye are separated.
    Players who were on bye together are tracked, and the scheduler discourages placing them together as partners immediately after they return.

  • Minimize repeat partners.
    The scheduler strongly favors partnerships that have never occurred before. This is the primary fairness metric in the Schedule Balance Report, and the batch evaluation first looks for schedules with zero repeat partners.

  • Minimize repeat opponents.
    After partner repeats are minimized, the scheduler tries to avoid players facing the same opponents repeatedly.

  • Court-by-court team selection.
    When selecting teams, the scheduler doesn't simply take the first four available players. It evaluates many possible team combinations and chooses the one with the lowest weighted "cost" based on partner history, opponent history, and bye-return history.

  • Batch optimization.
    Rather than accepting the first valid schedule, the scheduler generates dozens (or hundreds) of schedules and compares them, allowing me to choose the best overall schedule. It returns one, “Best Schedule” .

  • Fairness analysis.

      Every generated schedule is analyzed for:
        Games played
        Unique partners
        Repeat partners

        Unique opponents
        Repeat opponents
        Total byes

  •   Mathematical feasibility check.

       The analysis reports whether zero partner repeats are mathematically

        possible for the number of players, courts, and games selected. This          helps users understand whether repeats are unavoidable.

Site created July 21, 2024

by Colleen Bird

Last updated June 29, 2026

bottom of page