In this guide
- Why the same teams get the bad slots
- Step 1 — define early, late and off-limits
- Step 2 — set a fairness target
- Step 3 — build, then count every team's slots
- Step 4 — swap times, not opponents
- Worked example — counts before and after the swaps
- Step 5 — let clubs check, then publish
- How Play 2 Earn Sports supports this
- Frequently asked questions
- Related guides
The question league organizers ask: "Our under-11 hockey team has had the 7 a.m. ice four Saturdays in a row, and the same two basketball teams always get the 8:30 p.m. court. Parents have started counting. How do I make game times fair across a season?"
Why the same teams get the bad slots
- Time slots are assigned without a fairness check. Even a valid schedule can give one team more early or late starts if nobody counts them in the draft.
- Constraints push the same teams around. A team with lots of unavailable dates, or a club that only holds early ice, keeps getting what's left.
- Time slots may go uncounted. A home-and-away check does not tell you whether early and late starts are shared fairly.
- "Fair" is never defined. Without a written target, every complaint becomes an argument.
Step 1 — define early, late and off-limits
Write it per age group, because a 7 a.m. game means something different at under-9 and under-18:
- Early: for example, the first slot of the day, or any start before 8:30 a.m.
- Late: for example, the last slot of the day, or any start after 8 p.m. on a school night.
- Off-limits: times a division never plays at all. Set these as hard limits, not as "try to avoid".
Step 2 — set a fairness target
Do the arithmetic before you build. Illustrative numbers, not a specific league: eight teams, seven rounds, one early game a round. That's seven early games, or fourteen early appearances, shared by eight teams: 1.75 each.
So a fair target is: every team gets one or two early games, nobody gets three, and nobody gets the early slot two weeks running. Do the same for late slots. Publish the target with the league rules so families know what fair means before the season starts.
Step 3 — build, then count every team's slots
After the draft is built, make a simple count. One row per team, one column each for early, middle and late. In a spreadsheet, a pivot table or a COUNTIFS formula on the team and start-time columns does this.
Then look for:
- Any team above the target.
- Any team in the same extreme slot two or more weeks in a row.
- The youngest teams in the latest slots.
- Teams that travel the furthest in the earliest slots.
Step 4 — swap times, not opponents
The easiest fix keeps the pairings and changes only the times. In the same round, at the same venue, swap the early game with a middle game. The opponents and the home and away split don't change.
After each swap, check again: no field, rink, court or diamond booked twice, no team playing two games at once, and unavailable dates still respected. Then re-run the count.
Illustrative example, not a specific league.
Imagine a league draft where one under-11 team has five 7 a.m. games and another has none. A time-slot count would reveal the gap before publication; the scheduler could then test swaps that preserve venue, availability and rest constraints.
Worked example — counts before and after the swaps
Illustrative example, not a specific league.
An under-11 hockey division has 6 teams (A to F) and one rink on Saturdays, with starts at 7:00 (early), 8:15 (middle) and 9:30 (late). A single round robin is 5 rounds of 3 games. Each round has one early game, so the season has 5 early games, or 10 early appearances, shared by 6 teams: 1.67 each. The target: one or two early games each, one or two late games each, and no early game two weeks running. The same count works for fields, courts and diamonds.
The first draft put Team F's game at 7:00 every round. After re-ordering the times in rounds 1, 3 and 5 (same rink, same opponents, same home and away), the grid is:
| Round | 7:00 | 8:15 | 9:30 | Times changed? |
|---|---|---|---|---|
| 1 | C vs D | F vs A | B vs E | Yes |
| 2 | F vs B | C vs A | D vs E | No |
| 3 | E vs A | D vs B | F vs C | Yes |
| 4 | F vs D | E vs C | A vs B | No |
| 5 | B vs C | F vs E | A vs D | Yes |
The count, before and after:
| Team | Early before | Middle before | Late before | Early after | Middle after | Late after |
|---|---|---|---|---|---|---|
| A | 1 | 2 | 2 | 1 | 2 | 2 |
| B | 1 | 2 | 2 | 2 | 1 | 2 |
| C | 1 | 2 | 2 | 2 | 2 | 1 |
| D | 1 | 2 | 2 | 2 | 1 | 2 |
| E | 1 | 2 | 2 | 1 | 2 | 2 |
| F | 5 | 0 | 0 | 2 | 2 | 1 |
| Total | 10 | 10 | 10 | 10 | 10 | 10 |
Every team still plays 5 games, and each column still totals 10, which is a quick way to catch a counting error. Team F drops from 5 early games to 2, and no team is early two weeks running. Two teams (A and E) now have late games in back-to-back rounds; the league can accept that and tell those clubs, or swap again and re-count.
Step 5 — let clubs check, then publish
Send the draft and the count table to each club's scheduler for a short review of their own teams. Seeing the numbers for every team lets a club check fairness for itself instead of arguing from one bad weekend. Publish once, and publish the count with it if your league wants to show its working. If you move games later, update the count after each move, because a rainout make-up placed in a 7:00 slot can undo a balanced season.
Checklist: fair game times
- Early, late and off-limits defined per age group, in writing.
- Fair share worked out: early games × 2 ÷ teams.
- Target published with the league rules before the build.
- Count table built for every team after the draft (early, middle, late).
- Column totals checked against games × 2.
- Swaps made within a round, at the same venue, then clashes re-checked.
- Count updated after every mid-season move.
Common mistakes
- Fixing complaints one at a time. Moving the loudest team's game can push the early slot onto a quieter team. Count everyone.
- Swapping opponents instead of times. Changing pairings can break the round robin and the home and away split.
- Counting early games but not late ones. A team can meet the early target and still carry every 9:30 game.
- Forgetting make-ups. Moved games count too; update the table each time.
How Play 2 Earn Sports supports this
- League time limits. The league can set allowed days and the earliest and latest game times, so off-limits times are never used.
- Team preferences. Clubs can set each team's preferred home and away days, kickoff window, rest time, spacing and maximum home or away streak, and the scheduler weighs those when it picks times. These are soft preferences, so the draft can still miss one.
- Early and late is still a count you do. The scheduler does not rotate early and late slots, and when two times score the same it picks the earlier one. Count every team's early and late games after each draft.
- Clash checks when you move a game. When the league moves a game to a new time or field, the system checks field, team, blackout and season clashes before it saves.
- Home and away balance and field and team double-booking flags are built into league auto-scheduling.
See a season draft built from your league's time limits.
Frequently asked questions
Define early and late for each age group, set a written target such as "one or two early games each, never two weeks running", count every team's slots in the draft and swap times within a round before publishing.
Divide the early appearances by the number of teams. Eight teams with one early game in each of seven rounds share fourteen early appearances, so one or two each is fair.
Swap the time of its game with another game in the same round at the same venue. The opponents and home and away stay the same. Re-check clashes and the count after each swap.
It can make sense, especially where your age rules set bedtimes or curfews. Set an earliest and latest time for each age group as a hard limit, then share the early and late slots fairly inside those limits.
No. The league can set allowed days and earliest and latest times, clubs can set team preferences like kickoff windows and rest time, and the scheduler weighs those as soft preferences. It does not rotate early and late slots, so count them after each draft.
Starter is free for clubs with up to 10 teams. Pro is $49.67 USD a month for 11 to 25 teams. Unlimited is $99.67 USD a month for 26 or more teams. For leagues, Starter is free for up to 10 clubs, League Pro is $97.85 USD a month for 11 to 25 clubs, and League Unlimited is $196.35 USD a month for 26 or more clubs. Every feature is on every plan, and players and parents are always included. See pricing.
Related guides
- League scheduling guides: every league scheduling guide in one place.
- Sports league scheduling software
- League schedule maker
- Round robin generator
- Pricing
