# Privacy Policy
**Version:** 1.0 **Effective date:** 26 August 2026 **Last updated:** 26 August 2026
---
1. Introduction
This Privacy Policy explains how **{{LEGAL_ENTITY_NAME}}** ("ShaftFitter", "we", "us", "our") collects, uses, shares, and protects personal information when you use the ShaftFitter mobile application, our websites at shaftfitters.com and app.shaftfitters.com, and the related APIs and services (together, the "Service").
ShaftFitter is a golf equipment optimization service. You upload swing data from a launch monitor, we analyze it, and we recommend golf shafts suited to your swing. We also operate an online store and link to third-party retailers.
By using the Service you agree to this Privacy Policy. If you do not agree, please do not use the Service.
**Controller.** {{LEGAL_ENTITY_NAME}}, {{REGISTERED_ADDRESS}}, is the controller of the personal data described in this policy.
**Contact.** privacy@shaftfitters.com
---
2. Information We Collect
2.1 Information you give us
**Account information.** When you create an account we collect your email address, a password (stored only as a salted bcrypt hash — we never store your plaintext password), and a username. Your username is generated automatically from the local part of your email address at signup so that other users can find you for sharing; you can change it at any time. You may optionally add a full name and a profile picture.
**Sign in with Google / Sign in with Apple.** If you sign in with a third-party provider, we receive from that provider a provider account identifier, your email address, whether that email is verified, and authentication tokens. We store these to keep you signed in and to link the provider account to your ShaftFitter account. We do not receive your password from these providers.
**Golfer profile.** You may create one or more player profiles containing a display name, handedness, height, wrist-to-floor measurement, preferred club length, handicap, your stated swing goal, and free-text notes.
**Your equipment.** Club category, display name, brand, model, loft, playing length, lie angle, swing weight, and current shaft for each club you record.
**Swing and performance data.** This is the core of the Service. When you upload a launch monitor export (CSV, JSON, or a raw API payload) or enter data by hand, we store:
- the original uploaded file and its filename; - every parsed row of that file, including rows that failed validation and the reason; - normalized individual shots and their measured metrics (for example club head speed, ball speed, launch angle, spin rate, carry, dispersion, smash factor, and similar values that your device reports); - derived statistics, clustering results, and session aggregates we compute from those shots; - session context you supply — session date, session type, source label, environment details, and notes.
**Preferences and settings.** Measurement units, skill level, typical shot shape, how you want the recommendation engine weighted (distance vs. accuracy, ball flight vs. club data, outlier handling), preferred shaft brands, budget range, flex preference, shaft weight range, launch preference, watchlist and price-alert settings, and your notification preferences.
**Store and payment information.** Shipping addresses (label, recipient name, phone number, street address, city, state, postal code, country, and optional geographic coordinates if your device supplies them), order history, cart and wishlist contents, and product reviews you write.
> **We do not collect or store your full payment card number.** > > For purchases processed by Stripe — digital purchases on Android and the web, and all > storefront orders — card details are collected directly by Stripe through their SDK. We store > only a Stripe customer identifier, subscription status, and non-sensitive transaction metadata > returned to us by Stripe. > > For digital purchases made inside the iOS app, billing is handled entirely by **Apple** as an > In-App Purchase. Your payment method is never presented to us. We receive and store only the > transaction and product identifiers, and the resulting plan or credit grant, from Apple's > receipt verification.
**Communications.** Messages you send through the contact form (name, email, subject, message), data-rights requests you submit, product and service feedback (star rating, emoji reaction, free-text comment, tags, and whether you followed a recommendation), and waitlist signups.
**Veteran verification (sensitive — optional).** If you choose to verify veteran status to access a veteran benefit, we ask for your first name, last name, optional middle name, date of birth, Social Security Number, and optionally gender and ZIP code. **We transmit these details directly to the U.S. Department of Veterans Affairs Veteran Confirmation API for a single one-time check and we do not store them.** The identity details exist only in server memory for the duration of that one request. All we retain is the result ("confirmed" / "not confirmed" / "unverified"), the date it was confirmed, the date we last checked, and a count of attempts. Veteran verification is entirely optional and is never required to use the Service.
2.2 Information we collect automatically
**Device and session information.** Platform (iOS, Android, or web), device name, app version, OS version, a device identifier, and the date we last saw the device.
**Log and connection information.** IP address, browser or app user agent string, and timestamps, recorded against your login sessions and against outbound affiliate link clicks.
**Affiliate click data.** When you tap a "Buy" button that leads to a third-party retailer, we record the click before redirecting you: which offer you clicked, the destination URL, which screen of the app you clicked from, your IP address, your user agent, and a derived country code. This is how we are credited for the referral and how we understand which recommendations are useful. Clicks made while signed out are recorded without an account identifier.
**Usage analytics.** Aggregated activity across your account — uploads, sessions, recommendations generated, and similar counts — used to power the personal analytics screens you see in the app and to understand overall product usage. You can turn analytics tracking off in your privacy settings (see Section 8).
**Product analytics (third-party).** The app includes **PostHog**, which records in-app events and screen views against a device or account identifier, together with app version, device and OS details, and IP address, so we can understand how the app is used and where it fails people. PostHog is configured to capture taps on interface elements automatically, in addition to the events we send deliberately.
**Crash and error reporting.** The app includes **Sentry**. When the app errors or crashes, it sends a diagnostic report containing device and OS details, app version, a stack trace, and the surrounding technical context. These reports can incidentally include identifiers for the account in use at the time.
**Push notification tokens.** If you enable notifications we store the push token issued by Apple or Google via the Expo push service, along with delivery logs.
2.3 Information from other people
Another ShaftFitter user may share a completed analysis with you. When they do, we record that share and make their analysis visible to you inside the app. Shares are private and person-to- person: only the named recipient can open one, there are no public links, and the owner can revoke access at any time.
2.4 Children
The Service is not directed to children. You must be at least **13** years old to hold an account and at least **18** (or the age of majority where they live) to make a purchase or enter into a subscription. We do not knowingly collect personal information from children under 13. If we learn we have, we will delete it. Contact privacy@shaftfitters.com if you believe a child has provided us information.
---
3. How We Use Your Information
| Purpose | What we use | |---|---| | Create and maintain your account; authenticate you | Account details, sign-in provider data, session and device data | | Generate shaft recommendations | Player profile, club data, swing and shot data, preferences | | Show you your performance analytics | Shots, sessions, aggregates | | Show current prices and buy options; credit our referrals | Recommendation output, affiliate click data | | Process purchases, subscriptions, and upload credits | Account details, addresses, Stripe transaction data | | Fulfil and ship storefront orders | Name, shipping address, phone, order contents | | Send transactional email (verification codes, password resets, receipts, export links) | Email address | | Send push notifications and in-app notifications you have opted into | Push tokens, notification preferences | | Respond to support messages and data-rights requests | Contact and request submissions | | Improve the recommendation engine and the Service | Swing data, feedback, usage analytics | | Confirm veteran status where you request a veteran benefit | Identity details, transmitted to the VA and not stored | | Detect, investigate, and prevent fraud, abuse, and security incidents | Log data, IP address, device and session data | | Comply with legal obligations and enforce our Terms | As necessary |
**Automated processing.** Our recommendation engine processes your swing data automatically to produce shaft recommendations. This is a product feature, not a decision that produces legal effects concerning you. You can always ignore a recommendation, and you can contact us to discuss one.
---
4. How We Share Your Information
We do not sell your personal information for money.
We share personal information in the following circumstances.
4.1 Service providers
We use the following processors to run the Service. Each receives only what it needs.
| Provider | Purpose | What they receive | |---|---|---| | Amazon Web Services | Application hosting and file storage (S3) | All service data, including uploaded files | | {{HOSTING_PROVIDER}} | Application hosting | All service data | | {{DATABASE_HOST}} | Database and cache hosting | All service data | | Stripe | Payment processing for digital purchases on Android and the web, and for all storefront orders | Name, email, billing details, payment card data (collected directly by Stripe) | | Resend | Transactional email delivery | Email address, message content | | Expo | Push notification delivery | Push tokens, notification content | | Google LLC | Sign in with Google | Authentication data | | Apple Inc. | Sign in with Apple; In-App Purchase billing for digital purchases made in the iOS app | Authentication data; purchase, subscription, and receipt records (Apple collects payment details directly) | | RevenueCat | Purchase and subscription state management, where the RevenueCat billing mode is enabled | An app user identifier, store receipts, and subscription status | | PostHog | Product analytics | Device and account identifiers, in-app event and screen-view data, app version, IP address | | Sentry | Crash and error reporting | Device and OS details, app version, stack traces and the diagnostic context attached to an error | | CJ Affiliate (Commission Junction) | Affiliate link tracking and commission attribution | Click events and the identifiers CJ appends to tracked links | | U.S. Department of Veterans Affairs | Veteran status confirmation (optional, at your request) | Name, date of birth, SSN, optional gender and ZIP — transit only | | The GolfWorks | Fulfilment of direct storefront orders | Recipient name, shipping address, phone, order contents | | Pexels | Stock imagery for product and content cards | No personal information |
4.2 Other users
If you share an analysis with another ShaftFitter user, that user can see the shared analysis and your identity as its owner. If you post a product review, your review and the display name associated with your account are visible to other users once approved.
4.3 Retailers and affiliate networks
When you click a buy link, you leave ShaftFitter and are handed to a third-party retailer through an affiliate network. What happens after that is governed by that retailer's and that network's own privacy policies, not ours. We receive commission reports from the network; these tell us a sale occurred but do not tell us the identity of the purchaser.
4.4 Legal and safety
We may disclose information where we believe in good faith that it is required to comply with law, legal process, or an enforceable governmental request; to enforce our Terms; or to protect the rights, property, or safety of ShaftFitter, our users, or the public.
4.5 Business transfers
If we are involved in a merger, acquisition, financing, or sale of assets, personal information may be transferred as part of that transaction. We will notify you before your information becomes subject to a materially different privacy policy.
4.6 Aggregated and de-identified data
We may create and use aggregated or de-identified data — for example, statistics about how swing characteristics correlate with shaft performance across our user base — for research, product improvement, and publication. This data does not identify you, and we commit not to attempt to re-identify it. You can opt out of the use of your data for this purpose in your privacy settings (`allowAnonymizedDataUsage`).
---
5. International Transfers
**The Service is offered in the United States only**, and our infrastructure is hosted in the United States (AWS us-east-1). Your information is stored and processed in the United States.
We do not offer the Service to residents of the European Economic Area or the United Kingdom. If you access the Service from outside the United States, your information will be transferred to and processed in the United States, where privacy laws may differ from those in your country.
---
6. Data Retention
We keep your personal information for as long as your account is active and for as long as needed to provide the Service.
**When you delete your account.** Deleting your account from the app immediately marks it as deleted, ends your access, and removes you from our caches. Your data is then held for a **30-day grace period**, after which an automated purge permanently deletes your account record and everything cascading from it — sessions, devices, player profiles, uploads, imports, shots, recommendations, feedback, notifications, addresses, cart, wishlist, and shares. The grace period lets us reverse an accidental or fraudulent deletion.
**What we keep longer.** We retain certain records after deletion where we are required or permitted to:
- transaction, order, and tax records, which we retain for {{FINANCIAL_RECORDS_RETENTION}}; - aggregated and de-identified data, which no longer identifies you; - records necessary to resolve disputes, prevent fraud and abuse, or enforce our agreements; - contact form submissions and data-rights requests, which are stored independently of your account so we retain an audit trail of how we handled them.
---
7. Your Rights
7.1 Everyone
Whatever jurisdiction you are in, you can:
- **Access and correct** your profile, player profiles, equipment, preferences, and addresses directly in the app at any time. - **Export your data.** Request a full machine-readable export of your account — profile, sessions, recommendations, feedback, and purchases — from Account Settings. We generate it asynchronously and email you a download link. Exports are limited to one request per 24 hours. - **Delete your account** from Account Settings, subject to Section 6. - **Control notifications** individually in your notification settings, and unsubscribe from marketing email using the link in any such email. We will still send you transactional messages necessary to operate your account. - **Submit a formal data-rights request** at any time — including after you have already deleted your account — through our in-app request form or by emailing privacy@shaftfitters.com. We respond within **30 days**.
7.2 If you are a California resident
Subject to the CCPA as amended by the CPRA, you have the right to know what personal information we collect, use, disclose, and share; the right to delete it; the right to correct inaccurate information; the right to opt out of sale or sharing; the right to limit the use of sensitive personal information; and the right not to be discriminated against for exercising these rights.
The categories of personal information we have collected in the past 12 months are described in Section 2; the purposes in Section 3; the categories of recipients in Section 4.
**Sensitive personal information.** The identity details collected for optional veteran verification (including SSN and date of birth) are sensitive personal information. We use them for the single purpose of performing the verification you asked for, we transmit them only to the U.S. Department of Veterans Affairs, and we do not store them.
7.3 How to exercise your rights
Use the in-app tools where they exist — they are the fastest route. Otherwise email privacy@shaftfitters.com. We may need to verify your identity before acting on a request, and we will tell you if we cannot act on one and why.
---
8. Your Privacy Choices
**Notifications.** You can turn each category of notification on or off individually in your notification settings, and enable or disable price and availability alerts. You can unsubscribe from marketing email using the link in any such email. We will still send you the transactional messages necessary to operate your account.
**Device permissions.** You can withdraw camera, photo library, location, and push notification permissions at any time in your device settings.
**Your account.** You can access, correct, export, or delete your information as described in Section 7.
---
9. Security
We protect your information with measures including:
- passwords stored only as salted bcrypt hashes, never in plaintext;
- AES-256-GCM encryption for sensitive stored values;
- JWT-based authentication with expiring sessions and hashed refresh tokens;
- TLS in transit;
- access scoping on every endpoint so that one user cannot read another's data;
- one-time codes with short expiry windows for email verification and password reset;
- role-based access control limiting administrative access to authorized staff.
No system is perfectly secure. We cannot guarantee absolute security, and you are responsible for keeping your password confidential and for activity under your account.
**If a breach occurs.** If we discover a breach of security affecting your personal information, we will notify you and any regulator entitled to notice, without unreasonable delay and within the time limits required by applicable state law.
---
10. Third-Party Links
The Service contains links to third-party retailer websites, including affiliate links. We are not responsible for the privacy practices or content of those sites. Read their privacy policies before providing them information.
---
11. Changes to This Policy
We may update this Privacy Policy. When we do, we publish a new version with a new effective date and keep prior versions available for you to review. If the changes are material, we will notify you in the app or by email before they take effect. Continued use of the Service after the effective date means you accept the updated policy.
---
12. Contact Us
**{{LEGAL_ENTITY_NAME}}** {{REGISTERED_ADDRESS}}
Privacy enquiries: privacy@shaftfitters.com Legal notices: legal@shaftfitters.com General support: support@shaftfitters.com