Pickup groups are for casual runs. There are no set teams. Players show up, you split into teams that day, and the app tracks leaderboards and each player's stats over time. You can mark players active or inactive as people come and go.
Leagues have set teams. You build the rosters, and the app tracks standings, win/loss records, and both player and team stats for each season.
You pick the type when you create the group. You can't change it later.
You can't yet. Every group is public, so anyone can see your games, stats, leaderboards, and player profiles.
We plan to add private groups in the future.
Play-by-play (called Plays when you create a group) means you record each play: shots, rebounds, assists, turnovers, and so on. You can do it live or after the game. This gets you the most stats.
Box score mode means you upload one stat sheet per game (points, rebounds, assists, and so on) instead of single plays. It's faster. You still get per-100 numbers and stats like True Shooting %. But you lose the stats that need play-by-play data, like plus/minus, offensive and defensive rating, rebound %, usage %, and True Passing %.
You pick the stats method when you create the group. You can't change it later.
You can enter plays on your phone while the game is going, or write them down on paper and enter them later.
For play-by-play groups, create the game first, then open the game's Add Plays page. It has three tabs:
Player fields are searchable. Type a name or jersey number to filter the list, or click a filled field to see everyone again. After you pick a player, the cursor jumps to the next field.
On the w/o Video form, and when you edit a play in a game without video, you can check Is it a fastbreak? or Is it a putback? on a shot. The box only counts if the play before sets it up: a fastbreak needs a defensive rebound or steal just before it, and a putback needs the shooter's own offensive rebound just before it. With video, you won't see those boxes. The app figures out fastbreaks and putbacks from the video times.
Box score groups upload a CSV stat sheet for each game instead. See the box score upload question below.
On the Create Game form (pickup groups only), click Create & Add Another instead of Create Game. It saves the game and opens a new form with the same date, teams, players, and settings already filled in. You just give each game a new title.
If you're editing a pickup game, Duplicate Game saves your changes and opens that same filled-in form, so you can log another game with the same setup.
Yes. League game forms have an optional Location field. It shows up on the game page and on the schedule.
League admins can also set a Default Location/Venue under Settings → Game Defaults. New league games start with that location filled in, and you can still change it for any game.
Yes. If your group uses box score mode, open the game page and click Import box score (CSV) to upload that game's stats. This is handy if your group already keeps stats in a spreadsheet.
You can start from our blank box score template in Google Sheets. Use File → Make a copy first so you're working in your own copy and not the shared one. Fill it in, download it as a CSV, and upload that file on the game page.
If a play-by-play game has a YouTube video linked, group admins can click Request Stats Entry on the game page. We'll watch the recording and enter the play-by-play stats for you. Your stats will be ready within 48 hours.
The price depends on how long the video is. It starts at $5 for up to 10 minutes, and longer videos cost more. The game page shows the price before you pay, and you pay on a secure Stripe Checkout page. Every group gets 3 free requests. While you have free ones left, the game page shows the price crossed out and you don't pay anything.
Before you can send a request, both teams need at least one player, and we need a way to tell players apart. In pickup groups, every player needs a profile picture. In leagues, every player needs a profile picture or a jersey number (either one works). The game also can't have any plays entered yet.
Each YouTube video can only be used for one game. If the video is already linked to another game, use a different recording or change the other game first.
Request Stats Entry is in beta and may not always be available, so don't count on it as your only way to get stats in. If you need stats on your own schedule, enter them yourself with Add Plays.
If we can't finish your request, we may cancel it and give you a full refund to the card you paid with. If it was one of your free requests, you get that free request back. Either way, we'll email you to explain why.
Most of the time, you can send a new request for the same game right away from the game page. If your group has been blocked from stats entry, you'll need to contact us before you can send another one.
Per-100 stats show what each player would put up over 100 possessions. That makes it fair to compare someone who plays a lot with someone who doesn't. Advanced stats like True Shooting %, True Passing %, and Defensive Rating go past simple counts and show more of how each player helps the team.
Both play-by-play and box score groups get per-100 stats. Some advanced stats, like True Passing %, plus/minus, and Defensive Rating, need play-by-play data, so box score groups won't see those.
To show up on the leaderboards, a player needs a minimum number of possessions. Group admins can change that number with Possessions Min under Settings → Game Defaults.
The Overview tab shows top-10 lists for the main stats. Use the pills under the tabs to switch between Averages (per game), Totals, and Per 100 possessions. For full tables you can sort, use the other tabs: Averages, Totals, Adv. Totals, Per 100, and Advanced.
Group admins can pick which pill Overview opens on. Go to Settings → Game Defaults and change Default Overview.
You can also link straight to any tab or pill. The address bar updates as you switch, so you can copy the URL, or right-click a tab and pick Open in new tab. For example, ?tab=averages opens the Averages table, and ?tab=overview&overview=per_100 opens Overview on the Per 100 pill.
RSVP polls help you find out who's coming to a run. They're only in pickup groups, not leagues.
Group admins and contributors can make a poll from the group's Games page by clicking RSVP polls. Set the date, time, and place, add notes if you want, pick who to invite from your roster, and send the invites by email. Only players linked to an account can be invited (set that up under Settings → Player accounts). Each person gets their own link to answer in or out, and they don't have to sign in.
From the poll you can resend invites, see who's in, who's out, and who hasn't answered, and set when RSVPs close. If plans change, you can cancel the poll, and everyone who was already invited gets an email.
People can add a short note with their answer. Only group admins and contributors can see those notes on the poll's roster.
Yes. In a league, group admins and contributors can click Import from CSV on the Teams or Players page. Your CSV needs the columns Team, First Name, and (if you want) Last Name. Every row needs at least a team name or a first name. So you can import just teams, just players, or full rosters. You can download a template from the import page.
After you upload, you'll see a summary grouped by team: new teams, new players, players moving teams, and players already on the right team. Nothing saves until you confirm. If something looks wrong, fix the CSV and upload it again. Every upload is saved, so you can find it later under View Import History on the import page and download the file.
Players are matched by first and last name. If a player already exists, their team is changed to match the CSV, and a blank Team takes them off their team. Teams and players that aren't in the file are left alone. It's all or nothing: if any row has a problem, like the same player listed twice, nothing gets saved.
To go the other way, click Export Current Active Teams on the Teams page. You get a CSV in the same format with every active team and its current roster. The season filter on that page doesn't change what gets exported.
One more thing: on the Teams and Players pages, the current season shows everyone on the roster, even before any games are played. Past seasons only show teams and players who played in a game that season.
Yes. On the league Schedule page, admins and contributors can click Export Schedule CSV to download the season you're looking at. Edit it in any spreadsheet app, then upload it with Import Schedule CSV. You can download a template from the import page.
Each game row needs a Game Key, like week1-01. It has to be unique within the season. That's how we know to update a game instead of adding a duplicate when you upload again. Exporting fills in keys for any games that don't have one yet. Capitalization in team names doesn't matter. Before anything saves, you'll see a review of new games, updates, blocked rows, and unchanged rows. Every upload is kept in the import history.
If a game already has stats, the import can't change everything about it. For example, you can't swap its teams through the CSV. You can still make those changes from the normal game form.
Each player has a profile page with their totals, per-100 stats, a full game log, and any video highlights tied to their plays. It's an easy way to look back at how someone has played over time.
If your account is linked to a player in the group (a group admin sets this up when they invite you), you can open your profile and click Edit Player to change things like your name and photo. Only group admins and contributors can change whether a player is Active or, in leagues, their current team. In leagues, they can also set a default Jersey # on the player form.
Yes. League players can have a default jersey number on their profile. When you create or edit a league game, each player shows that number, and you can change it for just that game. That helps if someone wears a different number one night or after a trade.
The number for that game shows up next to the player's name on the box score and in the Add Plays player lists (for example, 12 Steve Z). You can type a number or part of a name to find a player fast.