Speedmax privacy policy
Effective date: 13 October 2026
Who we are
Speedmax (https://speedmax.app) is a hosted triathlon coaching app run by a single founder in Switzerland. Speedmax is operated by its founder, who is responsible for your personal data (the controller). There is no company: the founder is the controller in person, and [Controller name] will name them here. Our postal address is [Postal address]. Contact us at [email protected].
Swiss data protection law, including the Federal Act on Data Protection (FADP), applies to our processing. For athletes in the EU, the General Data Protection Regulation (GDPR) also applies where its scope is met.
What we collect and why
We store your training record so that you and the Speedmax coach can review activities, plan training and exchange coaching messages.
- Account: email address, account ID, creation date, admin flag and onboarding state. Sign-in uses email links, without a password. We store hashed sign-in and session tokens, expiry dates and session-use times.
- Profile: information supplied by you or the coach, such as birth year, sex, height, weight, heart-rate limits, performance thresholds and goals. Measurements include their source, dates and supporting evidence where supplied.
- Activities: uploaded FIT, TCX, GPX, supported CSV files and ZIP archives, including Strava exports. We retain the uploaded files and archived source files, filenames, hashes and import results. Parsed records can include dates, durations, distances, descriptions, laps and per-second or device-recorded samples of heart rate, power, GPS location, cadence, speed, altitude and temperature.
- Coaching: planned workouts, completion reports, session notes, observations, restrictions, and the coach's note files about you, including previous versions. These can describe injuries, illness, fatigue or other health information. We also retain coaching changes and stored requests and results used to prevent duplicate changes.
- Optional browser alerts: when you enable notifications, we store the browser’s push subscription address and encryption keys, linked to your signed-in session. Alerts summarize the saved training plan or link to a coach assessment. You can disable them under Browser alerts or in your browser’s site settings. Signing out also stops alerts to that browser.
- Communication: conversations, messages, questions, answers, conversation summaries, delivery status, time zone and communication preferences. Messages can carry charts the coach made from your data; we store each chart as an image file with your other files. We record sign-ins, imports and delivery failures to operate and troubleshoot the service.
Email is needed to sign in. Uploaded archives can contain more personal information than the activity fields we parse.
The AI coach and other data sources
The Speedmax coach is an AI model that Speedmax runs for you. When something happens in your account (a message, an answer, an upload, a note you edit) and on a daily and weekly schedule, Speedmax sends the model the information it needs to coach you: your profile, plan, recent activities, notes, open questions, conversation summaries and the current conversation. The model can read more of your record and change your plan, notes and messages through Speedmax's own functions. This information can include health-related notes and activity data.
The coach can also run code on your data to do calculations and make charts, for example from the per-second samples of an activity. The code runs in Anthropic's code execution sandbox: an isolated container without internet access, started new for each coach run, with nothing kept between runs. Speedmax sends the sandbox only the data the code asks for through Speedmax's own functions. When the code makes a chart for you, Speedmax downloads it and deletes Anthropic's copy when the coach run ends. Charts that the coach sends you stay stored with your files until you delete your account, and they are part of your data export.
The coach can also search the web and read web pages, for example to find a race's course or your race results. It uses Anthropic's web search and web fetch tools: the search query and the address of the page go to Anthropic, which runs the search and may use a search provider to answer it. Before the coach searches with your name for the first time, it asks you for the name on your race entries and whether it may search with it. The pages it reads become part of the coach-run records above.
The model provider is Anthropic, PBC (USA), through its commercial API. Anthropic processes the data to return the model's answer and keeps it only as its commercial terms and data processing addendum allow. Under those terms, Anthropic does not use this data to train its models. Short conversation summaries are also made with an Anthropic model.
We record each coach run: the information sent to the model, the model's answers and reasoning summaries, the changes it made, token counts and cost. These records support troubleshooting, quality control and product improvement, and are kept for 90 days.
Strava data reaches Speedmax only through your uploads. Speedmax has no direct Strava API connection.
You can choose to connect your intervals.icu account in the command menu. Speedmax reads your whole available activity history as summaries when you connect and in a daily check. It downloads original files (FIT, TCX or GPX) for the last 365 days, newest first, over several days if intervals.icu limits the calls. New activities have priority. Webhooks report new, changed and deleted activities. Speedmax asks intervals.icu for read access to activities only. It writes nothing to intervals.icu. Speedmax stores your intervals.icu athlete ID, your name there and the access token on the server. The files go through the same import as an upload and are kept the same way. When you delete an activity on intervals.icu, Speedmax removes its intervals.icu copy. When you delete one in Speedmax, Speedmax keeps its intervals.icu ID so that the sync does not import it again. intervals.icu does not share activities that came from Strava. Choose Disconnect in the command menu, or delete your account, to remove the token and revoke the access of Speedmax on intervals.icu. Activities already imported stay until you delete them or your account.
Photos you send in the chat are sent to Anthropic so your coach can read them. We keep these photos with your data until you delete your account, and include them in your data export. We turn them upright, resize them and remove metadata, including GPS data, before storage or sending them to Anthropic.
Why processing is permitted
Under the FADP, we process data for the purposes stated here. For GDPR purposes:
- Contract (Article 6(1)(b)): running the service you asked for — your account, your training record, your plan, the coaching the AI coach gives you, and the messages between you and the coach.
- Legitimate interest (Article 6(1)(f)): keeping the service secure, answering your support requests, finding faults, and improving the product. The 90-day coach-run records serve this purpose. We keep it to what these purposes need.
Coaching notes and profile fields can hold health-related information, such as injury, illness or fatigue. For that, including sending it to the AI model provider to coach you, we rely on your explicit consent (Article 9(2)(a)). You give it when you sign in, after reading the notice under the sign-in button, which points at this policy. You can withdraw it by deleting your account, or by asking us to remove the notes. Withdrawal stops further use; it does not undo processing that was lawful before. See GDPR Articles 6 and 9.
Founder and admin access
The founder and accounts granted admin access can inspect athlete records, messages, notes and coach-run records for support and product improvement. Admins can open your dashboard in a read-only “view as” mode.
Admin changes and starting or stopping “view as” are recorded in an audit table. Ordinary admin reads are not individually audited. The audit includes the admin, action, athlete reference, time and details, which can include your email address.
Storage and sharing
The deployment uses one server, PostgreSQL and local files, with nightly database and file backups on the same host. There is no configured off-site backup. The hosting processor is Hetzner Online GmbH, a German company; the server itself stands in Hetzner's Helsinki data centre in Finland. Caddy serves HTTPS.
Our service providers and other recipients are:
- Hetzner Online GmbH (Germany, server in Finland): application storage, database and backups.
- Resend (Plus Five Five, Inc., USA): your email address and the emails we send you — the sign-in link and policy-change notices.
- Cloudflare, Inc. (USA): DNS for the domain. Traffic goes straight to our server; Cloudflare sees the domain lookups, not your data.
- Your browser’s push provider: if you enable browser notifications, we send encrypted alerts through the push service used by your browser, such as Apple, Google, Mozilla or Microsoft. That provider receives the subscription address, delivery metadata and encrypted payload. Your browser decrypts it and can show training information on your device’s notification or lock screen.
- Anthropic, PBC (USA): the coaching information described under “The AI coach”, sent to its API to run the coach, run its code in the sandbox, search the web and make conversation summaries.
Uploading a Strava export does not itself send data back to Strava. intervals.icu is a source you choose to connect: Speedmax sends it only the requests for your activities and the access token, and none of your Speedmax data.
Hetzner processes your data in the EU. Resend, Cloudflare and Anthropic process data in the United States. Resend and Cloudflare are certified under the EU-U.S. Data Privacy Framework. Our contracts with Resend, Cloudflare and Anthropic include the European Commission's standard contractual clauses. Write to [email protected] for a copy of the safeguards that apply to a transfer. Server location alone does not determine where email or coaching data is processed.
Retention and deletion
Coach-run records are kept for 90 days, then removed by daily housekeeping. Copies of information in notes, messages, coaching records or backups can remain longer. Other athlete records remain until account deletion unless you or the coach change them.
Sign-in links expire after 15 minutes; daily cleanup removes link records older than a day and expired browser sessions.
Browser subscriptions are removed when you disable alerts, sign out, your session is removed, or the push provider rejects an expired subscription. Notification queue records are removed seven days after their expiry.
Choose Delete my account in the command menu and confirm your email address. This removes the account and its linked database records, signs you out and removes your local training files, your chat photos and the charts the coach sent you. A file-removal failure needs manual cleanup. You can also request deletion by email.
Admin audit records are retained indefinitely, including after account deletion. Backup cleanup runs nightly and keeps the three latest complete backup pairs; deletion from backups is not immediate. Server logs can include email addresses, account IDs and errors, including account-deletion events. These are the operational logs of the machine, not the coach-run records above: server and application logs are kept for 30 days. Copies held by Anthropic or the email provider follow their contract terms.
Your rights
Write to [email protected], preferably from your account email, to request access, correction, an export or deletion. Choose Export my data in the command menu to receive an archive of your record: your profile, activities and their per-second data, plan, notes, messages, your chat photos, the charts the coach sent you and the original files you uploaded. The archive is ready within minutes and stays available for 24 hours. We may need to verify your identity. You can also request restriction, object to applicable processing, or withdraw consent where it is the basis, subject to the law. Withdrawal does not undo earlier lawful processing. You can complain to the Swiss FDPIC or the relevant EU supervisory authority. See the FDPIC's explanation of privacy rights and GDPR rights.
Cookies and browser storage
The essential speedmax_session cookie lasts 90 days; the server renews session validity on use, at most hourly.It uses HttpOnly, SameSite=Lax and Secure on the hosted service. Your theme preference stays in browser local storage until changed or cleared.
What we do not do
We do not sell personal data, run advertising trackers or include third-party analytics scripts in the dashboard. Speedmax does not train AI models on your data, and our AI model provider does not either under its commercial terms. We do not take payments or collect card details today; the paid tier is parked.
Children
You have to be at least 16 to use Speedmax. Anybody younger may not use it. The app does not verify age, so we rely on you: if we learn that an account belongs to somebody under 16, we delete it. Write to [email protected] about a child's account or data.
Changes and contact
We will update this policy when processing changes and revise its effective date. When this policy changes, we email every account holder a notice with the new effective date and a link to this page. For questions or requests, write to [email protected] or to [Postal address].