Rotations

The rotation engine watches how much time every player has spent in each position, 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 rotations are applied depends on your sport. Football teams rotate continuously: the app prompts a swap each time the sub timer fires. Netball teams rotate at quarter breaks: the app suggests a fresh lineup at every break, with optional mid-quarter subs if you'd rather not wait. The fairness algorithm is the same — only the moment of action differs.

How the algorithm works

Whenever the app needs to suggest a lineup, it ranks all possible placements by how much they would improve overall fairness, considering:

  • Season position minutes: time in each position area 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 (football only — pinned for ~3 minutes during rolling subs)
  • Player locks: always-on locked players never leave; position-locked players stay in their assigned position
  • Player chips: optional coloured tags that either spread chip-mates across zones (mix older with younger) or keep them together (a kid who needs to stay paired with familiar teammates). See the Squads help page for setup.

The result is a small set of swap pairs (usually one or two at a time during football's rolling subs) or a complete next-quarter lineup (for netball at the break).

The SwapCard (rolling subs)

On football's rolling-sub model, suggested swaps appear in the dark SwapCard above the playing area. 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 position 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 SwapCard expanded showing two swap pairs with position labels, Do buttons, and a Do all 2 swaps button
The SwapCard expanded. Position labels are colour-coded — see the colour key below.

The countdown ring and NOW badge

On rolling subs, 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.
💡
You can make a swap at any time, not just when the timer fires. Tapping any on-area + bench player pair opens the confirmation dialog and resets the timer on commit.

Quarter-break rotation (netball)

For netball, the rotation engine runs at the break instead. When a quarter ends, the app shows a Set positions for Q{n} screen with the suggested next lineup already in place. The reshuffle is weighted by who's played least, who hasn't had a turn at their preferred position, and the rules of play (which positions each player can enter). Tap two players to swap them, or accept the suggestion and start the quarter.

Netball teams that prefer to sub mid-quarter can do that too — the app supports both models.

Rotations in rugby league

Junior rugby league has FOUR distinct rotation mechanics that all ride on the same live-game UI. Siren enforces each one so the coach can't accidentally break a law.

Player rotation

Rolling subs, same model as football. Tap a player on the field then tap a bench player to swap them. The fairness engine surfaces a suggestion when the sub interval ticks down.

Vested-role rotation (FR / DH)

Junior Laws §12: the First Receiver wears a yellow vest at U8+; the Dummy Half wears a pink vest at U9+. Both must rotate each period and no player wears the same vest twice in a game. The vest card surfaces at the start of each period and disables players who've already had a turn. An Replace affordance covers the laws' injury carve-out (the vest can pass to a replacement for the rest of that period only).

Goal-kick rotation

Junior Laws §15: once a player has kicked at goal, they can't kick again until everyone on the field at the time has had a turn. After a try, the conversion dialog disables players who've already kicked this cycle and resets the rotation once everyone's had a turn. A boot badge sits on each on-field tile so you can see who's already kicked at a glance, even before opening the dialog. The Force toggle covers the fouled-in-act-of-scoring carve-out.

Kickoff rotation

Junior Laws §16: at the start of each period, every player on the squad must have kicked off at least once before anyone takes a second turn. The kickoff prompt surfaces at the start of each period and disables players who've already had a turn this game. A small "K" chip on the player tile marks anyone who's kicked off so far.

Unbroken-period coverage

Junior Laws §6: every player must play at least two unbroken quarters (U6–U9) or one unbroken half (U10–U12). "Unbroken" means on the field continuously from period kickoff to hooter — no swaps off. The live screen surfaces an at-risk panel with two buckets: players still owed an unbroken period, and players currently on track this period — don't sub off. The post-game stats highlight any shortfalls so you can plan next week's rotations accordingly.

Player tiles and badges

Each player tile shows:

  • Jersey number in a small chip (football only — netball squads typically don't use them)
  • First name and last initial
  • Position label at the top (e.g. FWD / CEN / BCK for football, GS / GA / WA / C / WD / GD / GK for netball)
  • A time bar at the bottom: a thin horizontal bar colour-coded by area showing how much time this player has spent where

When a player is part of a pending swap suggestion (rolling subs):

  • A badge marks the player coming off
  • A badge marks the player coming on from the bench
  • Both tiles show a pair number so you can match them up
A player tile showing jersey number, name, position label, up/down badges, and a time bar at the bottom
Player tile anatomy: number (where used), position label, swap badges, and time bar.

Position colour coding

Colours are consistent across every position indicator in the app. The exact palette differs by sport (each is tuned to the sport's identity), but within a sport the same colour means the same position area everywhere — the live tile, the time bar, the stats cards.

Time bars on several player tiles showing the per-position colour coding
Time bars use the same colours across the playing area and the Stats tab.

Player locks

Long-press any player to open the Player actions sheet. Lock options are available there:

  • Always-on lock: the player is excluded from rotation suggestions and never leaves the playing area for the rest of the game (football's "lock to field").
  • Position lock: the player can rotate off temporarily but the algorithm always returns them to the same position. For netball this presents as "Keep at position next break".
ℹ️
Locked players are pinned in the quarter-break reshuffle too. The algorithm keeps them in their assigned position.

The fairness score

The quarter-break screen shows a Fairness score from 0 to 100. It measures how evenly time is 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 position breakdowns for the full season.