Privacy Policy
Effective 2026-09-17. Applies to zionball.com and the Zionball app.
Zionballhelps softball families find college camps and understand which programs are likely to be recruiting a player's position and class year. Most of the people who use it are high-school players and their parents. This policy says what we hold, why, who can see it, how long we keep it, and how to delete it. A table-by-table technical appendix is at the end for anyone who wants to check the details against the code.
The short version
- We collect what you type in: account details, a player's recruiting profile (including birthdate, grades, statistics and a photo), the schools and camps you follow, and messages you send us.
- We use it to run the service you signed up for: camp alerts, recruiting-need estimates, the fit-match, the Athlete Resume, and billing.
- We do not sell your information, and we do not share it with advertisers. There are no ad trackers and no third-party analytics on the site.
- Nothing about a player is public. A club coach or a college coach sees a player's information only when the family chooses to share it, and only the fields shown on the sharing screen.
- Players must be 13 or older. Under 18, a parent or guardian must be aware, and can link their own account to manage the player's.
- Deleting your account removes everything tied to it from the live service immediately.
Who we are
Zionballlists college softball camps and models each program's recruiting need from its own public roster history. It is run by its owner, who you can reach through the contact form. There is no staff with access to your data beyond the owner.
Information we collect
What you give us
- Account. Email address, a password stored only as a one-way hash (never as typed), the username you choose, and whether the account is a player, a parent/guardian or a coach. If you sign in with Google or Facebook, that provider sends us your name, email address, profile-picture link and your id at that provider — nothing else, not your contacts, and we never post for you.
- Player recruiting profile. Name, birthdate, graduation year, high school, hometown, positions, throws and bats, height, club team, phone number, social-media handles, achievements, and the coach contact on your resume. Measured athletic figures with dates (pop time, throw velocity, sprint times, exit velocity). Season statistics you enter. GPA, core courses, grades and test scores. A photo and a team logo you upload. We keep a count of resumes generated, not the resume itself.
- A coach's information. Team names and organisation, a default team, discount codes, files of statistics you upload (including rows not yet matched to a player), tournament results you attest for a team season, and the goals and endorsements you write about players on your teams.
- Your activity. Schools you follow, camps you save, mark as going or attended and their stage on your recruiting board, camp reviews you write (private to you — see “Who can see it” below), listings you report as incorrect, and which alerts we've already sent you so we never send one twice.
- Messages. Anything you send through the contact form (name, email, an optional phone number, your message) or the feedback box while signed in, and which reminder emails you have turned off.
- Other people's details you give us. A second parent's or a coach's email address to receive your alerts (we confirm with them before sending anything else), your coach's name and contact on your resume, or an invitation to your club coach (we store only a hash of the coach's email until they accept, never the address itself). By entering someone else's details you confirm you may share them with us; we use them only for the purpose you gave them.
Collected automatically
- Sign-in records. Our authentication system records the IP address and device description of each signed-in session, and keeps a security log of sign-in events that includes the account's email address and IP address — used to recognise a stolen session or a break-in attempt, and for nothing else.
- Cookies. A session cookie that keeps you signed in; a first-touch cookie that remembers which campaign brought you here, for 90 days, so we know what marketing works; and small cookies that remember a page to return you to, or whether you dismissed the install prompt or turned on notifications. No advertising cookies, no third-party cookies.
- Usage events. Actions such as saving a camp or opening a plan page, with your account id while the account exists and the campaign source from the first-touch cookie. Page views are counted with a page path and a time only — no account, no IP address, no device details.
- Notifications. If you turn on notifications: the push service's address for that device, its encryption keys, a platform label, its time zone (so alerts arrive in your daytime), when the app was last opened, and a content-free delivery receipt for each notification.
- Abuse protection. A request counter keyed by your account or IP address, kept for one hour, so a script cannot hammer sign-up or the contact form.
From payment providers
When you subscribe, Stripe (on the website) or Apple (in the app) sends us a customer id, a subscription id, your plan and its renewal date. We never see or store a card number.
What we do not collect
Precise location. Your contacts. Advertising identifiers. Anything from data brokers. We do not run third-party analytics or advertising code, and we do not use your information to train any model.
Public college-roster information
To estimate each program's recruiting need we copy the rosters NCAA programs publish on their own athletics websites: player names, positions, class year, height, hometown, high school, and roster changes season to season. We use this only to model a program's recruiting pattern — we do not build profiles of those athletes or combine this data with anything a Zionball user gives us. A college athlete who would like their entry removed from our copy can ask through the contact form.
Who can see it
Nothing about a player is public by default, and there is no public directory of players. Camp reviews are private to the person who wrote them; the structured ratings on a review may be pooled into an anonymous camp-level figure, never the free-text note.
- A parent or guardianwho links to a player's account can see and manage everything on it, including deleting it.
- A club coachsees a player's information only after the family and the coach have each accepted an invitation, and then sees only a fixed set of fields agreed to on the acceptance screen — never the player's contact details, GPA, academics, self-reported statistics, or which camps or schools they're targeting. Either side can end the link at any time. Statistics a coach uploads are attributed to that coach, are visible to the player, and can be disputed by the player.
- A share linkyou create for your recruiting profile shows the player's name, class year, positions, high school, club team, throws and bats, height, and any coach endorsement — no contact details, academics or camp activity. Anyone with the link can open it; it is not listed anywhere and is not indexed by search engines. You can turn it off at any time.
Companies that process data for us
We use a small number of service providers to run Zionball. Each may use your information only to provide its service to us, under its own terms and privacy policy.
- Our database, sign-in and file-storage platform, hosted in the United States — holds what is described above.
- A hosting provider that delivers the site and app, and keeps its own short-lived request logs (an industry-standard practice we do not export or analyse).
- An email provider that sends every email we send.
- Stripe (website payments) and Apple (app purchases) — each is the controller of your payment details under its own policy.
- Google or Facebook, only if you choose to sign in with them.
- Google's and Mozilla's push services, which deliver notifications to Android and desktop browsers.
We will disclose information if required by legal process, to enforce our Terms of Service, to investigate fraud or abuse, or to protect someone's safety — telling you first where the law allows it. If Zionball is ever sold or merged, your information transfers with it under this same policy, and we will email account holders first. We do not sell personal information and we do not share it for advertising.
How long we keep it
The rule is simple: we keep information while it is doing the job you gave it to us for, and delete it when it is not. Everything you enter is deleted the moment you delete your account, except the fixed windows below — the same numbers our cleanup job reads, so this page and the job cannot disagree.
- Contact-form messages (no account needed) — 180 days.
- An unclaimed invitation to your coach — 30 days.
- A one-click “track this camp” link from an alert email — until used, or 30 days.
- A device you turned notifications on for — 180 days after the app was last opened.
- An alert queued for delivery to your devices — 30 days after delivery or expiry.
- A notification delivery receipt (no content) — 90 days.
- The email digest sign-up (no account) — until you unsubscribe.
- Raw page-view rows — 2 hours, then folded into totals that hold nothing personal.
- An abuse-protection counter — 1 hour.
Two things fall outside your account's cascade. Sign-in security logs (above) are kept by our authentication system and are not yet on a fixed deletion schedule, though a specific entry is removed if you ask. And routine encrypted database backups exist briefly for disaster recovery, are rotated on our provider's regular schedule, and are never used to reconstruct a deleted account.
Full table, by database location
Your account
What identifies you to the site and lets you sign in.
| Where | What it holds | Why | Kept | On deletion |
|---|---|---|---|---|
| auth.users | email address, a hashed password, sign-in timestamps | signing in; confirmation and password-reset mail | for as long as the account exists | deleted with your account |
| auth.identities | for a Google or Facebook sign-in: your id at that provider, and the name, email address and profile-picture link it sent | signing in with Google or Facebook | for as long as the account exists | deleted with your account |
| usernames | the username you chose | signing in with a username; the name shown in the header | for as long as the account exists | deleted with your account |
| account_roles | whether the account is a player, a parent/guardian or a coach | which pages and invitations apply to you | for as long as the account exists | deleted with your account |
Sign-in security
Written by our authentication system itself, not by this app, when you sign in.
| Where | What it holds | Why | Kept | On deletion |
|---|---|---|---|---|
| auth.sessions | the IP address and browser/device description of each device you are signed in on | recognising a stolen session or an unusual sign-in | until you sign out or the session expires | deleted with your account |
| auth.audit_log_entries | the account's email address, its IP address, and the type of sign-in event (sign-in, password reset, and similar) | investigating a break-in attempt or a compromised account | kept by our authentication system; it is not yet on a fixed automatic deletion schedule, but a specific entry is removed if you ask | removed on request |
Player profile, stats and academics
Entered by the player or their guardian. Most players here are under 18; see the section on minors.
| Where | What it holds | Why | Kept | On deletion |
|---|---|---|---|---|
| player_profiles | name, birthdate, positions, graduation year, high school, GPA, and the Athlete Resume fields (hometown, phone, team, coach contact, social handles, achievements, photo and logo paths) | the recruiting need shown for your position and class year; the resume; the onboarding wizard | for as long as the account exists | deleted with your account |
| player_measurables | measured athletic figures (pop time, throw velocity, sprint times, exit velocity) with dates | your profile and resume | for as long as the account exists | deleted with your account |
| player_reported_stats | season stat lines you entered | the fit-match comparison against each program's recruits | for as long as the account exists | deleted with your account |
| core_courses | core courses, grades and test scores | the academic eligibility summary | for as long as the account exists | deleted with your account |
| resume_generations | when you generated a resume (a count, not the file) | the free tier's monthly resume limit | for as long as the account exists | deleted with your account |
| storage:resume-assets | the athlete photo and team logo you uploaded | the Athlete Resume | for as long as the account exists | deleted with your account |
Schools, camps and your recruiting board
What you follow, save, track and report.
| Where | What it holds | Why | Kept | On deletion |
|---|---|---|---|---|
| school_subscriptions | the schools you follow | camp alerts for those schools | for as long as the account exists | deleted with your account |
| saved_camps | camps you saved, marked going or attended, and their board stage | My Camps and the recruiting board | for as long as the account exists | deleted with your account |
| camp_reviews | reviews you wrote after a camp: structured ratings (coach interaction, whether it ran as an evaluation, whether you heard back) and an optional private note | your own recruiting board; the structured ratings (never the note) may be pooled into an anonymous camp-level figure shown to other families | for as long as the account exists | deleted with your account |
| event_reports | camps you reported as incorrect | alerting us when several people report the same listing | for as long as the account exists | deleted with your account |
| school_alert_log | which camp alerts we sent you | never sending the same alert twice | for as long as the account exists | deleted with your account |
| crm_touch_log | which lifecycle reminders we sent you and when | the frequency cap on reminder mail | for as long as the account exists | deleted with your account |
| board_add_tokens | single-use links from alert emails | adding a camp to your board from an email with one click | until used, or 30 days | deleted with your account |
Plan and billing
Card details are never held here; Stripe (and, in the app, Apple) hold them.
| Where | What it holds | Why | Kept | On deletion |
|---|---|---|---|---|
| billing_accounts | your plan, Stripe customer and subscription ids, renewal date, the calendar-feed token | which tier you are on; the calendar feed | for as long as the account exists | deleted with your account |
| plan_history | each change of plan and when | cohort retention reporting | for as long as the account exists | deleted with your account |
| downgrade_comms_sent | that we sent you a one-time notice about a plan change | sending it once | for as long as the account exists | deleted with your account |
| coach_promo_redemptions | that a coach's discount code was used at checkout | attribution for coach discount codes | kept for reporting, without the person | kept without any reference to you |
Alerts, email and messages
Who we email, what they asked for, and what you wrote to us.
| Where | What it holds | Why | Kept | On deletion |
|---|---|---|---|---|
| alert_recipients | email addresses you added to receive your alerts, and whether they confirmed | sending camp alerts to both parents or a coach | for as long as the account exists | deleted with your account |
| email_preferences | which reminder streams you have turned off, and your unsubscribe token | honouring one-click unsubscribe per stream | for as long as the account exists | deleted with your account |
| signup_comms_sent | that we sent you a one-time follow-up after you signed up | sending it once | for as long as the account exists | deleted with your account |
| push_subscriptions | each phone or computer you turned notifications on for: the push service's address for it, its encryption keys, a platform label (iPhone, Android, computer), its time zone, and when it last opened the app | camp alerts on your lock screen, delivered in your device's daytime | 180 days after the app last opened, or sooner if the push service reports the device gone | deleted with your account |
| push_outbox | each camp alert that was emailed to you and is queued for your devices: the school, the camp, a title and a one-line summary | delivering the same alert as a notification | 30 days once delivered or expired | deleted with your account |
| push_deliveries | that a notification was sent to one of your devices, and whether the push service accepted it — no content | never sending the same alert to the same device twice; counting opens | 90 days | deleted with your account |
| subscribers | an email address, a state and a graduation year for the daily digest (no account needed) | the email digest of new camps | until you unsubscribe | removed on request |
| contact_messages | a name, an email, an optional phone and your message from the public contact form | replying to you | 180 days | expires on its own |
| feedback_submissions | feedback you sent while signed in | replying to you and improving the product | for as long as the account exists | deleted with your account |
Guardians and coaches
Relationships you agreed to. A coach sees a player's data only after both sides said yes.
| Where | What it holds | Why | Kept | On deletion |
|---|---|---|---|---|
| guardian_links | which parent/guardian account is linked to which player account, and its status | a guardian managing a minor's account | for as long as the account exists | deleted with your account |
| teams | a coach's team names and organisation | the club hub | for as long as the account exists | deleted with your account |
| team_links | which player accepted which team's invitation, and who initiated it | the consent that lets a coach see a player's recruiting progress | for as long as the account exists | deleted with your account |
| coach_invites | a hash of the invited coach's email (never the address), the note, and the status | a family inviting its coach | 30 days | deleted with your account |
| coach_preferences | a coach's default team | the club hub | for as long as the account exists | deleted with your account |
| coach_promo_codes | a coach's discount codes | discounts for the coach's families | for as long as the account exists | deleted with your account |
| coach_verified_stats | stat lines a coach uploaded about a player, the file row they came from, and any dispute | coach-verified stats in the fit-match; the dispute trail | for as long as the account exists | deleted with your account |
| team_stats_pending_rows | rows from a coach's upload not yet matched to a player | matching an upload to the roster | for as long as the account exists | deleted with your account |
| team_level_evidence | tournament results a coach attested for a team season | the travel-team level index | for as long as the account exists | deleted with your account |
| player_team_season_links | which team season a player's stats belong to | level-adjusted stats | for as long as the account exists | deleted with your account |
| player_goals | goals a coach set for a player and the player's responses | 1:1 goal tracking | for as long as the account exists | deleted with your account |
| coach_endorsements | an endorsement a coach wrote for a player | the player's profile | for as long as the account exists | deleted with your account |
Usage analytics
How the site is used, without who you are.
| Where | What it holds | Why | Kept | On deletion |
|---|---|---|---|---|
| events | actions such as saving a camp or opening a plan page, with the account id while it exists, and the first marketing source you arrived from; if you answer the optional "How did you find Zionball?" question during setup, your answer and anything you type in its optional "Which one?" box (for example a coach's or club's name) | funnel and attribution reporting | kept, with the account reference removed on deletion | kept without any reference to you |
| page_views | a page path and a time — no account, no IP address, no device details | traffic counts | 2 hours as raw rows, then hourly totals only | never tied to a person |
| filter_usage | which catalog filters were applied | finding gaps in the catalog | kept as counts | never tied to a person |
| rate_limit_events | a request counter per key (an account id or a network address) | stopping abuse | 1 hour | expires on its own |
| account_deletions | that an account of a given type and plan was deleted, and counts of what it held — no id, no email, no name | knowing how many accounts leave | kept as counts | never tied to a person |
Players under 18
You must be at least 13 years old to create an account. We do not knowingly collect personal information from anyone under 13; if we learn that a profile belongs to a child under 13 we delete the profile and the account. A parent who believes a child under 13 has created an account can tell us through the contact form and we will delete it.
Most players who use Zionballare between 14 and 18. Before a player under 18 can save a profile, the site asks them to confirm that a parent or guardian is aware of it. A parent or guardian can create their own account, link it to the player's, and manage it, including deleting it. We store a player's birthdate, grades and statistics because the recruiting-need and fit-match features depend on them, and for no other reason. A player under 18 can delete anything they posted, or the whole account, at any time.
A coach sees a player's recruiting information only after both sides have agreed, and then only the fixed list of fields described above. Either side can end the link.
Payments
Subscriptions on the website are billed by Stripe; in the iPhone app they may be billed by Apple. We never see or store your card number. We store the identifiers those companies give us so we know which plan you are on. No payment card data is held by this site.
Cookies and analytics
The site sets a session cookie so you stay signed in, and a first-touch cookie that remembers which campaign brought you here (for 90 days) so we know what marketing works. There are no advertising cookies, no advertising identifiers, and we do not collect your location or your contacts. Page views are counted without who you are: no IP address and no device details are stored. We do not track you across other sites, so there is nothing for a browser's Do Not Track signal to switch off.
Email and notifications
We send account mail (confirmation, password reset), the camp alerts you asked for, and a small set of reminders about camps you saved, each of which you can turn off separately from any of those emails. If you turn on notifications on a phone, the same camp alerts arrive there.
Security
Traffic to and from Zionball is encrypted in transit, and our providers encrypt stored data at rest. Passwords are stored only as one-way hashes. Database rules restrict each account to its own rows, and the recruiting-model tables are never readable directly from a browser. No method of storage or transmission is perfectly secure; if a breach affects your information we will notify you as required by law.
Your choices
- Delete your account and everything it holds at Account settings. The deletion is immediate and cannot be undone; the page shows you exactly what will go first.
- If you sign in with Google or Facebook, we receive your name, email address and profile-picture link from that account, and nothing else: not your contacts, and we never post for you. Deleting your account removes them. You can also remove Zionball from the apps connected to your Google or Facebook account.
- Unsubscribe from any email stream using the link in that email, or unfollow a school to stop its alerts.
- Ask to see or get a copy of what we hold about you, or ask us anything else about your data, through the contact form. We confirm your identity through the email address on the account and respond within 45 days.
- California residents: we do not sell or share personal information, and you will not be treated differently for exercising the rights above.
Where your information is kept
Zionball is a United States service. Our database and hosting are in the United States. If you use Zionballfrom another country, your information is transferred to and processed in the United States, where privacy law may differ from your country's.
Changes
When this policy changes, the effective date at the top changes with it. If a change materially affects how we use information you have already given us, we will email account holders before it takes effect. Because the data inventory is generated from the site's configuration, it updates the moment the site does. Our Terms of Service cover the rest of using Zionball.