
Pickle Pal Scorekeeper System
TM
know the score
...and more
With the help of ChatGPT, I created custom VBA software in Excel that generates a high-quality round-robin scheduler. I was dissatisfied with free versions of round-robin schedule creators because they did not balance byes and rotation of partners and opponents. Although the Excel scheduler program is not ready for prime-time, below are images of quality round-robin schedules. The excel file containing these schedules can be downloaded and edited. To see how the internal logic is weighted when these schedules got created, continue reading... 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. 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 This gives objective measurements instead of relying on intuition. •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.
![]() No repeat partners. Each player has 1 bye. | ![]() Each player has 1 repeat partner and 3 byes. |
|---|---|
![]() Most players have 1 repeat partner and 5 byes.Player 1 has 6 byes. Player 5 has 2 repeat partners. | ![]() No repeat partners and no byes. |
![]() Most players have 6 repeat partners and most have 2 byes.Players 4&6 have 7 repeat partners and 1 bye. | ![]() Most players have 4 repeat partners. All have 3 byes.Players 3&9 have 3 repeat partners. |
![]() No repeat partners. Each player has 3 byes. | ![]() No repeat partners. No byes. |
![]() No repeat partners. Each player has 1 bye. | ![]() No repeat partners. Most players have 2 byes.Players 2&9 have 1 bye. |
![]() No repeat partners. Many players have 2 byes.Players 1,4,7,9,13 & 15 have 3 byes. | ![]() No repeat partners and no byes. |
![]() No repeat partners. Most players have 1 bye.Players 3 & 15 have 0 byes. | ![]() No repeat partners. Each player has 1 bye. |
![]() No repeat partners. Most players have 2 byes.Players 1,2,3,12,15,17 & 18 have 3 byes. | ![]() No repeat partners. Each player has 2 byes. |















