Find the right place for each budgeting task
The primary navigation follows the work
- Home points toward setup tasks or the month that needs attention next.
- Plan holds the month library, recurring setup, and the Budget, Breakdown, and Plan and Edit views.
- Activity shows transactions, imports, and whether each transaction is matched to the plan.
- Accounts shows current and projected balances; Reports shows trends and categories and lets you open the transactions behind each total.
- Budget contains the Grouped, Full List, and Calendar modes for reviewing entries from different angles.
- Previous and next month arrows preserve the selected month view while moving between nearby periods.
You can switch the app theme
- The app includes built-in color themes if you want a different look and feel.
- Your theme choice is remembered for later visits on the same browser.
- Changing themes affects the interface styling, not your month data or account setup.
Read a chart and verify the exact amounts
Use charts to spot patterns
- Trend charts compare income, outflow, and net movement across periods.
- Composition charts explain which categories contribute to an outflow total.
- Plan-versus-actual views show where spending or income differed from the plan.
Open exact values when you need them
- Each chart includes labels and a written summary, so color is never the only explanation.
- If you prefer a table or use assistive technology, open the exact values.
- Open the transactions behind a report total whenever you want to check it.
What changes when you close a month
Totals saved at close
Closing saves the totals you reviewed and the transactions behind them. Reports clearly label those values as the closed-month totals.
Current calculation
If something changes later, reopen the month, correct the transaction, and close it again to save the updated totals.
Back up and restore your whole budget
What the backup area supports
- Exports include your accounts, months, categories, plans, transactions, imports, and closed-month totals.
- Optional password encryption for downloaded export files.
- Preview a restore before it replaces your current data. Restore previews expire after 15 minutes.
- After confirmation, Backup v2 exports and restores continue in the background. You can leave the page and return to their saved status.
- A restore package can contain up to 100 MB or 250,000 normalized records.
- Download an example if you want to see what a backup contains.
Keep accounts, months, and transactions connected
- Backups preserve the links between accounts, plans, transactions, imports, and closed months.
- You can still import backups from supported earlier releases.
- A generated Backup v2 export remains available to its owner for one day.
- Before replacing current data, the app creates an encrypted safety copy that you can restore for seven days.
- Application exports complement PostgreSQL and server backups; they do not replace them.
Preview every restore first.
Check what will be replaced before the 15-minute preview expires, keep the safety-copy password secure, and retain your server backup until the restored budget is verified.
How self-hosted updates work
Pin a release so updates happen when you choose
- Pin production installs to a versioned image such as
ghcr.io/taimoorq/expense_tracker:v2.1.0.
- Read release notes before changing the tag.
- Pull the new image, restart the stack, and let the
web service prepare the application, cache, and queue databases during startup.
- Confirm both the
web and dedicated worker services are running before starting background work.
- When upgrading an existing budget to 2.0, follow the compatibility checks in Getting Started before completing the switch.
- Open Home, Plan, Activity, Accounts, Reports, and Backup, then export a fresh backup.
Use source updates when you run from git
- Export a backup before pulling changes.
- Pull the repository, review environment variable changes, and restart through the normal setup flow.
- Do not run the sample-data command as part of a routine production update.
- Keep the README update instructions nearby for HTTPS, Docker, and environment-specific details.
Know when an update is available
The app can show an Update Available prompt when a new release is ready.
Open the install and upgrade guide for exact commands
The GitHub README covers published images, production Compose commands, HTTPS, environment variables, and the exact upgrade and rollback sequence.
Back up before you change anything.
Export a backup before changing image tags, pulling source changes, moving servers, or testing a restore path you have not used before.
Choose your starting path
Connect with SimpleFIN
Bring in read-only bank balances and transactions, review the evidence, then use the shared planning and reporting workflow.
Follow the SimpleFIN walkthrough
Track without a connection
Add accounts, record transactions yourself or import statements, review balances, and close the month. No provider subscription is required.
Follow the manual and statement walkthrough
You can mix approaches account by account and connect later. Recurring setup is optional. Your timezone lives in Settings → Workspace.
Understand sources, actuals, and payment states
- Recorded actual
- Accepted posted income or spending, dated to the transaction month. Includes unplanned activity; pending and reversed records are excluded.
- Matched to plan
- The amount allocated to a planned item in its planning month. A partial or cross-month match can differ from recorded actual.
- Unallocated actual
- The remaining amount of recorded activity after its matches, including partial matches. It is valid to leave activity unplanned.
- Reserved payment
- A recorded payment waiting for clearing evidence. Match a bank transaction or confirm its clearing date manually from Payments clearing; a fresh balance alone does not settle it.
- Bank evidence attached to an existing transaction
- Source confirmation for a manual or statement movement already recorded. Attaching and detaching changes the evidence link, while retaining the original transaction.
- Source date and last checked
- The source date says when the balance applied. Last checked says when the app fetched data. Refresh does not make an old bank balance current.
Use source labels and transaction links in Activity and recurring suggestions to inspect the evidence. Review the connected or manual and statement walkthrough for the complete path.
SimpleFIN bank data and transaction times
Accounts starts with your net worth and tracked accounts. Expand Net worth history for trends, or open an account for its app balance, projection, and recent activity. How this balance is calculated reveals source evidence; Movement and history reveals charts and exact records. Manage groups snapshots, recurring connections, import history, and account settings.
From Accounts → Bank connections, create an app-specific Setup Token at SimpleFIN Bridge and paste it into your self-hosted app. Map each discovered account to an existing account or create one. Tracked accounts shows App balance and Bank balance side by side, with source dates and a visible review action when needed. Open the account name for details, or use its ••• menu for imports, balance edits, and connection settings. A separate SimpleFIN subscription is required; bank sign-in and billing happen at SimpleFIN.
Review a bank balance before using it in app calculations. Confirm whether the bank already included your recorded payments and activity on the balance date. The bank source time and last refresh attempt are shown separately. Available balances are labelled separately, and credit-card availability is not cash for bills.
Optionally fetch recent transactions, review posted activity, match existing plans or recorded payments, and pair transfers when both sides arrive. Pending activity remains separate. Matching a payment settles its reservation without deducting it twice. Review possible CSV or manual duplicates before accepting new activity. Undo acceptance to correct a match; closed months must be reopened first.
Refresh manually with a 15-minute cooldown, or opt into twice-daily refreshes. Data depends on when each institution updates SimpleFIN. Missing or failed accounts retain their last saved balance. The app supports the workspace currency; other currencies are excluded.
Entry forms offer an optional transaction time. Untimed incoming money sorts first and untimed debits last on their date, without showing assumed times. Set the workspace timezone under Bank connections. Explicit times are retained in cloning and backups.
Portable Backup v2 includes bank history and payment evidence, but excludes access credentials. Restored connections are disconnected until reconnected with a fresh token. Disconnecting keeps saved financial history; revoke the app at SimpleFIN to remove remote access too. New signups initialize the supported ledger automatically. Existing workspaces retain the audited operator upgrade process.
Where help, release notes, and docs live
In-app help
The Help page inside the app stays useful for first-run orientation, screen-by-screen reminders, and
quick links to the most common next steps.
Release notes and this hosted guide
Read the in-app release notes to see what changed. Use this guide whenever you need setup,
workflow, or recovery instructions before or after signing in.
Related workflow pages
Need setup help?
Go to Getting Started for installation, safe upgrades, Home, accounts, and recurring transactions.
Need month-building help?
Go to Monthly Workflow for planning, Activity matching, account reconciliation, Reports, close, and reopen.