Eggbeater Water Polo
Privacy Policy
Effective date: March 22, 2026  ·  Last updated: April 4, 2026 ← Back to App

Eggbeater is a tournament tracking tool for water polo teams and clubs. It does not sell or share personal data.

This Privacy Policy describes how the Eggbeater Water Polo app ("the App") handles information when you use it at eggbeater.app or via our native mobile applications for iOS and Android. By using the App you agree to this policy.

1 Information We Collect

Information you provide:

Information from Google (if you sign in with Google):

Admin authentication (if you sign in via the admin panel):

Preferences stored in the cloud (if you sign in with Google):

Signing in is entirely optional. If you do not sign in, all preferences remain on your device only (localStorage) and cloud sync is not used.

Multi-club data scoping:

Google Calendar (if you connect calendar sync):

Push notification subscription data:

Club branding data:

Subscription and payment data (if you purchase a plan):

We do not collect your phone number, location, browsing history, or any other personally identifiable information beyond what is explicitly listed above.

2 How We Use Information

3 Google API Scopes & Firebase Authentication

Firebase Authentication (Google Sign-In): When you tap "Sign In," the App uses Firebase Authentication with Google's identity provider. This requests the standard OpenID Connect scopes (openid, email, profile) to authenticate your identity, plus the Google Calendar scope (see below) — all in a single consent screen. Firebase issues a UID stored in Firestore to associate your preferences with your account.

Google Calendar scope (bundled with sign-in): To eliminate friction, the App requests the following scope at the time of Google Sign-In, so parents only ever see one Google consent popup:

On subsequent visits, if you have a calendar connected, the App silently refreshes the calendar access token in the background using Google Identity Services — no popup is shown.

The App's use of Google user data complies with the Google API Services User Data Policy, including the Limited Use requirements.

Google Calendar access tokens are held in memory only and are never written to a server, database, or persistent storage. They are discarded when you close the browser tab. Firebase Authentication tokens are managed by the Firebase SDK and are stored in your browser's local storage per Firebase's standard behavior.

Admin panel JWT verification: When an admin makes API requests, the Firebase ID token is sent as a Bearer token in the Authorization header. The server verifies this token using Google's public JSON Web Key Set (JWKS) endpoint — the token signature is checked cryptographically and the token's issuer, audience, and expiration are validated. The server never stores these tokens; they are verified and discarded on each request.

4 Data Sharing

We do not sell, trade, or share your personal information with third parties. The following third-party infrastructure is used to operate the App:

5 Data Retention & Deletion

6 Children's Privacy

The App is intended for use by parents, guardians, and coaches of team members. While the App tracks first and last names of players (who may be minors), this data is entered by parents or coaches, stored only on their own device, and never transmitted to or stored on our servers. We do not knowingly collect personal information from children.

7 Security

All communication between your device and our infrastructure is encrypted via HTTPS/TLS. Google OAuth tokens are never stored in cookies, databases, or any persistent server-side storage. On-device data in localStorage is protected by the same-origin policy of your browser.

Admin API requests are authenticated using Firebase ID tokens (JWTs) verified via RS256 signature validation against Google's public signing keys. Admin authorization is enforced at both the Cloudflare Worker level (KV-based UID check) and the Firestore level (security rules restricting writes to authorized UIDs). All club data is isolated by club-specific key prefixes in KV and document paths in Firestore — no cross-club data access is possible.

8 Changes to This Policy

If we make material changes to this Privacy Policy, the "Last updated" date at the top of this page will be revised. Continued use of the App after changes constitutes acceptance of the updated policy.

9 Contact

Questions about this Privacy Policy or requests regarding your data can be directed to the administrator of your team's Eggbeater deployment.