Games, Scores & Stats
Schedule games, record final scores, track player stats, and manage where games are played.
How do I add a new game to the schedule?
Open a division from the Structure tab. On the division page you can:
- Click Create Game to add a single game (pick home/away teams, date, time, and venue).
- Click Auto-Populate Games to generate the whole schedule from the division’s Division Format (round robin, pool play, or a playoff bracket) — the matchups mirror the downloadable scoresheet.
Larger day-of scheduling is available from the Schedule tab and the tournament schedulers.
How do I input final scores for a game?
Use the Game Results page (sidebar → League Management → Game Results, at /admin/game-results). It lists every game still missing a score. For each game you can:
- Type the score directly and Save (inline manual entry).
- Scan Scoresheet — photograph a paper scoresheet and let AI fill in scores (and player stats), then review before saving. See Scan Scoresheets with AI.
Scores are also editable per game on the division page itself.
How do I review or correct a game’s score after it’s entered? (Score Audit)
There is no separate “Score Audit” screen. To review or fix scores, reopen the game on the Game Results page or the division page and edit the score. To see who changed what and when across your organization, use the Activity Log (sidebar → System & Tools → Activity Log, at /admin/logs), which records admin changes (method, URL, user).
How do I update stats for an individual player?
Open a game’s stats page (from the game, or /admin/game/:gameId/stats). Each player has an editable row of stat fields for that sport; enter the values and Save. The available stat columns follow the sport and your division’s tracked-stats configuration.
How do I manage game locations and venues?
Use the Venues tab in the sidebar (labeled Courts for court sports like pickleball), at /admin/locations. Click Add Location to create a venue with a name and address; edit or delete existing ones. Games reference these venues when you schedule them.
How do I bulk-import a game schedule?
For a tournament, open its Day scheduler and click Bulk import in the header. Upload a
CSV with the columns Division, Home Team, Away Team, Date, Time, Location (a Download
template button gives you the exact shape). Dates are YYYY-MM-DD, times like 8:24 AM, and
teams are matched by name within the division — type names, not IDs.
Nothing imports until you confirm: the preview shows every row as ready, warning, or error (with the reason), and the Import N games button skips error rows. A team name that doesn’t match anything in its division is an error, so typos can’t slip through.
Placement games can be scheduled before their teams are known. A row whose team cells read
1st Place - <division> vs 2nd Place - <division> (or 3rd vs 4th) imports as a
placeholder game: the public standings page shows it under Championship or 3rd Place
Game with those labels until the participating teams are decided.
How can I view the game schedule for an entire division?
Open the division from Structure — its page shows the division’s games and results. The org-wide Schedule tab shows scheduling across divisions, and your league’s public site (<your-org>.staty.io) displays the schedule to visitors.
How do I hide stats from the public?
In the Structure tab, open the ⋯ menu on a division, contest, league or tournament, choose Settings, and turn Show Stats off under Stats.
The setting cascades: set it on a tournament or league and every division below inherits it, unless that division sets its own value. So switching it off once on a season hides stats for all of its divisions.
When it’s off, visitors no longer see the division’s Leaderboard tab, a team’s Stats tab, a player’s Games and Stats tabs, or the per-player box score on a game page. Those pages are also blocked if someone follows an old link straight to them — they show “Stats aren’t published for this division.”
Hiding stats does not hide results. Schedules, final scores, standings and brackets all stay public — a score is a result, not a stat. Game pages still show the final score; only the per-player box score is withheld. To hide those, use Hide Schedules and Hide Standings instead.
Turning it back on restores everything immediately — nothing is deleted, and stats you’ve already recorded are untouched.
Why isn’t Hide Schedules applying to my divisions?
It does apply — but only where the division (or its contest) hasn’t set that toggle itself. Visibility settings follow the config hierarchy: the most specific level wins, so a value saved on a division overrides its tournament.
Open the division’s ⋯ → Settings. If the toggle is labelled “Inherited from …”, it’s following the tournament and nothing more is needed. If it isn’t, that division has its own value — flip it to match, or clear it so it inherits again.
The same applies to Hide Teams, Hide Standings and Show Stats, and it works in both directions: a tournament can hide schedules everywhere while one division switches them back on.
How do I configure tiebreaker rules for my division?
In the Structure tab, open the ⋯ menu on a division (or a league/tournament to set defaults) and choose Tiebreakers. Pick and order the active tiebreakers (e.g. Head-to-Head Record, Points Scored) for your sport; standings apply them in that order.
The same panel has one setting that applies to every sport, shown above the sport tabs: Break playoff ties by higher seed. It’s saved together with the tiebreaker list when you click Save.
How are tied playoff games decided?
By default a tied playoff game has no winner — neither team is highlighted, and if it’s a bracket game the next slot keeps its “Winner of …” placeholder.
Turn on Break playoff ties by higher seed (Structure → ⋯ → Tiebreakers) to award a tied playoff game to the higher-seeded team. When it’s on:
- The public standings page shows that team as the winner, with a small Seed tag next to their name so it’s clear the win was awarded rather than scored. The score itself is still displayed exactly as entered.
- In a bracket, that team advances automatically into the next round, and the losing side is routed to the consolation or 3rd-place game as usual.
- Teams that have no Seed assigned fall back to their position in the regular-season standings, and the tag reads Standing instead. The page and the bracket always agree on who won.
- The setting cascades: set it on a tournament or league and every division below inherits it, unless that division sets its own value.
Three things it deliberately does not do:
- Regular-season ties are untouched — they stay ties in the standings table.
- A 0 – 0 game is treated as unplayed, never awarded, so a placeholder score can’t silently advance a bracket.
- If the two teams are equally ranked — the same seed, or neither seeded and no regular-season games to separate them — the game stays undecided.
While a registration is in Test Mode, game scheduling is disabled — turn Test Mode off first. See Accept Registration Payments — Test Mode.