Privacy policy
Last updated 27 September 2026 (v2.1, automatic data). Controller: Anima Labs Ltd (England and Wales), contact [email protected].
The short version
- There is no account. ANIMA HYBRID identifies your device with a random string it generates on first launch. It is not your advertising ID, not your phone number and not derived from anything about you.
- We collect your race and workout times, the bracket you chose (division, gender band, age band), and — only if you type them — a display name, a city and a gym code.
- We do not collect your name, email, address, date of birth or contacts. Photos and videos you choose to scan are read on your phone; see below for the one exception you can switch on.
- Workouts from your watch (free). If you connect Apple Health or Health Connect, the app reads your workouts (type, time, duration, distance, heart rate, calories) and logs them for you. They stay on your phone unless you switch on Cloud sync.
- Direct connections (optional). If you connect Garmin, COROS, Polar, WHOOP, Suunto or Oura, that company sends your workouts to our server, which passes them to your phone. Disconnecting deletes the connection and every workout it sent.
- Health data (ANIMA HYBRID Pro). If you connect Apple Health or Health Connect, the app reads your heart rate variability, resting heart rate, breathing rate and sleep. By default this stays on your phone and is never sent to us. It only reaches our servers if you switch on Cloud sync and agree on the consent screen; switching it off deletes it from our servers. We never write to your health apps, never store health data in iCloud, and never use it for advertising.
- Location. Only while you are recording a run you started, to measure distance, pace and splits. The route stays on your phone.
- We do not use advertising identifiers and we do not track you across apps or websites. There are no ads in ANIMA HYBRID.
- You can export everything we hold and delete everything we hold, from inside the app, without asking us.
What we collect and why
| Data | Why | Lawful basis |
|---|---|---|
| Random device identifier | To attach your results to your device so you can edit and delete them, and to apply rate limits | Legitimate interests (running the service securely) |
| Race and workout times, and your bracket | To produce your report, and — anonymised and aggregated — to improve the shared benchmarks everyone is compared against | Legitimate interests; you can switch off the sharing part in Settings at any time |
| Display name (optional) | To label you on a gym or city leaderboard and on a card you share | Consent — you choose whether to type one |
| City and gym code (optional) | To place you on the right leaderboard | Consent |
| Bodyweight (optional) | Strength standards are published by bodyweight, so the Hybrid Score needs it to grade a lift | Consent — it stays on your device and is never sent to our server |
| Health data you connect: HRV, resting heart rate, breathing rate, sleep (optional) | To work out readiness against your own normal and adjust today's session. Processed on your phone | Explicit consent — given when you connect, withdrawn by disconnecting |
| The same health data and your training log, on our servers (Cloud sync only) | So the 04:00 job can prepare your morning and two devices agree. Kept 400 days at most; deleted when you switch Cloud sync off | Explicit consent (UK GDPR Art. 9(2)(a)) on the Cloud sync consent screen |
| Workouts from Apple Health or Health Connect (optional) | So your sessions log themselves. Read on your phone; nothing is written back | Explicit consent — the Apple or Android permission prompt, withdrawable there at any time |
| Workouts from a direct connection: Garmin, COROS, Polar, WHOOP, Suunto, Oura (optional) | So your sessions log themselves. The company sends them to our server, which passes them to your phone. We keep the sign-in token (encrypted) and the workout summaries until you disconnect, which deletes both. For Garmin, also to send your planned sessions to your watch when you ask | Explicit consent — you sign in to that company and approve |
| Photos and videos you scan (optional) | To read the numbers on an erg screen, treadmill, whiteboard or results page. Read on your phone. Only if you say yes to cloud reading, a downsized copy of that photo (or a few frames of that video) is sent to our AI model provider, Anthropic, for that one read. It is not stored by us, and it is not used to train models | Explicit consent, asked the first time and changeable in Settings |
| Bluetooth machines and straps (optional) | To record a rower, bike, treadmill or heart-rate strap during a session. Read on your phone; only the session summary is logged | Consent — the Bluetooth permission prompt |
| Location during a run you record (optional) | Distance, pace, splits and ghost races. The GPS track is not uploaded | Consent |
| Purchase status | To unlock Pro. Handled by RevenueCat and the app stores; we never see a card number | Contract |
| Anonymous product analytics | To see which screens are used, how many race cards are made and shared, and whether an install arrived from a shared card or a gym code — so we can tell which parts of the app are worth building on. Sent to PostHog (EU region) tagged only with the random device identifier; no person profile is built and nothing is used for advertising or cross-app tracking. You can switch it off in Settings → Anonymous analytics, and anything not yet sent is discarded at that moment. | Legitimate interests — with the switch as your way to object |
Gender and age bands
ANIMA HYBRID asks for a gender band and an age band because published race benchmarks only exist in those bands, and a percentile against the wrong bracket is worse than no percentile. You can change or leave the default at any time, we store the band and not a date of birth, and nothing about you is inferred from either.
How the shared benchmarks work
When you add a race with sharing on, your times are added to a counter for your bracket — a histogram of how many results fell in each fifteen-second band. That counter holds no identifier at all. It is what lets ANIMA HYBRID say "based on 4,800 results" instead of guessing. If you delete your data, your contribution is subtracted from those counters.
Sharing with others
We use Cloudflare (hosting and database, EU/global edge), RevenueCat (subscription status), Anthropic (AI photo reading, only when you switch it on; images are not retained for training), the watch companies you choose to connect (each under its own privacy policy), and — only when they are configured — PostHog (anonymous product analytics, EU region) and Sentry (crash reports). We do not sell data and we do not share it for advertising. A card you choose to share is a public page at animahybrid.app/r/<code> showing the numbers on the card and nothing else.
Retention
Raw result rows are kept for 800 days and then deleted automatically. Aggregate counters are kept indefinitely because they contain no identifier. Data on your phone stays until you delete it or remove the app.
Your rights
You can export or erase your data from Settings in the app at any time. You also have the right to access, rectify, restrict and object, and to complain to the Information Commissioner's Office (ico.org.uk). Email [email protected] and we will respond within 30 days.
Children
ANIMA HYBRID is rated for ages 12 and over and is not directed at children under 13. We do not knowingly collect data from them.
International transfers
Our infrastructure runs on Cloudflare's global edge network, which may process data outside the UK/EEA under the UK International Data Transfer Addendum and standard contractual clauses.
Changes
If this policy changes materially we will say so in the app before the change takes effect.