PR — Privacy Policy
This Privacy Policy explains how Anthony Immenschuh, an individual developer (sole proprietor) ("we", "us", the "Developer"), collects, uses and protects your information in PR, the Developer's mobile application, and its related services (the "App").
The short version: PR is private by default. Your workouts, body metrics and progress photos are visible only inside your account. The App carries no ads, does not use cross-app or cross-site advertising tracking, and we never sell your data. We use RevenueCat to manage subscriptions and understand subscription performance, and record limited paywall and purchase events in our own backend. The AI coach, Primed, has two modes: cloud generation shares training summaries and messages with our server and OpenAI (the company behind ChatGPT) only after you explicitly allow Cloud AI. You can decline or turn sharing off in Settings. We do not store the full conversation; account memory capture and use are enabled by default but can be turned off, and OpenAI does not train on this data (Sections 1, 2 and 4). On-device generation stays on your phone. Account memory sync is separate. Our website analytics are described in Section 8.
1. What we collect
Account information. How you sign in decides what we hold:
- Sign in with Apple: the stable identifier Apple gives us and, only if you choose to share them, your name and email address — which may be an Apple private-relay address. We also hold the Apple refresh token for one purpose: revoking the Sign in with Apple grant when you delete your account, as Apple requires.
- Email and password: your email address and a salted, hashed password. We never store your password itself.
- One-time codes: when you reset a password we email a short-lived code and keep it, hashed, only until it expires or is used.
Fitness and body data you record. The App stores what you enter to do its job:
- workouts, exercises, sets, reps, weights, optional set and whole-workout effort ratings, notes and personal records;
- routines, custom exercises and the training preferences you set during onboarding (your goal, experience level, training days, session length, where you train, and any joints — knees, lower back, shoulders or wrists — you asked your workouts to work around);
- body metrics you choose to track, such as body weight, and a goal weight if you set one;
- progress photos you take or choose from your photo library — camera and photo-library access is requested only at that moment, and used only for that photo;
- your display name, optional bio and optional profile photo.
This data lives on your device in a local database, and — when you are signed in — syncs to our servers so it survives a lost phone and follows you to a new one. Progress photos and profile photos are stored as encrypted objects in our storage provider and are fetched through short-lived signed links; nobody can browse them without your account.
If you use Import Data → Apple Health, body-weight samples read from Health become ordinary body-weight points in the App. When you are signed in, those imported points sync with your other body metrics and can be included in the cloud-coach training summary described below.
Coach conversations, in cloud mode only. The AI coach, Primed, has two modes, chosen in Settings. Cloud AI is the default model option, but sharing requires your explicit permission. Before any cloud AI request, PR asks you to allow sharing with OpenAI and explains the data sent. You can decline or turn sharing off in Settings → Cloud AI privacy; local training insights remain available. In cloud mode, each time you send the coach a message, the App sends to our server your message, the last few turns of that conversation, relevant saved memories while memory is enabled, and a compact summary of your training that the App builds on your device from its local database: your routines and their exercises, your recent sessions and optional effort ratings, your personal records, your body weight and weight goal, your weekly workout score and training balance, your current Recovery, Training and Load scores, recovery mode and calculation time, and your name and training profile (goal, experience level, training days, session length, where you train, and any joint limitations you set). Training and Load are calculated from your workout log; optional whole-workout effort ratings adjust Load and the training input to Recovery. If you enable Health enhancement for Recovery, the current Recovery score and mode may reflect locally processed sleep, resting-heart-rate and HRV observations. The raw observations and values, baselines, detailed factors, source identifiers and seven-day recovery history are excluded from cloud requests. Our server forwards the request to OpenAI, whose model generates the reply, and returns the reply to you. The coach’s other output — a workout you describe for it to build, a multi-workout plan where plan generation is enabled, the note on your score card, and the checks it runs on a message before answering — travels the same way, with the same kind of summary. We do not retain the full conversation or training summary after processing. Named conversation history is saved on your device until you delete it. Primed memory capture and use are enabled by default. While memory is enabled, selected statements you make about your training and records of accepted routine changes are stored separately in your account until you forget them or delete your account. You can review, edit, or forget memories in Primed. Temporary observations stop being used after one day; constraints stop being used after 90 days, and expired items remain reviewable until deleted. Turning memory off in Settings stops capture and use without deleting saved items. Memory sync also operates when on-device generation is selected. Raw Apple Health recovery observations, detailed recovery factors, recovery-derived replies, and the automatically supplied Recovery, Training and Load scores are excluded from Primed memory. We log request metadata only — your account identifier, timestamps and sizes — for rate limiting and debugging. On-device generation uses Apple’s model on your phone. Account memory sync remains separate: saved items and deletions continue to sync even when memory is off, and they are not sent to OpenAI for on-device generation.
Coached programs and weekly check-ins. Multi-workout plan generation, coached plans, week-by-week progression, weekly check-ins and nutrition management are disabled in the initial App Store release. Where these features are enabled, your training profile and routine references, manual weigh-ins, recovery, energy, sleep, hunger, joint-pain and calorie-adherence answers, calorie and macro targets, adjustments and any linked progress-photo identifier are saved in your account. Coach chats can then include your current block position, prescribed calorie and macro targets, and recent adjustment reasons. Weekly review narration sends a compact summary of the computed decisions and your recovery and calorie-adherence ratings through the selected coach backend; photos and Apple Health weigh-ins are excluded. Cloud processing requires the Cloud AI permission described above.
While these features are disabled, existing program, nutrition and check-in records remain stored and continue to sync with your account and be included in backups. The App does not collect new check-ins or generate new targets through those disabled features, and does not automatically add the hidden plan’s block position, nutrition targets or adjustment history to coach requests. Ordinary workout and body-weight data still follow the collection, sync and Cloud AI rules above. Information you choose to type into a cloud conversation is still sent as part of your message after you allow Cloud AI.
Apple Health (HealthKit), only with your permission. PR reads heart rate, to show how hard a workout was, and body weight, so weigh-ins recorded elsewhere appear in the App. Imported body-weight points follow the body-metric sync and cloud-coach rules above. PR writes your finished workouts and weigh-ins back to Apple Health so you can view them alongside your other health and fitness data. If you separately enable Recovery Health enhancement in the App, PR also reads sleep, resting heart rate and heart rate variability to calculate an automatic recovery estimate on your device. Health data is used only for these features — see the section on Apple Health below.
Purchases. Subscriptions, where offered, are processed by Apple. We never receive your card details. Our subscription provider, RevenueCat, receives your account identifier, an app-scoped device identifier that Apple assigns (the vendor identifier — not the advertising identifier, which the App never requests), and purchase records: the product bought, subscription status, renewal state and transaction identifiers. Our server receives the purchase records. It retains purchase and refund identifiers to validate paid access, support purchase restores and prevent a refunded purchase from being granted again, including after account deletion. Historical Founder reservation and membership records may remain as billing audit records, but new purchases do not use a member inventory or reservations. We use this information to validate purchases, unlock and restore access, prevent purchase fraud, and understand subscription performance through RevenueCat’s reporting. Purchase records can be linked to your PR account. We also record paywall views, plan selections and purchase outcomes in our own backend to understand the purchase funnel. New events contain a random event identifier and the plan, but no payment details, receipts, account identifiers, device identifiers or workout data. Previously received events may include a reservation identifier that links to a historical Founder record; those events follow the same retention period. Pending events are stored on your device for up to seven days so delivery can be retried; we retain received events in our backend for up to 90 days. We do not use them for cross-app or cross-site advertising tracking.
Support and feedback. If you send feedback from inside the App, we store your message with your account identifier and forward it by email to our support inbox, with your email address as the reply-to, so we can answer you and fix the problem.
Technical data. Our servers process IP addresses and ordinary request metadata to keep the service up, rate-limit abuse and debug failures. For rate limiting, your IP address is held for about ten minutes and then discarded. We do not use any of this to build a profile of you, and we do not combine it with your fitness data for any purpose other than serving your own requests.
2. What we do not collect
- No advertising identifiers, ad networks, or cross-app or cross-site tracking. The App does not ask for tracking permission because it does not track you.
- No general-purpose product analytics, advertising attribution or third-party crash-reporting SDK is currently installed in the App. RevenueCat’s subscription reporting is described in Sections 1, 3 and 4; website analytics are described in Section 8.
- No sale, rental or sharing of personal information for anyone else’s marketing.
- No social graph: PR has no public profiles, no followers and no activity feed. It does not publish your workouts.
- No AI training on your data. We train no models on it, and cloud coach requests go to OpenAI under API terms that do not permit it to train on them either.
- No microphone or location access. The App does not request either.
The AI coach, Primed, has two modes, and what happens to your conversations depends on which you choose. In on-device mode, the coach runs on Apple’s on-device model using data read from your local database; its generation prompts and replies stay local. Account memory separately stores and syncs the selected statements and changes described in Section 1; turning memory off stops their capture and use without deleting them. In cloud mode, the default, each message — with the recent conversation and the training summary described in Section 1 — passes through our server to OpenAI, which generates the reply. We do not retain the full conversation; account memories are stored separately until you forget them or delete your account. OpenAI processes it under its API data-usage policies: it is not used to train OpenAI’s models, and we send every request with storage disabled so it is not kept as retrievable application state. Prompts and responses may still appear in abuse-monitoring logs normally retained for up to 30 days; OpenAI says it may retain them longer when required by law or reasonably necessary to protect its services or a third party from harm. In neither mode is anything about your coach conversations sold or shared for marketing. You can switch modes at any time in Settings.
3. How we use your information
To operate and improve the App:
- to provide, sync and back up your workouts, metrics and photos;
- to sign you in and keep your account secure;
- to unlock and restore a subscription you bought;
- to understand subscription performance using purchase records and RevenueCat’s reporting, and paywall and purchase outcomes recorded in our own backend;
- to answer your questions to the AI coach, generate its plans, workouts and notes, and remember permitted training context while memory is enabled;
- to answer your support messages;
- to keep the service reliable and to prevent abuse;
- to comply with the law.
We do not use your data for advertising or profiling, and we do not make automated decisions about you that have legal or similarly significant effects.
4. Who we share it with
Only the providers needed to run the App, each processing data on our behalf and none permitted to use it for their own purposes beyond what this table says:
| Provider | What it does |
|---|---|
| Apple | Sign in with Apple, App Store purchases, Apple Health storage and authorization, and the on-device model behind the coach’s on-device mode (which runs on your phone, not on Apple’s servers) |
| OpenAI | Generating AI coach replies in cloud mode (your messages, the recent conversation, relevant saved memories while memory is enabled, and your training summary, including the current Recovery, Training and Load scores, recovery mode and calculation time); not used to train its models, sent with storage disabled, and potentially included in abuse-monitoring logs normally retained for up to 30 days, subject to the longer-retention exceptions described in Section 2 |
| Neon | The database that holds your account and synced data |
| Fly.io | Hosting for our server |
| Cloudflare R2 | Encrypted storage of progress and profile photos |
| RevenueCat | Purchase validation, subscription and entitlement management, and subscription performance reporting using purchase records and identifiers |
| Resend | Delivery of one-time code emails and of feedback forwarded to our support inbox |
| Upstash | Short-lived storage of IP addresses for rate limiting — about ten minutes, then discarded — and of per-account counts of AI coach requests for the coach’s usage limits, for up to a day |
| Vercel | Hosting and privacy-preserving page analytics for our website (not the App) |
We may also disclose information if the law requires it, or where necessary to investigate abuse or protect the rights, safety and security of users, the public or the service. If the App is ever transferred to another owner — for example to a company later formed to operate it — your data may transfer with it, subject to this policy.
5. Apple Health
Health data gets specific commitments, in line with Apple’s rules:
- It is used only to provide the health and fitness features you asked for.
- It is never used for advertising, marketing or any similar service.
- It is never sold, and never shared with third parties for their own use.
- It is not used for data mining or any purpose other than improving your own health and fitness experience in the App.
- Recovery observations are processed on your device. Raw sleep, resting-heart-rate and HRV observations are held in memory and are never included in account sync or cloud coaching. Up to seven days of derived recovery history are stored locally and likewise never sync or enter cloud coaching. Of the Health-enhanced Recovery data, cloud Primed receives only the current derived Recovery score, recovery mode and calculation time; the accompanying Training and Load scores come only from your workout log. Turning Health enhancement off stops those reads and clears the locally derived history.
- You can revoke the App’s access at any time in iOS Settings → Health → Data Access & Devices.
6. On-device features: notifications, widgets, Live Activities and the on-device coach
Notifications from PR are scheduled locally by your device — a rest-timer alert, an occasional reminder to train, or, where coached plans are enabled, a weekly coached-plan check-in reminder. While coached plans are disabled, the App cancels existing weekly check-in reminders and does not schedule new ones. We do not operate a push server, and we do not collect a push token or know whether a notification was delivered or opened. You can turn notifications off in iOS Settings, and the rest-timer alert has its own switch in the App.
Home-screen widgets and the workout Live Activity read a small snapshot of your data (the workout you are due, your last session and its top sets, the days you trained this week and this month, your current set) that the App writes to a private container shared only between PR and its own widget on your device. That snapshot is never uploaded and is not readable by other apps.
The AI coach’s on-device mode belongs on this list too. When you choose it in Settings, the coach runs on Apple’s on-device model, reads your data from the local database on your phone, works offline, and does not send generation requests off the device. Account memory remains separate: while memory is enabled, selected statements and accepted routine changes can be captured and used, and saved items and deletions sync as described in Section 1. It requires an iPhone with Apple Intelligence. What cloud mode sends instead is described in Sections 1 and 2.
7. Sharing you initiate
The App can produce a workout share card image and can export your workout and tracking data to a file. Primed memories are not included in that export. Both are created on your device, and nothing is sent anywhere until you choose to share or save it. Once you hand that file or image to another app or person, this policy no longer governs it — where it goes is up to you and to that app’s own terms.
8. Our website
This policy also covers getpr.app, the site you may be reading it on. The site collects no accounts and no fitness data — it provides information about PR and ways to get the App.
It uses Vercel Web Analytics to count page views and referrers, so we know whether anyone is finding the site. It is privacy-preserving by design: it sets no cookies, stores no identifier on your device, and does not follow you across sites or build a profile of you. This website measurement is separate from the App’s RevenueCat subscription reporting.
The site is hosted by Vercel, which processes ordinary server-log data (IP address, user agent, requested page) to serve pages and block abuse.
9. How long we keep it, and how to delete it
- Your data is kept while your account exists.
- You can delete your account at any time in the App, under Settings → Account → Delete Account. That permanently removes your synced workouts, metrics and photos from our servers, deletes the stored photo objects, revokes the Sign in with Apple grant where one exists, and clears the App on your device.
- You can export your workouts first, from Settings → Export Workouts.
- To request access to or deletion of retained program, nutrition or check-in records without deleting your whole account, contact hello@getpr.app. You can make this request while plan management screens are unavailable. We will respond as applicable law requires.
- One-time codes expire within minutes. Sign-in tokens expire and rotate. Backup and point-in-time-recovery copies held by our database provider expire on a rolling basis after deletion.
- Coach conversations in cloud mode are not stored by us: your message, the conversation and the training summary exist on our server only while the request is being processed. The request metadata we log (account identifier, timestamps, sizes) is kept with our ordinary server logs, not with your fitness data. OpenAI may include prompts and responses in abuse-monitoring logs normally retained for up to 30 days, or longer when required by law or reasonably necessary to protect its services or a third party from harm. Named conversation histories are kept locally until you delete them or clear the App; they are not included in account sync. Coached programs and check-in records sync with your account, including while coached plans are disabled. Existing nutrition targets and adjustment history are retained with those records; hiding the features does not delete them. Account deletion removes these records from our servers along with your other synced fitness data, subject to the rolling backup expiry described above. On-device generation sends no requests off the device; account memory remains separate. Turning memory off stops capture and use, while saved items and deletions continue to sync.
10. Security
Traffic is encrypted in transit with HTTPS/TLS. Passwords are stored salted and hashed, never in the clear, and the Apple refresh token we hold for revoking your Sign in with Apple grant is stored encrypted. Sign-in uses short-lived access tokens with rotating refresh tokens, so a stolen token has a small window. Photos are private objects reached only through signed links that expire in minutes. Coach conversations in cloud mode are relayed, not kept: they pass through our server to OpenAI over encrypted connections and the full conversation is not written to our database. Selected account memories are stored separately until you forget them or delete your account. Access to production systems is limited to the developer, and requests are rate-limited to blunt abuse.
No system is perfectly secure. We reduce risk mainly by collecting little in the first place — but we cannot guarantee the security of any data transmitted to or stored by the App, and you provide it at your own risk.
11. Your rights
Depending on where you live — for example under the GDPR or UK GDPR, or the California Consumer Privacy Act — you may have the right to access, correct, export, delete or restrict the use of your personal data, to object to certain processing, and not to be discriminated against for exercising those rights. Workout-data export and permanent account deletion are built into Settings; account deletion and sign-out are also available from Account on the paywall without purchasing. Primed memories can be reviewed, corrected and forgotten inside Primed. For other rights requests, contact us below. Turning off sharing in Settings → Cloud AI privacy, or switching the coach to on-device mode, stops cloud generation requests to us and OpenAI. Previously sent requests may already have been processed by OpenAI. Turning memory off stops capturing and using memories; saved items and deletions still sync to your account. The coach keeps working on your phone if it supports Apple Intelligence.
For anything else, write to hello@getpr.app and we will respond as the applicable law requires. We do not sell personal information and do not share it for cross-context behavioural advertising, so there is no opt-out to offer. Where we rely on a legal basis under the GDPR, it is the performance of our contract with you (running the App), your consent (Cloud AI sharing, Apple Health and notifications, which you can withdraw at any time), and our legitimate interest in keeping the service secure. You may also complain to your local data-protection authority.
12. Children
PR is not directed to children under 13, or under the higher minimum age that applies where you live, and we do not knowingly collect their personal data. If you believe a child has given us personal data, contact us and we will delete it.
13. International users
Our server runs in the United States, and our providers — including OpenAI, for cloud coach requests — store or process data in the United States or in other regions where they operate. Using the App means your information is processed there, under laws that may differ from your own country’s. Where required, we rely on appropriate safeguards, such as the European Commission’s standard contractual clauses, for those transfers.
14. Changes to this policy
We may update this policy as the App changes. If a change is material we will say so in the App or by email, and the effective date above will change. Using the App after a change takes effect means you accept the updated policy.
15. Contact
Questions, or a request about your data: hello@getpr.app