No players yet
Tap + Add Player above to add your first player. You need at least as many players as positions to generate a lineup.
No lineup yet
Go to the Game Day tab, check your available players, and tap Generate to create a fair lineup.
No field view yet
Generate a lineup first, then switch here to see your players on the field.
Tap a position to cycle preference:
Fair lineup rotations for team sports. Built for the sideline -- works offline on your phone.
The algorithm generates balanced lineups in three phases:
Season fairness is normalized by games attended, not games scheduled. A player who missed last week's game doesn't get a built-up "debt" that forces them onto the field when they return -- they show up fresh. The algorithm looks at everyone's fraction of their own available time, not raw totals.
When a player has to sit out a period, the algorithm spaces their rest across the game instead of clustering it. A kid sitting 2 of 4 quarters gets Q1 + Q4, not Q1 + Q2 back-to-back. A kid sitting 1 quarter tends to sit Q2 or Q3 -- a mid-game break rather than starting cold or ending on the bench. Everyone gets a real chance to play and a real chance to rest.
Set per-player preferences to push toward or away from specific positions. Prefer/Strong increases assignment likelihood. Never fully excludes a position. The algorithm balances these preferences against overall fairness.
Tap any two players in the same period on the Lineup tab to swap them. Changes save automatically and are reflected in season stats. Use the Field tab to visualize positions on the playing surface.
Licensed under the PolyForm Noncommercial 1.0.0 license. Free for personal and noncommercial use.