Privacy Policy
How we protect your data
Last updated: October 9, 2026
1. Our Core Principles
Calm Wealth Journal is built with privacy as its foundation. We believe your financial data is yours alone. This policy says where your financial data is kept, where the key that opens it is kept, and every service the app talks to.
On-Device Processing
All calculations happen on your phone. Your accounts, balances, notes and history are kept in one database, encrypted with your Master Key (see below). We have no servers that store your financial information, and we never receive it.
- On this phone. Always.
- In your own cloud backup, only when Cloud Backup is on (Settings → Data Management → Cloud Backup). The database then goes into your iCloud Backup or your Google account’s backup, still encrypted and without the key. Cloud Backup is off on every install, including an iPhone that updated from an earlier version, until you turn it on. On Android it is available from Android 9, and Google uploads nothing from a phone that has no screen lock.
- Moving to a new Android phone. On Android 9 and later, when you copy your old phone directly to a new one during setup (by cable or a direct phone-to-phone transfer), the encrypted database goes with it, whether Cloud Backup is on or off. That copy goes from phone to phone, not to a cloud backup. On older Android versions the database is not copied this way.
Your cloud backup is kept by Apple or Google under their own terms. Whatever those terms are, the database inside it stays encrypted with your Master Key.
A few settings are kept outside the encrypted database: your display currency, language, theme and reminder settings. They are stored in the app’s ordinary storage on the phone. On iPhone, your phone’s own iCloud Backup includes them whenever iCloud Backup is on for the phone, whatever the app’s Cloud Backup switch says. On Android they are not backed up. The monthly spending figure you enter for the Financial Runway is kept inside the encrypted database, so it travels with your Cloud Backup and your Backup File.
Where Your Key Is
The app makes your Master Key for you: 32 random bytes that encrypt and open your data. You never see it or type it.
- On this phone. The key is kept in the phone’s own secure storage.
- In your Apple or Google account. A copy is kept in your iCloud Keychain on iPhone, or in your Google account on Android. This copy is always made, and the app has no switch to turn it off. It is how a new phone signed in to the same account finds the key without you remembering anything. On Android, a new phone receives it when you restore your old phone’s data during setup.
- End-to-end encrypted. Apple and Google hold the copy without being able to read it, and the key is never sent to us. If your phone cannot keep it end-to-end encrypted (for example, an Android phone with no screen lock), the app does not copy it. Settings → Security shows whether the copy was made.
- Device IDs beside the key. The app stores a random ID for each device that uses your key, next to the key, so it can tell you when another device has the same key. These IDs say nothing about you or your money.
- Your Recovery Code and Recovery PDF, if you make them, hold the same key. They are only where you put them.
Your key is not your data. The key alone shows nothing, and your data alone cannot be read.
No Bank Connections
We deliberately chose manual entry over automated bank connections. This means no third-party services have access to your financial accounts. You maintain complete control.
2. Data We Collect
1. Usage Analytics & Product Improvement
We use Google Firebase Analytics to understand how the application is used and to make data-driven decisions for future features. We apply a strict “Privacy-First” approach to analytics.
What we collect (the “Buckets” approach):
To protect your financial privacy, the app turns counts into broad ranges (“buckets”) on your phone before sending them. Instead of exact numbers, we only see these ranges.
- Example: If you track 12 assets, our system sees the range “11-15”. It never knows the exact count.
- Example: We see how many currencies you use as a range, such as “2-3”, but never which currencies or banks are involved.
- Feature interest: We see the screens you open and some features you use (for example opening the asset editor, switching Face ID or fingerprint unlock, or being shown the Pro offer), the setup steps you view, and whether you finish setup.
- Added by Google’s software: an ID for this installation (Firebase gives each installation a random ID; it identifies the installation, not you), your phone model, operating system, language and app version, and an approximate location (country or region) that Google works out from your IP address.
What we do NOT collect:
❌ No financial values: We never transmit your Net Worth, account balances, or transaction amounts.
❌ No account names: We never see the names of your banks or assets, or your notes.
❌ No identity: We never ask for your name, email address or postal address. There is no account to create.
Apple ATT: We do NOT use Apple’s IDFA (Identifier for Advertisers). We do NOT track you across other companies’ apps or websites. On Android, the app does not read the phone’s advertising ID either.
Your choice: you can turn usage analytics off in Settings → Preferences → “Share anonymous usage statistics”, with two exceptions:
- Analytics starts when you first open the app, before you reach the privacy step of setup, because the switch starts on.
- The setup steps you view, and the event that says setup was finished, are sent even when the switch is off. This includes the short setup shown again after some updates.
Only the versions from the App Store and Google Play send analytics.
2. Payment Information
We use RevenueCat to manage subscriptions and in-app purchases.
- What we collect: An anonymous user ID the app creates, your purchase and subscription history from the App Store or Google Play, your phone model, operating system and app version, your store country, and your IP address.
- What we do NOT collect: Credit card numbers or billing details (these are handled securely by Apple App Store and Google Play Store).
- Purpose: To manage your premium subscription access and restore your purchases.
3. Crash Reports
We use Google Firebase Crashlytics to find and fix crashes.
- What we collect: When the app crashes or meets a serious error: the error and where in the code it happened, the app’s state at the time, your phone model, operating system and app version, and an ID for this installation. A few startup checks also report technical status fields.
- What we do NOT collect: Your key and your financial data are never part of a report.
- Your choice: There is no switch for crash reports in the app. Only the versions from the App Store and Google Play send them.
4. Exchange Rates
The app downloads currency exchange rates from the free Frankfurter service (api.frankfurter.dev). A request asks only for the rates of a given date. The service sees your IP address and that date, and nothing about you or your assets.
5. App Updates
Some versions of the app can receive small updates through Shorebird. Such a version asks Shorebird at launch whether an update exists, sending the app’s ID, its version, the platform and the processor type. Shorebird sees your IP address. No data about you is sent.
6. Backup Files You Create
These files go only where you save or send them. We never receive them.
-
Backup File (.cwj): Your database, encrypted with your Master Key. The key is not in the file. Beside the database, the file carries a short description that anyone holding the file can read without the key:
- the number of your assets, events and balance updates;
- whether the phone is an iPhone or Android, and its operating system version;
- the export date, the app’s name and version, and the file and database format versions;
- how the file is encrypted: a short fingerprint of your key (for a file made with an older version that used a password: the password’s salt and the settings used to turn the password into a key). A fingerprint or a salt does not reveal the key or the password.
Keep the file somewhere private, and not in the same place as your Recovery PDF.
-
CSV export: Plain, unencrypted text. Anyone who has the files can read your data.
-
Recovery PDF: It holds your key. Anyone who has it and your data can read your data.
-
Financial Runway share: The share button on the Financial Runway card creates a picture of the card and a short text (how many months you are covered, until when, and your level) and hands them to the app you choose.
7. Messaging Service
The app includes Google’s Firebase Cloud Messaging. It starts with the app and obtains a token from Google that identifies this installation for messages. We send no messages through it; the app’s reminders are created on your phone.
3. Your Rights & Control
- Opt-out of analytics: You can turn off usage analytics at any time in Settings → Preferences, with the two exceptions described above.
- Cloud Backup: You can turn Cloud Backup on or off at any time in Settings → Data Management. When you turn it off, later backups stop including your data. The app cannot erase a copy that is already in your cloud backup. To delete it yourself, open iCloud storage management in your iPhone’s Settings, or use the backup settings of your Google account.
- Export: You can export your data at any time from Settings → Data Management → Export Data (CSV), or as a Backup File with Export Backup.
- Delete: Settings → Data Management → Delete All Data permanently deletes your data from this phone. Your key stays on this phone, and in your iCloud Keychain or Google account if it was copied there. It does not erase a copy in your cloud backup or Backup Files you exported.
- Portability: Your CSV export is in a standard format that you can use with other apps.
- Data held by others: Google keeps the analytics and crash reports, and RevenueCat the subscription records, under the random IDs described above. We hold nothing that names you. You can ask us for access to, correction of or deletion of this data; write to us and we will help as far as those IDs allow.
Who Is Responsible
The controller of the personal data described in this policy is the developer of the app:
- Developer: Viktor Borbely
- Address: Park setany 3, 8440 Herend, Hungary (HU)
- Email: support@calmwealthjournal.com
Legal Basis and Retention
- Usage analytics (Firebase Analytics): our legitimate interest in understanding how the app is used and improving it (GDPR Art. 6(1)(f)). You can object at any time with the switch in Settings → Preferences. Kept for 14 months, the period set in our Google Analytics settings.
- Crash reports (Firebase Crashlytics): our legitimate interest in keeping the app working and secure (Art. 6(1)(f)). Google keeps crash data and the identifiers attached to it for 90 days.
- Installation IDs (Firebase) and Firebase Cloud Messaging: our legitimate interest in running the services above (Art. 6(1)(f)). Google keeps them until we ask for their deletion, and then removes them within 180 days.
- Subscriptions (RevenueCat): performance of the contract for your purchase (Art. 6(1)(b)). Kept while we use RevenueCat for the app; RevenueCat destroys the data on our request when we stop.
- Exchange rates (Frankfurter) and app updates (Shorebird): our legitimate interest in providing those features (Art. 6(1)(f)). Neither service sends us any data, and neither documents how long it keeps its server logs.
- Your key copy and Cloud Backup: these are kept by Apple or Google in your own account, under their terms. We never receive them.
Your Data Protection Rights
Under the GDPR you have the right to access the personal data that we or our processors hold about you, to have it corrected or deleted, to restrict its processing, to receive it in a portable format, and to object at any time to processing based on our legitimate interest. For usage analytics, the switch in Settings → Preferences does this directly. None of the processing above rests on your consent, so there is no consent to withdraw. Write to support@calmwealthjournal.com; we answer within one month, and if a request is complex we may extend this by two further months and tell you so.
No law or contract requires you to provide personal data. A subscription needs its purchase record; nothing else the app sends is a condition for using it.
Recipients: the providers named above — Google (analytics, crash reports, installation IDs, messaging), RevenueCat (subscriptions), Frankfurter (exchange rates) and Shorebird (app updates). We sell no data and share none with advertisers. We make no automated decisions about you that have legal or similarly significant effects.
Transfers Outside the EU
Google (Firebase) and RevenueCat may process data in the United States. Google states that it complies with the EU-U.S. Data Privacy Framework. RevenueCat uses the European Commission’s Standard Contractual Clauses. Both act as our processors.
Your Right to Complain
If you think we handle your personal data unlawfully, you can complain to the Hungarian data protection authority, the Nemzeti Adatvédelmi és Információszabadság Hatóság (NAIH): 1055 Budapest, Falk Miksa utca 9-11; postal address 1363 Budapest, Pf. 9.; ugyfelszolgalat@naih.hu; https://naih.hu. You can also complain to the authority of the EU country where you live.
4. Security Measures
Your financial data is encrypted with your Master Key whether or not you use any other protection. The key is kept in your phone’s secure storage and, end-to-end encrypted, in your Apple or Google account, as described above. We cannot see your financial data, your key or your Recovery Code, and we cannot recover your data for you.
App Lock (a Lock PIN, Face ID or fingerprint) hides the app from someone holding your unlocked phone. It does not encrypt anything; your data is encrypted whether App Lock is on or off.
5. Changes to This Policy
If we make any changes to this privacy policy, we’ll update the “Last updated” date at the top. The app carries the copy that was current when that version was released; the latest is always at https://calmwealthjournal.com/privacy-policy.
Questions?
If you have questions about this privacy policy, please contact us at support@calmwealthjournal.com.
Website Analytics
This website (calmwealthjournal.com) uses Plausible Analytics, a privacy-friendly, cookieless analytics service.
- No cookies: Plausible sets no cookies and stores no personal data in your browser, so this site shows no cookie banner.
- No cross-site tracking: We do not track you across other websites, and no personal data is collected or shared with third parties for advertising.
- What we measure: Only aggregated, anonymous traffic statistics (e.g. page views, referrers, country, device type) to understand how the site is used.
Forms: the newsletter sign-up is run by MailerLite, and the roadmap feature request form sends what you type (including an optional name and email address) to Google Forms. Both are optional and are not part of the app.