Privacy Policy
In short: We store your email address and whatever you put into the app — your workouts and details about yourself. We do not sell any of it and we do not use it for advertising. The AI coach sends some of those details to OpenAI so it can plan or evaluate your training; it sends them without your name or email address. You can delete your account and all your data from inside the app at any time, and it really is deleted.
Who the controller is
Ing. Miloš Pelikán, Company ID (IČO) 01248979, registered at Štěpařská 1131/12, 152 00 Prague 5, Czech Republic. Contact: support@yptlogapp.com.
What we process
Account data
- Email address — used for signing in, verifying your account and resetting your password.
- Name — optional, you enter it in your profile. It is used only so the app can greet you by name. It is not sent to OpenAI.
- Date of birth — required at registration to verify your age, and it cannot be changed in the app. Among other things, the app uses it to decide whether you may enter health data.
- Password — stored only as a cryptographic hash (PBKDF2-SHA256, 200,000 iterations, a separate salt for every account). We do not know your password and we cannot read it.
- Sign-ins — the sign-in time and the sign-in token by which the server recognises your device. A sign-in lasts 90 days; a password reset ends all of them.
- Sign in with Apple or Google (if you use it) — the identifier of your account with that provider and the email address it shares with us (with Apple this may be a private relay address). With Apple also a token we use to revoke the Apple sign-in when you delete your account. We never see your Apple or Google password, and we do not store the name from those accounts.
Training data
- Workouts, exercises, sets: reps, weights, RPE, notes, date.
- Personal records and derived statistics.
- Watch metrics — average heart rate, energy burned (kcal), duration
and activity type of a workout, plus daily resting heart rate and heart rate
variability (HRV). From version 1.3 of the mobile app also maximum heart rate and
the heart rate curve during a workout. They only reach us in a way you choose
yourself:
- in the web version you import an Apple Health or Garmin export — resting heart rate and HRV only ever come from there;
- from version 1.3 of the mobile app you turn on the connection to Apple Health (iPhone) or Health Connect (Android) in it. The app then only reads workouts from your phone: start and end, activity type, source (such as Apple Watch), active energy and heart rate during the workout. It writes nothing to Apple Health or Health Connect and reads nothing else from them. You can turn the connection off at any time in the app or in your phone's settings; new records then stop being read. The iPhone app up to version 1.2 does not work with Apple Health or with watches.
- In the web version, also recovery entries: sleep, stress, muscle soreness, energy.
Athlete profile — contains health data
You fill this in voluntarily. It exists so that the AI coach does not plan something that would harm you:
- Sex, date of birth, height, weight
- Goals, training level, sessions per week, available equipment
- Injuries, health restrictions and notes on genetic predispositions
- Preferred and disliked exercises
Data about injuries, health restrictions and genetics is a special category of personal data under the GDPR (Article 9). We process it solely on the basis of your explicit consent, which you give by turning on the "I agree that the AI coach may use my health data for planning" switch in your athlete profile. Until you turn it on, those fields stay locked and are never sent to the server — the app works without them, the AI coach will simply plan with less knowledge. If you are not yet 18, consent cannot be given: the health fields stay locked and neither a watch import nor the Apple Health or Health Connect connection stores heart rate, resting heart rate or HRV.
You can withdraw your consent at any time by turning the same switch off. Withdrawing it deletes your injuries, health restrictions and genetics notes from the server; we do not keep them. We store the moment you gave consent so that we can evidence it — nothing more.
The same consent also decides whether average heart rate from your watch is sent to OpenAI, and whether a watch import or the Apple Health or Health Connect connection stores heart rate, resting heart rate and HRV at all. Without consent they are neither stored nor sent. Withdrawing consent also deletes the watch metrics already stored that are health data — average and maximum heart rate, the heart rate curve, resting heart rate and HRV. Calories and workout duration stay.
Profile picture
In the mobile app you pick one of the prepared avatars as your profile picture. You cannot upload your own photo there, and you cannot do so in the web version either. The server's interface does support uploading your own photo; if one reached your account that way, we strip the metadata from it, including location data, before we store it, and it is not publicly accessible — it is served through an authenticated request.
Subscription
Subscription status, product type, store and expiry date, and the latest subscription event from RevenueCat (which includes, among other things, the price, currency, store country and transaction ID). We never see or store your card number — the payment is handled entirely by Apple or Google.
Technical data
- The number of AI generations and tokens consumed (for cost control and quotas).
- On every sign-in or registration attempt your IP address, and on a failed sign-in also the email address entered, to protect against password guessing. These records are not linked to your account and are deleted automatically, normally within 2 days.
Who we pass data to
We do not sell it to anyone and we do not use it for advertising. We use the following processors:
| Who | What they receive | Where |
|---|---|---|
| Fly.io server hosting |
All app data (it is stored on their server) | Frankfurt, Germany (EU) |
| Resend sending email |
Your email address and the content of the message (account verification, password reset) | Ireland (EU) |
| Cloudflare database backups |
An encrypted backup of the whole database, therefore including your data. Nobody looks inside it; it exists so the data can be restored after a failure. | EU |
| OpenAI AI coach |
See the detail below — without your name or email address | USA |
| Expo app updates |
A random installation identifier, the platform and app version, and a description of an app crash if there was one. Nothing from your account — see the detail below. | USA |
| RevenueCat subscription management |
The numeric identifier of your account and your subscription status. Not your email address. | USA |
| Cloudflare, Google email support |
Your email address and the message when you write to support@yptlogapp.com (Cloudflare forwards it, the mailbox is in Gmail) | USA |
| Apple, Google payments |
They process the payment details as the seller; we never see them | Ireland (EU) |
For processors in the USA, the transfer relies on the GDPR safeguards they provide: the European Commission's standard contractual clauses or the EU–US Data Privacy Framework.
Exactly what OpenAI receives
Data goes to OpenAI in only three situations: when you ask for a workout to be generated, when you ask for an exercise substitution, and when the coach evaluates a completed workout (see below). Depending on the situation, the following is sent:
- The text of your request and the earlier messages in the same conversation with the coach
- Your athlete profile including data on injuries, restrictions and genetics (if you have filled them in) and your date of birth
- Your training history: date, title, notes, exercises with their prescription and the sets you did (reps, weight, RPE, note). The last 20 workouts automatically; the coach may request a longer period, for the last 365 days at most.
- Watch metrics for workouts that have them: energy burned (kcal) and workout duration, and average heart rate, but only with your health data consent (the same switch as for injuries). Maximum heart rate and the heart rate curve are not sent. A workout has them if you imported it from Apple Health or Garmin in the web version, or if, from version 1.3, a record from the Apple Health or Health Connect connection in the mobile app was attached to it — the iPhone app up to version 1.2 does not collect them itself.
- The readiness state the app calculated from your workouts in the last 7 days and from today's recovery entry (which can only be filled in in the web version): readiness and fatigue scores and the load limits derived from them (readiness band, volume multiplier, maximum RPE). The recovery entries themselves — sleep, stress, muscle soreness, energy — are not sent.
- Personal records and measured performances
- For an exercise substitution, only the list of exercises in the workout and your reason
Workout evaluation starts by itself. With a Pro subscription and your consent to OpenAI (see below), the coach writes a short evaluation of a workout: in the web version when you open the Overview tab (your last completed workout), in the mobile app on the home screen (your last workout with a logged set) and on request in the workout detail. The evaluation is stored with the workout and only generated again after its sets change or after you switch language. It sends that workout, your training history and your athlete profile; not the text of any request and not your readiness state.
The app asks before you first use the AI coach. Before it first sends data to OpenAI (generating a workout, suggesting an exercise substitution or evaluating a workout), it shows a list of what is sent — including a pseudonymous account code (the hash described below) and how long OpenAI keeps the data — and does not start the AI coach without your consent. You can withdraw consent at any time in Profile. The choice is stored only on your device, separately for each account: in the mobile app it applies only to that phone, in the web version only to that browser — anywhere else the app asks again. Without consent the web version does not request the evaluation of your last workout either.
Your name and email address are not sent. When a workout is generated, OpenAI additionally receives a one-way hash of your account number, to help detect abuse — never the account number itself. The hash is computed with a secret key, so the account number cannot be worked back out of it. No account reference at all is sent with a workout evaluation or an exercise substitution. The hash on its own does not reveal who you are, so OpenAI receives health data but has no way to connect it to a specific person.
According to OpenAI's documentation, the Responses API that the app uses retains application state for 30 days — the app does not turn this off, because it builds on the stored responses while putting a workout together. OpenAI keeps abuse monitoring logs for up to 30 days, unless longer retention is required by law. OpenAI does not use data sent through its API to train or improve its models.
The transfer to the USA relies on the European Commission's standard contractual clauses. Outside the three situations described above, nothing is sent to OpenAI.
Exactly what Expo receives
Every time the app starts, it asks Expo's EAS Update service whether a fix is available for it. That request contains:
- A random installation identifier — the app generates it on first launch and stores it on your phone. It is not derived from your hardware or your account, and it changes when you reinstall the app.
- The platform (iOS or Android), the app version and release channel, and the identifier of the update currently running
- If the app crashed the previous time, a technical description of that error (at most 1,024 characters)
Nothing from your account is sent — no email address, account number, workouts or health data — and the app does not link that identifier to your account in any way. As with any network connection, Expo also sees your IP address. Expo uses these requests to count how many installations received each update and whether the app crashes after it.
Why we process it and on what basis
| Purpose | Legal basis |
|---|---|
| Running your account, storing workouts, providing the app | Performance of a contract (Art. 6(1)(b)) |
| Processing health data: injuries, restrictions and genetics to plan training, storing heart rate, resting heart rate and HRV from a watch import and from the Apple Health or Health Connect connection (without consent they are not stored), and sending average heart rate from your watch to OpenAI (without consent it is not sent) | Explicit consent (Art. 9(2)(a)) |
| Security, protection against abuse | Legitimate interest (Art. 6(1)(f)) |
| Delivering app fixes and checking that the app does not crash after an update (Expo) | Legitimate interest (Art. 6(1)(f)) |
| Accounting and tax on subscriptions | Legal obligation (Art. 6(1)(c)) |
How long we keep it
- For as long as you have an account. Your training history is the point of the app, so we do not delete it on our own initiative.
- Immediately once you delete your account, see below.
- In backups, for no longer than 90 days. The database is backed up daily so that data can be restored after a failure. A backup taken before you deleted your account still contains your data; such backups are deleted automatically after 90 days. Nobody looks inside a backup and it is used solely to restore the entire database.
- Data about completed payments is kept by Apple and Google under their own rules; from it we retain only what we need for accounting, for the period required by law.
Deleting your account
You delete your account inside the app: Profile → Delete account. It is confirmed with your password, or for an account created with Apple or Google by signing in with it again.
If you cannot get into the app or no longer have it, email support@yptlogapp.com from the address your account is registered to and we will delete it for you.
Deleting irreversibly removes:
- Your account, email address and password hash
- All workouts, exercises and sets
- Your athlete profile including health data
- Watch data (imported and from the Apple Health or Health Connect connection) and recovery entries
- Personal records and derived statistics
- Your profile picture
- Records of AI usage
- All sign-ins and any verification links sent
- Temporary security records containing your email address
There is no "trash" and no grace period — the data is gone from the app and cannot be restored. The single exception is database backups: a backup taken before the deletion still contains your data and disappears together with that backup, within 90 days at most. See "How long we keep it" above.
Deleting your account does not cancel your subscription; you have to cancel that in the App Store or Google Play, otherwise it keeps running.
Your rights
You have the right to access your data, to have it corrected or erased, to restrict processing, to data portability, and the right to object. You can withdraw your consent to the processing of health data at any time.
You can do most of this directly in the app (editing your profile, deleting your account). For anything else, write to support@yptlogapp.com.
If you believe we are handling your data improperly, you can contact the Czech data protection authority, Úřad pro ochranu osobních údajů. If you live in another EU country, you may also contact your local supervisory authority.
Children
The app is not intended for people under 16 and we do not knowingly create accounts for them.
Changes
If these terms change substantially, we will let you know in the app or by email. The effective date is at the top.