Privacy Policy
Effective July 6, 2026Health and Fitness Data
RUHN integrates with Apple HealthKit to read and write the following data:
- Workout sessions (read/write), records your running and walking missions.
- Heart rate (read/write), used for effort tier classification during missions.
- Resting heart rate (read), used to compute heart rate reserve for more accurate training zone classification when Apple Watch data is available.
- Date of birth (read), used solely to calculate your maximum heart rate from your age (Tanaka formula: 208 − 0.7 × age) for heart rate zone thresholds.
All HealthKit data access requires your explicit permission through standard iOS authorization prompts. RUHN never writes to or reads from HealthKit without your consent.
Location Data
RUHN uses CoreLocation to collect GPS coordinates during outdoor runs. Location is used for live pace calculation, route tracking, route planning, turn by turn navigation, and, when weather is shown, retrieving current conditions for your area.
Location access is requested as "When In Use." During active outdoor missions, RUHN uses background location updates so pace tracking continues when the screen is locked. Location tracking stops completely when a mission ends.
Bluetooth Heart Rate Data
RUHN can connect to standard Bluetooth Low Energy (BLE) heart rate monitors via the Heart Rate Service (0x180D). This is used for live heart rate display and effort tier classification during missions, and for treadmill workouts where GPS is unavailable.
The BLE peripheral identifier for your connected device is stored in the iOS Keychain for automatic reconnection.
User Profile Data
- Callsign, a nickname you choose (3 to 16 characters), stored locally. This is not an account username and is not transmitted anywhere.
- Sex (optional), used for performance calculations adjusted for age. Stored locally.
Mission and Training Data
Pace and tier data, session logs, route data, training plan data, rank and signal data, D.I.A.N.A. transcript data, and exercise science metrics (VDOT, cardiac drift, EWMA-ACWR, heart rate recovery, aerobic decoupling, signal efficiency) are all computed and stored locally on your device.
Signal Memory (Optional iCloud Sync)
Signal Memory keeps your progression, meaning your rank, signal, imprints, personal records, baseline, and training history, in your own private iCloud so it survives a reinstall or a move to a new phone. It is on by default and can be turned off any time in Settings. The data is stored in a private database inside your personal iCloud account that only you can access. RUHN cannot read it. Syncing runs only at rest between missions, never during a mission.
Signal Uplink (Optional, Off by Default)
Signal Uplink is an optional feature, off unless you turn it on in Settings. When it is on, after a mission ends RUHN sends a short summary of that run to RUHN's relay and to Anthropic (the company behind the Claude AI model) so D.I.A.N.A. can compose an extended written analysis. The summary contains only:
- The mission name, its duration in minutes, and whether distance was recorded.
- Your effort tier breakdown, meaning the percentage of the run spent at low, mid, high, and peak effort.
- Heart data expressed only as a percentage of your estimated maximum, plus category labels for training load, recovery, and pacing. Never your raw heart rate and never your maximum heart rate.
What is never sent: your location or route, your raw heart rate or pace recordings, your maximum heart rate, the date or time of your run, your callsign, or any identifier that names you. Nothing is sent while a mission is in progress, only at rest afterward, and only if you have turned Signal Uplink on.
Requests are authenticated with Apple's App Attest so the relay only answers the genuine RUHN app, and the relay never logs the contents of your runs. Your standard analysis from D.I.A.N.A., computed on your device, is always available immediately, whether or not Signal Uplink is on. You can turn it off at any time in Settings, and nothing further is sent.
Kinematic Data (Optional)
When you enable kinematic logging, RUHN records accelerometer and gyroscope data at 100Hz. This is optional and stored locally.
Emergency Contact Data (Optional)
If you add emergency contacts, RUHN stores their names and phone numbers exclusively in the iOS Keychain. Contact information is used only for the call button during active missions.
All data collected by RUHN is used for a single purpose: to power your experience in the app. Pace and heart rate drive effort tier classification. Location enables pace calculation and route tracking. Training data generates and adapts your training plan. Rank and signal data track your progression.
RUHN does not use your data for advertising, analytics, profiling, or any purpose beyond the features described above.
Your data is stored locally on your device. If Signal Memory is enabled (the default), your progression is also synced to your own private iCloud through Apple's CloudKit private database so it survives a reinstall or a new phone. RUHN maintains no user accounts and keeps no shared cloud database of your data. The one server RUHN operates is the optional Signal Uplink relay described above; it is used only when you turn Signal Uplink on, holds no run content, and is otherwise never involved. RUHN cannot access the data held in your iCloud.
Sensitive data files use iOS file protection. They are encrypted at rest and stay inaccessible until the first time you unlock your device after it restarts. Your progression is included in your normal iCloud and device backups so it can be restored. Certain caches and optional raw sensor logs are marked isExcludedFromBackup and are kept out of backups.
Emergency contacts and BLE peripheral identifiers are stored in the iOS Keychain with encryption at the hardware level.
No RUHN server stores your runs or your history. The optional Signal Uplink relay holds only a verification key for each install and request counts, never the contents of your runs, and is used only when you turn the feature on. Your iCloud data is reachable only by you, through your own Apple account.
Apple HealthKit
RUHN reads and writes health data through Apple HealthKit, governed by Apple's HealthKit policies and the permissions you grant on your device. HealthKit data is never shared with third parties or used for advertising.
Apple MapKit
RUHN uses Apple MapKit to snap your drawn routes to roads. Only geographic coordinates are sent to Apple for route calculation. No personal data is included.
Apple MusicKit (Optional)
If you use the Apple Music integration, RUHN controls playback through the system Music player. RUHN does not access your listening history or library contents beyond controlling playback inside the app.
Apple iCloud (Signal Memory)
If Signal Memory is enabled, RUHN stores your progression in your own private iCloud using Apple's CloudKit, governed by Apple's iCloud terms and privacy policy. The data lives in a private database only you can access. RUHN, as the developer, cannot read it, and it is never shared with anyone. You can turn Signal Memory off any time in Settings.
Apple WeatherKit
RUHN uses Apple WeatherKit to show current conditions on your dashboard and run summaries. Your approximate location is sent to Apple to retrieve local weather. No personal or identifying information is included. Weather data is provided by Apple Weather.
OpenStreetMap Overpass API
RUHN queries the OpenStreetMap Overpass API for traffic signal locations during route planning. Only geographic bounding box coordinates are transmitted. No personal or identifying information is sent.
Signal Uplink Relay and Anthropic (Optional)
If you turn on Signal Uplink, the derived run summary described in Section 1 is sent to RUHN's relay (hosted on Cloudflare) and to Anthropic, the provider of the Claude AI model, to compose D.I.A.N.A.'s extended analysis. Only the summary is sent, never your location, raw sensor recordings, or any identifier. Under Anthropic's commercial API terms, inputs are not used to train its models. This happens only when the feature is turned on and only at rest after a mission.
No Other Third-Party Services
RUHN does not include any third party SDKs, analytics services, crash reporting tools, advertising networks, or tracking frameworks.
Except for the optional Signal Uplink feature, RUHN shares your data with no third party.
- No data is sold.
- No data is shared with advertisers.
- No data is shared with analytics providers.
- The only data that leaves your device is: what you export yourself using the share sheet; if Signal Memory is on, your own progression synced to your private iCloud, which only you can access; and, if you turn on Signal Uplink, a derived summary of a finished run sent to RUHN's relay and Anthropic to compose D.I.A.N.A.'s analysis, as described above.
All data is stored on your device and under your control. You can reset rank, signal, mission history, onboarding state, training plan, and emergency contacts from Settings. Uninstalling RUHN removes all app data from your device. You can turn Signal Memory off in Settings to stop syncing; progression already saved to your private iCloud stays under your control in your Apple account and can be removed by deleting RUHN's iCloud data from iOS Settings.
RUHN is not directed at children under the age of 13. We do not knowingly collect personal information from children under 13. Date of birth is read from HealthKit solely for heart rate zone calculation and is never stored separately or transmitted.
RUHN makes zero network calls during active missions. All voice audio is rendered in advance and bundled with the app. Network activity happens only at rest between missions and is limited to route planning (OpenStreetMap, Apple MapKit), weather (Apple WeatherKit), optional Apple Music playback, Signal Memory sync to your private iCloud, and, if you turn it on, Signal Uplink, which sends a derived run summary after a mission ends, never during one.
We may update this privacy policy from time to time. Changes will be reflected by an updated effective date at the top of this document.
If you have questions about this privacy policy or RUHN's data practices:
Email: [email protected]
Website: ruhn.app