Season setup
Set the rules once. Everything downstream — pairings, venues, game times — follows from here.
Tap to include or exclude an age group. This is the single source of truth for the season — the importer reads these. The number of Saturdays equals the target games below.
A goal, not a guarantee. Also sets the number of Saturdays in the season.
Teams below this are ineligible for the playoffs.
Age groups with this many teams or fewer play a balanced round-robin only (no cross-division games).
Align sub-org bye weeks
Prefer scheduling all teams in a sub-org (e.g. Stars) on the same Saturdays, so a club travels together.
Align cluster bye weeks
Prefer scheduling same-name cluster orgs (3+ teams) on the same Saturdays.
Association venue pooling
When a team's primary venue is full or unavailable, allow home games at other venues in the same association (excludes shared venues).
Southern AZ (Tucson) travel logic
Apply travel-aware scheduling for Southern AZ: away-game cap and distance-based opponent priority. Turn off once Tucson runs its own scheduling.
Referee minimum · games per venue-day
Each venue hosting on a Saturday runs at least this many games so one ref crew works consecutive slots. Set to 1 to disable.
Upload a CSV or Excel file to populate every organization. Import replaces existing org data.
Drop your teams file here to get started
or click to browse — CSV, Excel (.xlsx, .xls) — replaces all current org data
Associations
Each tile represents an association. Click ✎ Edit to update name, venues, team counts, and sub-orgs. Or import from CSV to populate everything at once.
Blackout dates
Block specific Saturdays for teams or venues, and reserve matchups for the playoffs.
No team blackout dates added.
Blocking a venue prevents any home games being scheduled there on that Saturday — all fields, all time slots.
No venue blackout dates added.
Pick two teams in the same division — they will never be scheduled against each other (reserve the matchup for the playoffs).
No DNP pairs added.
Schedule
Generated game schedule — filter by division, week, or venue group.
Push confirmed schedule directly to Firebase. Requires admin credentials.
Save named snapshots to Firebase for comparison and rollback. One version is the live schedule; the rest are frozen snapshots.
Click "Refresh list" to load saved versions from Firebase.
Generate a schedule to see results.
Postseason eligibility
Teams need a minimum of 5 games to qualify.
Generate a schedule first.
Co-location quality
When an association's home games land at the same venue on a Saturday, one referee crew can work the whole day and families make a single trip. This shows how well each association's home games clustered — higher is better. Tap a week to see that Saturday's games.
Generate a schedule first.
Association schedule
Full schedule for each association — all teams, all weeks.
Generate a schedule, then select an organization above.
Field assignment
Pass 2 — assign venues, fields, and time slots to every scheduled game. Review the grid, adjust if needed, then commit.
ℹ Generate a schedule first, then click Run field assignment to assign venues and time slots.
Unplaced games
Games the algorithm could not place. Drag a card onto a slot in Venue × Week to place it manually.
Generate a schedule first.
Field availability
Configure venues and their fields. Use the Saturday grid to block specific time slots at any venue.
AZPW game locations
Click ✎ Edit on any tile to configure venue names, fields, address, and coordinates.
Saturday availability
Click a cell to toggle
Select a venue above to configure availability.