Privacy Policy

Last updated: June 24, 2026

Introduction

Golfective is a mobile application developed and operated by João Martins, an independent developer based in Portugal ("we", "our", or "us"). We are committed to protecting your privacy. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our mobile application (the "App").

Information We Collect

We collect the following categories of information:

  • Account Information: Email address, full name, and authentication credentials (including third-party login via Google and Sign in with Apple)
  • Profile Data: Handicap, home club, handedness, player height in centimeters (used as a biometric anchor for on-device measurement scaling), and your primary training goal chosen during onboarding (all optional)
  • Saved Swing Analysis: When you choose to save a swing, we store its analysis on our servers. This includes the club selection, camera angle, target distance, swing-phase frame indices, and the numeric results of the setup, head-stability, swing-plane and impact analyses (such as tempo, lift / drop / sway / reverse pivot in cm, plane match %). The original video file is NOT uploaded
  • Aggregated Statistics: Per-club running totals (count, tempos, distances, setup metrics) plus per-day and per-week aggregates used to render your stats dashboard
  • AI Training Frames (opt-in only): With your explicit consent, up to one JPEG still per day, extracted on-device from your swing — see the dedicated section below
  • Video and Image Data: Swing recordings captured through your device camera. Videos are processed locally on-device using AI-based object detection. The video file itself stays on your device and is never uploaded, except for the optional AI training frame above
  • Usage Data: App interactions, feature usage and session information (Firebase Analytics)
  • Diagnostic Data: Crash reports and stack traces (Firebase Crashlytics) used to fix bugs
  • Device Information: Device type, operating system, app version, and unique device identifiers
  • Payment Information: Subscription status (synced from the Apple App Store or Google Play via RevenueCat). Payment details stay with those stores and are never stored on our servers

We do not collect location data without your explicit consent.

How We Use Your Information

We use your information to:

  • Provide and maintain our services, including swing analysis and performance tracking
  • Process your swing videos locally on your device using AI detection models to provide real-time analysis
  • Persist the analyses you choose to save and aggregate them into your personal statistics dashboard
  • Process payments and manage your subscription (server-side, via Cloud Functions)
  • Deliver feature flags and progressive rollouts via Firebase Remote Config
  • Diagnose crashes and bugs through Firebase Crashlytics so we can fix them
  • Send transactional emails (account confirmations, subscription receipts, password resets) through Resend
  • Improve and personalize your experience
  • Analyze aggregated app usage to improve features and performance
  • Comply with legal obligations

Data Storage and Security

Your data is stored securely on Firebase / Google Cloud servers located in the European Union. Specifically:

  • Saved swing analyses (numeric metrics only — never the video itself) are stored in our database and tied to your account
  • Your aggregated statistics are stored in our database and are required to power the stats dashboard
  • Original swing video files stay on your device and are never uploaded to our servers
  • AI training frames (opt-in only) are stored in Cloud Storage in a folder scoped to your account; only we can access them

We implement industry-standard security measures, including encryption in transit and at rest, role-based Firestore Security Rules and Storage Security Rules that confine each user to their own data, and a server-only path for any operation that touches subscription state. However, no method of electronic transmission or storage is 100% secure, and we cannot guarantee absolute security.

Data Retention

We retain your personal data for as long as your account is active or as needed to provide you our services.

  • Per-period data deletion: From Settings → Manage Data you can delete your saved swings and the matching statistics for the last month, the last 3 / 6 / 12 months, a custom date range (up to 90 days), or all-time. Both the swings and their stats are removed in the same operation
  • Per-swing stats opt-out: Each saved swing has an "include in stats" toggle that can be flipped on or off at any time — when off, that swing's metrics are subtracted from the aggregates
  • Account deletion: From Settings → Account → Delete Account you can permanently delete your account from inside the App. The deletion is performed by a server-side Cloud Function that, in a single operation, deletes every saved swing you own, deletes your aggregated statistics (including the daily and weekly subcollections), removes your AI training frames from Cloud Storage, deletes your user profile, and finally deletes your Firebase Authentication account. Active subscriptions in the Apple App Store or Google Play are NOT cancelled by this operation — they must be cancelled separately in the store settings
  • Anonymized and aggregated data may be retained for analytical purposes
  • AI training frames you contributed are deleted from Cloud Storage as part of account deletion. However, once a contribution has been integrated into a trained model, that specific contribution cannot be reversed from already-trained models — this is an inherent limit of how AI models work

AI Model Training Image Contribution (Opt-in)

With your explicit consent — off by default and revocable at any time in Settings — we may collect up to one JPEG image per day, extracted on-device from your swing, to improve future versions of our analysis model.

  • Legal basis: Article 6(1)(a) GDPR — explicit consent
  • What is uploaded: A single still JPEG (max 1280px wide, ~85% quality) extracted from one randomly selected swing phase (backswing, top, downswing or impact), stored at training_frames//___.jpg in Cloud Storage
  • Metadata attached to the image: Your account identifier, the swing phase, the camera view, the frame index, the video FPS, the model version that scored it, the app version, and (when known) the club name and your height in centimeters. No name, email or other direct personal identifier is embedded in the image
  • Purpose: Exclusively training and improving our swing analysis model. We do not share frames with third parties and do not use them for advertising
  • Kill switch: We can disable the entire training-frame collection remotely via Firebase Remote Config without an app update
  • Deletion: Frames are deleted from our storage when you delete your account, or on request via support@golfective.com. However, once integrated into a training set, that specific contribution cannot be technically reversed from already-trained models — this limit is inherent to how AI models work.

Marketing Communications (Opt-in)

With your explicit consent — off by default and revocable at any time in Settings — we may send you news, tips and promotional offers about Golfective.

  • Legal basis: Article 6(1)(a) GDPR — explicit consent
  • What we send: Product news, golf tips and promotional offers
  • Optional: This is never required to use the app, and declining has no effect on your account or features
  • Withdrawal: You can withdraw your consent at any time via Settings, or by using the unsubscribe link included in every message

Marketing consent is recorded separately from your acceptance of the Terms, together with the date it was given or withdrawn.

Third-Party Services

We use the following third-party services that may collect and process your data:

  • Firebase / Google Cloud (Google LLC): Authentication, Firestore database, Cloud Storage, Cloud Functions, Analytics, Crashlytics, Remote Config and hosting — Privacy Policy: https://firebase.google.com/support/privacy
  • RevenueCat (RevenueCat, Inc.): Subscription management and store receipt validation — Privacy Policy: https://www.revenuecat.com/privacy
  • Resend (Resend, Inc.): Transactional email delivery (subscription confirmations, password resets) — Privacy Policy: https://resend.com/legal/privacy-policy
  • Apple App Store / Google Play Store: App distribution and in-app purchases — subject to their respective privacy policies

These services may collect information about your device and app usage in accordance with their own privacy policies. We recommend reviewing them.

Your Rights (GDPR)

Under the General Data Protection Regulation (GDPR) and Portuguese data protection law (Lei n.º 58/2019), you have the right to:

  • Access: Request a copy of your personal data
  • Rectification: Correct inaccurate or incomplete data
  • Erasure: Request deletion of your data ("right to be forgotten")
  • Portability: Export your data in a structured format
  • Restriction: Request restriction of processing
  • Objection: Object to data processing based on legitimate interests
  • Withdraw Consent: Withdraw consent at any time without affecting prior processing

To exercise these rights, please contact us at support@golfective.com. We will respond within 30 days. You also have the right to lodge a complaint with the Portuguese Data Protection Authority (CNPD) at https://www.cnpd.pt.

Children's Privacy

The App is not intended for children under the age of 13. We do not knowingly collect personal information from children under 13. If we become aware that a child under 13 has provided us with personal data, we will take steps to delete such information.

Contact Us

If you have any questions about this Privacy Policy or our data practices, please contact us at:

Email: support@golfective.com

Responsible for data processing:

João Martins

Independent Developer

Portugal