{{ greeting }}
SpendTracker
πŸ”’ Offline
Finish setup
{{ permProgress }}
Logs payments automatically β€” no manual entry. It just needs these, all processed on-device.
{{ p.icon }}
{{ p.title }}
{{ p.desc }}
βœ“ Done
Grant
Spent this month
{{ monthSpent }}
{{ budgetLabel }}{{ budgetPctLabel }}
🎯 Set a monthly budget
Spent this month
{{ monthSpent }}
{{ budgetLabel }}{{ budgetPctLabel }}
🎯 Set a monthly budget
Spent this month
{{ monthSpent }}
{{ budgetLabel }}{{ budgetPctLabel }}
Set a monthly budget β†’
{{ alertIcon }}
{{ alertText }}
β€Ί
Today
{{ todayTotal }}
This week
{{ weekTotal }}
Avg/day
{{ avgDay }}
Accounts
Manage
{{ a.icon }}{{ a.mask }}
{{ a.name }}
{{ a.balance }}
{{ a.sub }}
Top categories this month
{{ c.e }}
{{ c.name }}{{ c.amt }}
Recent transactions
View all
{{ r.emoji }}{{ r.recIcon }}
{{ r.merchant }}
{{ r.meta }}
{{ r.amtStr }}
tag
–{{ importLinkLabel }}
Transactions
Cancel
⇩ CSV
πŸ”
{{ f.label }}
{{ f.e }}{{ f.label }}
{{ filtCount }}{{ filtTotal }}
{{ bulkCount }} selected
Categorize all
🏷Tag
{{ r.hideIcon }}{{ r.hideLabel }}
{{ r.checkMark }}
{{ r.emoji }}{{ r.recIcon }}
{{ r.merchant }}
{{ r.meta }}
{{ r.amtStr }}
tag
🧾
Nothing here
{{ emptyText }}
Swipe a row left to tag or hide it
Reports
{{ p.label }}
Income vs Expense
{{ periodLabel }}
↓ Income
{{ periodIncome }}
↑ Expense
{{ periodTotal }}
Net cash flow{{ netFlow }}
Spending trend
{{ b.amtShort }}
{{ b.label }}
Where it went
{{ c.e }}
{{ c.name }}{{ c.amt }} Β· {{ c.pct }}
No spending {{ periodLabel }} yet.
By account
{{ a.icon }}
{{ a.name }}{{ a.amt }}
πŸ’³ Credit card utilization
{{ ccName }}
{{ ccUsed }}
of {{ ccLimit }} limit
{{ ccPct }}
πŸ” Recurring & subscriptions
{{ r.emoji }}
{{ r.merchant }}
{{ r.sub }}
{{ r.amt }}
{{ r.cadence }}
Past periods
{{ p.label }}{{ p.amt }}β€Ί
Accounts
Net worth (tracked)
{{ netWorth }}
Bank + cash
{{ assetsTotal }}
Card outstanding
βˆ’{{ ccOutstanding }}
Spending by account
this month Β· {{ monthSpent }} total
{{ a.icon }}
{{ a.name }}{{ a.amt }} Β· {{ a.share }}
No spending yet this month.
{{ a.icon }}
{{ a.name }} {{ a.mask }}
{{ a.typeLabel }} Β· {{ a.txnCount }}
↑ {{ a.spentStr }}↓ {{ a.inStr }}
{{ a.balance }}
{{ a.sub }}
+ Add account
+
Home
Transactions
Reports
Accounts
β‚Ή
SpendTracker Β· now
Γ—
{{ notifTitle }}
Tap to categorize
{{ c.e }} {{ c.name }}
{{ popupTypeLabel }}
{{ popupAmt }}
{{ popupPayee }}
From
{{ popupFrom }}
β†’
To
{{ popupTo }}
{{ popupMethod }}β€’Ref {{ popupRef }}β€’πŸ”— merged
Detection confidence
{{ popupConf }}
Where did this go?
{{ c.e }}{{ c.name }}
Later
Looks like a transfer between your own accounts. Kept out of your spending totals.
It's an expense
Confirm transfer
Back
Save
{{ dEmoji }}
{{ dAmt }}
{{ dMerchant }}
{{ dTypeLabel }}
From
{{ dFrom }}
β†’
To
{{ dTo }}
{{ row.k }}{{ row.v }}
Detection confidence
{{ dConf }}
Note
Original message
{{ dSms }}
Close
{{ dCatBtn }}
Log a cash expense
β‚Ή
{{ c.e }} {{ c.name }}
Cancel
Save expense
Monthly budget
You'll see progress against this on Home.
β‚Ή
{{ q.label }}
Cancel
Set budget
{{ permSheetIcon }}
{{ permSheetTitle }}
{{ permSheetDesc }}
πŸ”’ Processed on-device β€” never uploaded
Not now
Allow
πŸ“¨
Import past bank SMS
Scans your SMS inbox for old bank messages and adds those transactions with their original dates.
Cancel
Scan inbox
Scanning SMS history…
Parsing bank messages on-device…
βœ…
{{ importDoneTitle }}
{{ importDoneDesc }}
Done
β€Ή
Settings
πŸ”’
Private by design
Your money data never leaves this phone. There isn't even an internet permission in the app.
{{ b }}
Security
{{ t.icon }}
{{ t.title }}
{{ t.desc }}
⏻
Lock app now
β€Ί
Automation
{{ t.icon }}
{{ t.title }}
{{ t.desc }}
Merchant rules ({{ ruleCount }})
Learned automatically β€” every match auto-tags.
{{ r.merchant }}β†’{{ r.e }} {{ r.cat }}
Backup
πŸ’Ύ
Encrypted backup
Save an encrypted file to your device
β€Ί
♻️
Restore from backup
Import a previously saved file
β€Ί
SpendTracker Β· fully offline Β· no account Β· v2.0
πŸ”’
Enter PIN
Demo PIN is 1234
Wrong PIN, try again
{{ k.label }}
β€Ή
{{ drillTitle }}
{{ drillSub }}
{{ drillCount }}{{ drillTotal }}
{{ r.emoji }}{{ r.recIcon }}
{{ r.merchant }}
{{ r.meta }}
{{ r.amtStr }}
🧾
Nothing here yet
{{ toastText }} UNDO
Demo
Incoming payment
Fires the next scenario: expenses, a credit-card spend, a self-transfer, a refund, cashback, an ATM withdrawal, even a failed payment β€” each detected differently.
⚑ Simulate payment
Next: {{ nextSimLabel }}
One also auto-fires ~4.5s after load
Try
Β· Swipe a transaction row left β†’ Tag / Hide
Β· Tag once β†’ all of that merchant auto-updates, with Undo
Β· Tap a row for full detail: from β†’ to, method, ref, confidence, SMS
Β· Accounts tab β†’ balances & credit-card utilization
Β· Reports β†’ income vs expense, recurring, by account
Β· Header βš™ β†’ Privacy, PIN lock, rules, backup