
Privacy Policy
Bad Coach is a satirical step challenge app. This privacy policy explains, in painful but useful detail, what happens around the website, app, newsletter, account, steps, subscriptions, free-with-ads access, Pro+ Online Backup, support, feedback, and deletion.
Version, controller, and contact
Version: August 2026. The controller for Bad Coach is Patrick Benkö e.U., Patrick Benkö, BSc (WU) MSc (WU), Rauchwart 207, 7535 Rauchwart im Burgenland, Austria.
Privacy, support, and deletion questions can be sent to support@bad-coach.app. If your request involves account data, use the email address connected to your Pro+ Online Backup whenever possible.
General provider details are also available in the imprint. Privacy requests are not handled through social media, because there is no clean way to verify that the right person is actually writing.
- Controller
- Patrick Benkö e.U.
- Support
- support@bad-coach.app
- Provider email
- office@bad-coach.app
What the processing is for
Bad Coach processes data so the app can work: count steps, evaluate daily goals, show progress, trigger roasts, award badges, connect accounts, save backups, answer support, and prevent abuse.
The amount of data depends on how you use Bad Coach. Local-only use creates far less account-related processing. Pro+ Online Backup, the six-digit email code, Google Sign-In, Sign in with Apple, support, feedback, and free-with-ads access involve additional service providers.
This policy covers both the public website at https://www.bad-coach.app and the Bad Coach app. If a feature is not available on every platform yet, the relevant section applies once you use that feature.
Website, hosting, and server logs
The website is delivered through Vercel. When you visit it, technical access data may be processed, such as IP address, time, requested URL, user agent, referrer, status codes, and similar server log data.
Those logs are not the content of Bad Coach; they are the doorman. Without them, the website cannot be served securely and reliably.
Processing is used for delivery, technical security, error analysis, abuse prevention, and performance. The legal basis is our legitimate interest in a secure and functional website and, where the site provides pre-contract information, pre-contractual measures.
The public website currently does not use its own marketing or tracking cookies. The newsletter form processes the data described in the dedicated newsletter section and does not require a marketing cookie.
General Bad Coach news and availability newsletter
You can voluntarily sign up for general Bad Coach news, including Apple App Store and Google Play availability, product news, and updates. The newsletter is optional and is not required to use the website or app.
The legal basis is your consent under Article 6(1)(a) GDPR. Consent is requested separately through an affirmative checkbox, is recorded so it can be demonstrated, and can be withdrawn as easily as it is given.
The newsletter record can contain your email address, locale, consent version and timestamp, subscription status, confirmation timestamp, and unsubscribe timestamp.
Supabase stores the newsletter subscription record in the database. Resend delivers the confirmation and newsletter emails. Depending on the provider and processing location, data may be processed outside the European Economic Area. For covered transfers without an adequacy decision, the current Supabase and Resend data processing addenda incorporate the European Commission's Standard Contractual Clauses. The provider documents are available at supabase.com/legal/dpa and resend.com/legal/dpa.
After signup, Resend sends a 24-hour Double Opt-in link. Only the deliberate confirmation activates the subscription. Unconfirmed addresses are suppressed and do not receive general newsletter emails; after the link expires, you can sign up again to request a new one.
You can withdraw consent at any time for the future through the unsubscribe link in every newsletter or by contacting support@bad-coach.app. Processing that was lawful before withdrawal remains unaffected.
After withdrawal or unsubscription, newsletter delivery stops. Where needed to demonstrate consent and prevent accidental re-mailing, Bad Coach retains a minimal suppression and consent audit record, including the address, relevant consent record, status, and unsubscribe time, only for as long as required for those purposes or legal duties.
Unsubscribing and newsletter erasure are separate choices. Unsubscribing stops delivery and keeps the minimal suppression and consent evidence described above. A separate, explicit erasure action permanently deletes the newsletter row and raw email address.
Public Vendetta profiles and trophy images
A public Vendetta profile is disabled by default and appears only after you explicitly opt in. It uses a separate public display name that you manage independently of login.
A private auth subject binds your Supabase account to the corresponding Vendetta participant and profile. The private auth subject, account email, login provider identity, and auth metadata are never published, and the public name is never derived from them.
Before joining, choose the edition country carefully: the edition country selected at join is permanent for that edition and cannot be changed afterwards. Supabase binds that join unambiguously to your Bad Coach account and provides the public Vendetta reckoning board. Your private auth ID and email remain private.
The public projection can include the public participant ID, optional display name, rank, acknowledged points, country, season history, and earned badges and trophies. Your current and historical Vendetta seasons remain publicly linkable while the profile is enabled.
After login, you manage only the separate public Vendetta display name and public visibility at /en/profile; the page cannot change your edition country, account, private auth ID, or email. Disabling visibility makes the public projection unavailable on the next request without changing your authentication identity. Use /account/delete for the verified deletion path for the account binding and assignable account data.
Public trophy images are delivered through Cloudflare R2 at https://assets.bad-coach.app. When an image is requested, Cloudflare can process technical delivery data such as IP address, requested asset URL, user agent, timestamp, and security signals.
App permissions, steps, and health data
Bad Coach reads step counts from HealthKit, Apple Health, Health Connect, or the relevant platform step provider only when you grant permission. Raw health and step data stays on your device or with Apple Health, Health Connect, or Google Fit where applicable.
The app uses step values to calculate step bets, daily goals, streaks, score, level, roasts, badges, losses, missions, and other Bad Coach progress.
Bad Coach does not need your full medical file. Diagnoses, medication, training plans, calories, sleep data, or other sensitive health details are not required for normal Bad Coach functionality.
If you deny or later revoke step permissions, step missions and progress logic may be limited. Permission control happens through iOS, Android, or the relevant health platform.
If step-derived app progress later becomes part of a backup, that is Bad Coach game state such as score, level, status, and completed goals, not raw Apple Health or Health Connect data.
Local app data on your device
Many Bad Coach data points can be processed and stored locally on your device, such as current goals, progress, streaks, badges, logbook status, app settings, and technical states.
Local data generally stays on your device unless you use a feature that needs transfer, such as Pro+ Online Backup, account login, support, feedback, or ads.
If you delete the app, local data may disappear depending on operating system and device settings. An app-store subscription is separate; cancellation and management happen through the relevant store.
Local data may also be part of operating-system device backups if you enabled those backups. Bad Coach has limited control over that.
Account, login, and authentication
The website account works through an exactly six-digit numeric email code, Sign in with Apple, or Google Sign-In. Bad Coach does not run its own password login and does not receive your Apple or Google password.
Account processing can include email address, login identifier, provider information, technical session data, login and confirmation timestamps, and security-relevant events.
Authentication is handled through Supabase Auth. The website login opens the same Supabase account used by the app; it does not create a separate website identity. With Google Sign-In or Sign in with Apple, those providers may additionally process that you sign in to Bad Coach. What data they provide depends on their login flow and your settings.
Email codes expire and can be used only for the submitted address. If a code expires, request a new one and never send a code to support.
Pro+ Online Backup
Supabase is not required for Pro or local app use. If you actively use Pro+ Online Backup, server-side data may include account identifiers, email or login identifiers, and Online Backup data.
The Online Backup contains progress, achievements, score, level, logbook, challenge target steps, final challenge steps, and challenge status.
The Online Backup is a remote save state that saves with a usable account session automatically after relevant progress changes. You can also save it manually and manually restore it later.
It is not continuous device mirroring, not an automatic live backup, and not a full device backup.
The current backup can overwrite older backups. If you manually restore, local visible progress is set to the stored state. Useful, but not a magic time machine.
The legal basis is contract performance when you use Pro+, plus our legitimate interest in stable operation, abuse prevention, and error analysis.
Subscriptions and purchases
Pro and Pro+ are yearly in-app subscriptions. Payments, invoices, store accounts, cancellation, and refunds are processed by the App Store or Google Play. Bad Coach does not receive full payment data.
Bad Coach may process technical subscription information needed to unlock Pro or Pro+ in the app, such as product identifier, status, expiration date, store, purchase environment, and technical transaction references.
Full payment processing, payment methods, store invoices, refunds, and cancellation happen with the relevant store. If you want to cancel, do it in the App Store or Google Play. The app cannot shout at the store for you.
Free with ads and Google AdMob
After the free trial, you can keep using Bad Coach without payment by choosing free access with ads. Bad Coach uses Google AdMob and Google's User Messaging Platform (UMP) for consent and ad privacy choices. Trial, Pro, and Pro+ access do not show ads.
Google Mobile Ads may process or receive ad-related data such as IP address, approximate location derived from IP address, ad interactions, diagnostics, device or app identifiers, and advertising data for ad delivery, measurement, fraud prevention, and related analytics.
Where required, UMP asks for consent before ads are requested and may offer an in-app ad privacy options entry point.
Bad Coach requests non-personalized ads for free-with-ads access and does not ask for Apple App Tracking Transparency permission for IDFA access.
Non-personalized ads are not automatically data-free. They may still use technical data for delivery, frequency capping, fraud prevention, measurement, and aggregated reporting.
If you want to avoid ads, Trial, Pro, and Pro+ are the ad-free variants. Free is free of payment, not free of ad tech.
Support and feedback
If you contact support or use the feedback form at https://www.bad-coach.app/support/feedback, category, subject, message, language, platform, and the technical context needed to deliver the report may be stored in Supabase as a support or feedback request.
Please do not send sensitive health details or diagnoses.
The public website feedback form requires no Bad Coach account but uses a technically necessary pseudonymous feedback installation identifier in this site's local browser data for spam and abuse prevention. The identifier has a 30-day expiry and is never reused after expiry. Local browser storage does not delete expired values by itself, so the configured form removes or replaces the identifier on the next visit or submission.
You can remove the browser-local identifier sooner by clearing local data for this site. Bad Coach never clears unrelated browser storage.
The website form loads a Cloudflare Turnstile Managed challenge. Cloudflare can process IP address, browser and device signals, challenge interactions, and related security data to distinguish human use from abuse.
A short-lived challenge token is sent with the report to the existing feedback service, where it is verified server-side before the request is accepted.
Feedback is optional and separate from newsletter consent. Sending feedback does not subscribe you to the newsletter.
The website feedback form is a one-way report channel and does not promise a reply. For anything that needs a reply, email support@bad-coach.app. Verified account and deletion actions use /account/delete.
Email support data can be used to answer your request. One-way website reports are used to find bugs, limit abuse, and understand recurring product issues.
If you send screenshots, logs, or free text, you help determine what is in them. Please do not throw ID documents, bank data, or medical novels into a support field.
Categories of data processed
Depending on use, the categories can include technical usage data, device and platform data, website log data, app settings, local progress data, step-derived progress data, account and login data, newsletter contact and consent data, support and feedback content, subscription status data, and ad-related data in Free mode.
Not every category applies to every person. No account means no account data. No Pro+ Online Backup means no Online Backup save state. Pro and Pro+ users do not see AdMob ads in Bad Coach.
The exact processing depends on platform, app version, permissions, store, subscription status, and your choices in the app.
Purposes and legal bases
Processing happens in particular for contract performance, pre-contractual measures, consent, legal obligations, and legitimate interests.
Contract performance covers app functionality, account, Pro/Pro+, Pro+ Online Backup, support, and subscription unlocking.
Consent covers the optional newsletter, optional permissions such as access to step sources and, where required, ad and privacy choices in Google UMP.
Legitimate interests cover stable operation, security, abuse prevention, error analysis, fraud prevention, technical records, and product improvement.
Legal obligations can include accounting, tax, evidence, and retention duties. When a store processes payment records, its own store rules also apply.
Recipients and processors
Bad Coach uses service providers so the app is not run from a shoebox. These can include Supabase for authentication, database, newsletter records, Online Backup, and feedback; Resend for newsletter email delivery; Vercel for website hosting; Cloudflare for Turnstile abuse prevention and public R2 trophy delivery; Google AdMob and UMP for ads and ad privacy choices in Free mode; and Apple and Google for stores, login, and platform services.
Recipients receive data only as needed for the relevant purpose. Supabase matters when newsletter, account, Pro+ Online Backup, support, or feedback are used. Resend matters when newsletter confirmation or delivery is requested. Vercel matters when visiting the website. Cloudflare matters when the website feedback form or public R2 trophy images are loaded. Google AdMob matters in free-with-ads access. Apple and Google matter for store, platform permissions, and optional login.
Depending on provider, processing may also happen outside the European Economic Area. In such cases, providers use the applicable data transfer mechanisms such as adequacy decisions, standard contractual clauses, or comparable safeguards.
Cookies, local storage, and sessions
The website currently does not use its own marketing cookies. For login, security, app redirects, sessions, or technical state, cookies, local storage, session storage, or comparable storage technologies may be used.
Technically necessary storage is used to deliver pages, recognize login state, process email-code and compatible confirmation-link flows, or prevent abuse. The feedback form uses the time-limited browser-local identifier described above for rate limiting and replay protection.
Cloudflare Turnstile can use technically necessary browser signals or storage for the feedback form. Bad Coach does not use the challenge for advertising and does not clear unrelated browser cookies or storage after feedback.
In the app, operating-system storage areas can store progress, settings, sessions, consent status, and technical states.
Ad and consent technology in Free mode is handled through Google AdMob and UMP. Depending on platform and choice, additional identifiers, consent signals, or technical data may be processed there.
Retention and deletion
Personal data is stored only as long as needed for the relevant purpose or as long as statutory retention duties apply.
Local app data remains on your device until you reset it in the app, delete the app, or the operating system removes it.
Account and Pro+ Online Backup data remain stored while the account or backup is needed or until you request deletion. You can disable Pro+ Online Backup or use /account/delete to request deletion of your Bad Coach account and assignable Online Backup data.
Unresolved feedback is retained for at most 24 months and resolved feedback for at most 90 days. Server-side pseudonymous rate-limit hashes are separate from the browser-local identifier and are retained for at most 30 days. Earlier deletion can apply where the report is no longer needed or a verified request requires it, subject to legal or security reasons.
Subscription cancellation is not account deletion. Store purchase history, invoices, and refund processes stay with the App Store or Google Play and must be managed there.
Security
Bad Coach uses technical and organizational measures to protect data against unauthorized access, loss, misuse, and unnecessary curiosity.
Measures include role-based access, authentication through established providers, transport encryption, limited access rights, logging of security-relevant events, and the principle of not storing more data than needed.
No system is indestructible. If you believe your account, an email code, a confirmation link, or a support message was compromised, contact support@bad-coach.app.
Data use, communications, and no medical evaluation
We do not sell your data. Bad Coach uses advertising only in the free-with-ads mode described above; Pro and Pro+ remove ads.
We use data for the purposes described in this policy, including app functionality, the optional newsletter, Pro+ Online Backup, customer support, error analysis, abuse prevention, legally required purposes, and AdMob ad delivery and measurement where ads are enabled.
Bad Coach does not create a medical diagnosis, training plan, or automated decision with legal effect. Roasts are roasts. Annoying, but not an official act.
Your rights
Subject to GDPR conditions, you have rights of access, rectification, deletion, restriction of processing, data portability, objection, and withdrawal of consent.
To exercise rights, contact support@bad-coach.app and use the email address connected to the relevant account or backup where possible.
If we cannot verify account ownership, we may ask for additional information. That is annoying, but better than deleting the wrong person's progress.
You can also lodge a complaint with the Austrian Data Protection Authority if you believe data protection law has been violated.
- Authority
- Austrian Data Protection Authority
- Website
- dsb.gv.at
Changes
This privacy policy can be updated when app functions, providers, legal requirements, store rules, or processing activities change.
The current version is published on bad-coach.app. If a material change affects active app use, we will try to make it reasonably visible.