Privacy Policy
This policy describes what VizGolf collects, how we use it, who we share it with, and your choices.
Operator
VizGolf is owned and operated by VizDNA LLC. References to "VizGolf," "we," "us," and "our" in this Privacy Policy refer to VizDNA LLC.
Quick summary
- We collect what's needed to run a golf tracking app: account info, scorecards, stats, optional photos and videos, basic device and analytics data.
- We do not sell your personal information and we do not use it for advertising.
- We share specific data with specific named third parties (Stripe, Apple, Google, etc.) only to operate the Service. The list is below.
- You can delete your account in the mobile app or by emailing us. Deletion anonymizes your personal data.
- If you are in the EU/UK or California, you have additional rights — see "Your choices and rights."
The full policy follows.
What we collect
Information you give us
- Account: username, email address, password (stored as a salted hash, never in plain text), first and last name.
- Profile (optional): bio, location, profile picture, birth date, recovery email, GHIN number, profile theme, privacy settings, default media visibility.
- Equipment: golf clubs and equipment you log.
- Scorecards and rounds: date, course, scores, hole-by-hole data, fairway and green stats, putts, penalties, tee box, conditions, club used per shot, and any photos or videos you attach.
- Course submissions: name, address, tee boxes, hole data.
- Social interactions: buddy connections, comments, likes, achievement progress.
- Subscriptions: subscription identifier and renewal status from the channel you bought through (App Store, Google Play, or Stripe). We never see your full payment card number.
- Communications: support emails, in-app feedback, bug reports.
Information collected automatically
- Device and app info: device model, operating system version, app version, platform, language, time zone, screen size, network type, IP address.
- Usage analytics: features used, screens viewed, actions taken (for example, scan, hole-by-hole entry, share). We use PostHog. Events are typed and have sensitive fields stripped before being sent.
- Error reports: crashes and exceptions, with personally identifiable information scrubbed before transmission. We use Sentry.
- Presence: a "last active" timestamp, updated at most once per minute while you are signed in, used to power the "Live Now" feed for your buddies and the public community feed when your profile is set to public.
- Cookies and session storage (web): standard session cookie (login state), guest session cookie (rounds you log before signing up — these migrate to your account when you register), CSRF token, theme preference. We do not use advertising or cross-site tracking cookies.
Information from third parties
- Sign in with Apple: we receive your Apple-issued identifier, email address, and (if you grant it) given and family name.
- Sign in with Google: we receive your Google-issued identifier, email address (which Google verifies), and given and family name.
- Stripe (web subscriptions): Stripe handles your payment method; we receive subscription status, customer identifier, and price metadata only.
- App Store / Google Play: subscription status, purchase receipts, renewal events.
- Postmark (email delivery): bounce and complaint reports for emails we send you.
What we do not collect
- Full credit card numbers — those go to Stripe; we never see them.
- Precise location coordinates — we collect optional self-reported location text only, no GPS.
- Contact list, microphone audio, or biometric data.
- Browsing history outside vizgolf.com and the VizGolf app.
How we use your information
We use the information we collect to:
- Run your account, render feeds, calculate your handicap estimate and statistics, process scorecard uploads, and send notifications;
- Verify your identity and prevent fraud or abuse;
- Process subscriptions and handle refund requests on the web channel;
- Send transactional emails (account verification, password reset, subscription receipts, security alerts);
- Send notifications you have opted into (push notifications, buddy activity, scorecard tags);
- Improve the Service through analytics and crash reports;
- Respond to your support requests;
- Comply with legal obligations and enforce our Terms.
We do not sell your personal information, do not use it for advertising or to build advertising profiles, and do not authorize third-party AI vendors to train their models on your inputs under our API agreements.
AI and OCR features
Several VizGolf features rely on third-party AI services. When you trigger one of these features, the corresponding data is sent to the vendor named below for that request:
- Scorecard scan-to-import: when you scan a scorecard photo, we send the scorecard image bytes to Google Gemini to extract scores. If Gemini is unavailable or fails for that request, we send the same image bytes to OpenAI as a fallback OCR provider.
- Secondary scorecard review (quality check): for scans that are novel, low-confidence, or disagree structurally with our database, we re-send the same scorecard image bytes to OpenAI for an independent OCR pass that we use as a quality check. This is not run on every scan; it is triggered by the conditions above.
- Tee-time screenshot import: when you upload a screenshot of a tee-time booking confirmation, we send the screenshot image bytes to OpenAI to extract the course, date, time, and party size.
- VizCoach insights (VizGolf Plus): when you request coaching insights, we send anonymized statistical summaries of your rounds to OpenAI. For this feature only, we do not send your real name, email address, or uploaded photos.
We do not authorize Google Gemini or OpenAI to use your inputs to train their models under our API agreements with them. AI features are rate-limited per user and capped by a daily usage budget.
Third parties we share information with
We share specific categories of information with the following third parties for the purposes described. Each is bound by its own privacy policy.
- Apple — Sign in with Apple identity token; subscription receipts; App Store Server Notifications for subscription lifecycle.
- Google — Sign in with Google identity token; Google Play purchase receipts; Google Play Real-time Developer Notifications for subscription lifecycle.
- Stripe — email address and subscription metadata for web subscriptions; Stripe collects your payment method directly.
- Postmark — email address and message contents for transactional emails (verification, password reset, etc.).
- DigitalOcean — our hosting provider. All data stored on our servers (managed PostgreSQL, Spaces for media storage, App Platform for application hosting) is hosted by DigitalOcean.
- Sentry — crash reports and error context. Personally identifiable information is scrubbed before transmission.
- PostHog — usage analytics events. Events are typed and stripped of sensitive fields before send.
- OpenAI — scorecard scan images (as a fallback OCR provider and as a secondary quality-check reviewer); tee-time booking screenshot images for import; anonymized statistical summaries for VizCoach (Plus subscription only). See "AI and OCR features" above for which feature triggers which flow.
- Google Gemini — scorecard scan images for OCR (primary provider).
- RapidAPI golf course data providers — course search queries (course name only) to look up courses you search for.
- Expo / EAS — mobile app build and over-the-air update delivery (build artifacts only, not user data).
We do not share your personal information with advertising networks, data brokers, or any party not on this list.
Aggregate and anonymized data
We may compile aggregated statistics (for example, "average score at a course last quarter") for product improvement or external publication. Aggregated data does not identify you. When you delete your account, we anonymize your personal records but may retain aggregate statistical data that no longer identifies you.
Account deletion and data export
Account deletion
You can delete your account at any time through Settings → Privacy → Delete Account in the mobile app, or by emailing [email protected]. Deletion immediately anonymizes identifying fields (your name, email address, profile picture, comment bodies) and revokes your authentication tokens. Some anonymized aggregate statistics may persist as described above.
Data export
An automated in-app data export is not currently available. If you want a copy of your data (for example, to exercise a GDPR portability right), email [email protected] from the address on your account and we will respond within a reasonable time.
Data retention
- Active account data: retained as long as your account exists.
- After deletion: identifying fields are anonymized immediately. Aggregate statistics may persist.
- Email verification and email-change tokens: 7-day expiry, single-use, stored as SHA-256 hashes.
- Authentication tokens: up to 30-day expiry. You can revoke all tokens via Settings → Sign out everywhere.
- Crash and analytics data: retained at Sentry and PostHog per their configured retention windows (typically up to 90 days).
- Subscription receipts: retained as required by tax and audit obligations.
Security
- All connections to the Service use HTTPS (TLS).
- Passwords are stored as salted hashes; we never see your plain-text password.
- On mobile, authentication tokens are stored in Apple Keychain (iOS) or Android encrypted storage.
- Non-public media (such as buddies-only photos and videos) is delivered via short-lived signed URLs.
- We monitor for unusual activity (login anomalies, abnormal browsing patterns) and respond when we see it.
No method of transmission or storage is completely secure. If you become aware of a security issue, please report it to [email protected].
Your choices and rights
All users
- View and edit your account information in Settings → Account.
- Delete your account in Settings → Privacy → Delete Account, or by emailing [email protected].
- Manage notification preferences in Settings → Notifications.
California residents (CCPA / CPRA)
We do not sell personal information and we do not share personal information for cross-context behavioral advertising. You may request to know what categories of personal information we have collected about you, and you may request deletion. To exercise these rights, email [email protected]. We will not discriminate against you for exercising your rights.
EU and UK residents (GDPR)
You may request access, correction, deletion, portability, restriction of processing, or objection to processing of your personal information. To exercise these rights, email [email protected]. We will respond within a reasonable time, usually within 30 days. You also have the right to lodge a complaint with your local data protection authority.
Children
The Service is not directed to children under 13. We do not knowingly collect personal information from children under 13. The signup form requires you to confirm you are 13 or older. If you believe a child under 13 has provided us with personal information, contact [email protected] and we will delete the account and the related information.
International users
The Service is hosted in the United States. If you use the Service from outside the United States, you consent to the transfer and processing of your information in the United States.
Changes to this Policy
We may update this Privacy Policy from time to time. We will post the revised Policy here with an updated "Last updated" date. Material changes will be communicated via in-app notification or email. Your continued use of the Service after the effective date of the revised Policy means you accept it.
Contact
- Privacy questions, GDPR / CCPA requests: [email protected]
- General support: [email protected]
- Security reports: [email protected]