Reports
The Reports page is a dashboard builder. You create named dashboards, place widgets on them, and adjust each widget’s size, position, and resizing handles. On first visit, a default dashboard named Overview is seeded with six widgets preconfigured for common views.
Multiple dashboards
Create, rename, or delete dashboards from the header bar. Each dashboard carries its own period preset and time granularity setting; they don’t affect each other.
Period presets (available on every dashboard):
- Last 30 days / Last 90 days / Last 6 months / Last year / Year to date / All time / Custom range
Time granularity controls how data points group within a period: daily, monthly, quarterly, yearly.
Widget metrics
Choose one of these metric types when adding a widget:
Breakdowns (static values)
| Metric | What it shows |
|---|---|
| Balance by account | Total balance per account in a list |
| Balance by account type | Grouped totals by asset, liability, income, expense |
| Balance by account subtype | Totals by subtype (Checking, Savings, Credit Card, etc.) |
| Pockets allocation | Allocated amounts across pockets (optionally scoped to one account) |
| Tag flow | Total spent per tag over the current period |
| Budget vs actual | Spending from each budget envelope vs money funded into it over the selected period (bars, two side-by-side columns per envelope) |
Reading Budget vs actual
This widget follows the spend-down envelope model: an envelope is a wallet, not an allowance.
- Funded counts every transaction that lands money in the envelope during the selected period — automatic transfer rules and manual money moves alike.
- Spent counts money only when it actually leaves the envelope: a purchase, a transfer to an account, or a move to a different envelope (that one shows the same money as funded, in the same transaction).
- Over budget means spent exceeds funded within the dashboard period you selected. It is deliberately not measured against the envelope’s nominal monthly allowance, and not against the refill cycle the Goals page uses for its own progress figure — pick the period to match the question you’re asking (last 30 days, this quarter, custom range).
- An envelope with no movement keeps its place with both columns at zero. Money that merely sits in the envelope is never counted as spent.
- The per-widget account filter scopes the envelope’s parent account: exclude an account and its envelopes disappear from the chart.
Values convert to your primary currency with the envelope’s parent-account rates — see Budgets & Goals for how envelopes are set up.
Time series (charts over time)
| Metric | What it shows | Chart type |
|---|---|---|
| Account balance over time | Running balance for chosen accounts | Line |
| Tag flow over time | Spending per tag per period bucket | Bars |
| Net worth over time | Combined asset and liability balances | Line |
| Cashflow (income vs expenses) | Income and expense side by side per bucket | Stacked bars |
Donut / ring breakdowns
| Metric | What it shows | Chart type |
|---|---|---|
| Balance by account type | Share of total by account type | Ring |
| Balance by account | Share of total per account (non-archived assets) | Pie |
Widget sizes map to a 12-column grid: Small (3 cols), Medium (6 cols), Large (9 cols), Full width (12 cols). Resize by dragging edges, reorder by drag-and-drop.
Computation
All metrics are computed client-side from your local database. Values convert to your primary currency using stored FX rates. There is no server-side processing.
Exports
The Reports page itself has no export button — data leaves the app from two other places:
- Transactions CSV — the Export button on the Transactions page (next to Import) downloads transaction rows as CSV, honoring your active filters. See CSV Import for the format details.
- Full-database backup — Export database (.sql) on the Configuration page produces a SQL text dump you can open in any SQLite tool for querying.