Spent: β€”
Earned: β€”
β†’
Total Expenses
β€”
Personal + Joint
Total Income
β€”
all accounts
Net Savings
β€”
P→J Transfers
β€”
Revolut** in personal
πŸ“ˆ Monthly β€” Personal vs Joint
🏦 Personal by Category
πŸ‘« Joint by Category
πŸ” Recurring Detected
πŸ”„
Loading…
πŸ”— Transfer Reconciliation
πŸ• Latest Transactions
DateAccountMerchantCategoryAmount
πŸ“‚
Drop statements or click to browse Β· auto-detects Personal vs Joint
Handelsbanken Β· Allkort XLSX Β· Revolut CSV Β· any CSV/XLSX Β· duplicates skipped
Expenses
β€”
filtered period
Income
β€”
β€”
This Month
β€”
Top Category
β€”
β€”
πŸ“ˆ Monthly Spend
πŸ₯§ By Category
πŸͺ Top Merchants
πŸ” Savings Insights
πŸ“Š Budget Tracker
β€”
DateMerchantCategoryNoteAmount
πŸ‘«
Joint transactions appear here automatically
Import from Personal tab or drop here Β· Revolut CSV auto-detected as Joint
Expenses
β€”
filtered period
Income
β€”
β€”
This Month
β€”
Top Category
β€”
β€”
πŸ“ˆ Monthly Spend
πŸ₯§ By Category
πŸͺ Top Merchants
πŸ” Savings Insights
πŸ“Š Budget Tracker
β€”
DateMerchantCategoryNoteAmount
Import Sources
All imported batches. Reassign account or undo an import entirely.
FileImportedFormatAccount#Actions
Auto-detection order:
1. Filename β€” revolut/account-statement β†’ Joint Β· handelsbanken/allkort β†’ Personal
2. Headers β€” InkΓΆpsstΓ€lle/Belopp β†’ Personal Β· Started Date β†’ Joint
3. Cell content scan Β· 4. Default β†’ Personal
Custom Category Rules
Your rules run before built-in ones. Pattern is a case-insensitive text match against merchant name.
Merchant Overrides (set by clicking category badges)
Built-in Rules (read-only reference)
Display Preferences
Customize how data appears.
Currency
Display amounts in
Date Format
How dates appear in tables
Clean Merchant Names
"Willys" instead of "WILLYS HEMMA STHLM T"
Show Original Name Below
Gray raw name under cleaned name
Exclude Transfers from Totals
Don't count Revolut** as expenses
Data Management
All data lives in your browser's IndexedDB β€” never sent anywhere.
Sync between devices:
Export JSON β†’ import on another device. Duplicates skipped automatically.

Via GitHub (private repo):
Commit .json backup to a private repo, download and import anywhere.
Budgets, rules, notes and merchant overrides all travel with the backup.