Privacy Policy

This is a translation. The German version is binding.

1. Privacy approach

This policy describes what data the mobile application LiczMat, building materials calculator ("App") and the website liczmat.com ("Website") process, and for what purpose. The data controller is Michał Polednia, Widderweg 17, 85570 Markt Schwaben, Deutschland ("we"), contact: contact@liczmat.com.

LiczMat is built offline-first. All calculations are performed on your device and work without the internet. The local database is the single source of truth, and the cloud is merely a copy of it.

An account is optional. You do not need to sign in to perform calculations. As long as you do not create an account, we do not send your projects or calculations to any server. A backup is a file that you export and store yourself. If you choose to create an account, the data described below will be sent to Google Firebase. See section 3 for details.

The App also uses other Google services (ads and map/store search), which process certain data. We describe this below.

2. Data stored on the device

Locally, on your device, we store: projects, calculations, shopping lists, rooms, custom materials, and settings (e.g. language, currency, theme, contractor details). Uninstalling the App or clearing its data permanently removes this information from the device. You create and store the backup (export to a file) yourself.

The material catalog, your custom materials and prices, and settings are not synchronized. They remain exclusively on the device, even if you have an account.

3. LiczMat account and synchronization (optional)

You can create a LiczMat account to have the same projects on your smartphone and in your browser (liczmat.com/app/). The account is free and completely voluntary. Without an account, the App and Website function as before.

3.1. What data we process when you have an account

3.2. Where the data is stored

The Google Cloud Firestore database and Cloud Functions run in the europe-central2 (Warsaw) region, which is within the European Union. However, the Firebase Authentication service (your login data, such as email address, display name, password hash, and Google account ID) runs on Google's global infrastructure, so this data may be processed in the United States (see section 8). Google acts here as a data processor on our behalf.

3.3. Who has access to it

Only the account owner. Firestore security rules allow reading and writing account data only for the authenticated user with the same ID. The only exception is a link that you create yourself. See section 3.5.

3.4. How synchronization works

After every local change, the App sends the document to Firestore and pulls changes from the cloud back into the device database. In case of a conflict, the newer entry wins (comparing timestamps). Deleting a record does not immediately remove it from the cloud: the document is marked as deleted so the other device learns about the deletion and does not restore it. These marks are cleared after 30 days.

If you tap "Share", we create a copy of the selected project (name, estimates, shopping list, currency) at a random 128-bit address liczmat.com/p/<token>. This copy is publicly readable for anyone who knows the link. The token in the address is the only protection, so only share it with people who should see the estimate. The copy does not update automatically, you must update it manually via a button. Deleting the link revokes access immediately. The person opening the link does not need an account, and we collect no data about them other than standard Website analytics (section 6).

3.6. How long we keep data and how to delete it

We keep account data for as long as the account exists. You can delete individual projects and rooms at any time. You can delete the entire account yourself at liczmat.com/app/ → Account tab → Delete account. This deletes all account documents in Firestore (projects, rooms, estimates, shopping lists, and created links), and finally the account itself in Firebase Authentication. This cannot be undone. In the same tab, you can previously download all your account content as a JSON file. If you want us to do this for you, write to contact@liczmat.com. You delete data stored on your device or in the browser separately by clearing the App data or site data.

3.7. Legal basis

Processing account data is necessary for the performance of the service you request. Art. 6(1)(b) GDPR (performance of a contract). Creating an account is voluntary, without it you can use all calculator features.

4. Ads (Google AdMob)

The App is free and supported by ads provided by Google AdMob. Therefore, Google, as an ad provider, may collect and process:

This data is used to serve ads, cap their frequency, measure performance, and prevent fraud. Google's policies describe this: Google's Partner Sites Policy and Google Privacy Policy.

4.1. Consent (GDPR) and personalized ads

If you are located in the European Economic Area, the UK, or Switzerland, we show a consent dialog (Google User Messaging Platform) on the first launch, where you decide on personalized ads. Without your consent, only non-personalized ads are shown. You can change or withdraw your consent at any time by clearing the app data in system settings or resetting the advertising ID in Android settings. The legal basis for personalised ads is consent, Art. 6(1)(a) GDPR, and for reading or storing information on the device additionally § 25(1) TDDDG (German law on data protection in telecommunications and digital services). Non-personalised ads: legitimate interest in financing the free app, Art. 6(1)(f) GDPR.

4.2. App analytics (Firebase / Google Analytics)

The App uses Google Analytics for Firebase to anonymously and in aggregate measure how its features are used (e.g. which calculators you open, the number of active users). This helps us improve LiczMat. Analytics is disabled by default and is only enabled after you give your consent in the same dialog (Google User Messaging Platform). Without consent, nothing is collected. The data is processed by Google in accordance with the Google Privacy Policy. The legal basis is consent, Art. 6(1)(a) GDPR and § 25(1) TDDDG; consent can be withdrawn at any time with effect for the future.

5. Location and store search (Google Maps / Places)

The "Find store" feature uses Google Maps and Google Places. If you grant location permission, the App uses your approximate or precise location to show nearby hardware stores and route you there. Requests to map services are processed by Google according to their privacy policy. You can deny location access. In that case, stores will not be found automatically, but all other features will work normally. We do not store your location, neither on the device nor in the account.

6. Website

The website liczmat.com is static. When the site is opened, the host GitHub Pages (GitHub, Inc.) processes standard server log data (IP address, time, requested page, browser) to deliver the site securely; legal basis Art. 6(1)(f) GDPR (legitimate interest in a secure and reliable website). It uses Google Analytics (GA4) to anonymously and in aggregate measure traffic (e.g. how many people visit the Website and how many click through to Google Play), so we can improve it. Analytics is disabled by default: in accordance with the GDPR, we first ask for your consent, and Google Analytics (including setting cookies) only starts after you grant it. You can decline, and all other features will remain usable. The legal basis is consent, Art. 6(1)(a) GDPR and § 25(1) TDDDG; withdrawal at any time via the cookie/consent setting on the site, with effect for the future. Apart from Analytics, the Website does not use web fonts. All other code and styles are served from the Website's domain, and interactive calculators compute exclusively in your browser.

The exceptions are areas where external services are integrated. Stores: The Website embeds a Google Maps map, which is loaded from Google's servers. If you share your location, it is only used to center the map and is not stored anywhere. To show the list of nearest stores, the Website sends your approximate coordinates to the OpenStreetMap (Overpass API) service and retrieves public store data. The "Navigate" button opens the route in Google Maps. City suggestions based on postal codes use a GeoNames (geonames.org) database, CC BY 4.0, hosted directly on our server, and no third party receives the entered postal code. The legal basis is Art. 6(1)(a) GDPR when the visitor shares the location, otherwise the map loads only when the visitor opens the store finder. /app/: After logging in, the Website connects to Firebase (Authentication and Firestore) under the terms in section 3 and stores login data in the browser so you are not asked for a password on every visit. /p/<token>: The Website fetches the shared copy of an estimate from Firestore without logging in and without collecting data about the person opening the link. Both these subpages are excluded from indexing.

Projects, rooms, and estimates saved on the Website without logging in remain exclusively in your browser's local storage (localStorage) and are not sent anywhere. We do not see them and have no access to them. You delete them by clearing site data in your browser. They only go to the cloud when you log into your account and manually click "Send from browser to account". From that moment, section 3 applies. We also store your language choice, currency choice, theme choice, and your decision regarding analytics consent in the browser.

7. Who we share data with

We do not sell data and do not create user profiles. The data described above is processed by Google as a data processor: AdMob (ads), Maps and Places (maps and stores), Analytics (statistics), and, if you create an account, Firebase Authentication, Cloud Firestore, and Firebase Hosting (account and synchronization). In addition, after account creation, we send a one-time welcome email to your email address in the language of the page on which the account was created. This email is processed and sent via the servers of OVH SAS (France, EU), our email provider, acting as a data processor on our behalf, based on Art. 6(1)(b) GDPR. Otherwise, we only share data with the people you yourself give the estimate link to (section 3.5), and when required by applicable law.

7.1. Payments (Stripe)

The LiczMat Pro subscription is handled by Stripe (Stripe Payments Europe, Ltd., Ireland). If you decide to purchase it, you will be redirected to the Stripe payment page. Stripe, as an independent data controller, receives and processes payment data: card number, billing details, and payment history. We do not see or store your card number. Your email address and account ID (UID) are sent to Stripe so that the paid subscription can be assigned to the correct account. In return, we only receive the plan status (Free or Pro), its expiration date, and whether the subscription will renew. You manage invoices, card changes, and cancellations in the Stripe customer portal. Stripe's privacy policy is available at: stripe.com/privacy.

8. Data transfers outside the EEA

Google LLC (responsible for Firebase Authentication, Google Analytics, AdMob, Maps, Places, and Firebase Hosting) and GitHub, Inc. (which hosts our website and processes standard server logs, including IP addresses) are US companies. The transfer of your data to the US is based on the adequacy decision of the European Commission for the EU-US Data Privacy Framework, as both companies are certified. Additionally, it is based on the standard contractual clauses included in their data processing terms (Google Cloud Data Processing Addendum, GitHub Data Protection Agreement).

9. Your rights (GDPR)

Under the GDPR, you have the right to access, rectify, erase, restrict processing, data portability, and object, as well as the right to withdraw your consent to personalized ads and analytics. Where processing is based on Art. 6(1)(f) GDPR, you may object at any time on grounds relating to your particular situation (Art. 21 GDPR).

You directly control data that remains on the device (app data, permissions, advertising ID in Android settings). You can review and change account data in the App or at liczmat.com/app/, export it via the backup feature, and delete it by removing individual records or requesting the deletion of the entire account (section 3.6). For questions regarding your data, write to: contact@liczmat.com. You also have the right to lodge a complaint with the competent supervisory authority: Bayerisches Landesamt für Datenschutzaufsicht (BayLDA), Promenade 18, 91522 Ansbach, www.lda.bayern.de, or with the data protection supervisory authority in your country of residence within the EU.

10. Children

The App is not directed at children, and we do not knowingly collect data from persons under 13 years of age. A LiczMat account is intended for persons who are 16 years of age or older, or have the consent of their legal guardians.

11. Changes and contact

We may update this policy. We will announce significant changes in the App or on Google Play. The date of the last update is at the top of the document. Contact: Michał Polednia, email: contact@liczmat.com.