Privacy policy

Last updated: September 18, 2026

Contents

In short. Swing analysis runs on your device — no video leaves your phone for the measurement. We store measurements, not footage.

Videos and images go to the cloud only when you archive or share them yourself — after explicit consent that you can withdraw with one tap at any time.

The AI coach receives measured values and your question. No name, no email address, no video.

No ad tracking, no sharing for advertising, no cookies on this website. You can export all your data in the app and delete your account in two steps.

This policy explains which personal data we process when you use the Visco mobile app (iOS and Android) or the website visco.dev — for what purpose, on which legal basis, for how long, and which rights you have. This is a convenience translation; the German version is authoritative.

1. Controller

The controller within the meaning of the General Data Protection Regulation (GDPR) is:

Visco Development UG (haftungsbeschränkt)
An der Leiten 18
82069 Schäftlarn, Germany
Represented by the managing director: Finn Max Löloff
Commercial register: Amtsgericht München, HRB 316433
Email: info@visco.dev

No data protection officer has been appointed because the requirements of Art. 37 GDPR and Section 38 of the German Federal Data Protection Act (BDSG) are not met. Privacy requests go to the email address above and are handled by the management.

2. Principles

  • On the device wherever possible. Body detection, metrics, score, speech recognition and the course search run locally on your phone.
  • Data minimization. Our servers hold measurements, not raw footage. A video leaves your device only if you explicitly want it to.
  • No advertising, no tracking. We do not sell data, run no ad networks and use no analytics services for audience measurement.
  • Control. Exporting all your data and deleting your account are built into the app and free.

3. This website

Access data

When you open visco.dev, the server processes technically necessary data: IP address, date and time, requested page, transferred bytes, referrer URL, browser and operating system (user agent). The purpose is to deliver the site, fend off attacks and diagnose errors. The legal basis is Art. 6(1)(f) GDPR (legitimate interest in a secure, working service). These logs are deleted after 30 days at the latest.

The website sets no cookies, stores nothing in your browser, embeds no analytics, advertising or social media services and loads no third-party content. Fonts are served from our own server. Invitation pages of the form visco.dev/@name show only the name from the address; they query no account data.

Hosting

The website is hosted by HOSTING PROVIDER. A data processing agreement under Art. 28 GDPR is in place; the provider processes access data solely on our instructions.

Launch notification

If you enter your email address (and optionally the name of your golf club or company), we store it solely to inform you about the launch of the app. The legal basis is your consent, Art. 6(1)(a) GDPR. The addresses are processed on our behalf by NOTIFICATION LIST SERVICE. You can withdraw your consent at any time by emailing info@visco.dev; the address is then deleted. We delete the entire list no later than three months after the app launches.

Contact by email

If you write to us, we process your details to handle the request (Art. 6(1)(b) GDPR if it concerns a contract, otherwise Art. 6(1)(f)). The mailbox is hosted by EMAIL PROVIDER. We delete requests once they are resolved unless statutory retention duties apply (business correspondence: six years, Section 257 of the German Commercial Code).

4. Account and sign-in

The app requires an account. There is no password; you sign in with Apple (iOS only), Google or an email code we send you.

  • Data processed: email address (with Apple, optionally a relay address from “Hide My Email”), the identifier provided by the sign-in service and — if you share it — your name; sign-in timestamps; for the email code, the code and its expiry.
  • Source: With Apple and Google we receive the data from the respective provider. Apple and Google process the sign-in as independent controllers under their own privacy policies (Apple, Google).
  • Purpose and legal basis: creating and running your account, Art. 6(1)(b) GDPR. Without one of these sign-in methods no account can be created.
  • Service providers: Sign-in runs through the authentication of our backend platform Supabase (section 16). Sign-in codes are sent on our behalf by EMAIL DELIVERY SERVICE.
  • On the device: The session is stored encrypted in the operating system keychain (iOS Keychain, Android Keystore), not in plain text. A marker remembers which service you last signed in with.

5. Profile

On first start the app asks for your handedness (required for a correct analysis) and a username. Optionally you can add: first name, handicap, profile picture, height, gender, home club, a badge for your showcase, the name and feedback style of your coach, your weekly goal, and settings for visibility and notifications. The app language follows your device and is stored for notifications.

  • Legal basis: handedness and username Art. 6(1)(b) GDPR; optional details Art. 6(1)(a) GDPR — you can remove them in the settings at any time, which counts as withdrawal.
  • Visible to others: username, first name, profile picture, rank, showcase badge, score summaries and the number of your posts, followers and people you follow may be shown to other users — depending on the three switches “In leaderboards”, “Discoverable” and “Show handicap” in the settings. The server enforces these switches, not just the app.
  • Profile picture: It is kept in a publicly readable storage area so that it can load in feed, chats and leaderboards on any device without signing in. Anyone who knows the file address can retrieve it. Do not choose a picture you would not show publicly.
  • Never visible to others: your email address, unshared swings and videos, your coach conversations, your raw data.

6. Swing recording and analysis

This is the core of the app — and it runs on your device.

  • Camera: With your permission the app records your swing. The video is stored locally. A body-pose model (MediaPipe) determines 33 body points per frame on the device; from these the app computes 21 metrics, zones and a score.
  • What is stored on our servers: per session its start and end, number of swings, score median and spread, the two focus metrics, club and course; per swing its time, score, metrics with zones, club and, where applicable, a coach note; for drills, the attempts with their measurements.
  • What does not go to our servers: the video and the series of body points. Both stay as files on your device.
  • On the device: Recorded swings remain stored locally for seven calendar days (the recording day counts). After that the app removes them automatically at the next launch or when returning to the foreground, together with the body-point file. To keep a clip, save it to your photos or mark it for the archive (section 8).
  • Detection diagnostics: For every recording attempt — including aborted ones — the app sends one row with the abort reason, the measured peak speed and its threshold, the time until arming, the frame rate, the state of the setup checks, and the operating system and app version. It contains no video, no body points, no location and no device model; neither a body nor a movement can be reconstructed from it. The purpose is improving swing detection — especially where it fails for beginners. Legal basis: Art. 6(1)(f) GDPR.
  • Legal basis of the analysis: Art. 6(1)(b) GDPR. Without camera permission the app cannot measure; everything else remains usable.
  • On the body points: The 33 points are technical coordinates for measuring movement. We do not use them to identify you and derive no health data from them. Processing of special categories of personal data within the meaning of Art. 9 GDPR is not intended.
  • Spoken feedback: The sentences the coach says after a swing are pre-produced audio clips inside the app. Nothing is transmitted for them.

7. Location and golf course

When you enter Golf mode, the app — with your permission, “while using” only — reads your approximate position once (accuracy around 100 meters), matches it on the device against the nearest course in a locally stored directory and then discards it. What is saved is the name of the course, not a coordinate and not a movement trail. Without the permission you pick the course from a list.

  • The one exception: If you create a place yourself via “+ Add place”, we store its name and coordinates in your account — otherwise it could not be suggested on your next visit. The sheet says so when you create it. You can delete the place at any time.
  • Home country: From the nearest course the app derives the country you last played in so that the directory sorts sensibly. This country code stays on the device and is deleted when you sign out.
  • Course directory: It comes from OpenStreetMap (Open Database License) and contains no user data. It is loaded from our server and cached on the device; the search transmits no coordinate.
  • Legal basis: Art. 6(1)(b) GDPR.

8. Videos and images in the cloud

A video or image of you leaves your device only at your request — and only after you have given consent under “Your media” in the settings. This switch is the only setting in the app that is off by default; the server checks it again on every upload.

  • Swing archive: If you star a swing, we upload the raw clip and the body-point file to your personal storage area so that the swing survives the local seven-day period and is available on a new device. Only you can access it. The archive stays until you remove the star or delete your account.
  • Clubhouse: If you share a swing, an image or a form check, we upload the clip (with the skeleton drawn in), a still frame and, if applicable, an image from your library. For every post you choose who sees it: only you, friends, followers, all users or a group. Videos in posts are deleted automatically twelve months after upload; the post remains without the video. Images remain until you delete the post.
  • Metadata: Location and device information (EXIF) is stripped from images before upload.
  • Delivery: Videos and images are delivered via short-lived signed addresses that are valid only as long as the right to see the post.
  • Other people: Do not record people who have not agreed — including in the background. You are responsible for content you share.
  • Legal basis: Art. 6(1)(a) GDPR. You withdraw consent by turning off the switch; withdrawal applies to the future. You remove content already uploaded by deleting the post, the star or your account.

9. The AI coach

The chat with the coach, the evaluation after a session and the evaluation of a drill are generated by a large language model. Your coach is an AI; the app labels every answer accordingly (Art. 50 of the EU AI Act). These functions are available to Pro users.

  • What is transmitted: your measured metrics and zones, score, club, course and target names, previous coach notes, your handicap (as a context value for your playing level), your chosen feedback style and the last 20 messages of the current conversation including your question.
  • What is not transmitted: your name, username, email address, video, body points, location.
  • Recipients: Requests go from our server to OpenRouter, Inc. (USA), a routing service for language models. The answer is generated by the configured model (currently DeepSeek V4 Flash), run by data-center providers that OpenRouter selects for us. We restrict the selection to providers that neither store inputs nor use them for training. To search the coach’s knowledge base, your question is additionally converted into a numeric vector by an embedding model from OpenAI (USA), also via OpenRouter. It sees the question text only.
  • Third countries: This transfers data to the USA and possibly to other countries outside the European Economic Area. We safeguard the transfer with the EU Commission’s standard contractual clauses (Art. 46(2)(c) GDPR) and, where a recipient is certified, the EU-US Data Privacy Framework (Art. 45 GDPR). Details in section 16.
  • Storage with us: We store your messages and the coach’s answers in your account so you can find conversations again; evaluations are kept as coach notes on the session, drill or swing. You can delete conversations in the app. We also count per account when and how often the coach was used (type of request, time, model used) to manage quotas and abuse; we do not store the content for this.
  • No medical advice: The coach is a training tool and is instructed not to give medical or health advice. Please do not share health data in the chat (such as injuries or diagnoses); we do not want to process such data.
  • Legal basis: Art. 6(1)(b) GDPR for the coaching you request; Art. 6(1)(f) GDPR for usage counting.

10. Voice mode and microphone

Voice mode and dictation in the chat use the microphone only while you have started them yourself. Speech recognition runs on the device (the operating system’s Apple or Google recognition); no audio recording is stored or transmitted to us — only the recognized text controls the app or lands in the input field. If on-device recognition is not available for your language on your device, the operating system may perform recognition on Apple or Google servers; their privacy policies apply. The coach’s voice consists of pre-produced clips inside the app; it is AI-generated. Legal basis: Art. 6(1)(b) GDPR.

11. Clubhouse

The Clubhouse is the community area of the app. Everything there is created by your actions.

  • Content: posts with caption and anchor (session, swing, drill, badge, image), comments, applause, form-check questions, posts in groups (flights, clubs, club pages), challenges and events — each with the visibility you choose.
  • Connections: follows, friend requests and friendships, group memberships and your home club. Others see how many connections you have, not who they are.
  • Messages: Direct messages and group chats are stored on our servers and are not end-to-end encrypted. We do not read them; we access them only if a message is reported or a legal obligation requires it.
  • Leaderboards: Course and friend leaderboards show usernames and score summaries if you have “In leaderboards” switched on.
  • Community rules: Before your first post, comment or message you accept the Clubhouse rules. We log the version and time of acceptance (Art. 6(1)(c) GDPR in conjunction with Art. 7(1) GDPR).
  • Moderation: Texts are checked automatically against a block list when saved and hidden if necessary. You can report any content and any profile; a report stores your identifier, the reported content (as a snapshot) and the reason. After three independent reports, content is hidden automatically until a person has reviewed it; reports reach us through an hourly digest delivered to MODERATION MAILBOX. The reported person does not learn who reported them. Mute and block take effect immediately and only between you and the person concerned. Legal bases: Art. 6(1)(b) and (f) GDPR and Art. 6(1)(c) GDPR in conjunction with Art. 16 and 17 of Regulation (EU) 2022/2065 (Digital Services Act).
  • Legal basis of the community features: Art. 6(1)(b) GDPR.

12. Progress, ranks, monthly report

From your sessions we compute experience points, your rank, the daily streak, the weekly goal, badges and the form card. On the first day of each month our server compiles a monthly report from your sessions (number of sessions and swings, best score, change); no language model is involved. These values belong to your account and are shown to others only according to your visibility settings; a badge or rank may appear in a post you share. Legal basis: Art. 6(1)(b) GDPR.

13. Notifications

  • Scheduled on the device: Reminders for weekly goal and streak are scheduled locally by the app; nothing is transmitted for them.
  • Sent by the server: Notifications about the first applause or comment on a post, replies to a form check, new messages, the monthly report and a friend overtaking you — a few per week at most. Everything else (further reactions, new followers, friend requests, challenges) appears only in the app’s inbox. For this we store your device’s push token, your language and your notification settings. Delivery runs through the Expo Push Service (650 Industries, Inc., USA) to your operating system’s push service (Apple Push Notification service or Google Firebase Cloud Messaging). Token, title and text of the notification are transmitted.
  • Every kind of notification can be switched off individually in the settings; notifications are never sent for advertising. The token is deleted when you sign out. Legal basis: Art. 6(1)(b) GDPR.

14. Updates, error reports, security

App updates

On launch the app checks with Expo (650 Industries, Inc., USA) whether an updated version of its JavaScript code is available and loads it if so. The app and runtime version, the platform and, technically unavoidable, your device’s IP address are transmitted. Legal basis: Art. 6(1)(f) GDPR (fixing errors without a store update).

Crash and error reports

If the app crashes or an error occurs, it sends a report to Sentry (Functional Software, Inc., USA), which we operate in the EU data region (Frankfurt). A report contains the technical error location, device model, operating system and app version, the screens visited last and your account identifier. It contains no IP address, no name, no email address, no videos, no body points and no coach content; addresses are stripped of parameters and local file paths before sending. There is no screen recording. On roughly every tenth launch, timing measurements are additionally transmitted. Legal basis: Art. 6(1)(f) GDPR (stability of the app). Sentry deletes reports after 90 days.

Security

All connections are TLS-encrypted. Every database row is bound to your account (row level security); other people’s data is reachable only through narrowly defined queries that enforce the visibility rules. To prevent abuse we limit the number of posts, messages and coach requests per account and time window and store timestamps of your actions for this. Our backend platform keeps short-term access logs (IP address, time, endpoint) for security and error analysis. Legal basis: Art. 6(1)(f) GDPR and Art. 32 GDPR.

15. Storage on your device

The app stores on your device: the sign-in session (in the keychain), your settings and onboarding markers, the course directory, an image cache for Clubhouse content, recorded videos with their body-point files (seven days), downloaded app updates and — until processed — images you shared to Visco from another app. This storage is strictly necessary for the service you explicitly use (Section 25(2) no. 2 of the German TDDDG) and requires no separate consent. Account-related data is removed when you sign out; everything is removed when you uninstall. The website stores nothing in your browser.

16. Recipients, processors and third countries

We pass personal data only to service providers that process it on our behalf and on our instructions (Art. 28 GDPR), to sign-in and platform services acting as independent controllers, and to other users within the visibility you choose. There is no sharing for advertising purposes.

ServiceCompanyPurposeProcessing locationRole and basis
SupabaseSupabase, Inc., USASign-in, database, file storage, server functionsEU (Frankfurt)Processor; DPA with standard contractual clauses for support access from third countries
SentryFunctional Software, Inc., USACrash and error reportsEU (Frankfurt)Processor; DPA, EU-US Data Privacy Framework and standard contractual clauses
Expo650 Industries, Inc., USAPush delivery, app updatesUSAProcessor; DPA with standard contractual clauses
OpenRouterOpenRouter, Inc., USARouting coach requests to language modelsUSA and locations of the selected model providersProcessor; DPA with standard contractual clauses; providers without storage only
OpenAIOpenAI, L.L.C., USA (via OpenRouter)Embedding the question text for knowledge searchUSASub-processor of OpenRouter; EU-US Data Privacy Framework
AppleApple Distribution International Ltd., Ireland / Apple Inc., USASign in with Apple, push delivery (APNs), App Store, system speech recognitionEU / USAIndependent controller (sign-in, store); push under the Apple developer agreement; EU-US Data Privacy Framework
GoogleGoogle Ireland Ltd., Ireland / Google LLC, USASign in with Google, push delivery (FCM), Google Play, system speech recognitionEU / USAIndependent controller (sign-in, store); FCM as processor under Google’s data processing terms; EU-US Data Privacy Framework
Website hostingHOSTING PROVIDERDelivery of visco.devREGIONProcessor; DPA
Email deliveryEMAIL DELIVERY SERVICEDelivery of sign-in codesREGIONProcessor; DPA
Notification listLIST SERVICEWebsite launch notificationREGIONProcessor; DPA
Moderation mailboxMODERATION SERVICEDelivery of reported content to moderationREGIONProcessor; DPA
Email mailboxEMAIL PROVIDERContact and supportREGIONProcessor; DPA

Where data is transferred to countries outside the European Economic Area, this is based on an adequacy decision of the EU Commission (for certified US companies: the EU-US Data Privacy Framework, Art. 45 GDPR) or on the EU Commission’s standard contractual clauses (Art. 46(2)(c) GDPR) with supplementary measures. You can request a copy of the respective safeguards at info@visco.dev.

Not involved: the tools we used to generate images and the coach’s voice before publication — they never see user data. Nor is OpenStreetMap, whose course data we only read.

17. Retention

DataPeriod
Account, profile, sessions, swings, drills, progress, coach conversations, Clubhouse content, connections, block lists, diagnostic rowsuntil you delete them, at the latest until the account is deleted
Videos in Clubhouse poststwelve months after upload, then automatically
Swing archiveuntil you remove the star or delete the account
Videos and body points on the deviceseven calendar days
Content reportsas long as needed for review and to document the decision
Acceptance of the Clubhouse rules, consentsfor the life of the account as proof (Art. 7(1) GDPR)
Crash reports at Sentry90 days
Website access logs30 days at most
Launch notification listuntil withdrawal, at most three months after the app launch
Business correspondence, invoicessix or ten years (Sections 257 HGB, 147 AO), locked

You trigger account deletion in the app (Profile → Settings → Account & data → Delete account) or without the app via the page Delete account. It removes all server data listed above including uploaded videos and images and the profile picture in one go; only records we must keep by law remain, locked. After deletion the app signs you out and clears the account-related data on the device.

18. Your rights

You have the following rights toward us:

  • Access to the data stored about you (Art. 15 GDPR) — the export in the app under Settings → Account & data provides it completely and in a machine-readable form.
  • Rectification of inaccurate data (Art. 16 GDPR) — you change profile details yourself.
  • Erasure (Art. 17 GDPR) — in the app in two steps.
  • Restriction of processing (Art. 18 GDPR).
  • Data portability (Art. 20 GDPR) — the same export, free of charge.
  • Withdrawal of consent with effect for the future (Art. 7(3) GDPR) — for media uploads via the “Your media” switch, for the launch notification by email.

Right to object (Art. 21 GDPR). You have the right to object at any time, on grounds relating to your particular situation, to processing of personal data concerning you which is based on Art. 6(1)(f) GDPR (in this policy: access logs, detection diagnostics, usage counting, app updates, error reports, security measures, moderation). We will then no longer process the data unless we can demonstrate compelling legitimate grounds for the processing which override your interests, rights and freedoms, or the processing serves the establishment, exercise or defense of legal claims. You can object informally at info@visco.dev.

You also have the right to lodge a complaint with a data protection supervisory authority (Art. 77 GDPR), for example the one responsible for us: Bayerisches Landesamt für Datenschutzaufsicht (BayLDA), Ansbach. A list of all German authorities is published by the Federal Commissioner for Data Protection.

19. Minimum age

Visco is intended for people aged 16 and over. We do not knowingly collect data from younger people. If we learn that an account was created by a person under 16, we delete it. Parents and guardians can reach us at info@visco.dev.

20. Automated decisions and AI

We make no decisions based solely on automated processing that produce legal effects concerning you or similarly significantly affect you (Art. 22 GDPR). Score and metrics are deterministic calculations from your recording; the coach’s answers are recommendations you may follow or not. The automatic hiding of content reported several times is provisional and reviewed by a person.

Disclosure under Art. 50 of the EU AI Act: Your coach is an AI. The depictions of the coach, the explanatory and drill images, the club heads and the coach’s voice are AI-generated; the person shown does not exist. The app says so at the relevant places. What you see when the app measures your swing, by contrast, is your own recording.

21. Changes

We adapt this policy when the app or the legal situation changes. The current version is always available at visco.dev/privacy; the date above shows its status. We inform you in the app about material changes that affect you.