At a glance
- Your financial data stays on your phone. Transactions, wallets, budgets and bills are stored in a local database on your device. The core app works fully offline.
- Cloud backup is optional and only happens if you create an account and tap "Back Up Now".
- We never see your PIN. It is stored in your device's encrypted secure storage and is excluded from all backups.
- The free app is ad-supported (Google AdMob) and includes Firebase analytics and crash reporting.
- We do not sell your personal data.
1. Who we are and what this covers
AHR Labs ("we", "us") operates the AHR FinLife Android
application (package com.ahrlabs.finlife, the "App"). This policy explains
what information the App collects, where it goes, and the choices you have. It covers the App
itself and, if you opt in, the AHR FinLife cloud service that powers optional backup, premium
and account features.
AHR FinLife is an offline-first personal finance tracker: wallets, income and expense transactions, transfers, budgets, bills and reports. It requires Android 7.0 or newer. There is no iPhone version and no web app.
2. Information stored only on your device
The following never leaves your phone unless you explicitly create a cloud backup:
- Financial records — wallets (name, type, optional account number, balance, credit limit, due day), transactions (amount, type, category, wallet, optional note and receipt photo), transfers, budgets and bills.
- Receipt photos — stored as files in the App's private storage on your device. The images themselves are not included in any backup export or upload; only their local file paths travel inside backup files.
- App settings — your display name, chosen currency, theme, and notification preferences.
- Your PIN — stored in Android's encrypted secure storage (Keystore-backed). It is not stored in the regular database or preferences, and it is excluded from every backup export and upload.
Honest disclosure: the local database itself is not encrypted at rest. Your data is protected by Android's app sandbox and by the optional PIN/biometric lock — but if your device is rooted and in someone else's hands, a local database can be read. This is one reason cloud backup (encrypted in transit) is offered.
You can erase everything at any time with Settings → Danger Zone → Clear All Data, or by uninstalling the App.
3. Permissions the App requests
| Permission | Why |
|---|---|
| Biometric (fingerprint) | Optional fingerprint unlock of the App. |
| Notifications | Bill reminders, budget alerts and optional daily/weekly reminder notifications. |
| Camera / photo picker | Attaching a receipt photo to a transaction (via Android's system camera/gallery pickers). |
| Internet & network state | Optional cloud backup, premium purchases, ads and crash reporting. |
| Storage / file access | Saving or importing your own backup files via Android's system file picker. |
| Advertising ID | Used by Google AdMob to serve and measure ads. See section 6. |
We do not request access to your contacts, location, SMS or call logs. The App never reads your bank accounts and does not connect to any bank.
4. Optional cloud account and backup
Cloud features are entirely opt-in. If you register an account, we collect and store on our servers:
- Email address (used as your login) and an optional display name.
- Password — stored only as a bcrypt hash. We can never see or recover your actual password.
- Session tokens — a short-lived access token and a rotating refresh token, stored hashed. Alongside each session record we log your IP address and device user agent for security and abuse prevention.
- An activity log (audit trail) — security-relevant events on your account (sign-ins, backup uploads/downloads/deletes, purchase verifications) with the action, timestamp, and the IP address and user agent of the request. You can view this log inside the App under Account → Activity.
What a cloud backup contains. When you tap "Back Up Now", the App uploads a single JSON file containing your complete local database: all transactions (amounts, notes, dates, receipt file paths), wallets (including optional account numbers and balances), categories, budgets, bills, transfers, and most app settings (excluding your PIN and the biometric/PIN-enabled flags). It is sent over HTTPS and stored on AHR FinLife servers so you can restore it on a new device.
- Free accounts include a limited lifetime number of uploads (deleting a cloud backup does not give the slot back).
- Premium ($2.99/year or $10 lifetime, via Google Play) unlocks unlimited uploads.
- Restoring a backup replaces all data currently on the device — the App warns you before proceeding.
Registration requires your explicit consent ("I agree that my cloud backup data is stored securely on AHR FinLife servers") before the first upload can happen.
5. Purchases (Google Play Billing)
Premium is purchased through Google Play. We never see your payment details. When you buy or restore Premium, the App sends the Google Play purchase token to our backend so the purchase can be verified with Google before Premium is granted. We store the product ID, Google's transaction ID, amount, currency and status of the purchase. Google handles payment under the Google Play Terms of Service and Google Privacy Policy.
6. Advertising (Google AdMob)
The free version of the App displays ads served by Google AdMob (banner, interstitial, native and rewarded formats). AdMob and its partners may collect:
- Your device's advertising ID (you can reset or delete it in Android Settings → Privacy → Ads).
- Device identifiers, model, operating system and language.
- General location signals (such as country, derived from IP address).
- Ad interaction data (views, clicks).
You can opt out of personalised advertising at any time in your Android device settings (delete/reset your advertising ID). Ads may still appear, but they will not be based on your interests. Data handling by Google is described in the Google Ads policy. Ads in the App are configured with a "G" content rating (general audience).
7. Analytics, crashes and performance (Firebase)
The App uses Google Firebase services to help us fix bugs and improve the product:
- Firebase Analytics — which screens are viewed and a small number of events (for example: app unlocked via PIN or fingerprint, theme changed). Analytics is configured for general-audience use and does not include your financial figures, notes or account numbers.
- Firebase Crashlytics — automatic crash reports (stack traces, device model, OS version, breadcrumbs) when something goes wrong.
- Firebase Performance Monitoring — app startup and feature timing.
Firebase may collect device identifiers and usage data as described in Google's Firebase Privacy Policy. If you prefer not to contribute analytics, using the App offline still works fully — but there is currently no in-App switch to disable Firebase collection; you can restrict background data for the App in Android settings.
8. Local backup files you export
The App lets you export your data to a JSON file (and import CSV/JSON). The export contains your full financial database and most settings — but never your PIN or cloud session tokens. Where you save or share that file is entirely up to you: the App uses Android's system file picker and share sheet, so the file goes only to the destination you choose. We never receive a copy.
9. How we use information
- To provide the App's features — recording transactions, budgets, bills, reports.
- To authenticate you and synchronise optional cloud backups when you ask.
- To verify Google Play purchases before granting Premium.
- To keep the App working — diagnosing crashes and performance issues.
- To keep accounts secure — detecting abuse via session and audit records.
- To serve ads that fund the free version of the App.
We do not: sell your personal data, use your financial records for advertising, or read your transactions. Financial content in cloud backups is used only to serve your backup back to you.
10. Data sharing and disclosure
We only share data with the service providers that make the App work:
| Service | Purpose | What they process |
|---|---|---|
| Google AdMob | Serving ads | Advertising ID, device info, ad interactions |
| Firebase | Analytics, crash reports, performance | Screen views, events, crash data, device info |
| Google Play Billing | Premium purchases | Purchase tokens, order details |
| Our hosting provider | Running the optional cloud service | Account records, backup files, audit logs |
We may also disclose information if required by law or to protect our legal rights, and in connection with a merger or sale of assets. We do not share your data with any other third parties for their own marketing.
11. Retention
- On your device: until you delete it (Clear All Data) or uninstall the App.
- Cloud backups: until you delete them in the App or we delete your account at your request. Deleting a backup does not refund a free-tier upload slot.
- Account records & audit logs: kept while your account exists, so the activity log remains meaningful.
- Purchase records: kept for as long as required for accounting and to honour your entitlement.
- Crash and analytics data: retained by Firebase according to Google's retention settings.
12. Security
All network communication with our servers uses HTTPS. Passwords are bcrypt-hashed, refresh tokens are stored only as hashes and rotate on every use, and the backend rate-limits authentication attempts. No system is perfectly secure, and we cannot guarantee absolute security; please use a strong, unique password.
13. Children's privacy
The App is not directed at children. We do not knowingly collect personal information from children under 13 (or under 16 in jurisdictions where that is the legal age). If you believe a child has created an account, contact us and we will delete it.
14. Your rights and choices
- Export your data — Settings → Backup, at any time, no account needed.
- Delete your data — Settings → Clear All Data; delete individual cloud backups in the App; or request full account deletion by emailing us (we will remove your account, backups and audit records).
- Stay offline — simply never create a cloud account; nothing will be uploaded.
- Opt out of personalised ads — Android Settings → Privacy → Ads → Delete advertising ID.
- Disable biometric/PIN — Settings, at any time.
- Access your activity data — your full audit log is visible in the App under Account → Activity.
Depending on where you live (for example under the GDPR or similar laws) you may have additional rights such as access to and rectification of your data. To exercise any right, contact us using the details below.
15. Changes to this policy
We may update this policy as the App evolves. Material changes will be reflected by updating
the "Last updated" date above, and the current version is always published at
https://finlife.ahrlabs.me/privacy-policy.html. We encourage you to review it
occasionally.
16. Contact us
Questions, concerns or requests about your privacy:
Email: privacy@ahrlabs.com
Support: support@ahrlabs.com
Website: https://ahrlabs.com