This privacy policy describes how Cadence (SASU), acting as data controller, collects, uses, and protects your personal data. It applies to the runcadence.app website and the RunCadence mobile application.
This English version is a courtesy translation of the French original. In case of discrepancy, the French version prevails.
1. Data we collect
When you use RunCadence, we collect the following data:
- Account information: email address, first and last name.
- Profile data: experience level, running history, VO2max pace (VMA), available terrain, injury history, "about me" text.
- Training data: training plans, session logs, RPE ratings, notes, weekly feedback.
- Health data: with your explicit permission, we read the following data from Apple Health:
- Workout data: distance, duration, heart rate, cadence, elevation, pace splits
- Cardiac: resting heart rate, heart rate variability, heart rate recovery, respiratory rate, blood oxygen
- Recovery: sleep duration and stages, sleeping wrist temperature
- Fitness: VO2max, active energy, body mass
- Running biomechanics: power, ground contact time, vertical oscillation, stride length
- Activity: step count
- Approximate location: when you log a run, its approximate coordinates are sent to our servers and to our weather provider (Open-Meteo) to retrieve the weather conditions during that session. We do not track your location continuously, and it is never used for advertising.
- Chat messages: your conversations with the AI coach are stored to maintain coaching context.
- Technical information: device language, error logs and product events linked to a pseudonymous identifier (see section 6).
2. Purposes and legal basis (Article 6 GDPR)
Each processing activity rests on an identified legal basis:
- Contract performance (Art. 6.1.b): account creation, plan generation, coaching, sending workouts to compatible connected watches, user support.
- Consent (Art. 6.1.a): Apple Health access and authorized Garmin data access through Stridee, sharing data for session replay and product analytics, non-transactional communications. You can withdraw your consent at any time in the app Settings.
- Legitimate interest (Art. 6.1.f): bug detection (Sentry), technical security, fraud prevention. Our interest in providing a reliable service is balanced against your rights; you can object by contacting us.
- Legal obligation (Art. 6.1.c): retention of accounting data, responses to authority requests.
3. Third-party services
We use the following processors to operate RunCadence:
- Supabase: authentication and database hosting (EU region).
- Railway: backend application hosting (EU region).
- Anthropic: AI models used according to the service configuration. Messages and relevant profile, training, and recovery context are sent to generate responses and plans. Anthropic’s commercial terms exclude model training on this data by default.
- Langfuse: technical monitoring and evaluation of AI coaching quality. Traces may include model inputs and outputs, coaching context, tool calls, and technical metadata linked to your account.
- PostHog: EU-hosted product analytics and session replay. Events are linked to a pseudonymous account identifier. Input fields are masked, but content already displayed on screen may appear in a replay. See section 6.
- Sentry: crash and error reporting, including technical traces, device model, OS version, request context, and a pseudonymous account identifier. This is pseudonymized personal data, not anonymous data.
- RevenueCat: subscription and entitlement management. RevenueCat receives a pseudonymous account identifier, subscription status, and purchase events. Payment details are handled by Apple.
- Apple App Store: subscription billing and management. Apple processes all payments under its own terms and shares only the minimum subscription state needed to grant you access.
- Garmin via Stridee: if you enable this optional connection, Stridee handles exchanges between Garmin and RunCadence. We send it a RunCadence account identifier and workouts you choose to send (date, title, steps and targets). We receive available, authorized activity and health data: distance, duration, heart rate, pace, cadence, elevation, route coordinates when present, sleep, and recovery or activity measurements. RunCadence does not receive your Garmin password. Stridee may appear as the connected application in Garmin. See Stridee's privacy policy and our Garmin guide.
- Strava: when you choose to connect your Strava account, we import your running activities (distance, pace, heart rate, splits, route coordinates) through Strava's API to keep your training log complete. The connection is optional and you can disconnect it at any time. Strava is based in the United States.
- Open-Meteo: weather provider. When you log a run, only the run's coordinates and timestamp are sent to retrieve the weather conditions for that session. No account or personal identifier is shared. Open-Meteo operates in the EU.
- Resend: transactional email delivery (account confirmation, password reset, important service notices). Resend receives your email address and the message content.
- Microsoft Azure OpenAI: AI models hosted by Microsoft, used according to the service configuration for coaching and plan generation. Messages and relevant profile, training, and recovery context are sent to Azure. They are not made available to OpenAI or used to train foundation models without permission. Processing location and retention depend on the deployment and Microsoft's security controls. Learn about Azure OpenAI data handling.
- OpenAI: when coach-memory search is enabled, memory text is sent to the embeddings API to create numerical representations and retrieve relevant context. This service is separate from Azure OpenAI. API data is not used for model training by default. API data handling details.
- Brave Search and visited websites: when web search is enabled, queries composed by the coach are sent to Brave Search. Our server may also access public web pages to inform a response.
- Vercel: website hosting and technical data needed to deliver the site, including access requests and diagnostics.
4. International data transfers
Our databases are hosted in the EU. Some providers or their teams may nevertheless process data outside the European Economic Area, including Microsoft, Anthropic, OpenAI, Langfuse, Sentry, RevenueCat, Vercel, Strava, Garmin, Stridee, and Resend. European hosting alone does not guarantee that all processing remains in the EU.
For Azure OpenAI, processing location depends in particular on whether the deployment is regional, Data Zone, or Global. Transfer safeguards depend on the provider and contract, including standard contractual clauses or an adequacy decision where applicable. You can request information on processing locations and the applicable safeguards at contact@runcadence.app.
5. How we use your data
- To provide personalized AI coaching and generate your training plan.
- To adapt your plan based on your sessions, feeling, and feedback.
- To send structured workouts to your Apple Watch or to Garmin through Stridee when you enable that connection.
- To authenticate your account and secure access.
- To improve coaching quality and fix bugs.
- To compute physiological signals (readiness, training load, fitness trend) for personalized coaching.
6. Analytics & session replay
Analytics and replay are currently enabled by default; the setting below lets you turn them off.
Product analytics measure screen views, interactions, and actions such as logging a session. They use a pseudonymous account identifier and selected profile properties, such as language and experience level. Our explicitly added events do not include message text, session notes, or GPS coordinates.
Session replay helps reproduce problems using navigation and displayed content. Input-field masking is enabled, but it does not necessarily hide text already displayed, such as a coach response, or images. A replay can therefore contain personal information visible on screen.
You can turn off analytics and session replay from Settings → Privacy → Help improve RunCadence. Your choice is saved on your device and applies to future collection; it does not delete data already received.
7. Health data
RunCadence uses authorized Apple Health data and, if you connect Garmin through Stridee, authorized Garmin data to enrich your training log, calculate load and recovery signals, and personalize coaching. Data is transmitted via HTTPS and stored in our EU databases. Relevant context may be processed by the AI coaching and quality-monitoring providers described in section 3. We do not sell your health data or use it for advertising.
Health data is a special category of personal data under Article 9 GDPR. We process it solely with your explicit consent (Article 9.2.a), granted through the Apple Health permission flow or the Garmin connection through Stridee. You can withdraw consent at any time per the instructions above.
You can revoke Apple Health access at any time in your iPhone Settings.
For Garmin, disconnect in Settings → Devices & Services → Garmin or revoke Stridee's access from Garmin. Turning off automatic workout sending alone does not stop data imports. Disconnecting stops future exchanges; it does not delete sessions already saved in RunCadence. To request their deletion, use the rights described in section 10. Deleting your RunCadence account includes a request to delete the associated technical account at Stridee.
8. Cookies
The runcadence.app marketing site does not set advertising cookies. The RunCadence mobile application does not use cookies; in-app analytics are described above (section 6). More details in our Legal Notice.
9. Retention periods
| Data category | Retention |
|---|---|
| User account (profile, plan, sessions, chat) | For the lifetime of the account. Deleted within 30 days of a deletion request. |
| Billing data | 10 years from the end of the contractual relationship (French accounting obligation, Art. L. 123-22 Commercial Code). |
| Technical and error logs | 90 days maximum. |
| Session replays | 30 days. |
| Pseudonymized product analytics | 13 months. |
| Support emails | 3 years from the last exchange. |
10. Your rights (GDPR)
Under Articles 15 to 22 of the GDPR, you have the following rights:
- Right of access to your personal data;
- Right to rectification of inaccurate data;
- Right to erasure ("right to be forgotten");
- Right to data portability in a structured format;
- Right to object and right to restriction of processing;
- Right to withdraw consent at any time;
- Right to set post-mortem directives on the fate of your data.
To exercise any of these rights, write to contact@runcadence.app. We respond within one month, in accordance with Article 12 of the GDPR.
11. Complaint to the CNIL
If after contacting us you believe your rights are not being respected, you may lodge a complaint with the French data protection authority (CNIL):
CNIL: 3 Place de Fontenoy, TSA 80715, 75334 Paris Cedex 07.
Phone: +33 1 53 73 22 22.
Site: www.cnil.fr
12. Minors
RunCadence is not intended for users under 16 years of age. We do not knowingly collect personal data from users under 16. If you become aware that a minor has created an account without parental authorization, write to us and we will promptly delete the account and associated data.
13. Breach notification
In the event of a personal data breach likely to result in a risk to your rights and freedoms, we will notify the CNIL within 72 hours and inform you directly without undue delay, in accordance with Articles 33 and 34 of the GDPR.
14. Security
All data is transmitted via HTTPS. Authentication tokens are stored in the iOS Keychain. Database access is restricted and encrypted at rest. We apply industry best practices for security (key rotation, least-privilege access, logging).
15. Modifications
We may update this policy. Any material change will be notified to you by email or in the app before it takes effect. The last-updated date is shown at the top of this page.
16. Contact
For any question about this policy, write to contact@runcadence.app.
17. Reference language
This policy is drafted in French. The English version is provided for information only at /privacy. In case of discrepancy, the French version prevails.