Oats
Personal finance that never leaves the device.
A fully offline personal finance tracker. No backend, no network calls, no cloud sync — every record lives in a local SQLite database, and the only copy that ever leaves the device is a backup you export yourself.
Test assertions
197
Network calls
0
Cloud backup
Disabled
Overview
Oats is a personal finance tracker built on a single constraint: the data never leaves the device. There is no backend to breach, no account to compromise and no sync to trust, because none of them exist. Cleartext networking is disabled in the Android build configuration, and the app contains no code to make a request in the first place.
Everything — transactions, categories, budgets, savings goals, recurring entries, merchant names, currency rates and settings — is written to a SQLite database in Oats' own private storage area, readable only by Oats itself. Android's automatic cloud backup is deliberately disabled, so your financial history is never copied to Google Drive.
That is a real trade-off rather than a free win: lose the device without an export and the data is gone. Oats answers it with a backup file you control, and a verification suite — 197 assertions across money, dates, CSV, recurrence, rollover, FX, the schema against a real SQLite engine, and the backup round-trip — so the export is trustworthy when you need it.
What it does
Verifiable in aeroplane mode
Local SQLite ledger
Transactions, categories, budgets, savings goals and recurring entries, all in a private on-device database with migrated schema versions.
Budgets and rollover
Per-category budgets with month rollover, tested against a real SQLite engine rather than a mock.
Multi-currency
Stored FX rates applied at record time, so historical entries keep the rate they were entered with.
Biometric app lock
Optional Face ID / fingerprint lock. Authentication is performed by the OS — Oats receives a yes/no and never sees biometric data.
Weekly digest
An optional local notification. It carries no figures by default, because notifications render on a locked screen; you can opt into amounts.
Backup and CSV export
A round-trip-tested backup file and CSV export, handed to the system share sheet and deleted from temporary storage as soon as it closes.
Erase and compact
Erasing all data removes every record and then compacts the database file, so deleted rows are not left recoverable on disk.
Verified accessibility and contrast
Automated checks flag pressables a screen reader cannot announce, touch targets under 44pt, and WCAG ratios for every colour pair actually rendered — in both palettes.