Drill down into subcategories in Analytics and Expenses/Incomes structure
The problem
I organize everything with nested categories, and my roots are deliberately broad: Personal and Business, each with two or three levels underneath (Business › Rental units › Cleaning). The question I ask every month is "where did the money inside Personal go?", and every category view in MoneyMatter stops at the root:
Dashboard → Expenses structure: root categories only, expenses only, and a slice can't be clicked to see what's inside it.
Analytics → Trends comparison → Category breakdown: root categories only. The % beside each row is the change vs. the previous period, so there's no share of the total. Filtering the page by a category does show subcategories, but flattened to the leaves, so the middle level disappears (
Businessjumps straight toCleaning, skippingRental units).Analytics → Pivot (Category + Subcategory): also root → leaf, skipping the middle level, and dense for this question.
With broad roots, a spend-by-category chart mostly says "Personal vs. Business", and the real question ends up answered by filtering the transactions list by hand.
I'm moving from Buxfer, whose Insights drilldown (click a slice to see what's inside it, breadcrumb to go back) was the report I relied on most.
Proposal
Two small steps, each useful on its own.
1. Analytics: a drillable category breakdown (Trends comparison)
Clicking a category in Category breakdown re-scopes the page to it: the breakdown lists its direct subcategories (each including everything below it), the Monthly comparison bars re-stack by those subcategories, and a breadcrumb at the top (
All › Personal › Food) goes back up.Money booked on the parent itself, not in any subcategory, shows as its own row ("Food · no subcategory").
Each row shows its amount, its share of the current level, and the change vs. the previous period.
The same on the Income tab.
A link from each level to Transactions, filtered by that category and its subcategories.
2. Dashboard: drill in place in Expenses structure
Clicking a slice drills into it inside the widget, with a breadcrumb or back button to go up.
An expenses/income switch in the widget settings.
An "Open in Analytics" link that keeps the category and the period.
Nothing else: no list, trend or transactions. The widget stays a glance.
No backend changes needed. GET /stats/spendings-by-categories already rolls each leg up to its nearest selected ancestor, so categoryIds = [node, ...childrenOf(node)] returns exactly one level, with node itself holding the "no subcategory" part. Splits and linked refunds keep going through the existing allocation engine.
Prototype
I built this as a standalone screen in a small companion app I use with my self-hosted instance (it only talks to MoneyMatter's API). It sends every category id once per period, so each category comes back on its own and the client rolls the tree up: drilling never waits on the network, and the totals match the Expenses structure donut to the cent on my real data (v0.32.0, d666874). The screenshots use synthetic data.

All → Personal → Food → Groceries, back up with the breadcrumb, then the Detail view.

One level: each row's share of the level, its change vs. the previous month, and a chevron where there are subcategories.

Phone width: Business, Business › Rental units, and a leaf with its transactions.
A few things from the prototype that turned out useful, in case they fit:
Detail toggle: every category on its own, ranked, at any depth (the biggest items under Personal, whatever level they sit at).
A fair comparison for a running period: Oct 1–19 against Sep 1–19, not against all of September.
12-month trend of the current category; clicking a month opens it, and "This month" comes back.
The breadcrumb stays pinned while scrolling, so you always know which category you're looking at.
Past six slices, the smallest fold into one grey "Other" slice; the list keeps every row.
Related: Extra levels of categories nesting – 4 or 5. The deeper the tree, the more a drilldown is needed to read it.
Log in to comment and vote
No comments yet
Be the first to share your thoughts.