Privacy Policy
KcalScan ("we", "us") is a nutrition tracking service operated by Tiago Fernandes. We respect your privacy and keep this policy in plain language: what we collect, why, who processes it, and the rights you have over it.
1. Information we collect
- Account information: your email address, name, and profile photo, provided by your sign-in method — Sign in with Google, or Sign in with Apple on iOS. KcalScan has no email-and-password accounts.
- Profile and health inputs: age, sex, height, weight and weight history, activity level, goals, health conditions you choose to declare, food preferences, and supplements. You provide these voluntarily so the app can personalize your nutrition targets; they include health-related data, and we process them only to deliver the service to you.
- Nutrition data: your meal logs, notes, and meal photos. A compressed preview of the photo is stored with your log; the full-resolution photo is sent for AI analysis (see section 3).
- Location (optional): if you use travel mode, your country/region — detected from device GPS (only with your permission), your timezone, or your manual selection. We do not track your movements.
- Health and wearable data (optional): if you connect Apple Health (iOS), Health Connect (Android), or Fitbit, we read steps, energy burned, exercise sessions, and sleep (details in section 5).
- Usage and diagnostics: analytics events about how the app is used (Google Analytics for Firebase) and crash/error reports (Sentry) so we can fix problems.
- On the marketing website: if you arrive via a referral link, a
kcall_refcookie stores the referral code for 30 days so sign-up credit goes to the right person. Our website analytics run in cookieless mode by default (Google Consent Mode with storage denied).
2. How we use your information
- Provide the service: log meals, compute nutrition, sync across your devices.
- Personalize: calculate calorie and nutrient targets from your profile, adjust them with wearable data if enabled, and power the AI coach.
- Analyze food photos and text with AI to estimate nutritional content.
- Manage subscriptions, trials, and payments.
- Communicate with you: service messages about your account, and — if subscribed — our newsletter, which you can leave with one click at any time.
- Improve reliability and prevent abuse (rate limiting, error monitoring, app integrity checks).
We do not sell your personal data, and we do not share it with third parties for their marketing.
3. AI processing of your photos and messages
Meal photos, food descriptions, and AI-coach conversations are processed by Google Gemini. If the primary AI service is unavailable, a request may be processed by a fallback provider, OpenAI, so the feature keeps working. Both are used under paid/commercial API terms in which the providers do not use your data to train their models; the providers may retain requests briefly (up to about 30 days) for abuse monitoring, after which they are deleted. We do not use your data to train AI models either.
4. Service providers
We use a small set of processors to run KcalScan:
- Google Firebase / Google Cloud — authentication, database, cloud functions, push notifications, analytics.
- Google Gemini and OpenAI (fallback) — AI analysis, as described above.
- RevenueCat — subscription management for App Store and Google Play purchases.
- Apple — Sign in with Apple, and App Store in-app purchases on iOS.
- Stripe — payments on the web. Your card details go directly to Stripe and never touch our servers.
- Sentry (EU-hosted) — error and crash reporting.
- Brevo — sending account emails and our newsletter.
- Fitbit (Google) — only if you connect your Fitbit account.
- Vercel — hosting of the website and web app.
5. Apple Health, Health Connect and wearable data
Connecting a health source is optional — every other feature works without it — and we only ever read what you explicitly grant.
- Apple Health (iOS) — read only. We read steps, active energy, resting energy, sleep, and workouts. KcalScan writes nothing to Apple Health.
- Health Connect (Android) — read, plus write if you opt in. We read steps, active and total energy burned, exercise sessions, and sleep. If you switch the option on, meals you log can also be written back as nutrition records so they appear in apps like Google Health and Samsung Health; you can switch it off in KcalScan or revoke it in Health Connect at any time.
- Fitbit — read only, and only if you connect your Fitbit account.
We use this data to calculate your Total Daily Energy Expenditure (TDEE), to power optional dynamic calorie targets, and to give the AI coach context about your day — for example, suggesting recovery-appropriate meals after a workout. When you use the AI coach, a short summary of your recent activity such as steps and energy burned may be included in the request so its advice reflects what you actually did; that request is processed as described in section 3.
Health data stays within your KcalScan account. We never use it for advertising or marketing, never sell it, and never share it with advertising networks, data brokers, or resellers. It is used solely for the app's health and fitness features and is never used to train AI models. This holds for data read from Apple Health, in line with Apple's HealthKit requirements, and for data read from Health Connect, in line with the Health Connect permitted-use policies. You can revoke access at any time in Apple Health, in Health Connect, or in your Fitbit account.
6. Data storage and security
- Data is encrypted in transit and at rest on Google Cloud infrastructure.
- Access is restricted; API abuse is limited by authentication, app-integrity checks (Firebase App Check), and rate limiting.
- A local copy of your recent data is kept on your device so the app works offline; it syncs when you're back online.
7. Your rights
Under the GDPR and similar laws, you can:
- Access and update your data — most of it directly in the app's Settings.
- Export your data — Settings → Export my data.
- Delete your account and all associated data — Settings → Delete account.
- Withdraw consent for optional features (wearables, travel mode, newsletter) at any time without affecting the rest of the service.
- Complain to your data protection authority (in Portugal, the CNPD).
8. Data retention
We keep your data while your account is active. When you delete your account, your data is removed from our systems within 30 days (residual copies in backups expire on their own rotation shortly after).
9. Children
KcalScan is not intended for anyone under 16, and we do not knowingly collect data from children. If you believe someone under 16 has created an account, contact us and we will delete it.
10. International transfers
Our providers may store data on servers outside your country. Where data leaves the EU/EEA, our providers rely on recognized safeguards such as EU Standard Contractual Clauses.
11. Changes to this policy
When we change this policy, we update the date at the top and, for significant changes, tell you in the app or by email.