Pickup groups are for casual, unstructured play. There are no fixed teams — players show up, you build teams on the fly, and the app tracks leaderboards and individual stats over time. Players can be activated or deactivated each session.
Leagues are for structured, team-based competition. You define teams, manage rosters, and the app tracks standings, win/loss records, and both player and team stats across a season.
You choose which type to create when you start a new group, and this cannot be changed later.
Your group is public by default. This means that anyone can view your group's data, including game data, stats, leaderboards, and player profiles.
Private groups are not possible at this time. But will be possible in the future.
Play-by-play lets you record individual events (field goals, rebounds, assists, turnovers, etc.) as they happen or after the fact. This unlocks advanced stats like True Passing %, Defensive Rating, and per-100 possession metrics.
Box score mode is simpler — you upload a stat line per game (points, rebounds, assists, etc.) without tracking individual plays. It's faster to enter but produces only basic stats.
Your stats method is chosen when creating the group and cannot be changed later.
On the Create Game form (pickup groups only), use Create & Add Another instead of Create Game. That saves the current game and opens a new create form with the same date, teams, players, and game settings (you enter a new title for each game).
When editing an existing pickup game, Duplicate Game saves your changes to that game and opens the same pre-filled create form so you can log another game with the same setup.
Yes. League game forms include an optional Location field. It appears on the game detail page and schedule views.
League admins can also set a Default Location/Venue under Settings → Game Defaults. New league game forms are pre-filled with that value, and you can still change it per game.
Yes. If your group uses box score mode, you can upload a CSV file for each game directly from the game page. This is useful if your group already tracks stats in a spreadsheet.
If you start from our blank box score template (Google Sheets), use File → Make a copy so your group works from its own copy instead of editing the shared master. Fill it in, then download or export as CSV to upload on the game page.
The Overview tab shows top-10 mini leaderboards for key stats. Use the pills below the main tabs to switch between Averages (per game), season Totals, and Per 100 possessions. The Averages tab (between Overview and Totals) shows a full sortable per-game table. Full sortable tables for totals, advanced totals, per-100, and advanced per-100 are on the other leaderboard tabs.
Group admins can choose which Overview pill loads by default under Settings (Leaderboard section).
You can link directly to a leaderboard tab or Overview pill. The address bar updates as you switch views; copy the URL or right-click a tab and choose Open in new tab. Examples: ?tab=averages for the Averages table, or ?tab=overview&overview=per_100 for Overview with the Per 100 pill.
In pickup groups only, organizers can run RSVP polls for a specific run: set the date, time, and place (plus optional notes), choose who to invite from the group roster, and send email invitations. Invited members get a personal link to respond in or out without signing in.
Open your group's Games page and use RSVP polls to create a poll, send or resend invites, and see who is in, out, or has not answered yet. You can set when RSVPs close and cancel a poll if plans change (canceling notifies people who were already invited). RSVP polls are not available for leagues.
When someone RSVPs, they can optionally leave a short note with their in or out response. Group admins and contributors see those notes on the poll's invited roster; other members do not.
Yes. In a league, group admins and contributors can use Import from CSV on the Teams or Players page. Upload a CSV with columns Team, First Name, and optional Last Name. Each row must include at least a team name or a first name, so you can import teams without players, players without teams, or full rosters. Download the template from the import page for the expected format.
On the Teams page, Export Current Active Teams downloads the same column layout for every active team in the group, using each team's current active roster (not a past season snapshot). The season filter on that page does not affect the export.
After you upload, you review a summary grouped by team: new teams, new players, reassignments, and players already on the correct team. Nothing is saved until you confirm. If anything looks wrong, fix your CSV and upload again. Each attempt is stored in Import History on the import page so you can download the file later.
Existing players are matched by first and last name. If a player already exists, their team assignment is updated to match the CSV (including clearing the team when the Team column is blank). Teams and players not listed in the file are not updated. The import is all-or-nothing: if any row fails validation (for example a duplicate player in the file), nothing is applied.
Yes. On the league Schedule page, admins and contributors can use Export Schedule CSV for the season you are viewing, edit the file in a spreadsheet app, then upload it with Import Schedule CSV. Download the template from the import page for the expected columns.
Each game row needs a stable Game Key, unique within that season, so re-uploads update existing games instead of creating duplicates (for example week1-01). Export assigns keys to games that do not have one yet. Team names in the CSV are matched case-insensitively. After upload you review new games, updates, blocked rows, and unchanged rows before anything is saved. Import history keeps a copy of each attempt.
Games that already have stats limit what import can change (for example you cannot swap teams via CSV on a game with recorded stats). You can still edit those games from the normal game form.
Yes. League players can have a default jersey number on their profile. When you create or edit a league game, each selected player shows that number and you can override it for that game only — for example if someone wears a different number for one night or after a trade.
The number used for that game appears on the box score next to the player's name and in Add Plays player pickers (for example, 12 Cody M). You can type a jersey number or part of a name to find a player quickly.