← Back to Trap Stats

Privacy Policy

Effective date: [not yet set]
This is a working draft, not a finished legal document. It was written to accurately describe what the app actually does today, but it has not been reviewed by a licensed attorney. Trap Stats is used by minors — treat this as a starting point, not a binding policy, until an attorney has reviewed it.

Who this policy covers

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 or organization they shoot with.

Information we collect

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, logging a round, copying a team invite link — via Umami. This never includes your name, email, or any other account identifier, and is off entirely unless the operator has configured it.

AI-assisted scoresheet reading

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. The photo itself is not stored by Trap Stats after extraction — only the resulting text (names, scores, dates) is saved.

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.

How we use your information

Breached-password checking

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.

Third parties we share data with

We share the minimum data each of these needs to do its job:

ProviderWhat it receivesPurpose
Google Gemini APIScoresheet photosReading handwritten scores (default)
Anthropic Claude APIScoresheet photos (only as a manual fallback)Reading handwritten scores
Google (Sign-In)Name, email, if you use "Sign in with Google"Authentication
ResendYour email address, when we send you an emailDelivering password-reset/verification/notification emails
Have I Been PwnedA partial hash of a password you're settingBreach-password checking
UmamiPage URLs, browser/device type, and the named actions listed above — no name, email, or account identifierTraffic 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.

How long we keep your information

Your rights and choices

Children's privacy

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. If you believe a child under 13 has an account, contact us and it will be removed.

Security

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 are real, currently-implemented measures, not aspirational ones.

Changes to this policy

[How material changes will be communicated is not yet decided.]

Contact

Questions about this policy: [email protected]