Privacy Policy

Version of 16 October 2026 · Covers milewise.de, app.milewise.de, admin.milewise.de, the Milewise apps for iOS and Android, and the emails we send · The German version is the binding one; this is a courtesy translation.

Contents
  1. Who we are
  2. What Milewise is
  3. What we process
  4. Why, and on what legal basis
  5. The AI coach
  6. What is stored on your device
  7. Who receives your data
  8. Where it is processed
  9. How long we keep it
  10. Your rights
  11. Security
  12. Minimum age
  13. Changes
  14. If you are in the United States

1. Who we are

The controller within the meaning of Art. 4(7) GDPR is:

Moritz Niedermann, Milewise
Essenweinstr. 37, 76131 Karlsruhe, Germany
contact@milewise.de · contact form milewise.de/contact
VAT ID DE464647453

The full set of mandatory particulars is in the Impressum.

Write to contact@milewise.de about anything on this page, including any of the rights in section 10. We answer within one month (Art. 12(3) GDPR).

2. What Milewise is

Milewise is an AI training coach for endurance sport. It works from what your connected accounts and your phone supply, and from what you write or upload yourself. Much of that is health data, that is, a special category under Art. 9(1) GDPR. We process it only with your explicit consent (Art. 9(2)(a) GDPR); without that consent none of it is stored.

3. What we process

Account and sign-in

There is no password: you sign in with Google, Apple or Strava. We store the identifier the provider gives us, your display name and, where the provider supplies an email address and marks it verified, that address. Strava supplies none. With Apple's “Hide My Email” we store the relay address. From Apple we also keep, encrypted, the token Apple issues at sign-in, for one purpose: to withdraw that authorisation at Apple when you delete your account. Alongside that: an internal account number, your language, your year of birth and the time of the age answer, the name of each paired phone (for example “Apple iPhone 15”) and, if you allow notifications, that phone's push address. Signing in with Strava is also a data connection: every Strava authorisation asks for read, activity:read_all, profile:read_all and activity:write.

Training and activity data

Health data

Calendars

Your Google calendar, read-only, with a consent separate from sign-in and the scope https://www.googleapis.com/auth/calendar.readonly: we read titles, dates and spans, never locations, notes or conferencing links. Of the guest list we read one thing and keep none of it: whether you declined the invitation. No guest's name or address is used or stored. There is no table of our own for it, but the result of the query stays part of the chat transcript and is in the data export. You can share all calendars, selected ones or none. The calendar on your phone: the app sends us the names of every calendar on the device and, per event, title, start, end and an all-day flag. We store that, replaced per device. An event title is text about you and about other people and can reveal health or religion, which is why the feature depends on the health consent.

Location

Your home coordinates, the place name derived from them and the time zone, up to 400 start coordinates of past sessions, the town of your current position and, while you are away, of your first day out, for each reviewed outdoor session a route summary (start, finish and highest point rounded to about 10 metres, its place, its climbs with heart rate), and, if you switch on “Update from a phone” for one of your phones, a current position each time you open the app. With that setting off, only recording a run reads your location. In the browser Milewise does not ask for your location at all.

Subscription, payment and contract records

Tier, identifiers and status at the payment provider, end of the trial, billing period, amount and currency; for a purchase through the app stores, the store, the product and the expiry date. Plus the declarations you make when ordering (section 327h BGB, immediate start of performance, acceptance of the terms), a termination declaration under section 312k BGB including your free text, and a withdrawal declaration under section 356a BGB. We never see card data.

Technical data

Waiting list and invitation list

Waiting list: email address, optionally sport and price expectation, the language, and the timestamps of the entry and the confirmation. We send a confirmation email (double opt-in); without the click in it you are not on the list, and we do not store the IP address of that click. Separately we keep an invitation list of email addresses or Strava identifiers of people we authorise to sign up, before they have an account. If your address is on it and you would rather it were not, write to us.

What we do not collect

No analytics, tracking, advertising, attribution or crash-reporting SDK in the website, the web app or the mobile app. No advertising identifier (no IDFA, no Advertising ID), no App Tracking Transparency, no counting pixel and no link rewriting in our emails. No menstrual or cycle data is ingested; the raw response from intervals.icu does contain those fields, however, and sits in our cache for up to seven days.

Where the data comes from (Art. 14(2)(f) GDPR)

From you, from your phone (Apple Health, Health Connect, the device calendar, sensors, recording) and from the accounts you connect yourself: intervals.icu, Strava, Polar, Suunto, Google Calendar. There is no direct connection to Garmin, Wahoo, Coros or Zwift. Data from those devices reaches us only through intervals.icu, Strava, your phone’s health store or a file you upload, and then carries only the manufacturer's name as its origin. Data originating from a Garmin device is labelled as such.

4. Why, and on what legal basis

PurposeDataArt. 6 GDPRArt. 9 GDPR
Account, sign-in, device pairingaccount and identity data(1)(b) contract–
Dashboard, activities, trends, heatmaptraining data including heart rate and route(1)(b)(2)(a) consent, “training data”
AI coach, plan, morning check, post-workout reviewhealth, training, location and calendar data, free text(1)(b)(2)(a) consent, “health data”
Keeping wellness values and Garmin workout files from intervals.icu in case it stops providing them, and the daily check whether it still serves Garmin wellness (section 3)health data; workout files with heart rate and route(1)(b)(2)(a) consent, “health data” for the wellness values, “training data” and “health data” for the files
Writing planned sessions onto your intervals.icu calendar and as a SuuntoPlus guide, syncing zones and FTPplan, zones, FTP(1)(b), each with its own switch(2)(a)
Sending notifications to your phoneyour phone's push address and the text of the notification(1)(a): the notification permission you gave on the phone, which you can take back there or in the app–
Subscription, payment, trial, reminder before a chargesubscription and payment data(1)(b)–
Order confirmation, termination, withdrawal and consent recordsdeclarations with timestamp and text version(1)(c) (sections 312f, 312k, 356a BGB; Art. 7(1) GDPR)–
Tax retentionpayment records(1)(c) (section 147 AO, section 14b UStG)–
Security log, abuse defence, rate limits, error reportsIP address, route pattern, events(1)(f): protecting accounts and the service from attack, finding faults–
Operational alerts to the operator, among them the daily check whether intervals.icu still passes Garmin data on (section 3)the category of the event and the endpoint, and for a contract event the plan, the amount or the status; for the Garmin check, whether Garmin is linked on intervals.icu, since when, and your athlete id there. The alert we send carries no account number; the row we keep for 30 days carries our own deduplication key, which for some events contains your internal account number or the IP address a request came from(1)(f): noticing that the service or a contract event needs attention–
Country check at sign-up and at orderingIP address, derived country code(1)(f): offering the service only where we can meet the obligations that apply there–
Minimum age of 18date of birth (only the year is stored)(1)(b) and (1)(c)–
Waiting list and invitationemail address, sport, price expectation, language(1)(a) consent, withdrawable at any time–
Contact form and email replyyour address and your text(1)(b) and (1)(f)(2)(a) where you give health details
Fault-finding in one individual account (support copy, section 7)a mirrored copy of your account data(1)(f): finding a reported faulthealth data is in the copy; we ask for no separate consent for it
Checking whether a change to the coach makes it better or worse (section 7)conversations from that copy, run through the coach again(1)(f): being able to tell what a change to the coach does to its answershealth data is in those conversations; we ask for no separate consent for it

Milewise can also be used without the coach; the dashboard, your activities and your history remain.

Whether you have to give us this (Art. 13(2)(e) GDPR). Two answers are required, not by a statute that obliges you but because there is no contract without them: your date of birth, which section 12 explains, and the consent for training data. Give a date of birth under 18 and the server locks the account down to sign-in and account management; give neither answer and the app does not open, and the account is deleted as an unfinished sign-up (section 9). Everything else is your choice, and the only consequence of withholding it is that the part of Milewise which needs it cannot work. An email address reaches us only where the provider you sign in with supplies one; without a confirmed address we cannot send you a data export or a deletion confirmation.

5. The AI coach

The coach is an AI system. The interface says so, every time (Art. 50 of Regulation (EU) 2024/1689).

What goes to the AI provider. With every request: your performance profile (maximum and resting heart rate, zones, FTP, thresholds, your home position rounded to about 100 metres, time zone, training days, free-text notes), your goals, your plan, the coach's durable notes, your gear, the computed daily assessment with the values behind it, and your chat text. When the coach calls one of its tools, this is added: sleep, HRV, resting heart rate, stress value, training load, the detail and measurement series of a session, your approximate location, the weather, event titles from your calendars and, where the coach explicitly asks for the route, up to 600 GPS points of a session. The morning check and the review of a session also carry, without a tool call, the town you are in and its distance from your home, and for an outdoor session its place, its altitude range, its biggest climbs and descents and its time high up, never its GPS points. Your name and your email address do not go; the provider sees an internal account number. Everything that reached us through the Strava connection is excluded from the AI path, and there is no switch that could lift that. The same connection is one-way in the other direction too: a workout Strava recorded can never be the source of a copy we pass to another platform, which their API terms forbid and our code enforces rather than leaving to a setting.

Who runs the models. Section 8 sets out the five routes to them. Names, role and location are in the recipients list. Which provider answers a single request is decided by a configuration we can change without the category changing.

Training of models. Milewise trains no AI models and passes no data on for training. What a provider may do with a request beyond answering it is governed by our contract with that provider and not by the individual call: our software sends no per-request instruction that would switch off storage on the provider's side.

The coach writes, it does not only suggest. Without a human checking in between, it can create, change, move and delete sessions, turn a day into a rest day, set and close goals, edit your profile, add gear, and store durable notes about you and about people you mention. Two automated jobs write without you. The post-workout review is narrowly bounded: never harder, never a race, a rest day or a test, at most three sessions, at most seven days ahead. The morning check moves only the start time of today's session, to another hour of the same day between 05:00 and 22:00, when it is clearly milder then, it rains at the planned hour or your connected calendar leaves a better window, and never on a race; the workout itself stays as it is. Every other change to today's session the morning check only suggests: easier, shorter, a rest day, or, on a morning your numbers call clearly good, slightly harder or longer. Nothing of that changes until you apply it. If the transfer is switched on, such a change travels onto your intervals.icu calendar. Whether it goes on from there to a watch is decided by that platform, and only if you have linked one there. Two automated decisions have a real consequence: if you give a date of birth under 18, the server locks your account down to sign-in and account management (section 12); and if the IP address a sign-up or an order arrives from is allocated to a country we do not serve, the server refuses it, so no account comes into existence and nothing is ordered (section 3). In both cases you can have a person look at it: write to contact@milewise.de, the operator checks it personally, you can put your side of it and you can contest the result (Art. 22(3) GDPR).

Not a doctor, not a medical device. Milewise gives training guidance. It makes no diagnosis, treats nothing and is not a medical device. If you describe symptoms, the coach may tell you to have them checked by a doctor and not to train; that does not replace seeing one.

What stays from a conversation. The chat transcript also stores the results of the tool calls verbatim and therefore contains raw sleep, HRV and heart rate values, route points and event titles. There is no retention period for it: it stays until you delete the conversation or your account.

6. What is stored on your device

Everything below is strictly necessary to provide the service you yourself requested (section 25(2) no. 2 TDDDG), with one exception, which is why there is no banner. The exception is your phone's push address. It rests on the notification permission you give on the phone itself, which is your consent under section 25(1) TDDDG, and taking that permission back in your phone's settings withdraws it.

WhatWhereWhyHow long
dash_session (cookie)app.milewise.deyour sign-in; contains the account number, the time of issue and a signature30 days
dash_oauth, ic_oauth, polar_oauth, suunto_oauth (cookies)app.milewise.deprotecting the sign-in or account connection you have just started. On the Apple path the first is SameSite=None, because Apple returns the result cross-site10 minutes
View state: language, chart window, open sections, rail width, dismissed prompts, last open tab and chat, the shape of the screen we draw while loading, and a marker that this browser has been signed in beforelocalStoragerebuilding the interface the way you left ituntil you clear it; part of it goes at sign-out
Flow state: the answers about your goal and training days you gave before signing up, the setup step, recent pages and scroll positions; on the help pages a marker per articlesessionStorageso that a redirect to the sign-in provider does not lose your inputuntil the tab closes
Offline cache milewise-offline-*Cache Storagetwo files of our own for the offline error page. No API response is put thereuntil a new version replaces it
HSTS entrybrowserforces HTTPS for milewise.de and all subdomains1 year
Keychain of the mobile appiOS Keychain, Android Keystorethe device's access token, the push address, the language, markers for the health and calendar sync, paired Bluetooth sensors with model and serial number, recording settingsindefinitely. Signing out removes only the access token. On iOS these entries also survive deleting the app
Files in the app directoryphonean offline copy of the plan, sessions, morning check, goal and account status; recordings not yet uploaded, with all GPS and sensor readingsthe copy at most 7 days and 512 KB; a recording stays until the server has accepted it or you discard it

The milewise.de homepage asks app.milewise.de on load whether you are signed in, so that the button says the right thing; an existing session cookie goes along with that, and the answer is a yes or a no. If you sign in inside the mobile app, that runs in your phone's system browser, and a Milewise cookie valid for 30 days is left there, which the app does not remove when you sign out. And our API responses carry no caching instruction, so your browser may cache them itself.

7. Who receives your data

What follows are the categories of recipients. The names are in the dated recipients list. If you ask under Art. 15(1)(c) GDPR who the actual recipients of your data are, we will name them. Nothing is sold, and nothing is passed on for advertising.

CategoryLocationWhat it receives
AI providers for the coach (cloud inference, four companies over five routes, processors)EU regions, and on two of the five routes that provider's European data boundary or EU regional endpoint, which cover the EU together with the EFTA states. Section 8the context described in section 5, including health data and, where the model asks for them, route points
Server hosting (one rented server, processor)Germany (Falkenstein)everything that is stored
Off-site copy of the nightly backup (storage service, processor)Germany (Falkenstein), the same site as the serverciphertext only: encryption happens on our server before the backup leaves it
Email delivery (sending relay, processor)the provider states that its data centres are located exclusively within the European Unionrecipient address, subject, body and every attachment. Your Art. 15 data export also travels this way, as a ZIP file
Delivery of notifications (the push services of the two mobile platforms, processors)both are companies in the United States. One states no processing location for its push service; the other states that its messaging service may process at any of its cloud or data centre locationsyour phone's push address, the app identifier, and either one fixed sentence from a small catalogue or, for an announcement the operator sends by hand, that announcement's text. No measurement, no verdict and no name of a session goes either way
Payment on the web (payment provider and the merchant of record, who invoices in its own name)Ireland and United Statesaccount number, tier, price and the version of the terms. Your card and the address you enter there stay with the payment provider
Purchase through the app stores (both store operators, plus a service that checks entitlements)Ireland and United Statesthe store gets your payment identity, we get none of it; the entitlement service gets your account number as the user identifier, the product and the subscription status
Delivery and updating of the mobile app (build and update service)United States (seat)on each launch of the app: IP address, platform, channel, runtime version and a persistent identifier assigned per installation
Map tiles (a non-profit map service; the operator states no server location and refers to a possible content delivery network)Hungary, server location not statedyour own IP address and the tile coordinates of the area you look at, that is, the area of your home, your routes and your heatmap. No account reference and no cookie
Weather, time zone and place names (three services)Norway (EEA), Switzerland (adequacy decision), and the United Kingdom with the Netherlands (adequacy decision) for the place-name servicecoordinates only, rounded to four decimal places, and our server's IP address. The Swiss service states that it keeps IP addresses and coordinates for 90 days
Name resolution for our domains (DNS operator)the operator states that it stores information primarily in the United States and in the European Economic Area, and certifies under the EU-U.S. Data Privacy Frameworkonly the name lookups your resolver makes, never the content of a request
Your own connected accounts (training platforms, independent controllers)EU and United Stateswhat you already have there, plus what we write there at your request: planned sessions onto your intervals.icu calendar, zones and FTP, SuuntoPlus guides and, if you switch it on, an activity file or an edited title
The calendar service you choose yourselfdetermined by youif you subscribe to our ICS feed, that service polls the address regularly and receives your training history and your plan with titles, times and distances; only activities that come solely from Strava are excluded
Operational alerts to the operator (notification service, processor)not statedthe category and endpoint of an event, and for a contract event the plan, the amount or the status. No alert carries your account number
The operator's AI coding assistant (software development)contracting entity and region not yet settledsee below

The support copy

We can flag an individual account. While the flag is set, the server writes a second copy, restricted to that account, into a separate file on the same machine every 15 minutes: among other things your chat transcripts, the nights sent from your phone, the wellness days we keep from intervals.icu, your device calendar, your activities and your profile, but not your access credentials or connection tokens. The AI coding assistant the operator builds the software with can read that file. The operator can also issue it a device credential that lets it act in your account exactly as one of your own paired phones does, with your entitlements, your consents and your limits. That device appears in your Devices list under its own name and you can revoke it there. The support copy is also the source of the cases we use to check whether a change to the coach makes it better or worse: real conversations are run through the coach again and compared with the answer you received at the time. We set the flag only when we cannot otherwise find a fault in your account. You can object to this at any time (section 10); we then remove the flag, and the copy disappears at the next rebuild. It is also rebuilt immediately when you delete a conversation or an activity, or withdraw your consent.

What our contracts with them require

Where a recipient acts for us as a processor, our contract with it bars use for its own purposes and for training models and binds any sub-processor to the same. Where we hold no such contract with a recipient, the recipients list says so beside that name. That undertaking cannot extend to the recipients that decide for themselves: the training platforms you connect, the sign-in providers and the two app stores, the merchant of record for the web subscription, the calendar service you choose and the map, weather, timezone and place-name services.

8. Where it is processed

Milewise runs on one rented server in Germany, in the Falkenstein data centre. The databases, the website, the mail server and the training files you upload are all on it; there is no second server and no object storage. Five things necessarily leave that machine:

Transfers to third countries. Where a recipient outside the EEA is covered by the Commission's adequacy decision on the EU-US Data Privacy Framework (Art. 45 GDPR), or names standard contractual clauses under Art. 46(2)(c) GDPR for its own transfers, the recipients list says so beside that name. For the remaining recipients we have not yet settled which instrument carries the transfer. You can obtain a copy of the clauses we do hold by writing to contact@milewise.de. Norway and Iceland are EEA states in which the GDPR itself applies; for Switzerland there is an adequacy decision.

9. How long we keep it

WhatHow long
Account, profile, goals, plan, activities, uploaded files, nights from the phone and from Suunto, coach notes, notificationsuntil you delete your account, then at once. No grace period
Wellness days kept from intervals.icu, and the original files of Garmin workouts from intervals.icuno age limit: until you delete your account, then at once. The days and the files go earlier if you withdraw the health consent; the days also if you have the recovery data deleted when you disconnect intervals.icu, and a file also goes with its workout
What the daily Garmin check keeps: whether Garmin is linked on intervals.icu, since when, your athlete id there, and the newest wellness day it served with the number of days serveduntil you disconnect intervals.icu or delete your account; the wellness part also goes when you withdraw the health consent
Chat transcriptsno retention period. They stay until you delete the conversation, the coach history or the account
Activities that came in through the Strava connection6 days after the day of the session
Events from the device calendar3 days after the day of the event
Cache of the raw responses from your connected accountsat most 7 days; everything older than 6 days is deleted daily
Security log with IP address30 days, plus a ceiling of 20,000 rows. After an account deletion the rows stay without any account reference, and the IP address stays in them for the remainder of the 30 days
Operational alerts to the operator30 days, plus a ceiling of 1,000 rows
Error reportsthe newest 5,000, with no age limit; an old row can therefore stay for a long time
The coach's usage and cost log400 days; the log of its writes: the newest 5,000
Waiting list entryan open or confirmed entry stays until you ask for it to be deleted; an archived one is deleted after 365 days. The confirmation link expires after 14 days
Invitation listuntil we remove the entry. There is no automatic period for it
Contract records under sections 312f, 312k and 356a BGBuntil the end of the third year after the year in which the contract ended (sections 195, 199 BGB). They survive the account deletion
Your declaration under section 356(5) no. 2(a) and section 356(6) no. 2(b) BGB that performance was to start at once, together with your acknowledgement that the right of withdrawal then lapsesthe same period, on Art. 6(1)(f) GDPR: without it we cannot show why the withdrawal period ended. It survives the account deletion for the same reason
The consent record (Art. 7(1) GDPR)until you delete your account. It is part of the data export and is deleted with the account
Payment records8 years, each from the end of the calendar year in which the invoice was issued (section 14b(1) UStG for invoices, section 147(3) AO for accounting vouchers). The records themselves sit with the merchant of record, who invoices in its own name
Record that a trial has already been grantedindefinitely. Salted hashes of the identifiers of your sign-in and your connected accounts, with no account number and no address
A redeemed promotion codeuntil we delete the code. There is no automatic period, and the row (the code, your internal account number and the time it was entered) survives an account deletion
Sign-ups never completedan account older than 30 days, unused for 30 days, that never answered the consent question at all is deleted in full
Web server logs14 days
Backups7 daily, 4 weekly and 6 monthly snapshots. Deleted data can persist in them for up to roughly seven months. That is the outer limit of every deletion promise on this page

10. Your rights

You have the right of access (Art. 15), rectification (Art. 16), erasure (Art. 17), restriction (Art. 18), data portability (Art. 20) and objection (Art. 21), the right not to be subject to a decision based solely on automated processing (Art. 22), and the right to withdraw a consent at any time (Art. 7(3)). A withdrawal takes effect for the future and does not affect what was lawfully processed before it. In practice:

Right to object (Art. 21 GDPR)

Where we base processing on a legitimate interest under Art. 6(1)(f) GDPR, you may object to that processing at any time on grounds relating to your particular situation. Which processings those are is in the table in section 4. An objection to the support copy in section 7, or to the reuse of conversations from it to check a change to the coach, is always followed; otherwise we continue only where we can demonstrate compelling legitimate grounds which override your interests. A line to contact@milewise.de is enough.

If we refuse, you can appeal. If we decline to act on a request under this section, we say why, and you can appeal by replying to that answer or by writing to contact@milewise.de. Within 60 days of receiving the appeal we tell you in writing what we have done or not done, and why. If we turn the appeal down as well, that answer also carries the way to complain to a supervisory authority and, for people in Connecticut, the way to submit a complaint to the Connecticut Attorney General.

Complaint to a supervisory authority (Art. 77 GDPR). You may complain to any supervisory authority, in particular in the Member State of your habitual residence, your place of work or the place of the alleged infringement. The authority responsible for us is:

Der Landesbeauftragte für den Datenschutz und die Informationsfreiheit Baden-Württemberg
Heilbronner Strasse 35, 70191 Stuttgart (Postfach 10 29 32, 70025 Stuttgart), Germany
+49 711 615541-0 · poststelle@lfdi.bwl.de

11. Security

If there is a breach of the protection of your data that is likely to result in a high risk, we notify you under Art. 34 GDPR, by email and additionally in the app.

12. Minimum age

Milewise is for people aged 18 and over. The first time, we ask for your date of birth, and we check the answer against no document and no other source. If it gives at least 18, we store only the year of birth and the time. If it gives less, we store no year of birth, only the fact of the refusal, and the server locks the account down to sign-in and account management. An account locked this way is not deleted automatically; you can delete it yourself, and until then the data stays. Milewise is not directed at children, and we do not knowingly collect data from people under 18.

Because this is an automated decision, you can have a person look at it (Art. 22(3) GDPR, section 5). Until that is settled the account stays locked rather than being deleted.

13. Changes

This version is dated 16 October 2026. If something material changes, for example a new purpose, a new category of recipient or a new transfer to a third country, we tell you in advance and actively, by email or as a notice in the app, in a message of its own rather than alongside something else. Where a named company in the recipients list is swapped for another inside a category described here, we update that list with a new date without notifying you separately.

14. If you are in the United States

This section applies in addition for people in the United States.

Questions about any of this: contact@milewise.de.