v3.5.0
Two major new modules land in this release — Spending & Budgeting and
Allocation Targets & Rebalancing , plus a revamped net-worth dashboard, a
rebuilt performance pipeline, and AI-assisted categorization and classification.
🚀 Major Features
💸 Spending & Budgeting
Full cash-flow tracking, categorization, and budgeting module — enabled by
default on fresh databases.
- New Spending module activated by default in settings
- Categories & taxonomy with icon/color pickers and Phosphor duotone icons
- Categorization rules engine with bundled presets and auto-categorization
- Monthly budgets with groups, targets, rollovers, and copy-from-another-month
- Spending Events timeline with stacked lanes and rich detail panels
- Narrative Insights page with click-to-drill-down, cash-flow buckets, and
FX-aware reporting (#1059, #1063) - Credit-card spending, payment handling, and transfer support (#1067)
- AI categorization for uncategorized transactions
📊 Allocation Targets & Rebalancing
End-to-end allocation and rebalancing planner, delivered across four milestones.
- Target profiles with drift tracking and scope-aware (per-account) profiles
(#1025, #1036, #1041) - Model presets — GICS/region, risk-category, instrument-type (Passive,
Core-Satellite, Diversified) - Exposure-aware greedy drift planner with after-drift-by-category breakdowns
(#1048) - Cash-flow top-up, sell-to-rebalance, and hybrid scenarios (#1054, #1057)
- Whole-shares/fractional modes, min-trade filtering, rebalance goals
- CSV export, copy-as-text, and a redesigned planner UI
🏠 Net Worth Dashboard Revamp (#1024)
- Richer breakdown with per-category items and account-named cash
- New shared
DashboardCardglass component across holdings, goals, budget, and
activity - Row-detail drawers, collapsible breakdowns, pace & momentum redesign
- Mobile polish: compact balances, single-line tabs, actions in the mobile
header
📈 Portfolio Performance Pipeline (#1029)
A rebuilt, backend-owned performance engine. Frontend, Tauri, web, addon, and AI
surfaces now consume a single typed PerformanceResult instead of rolling up
returns in the client.
- True Time-Weighted Return (TWR) — replaces the previous Modified Dietz
approximation. Builds daily valuation periods and links daily returns
geometrically, neutralizing the size and timing of external cash flows
(inflows treated as start-of-day, outflows as end-of-day). - Money-Weighted Return (IRR/XIRR) — dated-cash-flow personal return on an
ACT/365.25 basis, with selected-period and annualized variants. - Value Return — cash-flow-adjusted growth used for holdings-only,
mixed-tracking, and symbol/price scopes where a complete cash-flow ledger
isn't available for TWR/IRR. - Annualized variants for TWR, IRR, and value return.
- Full attribution — contributions, distributions, income, realized &
unrealized P&L, FX effect, fees, taxes, and residual, reconciled to the period
value change (with a warning when residual exceeds tolerance). Realized P&L
comes from persisted lot-disposal slices. - Risk metrics — volatility and max drawdown in full-profile results.
- Scope-aware — account, portfolio, dashboard group, saved portfolio, and
symbol scopes, each with the metric appropriate to its tracking mode plus
data-quality warnings for missing/partial metrics. - Scoped cash flows, transfer-flow resolution, and split disposal income
attribution. - Custom portfolios selectable in the Add-account selector.
🗂️ Multiple Portfolio Reporting Scopes & Account Filters (#964, #995)
- You can now create multiple Portfolios to groups accounts and have a clean tracking, reporting and comparison #938
- Unified AccountScope filter across Holdings, Income, Allocations, Activity
✨ Other Features
- AI Asset Classification preview widget and tools, with apply safeguards
(#1052) - Buy & Sell activity markers on the stock history chart (#981)
- Scoped lots valuation — materialized
lots/snapshot_positionstables,
redesigned asset-lots view (#1002, #1011) - Transaction CSV imports and import profiles in the assistant
- Remember last-selected tab on the portfolio page
- Activity search toggle with date-range support
- 12-hour AM/PM date parsing on import (#1046, fixes #984)
- Health Center surfaces invalid transfer groups
- Embedded addon source removed from the app repo (#989)
🎨 UI & Design
- Refined dashboard typography and category-hierarchy table density
- Dark-mode-safe chart colors and allocation-target color palette
- Income & dashboard history chart scaling and layout improvements
- Broad mobile-layout polish across spending, insights, and dashboard
- Tooltip UI refresh
🐛 Bug Fixes & Improvements
- Backend-owned data exports (#987)
- Liabilities can sit at $0 without a stale warning; future-dated payoffs no
longer show as fully paid or zero out balances (#988, #1045, closes #1033) - Options: contract multiplier applied to option-activity totals (#1058);
expired options excluded from stale valuations - Activity import: resolve symbols → asset_ids on the import path (#856)
- Sync: coverage for recent migrations, transfer-pair cascade delete/update
(#1031), broker patch replay, snapshot restore/repair hardening,
unknown-entity handling (#1053) - Holdings/portfolio cache invalidation on account mutations (#1026)
- Performance/P&L: fixed all-time transaction P&L baseline and date-range
handling (#1049) - Spending: timezone-skew tolerance in event tagging, refund/sign hygiene,
deterministic IDs, stale-data cache fixes - Mobile: bottom-nav overlap (#1040), markdown table overflow & avatar fallback
(#1038), income-chart cumulative axis - Provider-neutral dividend fetching (#1021)
- Provider-neutral Connect activity sync
- Broker sync improvements — Trading212 fixes, account-type normalization,
- Numerous dependabot security patches (#1042)
🙌 Contributors
Thanks to everyone who contributed to this release:
- @afadil — maintainer; Spending, Net Worth dashboard, Performance pipeline,
lots valuation, sync, and more - @Jonjon-prog — Allocation Targets & Rebalancing (M1–M3), Portfolios, portfolio
filters, transfer-pair sync (#964, #995, #1025, #1036, #1048, #1054, #1057,
#1031) - @marcolagos - for initiating the foundations of the spending tracker , #494
- @triantos — materialized lots, unified valuation, relational snapshot positions
#972. Option-activity contract multiplier fix (#1058) - @ChampionBuffalo1 — Buy & Sell activity markers on stock history (#981)
- @loreboldo — liability future-dated payoff fix (#988)
- @eldossjogy — asset-id validation & mobile activity-date default (#1056)
Full Changelog:
v3.4.0...v3.5.0