What's New
Cash Flow Budget Page (#26)
A dedicated Cash Flow page that tracks true cash-basis budgeting — what actually enters and leaves your bank accounts, compared against your GnuCash budgets. Unlike the existing budget page which only tracks income/expense accounts, this captures mortgage principal payments, savings transfers, loan repayments, and other non-expense cash movements.
- Outflows/Inflows tabs showing where cash went and where it came from
- Include transfers toggle to show/hide movements between your own bank/cash accounts
- Opening balance exclusion — equity transactions are filtered out automatically
- Full drill-down hierarchy, budget variance tracking, and progress bars
- New sidebar navigation item with the Banknote icon
Global Exclude Closing Transactions Toggle (#28)
Moved the "exclude closing transactions" control from per-chart toggles to a global button in the header bar, next to the existing hide values and read-only controls. Now applies consistently across all income, expense, and cash flow charts on every page — dashboard, spending, income, and Sankey.
Show Decimal Places on All Values (#25)
All currency values across the app now display with 2 decimal places (pennies/cents). Previously, headings and summary values were rounded to whole numbers.
Income / Expense Flow Rename (#30)
The dashboard "Cash Flow" card has been renamed to "Income / Expense Flow" with a "Net income" subtitle, to distinguish it from the new true cash flow page.
Bug Fixes
Spending/Income Bar Chart Filter (#32)
The monthly bar chart on the spending and income pages now correctly filters when a leaf account is selected in the pie chart. Previously, clicking a child account only filtered the transactions table — the bar chart ignored the selection.
Documentation (#32)
Architecture Guide
New docs/architecture.md covering the complete data flow: file loading → Web Worker (SQLite WASM) → ParseContext → domain functions → DashboardData → React Context → UI components. Includes sections on multi-currency support, closing transactions, file persistence, and the worker communication protocol.
Type Documentation
Comprehensive field-level JSDoc comments on all interfaces in gnucash.ts — both the raw schema types (GnuCashAccount, GnuCashSplit, etc.) and all derived dashboard types (DashboardData, MonthlyNetWorth, BudgetCategoryRow, etc.).
Domain Function Documentation
JSDoc headers on all 18 exported domain functions explaining what they compute, key assumptions (e.g. income negation, quantity vs value for multi-currency), and SQL patterns used.
Internal Improvements
- Extracted shared budget UI components (BudgetSelector, PeriodToggle, YearMonthSelector, SummaryCard, ProgressBars, VarianceTable, etc.) into
components/budget/for reuse between the Budget and Cash Flow pages - Refactored budget page to use the shared components with no functional changes
Full Changelog: v2.0.0...v3.0.0