1. Introduction
BioTrack ("the App", "we", "us") is a health and fitness tracking app for iOS and Android. We are committed to protecting your privacy and your personal data.
This Privacy Policy explains what data we collect, how we use it, who we share it with, and what rights you have over it.
By using BioTrack, you accept the practices described in this policy.
2. Data We Collect
2.1 Account and Identity Data
When you create a BioTrack account, we collect:
- Email address: the address provided by Google or Apple when you sign in. If you choose "Hide My Email", Apple provides a relay address
- Name: the name shared by the sign-in provider, usually only on your first sign-in
- Profile photo: your Google profile picture, if available, or one you choose from your photo library. Apple does not provide a profile photo
- Unique identifier: a UUID generated automatically for your account
2.2 Profile Data
To personalize your experience, you can provide:
- Date of birth and age
- Gender (male, female, other)
- Height and body weight
- Body mass index (BMI), calculated automatically
- Fitness goal (lose weight, gain weight, maintain)
- Target weight and start/end dates
- Physical activity level
- Injuries or physical limitations
- Equipment available for training
- Preferred training times
2.3 Health Data (Apple HealthKit and Health Connect)
With your explicit permission, BioTrack reads the following data from Apple Health (iPhone) or Health Connect (Android):
Activity:
- Daily step count
- Active calories
- Basal calories (resting metabolism)
- Exercise minutes
- Stand hours
Cardiovascular:
- Heart rate
- Resting heart rate
- Heart rate variability (HRV)
- Blood pressure (systolic and diastolic)
- Blood oxygen saturation (SpO2)
- Respiratory rate
Body Measurements:
- Body weight
- Height
- Body mass index (BMI)
Sleep:
- Total sleep duration
- Sleep stages (awake, REM, core, deep)
- Wrist temperature during sleep
Workouts:
- Workout history recorded in Apple Health
Hydration:
- Logged water intake
If you allow it, BioTrack also writes the following to Apple Health or Health Connect:
- Workouts completed in BioTrack
- Weight and height entered manually
- Water logged in BioTrack
- Dietary calories and macronutrients (protein, carbohydrates, fat)
2.4 Nutrition Data
When you log meals in BioTrack:
- Meal name and type (breakfast, lunch, dinner, snack)
- Nutritional values: calories, protein, carbohydrates, fat, saturated fat and fiber
- Serving size and unit
- Food brand (if applicable)
- Barcode (scanned with the camera)
- Date and time of each entry
- Custom calorie and macronutrient goals
- Hydration log (in milliliters)
- Meal plans you create or configure in the App
2.5 Physical Activity Data
When you log workouts in BioTrack:
- Workout type (strength, cardio, flexibility, etc.)
- Duration, calories burned, date and time
- Exercises: name, sets, reps, weight and duration
- Custom routines and training plans
- Strength goals and progress (for example, squat or bench press)
- Daily activity statistics and streaks
- Body progress: body fat, muscle mass and measurements (chest, waist, hips, arms)
2.6 Location Data (GPS)
During running, cycling or walking sessions:
- Real-time GPS coordinates of your route
- Distance covered and speed
- GPS signal accuracy
- Background updates: BioTrack may access your location while the App is in the background to record your full route
Important: the GPS coordinates of your routes are kept only in your device's memory for the duration of the session and are not saved. Only workout totals, such as distance and average speed, are synced to the cloud. Coordinates are also not included in JSON backups or in files you share.
2.7 Data Processed by AI Features
If you use nutrition label photos:
- Images: photos of nutrition labels
- OCR context: text recognized on the device, when it helps improve extraction
If you use the Coach:
- Conversation: your message, up to 16 recent turns and the generated reply
- BioTrack context: relevant profile, preference and goal data, routine and workouts from the last eight weeks (with set detail), recent nutrition, recovery, sleep, steps and weight entries, trends the App calculates from that data, and the Coach memory
- Optional images: photos you attach so visible information can be extracted
- Optional audio: recordings you attach to obtain a transcription
- Data the Coach looks up: while replying, the Coach can ask the App for specific data from your account: workouts (up to 180 days) and their statistics, meals (up to 14 days per lookup), weight (up to one year), health and recovery (up to one year: sleep and naps, HRV, SpO₂, respiratory rate, wrist temperature, heart rate, steps and energy), height and date of birth, routines, meal plans, goals, memory and searches in your exercise and food catalogs, including by barcode
- Coach changes: entries and edits the Coach makes or proposes in your data. They apply directly or wait for your confirmation depending on the mode you choose (section 5.4)
2.8 Notifications
- Notification permission status (granted or denied)
- Scheduled notifications: hydration, workout and nutrition reminders
2.9 Feedback
If you send us feedback from the App, it is sent by email from your Mail app and includes:
- The feedback text and type (suggestion, bug, improvement, other)
- A screenshot, if you choose to attach one
- Device information (model, operating system version and App version)
- On iPhone, crash or hang reports generated by iOS for the App, if there are any and you keep the device information option enabled. They contain technical details of the failure, not your logs or account data; they are stored only on your device and deleted once sent
2.10 Technical Data
- Session identifiers (authentication tokens)
- Connection status with services (HealthKit or Health Connect, Supabase)
- Settings (HealthKit or Health Connect export, units)
- Onboarding status (completed or pending)
3. How We Use Your Data
We use your data only for the following purposes:
3.1 Providing the Service
- Showing your health and fitness progress in dashboards and charts
- Logging and analyzing workouts, meals and hydration
- Calculating metrics such as BMI, calories burned and macronutrient goals
- Syncing your data across your devices
3.2 Personalization
- Adapting meal plans to your calorie and macronutrient goals
- Filling in nutritional data from label photos to speed up food logging
- Letting the Coach use relevant BioTrack context to answer and to log or change your data when you ask, according to the change mode you choose
3.3 Synchronization
- Keeping your data up to date between BioTrack and Apple Health or Health Connect (both ways)
- Syncing your profile and records to the cloud so you can access them from several devices
- Receiving real-time updates over WebSocket
3.4 Notifications
- Sending hydration, workout and nutrition reminders
- Letting you know about your progress and achievements
3.5 Improving the Service
- Analyzing general usage patterns without identifying individual users
- Fixing technical issues you report through feedback
4. Data Sharing with Third Parties
4.1 Google and Apple (Authentication)
- Google: email address, name and profile photo, if available
- Apple: real or relay email address and name, if Apple provides them. Apple does not share a profile photo
- Purpose: authentication with an identity token validated by Supabase
- Google's policy: https://policies.google.com/privacy
- Apple's policy: https://www.apple.com/legal/privacy/
4.2 Supabase (Cloud Storage)
- Data shared: all your account data (profile, health, nutrition, activity and synced historical data)
- Purpose: secure storage, sync across devices and real-time updates
- Security: PostgreSQL database with Row Level Security (RLS). Each user can only access their own data
- Supabase's policy: https://supabase.com/privacy
4.3 OpenRouter (Artificial Intelligence)
- Data shared for labels: the image in base64 and the minimum OCR context needed to extract nutritional values
- Data shared for the Coach: your message, recent history, relevant BioTrack context, the data the Coach looks up and the outcome of its changes and, if attached, an image or audio in base64
- Purpose: single gateway for nutrition vision, extracting information from images, audio transcription and contextual Coach replies
- Models currently used:
google/gemini-3.1-flash-litefor vision and transcription, andopenai/gpt-6-lunafor Coach replies and its memory - Your permission: before anything is sent for the first time, the app asks for your permission to share this data with the AI. If you do not give it, the Coach does not open and labels are only read on your device; the rest of the app works the same. You can withdraw it at any time from the Coach’s info, and nothing more is sent from then on. The web version does not ask for this permission separately: data is only sent when you write to the Coach or choose to analyze a label photo, so if you do neither, nothing is sent
- OpenRouter's policy: https://openrouter.ai/privacy
4.4 Open Food Facts and USDA FoodData Central (Food Databases)
- Data shared: only a product's barcode (Open Food Facts) or search text (Open Food Facts and USDA), when you scan a barcode, search for a food or ask the Coach to look it up. No account data is sent. Codes in a chat photo are read on your device
- Purpose: getting the product's name and nutrition values
- Open Food Facts' policy: https://world.openfoodfacts.org/privacy
- USDA's policy: https://www.usda.gov/privacy-policy
4.5 Apple HealthKit and Health Connect
- Data shared: health metrics (read and write, according to your authorization)
- Purpose: two-way sync of health data
- Apple's policy: https://www.apple.com/legal/privacy/
- Google's policy: https://policies.google.com/privacy
4.6 Our Commitments
- We DO NOT sell your personal data to third parties
- We DO NOT share your data for advertising purposes
- We DO NOT use Apple HealthKit or Health Connect data for advertising or marketing
- We DO NOT track you for advertising or use advertising identifiers
- We DO NOT share data with data brokers or third-party analytics companies
5. Artificial Intelligence: Transparency
5.1 How Label Analysis Works
BioTrack uses OpenRouter as its single gateway to analyze photos of nutrition labels. When you use this feature:
- The App tries to extract the data with on-device OCR.
- If on-device OCR is not enough, the image is sent to the Supabase proxy.
- The proxy calls OpenRouter to obtain the nutritional data as structured JSON.
- The response is used to fill in the food form.
The web version has no on-device OCR: when you analyze a photo, the image goes straight to the proxy.
5.2 Limitations
- Extraction may contain errors if the label is blurry, incomplete or in an unusual format.
- You should review the extracted data before saving the food.
- Usage limit: the service accepts a maximum number of requests per minute and per day for each account.
5.3 Current Models and Routing
- Nutrition label analysis:
google/gemini-3.1-flash-lite - Coach visual extraction and transcription:
google/gemini-3.1-flash-lite - Coach replies and memory:
openai/gpt-6-luna - Active backend modes:
vision,vision_extract,audio_transcribe,trainer_chatandmemory_suggest - The Coach can log and change supported data. The App validates every change and, depending on the change mode you choose, applies it directly or asks for your confirmation (section 5.4).
- The Coach memory updates automatically from the conversation. You can review it, add entries and forget them in Coach → Coach info → memory.
5.4 How the Coach Works
- You send text and, optionally, an image or a recording.
- The AI proxy turns the image into visible information or the audio into a transcription.
- The App gathers relevant BioTrack context and sends your message, up to 16 recent turns and that context to the text model.
- When it needs more information, the Coach asks the App for specific data (for example, a month of workouts or one day's meals). The App reads it on your device and sends it to the model within the same reply.
- The Coach can log or change data: meals, water, weight, sleep and naps, workouts and cardio (today or up to 30 days back), today's workout and its timer, the gym, your own foods and favorites, routines (including flexibility routines), meal plans, goals and targets, height and date of birth, and its memory. Every change goes through the same validation and sync as if you made it yourself.
- You choose how changes apply in Coach → Coach info → changes. Always confirm: every change appears as a card and only applies if you confirm it. Hybrid (default): new entries (meals, water, weight, sleep, workouts, cardio, your own foods and memories) and controlling the workout in progress (prepare, start, pause, resume, gym) apply right away; editing or deleting existing data, finishing the workout and changing today's workout, routines, meal plans, goals or your body data asks for confirmation. Automatic: the Coach applies valid changes directly. In every mode, each change appears in the chat as a card showing what changed; many entries and settings can be undone from their card while that data is still as the Coach left it.
- After the conversation, the
memory_suggestmode summarizes what you shared into the Coach memory for future replies (for example injuries, equipment, schedule or an agreed plan). Temporary episodes expire on their own. You can review and forget each memory, or all of them, in Coach → Coach info → memory. - Your messages, the assistant's and the change cards of each reply (what was proposed, applied, discarded or undone, and the earlier values needed to undo a change) are stored in Supabase to keep the history and show it the same way on your devices. Each coach has its own conversation, and you can delete it at any time; deleting it does not delete the memory. The photos and voice notes you send it are kept only on your device (section 6.1). While the Coach is replying, the server keeps each part of the reply the model generates so it can be finished even if you close the App or the connection drops, without asking the model again; if the reply needs nothing from your device, the server also adds it to the conversation. If the reply arrives while the chat is closed or the App is in the background, you get a local notification (if you have allowed them).
- Coach notifications (off unless you pick a level in Coach → Coach info → Coach notifications): depending on the level, after you finish a workout, in the morning when a session is planned or in the evening when you are clearly behind on food or steps, the app may ask the model for a short message using the same context as a normal reply (no tools: it does not change data). With “Only what matters” it only writes in the morning when your sleep or recovery is clearly off; with “Very attentive” it may also comment on the planned session in the morning even when everything is fine. The evening check looks on your device at the meals you logged today (only if you usually log them) and your steps from Health (only if they can be read at that moment), and only asks for a message when something is clearly below your goal. If there is nothing specific to say, nothing is sent. At most one every three days with “Only what matters”, one a day with “Normal” and two a day with “Very attentive”, never at night and never right after you talked to the Coach. The chosen level and whether the notification shows the coach's picture (as a thumbnail, from your device) are saved to your account with the rest of the Coach settings, so it stays the same on your devices. The message is stored in the conversation like any other and reaches you as a local notification from your device; we do not use push notifications or third-party servers to send it. The morning and evening checks use iOS background refresh, which the system may delay or skip.
6. Storage and Security
6.1 Local Storage (on Your Device)
- UserDefaults: preferences, goals, profile data and profile photo, routines and plans, drafts of workouts in progress, cached copies of your records and foods so the App can work offline, and the queue of changes waiting to sync (which may contain workout, nutrition, hydration or health data)
- Protected files: personal recovery notes and a copy of the photos and voice notes you send to the Coach (with what you wrote and the transcript), so you can see them again in the chat and in the Coach's info. They are kept only on this device, with iOS data protection, and are not uploaded to Supabase. They are deleted when you delete the Coach conversation, remove them one by one, or delete your account.
- Coach contacts: each coach has a separate conversation. Memory about you and the approval mode are shared. You can give each coach a different nickname and photo. Nicknames and photo paths are stored with your account in Supabase; photos are reduced to at most 512 pixels and kept in private storage that only you can access, with a protected copy on your device. The nickname is sent to the model so it knows what you call it; the contact photo is not sent to the model. You can restore the default name and photo. Profile exports include these contacts and their photos. Their photos are removed from private storage before your account is deleted.
- iOS Keychain: Supabase authentication tokens (access token and refresh token), protected by the operating system's encryption
- Temporary files: images and audio selected or recorded for AI (except the Coach copy described above), and ZIP exports you generate. Temporary images and audio are deleted after processing or cancelling. ZIP files may remain after sharing; the App attempts to remove them when it starts or generates a new export
UserDefaults is not storage encrypted by the App: this data is protected by the device's own security and encryption.
On Android, the system equivalents are used: the App's private storage for the data above and the Android Keystore for authentication tokens.
6.2 Cloud Storage (Supabase)
- All your account data is synced to a PostgreSQL database hosted by Supabase
- Row Level Security (RLS): each user can only read and modify their own data
- Transmission: all communication uses HTTPS (TLS) and Secure WebSocket (WSS)
- Authentication: JWT tokens with controlled expiry and automatic refresh-token rotation
6.3 Security Measures
- We do not store passwords on the device (authentication is delegated to Google or Apple)
- Private credentials and AI provider keys are never included in the App. The public Supabase URL and anonymous key are included in the App, and their effective access is limited by authentication and RLS
- Account deletion runs through a secure RPC function on the server, not from the client
- No third-party analytics or advertising tracking
7. Your Rights
Wherever you are, we offer you the following rights:
7.1 Right of Access
You can view all your personal data in the App at any time: profile, workout history, nutrition log and health data.
7.2 Right to Rectification
You can correct or update your personal data (name, weight, height, date of birth, sex, goals) in the Profile section.
7.3 Right to Data Portability
You can export the categories and dates you select from "Export Data" in your profile, as a ZIP file of CSV spreadsheets: readable ones in your units and every table in full as it is stored. The App reports omitted sections if they are unavailable. This is not a complete backup of your device. Depending on your selection, the file includes:
- Profile and preferences
- Nutrition and meal history
- Workout and exercise history
- Health data (heart rate, sleep, HRV, SpO2, temperature)
- Historical data from synced tables kept for compatibility
7.4 Right to Erasure
You can permanently delete your account from "Delete Account" in your profile. This action:
- Runs a secure server function that deletes all your data
- Deletes your authentication record
- Cascades the deletion to all associated data in every database table
- Deletes your account's local data from the device
- Cannot be undone
7.5 Right to Withdraw Permissions
You can withdraw any permission granted to BioTrack at any time:
| Permission | How to withdraw it |
|---|---|
| Apple HealthKit | iOS Settings > Privacy & Security > Health > BioTrack |
| Health Connect (Android) | Health Connect app > App permissions > BioTrack |
| Other permissions on Android | Settings > Apps > BioTrack > Permissions |
| Camera | iOS Settings > BioTrack > Camera |
| Location | iOS Settings > BioTrack > Location > "Never" |
| Photos | iOS Settings > BioTrack > Photos |
| Microphone | iOS Settings > BioTrack > Microphone |
| Notifications | iOS Settings > BioTrack > Notifications |
| Motion sensors | iOS Settings > BioTrack > Motion & Fitness |
7.6 Right Not to Use AI
You can use BioTrack to track your health, nutrition and exercise without analyzing label photos or using the Coach. AI features are optional.
8. System Permissions
BioTrack requests the following permissions, all optional and revocable:
Camera
- Use: scanning food barcodes and photographing nutrition labels
- When requested: the first time you scan a product or take a photo
Location (including background)
- Use: GPS route tracking during running, cycling and walking activities
- When requested: the first time you start an activity with route tracking
- Background: lets the App record your full route even when the screen is off
Apple HealthKit and Health Connect
- Use: reading and writing health data for dashboards and sync
- When requested: during onboarding or when you enable the integration
Photos
- Use: choosing images from your library to analyze nutrition labels, attach to the Coach or use as your profile photo
- When requested: the first time you attach an image
Microphone
- Use: recording an optional voice message to transcribe and send to the Coach
- When requested: the first time you record audio in the Coach
Notifications
- Use: hydration, workout and nutrition reminders
- When requested: during onboarding
Motion Sensors
- Use: calculating cadence and counting steps during physical activity
- When requested: when you start a tracked activity
9. Data Retention
- Active data: kept while your account is active
- Account deletion: when you delete your account, all your data is deleted immediately through the
delete_my_account()RPC function, which performs a cascading deletion, and the App also deletes that account's local data - Signing out: signing out removes the authentication tokens and the active session from the device. The rest of your account's local data (preferences, caches, drafts and changes waiting to sync) stays on the device so you do not lose unsynced changes when you sign back in. To delete it, delete your account or uninstall the App
- Supabase backups: automatic database backups are kept according to Supabase's retention policy
- Coach conversations: messages and cards are stored in Supabase per coach. The App retains up to 200 recent messages per coach and a local copy of their cards. You can clear one chat without deleting others or the shared memory. Deleting your account removes all conversations. The parts of each reply the server keeps to finish it (section 5.4) are deleted after two days or when you clear a chat.
- Coach memory: memories are stored in Supabase until you forget them in Coach → Coach info → memory, they expire (temporary episodes) or you delete your account
- AI attachments: the App sends images and audio through the proxy for processing. Their retention by the provider is governed by the provider's policy and contractual terms
10. Children
BioTrack is not intended for children under 16. We do not knowingly collect data from children. If you are a parent or guardian and believe your child has provided personal data through BioTrack, contact us so we can delete it.
11. International Data Transfers
Your data may be processed on servers located outside your country of residence:
- Supabase: cloud infrastructure (see Supabase's documentation for specific locations)
- OpenRouter: AI processing servers (see OpenRouter's policy)
- Google: global authentication servers
- Apple: authentication servers, if you choose Sign in with Apple
All transfers are carried out with appropriate safeguards (encryption in transit and at rest).
12. Changes to This Policy
We may update this Privacy Policy. If we make material changes:
- We will update the "Last updated" date at the top of this document
- We will notify you in the App
- Continuing to use BioTrack after the changes means you accept them
13. Contact
If you have questions about this Privacy Policy or want to exercise your rights:
- Email: biotrackapp@gmail.com
- In-app feedback: Profile > Send Feedback
BioTrack: your health and fitness companion Version 1.0 | September 2026