Saldo

App Privacy Policy

DCZT built Saldo for the Google Play Store and App Store. DCZT is the trade name under which I, an individual developer in the Czech Republic, publish my apps. Saldo is free to download and may offer optional paid upgrades.

This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decides to use my Service.

The Personal Information that I collect is used for providing and improving the Service, as described below. I will not use or share your information with anyone except as described in this Privacy Policy.

The terms used in this Privacy Policy have the same meanings as in the Terms of Use, unless otherwise defined in this Privacy Policy.

Who is responsible for your data

The controller of your personal data under the EU General Data Protection Regulation (GDPR) is DCZT, an individual developer in the Czech Republic, support@dczt.dev. I am not required to appoint a data protection officer; for anything about your data, write to me at that address.

Information Collection and Use

Saldo does not ask you to create an account. Apart from the usage statistics described under "Analytics" and the AI requests described under "AI processing", which pass through my own server without being stored, I do not store personal data about you on servers. What you create in the app stays on your device (see "Data stored on your device" below), apart from what you choose to send for AI processing (see "AI processing" below).

The app uses the third-party services listed below, among other things to show advertising. Each one receives only what it needs for the purpose shown next to it, and each has its own privacy policy, linked here, which describes exactly what it collects and how you can exercise your rights with it:

Advertising

The free version of Saldo is paid for by ads. Ads are provided by third-party advertising partners, which compete for each ad through Unity LevelPlay mediation. The advertising partners that may serve ads in the app are Google AdMob, Unity Ads, ironSource Ads (Unity LevelPlay), AppLovin, Meta Audience Network, Mintegral.

To show and measure ads, these partners receive information about your device: the advertising identifier of your device (Google Advertising ID on Android, IDFA on iOS - where you have allowed it), your IP address (from which they derive an approximate location such as your country or city), device model, operating system and language, and information about the ads shown and how you interacted with them. They may use this to show you ads that are more relevant to you and to measure the performance of their campaigns, including across other apps and websites. They decide themselves how they use this data, as independent controllers under their own privacy policies.

Your choices. In the European Economic Area, the United Kingdom and Switzerland the app asks for your consent before personalized ads are shown, and you can change that choice at any time from the app's settings ("Change ads consent"). If you decline, you still see ads, but they are not personalized. On iOS the app asks for permission to track through Apple's App Tracking Transparency prompt; if you decline, your advertising identifier is not shared. On any device you can reset or delete your advertising identifier, or opt out of personalized ads, in the system settings (Android: Settings > Google > Ads; iOS: Settings > Privacy & Security > Tracking, and Apple Advertising). Buying the ad-free upgrade removes the ads entirely, apart from rewarded videos you choose to watch.

Analytics

Saldo sends usage statistics to AnalyticsInsights, an analytics service I run myself on servers I rent from Hetzner Online GmbH in Germany and Finland (EU). Hetzner hosts the server and its backups for me and does not use the data for anything else; no other company receives it. The statistics are: a random identifier created when the app is first opened (it is not your advertising identifier and is not linked to your name, email address or any account); your device model, operating system version, app version, language and time zone; your country, looked up from your IP address, which is then discarded and never stored; when you open and close the app and for how long; which features you use and how they turn out (for example whether an AI analysis, a barcode lookup or a meal plan worked, how a food was logged, starting and ending a fast with its planned and actual length in hours, adding a supplement or a workout, exporting your data, turning Health sync on or off, and whether your goal is to lose, keep or gain weight), how you move through the set-up and subscription screens, and where you heard about the app if you answer that question; in-app purchases (the product, its price and currency, whether it started a free trial, and the store's transaction number - never payment details); ads shown and their estimated revenue; and error reports, including the crash reports described below. Everything is encrypted in transit. I use this only to understand how the app is used, to fix errors and to improve it; I do not use it to show you ads, and I do not sell it.

If the app crashes, stops responding (an "ANR" on Android) or freezes (a "hang" on iOS), or Android closes it because your device ran low on memory, the app sends a report about it to AnalyticsInsights, usually the next time you open it. A report says what kind of problem it was and when it happened, and contains the error message and the technical stack trace (the parts of the app's code that were running; for an ANR, those of all the app's threads), together with the device and app details listed above. Email addresses, user names in file paths and app folder identifiers are removed from error messages and reports when they arrive.

In the European Economic Area, the United Kingdom and Switzerland, the identifier is kept on your device only if you agree in the consent form the app shows. If you do not, the app still sends statistics and crash reports but stores no identifier, so each time you use it is counted on its own and cannot be linked to the next. The legal basis is your consent for the identifier, and my legitimate interest in keeping the app working and improving it for statistics without an identifier and for error and crash reports. The identifier is removed from stored statistics after 36 months; the statistics themselves are kept without it.

To help me read these statistics I may use an AI assistant (Claude, by Anthropic), which acts as my service provider. It works with the statistics described above, mostly as totals.

Analytics never receives what you eat: no food names, descriptions, photos or amounts, no weight, height, birth date or other body measurements, nothing from your profile and no Apple Health or Health Connect data. Error messages that could contain such data are filtered out on your device before anything is sent. Older versions of Saldo send usage statistics and error reports to GameAnalytics (see the list above), and updating the app ends this.

Purchases

In-app purchases and subscriptions are processed by Apple (App Store) or Google (Google Play). I never see or store your payment details; the app only keeps a record on your device of which purchases are active, so that it can unlock what you paid for.

Data stored on your device

Everything you enter in the app - your profile (name, birth date or year, sex, height, activity level and goal), your food diary with photos of your meals, your weigh-ins, exercise, fasts and fasting week, supplements, your own foods, your food preferences, the meal ideas and plans you keep, your plan and settings - is stored only on your device and is not uploaded to me. If you choose to share something from the app, it is handed to the app you pick through your device's share function and leaves your device only then. Deleting the app deletes the copy on your device, and I cannot restore it.

Camera and photos

The app uses your camera only while you photograph a meal, a nutrition label, your fridge or a menu, or scan a barcode, and can turn on the camera's light to help. Barcodes are read on your device. You can also pick a photo in your device's photo picker; the app sees only the photos you pick. Photos you log are saved with your meals in the app's storage on your device; photos of your fridge or a menu are only sent for AI processing (see "AI processing") and are not kept.

Barcodes and the food database

When you scan a barcode, the app asks Open Food Facts, a free public food database run by a non-profit association in France, for the product with that number. The request contains the barcode number, the app's language (to get the product's name in it) and a label that identifies the app and its version ("Saldo/<version> (https://dczt.dev)"). Like any server on the internet, Open Food Facts receives your IP address with the request; nothing else about you is sent.

When you search for a food by name, the app also asks Open Food Facts for packaged foods that match, once you pause typing and the search has at least three letters. That request contains the words you typed, the app's language and the same label; your IP address reaches Open Food Facts as with a barcode, and nothing else about you is sent.

The food database built into the app (based on USDA FoodData Central) is part of the app, and searching it happens on your device.

Apple Health and Health Connect

Health sync is optional and off until you turn it on in the app and allow it in your device's permission screen. When it is on, the app writes each meal you log, with its calories and nutrients, to Apple Health (iPhone) or Health Connect (Android), and updates or removes those entries when you change or delete the meal; it only ever changes entries it wrote itself. It also writes the weigh-ins you enter in the app, and reads your weight entries, including those from smart scales and other apps, to show them in your weight log. Where the app offers it, it may also ask to read steps, water, body fat and waist measurements to show them next to your plan, and your workouts with the active energy they burned (from a watch or another app) to show them as exercise in your diary; it asks for each type separately, and you can refuse any of them. Whether your steps and workouts change your calorie target is your choice in the plan's settings.

Health data stays on your device. It is never sent to me, to my servers, to OpenAI, to advertising or analytics services or to any other third party; it is never used for advertising, marketing, profiling or data mining, and it is never sold. The only exceptions are numbers worked out partly from it, and only when you ask for an AI feature that needs them: the weekly review's averages of your steps, water and weight trend, after you agree to it, and, when your activity adjusts your calories, the calorie target that meal ideas and plans are made to fit (see "AI processing"). The only related thing analytics records is that you turned Health sync on or off. The app's use of information received from Health Connect adheres to the Health Connect Permissions policy, including the Limited Use requirements, and its use of Apple Health data follows Apple's HealthKit rules.

You can turn Health sync off in the app at any time, and withdraw the app's access in Settings > Health > Data Access & Devices on iPhone, or in Health Connect's app permissions on Android. Entries the app already wrote stay in Apple Health or Health Connect until you delete them there.

Widgets, controls and shortcuts

Home Screen and Lock Screen widgets, Control Center controls, Quick Settings tiles and app shortcuts show your day's calories, macros and fasting timer and let you start logging quickly. To do this, the app shares a small summary of your day with its widgets on your device (on iPhone through a shared App Group container). The summary stays on your device and is not sent to me. Widgets on your Lock Screen can be seen by anyone who picks up your phone.

Voice logging

Where the app offers voice logging and you use it, it asks for microphone and speech recognition permission and uses your device's speech recognition (Apple's speech recognition on iPhone, Android's speech recognition service on Android) to turn what you say into text. Depending on your device and settings, Apple or Google may process the audio on their own servers under their privacy policies. The app does not record or keep the audio and does not send it to me; the text it produces is treated like a typed description (see "AI processing").

Exports and backups

You can export your data as CSV files or as a full backup, and restore a backup. The files are created on your device and go only where you choose to save or share them. A backup contains your diary with photos, your weigh-ins, exercise, fasts, supplements, plan and profile, so keep it somewhere safe: anyone who has the file can read it. Keeping backups is your responsibility; I do not have a copy of your data and cannot recover it.

You can also make a PDF report of a period you choose, for example for a dietitian or a doctor. It is made on your device and contains your averages, targets and weight trend and, if you include them, your days in a table, your nutrients, every food you ate and your age, sex, height and goal. Like an export, it goes only where you share it.

AI processing

When you photograph or pick a photo of a meal or a nutrition label, describe a meal in words, or tell the app what an estimate got wrong, the app sends the photo (reduced to 512 pixels and sent as a JPEG), the text you typed or, for a correction, the foods and amounts of the estimate with your correction, the app's language, and a random identifier the app creates for this purpose only (it is not your advertising identifier or the analytics identifier) to saldo.dczt.dev, my own server, hosted for me by Hetzner Online GmbH in the EU, which passes the photo or text and the language on to OpenAI in order to estimate the food's name, portion, calories, nutrients, ingredients and allergens. My server does not store the photo, the text or the result, and does not log them: its log records only the kind of request, whether it worked and how long it took. To stop a single device or network from running up costs, it counts each day how many analyses come from each random identifier and each IP address (for IPv6, its network block); these counts are kept only in the server's memory and are deleted at midnight UTC every day, or sooner when the server restarts. Your IP address and the identifier are never passed on to OpenAI, and the server asks OpenAI not to store the request ("store: false"). Your profile, your diary, your weight and your Apple Health or Health Connect data are not sent with it. A scanned barcode is not sent to the AI (see "Barcodes and the food database"). Versions of the app before 2.0, when it was called Food Cal AI, sent the photo, the text or the name of a scanned product, with the app's language, directly from your device to OpenAI, which then also received your IP address.

Calorie and nutrient values, ingredients and allergens are estimates. They can be wrong, especially for mixed or home-cooked dishes, and they are not medical, dietary or nutritional advice. Talk to a doctor or a registered dietitian before making decisions about your diet or health (see the terms of use).

When you ask for meal ideas, photograph your fridge or a restaurant menu, or ask for a meal plan (Pro features), the app sends what the request needs - for ideas, a fridge or a menu, what is left of the day's calorie and macro targets and the meal you chose; for a meal plan, your daily targets, the number of days and the meals; for a fridge or a menu, its photo (reduced to 1024 or 1600 pixels and sent as a JPEG) - and each time your food preferences: your diet, foods you avoid and foods you like, your notes for the AI, servings, budget, cooking time and the names of ideas you hid, with your energy unit, the app's language and the same random identifier to my server saldo.dczt.dev, which passes all of it except the identifier on to OpenAI in order to suggest meals, recipes, the dishes on the menu that fit you, or a plan with its shopping list. My server does not store the photos, your preferences or the answers, and logs only the kind of request, whether it worked and how long it took. The app does not keep the photo of your fridge or a menu. Foods you avoid and your notes are your own words and can reveal allergies, intolerances or religious or ethical choices, so write only what you are happy to send; photos should not show people or documents. Your profile, individual meals and weigh-ins are not sent. Ideas, plans and shopping lists you keep are saved on your device.

Meal ideas, recipes, menu suggestions and plans are generated by AI. Their calories and nutrients are estimates, and the AI can miss an ingredient you asked to avoid: if you have an allergy or intolerance, always check the ingredients yourself. They are not medical, dietary or nutritional advice.

When you ask for the weekly review (a Pro feature), after agreeing to it the first time, the app sends your last week's numbers - how many days you logged, your average calories, protein, carbs, fat and fibre against your targets, your diet style, your goal rate, your estimated energy expenditure, your weight trend and how it changed, and, where you have them, your average steps, water and fasts - with your units, the app's language and the same random identifier to my server saldo.dczt.dev, which passes the numbers and the language (without the identifier) on to OpenAI in order to write a short review of your week. Before the first review the app shows you what is sent and asks for your agreement. No foods, photos, names, notes, birth date or individual meals or weigh-ins are sent, and my server does not store the numbers or the review. Your steps, and some of the water and weigh-ins behind these averages, can come from Apple Health or Health Connect (see "Apple Health and Health Connect"). The app keeps the last review on your device and writes a new one at most once a day.

The review is written by AI. It can be inaccurate or unsuitable for you and is not medical, dietary or other professional advice.

This only happens when you ask for it; nothing is sent for AI processing in the background, and what is sent is used only to produce your result. OpenAI processes it as my service provider under its data processing terms. According to OpenAI's API data usage policy, data sent through OpenAI's API is not used to train OpenAI's models, and OpenAI keeps it in its abuse monitoring logs for up to 30 days, or longer only where the law requires it or where it is needed to investigate misuse, as described in its privacy policy and its API data controls. OpenAI is based in the United States (see "International transfers"). Please do not include personal details you do not want to share, such as names, faces, health records or account numbers, in what you send.

Notifications

With your permission, the app schedules local notifications on your device to remind you, at the times you choose, to log a meal or your day, drink water, weigh yourself, start a planned fast or take a supplement, to tell you when a fast reaches its goal, to remind you to log your meals when you have not opened the app for a while and, if you start a free trial, before the trial ends. They are created and delivered by your device itself, no data is sent to me to do this, and you can turn them off at any time in your device's notification settings.

Log Data

When something goes wrong in the app, it sends the error and crash reports described under "Analytics" to AnalyticsInsights, my own analytics server. They contain the device and app details listed there, but never your IP address. If you have allowed your device to share analytics with app developers, Apple and Google may also share anonymous crash reports and usage statistics with me; you can change this in your device's privacy settings.

Cookies

Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. The app itself does not use cookies. Some of the third-party services listed above, such as the advertising partners, may use cookies or similar technologies (for example identifiers stored on your device) to provide and measure their services, as described in their privacy policies and subject to the choices described in this policy.

Service Providers

Some companies process personal data on my behalf, as my service providers (processors), and may use it only to provide their service to me: Hetzner Online GmbH, which hosts my own servers in the EU; OpenAI, which processes the AI requests you make; Anthropic, whose AI assistant I may use to read the statistics; and Vercel, which hosts this website. Others - such as Apple and Google as the operators of the stores, and the advertising partners listed above - decide themselves how they use the data they receive, as independent controllers under their own privacy policies.

Legal bases

Under the GDPR, I rely on these legal bases:

Permissions you give on your device, such as access to the camera, photos, microphone or notifications, are your choice. The features that need them work only while you allow them, and you can withdraw them at any time in your device's settings.

How long data is kept

International transfers

My own servers are in the EU, at Hetzner in Germany and Finland. Some of the services described in this policy are based outside the European Economic Area, mainly in the United States - for example OpenAI, which processes AI requests there; the advertising partners, which may also process data in other countries; and Vercel, which hosts this website. Where personal data is transferred outside the European Economic Area, the transfer relies on an adequacy decision of the European Commission (such as the EU-U.S. Data Privacy Framework, for companies certified under it) or on the European Commission's standard contractual clauses, as described in each company's own privacy policy. You can ask me for more information about these safeguards.

Security

I value your trust in providing me your Personal Information, thus I am striving to use commercially acceptable means of protecting it. All data the app sends to the services above is encrypted in transit. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and I cannot guarantee its absolute security.

Responsible Disclosure Policy

We take the security of our systems and data seriously. If you believe you have discovered a vulnerability, please follow these guidelines:

  1. Do not exploit the vulnerability beyond what is necessary to confirm its existence.
  2. Do not access, modify, or delete data that does not belong to you.
  3. Report the issue to the website owner with details so we can reproduce the finding.
  4. We will acknowledge receipt and work to address the issue as quickly as possible.
  5. Testing is only authorized within the scope of this policy. Any testing outside of scope may be considered unauthorized and could be subject to legal action.
  6. To the extent permitted by law, we are not responsible for any damage, loss, or impact to your devices, systems, or data at any time, whether or not it is related to security testing.

Links to Other Sites

This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by me. Therefore, I strongly advise you to review the Privacy Policy of these websites. I have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.

This website

The website this policy is published on is hosted by Vercel, which processes standard server logs (such as your IP address, browser and the page requested) to deliver and protect the site. I count visits with AnalyticsInsights, an analytics tool I run myself on my own server at Hetzner in Germany. It does not use cookies or store anything in your browser, follow you across other websites or store your IP address. Your IP address is used only for a moment: to look up your country, and, together with your browser's identification and a random value that is replaced every day, to count you as one visitor for that day, so visits on different days cannot be linked and your IP address cannot be recovered. It records the page visited, the referring site, your browser, operating system, device type and country, clicks on links and buttons (such as the store buttons, links to other pages and the FAQ), how long a page stays open, how far down it is scrolled and how quickly it loads. To help me read these statistics I may use an AI assistant (Claude, by Anthropic), which acts as my service provider.

If you send a bug report or feature request with the form on dczt.dev, your message, the app, platform and reason you choose, and your email address if you give one are sent to AnalyticsInsights on the same server, with the page you sent it from and your browser, operating system, device type, language and country (looked up from your IP address, which is not stored). I use them only to look into what you wrote and, if you left your email address, to reply. They are deleted after 24 months, or sooner if you ask me.

If you sign up for the newsletter, the only thing I ask for is your email address. It is sent to and stored by Brevo, the service I use to send the newsletter, and is used for nothing else. Every email has an unsubscribe link, and you can unsubscribe at any time.

Children's Privacy

These Services do not address anyone under the age of 13. I do not knowingly collect personal information from children under 13, and the apps never ask for an email address or other contact details. In the European Economic Area, a user below the age at which their country allows them to give consent online themselves (between 13 and 16, for example 15 in Czechia and 16 in Germany) needs a parent or guardian to give or approve the consents described in this policy, such as for personalised ads and the analytics identifier. If you are a parent or guardian and believe that your child has provided personal information, or that one of the services listed above has collected it, please contact me at support@dczt.dev so that I can have it deleted. Saldo is intended for adults; anyone under 18 should use it only with a parent's or guardian's permission and after talking to a doctor.

Your Rights and Data Deletion

Under the GDPR, and depending on where you live, you have the right to access the personal data held about you and get a copy of it, to have it corrected or deleted, to restrict its processing, to receive it in a portable format, to object to processing based on legitimate interests, and to withdraw your consent at any time without affecting what was done before. I do not make decisions about you based solely on automated processing that have legal or similarly significant effects on you. I answer requests within one month.

Saldo has no accounts. The only data about you on my server is the usage statistics described under "Analytics", stored under a random identifier that only the app knows, so I cannot find them from your name or email address. Deleting the app deletes that identifier from your device, and a new installation starts a new one. My AI server keeps nothing that could be deleted later. The data the app keeps on your device is deleted when you delete the app. Resetting your advertising identifier in your device settings breaks the link between your device and any advertising profile.

For data held by the third-party services listed above, you can make a request to each of them directly through the privacy policy linked next to its name. You can also email me at support@dczt.dev with your request: I will pass it on to the services concerned and confirm when it is done.

To have your email address removed from the newsletter, use the unsubscribe link in any email or write to me. You also have the right to lodge a complaint with a data protection supervisory authority, in particular in the EU country where you live or work or where you think your rights were infringed. In the Czech Republic this is the Office for Personal Data Protection (Úřad pro ochranu osobních údajů, Pplk. Sochora 27, 170 00 Prague 7, uoou.gov.cz).

Changes to This Privacy Policy

I may update this Privacy Policy from time to time, for example when an app gains a feature or starts using a new service, so please review this page periodically. The date below shows the current version. If a change significantly affects how your data is used, I will tell you in the app or on this page before it applies and, where the law requires it, ask for your consent again.

This policy is effective as of 2026-11-01

Contact Us

If you have any questions or suggestions about my Privacy Policy, do not hesitate to contact me at support@dczt.dev.

Get occasional updates

New features, tips, and the occasional announcement. No spam.

More from us