Privacy Policy

LAST REVISED: OCTOBER 17, 2026

This Privacy Policy describes our policies and procedures on the collection, use, and disclosure of your information when you use Trainify. It also informs you about your privacy rights and how the law protects you. By using the Service, you agree to the collection and use of information in accordance with this Privacy Policy. We use your personal data only to provide and improve the Service.

This policy covers the Trainify iPhone app, the Trainify coach website at team.trainifylabs.ai, and the team features that schools, clubs, and other programs use. If you use Trainify on Android, the Trainify Android Privacy Policy at trainifylabs.ai/legal/android/privacy applies to the Android app.

Interpretation and Definitions

Interpretation

Words with the initial letter capitalized have specific meanings defined below. These definitions shall have the same meaning regardless of whether they appear in singular or in plural form.

Definitions

For the purposes of this Privacy Policy:

• Account – means a unique account created for you to access our Service, whether through Sign in with Apple, Google sign-in, an anonymous account the app creates automatically when you use Trainify without signing in, or, on the Coach Website, Google sign-in or a one-time sign-in link sent to your email address.

• Affiliate – means an entity that controls, is controlled by, or is under common control with a party. "Control" means ownership of at least 50% of the shares, equity interest, or other securities entitled to vote for the election of directors or other managing authority.

• Application – refers to Trainify, the basketball training application provided by the Company, including the Trainify App Clip.

• Coach Website – refers to the Trainify website for coaches and Program Staff at team.trainifylabs.ai.

• Company (referred to as "the Company", "We", "Us" or "Our" in this Agreement) – refers to Trainify Labs Inc, located at 1098 Foster City Blvd STE 106 – #888, Foster City, CA 94404.

• Country – refers to California, United States.

• Device – means any device that can access the Service, such as a smartphone, tablet, or computer.

• Personal Data – is any information that relates to an identified or identifiable individual.

• Program – means a school, club, or other organization that uses Trainify team features for its teams.

• Program Staff – means the head coach, assistant coaches, and other staff whom a Program authorizes to use team features, including program administrators.

• Roster Entry – means a player's name and basic team details that Program Staff give us before the player joins the team in the Application.

• Service – refers to the Application, the Coach Website, the challenge web pages at challenge.trainifylabs.ai, and any related services provided by the Company.

• Service Provider – means any natural or legal person who processes data on behalf of the Company. This includes third-party companies that host our backend and websites, store files, run analytics, provide AI model inference, deliver text-to-speech, send email, measure advertising, or manage subscriptions on our behalf.

• Sub-processor – a Service Provider that processes Personal Data on behalf of the Company under a data processing agreement.

• Team Member – means a player who has joined a Program's team in the Application.

• Usage Data – refers to data collected automatically, either generated by the use of the Service or from the Service infrastructure itself (for example, device type, app version, the duration of a session, or crash reports).

• Workout Data – data generated when you use the Service during a basketball training session, including shot counts, shot outcomes, shooting-form metrics, session duration, focus areas, coaching feedback, and related analytics.

• You – means the individual accessing or using the Service, or the company or other legal entity on behalf of which such an individual is accessing or using the Service.

Collecting and Using Your Personal Data

Types of Data Collected

Personal Data

While using Our Service, We may ask You to provide Us with certain personally identifiable information that can be used to contact or identify You. Depending on how you use Trainify, personally identifiable information may include:

• First name and last name

• Email address, when you sign in with Apple or Google (including a private relay address if you use Apple's Hide My Email)

• A phone number, only if you add one to your profile

• A username, and optionally a display name, short bio, and profile (avatar) photo

• Date of birth (we enforce a minimum age of 13)

• Height and weight with your preferred units — asked during onboarding and editable at any time in your profile. These onboarding steps start from a prefilled value, so continuing past them saves that value even if you do not change it

• Gender, asked during onboarding as one of male, female, or prefer not to say

• Basketball skill level, primary position, team status, team level, and playing situation

• Your dominant hand (left or right) and whether you currently work with a trainer or coach, asked during onboarding. These two answers stay on your device — they are not stored in your account profile — and are sent to our analytics provider as profile properties, as described under Analytics below

• Training goals, daily shots target, weekly and daily workout targets, training days and reminder times, a long-term aspirational goal, and the training struggles you select from a fixed list (the choices include physical limitations and injuries)

• How you found Trainify, whether you have used other training apps, and any free-text description you provide

• Preferred language and time zone

• If you join a team: your graduating class, up to two positions, and your jersey number, as described under "Team Sharing and Coach Chat" below

• Authentication identifiers: a token from Apple or Google when you sign in with those providers, or an anonymous account identifier created automatically when you use the app without signing in. If you later sign in, the data from your anonymous account is migrated into your signed-in account. Trainify does not use passwords.

If you are a coach or other Program Staff, we also collect your first and last name, your email address, your date of birth (to confirm that you are 18 or older), a username we create for you, your staff role, and the team details you or Trainify staff enter for your Program — such as the team name, level, time zone, logo, and colors — as described under "Information Programs Give Us" below.

Some of this information — particularly date of birth, height, weight, gender, and any injury-related selections — may be considered sensitive under laws such as the California Privacy Rights Act. We collect it solely to personalize your training experience and to generate appropriate coaching. Your height and weight are never sent to our analytics provider, as events or as profile properties, and your date of birth is not sent either — only the age in years derived from it. The onboarding controls that display a height, a weight, or a date of birth are masked in session replays; see Analytics below.

Usage Data

Usage Data is collected automatically when using the Service.

Usage Data may include information such as the type of mobile device You use, Your mobile operating system, unique device identifiers, app version, language, time zone, the IP address at the time of network requests, crash reports, and other diagnostic data.

Usage Data may also include information about how You interact with the Service, such as which features and screens you open, the time and date of your sessions, camera setup time, records of errors, and the session replay data described under Analytics below.

Workout Data

Each workout generates data that We store so you can track progress over time and so our AI coach can give you relevant feedback. This includes start and end time, session duration, the workout title and description (including any text you enter), total shots attempted, shots made, shots missed, shots the detector could not classify, shot breakdown by type (three-pointers, mid-range, layups, free throws), shot locations where available, per-shot shooting-form measurements derived from on-device body-pose analysis (for example elbow angle at release, knee bend, release height, and entry angle) along with your personal form baseline, workout type (structured or freestyle), focus areas, drill or phase data, the effort level you report, your post-workout feedback (rating, categories, and optional written comment), AI coaching feedback and summaries, any optional workout photo you attach, unlocked achievements, your player rating, streaks, daily aggregate statistics, and your workout plans and schedule.

Workout Data is stored on our backend through our hosting provider and is also cached locally on your device for offline access. You may delete all of your Workout Data by deleting your account, or contact us to request deletion of specific data.

Camera Data and On-Device Processing

The camera is used during workouts to detect shots and analyze your shooting form. This processing happens on your device: ball and rim detection, shot outcome classification, and body-pose analysis all run locally using Apple frameworks and our on-device machine-learning models. Camera frames are not transmitted to our servers or to any third party, and are not retained after processing. Only the derived numeric results — shot outcomes, shot locations, and shooting-form metrics — leave the device, as part of your Workout Data. A previous version of this policy described transmitting short sequences of camera frames to our AI provider for coaching analysis; the current app does not do this — coaching prompts contain text and numbers only. If we introduce cloud video analysis in the future, we will update this policy and ask for your consent first.

Workout Video Recordings

The app records video of your workout sessions unless you turn recording off. Recordings do not include audio. They are stored in the app's local storage on your device and can be saved to your Photos library; by default they are not uploaded anywhere.

You can choose to back up your recordings to cloud storage; uploading is available to subscribers who are 18 or older, and our servers refuse uploads from users under 18 or whose age we do not know. Backup starts only after you tap "Back up my videos" on the cloud backup consent sheet. That one choice covers three uses together: (1) storing your videos in private cloud storage under your account, (2) letting authorized Trainify staff view your videos to check and improve shot detection, and (3) using your videos to improve our detection and coaching models. If you close the sheet without tapping the button, nothing is uploaded and your recordings stay on your device. Your choice is recorded in a consent ledger together with the policy version, and our servers refuse video uploads without recorded consent. Cloud-stored videos are held in Cloudflare object storage under your account and are deleted when you delete your account, or earlier on request.

You can withdraw consent at any time with the cloud backup switch in Settings or by contacting us. Withdrawal stops future uploads and our use of your videos to improve our models, and you may request deletion of videos already uploaded.

Audio and Voice Data

If you enable voice interaction ("Hey Coach"), your microphone is used during workouts to listen for the wake word and your questions. Wake-word detection uses Apple speech recognition on your device where the device supports it. Your spoken questions are transcribed using Apple's server-based speech recognition, which transmits that audio to Apple; voice recognition currently operates in English. Only the resulting text — not the audio — is sent to our AI coach to answer your question. We do not record or store your voice audio.

When our AI coach speaks to you, the coaching text is sent to our text-to-speech provider, which returns synthesized audio. These requests contain no account identifiers; for adult users the text can include your first name when the coach addresses you, and names are omitted for users under 18. The short per-shot encouragement lines are pre-recorded audio files bundled with the app and play without any network request.

The coach also speaks during onboarding and once afterwards. A few of those lines are synthesized the same way: the welcome greeting, the short explanation of how to set your phone up, the read-out of the training plan we build for you, the first-session offer on your dashboard right after onboarding, and the sample coaching cue you can tap to hear (a fixed line that never contains your name). The remaining onboarding coach audio is pre-recorded and bundled with the app. For the setup explanation, the plan read-out, and the first-session offer we omit your first name when you are under 18 and whenever we do not yet know your age. The welcome greeting comes before we ask your date of birth, so it can include the first name you entered a moment earlier. None of these requests contain an account identifier, your date of birth, or any body measurement.

AI Coaching — What We Send to Our AI Provider

Our AI coach runs on Google's Gemini models. During workouts, coaching prompts contain your recent per-shot form metrics (as numbers), your makes and attempts, the coach's own previous tips, and your language preference — no name, email, or account identifier. The post-workout summary and the coach question-and-answer features additionally include your first name, skill level, position, aspirational goal, selected training struggle, player ratings and recent performance trends, recent achievements, and the question you asked. We never send your email address, account identifier, date of birth, or precise measurements to the AI provider. The coach chat is unavailable to users under 13. For users aged 13–17 — and whenever we do not know your age — all coach AI features (chat, voice Q&A, and post-workout summaries) run in a de-identified mode that omits your name.

Coach Notes

When you tell the coach chat a lasting fact about yourself, such as a goal, the days you can train, your team or position, a training preference, or an injury to work around, the coach may keep a short note so that later answers fit you. For adults, a note about a goal, your schedule, your team, or a training preference that you stated (not asked about) is saved when the reply appears and is shown under the reply with an Undo button. Any other note, including any note about health such as an injury, pain, illness, medicine, mental health, pregnancy, or disability, is saved only if you tap Save. For users aged 13–17, every note needs a tap on Save, and notes about health or containing the user's name, an email address, or a phone number are never suggested or saved. You can keep at most 20 notes of up to 140 characters each. Notes are stored only on your device, separately for each account. They are not stored on our servers, are not shown to team coaches or teammates, are not sent to analytics or crash-reporting services, and are hidden in analytics session replays. When the coach chat sends a question to Google's Gemini service, your saved notes are sent with it to personalize the answer, as described in "AI Coaching" above; questions the app answers on the device send nothing. You can see and delete each note in Profile under "What Coach knows about you"; turning off personalization there stops the coach from using notes and from saving new ones. Notes are deleted from the device when you sign out or delete your account.

Reporting an AI Reply

Reporting is optional. When you select an AI reply and choose a reason (on Android, then tap Send), Trainify sends that reply, the reason, the feature where it appeared, and your Trainify account identifier to its Supabase reporting database. The server adds receipt and deletion timestamps. A report does not include your original prompt, the rest of your conversation, microphone audio, photos, video, or separate workout measurements. Any information already written in the selected reply is part of that reply. Authorized Trainify staff can review reports through controlled server access to investigate unsafe, offensive, or incorrect output and improve coaching safety. Other app users cannot read your report. Reports are deleted from the reporting database within 30 days of receipt, or when your account is deleted, whichever comes first. Report text is not sent to analytics or crash-reporting services.

Contacts (Optional Friend Finding)

If you choose to find friends from your contacts, we ask for Contacts permission. Your contacts never leave your phone: the app computes one-way cryptographic hashes (SHA-256) of the phone numbers and email addresses in your address book on your device and sends only those hashes to our backend, where they are matched against the hashed contact details of Trainify users who have made their profiles public. The submitted hashes are used only to perform the lookup and are not stored. Raw names, phone numbers, and email addresses from your address book are never uploaded. A hash of your own sign-in email may be stored with your profile so that friends can discover you the same way. You can decline Contacts access, or revoke it at any time in iOS Settings.

Social Features, Challenges, and Public Pages

Trainify's social features are optional. Your profile is private by default; you can make it public in Settings. A public profile makes your username, display name, bio, avatar photo, primary position, language, and player rating visible to other Trainify users through search, contact matching, friends, and challenges. Friends can additionally see your challenge history and a friends-only leaderboard with wins, losses, ties, and scores. When you share a challenge, the share link opens a public web page at challenge.trainifylabs.ai that shows the matchup — both players' public profile details and challenge scores — to anyone who has the link. Avatar photos and workout photos are stored at publicly reachable URLs: they are not listed anywhere, but anyone who has the exact link can view them, so do not attach photos you would not want visible outside the app.

The Trainify App Clip (the lightweight experience that opens from a challenge link) receives only the challenge details and the sender's public profile, and when you accept a challenge it sends back a randomly generated per-device token. It does not collect your name, contacts, account information, or location.

Information Programs Give Us

When a Program sets up Trainify, Program Staff — or authorized Trainify staff who help them with setup — give us information about the Program and its teams:

• Staff details: the names, email addresses, and roles of the head coach and other staff, so that we can send each of them a personal sign-in link.

• Roster Entries: each player's name and, if the Program provides them, the player's graduating class, position, jersey number, and whether the player is returning. We use a Roster Entry to prepare the team and to connect the player to it when the player joins. A Roster Entry does not create a Trainify account. We do not ask Programs for players' email addresses, phone numbers, or dates of birth.

• Team look: the team name, level, logo, and colors. Team logos are stored at publicly reachable URLs so that they can appear in the app and on the Coach Website.

• Program context: the team's offensive and defensive style, pace, season goals, and last season's record. We use it to suggest plays and drills that fit the team. It is not sent to our AI provider.

• Coaching settings: how many days without a workout mark a player as slipping or inactive, whether the team leaderboard is visible to players, and whether a coach receives a weekly report.

• Player focus: a short note from Program Staff about what a player should work on. Only Program Staff can see it, and it is not sent to our AI provider.

Program Staff must give us only information that they are allowed to share under their Program's rules. Trainify staff who help with setup can create and change a Program's teams, staff invitations, Roster Entries, logos, and colors, and we keep a record of each setup change. Their setup tools do not show players' training data.

Team Sharing and Coach Chat

When Team Manager is available to your program, joining a team is optional and requires a real account and acceptance of the team-sharing consent sheet, which identifies the head coach and staff. Your head coach and assistant coaches can see your name, avatar, basketball profile, past and future saved workouts, training totals and activity, shot charts where available, shooting-form metrics and baselines, achievements, ratings, and saved coaching feedback while team access is authorized. This does not expose your email, phone number, date of birth, survey answers, or private heart-rate settings. Workout recordings you back up to the cloud become viewable by your head coach and assistant coaches only after you accept the team-sharing consent version that names recordings; the app shows a separate in-place prompt when a newer version applies to a team you already joined. Recordings that stay only on your device are never shared, and coaches receive short-lived playback links that cannot save, export, or forward a recording. Teammates see your name, avatar, rank, and selected leaderboard value (rating, accuracy, total shots, or streak); accuracy also shows makes and attempts. They cannot see your individual sessions, activity dates, shot charts, form metrics, or heart-rate summaries through the team leaderboard. Program Staff can hide the team leaderboard from players. Team sharing does not require making your profile public.

If your Program asks for them when you join, you can add your graduating class, up to two positions, and your jersey number. Program Staff see these details on the roster. If the Program created a Roster Entry for you, your personal team link connects your account to it.

Depending on the features your Program uses, Program Staff can also give you assignments and see your progress on them; send you written feedback that only you and Program Staff can read, and that you can report to us; send you a reminder to train, which appears in the app; place you in groups, whose names you can see; and see whether and when you opened a play they shared, and how many times. Program Staff can write private notes about a player. Only Program Staff can read these notes, and they are never sent to our AI provider. A coach may also see in-app alerts about players who have stopped training. Announcements that Program Staff post, including shout-outs that name a player, are visible to all Team Members. We keep a record of when Program Staff watch a Team Member's recording. Only authorized Trainify staff can read that record, and we use it to protect players.

Weekly reports: when this feature is switched on, a coach can choose to receive a weekly email about the team at the coach's sign-in email address. The report shows team totals and trends, and it can name the most active players and up to three players who need attention. Reports are sent through our email provider, Resend. This feature is not yet switched on.

Program administrators: a Program's administrators can see totals for each of the Program's teams, such as the number of players and active players, sessions, repetitions, and shooting percentage. These totals do not name players.

Recruiting summary: you can choose to turn on "Share my development summary with recruiters" for a team. While it is on, Program Staff on a paid plan can create a summary with your name, graduating class, position, season sessions, repetitions, and form score, practice shooting percentage and target, a six-week shooting trend, and completed assignments. They can save it as a PDF and share it with recruiters outside Trainify. The summary contains no videos, photos, or notes. A player under 18 can be included only after a parent or guardian approves. You can turn sharing off at any time, but we cannot recall a summary that Program Staff have already shared outside Trainify.

Heart-rate sharing has its own controls. Joining a team does not enable heart-rate collection, cloud storage, coach display, or AI use. Heart-rate summaries may be shown to coaches only after the separate heart-rate program and coach-display controls are enabled and you record that data. Those controls are currently off in production. Team chat currently includes no heart-rate statistics; any future inclusion requires the separate AI-use gate and an approved data contract.

The team's coach chat uses training summaries to answer staff questions. Recognized factual questions are answered on-device. For model-generated answers, team chat sends summary statistics, the question, and a limited recent conversation to Google's Gemini service using pseudonymous player tokens such as P01, never player or coach names, regardless of age. Names are replaced on-device before transmission, and player names are restored locally in replies. The name-to-token map stays on-device. Raw shot arrays, shot locations, videos, contact details, dates of birth, private heart-rate settings, player focus, Program Staff's private notes about players, and program context are not included. A player's "Allow your AI coach?" choice controls that player's own coach features; team chat sends only these de-identified statistics. Team chat history is stored on the coach's device, separately for each coach and team, and can be cleared in chat; it is also cleared when the app detects that the coach has left or been removed, on sign-out, and on account deletion. If team chat is available on the Coach Website, it follows the same rules, its requests pass through our server to Google's Gemini service, and its history is stored in the coach's browser.

To stop sharing, open your team from Profile and choose Leave team, then confirm. Joining records your consent and its policy version for that team; leaving records its withdrawal and ends future server access to your training data through that membership. If a coach also coaches another team you belong to, access through that other team remains until you leave it too. Leaving a team does not delete your personal workout history. A coach's device clears affected cached views and conversation history when it refreshes the changed membership or roster.

Players must be at least 13 to join a team. For players aged 13–17, the Program is responsible, under its agreement with Trainify, for obtaining any parent or guardian consent that the law or the Program's own rules require before it invites the player, and the player must still accept the in-app team-sharing consent sheet. The Program's agreement identifies the authorized Program Staff. Team membership does not replace the separate consents and controls described elsewhere in this policy.

Coach Website

Program Staff can use the Coach Website at team.trainifylabs.ai to set up teams, manage the roster, share plays, and view the team information described above. Coaches sign up with Google and sign in with Google or with a one-time sign-in link sent to their email address. Trainify staff may send a coach a personal setup link; that link works once and expires after 14 days.

The Coach Website does not use analytics, advertising, or tracking tools, and it does not set cookies of its own. Your browser keeps a few items in its local storage so that the website works: your sign-in session (until you sign out), a pending setup link (1 hour), your setup answers while you complete team setup (24 hours), a welcome message after you join a team (14 days), and the colors detected from your team logo. If team chat is available on the Coach Website, its conversation history is also kept in your browser and is cleared when you sign out. You can clear these items at any time in your browser settings.

Subscription and Purchase Information

If you subscribe, purchase transactions are processed by Apple through the App Store, and your subscription state is managed by our subscription provider, RevenueCat. We receive and store subscription status, trial and expiration dates, and entitlement flags; we do not receive your payment card details. RevenueCat receives your account identifier, purchase transactions, your email address and display name (so we can locate your account when you contact support), device identifiers (the identifier-for-vendor and, only if you allow tracking, the advertising identifier), the IP address of its requests, the Apple ad-attribution token, and an anonymous Meta identifier used for the advertising measurement described below.

Advertising Measurement

We advertise Trainify (for example on Meta platforms) and measure whether those ads lead to installs and subscriptions. For this we use the Meta (Facebook) SDK and Apple's SKAdNetwork framework. The Meta SDK starts when the app opens, before we ask your age, and logs app install and session events and a "registration completed" event, and — only if you allow tracking in the App Tracking Transparency prompt — the device advertising identifier (IDFA). Our subscription provider also reports trial starts, subscriptions, and purchases to Meta on our behalf for ads measurement. We use this solely to measure and improve our own advertising; Trainify displays no third-party ads. Under the California Privacy Rights Act these disclosures to Meta may be considered "sharing" of personal information for cross-context behavioral advertising — see Your Privacy Rights below for how to opt out. The Coach Website does not use the Meta SDK or any other advertising tool.

Notifications

Training reminders are local notifications scheduled on your device at the times you choose. They are created and delivered entirely on-device. We do not currently send remote push notifications or collect push tokens. Reminders to train that Program Staff send appear inside the app. If we add remote push notifications, we will ask for your permission first and update this policy.

Information We Do Not Collect

We do not collect precise geolocation (neither the app nor the App Clip requests location access), the contents of your contact list (only the one-way hashes described above, and only if you opt in), health data from Apple Health (an optional integration is planned for a future version and will be introduced with its own consent prompt and a corresponding update to this Privacy Policy), or biometric identification templates — our body-pose analysis measures shooting form and is not used to identify you. We do not collect email addresses, phone numbers, or dates of birth of players from Programs. We do not display third-party advertising in the app and we do not disclose your information to data brokers.

Use of Your Personal Data

The Company may use your Personal Data and other information for the following purposes:

• To provide and maintain our Service: We use data to operate the app and the Coach Website, authenticate your account, and monitor usage of our Service to ensure it functions as intended and to improve performance.

• To personalize training and coaching: We use your profile, goals, and workout history to generate personalized drills, feedback, and progression recommendations.

• To generate AI coaching feedback: We transmit workout metrics, coaching context, and your questions to our AI model provider as described in "AI Coaching" above.

• To sync progress across devices and enable history: Workout sessions, daily statistics, achievements, and plans are synced to our backend so you can see your progress across sessions and devices.

• To operate social features: To match you with friends you invite or search for, run challenges, and render the public profile and challenge pages described above.

• To operate team features for Programs: To set up a Program's teams, send staff and players their invitations, show Program Staff the team information described under "Team Sharing and Coach Chat", suggest plays and drills that fit the Program's style, and send the reports a coach asks for.

• To manage Your Account: If you register an account, we use the personal information you provided to manage your user account and to allow you to log in and access specific features available only to registered users.

• For the performance of a contract: When you make a purchase or subscribe to a service through the app, we process your information to fulfill that transaction and to provide you with the purchased features or services. This includes verifying your subscription status and giving you access to premium content as applicable. When a Program uses Trainify under an agreement with us, we process its information to perform that agreement.

• To contact you: We may use your contact information to respond to your support requests and to send important information regarding the Service, such as security alerts or material changes to our terms and policies.

• To send you marketing communications: With your consent or as otherwise permitted by law, we may send information about new features or offers. You can opt out of marketing communications at any time; service and security messages are not affected. We do not send marketing communications to players through a Program's team features.

• For analytics and product improvement: Personal and usage data may be analyzed to identify usage trends and to evaluate and improve our Service and user experience. The profile properties we send to our analytics provider include your gender, your dominant hand, whether you work with a trainer, your playing situation and team status, your skill level, goals, language, the age in years derived from your date of birth, and your subscription status. We do not send your height, weight, or date of birth. Our analytics provider also captures session replay screenshots of the app interface. Typed text fields are masked in replays, as are the onboarding height, weight, and date-of-birth controls, and the live camera view is not captured — replays show the app's interface, not your camera footage. Images that the app shows, such as profile photos, can appear in replays.

• To measure advertising: As described in "Advertising Measurement" above.

• To improve our models, with consent: If you consent as described under "Workout Video Recordings", your cloud-backed workout videos may be reviewed by authorized Trainify staff and used to improve our on-device detection and coaching models.

• To diagnose crashes and technical issues: We use diagnostic data and error reports to detect and fix bugs.

• For business transfers: If we are considering or undergoing a merger, acquisition, restructuring, or sale of all or part of the Company's assets, your personal data may be among the assets transferred to evaluate or carry out that transaction. Information that a school gave us remains subject to the school's agreement and to student privacy law after any such transfer.

• To comply with law, enforce our Terms, and protect rights: Any of the above data may be used as needed to meet legal obligations, enforce our agreements, or protect our users, the public, and Trainify.

We do not use your personal information for automated decisions that produce legal or similarly significant effects.

Service Providers and Sub-processors

We rely on the following third parties to operate the Service. Each is contractually required to process your information only as instructed by Us, except where they act as independent controllers for their own operational data.

• Supabase (Supabase, Inc., United States) – provides authentication, database, server functions, and file storage. Receives account identifiers and email addresses, your profile, workout sessions and metrics, daily statistics, achievements, player ratings, plans, challenge and friends data, hashed contact lookups, avatar photos, any optional workout photos, and team information, including Program Staff details, Roster Entries, team logos, and the team data described under "Team Sharing and Coach Chat".

• Cloudflare (Cloudflare, Inc., United States) – provides object storage for workout video recordings you have consented to back up to the cloud.

• Vercel (Vercel Inc., United States) – hosts our websites, including the Coach Website and the challenge pages. Receives the requests your browser makes to those websites, including your IP address, browser details, and the pages you open, and passes Coach Website requests to our backend.

• Google – Gemini API (Google LLC, United States) – provides AI model inference for coaching feedback, summaries, coach Q&A, and team coach chat. Receives the coaching data described in "AI Coaching" and "Team Sharing and Coach Chat" above, including, for adult users, your first name in the Q&A and summary features, and any Coach Notes you have saved.

• Google – Sign-In (Google LLC, United States) – provides Google authentication in the app and on the Coach Website. Receives your Google sign-in; we receive your name, email address, and profile picture from your Google account.

• Apple (Apple Inc., United States) – provides Sign in with Apple, server-based speech recognition for voice questions, App Store purchases, and SKAdNetwork ad measurement. Receives authentication tokens, voice audio for speech recognition, and purchase information.

• ElevenLabs (ElevenLabs Inc., United States) – provides text-to-speech synthesis for voice coaching, including the onboarding and first-session coach lines described under "Audio and Voice Data" above. Receives coaching text strings without account identifiers. The text can include your first name for adult users, and in the onboarding welcome greeting, which is spoken before we ask your date of birth; on every other line names are omitted for users under 18.

• PostHog (PostHog Inc., United States) – provides product analytics and session replay for the app. Receives your account identifier, email, name, profile properties (such as age derived from your date of birth, gender, dominant hand, whether you work with a trainer, playing situation and team status, skill level, goals, language, and subscription status), usage events, and session replay screenshots of the app interface (typed text, Coach Notes, and the onboarding height, weight, and date-of-birth controls are masked, and the live camera view is not captured). It does not receive your height, weight, or date of birth. The Coach Website does not use PostHog.

• Sentry (Functional Software, Inc., United States) – provides crash and error reporting. Receives your account identifier and email, device model, operating system and app version, and technical stack traces. We do not send screenshots or view hierarchies to Sentry.

• RevenueCat (RevenueCat, Inc., United States) – provides subscription management and ad-conversion forwarding. Receives the data described in "Subscription and Purchase Information" above.

• Meta Platforms (Meta Platforms, Inc., United States) – provides advertising measurement as described in "Advertising Measurement" above. Receives app events (install, session, registration completed, and subscription conversions forwarded by RevenueCat) and, only with your App Tracking Transparency permission, the device advertising identifier.

• Resend (Resend, Inc., United States) – delivers the emails that team features send, such as a coach's weekly team report. Receives the recipient's email address and the content of the email, which can include players' names and training statistics. Team emails are not yet switched on; we list Resend now so that this list is complete when they are.

We update this list when sub-processors change. We will notify you of material changes in advance when required by law.

We do not sell your personal information and we do not disclose it to data brokers. Except for the advertising-measurement disclosures to Meta described above — which may qualify as "sharing" under the California Privacy Rights Act and which you can opt out of — we do not share your personal information for cross-context behavioral advertising.

Retention of Your Personal Data

The Company will retain Your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use Your Personal Data to the extent necessary to comply with our legal obligations, resolve disputes, and enforce our legal agreements and policies.

• Account and profile data is retained until you delete your account, after which it is removed from our active systems promptly (and no later than 30 days) and from backups as they roll off (no later than 90 days).

• Workout sessions, statistics, achievements, and ratings are retained until you delete your account.

• Workout videos backed up to the cloud are retained until you delete your account or request their deletion. Local recordings stay on your device under your control.

• Workout photos and avatar photos are retained until you replace them, delete your account, or request their deletion.

• Team information that a Program gives us — staff details, Roster Entries, program context, player focus, and team logos — is retained while the Program uses Trainify. Program Staff can remove a Roster Entry at any time. When a Program's agreement ends, or when the Program asks, we delete or return this information within the time the agreement sets. Deleting a player's own account deletes the player's team memberships, the player focus, and the reminders to train about that player, and removes the player's link to the Roster Entry. It does not delete the Roster Entry itself, because the Program created it; the player can ask the Program or us to remove it.

• Unused staff setup links expire after 14 days. A player's personal team link and a team's join code work until Program Staff replace or remove them.

• Notes, feedback, assignments, and announcements that Program Staff write for a team are retained while the team exists, or until Program Staff delete them.

• Consent records — for cloud video backup, model improvement, and team sharing — are retained while your account exists, so that we can show which policy version you accepted, and are deleted with your account.

• Camera frames are processed on-device and never retained. Voice audio processed by Apple speech recognition is not retained by Trainify; Apple's retention policies apply. Coaching prompts sent to our AI provider are not retained by Trainify; the provider's retention terms apply.

• Session replays expire automatically on our analytics provider's systems after a limited period; analytics events are retained while your account is active and deleted on request.

• Subscription and billing records are retained as required by tax, accounting, and consumer-protection laws, typically for up to 7 years.

• Support correspondence is retained for up to 24 months after resolution.

The Company will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period of time, except when this data is used to strengthen the security or to improve the functionality of Our Service, or We are legally obligated to retain this data for longer time periods.

When you delete your account, We initiate deletion of data We control. Data held by sub-processors for their own operational or legal purposes may persist for the duration permitted under their own policies.

Transfer of Your Personal Data

Your information, including Personal Data, may be processed at the Company's operating offices and in any other locations where the parties involved in processing the data are located. This means that your information could be transferred to — and maintained on — computers or servers located outside of your state, province, or country, where the data protection laws may differ from those in your jurisdiction.

Trainify is based in the United States, and our sub-processors are primarily located in the United States. If you access the Service from outside the United States, your information will be transferred to, stored, and processed in the United States. Where required by law (including the GDPR and the UK GDPR), we rely on appropriate safeguards for these transfers, such as the European Commission's Standard Contractual Clauses with our sub-processors. You may request a copy of the relevant safeguards by contacting us at support@trainifylabs.ai.

Your consent to this Privacy Policy followed by your submission of such information represents your agreement to that transfer. We will take all steps reasonably necessary to ensure that your data is treated securely and in accordance with this Privacy Policy. We will not transfer your Personal Data to an organization or a country unless there are adequate controls in place, including the security of your data and other personal information.

Delete Your Personal Data

You have the right to delete or request deletion of the Personal Data We have collected about you. You can delete your entire account and all associated data from Settings, under Account and then Delete Account (if you have an active subscription, you will be asked to cancel it first; subscriptions are managed by Apple). Deleting your account triggers deletion of your profile, workout sessions, statistics, achievements, ratings, workout photos, avatar photo, cloud video backups, and team memberships from our systems, and clears the app's local data.

If you want specific data removed without deleting your account — for example an individual workout, a photo, or your analytics data — contact us at support@trainifylabs.ai and we will handle the request in accordance with applicable law. Please note that we may need to retain certain information for legal reasons, and that data held by sub-processors for their own purposes may persist according to their own policies.

If you are a player and want a Roster Entry about you corrected or removed, ask your coach, or contact us at support@trainifylabs.ai. If your Program is a school, we may need to confirm the request with the school.

Disclosure of Your Personal Data

Business Transactions

If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be transferred. We will provide notice before Your Personal Data is transferred and becomes subject to a different Privacy Policy.

Program Staff

When you join a team, the Program's staff can see the information described under "Team Sharing and Coach Chat". When you are a member of Program Staff, Team Members and other staff can see your name and role.

Law Enforcement

Under certain circumstances, the Company may be required to disclose Your Personal Data if required to do so by law or in response to valid requests by public authorities (e.g. a court or a government agency).

Other Legal Requirements

The Company may disclose Your Personal Data in the good faith belief that such action is necessary to:

• Comply with a legal obligation

• Protect and defend the rights or property of the Company

• Prevent or investigate possible wrongdoing in connection with the Service

• Protect the personal safety of Users of the Service or the public

• Protect against legal liability

Security of Your Personal Data

The security of Your Personal Data is important to Us. We use commercially reasonable technical and organizational measures to protect your information, including transport encryption (HTTPS and TLS), authentication through our identity provider, row-level access controls on our backend that limit team information to the Program Staff and Team Members of that team, key-scrubbing in our crash reporting, and masking of typed text, Coach Notes, and the onboarding body-measurement and date-of-birth controls in analytics replays. But remember that no method of transmission over the Internet, or method of electronic storage, is 100% secure. While We strive to use commercially acceptable means to protect Your Personal Data, We cannot guarantee its absolute security. If We become aware of a breach that affects your personal information, We will notify you and the appropriate authorities as required by applicable law. If the breach affects information a school gave us, we will also notify the school.

Your Privacy Rights

California Residents (CCPA and CPRA)

If you are a California resident, you have the right to:

• Know or access the categories and specific pieces of personal information We have collected about you, the sources, the purposes, and the categories of third parties to whom We have disclosed it.

• Delete personal information We have collected from you, subject to exceptions permitted by law.

• Correct inaccurate personal information.

• Limit the use of sensitive personal information to the uses permitted by the California Privacy Rights Act.

• Opt out of the sale or sharing of personal information. Trainify does not sell personal information. Our advertising-measurement integration with Meta may constitute "sharing" for cross-context behavioral advertising under the CPRA. To opt out: deny tracking in the App Tracking Transparency prompt (or turn it off later in iOS Settings under Privacy & Security and then Tracking), and/or email support@trainifylabs.ai with the subject "Do Not Share" and we will honor the request. The Coach Website does not use advertising or cross-site tracking.

• Non-discrimination. We will not discriminate against you for exercising your rights.

Categories of personal information collected in the last 12 months, as defined by California Civil Code Section 1798.140, include: identifiers (including account identifiers, email address, and, with your tracking permission, the device advertising identifier); customer records such as name and email; characteristics of protected classifications such as age, date of birth, and gender; commercial information such as subscription status; internet or network activity as described in the Usage Data section; audio, electronic, or visual information (voice questions processed by Apple's speech recognition, team logos, and any workout videos or photos you choose to upload); professional or education-related information, such as a player's team, graduating class, position, and jersey number, and a staff member's role; inferences drawn from the above to personalize coaching; and sensitive personal information, limited to height and weight, date of birth, gender, injury-related training selections, and any health-related Coach Notes you choose to save.

To exercise your rights, email support@trainifylabs.ai with the subject "California Privacy Request." We will verify your identity before fulfilling the request. You may designate an authorized agent to make a request on your behalf. A parent or legal guardian may make a request for their child.

Other United States Residents

Depending on the state where you live, you may have rights similar to those above, such as the right to access, correct, or delete your personal information, to opt out of targeted advertising or sales, and to appeal our decision on your request. To exercise these rights, email support@trainifylabs.ai. If we deny your request, you may appeal by replying to our decision with the subject "Privacy Appeal".

European Economic Area, United Kingdom, and Switzerland (GDPR and UK GDPR)

If you are in the European Economic Area, the United Kingdom, or Switzerland, you have the rights to access, rectify, erase, restrict processing of, object to processing of, and port your personal data, and to withdraw consent where processing is based on consent.

The lawful bases on which We rely include the performance of a contract (for providing the core Service, personalization, subscription management, account management, and team features under a Program's agreement), legitimate interests (for product analytics, diagnosing technical issues, measuring our own advertising, and protecting Trainify's rights and users), consent (for cloud video backup and model-improvement use of your videos, team sharing, contacts-based friend finding, tracking for advertising measurement, marketing communications, and, where applicable, the processing of sensitive profile elements), and legal obligation (where required by law).

To exercise your rights, email support@trainifylabs.ai. You have the right to lodge a complaint with your local data protection authority. If and when Trainify appoints an EU or UK representative under GDPR Article 27, their contact details will be listed here.

Children's Privacy

The Service is not directed to children under the age of 13, and We do not knowingly collect personal information from children under 13. During onboarding, We ask for your date of birth and do not permit accounts for users under 13. The AI coach chat is additionally unavailable to users under 13, and for users aged 13–17 all coach AI features (chat, voice Q&A, and post-workout summaries) run in a de-identified mode that omits the user's name. The onboarding coach's spoken lines follow the rule described under "Audio and Voice Data" above. Programs may not invite children under 13 to join a team. If you are a parent or guardian and believe that your child under 13 has provided Us with personal information, please contact Us at support@trainifylabs.ai and We will promptly delete the information.

If you are under 18, please review this policy with a parent or legal guardian. A parent or legal guardian may contact us at support@trainifylabs.ai to ask what information we hold about their teen, to correct it, or to delete the account. If We need to rely on consent as a legal basis for processing Your information and Your country requires consent from a parent, We may require Your parent's consent before We collect and use that information.

Tracking Transparency

During onboarding We show you Apple's App Tracking Transparency prompt. We show it to users of every age; you can decline it, and if you are under 18 we recommend that you do. If you allow tracking, the device advertising identifier (IDFA) becomes available to our advertising-measurement partners (Meta and RevenueCat) so that ad campaigns can be attributed; if you decline, it does not, and the app works identically. You can change your choice at any time in iOS Settings under Privacy and Security and then Tracking.

Links to Other Websites

Our Service may contain links to third-party websites or services that are not operated by us. For example, we may link to our official website, social media pages, our community server, or articles and resources for your convenience. If you click on a third-party link, you will be directed to that third party's site.

Please note that we have no control over, and assume no responsibility for, the content, privacy policies, or practices of any third-party websites or services. We strongly advise you to review the Privacy Policy of every external site you visit or service you use. This Privacy Policy applies solely to information collected by our Service.

Changes to this Privacy Policy

We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page and updating the "Last updated" date at the top. In some cases, we might also provide an in-app notification or send you an email notification of the changes. If a change would let us use information we already hold in a materially different way, we will ask for your consent first where the law requires it, and we will notify Programs of changes that affect their information.

You are advised to review this Privacy Policy periodically for any updates or changes. Any changes are effective when they are posted on this page.

Contact Us

If you have any questions or concerns about this Privacy Policy or general questions, you can contact us:

By email: support@trainifylabs.ai

By mail: Trainify Labs Inc, 1098 Foster City Blvd STE 106 – #888, Foster City, CA 94404

Trainify AI

@2026 Trainify Labs Inc All rights reserved

Company

Press

Trainify AI

Privacy Policy

@2026 Trainify Labs Inc All rights reserved

Company

Press