Skip to content
Eggbeater

Privacy

Privacy Policy.

What we collect, what we don’t, and how spectator and admin data is handled across Eggbeater. We do not sell personal data or share it for advertising.

  • No data sold
  • HTTPS / TLS encrypted
  • Sign-in optional

Effective March 28, 2026Last updated October 25, 2026

Overview & collection

1About this policy

Eggbeater is a tournament-tracking and team tool for water polo teams and clubs. We do not sell personal data or share it for advertising. This Privacy Policy describes how the Eggbeater Water Polo app and its companion apps, Eggbeater Coach and Eggbeater Desk (together, "the App"), handle information when you use them — in any browser, or via our native applications for iOS, Android, and Apple TV. It also covers the team features a club can turn on: family links, family contacts, player photos, RSVPs and attendance, team chat, coach accounts, and game film review. By using the App you agree to this policy. The Apple TV app is a read-only companion that displays public tournament information; it requires no account or sign-in and collects no personal data.

2Information we collect

Information you provide

  • Player roster entries, game scores, live-scoring statistics, and bracket data you create.

Information from Google (if you sign in with Google)

  • Your Google account display name, email address, and profile photo — used only to identify your session and draw your first name in the App header.
  • A Firebase Authentication UID, used to associate your saved preferences with your account in Firestore.
  • A Google OAuth access token for Google Calendar (requested at sign-in time and held in memory only).

Information from Apple (if you sign in with Apple)

  • Your Apple user identifier and the name/email you choose to share — Apple’s Hide My Email may give us a private relay address instead of your real one, and that is the only email we ever see.
  • A Firebase Authentication UID, used the same way as with Google sign-in: to associate your saved preferences with your account.
  • We never receive your Apple ID password or account details.

Admin authentication

  • Admin sign-in uses Firebase Authentication and a Firebase ID token with each API request for verification.
  • Your Firebase UID is stored to a club-specific authentication list to determine admin access.
  • Admin ID tokens are refreshed automatically and never stored server-side persistently.

When your team uses team features

  • Your name and sign-in email on the team’s member list, your relation to the team (parent or guardian, player, or fan), and the players you are linked to (section 3).
  • Family contacts a parent or guardian enters for a player (section 4).
  • Player photos a linked parent or the club admin uploads (section 5).
  • RSVP replies and notes, and the attendance a coach takes (section 6).
  • Chat messages, reactions, "Got it" acknowledgements, reports, and blocks (section 7).
  • A coach account’s name, email, role, teams, and optional phone number (section 8).
  • A notification token for each device you sign in on (section 9).
  • Game film links and uploads, and Verify (Beta) results (section 12).

Teams, families & chat

3Family links and team membership

  • A parent or guardian joins a team through an invite a coach emails, through the team’s join code (a coach approves the request), or by claiming their child on a team that has not turned on team tools.
  • Each link records your name, your sign-in email, your relation to the team (parent or guardian, player, or fan), the players you are linked to, and when and how you joined.
  • The team’s coaches and the club admin see the member list, including names and sign-in emails. Other families on the team never see your email.
  • A parent who claimed a child without a coach’s confirmation sees only public things (the team’s games and game news) until a coach confirms them.
  • Fans, such as grandparents and family friends, follow the team’s games and game news only. A fan is linked to no player and never sees practices, events, contacts, attendance, or chat.
  • In My kids, a parent can group their children across teams and clubs and rename them. That grouping is stored with your account, and only you see it.
  • You can leave a team at any time, which removes your link. A coach or the club admin can also remove a member.

4Family contacts

A player’s parents or guardians can enter family contacts for that player: guardians’ names, relations, phone numbers, and email addresses, an emergency contact, and optional notes (for example, medical or allergy notes).

  • Who can read them: that player’s linked family, the team’s coaches, the club’s admins, and Eggbeater staff when supporting your club.
  • Who can edit them: the player’s linked parents or guardians only. A coach can ask a family to update them but cannot edit them.
  • They are never shown on public pages, spectator views, TV screens, or calendar feeds, or to other families on the team.
  • Enter only what your team needs. Medical and allergy notes are optional.

5Player photos

A player’s photo can replace the generic avatar. It can be set by the club admin, or by a parent or guardian with Premium Spectator who is linked to that player on the team.

  • Player photos are public to read, like rosters: anyone who can see the team’s roster can see the photo.
  • A linked parent or guardian, or the club admin, can replace or remove the photo at any time.
  • Photos are stored as small images with the team’s data.

6RSVPs and attendance

  • A family replies going, maybe, or not going for its own players, with an optional note. A coach or the club admin can also reply on a family’s behalf.
  • Coaches and the club admin see every reply and note. Families see their own players’ replies and the team’s counts, never another family’s names or notes.
  • Coaches take attendance (present, late, absent, or excused). Families see their own players’ attendance.
  • RSVP replies are deleted automatically about 13 months after they were last changed.

7Team chat

A club can turn on team chat. There are no direct messages: every conversation happens in a team channel.

Channels

  • Team chat: the coaches, the players whose parent or guardian turned chat on, and one parent the coach designates as the monitor. It stays closed until a monitor is set, so a coach is never alone with players.
  • Coaches and parents: the coaches and the team’s parents and guardians. Coach announcements are posted here, and a coach may also share an announcement with the team’s fans.
  • Parent section: parents and guardians only, with topics they start and a thread for each game day.
  • Families chat: on a team that has not turned on team tools, the parents who claimed their children there. Players and coaches are not in it.

Who can read and moderate

  • Members read the channels they belong to. The club admin can read every channel of the club’s teams and moderate: hide a message, or mute or remove a member. Coaches can hide messages in the channels they are in.
  • Your display name and role (coach, monitor, parent, or player) are shown with your messages. Your email is never shown in chat.

Reports and blocks

  • You can report a message. The report, with your name and the reason you give, goes to the club admin, who reviews it.
  • A reported message and its report are kept until the club admin resolves the report, even if the person who wrote the message or the person who reported it deletes their account.
  • You can block a member so you no longer see their messages.
  • Moderation actions (hides, mutes, removals, and reports) are recorded in a moderation log the club admin can read.

Retention

  • Messages are kept for as long as the team’s chat exists; they do not expire automatically.
  • To keep a safe-sport record, an edited message keeps its earlier text, and a message you delete or a moderator hides stays visible to the club admin. Other members no longer see it.
  • When you delete your account, your messages are handled as described in section 16.

8Coach accounts

  • A club admin or head coach invites a coach by email. The account holds the coach’s name, email, role, teams, and, if a manager adds it, a phone number.
  • The phone number is shown only to the club’s managers (the club admin and head coaches). It is never shown in chat, on public pages, or to families.
  • Passwords are stored only as a salted hash; we never store the password itself.
  • We send invite, sign-in, and password-reset emails to the coach’s address.
  • A coach can edit their own name. A manager can disable or remove a coach account, and a coach can delete their own account (section 16).

9Notifications

  • To send chat messages and team notices, we store a notification token and the platform (iOS, Android, or web) for each device you sign in on, linked to your account.
  • When no device is registered, or every device refuses, some team notices (such as a cancelled practice or an RSVP reminder) are sent to your sign-in email instead.
  • You can mute a channel, or turn notifications off in the App or in your device settings.

How we use it

10How we use information

  • Google Calendar access is used only to create, update and delete game events on the calendar you choose.
  • Push subscription endpoints are used only to send schedule, reminder, and announcement notifications.
  • Google sign-in is used only to authenticate your identity and enable cross-device preference sync.
  • Firestore preferences store My Player and selected age groups so your settings can be restored.
  • On-device data (active roster, scores, and stats) stays on your device unless explicitly relayed for live features.
  • Live score data may be relayed temporarily so other spectators can receive real-time updates.
  • Team membership, family links, family contacts, RSVPs, attendance, and chat are used only to run your team’s schedule, availability, and communication.
  • Notification tokens and sign-in emails are used only to deliver chat messages, team notices, invites, and sign-in links.

11Google API scopes & Firebase authentication

  • Firebase Authentication (Google Sign-in): the App identifies you and requests OpenID scopes for authentication, along with Google Calendar access in the same consent screen.
  • Google Calendar scope: requested so the App can create and manage game events in the calendar you choose; on later visits the access token is silently refreshed and never written to a server or database.
  • Admin-panel token verification: Firebase ID tokens are verified using Google’s public signing keys, then discarded on each request.

12Game film and Verify (Beta)

A club or coach can link a game’s film or upload it to the App. Uploaded film is stored and played back through Cloudflare Stream. Film uploaded to the App is played from a link without a sign-in, so anyone who has that link can watch it.

  • Verify (Beta) is available only to clubs where it is turned on, and a coach runs it one game at a time.
  • When a coach runs it, still frames from that game’s film, the team names, the rosters (cap numbers and player names), and the logged play-by-play are sent to Anthropic’s Claude API, an AI service, to draft stat suggestions.
  • A suggestion changes nothing on its own: a coach accepts or dismisses each one, and only accepted suggestions are added to the game’s record.
  • Anthropic’s commercial terms do not permit it to train its models on this content.
  • The review (its suggestions and its cost) is kept with the team’s data.

Sharing & infrastructure

13Data sharing

We do not sell your personal information or share it for advertising. Inside a team, information is visible only to the people described in sections 3 to 9. The App relies on these service providers to operate:

  • Vercel — for hosting the website.
  • Cloudflare Workers, KV, and Durable Objects — for push delivery, temporary live-score relay, club-scoped tournament and team data, and team chat.
  • Cloudflare Stream — for game film uploaded to the App.
  • Anthropic — for Verify (Beta) film review, only when a coach runs it.
  • MailChannels — for sending email (invites, sign-in links, and team notices).
  • Google Firebase — for authentication and Firestore storage when you sign in.
  • Google LLC — for OAuth and Calendar API services.
  • Apple and Google — for native push delivery and app-store billing.
  • RevenueCat — for subscription / entitlement management.
  • Stripe — for web-based payment processing.

14Security

All communication between your device and our infrastructure is encrypted via HTTPS / TLS. Google OAuth tokens are never stored in cookies, databases, or persistent server-side storage. On-device data is held in memory, and admin API requests are authenticated using Firebase ID tokens verified against Google’s public signing keys. Club admin data remains isolated by club-specific key prefixes and Firestore document paths. Coach passwords are stored only as salted hashes. Family contacts, RSVPs, and chat are served only to signed-in people allowed to see them, never on a public page.

Retention & your rights

15Data retention & deletion

  • On-device data can be cleared at any time by clearing site data or signing out on your device.
  • Preferences are retained until your account deletion.
  • Firebase Authentication sessions can be revoked by signing out in the App or through your Google Account permissions page.
  • Push subscriptions are removed when you unsubscribe, or expire automatically after inactivity.
  • Live score data expires automatically after a short retention period.
  • Google Calendar events created by the App can be deleted by disconnecting calendar sync or deleting them in Google Calendar.
  • Admin authentication data is removed when removed by a club admin.
  • Tournament archives remain under the club’s document and can be deleted by a club admin.
  • Team membership, family links, and family contacts are kept until you leave the team, a coach or the club admin removes you, or you delete your account.
  • Chat messages are kept as described in section 7, and RSVP replies as described in section 6.

16Deleting your account

You can delete your account in the App’s settings or at eggbeater.app/delete-account. Deleting it:

  • Removes your sign-in, your team memberships and family links, your My kids grouping, your chat devices, mutes, blocks, and chat-rules agreement, and the private RSVPs you made before a coach confirmed you.
  • Keeps your chat messages in place as "Deleted user", with the text and edit history removed, so conversations still read (a reported message waits for the club admin, below). Your reactions and "Got it" acknowledgements are removed.
  • Deletes the family contacts you entered when you were the player’s only linked parent or guardian. If another guardian is still linked, the contacts stay with them, and your own entry is removed.
  • Deletes player photos you uploaded when you were the only linked parent. Otherwise the photo stays for the other guardian and the club admin.
  • Removes the RSVP replies you set when no other family member is linked to that player; otherwise the reply stays without your name.
  • Keeps a message of yours that someone reported, and that report, until the club admin resolves the report. Until then the message shows as from "Deleted user" and only the club admin can read its text; once the report is resolved, the text is removed like your other messages. Reports you filed stay with the club admin as "Deleted user".
  • A coach can delete their coach account in Eggbeater Coach (Sign Out, then Delete My Account), or ask us to. That removes the coach’s name, email, phone number, and password, and handles their chat messages the same way. When a club admin only removes a coach’s access, the account record (name, email, phone number, password) is deleted, and the messages the coach posted stay with the team.
  • We keep the billing and payment records we are required to keep, and club-owned data such as rosters, schedules, and scores, which belong to the club.

17Children's privacy

Eggbeater is for clubs, coaches, and families. Players are treated as minors by default, and Eggbeater does not ask a player’s age.

  • Eggbeater is used by youth teams, including players under 13. Information about players (names, cap numbers, statistics, photos, and parent or guardian contacts) is provided by the club, a coach, or a parent or guardian.
  • We rely on the club and on the child’s parent or guardian to have the consent needed to provide that information. Player names, cap numbers, and statistics appear on the rosters and game pages the club publishes.
  • A player’s own account is optional and is linked to the player only through a coach’s invite or approval. Because we do not ask a player’s age, the same rule applies to every player account, including a player under 13: it has no chat until a parent or guardian of that player turns chat on, and then only in team chat, which always includes the monitor parent. Players are never in the parent channels, and there are no direct messages.
  • Parents and guardians control their children’s links, family contacts, and photos, and can turn a player’s chat off at any time.
  • A parent or guardian can ask to review or delete their child’s information by writing to hello@eggbeater.app. We will confirm the request comes from the child’s parent or guardian, tell you what the App holds about your child, and delete it; for records the club keeps, such as rosters and game statistics, we work with the club to remove them.
  • We do not knowingly collect personal information directly from a child under 13 without a parent’s or guardian’s involvement. If you believe a child has given us information without it, contact hello@eggbeater.app and we will work with you to delete it.

18Changes to this policy

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

19Contact

Questions about this Privacy Policy or requests regarding your data can be directed to the administrator of your team’s Eggbeater deployment, or to hello@eggbeater.app.