This policy describes how Iron Habit actually works today. It is written from the app’s code and backend rules, not from marketing copy. It is not legal advice. If you need advice for a specific jurisdiction, consult a qualified lawyer.
1. Who we are
Iron Habit is a fitness app for Android and iOS, operated by Iron Habit (“we”, “us”, “our”). The app helps you browse an exercise library, log workouts and meals, compute calorie and macro targets from the answers you give us, and — on paid plans — generate a weekly workout and meal plan with AI.
Controller of personal data for the app: Iron Habit. Contact details are in section 18.
2. What this policy covers
This policy applies to:
- the Iron Habit apps on Android and iOS, including phone and tablet layouts;
- our Firebase project that stores your account and synced data;
- AI features that send limited profile information and (when you scan a meal) a photo to Google’s Gemini models;
- the app stores you install from (Google Play on Android, the Apple App Store on iOS), in-app purchases, on-demand exercise videos, Firebase App Check, AdMob, Crashlytics and Analytics used by the apps.
It does not cover websites or services we do not operate, including Google Play, the Apple App Store, Google or Apple accounts, or AdMob advertisers.
3. Information we collect
We only collect what the app needs to run the features you use. You can skip most onboarding questions; skipped answers stay empty and we do not invent them.
3.1 Account and identity
- Google Sign-In (optional). If you tap “Continue with Google”, Google shares an ID token with us. Firebase Authentication then stores your Google user id, display name, email address, and profile photo URL. We use this to create or restore your Iron Habit account so plans and progress can sync across devices.
- Guest / anonymous use. If you skip sign-in, Firebase can create an anonymous account, or the app can keep data only on the device. Guest data lives on that device until you sign in; signing in later uploads what is already on the device and merges it with any cloud copy for that Google account.
- Firebase user id (UID). A unique id assigned by Firebase. All cloud documents for you sit under
users/{uid}.
3.2 Athlete profile (you type this in)
Onboarding and the later “sharpen your plan” questions may store:
- display name;
- biological sex (male, female, or prefer not to say);
- birth year (used only to derive age for calorie maths);
- height and current weight;
- fitness goal and optional goal weight;
- training experience and days per week;
- country (ISO country code you pick) and optional region as free text — we do not read GPS or device location;
- preferred cuisines and diet (for example omnivore, vegetarian, vegan, pescatarian, halal, keto);
- focus muscle groups, available equipment, injury areas to avoid, food allergies;
- typical session length and meals per day;
- timestamps for when onboarding and follow-up questions were finished, and when the profile was last updated;
- preferred weight unit (kg or lb) and appearance theme (light, dark, or follow the system).
Sex, age, height, weight, goal, injuries and allergies are used to compute calorie/macro targets (Mifflin-St Jeor plus a goal multiplier) and to avoid exercises or foods you asked us to avoid. They are health-related data. We process them only to provide the app you asked for.
3.3 Workout data
- planned weekly workouts (exercises, sets, reps, rest, focus muscles, estimated minutes);
- live and finished sessions: start/end time, exercises, sets, reps, weight, optional notes;
- daily rollups: date, total sets, reps, volume, and volume by muscle.
3.4 Nutrition data
- planned meals for the week (name, meal type, calories, protein, carbs, fat, ingredients);
- which planned meals you ticked as eaten;
- manual extras and confirmed photo-scan items: name, calories, macros, source (typed or photo), confidence label, time logged;
- on the server we store a compact day summary: date, eaten meal ids, extras count, extras calories, number of photo scans — not the photo itself.
3.5 Food photos
See section 6. In short: a downscaled copy of a plate photo is sent to Gemini when you scan; a small thumbnail can stay in the app’s private storage on the device; photos are not uploaded to Firestore.
3.6 Subscription and usage counters
- effective membership tier (Free, Basic, Advanced) and how it was granted (a store purchase or, in internal testing, a tester grant);
- the store product identifiers for Basic and Advanced (on Google Play,
ironhabit_basic_monthlyandironhabit_advanced_monthly); - how many AI plan rebuilds you have used this calendar month;
- how many food scans you have used today;
- whether Gemini has already written you a first AI plan (Basic includes one lifetime AI build);
- purchase tokens and entitlement state that Google Play or the Apple App Store returns to the app.
We do not see your full payment card number. Google Play processes payment on Android. Apple processes payment on iOS.
3.7 Device, diagnostics and advertising identifiers
- Internet access and network state, so the app can reach Firebase, the app store, ads and optional video fallbacks.
- Crash logs (release builds only). Firebase Crashlytics may collect stack traces, device model, OS version, and an anonymous install id when the app crashes. Collection is turned off in debug builds.
- Analytics. The Firebase Analytics SDK is included. It can collect automatic events such as app opens, device and locale information, and an app-instance id. We do not currently log custom events from our own screens, but Google’s automatic collection still applies unless you reset advertising / analytics settings on the device.
- Advertising identifier. Free and Basic show Google AdMob banners. On Android the app declares the advertising-ID permission for those banners. On iOS, ads may use Apple’s advertising identifier only if you allow tracking. Advanced is ad-free and does not show those banners.
- App Check. Release builds exchange an integrity token with Firebase App Check before AI calls, so the request comes from a genuine install. On Android that token is from Google Play Integrity. On iOS it is from Apple App Attest. Emulators and sideloaded copies typically fail this check. The token is an integrity attestation, not your workout log.
- Store and advertising identifiers used by AdMob, in-app purchases, on-demand videos and App Check. We do not run our own location tracking.
3.8 What we do not collect
- precise GPS location;
- contacts, SMS, call logs, or microphone audio;
- a background camera — the system camera or photo library is opened only when you choose “Take a photo” or “Choose from gallery”;
- payment card numbers;
- food photos in our Firestore database;
- exercise demo videos from your camera — demo clips are provided by us for the muscle group you open (and, if configured, a streamed Musclewiki fallback).
4. How we use information
- create and keep your account, including guest use and later linking to Google;
- remember your profile, plans, workouts and food log on the device and, after sign-in, in Firestore;
- compute daily calorie and macro targets;
- build a catalog workout around your gear, injuries, days and session length;
- on paid tiers, ask Gemini to write a workout week and a seven-day meal plan that hits your targets, cuisine, diet and allergies;
- estimate calories from a meal photo you submit, then let you edit every number before save;
- enforce daily scan limits and monthly plan-refresh limits for the tier you paid for;
- show or hide ads based on whether the tier is ad-free;
- download or open only the muscle-group video pack you choose;
- restore purchases, recover from crashes, and stop abuse of the AI endpoints;
- delete your data when you use “Delete all my data”.
Legal bases we rely on (where GDPR or similar law applies):
- Contract — providing the app, sync, subscriptions and the features you request;
- Legitimate interests — security (App Check), crash diagnosis, preventing AI abuse, understanding basic usage;
- Consent — Google Sign-In, taking or picking a photo, optional AI plan generation after the in-app AI disclaimer, and advertising where consent is required by AdMob / your device settings;
- Explicit consent / health-data exception for fitness services you request — profile answers about sex, body measurements, injuries, allergies and diet, used only to generate targets and plans for you.
5. Artificial intelligence
Paid members can receive AI-written workouts and meals. Anyone with remaining daily scans can photograph a plate for an AI calorie estimate. A one-time in-app notice explains that this output is informational, can be wrong, and is not medical or dietary advice.
5.1 Plan generation (Basic and Advanced)
When a plan is built or refreshed with AI, we send Gemini a text prompt that can include:
- the name you gave us;
- goal, experience, training days, session length;
- equipment and focus muscles;
- injury areas to avoid;
- country, region, cuisines, diet preference, allergies, meals per day;
- calorie and macro targets we already computed on the device;
- a shortlist of exercise ids from our catalog (not your full workout history).
We do not send your Google email, payment details, or food photos in the plan request. Basic receives one AI plan. Further meal or workout refreshes require Advanced and count against a monthly allowance (currently 30 rebuilds). If Gemini fails, the app falls back to an on-device template so you still get a plan; that fallback stays on our servers / device and is not a second Gemini call.
5.2 Food photo estimates
The photo is downscaled so the longest edge is 1,024 pixels, then sent with a short prompt that may mention your diet preference and allergies so the model can flag a possible problem in a note. The model returns dish names, portion guesses, calories and macros. Nothing is saved to your log until you confirm. You can edit or discard every number.
5.3 Who runs the model
Calls go through Firebase AI Logic to Google Gemini (currently a Flash model on Google’s Vertex AI / global Gemini endpoint), protected by Firebase App Check. Google’s use of that content is governed by Google’s Privacy Policy and Firebase Privacy and Security. We do not use your photos or profile to train our own models. We cannot promise how long Google retains API logs; see Google’s terms for Gemini / Vertex AI.
6. Food photos
- You choose when a photo is taken or picked. The app does not run a background camera. On Android, the system camera or photo picker opens only after you tap the control, without a standing camera or storage permission. On iOS, the system asks for camera or photo-library access only when you take or choose a photo.
- Upload for analysis: a downscaled bitmap is sent to Gemini as described above, then discarded from that request on our side when the call finishes.
- On-device thumbnail: if you save the estimate, we may keep a small JPEG (about 320 px on the long edge) in the app’s private files so the food log can show the plate. These files are not written to Firestore.
- Deletion: removing a logged extra deletes its thumbnail if nothing else shares it. “Delete all my data” deletes the whole local photo folder.
Do not photograph other people, children, or anything you do not want processed by Google’s AI if it appears in the frame. Crop to the plate.
7. Advertising
Free and Basic show a Google AdMob banner on Home, Workout and Meal plan. Advanced is sold as ad-free and the banner is hidden.
AdMob may collect your advertising ID, IP address, device and app information, and coarse location derived by Google, and may use cookies or similar technologies to show and measure ads (including personalised ads where allowed). We do not sell your workout or meal log to advertisers.
You can reset or opt out of personalised ads in your device settings. On Android that is Google → Ads, or Privacy → Ads, depending on the OS version. On iOS, decline App Tracking, or turn off Allow Apps to Request to Track, in Settings → Privacy & Security → Tracking. Google’s ad policy is at policies.google.com/technologies/ads.
8. Payments and subscriptions
- Free — catalog-built workout, 2 photo scans a day, ads, no AI meal plan.
- Basic (USD 2.99/month list price, charged by the app store in your currency) — one AI workout and meal plan, 5 photo scans a day. Ads still show.
- Advanced (USD 10.99/month list price) — plan rebuilds within the monthly allowance, 20 photo scans a day, no ads.
Purchases, cancellations, refunds and tax are handled by the store you bought from: Google Play on Android, or the Apple App Store on iOS. Manage or cancel the subscription in that store. Deleting your Iron Habit account does not cancel the subscription; you must cancel it in the store yourself.
9. Third-party services
These processors receive only what they need to provide their service:
| Service | Why | Typical data |
|---|---|---|
| Firebase Authentication (Google) | Sign-in (Google or anonymous) | UID, email, name, photo URL, tokens |
| Cloud Firestore (Google) | Sync profile, plans, sessions, nutrition summaries, subscription state | Documents under users/{your uid} |
| Firebase Remote Config | Catalog version / feature flags | App instance, country/language that Google attaches |
| Firebase Crashlytics | Crash reports (release) | Stack traces, device metadata |
| Firebase Analytics | Automatic usage measurement | App-instance id, automatic events |
| Firebase AI Logic / Gemini / Vertex AI | Plans and food-photo estimates | Prompt text, downscaled image, App Check token |
| Firebase App Check (Play Integrity on Android, App Attest on iOS) | Block forged AI requests | Integrity token, app identity |
| Google Play Billing (Android) and Apple In-App Purchase (iOS) | Subscriptions | Store account, product id, purchase token |
| On-demand exercise videos (Google Play Asset Delivery on Android) | Demo videos for the muscle group you open | Device and download state; not your food photos |
| Google AdMob | Banners on Free and Basic | Advertising ID, device and ad interaction data |
| Google Sign-In / Credential Manager | Optional account linking | Google account you pick |
| Musclewiki API (optional fallback) | Stream a demo video if a local pack is missing and an API key is configured | Exercise name or slug only — not your account |
Public exercise catalog documents in Firestore (exercises/) are readable without
sign-in so you can browse before creating an account. They do not contain your personal data.
Read Google’s policies: Google Privacy Policy, Firebase, AdMob, Google Play, Apple.
10. When we share information
We do not sell your personal information. We share it only:
- with the processors in section 9, under their terms;
- if required by law, court order, or to prevent serious harm or abuse;
- if the app’s operator is transferred, in which case this policy will be updated and you will be told;
- with you, when you export or view your own data in the app.
Firestore security rules allow only the signed-in owner to read or write
users/{uid}/**. Other users cannot open your profile, sessions, plans,
nutrition summaries or subscription document.
11. Where data is stored and how long we keep it
11.1 On the device
Profile, plans, nutrition log, sessions and entitlements are stored in app-private
DataStore / files. Food thumbnails live under the app’s private food_scans folder.
Theme and units are stored locally. If device backup is turned on, the operating system
may include app-private files in that backup: Google backup on Android, iCloud backup on iOS.
On Android, shared preferences are excluded from backup.
11.2 In the cloud
After sign-in, we write to Google Cloud Firestore (Firebase project used by Iron Habit)
under users/{uid}/profile, plans, sessions,
dailyRollups, nutrition and subscription.
Firebase Auth holds the account record. Google may store that data in the United States
or other regions where it operates.
11.3 Retention
- We keep cloud data until you delete the account or the Auth user is removed.
- “Delete all my data” in Settings re-authenticates if needed, deletes every document under
users/{uid}(the collections listed above), deletes the Firebase Auth account, clears local profile/plan/nutrition/sessions/entitlement (including food thumbnails), then signs you out. - Guest-only data that never left the device is wiped from that device when you use the same control.
- Crash and analytics records follow Google’s retention for those products.
- Store purchase history remains with Google Play or Apple even after you delete the Iron Habit account.
12. Security
- Transport is HTTPS to Firebase, the app stores and Gemini.
- Firestore rules are owner-only for user documents, with size and type caps to limit abuse.
- AI endpoints require a valid App Check token on release builds (Play Integrity on Android, App Attest on iOS).
- Food photos are not stored in our database.
- No security measure is perfect. Do not put information in notes or names that you would not want stored with a fitness log.
13. Your rights and choices
Depending on where you live (including the EEA/UK and California), you may have the right to access, correct, delete, restrict or object to processing, withdraw consent, and lodge a complaint with a supervisory authority. You can:
- edit profile answers in Settings / onboarding;
- edit or discard AI meal estimates before they are saved, and remove logged extras;
- sign out (this does not delete the cloud account);
- use Delete all my data to erase cloud and local Iron Habit data and the Auth account;
- cancel a subscription in Google Play or the Apple App Store, depending on where you subscribed;
- opt out of personalised ads in Android or iOS settings;
- uninstall the app, which removes on-device files we stored in the app sandbox.
To request a copy of what we hold, or deletion if the in-app control fails, use section 18. We may need to verify it is your account.
California / similar US state laws. We do not “sell” or “share” personal information for cross-context behavioural advertising in the sense of selling your log to data brokers. AdMob may still serve personalised ads on Free and Basic using the advertising ID. You can opt out as above. We do not use sensitive profile fields for advertising.
14. Children
Iron Habit is not directed at children under 13, and we do not knowingly collect personal information from children under 13 (COPPA). The in-app AI notice also tells users under 18 to speak to a parent or guardian and a clinician before following a training or meal plan. If you believe a child has created an account, contact us and we will delete it.
15. Health and fitness disclaimer
Iron Habit is a consumer fitness tracker and coaching aid. It is not a medical device, not a registered dietetic service, and not a substitute for a doctor, physiotherapist or registered dietitian. Calorie maths, AI meals and photo estimates can be wrong. Stop and get medical help if you feel pain, dizziness or shortness of breath. Do not use the app as your only guide if you are pregnant, have an eating disorder, take medication that affects diet or training, or are recovering from injury.
16. International transfers
We are not a US-only company in the sense of storing data only in one country. Our processors (Google Firebase, Google Play, Apple, Gemini, AdMob) operate globally. If you use the app from the EEA, UK or another region, your information may be processed in the United States or other countries. Google relies on its own transfer mechanisms (including Standard Contractual Clauses where applicable).
17. Changes
If we add a new data type, a new processor that sees personal data, or a new purpose, we will update this page and the “Last updated” date. Material changes will also be called out in an app update or an in-app notice when we can. Continued use after the effective date of a revised policy means you accept the revised policy, except where the law requires a fresh consent.
18. Contact
Operator: Iron Habit
Website:
iron-habit.com
Privacy requests:
info@iron-habit.com
For subscription billing problems, use the support for the store you subscribed in:
Google Play on Android, or Apple’s subscription and payments support on iOS.
For a data deletion that the in-app button cannot finish (for example a network failure
after you already signed out), email us from the same Google account you used in the app
and ask us to erase users/{your uid}.