Privacy Policy


Effective date: September 30, 2018  ·  Last updated: October 9, 2026

The short version: MoneyTracker is built as a local-first, on-device application — not a local-only one, since a small number of clearly-scoped features do involve a network call. Your account, financial, and transaction data is stored on your device and, if you choose, in a cloud storage account that you control. The App developer does not operate a server that stores or has access to this financial data, and cannot see your account or transaction data. Separately, the App developer does receive limited technical crash/diagnostic data and — only if you switch them on — usage statistics (see Section 4); these are distinct from, and never include, your financial data. A "No external communication" switch stops the App from contacting any server at all.

This Privacy Policy explains how MoneyTracker ("we," "our," "the App") handles information when you use our personal finance and expense-tracking application.

Why we built it this way. I care about privacy enough that I've skipped other finance apps myself — even good ones — simply because my financial data would end up sitting on the developer's servers. Probably nothing bad would happen. But with your finances, it's better to be safe than sorry. MoneyTracker was built on one promise: your data doesn't leave the device unless you clearly and explicitly ask it to — for example, by turning on cloud backup.

01 Our Data Architecture

  • No developer-side storage of your financial data. MoneyTracker does not transmit your accounts, transactions, budgets, investments, loans, or receipts to any server operated by the App developer. This data is not collected, stored, viewed, or otherwise accessible by us.
  • On-device by default. All account and transaction data lives on your device unless you explicitly enable a backup or optional integration described below.
  • User-controlled backup. If you enable backup, your data is transferred directly between your device and the cloud storage account you connect (e.g., your own Google Drive, iCloud, or similar). It does not pass through, or get copied to, any server we operate.
  • Optional integrations only. Features that involve a third party you connect yourself (cloud backup, AI-assisted receipt analysis) are off by default and only activate for the specific action you take, with the specific provider you configure. Currency exchange rates are looked up automatically, without any of your data (see Section 3), unless you turn on "No external communication".
  • Works fully offline. The App's core functionality runs with no internet connection at all. The "No external communication" switch (Settings → Privacy) stops the App from attempting any network operation: exchange-rate lookups, Firebase sign-in and app verification, crash reports, usage statistics and OneDrive backup. Some of these services start together with the App, so the switch takes full effect from the next start of the App. Going offline means entering currency rates manually instead of pulling live rates (the App asks for every missing rate whenever one is needed), and using manual backup ("Backup to Folder" or "Send Backup to Application") instead of automatic syncing — everything else keeps working exactly the same.
  • Other apps you hand over to. With the switch on, the App still lets you use other apps for actions you ask for: opening an institution's website in your browser, rating the App in the Play Store, sending us an e-mail, viewing a receipt in a viewer app, or backing up to a folder you picked through the system picker. Such a folder may belong to a cloud storage app (e.g., Google Drive) that uploads the file on its own. Any network access in these cases is done by that other app, under its own settings and privacy policy.
  • Complete, verifiable separation. The in-app switch is a promise from the App. If you want a separation that you or a third party can verify, also block the App's network access at the operating-system level — in Settings → Apps → MoneyTracker → Mobile data & Wi-Fi (where your phone offers it), or with a firewall app such as NetGuard or RethinkDNS. Keep the in-app switch on as well: it stops the App from repeatedly trying to connect, and makes it offer manual entry (for example, of exchange rates) instead.

02 Information Stored On Your Device / Your Cloud

The following categories of data are created and stored locally on your device (and, if you opt in, in your own connected cloud storage for backup). None of it is visible to us.

Account & Profile Information

  • Name and preferences you set up in the App
  • Reporting currency and time zone preferences

Financial Account Information

  • Account name, currency, bank/financial institution, and account number you choose to add
  • Balance thresholds you set for alerts (minimum balance, minimum average balance, overdraft limits)
  • Cutoff and repayment dates you configure for cards and overdrafts

Transaction Data

  • Amounts, categories, dates, beneficiaries/recipients, and references for transactions you record
  • Fees, cashback, tips, and split-payment details you enter
  • Transaction status and links between related transactions (transfers, splits, refunds)
  • Budget and subscription data associated with your transactions

Receipts & Purchase Data

  • Photos of receipts you choose to scan or upload
  • Barcode and product data you search or scan
  • Shopping list items, including lists you choose to share with other users
  • Data extracted from SMS bank alerts or email receipts you choose to share into the App

Investment & Loan Data

  • Investment account valuations, contributions, returns, and fees you record
  • Loan balances, interest rates, and due dates you record

All of the above stays on your device, and — only if you turn on backup — is copied directly to the personal cloud storage account you connect. We do not have a copy.

03 Optional Features That Involve a Network Call

A small number of features require contacting a server. Each is off unless you use it, and each is designed to share as little as possible.

Currency Exchange Rates (Shared Rate Cache)

If you use a currency pair for which the App does not already have a valid locally stored rate, the App looks it up in a shared rate cache (Firebase Realtime Database, operated by Google for the App). In this case:

  • The shared database holds only currency pairs, rates and timestamps, and the names of units you type yourself (see below). When a pair is missing or out of date there, the App leaves a request naming the pair and the time, if "Report missing rates and units" is on; a rate service run for the App then adds the rate and removes the request. No amount, account, transaction detail, or personal information is included.
  • To read the cache, the App signs in anonymously with Firebase Authentication. This gives each installation a random ID that is not linked to your name, e-mail, phone number or any of your data; it is used only to allow access to the shared rates. Reinstalling the App, or clearing its data, creates a new ID.
  • Firebase App Check (using Google Play Integrity) confirms that requests come from the genuine App, so the shared rates cannot be read or changed by other software.
  • If the cache has no current rate, the App asks public rate services directly (FreeExchangeAPI, Frankfurter, and for crypto currencies Coinbase and Binance). These requests name only the currencies; like any web request, they reveal your device's IP address to that service. Rates obtained this way are stored only on your device.
  • Historical rates and rates you enter manually stay on your device only.
  • With "No external communication" on, none of these lookups happens; the App asks you to enter missing rates manually.

Missing Rates and Units

The App knows common units of products (grams, litres, pounds, gallons, days, and so on) and converts between them to compare prices. When you type a unit of your own on a product, and "Report missing rates and units" (Settings → Privacy, on by default) is on, the App writes that unit's name (at most 10 characters) and the time to the shared database, once per installation, so the unit can be added to a later version. Units already in your data are reported once after the update that introduced this. Nothing else is sent: no product, price, store, amount or other data. Other users cannot read these reports, and a report is never changed. Switching "Report missing rates and units" off also stops the App asking for missing exchange rates (it still reads the shared rates); "No external communication" turns it off.

Cloud Backup (User-Controlled)

If you enable backup, you choose the destination (e.g., your own cloud storage account). Data flows directly between your device and that account. The App developer is not a party to this transfer and does not receive, store, or have access to the data being backed up. Your cloud provider's own privacy policy governs how they handle data you store with them.

AI-Assisted Receipt Analysis (User-Connected, Optional)

The App may allow you to connect your own account with a third-party AI provider to analyze and extract data from scanned receipts. If you enable this:

  • The receipt image and the extracted data are sent directly from your device to the AI provider you configure, using your own account credentials.
  • Neither the raw receipt image nor the extracted data is made available to the App developer, or to any party other than the AI provider you explicitly configured.
  • This feature is entirely opt-in and only activates for receipts you choose to process this way.

04 What This Means in Practice

  • We cannot see your spending. Because your financial and transaction data never reaches a server we operate, we have no visibility into your accounts, balances, or transactions.
  • We do not sell or share your financial data, because we do not have it to sell or share.
  • Sharing features you opt into (e.g., shared budgets or shared shopping lists) exchange data only with the other users you explicitly add — this happens through the mechanism you configure (e.g., your connected cloud storage) and is never routed through us.
Crash & diagnostic data — this one is different. The App uses Firebase Crashlytics, and the developer does have access to this data — it is not withheld from us the way financial data is. When the App crashes or encounters an error, technical information (crash logs and stack traces, device type, OS version, and general app-usage/performance signals) is sent to Firebase and is visible to us for the purpose of fixing bugs and improving stability. This technical data does not include your account, transaction, or receipt content. Crash reports are on by default; you can switch them off at any time with "Share crash reports" in Settings → Privacy (the change takes full effect from the next start of the App).
Usage statistics — included, but off unless you switch them on. The App includes Firebase Analytics, but it is switched off from the first start and collects nothing until you turn on "Share usage statistics" in Settings → Privacy. When on, only Firebase's automatic usage events are sent (first open, app sessions, screens viewed), together with a random app-instance ID; the App logs no events of its own, and never any financial content. You can switch it off again at any time.

05 Third-Party Providers You May Connect

Depending on which optional features you enable, you may directly connect:

  • A cloud storage provider (for backup) — data flows directly between your device and this provider
  • An AI provider (for receipt analysis) — data flows directly between your device and this provider, using your own account
  • Firebase Crashlytics (Google) — technical crash/diagnostic data only, no financial or transaction content; unlike the App developer's total lack of access to your financial data, crash/diagnostic data collected here is accessible to us (the developer). On by default; can be switched off in Settings → Privacy.
  • Firebase Analytics (Google) — automatic usage events with a random app-instance ID, only if you switch "Share usage statistics" on (off by default)

In every case, you choose whether to connect the provider, and the data exchanged is with that provider directly — not with us. Each provider's own privacy policy governs their handling of the data you send them.

To look up exchange rates (Section 3), the App also uses, unless "No external communication" is on:

  • Firebase Realtime Database, Authentication and App Check (Google) — the shared rate cache, rate requests and missing units (currency pairs, rates, unit names you typed and times only), an anonymous random installation ID, and a check that requests come from the genuine App
  • Public rate services (FreeExchangeAPI, Frankfurter, Coinbase, Binance) — requests naming only the currencies

06 Data Retention & Deletion

Since your financial data lives on your device (and your own connected cloud storage), you control its retention directly:

  • Deleting a transaction, account, or the App itself removes the corresponding local data
  • Backup copies in your own cloud storage persist according to your cloud provider's settings, until you delete them there
  • We hold no server-side copy to retain or delete on our end

07 Your Rights

Because your data is stored on your device and in cloud storage you control, you inherently have direct access to, control over, and the ability to export or delete it at any time through the App and your connected storage/provider accounts. You may also disable any optional feature at any time: crash reports and usage statistics in Settings → Privacy, backup and AI receipt analysis where you set them up, and every network call of the App — exchange-rate lookups included — with "No external communication" in Settings → Privacy.

08 Use by Children & Families

MoneyTracker may be used by children and teenagers — for example, to build savings habits or practice responsible spending — typically alongside a parent or guardian. Because of this, the following applies in addition to the rest of this Policy:

  • Financial data protections apply equally. A child's account, transaction, and receipt data is stored local-first exactly as described in Sections 1–3: it is not collected, stored, or accessible by the App developer, whether the account belongs to an adult or a minor.
  • Parental involvement in account setup. Where required by applicable law (e.g., COPPA in the US for children under 13, or equivalent rules elsewhere), a parent or guardian must create or approve a minor's account and consent to this Policy on the child's behalf.
  • Optional third-party features require parental approval for minors. Features that send any data off-device — cloud backup and AI-assisted receipt analysis in particular — are not enabled by default on a minor's profile and require a parent or guardian to configure and approve them.
  • No behavioral advertising or profiling of children. We do not use any data from a child's use of the App for advertising or behavioral profiling.
  • Family/shared budgets. Where the App's shared-budget or shared-list features are used between a parent and child, data is exchanged only between the accounts the parent explicitly links — never through us.
  • Crashlytics and usage statistics apply as described in Section 4 regardless of the user's age: crash reports are on unless switched off, usage statistics are off unless switched on.
  • Parental rights. A parent or guardian may review, export, or delete their child's data at any time, and may withdraw consent to any optional feature.
Because MoneyTracker is intended for use by minors in some cases, this section — and the App's compliance with children's-privacy laws in each jurisdiction where it's offered (e.g., COPPA, GDPR-K, UK Age Appropriate Design Code) — should be reviewed carefully with legal counsel before launch.

09 Changes to This Policy

We may update this Privacy Policy from time to time. We will update the "Last updated" date above and, for material changes, provide notice within the App.

10 Contact Us

If you have questions about this Privacy Policy or how the App is designed to handle data, contact us at:

support@moneytracker.tbss-ltd.com
TBSS Ltd.