Published: 2026-07-27
Even playing time is a counting problem (do the math before you promise it)
"Everyone plays the same amount" is the easiest promise in youth sports to make and, some weeks, a mathematically impossible one to keep. Before you defend your sub schedule to a single parent, multiply two numbers: players on the field, times periods in the game. Whether that total divides evenly by your roster decides how fair the fairest possible rotation can be.
Count the slots before the whistle
Every game has a fixed number of playing slots: the number of players on the field at once, multiplied by the number of periods. Five-a-side across four quarters is twenty slots. Seven-a-side across three periods is twenty-one. Those slots are the entire supply of playing time, and no rotation scheme — clipboard, spreadsheet, or randomizer — can conjure more of them.
Now divide the slots by your roster. Twelve players sharing twenty slots works out to one and two-thirds periods each, and nobody can play two-thirds of a period in a league that subs on the whistle. The honest arithmetic is that eight of your twelve will play two periods and four will play one. That gap is not a scheduling failure; it is a remainder. The only settings where perfectly equal time exists are the ones where the roster divides the slots exactly — the same twelve players across four periods of six-a-side is twenty-four slots, two periods each, no arguments. If your league fixes the format and your roster is what it is, "even" can only ever mean "within one period," and it is worth saying that to the parents before the season, not after the game.
How the rotation tool schedules it
The Fair Rotation / Substitution Tool takes your roster, one player per line, plus two numbers: how many are on the field at once, and how many periods you play. It then builds the grid one period at a time with a simple rule — every period goes to the players who have played the least so far. Before each period it re-ranks the whole roster by periods already played and fills the field from the bottom of that ranking up, breaking ties at random.
That least-played-first rule carries a guarantee worth spelling out: at no point in the schedule can any two players ever be more than one period apart. A player only gets a third period after everyone has had at least two, because until then someone with fewer periods outranks them for the slot. The tool doesn't nudge the schedule toward even and hope — the within-one-period gap is enforced by construction, every build, for any roster size and any settings. When the slots happen to divide evenly, the same rule automatically lands everyone on exactly the same count.
Two edge cases fall out neatly. If you set the on-field count as large as (or larger than) your roster, every player simply plays every period — the tool never invents phantom players to fill slots. And duplicate names are tracked as separate roster lines, so the two Sams on your squad each get their own playing time rather than sharing one.
The short straw is random — and rebuilding redraws it
When there is a remainder, somebody has to take the short side of it. The tool decides who through its random tie-breaks: in period one everyone is tied at zero, so the opening lineup is a pure lottery, and every later tie is settled the same way. No player is systematically first on or last off because of where they sit in your list.
That has a practical consequence: clicking Build rotation again produces a different schedule with a different set of short-straw players. If a draw hands the light shift to the same kid who got it last week, rebuild — you are not overriding the fairness, you are re-rolling within it. The result panel's per-player totals show exactly who landed on which count, and the CSV export gives you a copy for the touchline. It is the same "process, not any one draw" argument made in the batting-order post , and doing the build where players can see it buys the same trust.
Three things it deliberately doesn't schedule
Back-to-back bench stints. The tool balances totals, not spacing. A schedule where a player sits periods one and two and plays three and four is, by the totals, exactly as fair as alternating — so the tool treats them the same, and a long sit can happen. If a draw parks someone on the bench for the whole first half, rebuild until the shape looks right; the totals stay balanced on every rebuild, so you give up nothing by being picky about spacing.
Last week. Each build starts every player at zero. The tool has no memory across games, so the player who drew the short straw on Saturday is not owed anything by next Saturday's build. If you want season-level balance, keep the per-player totals from each game and eyeball the running count — the history panel and CSV export make that a thirty-second job, but the judgment stays yours.
Positions. The grid says who is on the field each period, not where. If your league also expects fair rotation through goalkeeper or the infield, run each period's five names through the Random Sports Position Assigner — and keep genuinely safety-critical spots as a coaching decision, for the reasons the batting-order post walks through. One more boundary worth knowing: the tool thinks in whole periods. If your league allows subs at any stoppage, just tell the tool you play more, shorter "periods" — six sub windows instead of three periods — and the same arithmetic applies at the finer grain.
Do the math, then let the tool take the blame
The order of operations for a defensible sub schedule: multiply on-field by periods, divide by your roster, and say the result out loud — "twenty slots, twelve players, so eight play twice and four play once, and the tool picks which at random." Then paste the roster into the Fair Rotation / Substitution Tool and build the grid in front of the team. It runs entirely in your browser, the schedule is provably within one period of even, and the one unfairness it cannot remove — the remainder — stops being your fault the moment everyone can see the arithmetic. And if what you are dividing is a pile of things rather than a clock, the fair-division post covers how the same remainder problem plays out when you deal items instead of periods.