Budget
The budget page is the core of the app. Navigate to it via the left sidebar or go to /budget.
Zero-Based Budgeting
Every dollar you have is assigned to a category before you spend it. The Ready to Assign number at the top of the page shows how much unassigned money you have. Your goal each month is to get that number to $0.
This is called zero-based budgeting — not because you spend everything, but because every dollar has a job (spending, saving, or investing).
The Three Columns
| Column | What it means |
|---|---|
| Assigned | How much you put into this category this month |
| Activity | Actual spending (negative) and income (positive) from transactions |
| Available | Assigned + rolled-over balance − spending. How much is left to spend. |
Available is always computed — it's never stored directly. It reflects the current state of your transactions automatically.
Month Navigation
Use the < and > arrows at the top of the budget page to move between months. The URL updates to reflect the current month (/budget?month=YYYY-MM), so you can bookmark any month.
Budget Header
The header above the budget table answers three questions at a glance.
Ready to Assign
Your unassigned balance, color-coded:
| Color | Meaning |
|---|---|
| Green | Positive balance — money available to assign |
| Red | Over-assigned — you've assigned more than you have |
The subtext reflects your goal status: "All goals funded", "3 goals need funding", "$120 short of all goals", etc.
Monthly Cost
The total of all monthly goal requirements across every category with a target. This is what it costs to fully fund your budget. Shows "—" if no goals are set.
Month at a Glance
Funded category count (e.g., "24 of 30 funded") with status lines for underfunded and overspent counts.
Spending Pace Bar
A horizontal bar shows total spending / total budgeted with a vertical marker at today's position in the month:
- Green — spending below expected pace
- Amber — near pace (within 15%)
- Red — spending faster than the month is progressing
Text: "$X spent of $Y budgeted" on the left, "Z% of month elapsed" on the right.
Age of Money
Displayed in the budget header as "X days". Age of Money is a weighted-average of how old your dollars are when you spend them, calculated by FIFO-matching recent outflows against historical inflows.
- Higher is better — a 30-day AOM means you're spending money you earned a month ago, giving you a buffer
- Low or rising — means you're spending money almost as soon as it arrives
- Requires at least a few weeks of cleared transaction history to calculate; shows "—" when data is insufficient
Past Overspending Callout
If overspending from previous months has reduced your Ready to Assign, an amber callout shows the amount and instructs you to assign to overspent categories to recover it.
Fund Goals Button
When unfunded goals exist, a Fund All Goals or Fund What You Can button appears. One click assigns money in priority order: soonest target-date goals first, then monthly goals. Target Balance goals are skipped (no specific monthly requirement).
Insights
Below the budget header, a collapsible Insights card surfaces contextual callouts based on your recent activity. These are plain-English observations you can act on — not generic tips.
Insights that may appear:
| Insight | Trigger |
|---|---|
| Spending pace warning | Spending >20% faster than last month before month end |
| Overspend streak | A category overspent 2+ months in a row |
| Idle Ready to Assign | Unassigned balance over $500 for the current month |
| Age of Money milestone | AOM crosses 30 days for the first time |
| Low savings rate | 3-month average savings rate below 10% |
| Milestone proximity | Net worth within 10% of a named milestone |
Insights only appear for the current month. They disappear on their own as the underlying condition resolves.
Assigning Money
Click any cell in the Assigned column and type an amount. Press Tab to move to the next category, or Shift+Tab to go back. Changes are saved immediately.
You can also edit assignments from the Category Drawer (see below).
Category Drawer
Click anywhere on a category row to open the Category Drawer — a fixed panel that slides in from the right. It provides full context and management for that category.
Close it by clicking empty whitespace outside the table, pressing Escape, or clicking ×.
| Section | What it does |
|---|---|
| Header | Editable category name, emoji picker, close button |
| Stats | Assigned (click to edit), Activity, Available |
| Assigned bar | Visual of spent vs. remaining |
| Spending pace | Current month only — bar + last month comparison |
| Goal | View status and progress, or click Edit to set/modify the goal inline |
| Overspending | Radio buttons to control carry-forward behavior |
| Transactions | All transactions for this category this month |
| 6-Month History | Mini bar chart of activity |
| Notes | Free-text notes field (auto-saves) |
| Hide | Removes the category from the budget view |
Category Groups
Categories are organized into groups. Click a group name to collapse or expand it.
Reordering
Drag categories within a group using the grip handle (⠿) that appears on hover. Drag group headers to reorder groups. Changes persist immediately.
Adding a Group or Category
- Add Group — click + Add Group at the bottom of the budget table
- Add Category — click + Add Category within any group
Renaming
Hover a group header or category row to reveal the ⋯ menu → Rename. Press Enter to save.
Hiding and Unhiding
Select Hide from the ⋯ menu or from the bottom of the category drawer. Hidden categories are removed from the budget view but transactions are preserved. To unhide, use Show hidden in the budget toolbar — hidden categories appear dimmed with an Unhide option.
Category Emoji
Click the emoji area in the category drawer header to open a curated emoji picker. The emoji appears before the category name in the budget table.
Overspending Behavior
Each category controls what happens when it goes overspent:
| Mode | Behavior |
|---|---|
| Reset to $0 (default) | Overspending is absorbed by Ready to Assign. The category starts fresh next month. |
| Carry forward | The negative balance rolls into next month. Good for credit card payment categories. |
Change this in the Overspending section of the category drawer. Credit card payment categories default to Carry forward automatically.
Quick Budget Menu
Each category row has a ⚡ button (visible on hover):
| Option | What it does |
|---|---|
| Same as last month | Copies last month's assigned amount |
| 3-month average | Sets the average of the past 3 months |
| Fill to goal | Assigns the exact amount needed to meet the goal |
| Set to $0 | Zeroes the assignment |
Budget Tools Menu
The toolbar above the budget table contains bulk actions:
| Action | What it does |
|---|---|
| Move Money | Transfer between categories |
| Copy Last Month | Copy all assignments from the previous month |
| Fill All to Goals | Set every category's assignment to its goal target |
| Reset This Month | Zero all assignments for the current month |
| Fresh Start | Zero all assignments across all months (preserves transactions) |
Every bulk action shows an Undo toast for 10 seconds. Fresh Start requires confirmation.
Category Search
Press / to focus the search bar. Type to filter categories by name — groups with no matches collapse automatically. Press Escape to clear.
Bill Nudge
If a category has an upcoming scheduled transaction and the available balance is less than the bill amount, an amber Bill due Nth pill appears on the row.
Spending Pace Indicators
Current month only, per category:
Pace dot — a small circle before the Available amount:
- Green: spending below expected pace
- Amber: near pace (±15%)
- Red: over pace
Trend arrow — next to the Activity amount:
- Up (red): spending more than last month (>+10%)
- Down (green): spending less than last month (>−10%)
Hover either for a tooltip with exact percentages.
Goals
See Goals & Targets for documentation on Monthly, Target Balance, and Target Date goals, snoozing, and the Fund All Goals feature.