Effective 11 October 2026
Privacy policy
The short version: the camera never leaves your phone, your training numbers live on our server so your history follows you, and a subset of those numbers goes to OpenAI to write feedback. You can delete your account and its training records from inside the app. Purchase and diagnostic providers are described below.
01What we collect
RIRVana is a lift coach. It tracks a set through your camera, counts reps, estimates how many you had left, and writes the next set from that. Camera processing stays on your phone. The app sends training records, account information, and the service and diagnostic data described here to us or our providers.
- Account. Using the app takes an account. You sign in with Apple, Google, a code or link sent to your email, or an email and password. We store your email address, the display name your sign-in provider gives us, the provider’s account id, and a random account id of our own that your data is filed under. Apple lets you hide your address; we then hold the relay address Apple creates. If you set a password, we keep only a one-way hash of it, never the password itself.
- Sessions. A sign-in token, the IP address and the device’s user agent string at the time of sign-in, kept so a session can be revoked.
- Training data. Your programs, workouts, exercises, sets, loads, reps, and the numbers the camera derives from a set (rep count, tempo, range of motion, an effort estimate, and form flags). Body weight and body fat percentage when you log them, and body weight when you sync it from Apple Health. Training restrictions you declare. Equipment you say you have.
- Watch heart-rate recovery. If you record a workout with the RIRVana Apple Watch app, each set stores a short heart-rate recovery summary with that set: your heart rate when the set ended, your heart rate about 60 seconds later, the lowest during that rest, the times they were taken, and whether the rest ran the full minute or ended early.
- Capacity at workout start. If you are a RIRVana Pro subscriber and the app offers to lighten a workout because your Capacity is low, then when you start that workout we store with it the day’s Capacity score, its state, whether it is still provisional, the formula version, and what you chose. Capacity is worked out on your phone from your Apple Health readings; the readings themselves are not sent.
- Usage. Our server records your first app open and use of named features, with your account identifier, timestamps, and event identifiers used to avoid duplicates. The first account on an installation can also send a random installation identifier. We use these records to understand how features are used and to operate free allowances.
- Diagnostics. Named failure reports, crash reports, and performance measurements, described below.
- Purchases. In builds configured for RevenueCat, its SDK starts even while billing is off. It creates an anonymous app user identifier before sign-in and uses your random RIRVana account identifier after sign-in to check subscription offers, trial eligibility, purchases, restores, and Pro access. RevenueCat processes purchase and receipt or transaction information from Apple or Google and returns subscription and entitlement status. RIRVana does not pass your workouts, training history, HealthKit readings, camera frames, or pose data to the purchase SDK.
On this website, the waitlist form collects an email address and the training focus you pick. The website also uses Google Analytics (the Google tag) to measure page visits. Google receives standard browser information such as your IP address and the pages you view, and may set cookies. The mobile app does not use it.
02How we use it
To run the app: to keep your training history across devices, to generate and adapt your program, and to produce coaching feedback on a set. To sign you in and keep your account secure. To find and fix failures in the app, measure performance, and understand feature and subscription use.
We do not sell any of it. We do not use it for advertising. We do not track you across other apps or websites, and the app declares this to Apple in its privacy manifest. We do not build profiles of you for anyone else.
03Camera and video
Pose tracking runs entirely on your phone. The camera frames are read by an on-device model, and only the geometry it derives (joint angles, timing, and a rep count) is used. No video and no camera frame is ever uploaded to us or to any third party.
When you record a set, the clip is saved in the app’s own storage on your phone and, if you allow it, exported to your Photos library. It stays there until you delete the set or the app. Deleting a workout from history deletes its clips.
Two optional settings send more detail about tracking. Remote pose diagnostics is off until you turn it on. Upload calibration bundles is on by default but sends nothing unless calibration mode, which is off by default, is on:
- Remote pose diagnostics sends a summary of a tracked set: frame counts, angle ranges, and how many rep attempts were rejected and why. No pixels, no coordinates.
- Upload calibration bundles works together with calibration mode. With calibration mode on, each tracked set you finish sends, automatically once its reps are logged, the per-frame joint positions the model found, as normalised coordinates, with the rep count you logged for that set, the exercise (for an exercise you created, its name) and your program’s goal, split, experience level and week. The upload carries no account id, and the stored bundle holds no account or set id; we keep a separate private link only so we can delete the bundle with the set or with your account. It contains no images, but body geometry can be personal. This helps us tune the rep counter. Turn the setting off to stop sending.
04Apple Health
If you connect Apple Health, the app reads steps, active energy, walking and running distance, resting heart rate, heart rate variability, sleep, and body mass, to show them alongside your training. These readings are displayed on your phone. Of these readings, only body weight is sent to our server, where it becomes a measurement in your history. Your resting heart rate, heart rate variability, sleep, and activity stay on your phone. Two summaries worked out from health data are kept with your training, described next.
If you record a workout with the RIRVana Apple Watch app, a heart-rate recovery summary for each set (your heart rate at the end of the set, about 60 seconds later, and the lowest during that rest, with the times they were taken and whether the rest ran the full minute) is stored with that set on our server. This happens whether or not you subscribe. We use it to show you how your heart rate recovered between sets, and to evaluate whether it can improve your coaching. Today it does not change your program or your next set. Only RIRVana Pro subscribers see it in the app. It is deleted when you delete the set, the workout, or your account.
RIRVana Pro works out a daily Capacity score on your phone from those readings. When the app offers to lighten a workout because the score is low and you start that workout, the score, its state, and your choice are stored with the workout, as listed under What we collect. They are deleted when you delete the workout or your account.
The app can also save your finished workouts to Apple Health. It does this only after you turn on “Save new workouts automatically” in Profile, then Apple Health, accept the offer shown after your first workout, or tap Save to Apple Health on a workout’s recap. Until then it saves nothing. Each workout is saved as Functional Strength Training:
- Recorded with Apple Watch. The watch saves the workout with the heart rate it recorded and Apple’s estimates of active and resting energy, so it counts toward your Move and Exercise rings. Apple’s active energy figure is shown in your recap on that phone and is not sent to us.
- Without Apple Watch. Your iPhone saves the start time and duration only. The app writes no heart rate, energy, or distance of its own.
So a workout is not saved twice, our server keeps a record of each one: a random identifier, its start and end time, which installation of the app saved it, and whether the iPhone or Apple Watch did. It holds no heart rate, energy, or other Health reading.
To stop saving, turn off “Save new workouts automatically”. To skip one workout, choose Skip Apple Health for This Workout in the workout menu. Workouts already saved stay in Apple Health. To remove one, delete it in the Health app, or delete it from History and choose Delete from RIRVana and Apple Health. You can withdraw the app’s access entirely in the Health app, under Sharing, then Apps.
Health data is used only to provide the app’s features. It is never used for advertising or marketing, never sold, never shared with data brokers, and never disclosed to a third party except as this policy describes.
05AI processing
Two features call a large language model, and for both the model is run by OpenAI, acting as our processor. Each request contains only what the feature needs.
- Set feedback sends the numbers from one set: the exercise, reps, duration, tempo per rep, range of motion, any form flags, the load, and your recent sets of the same exercise for context.
- Program generation sends your training goal, days per week, session length, experience level, focus lifts, equipment, declared restrictions, and a summary of your recent training.
No name, email address, account id, video, or health reading other than what is listed above is included. OpenAI processes these requests under its API data policy, which does not use API inputs to train its models.
06Data retention and deletion
Your training data is kept for as long as you have an account, so your history is there when you come back.
You can delete your account from inside the app: Profile, then Delete Account. This permanently removes your account and its linked records from our database, including workouts, sets and their heart-rate recovery summaries, programs, measurements, calibration bundles, and settings. Data on your phone (recorded clips, the local database) is removed when you delete the app.
Anonymous failure reports are not linked to an account and cannot be removed through account deletion. Store transaction records and data held by RevenueCat, Sentry, and Expo follow those providers’ retention policies. Deleting a RIRVana account does not automatically erase those providers’ records or cancel a subscription. Contact us for help with a deletion request involving a provider.
You can also write to support@rirvana.pro to ask for deletion, a copy of your data, or a correction. The account deletion page sets out both routes and exactly what each one removes.
08Diagnostics
When something in the app fails, it can send us a report. A report is one of six named events (for example, “set video save failed”), the platform, the app and build version, a named step of the operation that failed (for example, “saving to the phone’s index”), and short codes describing the error and, when one failure wrapped another, its underlying cause. It can also say which app build is installed, which runtime it uses, and whether the app is running its built-in code or an update it downloaded, so we can tell which version broke. Before any of those codes leave the phone, every file path, URL, and long identifier is stripped from them and each is cut to 64 characters. Reports carry no workout data, no video, and no personal information, and they are not tied to your account when we read them.
You can turn these named failure reports off in Profile with the “Share error reports” switch.
Separately, builds configured for Sentry send crash and app-hang reports, technical device and app context, stack traces, and sampled performance traces. Our API also sends unexpected error reports to Sentry when configured. We disable default personal-information collection and scrub request bodies, cookies, query strings, credentials, and email addresses before sending events. This does not make every technical report anonymous.
Expo EAS Observe measures startup and screen timings and records technical app, release, device, route, network, and error context. Subscription-flow events include paywall views, plan selection, purchase, trial, restore, cancellation, and limit events, with timestamps, product or plan identifiers, and the subscription tier. RIRVana does not add workout contents, camera frames, or HealthKit readings to these subscription events. The Share error reports switch controls the named failure reports above; it does not disable Sentry, EAS Observe, or account-linked feature usage.
09Children
RIRVana is not directed at children under 13, and we do not knowingly collect personal information from them. If you believe a child has created an account, write to us and we will delete it.
10Security
Data travels between the app and our server over TLS. Sign-in uses short-lived codes, the platform’s own identity service, or a password we keep only as a one-way hash. Access to the database is limited to the developer. No system is perfectly secure, and if we learn of a breach affecting your data we will tell you.
11Changes
When the app starts collecting something new, or stops, this page changes and the date at the top moves. Material changes are announced in the app before they take effect.
12Contact
RIRVana is made by Derek Rodriguez. Questions about this policy or your data go to support@rirvana.pro.