Trap Stats ("the App," "we," "us") is operated by Trap Stats, LLC, an Iowa limited liability company. This policy applies to anyone with an account on Trap Stats, regardless of which club they shoot with.
Account information you provide:
Content you or your team submits:
Information collected automatically:
If you sign in with Google: we receive your name, email address, and Google account ID from Google — nothing else from your Google account.
If the app's operator has enabled analytics: anonymous, cookieless traffic data (pages viewed, browser/device type) and a small set of named actions — completing signup, creating or joining a club, creating a team, logging a round, copying an invite link, importing a spreadsheet, sending an announcement — via Umami. This never includes your name, email, or any other account identifier, and is off entirely unless the operator has configured it.
When you photograph a scoresheet to log a round, that photo is sent to a third-party AI provider (currently Google Gemini, with Anthropic Claude as a manual fallback the app's operator can switch to) to read the handwriting and extract scores. Unless the scan is kept to improve reading (below), the photo itself is not stored by Trap Stats after extraction — only the resulting text (names, scores, dates) is saved. Names read from a sheet may be matched against your team's roster so they're spelled the way your team already has them.
AI extraction can make mistakes, especially on hard-to-read handwriting or a scoresheet combining two rounds into one photo. Always review the extracted values before saving a round.
For a club on the free plan, and for a sheet scanned outside any club, Trap Stats keeps each scanned scoresheet: the photo, what the AI read from it, and the scores saved from it (including any later corrections). This is part of the Terms of Service (section 7). A club on a paid plan does the same unless its Club Admin turns it off in Club › Settings. A Shooter Pro member can turn it off for the scans they make, on the Pro page, while their Pro plan is active. Scans made by an account holder under 18 are never kept.
We use kept scans only to measure and improve how accurately scoresheets are read: to check accuracy, to show the AI a few example sheets, and to train or tune a reading model, which may be done with the AI providers listed below under their business terms. A team scoresheet shows the names and scores of everyone on it. Kept scans are seen only by Trap Stats platform administrators and are never sold, published or shown to other members. They're deleted automatically after one year, and with the club or the account that made them; ask us to delete any sooner.
If you have Shooter Pro and ask the coach for a read, a summary of your scores is sent to the same AI provider: your average and best score, your recent round scores, how often you break targets at each station and with each shot, your averages by gear setup (with the names you gave your setups) and by wind, temperature and sky. Your name, email, club, location and dates are not sent. The read that comes back is kept with your account until a newer one replaces it or you delete your account. Like scoresheet reading, the coach can be wrong; it's a starting point, not professional instruction.
When you set or change a password, the app checks whether it appears in a known data-breach database using a privacy-preserving method (only the first few characters of a hash of your password are sent — never your actual password) via the "Have I Been Pwned" Pwned Passwords API. This check fails silently (lets you proceed) if that service is unreachable.
We share the minimum data each of these needs to do its job:
| Provider | What it receives | Purpose |
|---|---|---|
| Google Gemini API | Scoresheet photos; for Shooter Pro members who ask the coach, the score summary described above; kept scans may be used to tune a reading model | Reading handwritten scores, and the Shooter Pro coach (default) |
| Anthropic Claude API | The same as Google Gemini, only when the operator switches to it as a fallback | Reading handwritten scores, and the Shooter Pro coach |
| Google (Sign-In) | Name, email, if you use "Sign in with Google" | Authentication |
| Resend | Your email address, when we send you an email | Delivering password-reset/verification/notification emails |
| Your browser's or phone's push service (Google, Apple or Mozilla), and Google Firebase for the Android app | The text of a notification and your device's notification address, only if you turned notifications on | Delivering phone notifications |
| Stripe | Card details you enter on Stripe's own checkout page (never seen or stored by Trap Stats), plus the amount, your name/email if given, and which club and dues balance or tournament it's for | Club subscriptions and Shooter Pro subscriptions, both paid to Trap Stats; and card payments for club dues and tournament entry fees, which are paid to the club's own Stripe account, not to Trap Stats |
| Open-Meteo | A location (latitude and longitude, or the town you typed) and a date, only when you turn weather on for a round; never your name or account | Looking up that day's weather |
| Sentry | Technical details of an error in the app (what failed and where, the page or request involved), set up not to include names, emails or passwords | Finding and fixing errors (only if the operator has enabled it) |
| Have I Been Pwned | A partial hash of a password you're setting | Breach-password checking |
| Umami | Page URLs, browser/device type, and the named actions listed above — no name, email, or account identifier | Traffic and engagement analytics (only if the operator has enabled this) |
Each of these providers has its own privacy policy governing what they do with data once received. We do not share your information with any other third party beyond those listed above, and we never sell it.
Trap Stats is intended for use by people 13 and older. Because trap shooting leagues commonly include high-school-age participants, a minor's account is typically created by a coach, parent, or team Squad Leader adding them to a roster, not by a young child self-registering. Trap Stats does not knowingly collect information from anyone under 13: sign-up asks for a date of birth and refuses anyone younger, and accounts created before that are asked on their next sign-in. A younger shooter's scores can still appear on their team's roster, under the name their coach or Squad Leader enters. If you believe a child under 13 has an account, contact us and it will be removed.
Account passwords are hashed (never stored in plain text); optional two-factor authentication (TOTP) is available from your Profile; sensitive configuration values are encrypted at rest; the app runs over HTTPS; and the database connection uses a least-privilege role. No system is perfectly secure, but these measures are all in place today.
If this policy changes, the new version is posted here with a new effective date. For a material change, account holders are notified by email or in the App before it takes effect.
Questions about this policy or your information: [email protected]. For help with your account, deleting your data, or billing: [email protected].