Privacy
In short: there is no account and we do not ask for your name or email. Your log, saved photos and goal stay on your phone. Photos go for analysis only after you agree, are processed in the European Union and are not kept on the server. We have no ads and we do not track you for ads. Anonymous statistics and crash reports are sent only if you say “Yes” in the app, and you can change your answer any time in Settings.
Who is responsible for the data
The Calorel app and the calorel.ro website are made by Mihai Crisan, Cleodalabs, who is responsible for the data (the data controller). Write to contact@calorel.ro with any question about data.
What stays only on your phone
- The log: meals, foods, grams and saved photos (reduced in size).
- Frequent meals and the products whose labels you photographed.
- The daily goal and the details it is worked out from (age, height, weight, sex, activity). The calculation happens on the phone.
- The “Show scores” setting, the language and units you chose, and your answer to “Will you help me get better?”.
We do not receive this data. You delete it by deleting meals in the app or by uninstalling the app.
What the app sends to our server, and why
Before the first photo sent for analysis (of a meal or of a product label), the app asks whether you agree. With “Not now” it sends nothing. You can change the answer any time in Settings → “AI analysis”.
- The meal photo, when you choose to analyse it: to recognise the foods and portions. We send it to Google Gemini (Vertex AI), processed in the EU. We do not keep the photo after the answer.
- The name of a food you search for that is not in our list: to estimate its values, also with Gemini. We keep the name, with nothing about who searched for it, to know what is missing from the list.
- Written corrections that the app cannot understand by itself are analysed by AI and are not kept.
- The scanned barcode: to look the product up in our product database.
- The label photo of a product we could not find: Gemini reads the nutrition table. The photo is not kept. The values read (barcode, name, brand, pack weight and values per 100 g) go into the shared product database, so that anyone who scans the product finds it. They describe the product, not you.
- The app's language (Romanian or English), so the analysis answers in it.
The legal basis is the performance of the service you ask for (Art. 6(1)(b) GDPR). Under the Google Cloud terms, data sent to Vertex AI is not used to train Google's models.
The subscription and the free plates
- Payment is handled by Apple (App Store) or Google (Google Play). We do not see your card details or your account name.
- The subscription status is kept for us by RevenueCat (RevenueCat, Inc., USA): the app gives it an anonymous identifier generated on the phone, and RevenueCat receives from Apple or Google only what concerns the subscription (the product, the trial, renewals, cancellation). Our server asks RevenueCat, with this identifier, whether the subscription is active before each AI analysis. On iPhone, RevenueCat also receives Apple's advertising attribution token (AdServices), which says whether the install came from an Apple Ads campaign; it carries no identifier of you and no tracking across apps.
- The first three free plates: to count them, we note in our database on Google Cloud (EU) the anonymous identifier, how many were used and the time of the last one.
- App verification (Firebase App Check): Apple (App Attest) or Google (Play Integrity) confirms that the request comes from the Calorel app installed from the store, so the server cannot be used from other programs. We receive only the confirmation, no data about you.
The legal basis is the performance of the subscription contract and our legitimate interest in protecting the service (Art. 6(1)(b) and (f) GDPR). Transfers to RevenueCat, in the USA, are made with the safeguards required by the GDPR. The subscription terms are in the Terms and conditions.
Only if you say “Yes” to “Will you help me get better?”
At the first start, the app asks whether you want to help us. Only with “Yes” does it send:
- Usage statistics (Google Firebase Analytics): what happens in the app, for example “analysis done”, “meal saved”, “picture shared”, the score and the number of foods, the app's language, with an installation identifier given by Firebase. No name, no email, no photos and no advertising identifier of the phone; we do not use this data for ads. From the IP address, Google derives only the country and the approximate city, without keeping the address. We keep them for at most 14 months.
- Crash reports (Google Firebase Crashlytics): when the app crashes, what happened (the phone model, the system and app versions, the place in the code). No photos and no meal contents. Kept for 90 days.
- Corrections of meals from photos: on saving, which foods and grams the AI proposed and what you saved, how much you changed and your answer to “Did it guess right?”. No photo and nothing about you; they stay on Google Cloud, in the EU, and help us guess portions better.
The legal basis is your consent (Art. 6(1)(a) GDPR). You withdraw it any time in Settings → “Anonymous statistics”; from then on we send nothing. Firebase belongs to Google, which may process the statistics and crash reports in the USA too, under the EU–US Data Privacy Framework.
Technical data
Like any server, ours sees the IP address a request comes from. We use it on the spot, in memory, to limit the number of requests per minute (protection against abuse). The server's technical logs (time, IP address, type of request, without photos or content) are kept by Google Cloud for 30 days, for security and for fixing errors. The basis is our legitimate interest in keeping the service safe (Art. 6(1)(f) GDPR).
With nothing about the person, the server also notes the barcodes we cannot find and, for each AI analysis, how long it took and how much text the model processed, to know what is missing from the product database and what the service costs.
Where the data is and who processes it for us
The server, the product database and the AI analysis run on Google Cloud, in the European Union (the server and the product database in Belgium, the Gemini analysis in the EU region). Google acts as a processor, under the Google Cloud data processing contract. We work from the United Kingdom, for which the European Union has recognised an adequate level of data protection. We do not sell or give the data to anyone else.
App permissions
- Camera: for meal photos and for scanning barcodes.
- Gallery: only when you choose an existing photo yourself.
Your rights
You have the right to ask for access to the data, its correction or deletion, restriction of processing, its portability, and to object to processing. Because there is no account, we usually have no way to link any information to you; write to contact@calorel.ro and we will help with whatever we can identify. You can also lodge a complaint with the Romanian supervisory authority (dataprotection.ro), with the UK Information Commissioner's Office (ico.org.uk), or with the authority of the country you live in.
Children
Calorel is not made for children under 16. The daily goal calculation is for adults only.
The calorel.ro website
To know which pages are read, the site uses Cloudflare Web Analytics (Cloudflare, Inc.): it counts visits per page, the page you came from, the country and the type of device, without cookies and without identifying people; Cloudflare does not keep the IP address and does not build profiles. The basis is our legitimate interest in understanding how the site is used (Art. 6(1)(f) GDPR). We have no ads. Fonts are served from the site, not from third parties. The site is hosted by Google (Firebase Hosting), which, like any server, sees the IP address a page is opened from; Google keeps it for a limited period, a few months, for security and for statistics about the hosting. The basis is our legitimate interest in keeping the site safe (Art. 6(1)(f) GDPR).
Changes
If we change what data we use, we update this page and the date at the top before the change goes into the app. The Romanian version at calorel.ro/confidentialitate is the original; this is its translation.