Balance
Private offline bank balance dashboard
Version: 1.16.0
Added: 03-09-2026
Updated: 26-09-2026
Added: 03-09-2026
Updated: 26-09-2026
Balance reads supported bank balance SMS messages locally and shows the latest balance for each bank — split per account number when the bank SMS states one — plus the combined total.
Currently designed for users in Iran, with support for Iranian banks and Persian bank SMS formats. A Display menu (footer) holds the calendar, currency, language, theme and history selectors: the Calendar setting switches the app's calendar system between the Persian (Jalali) calendar for Iran (the default) and the Gregorian calendar, with localized month and weekday names for both; the Currency setting picks the value and unit shown next to amounts — Toman (the default), which divides the rial figure by ten exactly as before, or Rial as stored, or any custom currency you type, which show the raw number under their own label; the Language selector overrides the interface language; the Theme setting switches between the system default, a forced dark and a forced light mode; the Stale balance warning sets how long a balance can go without a bank SMS (off, or 3, 7, 14 or 30 days) before it is flagged; and the History expand-all (on / off) opens every year, month and day of the history breakdown instead of only the current one. No exchange rates are applied — everything works fully offline.
Features:
- First-run introduction on a fresh install: three short pages explain what Balance reads and how it stays offline and private, then ask for SMS access in context during the introduction rather than with a bare dialog over an empty dashboard — skippable at any time, never shown again after that, and re-openable anytime from the About screen
- Offline SMS parsing with no internet permission
- Latest balance per supported bank, split per account number when stated, without duplicate accumulation
- Combined balance total
- Currency unit choice (Toman / Rial / custom name) shown next to amounts
- Persistent privacy masking for balances
- Balances update automatically as bank SMS arrive, plus pull-to-refresh from the top of the bank list or the history screen (full, per-bank or per-account) — a pull refreshes balances, the widget and history together
- Data-freshness warning: a bank whose last balance SMS is older than the configured window (off / 3 / 7 / 14 / 30 days) is highlighted with an amber ring, an amber amount and an "N days" badge on its card, and an amber amount in the home-screen widget — so you always see how fresh today's totals are before trusting them
- Home-screen widget mirroring the same bank order, totals and privacy mask; it locks together with the app when the lock is enabled
- Transaction history with deposit and withdrawal tracking per day, month and year, refreshing automatically as new bank SMS arrive or on demand by pulling down, with out-of-order messages (like a transfer and its fee) shown in their true order; the current year, month and its days start open, and the Display menu's "History: expand all" option opens every year, month and day instead
- Filter history by movement type (all, deposits or withdrawals) and by date — today, this month, this year or a custom date range in the active calendar (Persian for Iran, Gregorian for International) — applied to the whole screen
- Export exactly what the transaction history currently shows to a CSV file via the system file picker — the active bank, account, movement type and date range (the full history when no filter is active) — with ISO-8601 UTC timestamps, the date in the active calendar, raw signed rial amounts, the amounts as displayed with their currency unit, and your transaction notes
- Per-transaction notes: tap any history row to add or edit a private note to that movement; the note follows the transaction in every filter and view, and is included in CSV exports and encrypted backups — it is never touched by rules-driven re-scans, survives resets (unless you opt in to deleting it), and stays when an older backup without notes is restored
- Bank rule updates rebuild histo
Currently designed for users in Iran, with support for Iranian banks and Persian bank SMS formats. A Display menu (footer) holds the calendar, currency, language, theme and history selectors: the Calendar setting switches the app's calendar system between the Persian (Jalali) calendar for Iran (the default) and the Gregorian calendar, with localized month and weekday names for both; the Currency setting picks the value and unit shown next to amounts — Toman (the default), which divides the rial figure by ten exactly as before, or Rial as stored, or any custom currency you type, which show the raw number under their own label; the Language selector overrides the interface language; the Theme setting switches between the system default, a forced dark and a forced light mode; the Stale balance warning sets how long a balance can go without a bank SMS (off, or 3, 7, 14 or 30 days) before it is flagged; and the History expand-all (on / off) opens every year, month and day of the history breakdown instead of only the current one. No exchange rates are applied — everything works fully offline.
Features:
- First-run introduction on a fresh install: three short pages explain what Balance reads and how it stays offline and private, then ask for SMS access in context during the introduction rather than with a bare dialog over an empty dashboard — skippable at any time, never shown again after that, and re-openable anytime from the About screen
- Offline SMS parsing with no internet permission
- Latest balance per supported bank, split per account number when stated, without duplicate accumulation
- Combined balance total
- Currency unit choice (Toman / Rial / custom name) shown next to amounts
- Persistent privacy masking for balances
- Balances update automatically as bank SMS arrive, plus pull-to-refresh from the top of the bank list or the history screen (full, per-bank or per-account) — a pull refreshes balances, the widget and history together
- Data-freshness warning: a bank whose last balance SMS is older than the configured window (off / 3 / 7 / 14 / 30 days) is highlighted with an amber ring, an amber amount and an "N days" badge on its card, and an amber amount in the home-screen widget — so you always see how fresh today's totals are before trusting them
- Home-screen widget mirroring the same bank order, totals and privacy mask; it locks together with the app when the lock is enabled
- Transaction history with deposit and withdrawal tracking per day, month and year, refreshing automatically as new bank SMS arrive or on demand by pulling down, with out-of-order messages (like a transfer and its fee) shown in their true order; the current year, month and its days start open, and the Display menu's "History: expand all" option opens every year, month and day instead
- Filter history by movement type (all, deposits or withdrawals) and by date — today, this month, this year or a custom date range in the active calendar (Persian for Iran, Gregorian for International) — applied to the whole screen
- Export exactly what the transaction history currently shows to a CSV file via the system file picker — the active bank, account, movement type and date range (the full history when no filter is active) — with ISO-8601 UTC timestamps, the date in the active calendar, raw signed rial amounts, the amounts as displayed with their currency unit, and your transaction notes
- Per-transaction notes: tap any history row to add or edit a private note to that movement; the note follows the transaction in every filter and view, and is included in CSV exports and encrypted backups — it is never touched by rules-driven re-scans, survives resets (unless you opt in to deleting it), and stays when an older backup without notes is restored
- Bank rule updates rebuild histo