Skip to content
Sports Free · Private

Fair Rotation / Substitution Tool

Even playing time across periods.

Built and maintained by Paul Clark, Redmoon Software · Last checked

Coaches use this to build a period-by-period substitution grid where playing time stays even. Enter the roster, set how many are on the field per period and how many periods, and each period is filled with the players who have played least so far, breaking ties at random. A per-player minutes summary and CSV export make it easy to show parents the plan is fair.

Enter. List your players and set the number of periods and slots per period.

0 items

Click Build rotation to see a result.

Options
Recent results
  • No history yet.

How it works

  1. Enter. List your players and set the number of periods and slots per period.
  2. Build. Click Build rotation to generate a balanced schedule.
  3. Review. Check each period's lineup and confirm bench time is even.
  4. Rebuild. Build again if you'd like a different fair arrangement.

About the Fair Rotation / Substitution Tool

How the rotation is actually built

This is not a shuffle. For each period the tool sorts every player by how many periods they have already played, fewest first, breaks ties at random, and puts the first n of them on the field. Then it counts those appearances and repeats for the next period.

That greedy rule has a useful guarantee: at the end, no player has played more than one period more than any other. That is the best an even split can do whenever the number of slots does not divide by the number of players — and it usually does not. Five on the field for four periods is twenty slots, which twelve players cannot share evenly however you arrange it.

The random tie-break is what stops the same people always taking the extra period. Among everyone on the same count it is a coin toss, so the surplus rotates across runs rather than settling on the same names.

Read the totals, not just the grid

Under the period grid there is a per-player total. That is the number to check before you commit, and the number to show a parent who asks. It makes the arithmetic visible: if the totals read three, three, three, two, two, then two players are a period short and that is a property of your squad size, not a mistake the tool made.

If the gap is wider than one period, the input is wrong rather than the output — usually a player listed twice, or a name that split on a comma into two entries.

What it deliberately does not model

The rotation is blind to everything except appearance count. It does not know positions, so a period may put five defenders on the field together. It does not know fitness, so it will bring a player straight back on. It does not know that two players cannot be on at the same time, or that your goalkeeper is your goalkeeper.

Those are coaching decisions and the tool leaves them to you deliberately — a rotation that tried to satisfy them would need information it cannot have and would quietly stop being even. Use the grid as the fairness backbone and adjust it by hand where the game requires; the totals tell you exactly what each swap costs.

Nothing carries across matches either. Cumulative minutes over a season is a record you have to keep yourself.

Frequently asked questions

How does the tool keep playing time even?

Before each period it sorts the roster by periods already played and fills the on-field slots from the bottom up, breaking ties randomly. A player only gets extra time once everyone else has caught up.

How can I check the schedule is actually balanced?

Expand "Minutes played per player" under the grid. Because the tool always picks the least-played players first, totals can never differ by more than one period across the roster.

What if I have fewer players than on-field slots?

Everyone simply plays every period. The tool caps each period's lineup at your roster size, so a five-slot setting with four players just fields all four each time.

Can I give stronger players more time?

No — equal time is the point of this tool, and every player is treated identically apart from random tie-breaks. If what you need is position allocation rather than minutes, the Random Sports Position Assigner is the companion tool.

Do the tie-breaks favor anyone?

No. When several players are level on playing time, a random draw decides who fills the remaining slots, so nobody is consistently first off the bench. Click Build rotation again for a different fair arrangement.

Related randomizers

Further reading

Send feedback

Found a bug, want a feature, or just say hi? Send it our way.