Skip to Content
GuidesGames, Scores & Stats

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 Competitions 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.

The Schedule tab (sidebar → League Management → Schedule) is the hub for day-of scheduling: it lists every tournament and season: open a tournament’s day calendar, a season’s scheduler, or jump straight into any division to create games.

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 → Payments & Activity → 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. A venue’s Availability (time slots) is what the schedulers’ day grids are built from; without any availability the scheduler shows an empty grid, and the Schedule tab points you back here.

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, so 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 do I import a schedule from a photo, PDF, Word doc, or spreadsheet? (AI schedule import)

Open the division (from Competitions or the Schedule tab) and click Upload Schedule. Upload any schedule you already have (a photo or screenshot, a PDF, a Word document, or a CSV/Excel file) and AI extracts the teams and games for that division.

Nothing saves until you confirm. The preview screen shows every extracted team (labeled existing when it matches a team already in the division, new otherwise) and every game, all editable: fix a misread name, date, time, venue, or score, or delete a row, before clicking Import. Games that already exist in the division (same two teams, date, and time) are marked as duplicates and skipped, so re-uploading the same file is safe. If the file covers several divisions, rows for other divisions are listed under Not imported rather than being brought into the wrong division.

Post-season sections import too: when the schedule has a “Post Season”/“Playoffs” part, those games are created with the right playoff round (semifinal, championship, 3rd place, and so on) and kept out of the regular-season standings. Matchups that aren’t decided yet (“Seed 1 vs Seed 4”, “Winner of Semifinal 1”) import as placeholder games that display those labels until the real teams are known.

A few details: venue text is kept on each game and linked to one of your saved venues when the name matches (venues are never created automatically); games with visible final scores import as completed games, so standings work immediately after a mid-season migration; and rows without a resolvable date are flagged for you to fill in on the preview before they can import.

How can I view the game schedule for an entire division?

Open the division from Competitions or from the Schedule tab (expand the division’s tournament or season); its page shows the division’s games and results. Your league’s public site (<your-org>.statyapps.io) displays the schedule to visitors.

Can players subscribe to the schedule in their calendar?

Yes. Every division schedule page and team page has a 📅 Subscribe to calendar button that opens a small panel with the schedule’s feed link. Copy the link, use Google Calendar (“From URL”), or the Apple / Outlook option. Once subscribed, every game (and any schedule change, cancellation, or new round) shows up in the subscriber’s personal calendar automatically. No account is needed; the feed is read-only and updates within about 15 minutes of a change. Games from divisions whose schedules are hidden never appear in feeds.

Why do some games say Time TBD?

A game that has a date but no start time yet shows Time TBD on the public schedule, the team pages, and the game page. The schedule Staty drafts during sign-up (the Who’s playing? step) and games created without a time both start this way. The game stays “Time TBD” even after its date passes until you set a time or enter a score; it never flips to “Final” on its own. Set times from the Schedule tab or by editing the game on its division page. In calendar subscriptions, a game without a time appears as an all-day event until it gets one.

How do I hide stats from the public?

In the Competitions 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 Competitions 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.

Tiebreakers set on a tournament or league apply to all of its divisions automatically, so you don’t need to repeat them per division. A division’s modal shows the inherited rules with a note naming where they come from; editing them there overrides the order for that division only, and removing all of a division’s rules reverts it to the inherited order. Each rule also has a Hide in Standings switch: a hidden tiebreaker still breaks ties, but its column and legend entry no longer appear on the public standings page.

The same panel has one setting that applies to every sport, shown above the sport tabs: Break playoff ties by standings position. 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 standings position (Competitions → ⋯ → Tiebreakers) to award a tied playoff game to the team that finished higher before the playoff round. When it’s on:

  • The winner is the team placed higher in the regular-season / pool-play standings, the same table shown on the division’s Standings tab. The public page highlights them with a small Standing 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. 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.

Four things it deliberately does not do:

  • Manually assigned seeds never break a tie. Seeds still order teams and build brackets, but a pre-tournament seed can’t overrule what happened in pool play.
  • 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 can’t be separated by the standings (the same position, or neither has played a regular-season/pool game, as in a pure bracket), the game stays undecided.
Last updated on