Privacy policy

Last updated: September 3, 2026

1. What PesaTrack does

PesaTrack is a passive expense tracker for Android. It reads both incoming and outgoing M-PESA and supported bank SMS messages, parses transaction details (amount, recipient, date, transaction code), and saves them locally on your device for categorisation, budgeting, and review.

2. SMS data we access

PesaTrack requests the following Android permissions:

PesaTrack only reads SMS from specific senders:

Personal SMS from contacts, promotional messages, and SMS from unsupported senders are never read, accessed, or stored.

3. What data is stored on your device

From each qualifying transaction SMS, PesaTrack extracts and stores locally:

You may also manually enter expenses or import from Excel/PDF. Categories, budgets, and settings are stored locally in a Room database and DataStore preferences.

4. Anonymous usage analytics (opt-in)

Starting in version 1.5.0, PesaTrack can send anonymous usage analytics so we can see which features help and which need work. This is off by default. On first launch (or after updating from an older version) you'll see a one-time prompt — say yes, dismiss it, or change your mind later.

What we send when analytics are on:

What we never send, even with analytics on:

Analytics are processed by Google Firebase Analytics. See Google's privacy policy for how they handle this. We do not use Firebase for advertising, personalisation, or any purpose beyond product improvement.

Turning analytics off: Open PesaTrack, tap Settings, and toggle "Anonymous usage data" off. Collection stops immediately and the anonymous installation ID is reset so the previous session's identifier can't be associated with future data.

5. Data sharing

Your transaction data is never shared. The only data that leaves your device is the anonymous analytics described in Section 4 — and only if you opt in.

5.5 User-initiated sharing

Certain features let you voluntarily share information outside the app:

5.6 Google Play services

6. Data security

PesaTrack offers an optional PIN lock with biometric unlock to prevent casual unauthorised access. The PIN is stored as a salted SHA-256 hash — the raw PIN is never stored.

Your data inherits the security of your Android device (device encryption, screen lock). PesaTrack does not implement additional database encryption; the threat model is casual-access prevention, not forensic-level protection. See /security for the full write-up.

Analytics data (when enabled) is transmitted to Firebase over HTTPS/TLS.

7. Your rights & data deletion

Because analytics data is anonymous and not tied to your identity, we cannot look up or delete specific analytics records on request. Turning analytics off stops future collection and severs the link between past and future sessions on your device.

8. Children's privacy

PesaTrack is not directed at children under 13. The app requires access to financial SMS, which is inherently an adult use case.

9. Changes to this policy

We may update this policy as the app evolves. Material changes will be called out in-app on next launch. The Last updated date at the top always reflects the current version.

10. Contact

Questions or concerns? Email joelmumo.jm@gmail.com.