Rotations
The rotation engine watches how much time every player has spent in each zone — both in the current game and across the whole season — and suggests swaps that balance things out. You never have to do the maths yourself.
How the algorithm works
Every time the clock ticks, the app tracks which zone each player is in. When the sub timer is due, it ranks all possible field ↔ bench swaps by how much they would improve overall fairness — considering:
- Season zone minutes — time in each zone across all completed games this year
- Current-game minutes — time accrued so far in this game
- Recent arrival pinning — players who only just came on are not immediately swapped back off (pinned for ~3 minutes)
- Player locks — field-locked players never leave; zone-locked players stay in their assigned zone
The algorithm produces a set of swap pairs — typically one or two at a time — targeting the zone where the imbalance is greatest.
The SwapCard
Suggested swaps appear in the dark SwapCard above the field. It has two states:
- Collapsed — shows a sparkle icon (or countdown ring), the number of suggested swaps, and a one-line summary (e.g. Alex→Sam · Jordan→Blake). Tap to expand.
- Expanded — shows each pair in a row with the zone label colour-coded, a Do button per pair, and a Do all N swaps button at the bottom.
After you commit a swap (via Do or Do all), the card collapses automatically and the sub timer resets.

The countdown ring and NOW badge
The SwapCard header includes a circular progress ring that fills as the sub interval counts down. When it reaches zero:
- The ring turns orange and the counter displays NOW with a pulse animation.
- The card gets an orange ring highlight.
- The card expands automatically to show the suggestions.
Player tiles and badges
Each player tile on the field shows:
- Jersey number in a small green circle
- First name and last initial
- Zone label (FWD / H-FWD / CEN / H-BCK / BCK) in small caps at the top
- A zone-minute bar at the bottom — a thin horizontal bar colour-coded by zone showing how much time this player has spent where (blue = back, purple = centre, orange = forward)
When a player is part of a pending swap suggestion:
- A ↓ badge marks the player coming off the field
- A ↑ badge marks the player coming on from the bench
- Both tiles show a pair number so you can match them up

Zone colour coding
Colours are consistent across every zone indicator in the app:
- Orange — Forward / H-Forward
- Purple — Centre
- Blue — Back / H-Back

Player locks
Long-press any player to open the Player actions sheet. Two lock options are available:
- Lock to field — the player is excluded from all rotation suggestions and never leaves the field for the rest of the game.
- Lock to zone — the player can rotate off temporarily (e.g. for water) but the algorithm will always put them back into the same zone. Tap Unlock player to remove the lock.
The fairness score
The quarter-break screen shows a Fairness score from 0 to 100. It measures how evenly zone minutes are spread across the whole squad — 100 is perfectly equal; lower means some kids have had noticeably more or less time in certain positions.
Aim for a high score by the end of the season, not every single game. Individual games often sit lower — that's normal and expected.
The Stats tab shows per-player zone minute breakdowns for the full season.