The Assets tracker is where you record what you own. It's separate from the budget on purpose: a savings account isn't a category, it's a place where money lives. Assets feeds the net-worth view in the Lab and powers savings-target, emergency-fund, and net-worth goals in Lab — Goals.
Open it
Go to Assets in the main nav.
Add an asset
- Tap Add Account.
- Pick a type:
- Checking / Savings / HYSA — everyday cash accounts.
- Brokerage — taxable investing.
- 401(k) / IRA / Roth IRA / HSA / 529 — tax-advantaged retirement and education.
- Real estate — primary residence, rental, land.
- Vehicle — car, RV, boat.
- Crypto — wallet or exchange balance.
- RSU — vested or pending equity.
- Other — anything that doesn't fit above.
- Enter:
- Account name and institution.
- Current value and valuation date — the date the value is accurate as of.
- Interest rate (if applicable).
- Tax-advantaged flag — check if it's a retirement-style account.
- Emergency fund flag — check to designate this account as part of your emergency reserve.
- Save.
Track holdings inside an investment account
Brokerage, 401(k), IRA, Roth IRA, HSA, 529, and crypto accounts can hold more than one number. Open the account and add the individual positions inside it — the ticker or fund name, which asset class it belongs to (US stock, international, bonds, real estate, crypto, cash, other), its current market value, and, if you want them, the share count and what you originally paid.
The account's headline value tells you what it's worth. The holdings tell you what it's made of — which matters the moment you want to know how much of your retirement is actually in stocks versus bonds, rather than just what the total says.
Uninvested cash is figured out for you, not typed in. Say the account is worth $10,000 and you've entered $8,500 across your positions — BudgetLabs shows the remaining $1,500 as a line called Uninvested cash. You never enter that number; it's just the account's value minus what you've recorded in positions. If your positions ever add up to more than the account's value — a stale price, a sale you haven't reflected yet — a warning appears so you know the two numbers disagree and it's worth a look.
Removing a holding closes it, it doesn't erase it. Sold out of a position entirely? Remove it from the list, and BudgetLabs marks it closed rather than deleting it — its value history stays intact. If you buy back into the same symbol later, add it again as a fresh entry.
Values are manual, same as the rest of Assets — nothing here syncs with your brokerage. You type in what a position is worth when you sit down to review, and every update you make becomes another point in that position's own value history automatically. Or don't type it: see below.
Scan a statement instead of typing it
Twelve positions is seventy-two fields by hand, every quarter. So drop the statement on instead.
Open the account, expand Holdings, and drag a statement onto the box — a PDF straight from your brokerage, or a screenshot of the positions page. BudgetLabs reads the positions out of it and fills the form in for you: ticker, security name, asset class, market value, shares, and cost basis, plus the account's total value and the statement's "as of" date.
Nothing is saved until you press Save. What comes back is a filled-in form, not a finished record — read it, fix anything that looks off, then save it like you typed it yourself.
Anything the AI wasn't sure how to classify gets flagged, not guessed. A position it couldn't confidently place lands with a "Check asset class" tag next to it. Pick the right class (or confirm the one it suggested) and the tag clears. This is deliberate: a wrong asset class doesn't look wrong — it just quietly skews your allocation chart.
Scanning next quarter's statement updates what's there. Positions you already have are matched by ticker and updated in place, so their value history carries straight on. Positions the statement doesn't mention are left alone rather than removed — if you actually sold out of something, remove it yourself.
Works on PDFs and images (PNG, JPG, WebP) up to 8 MB. A text-based PDF is read directly; a scanned or photographed one goes through image recognition, up to 10 pages.
On the free plan you get one scan — one for the account, not one per day — and then it's a Pro feature. Pro accounts scan as often as they like. A scan that fails or finds no positions doesn't count against you. Adding holdings by hand is free and unlimited on every plan.
Your statement is read and thrown away. It's sent to our AI provider to be parsed and is never stored by BudgetLabs — see Security and privacy.
Watch your mix change over time
Underneath the donut, once you have recorded values on at least two different dates, an Allocation over time chart stacks your portfolio by asset class across your whole history.
The donut answers "what is my mix?". This answers "what has it been doing?" — a bond sleeve quietly shrinking, or crypto creeping up as a share of the whole, shows up as a shape rather than something you have to work out from two numbers months apart.
It builds itself. Every time you update a holding's value, that becomes another point in the history. Nothing to switch on, and nothing to backfill — which is also why it is worth recording values when you review, even if little has moved.
Colours match the donut. An asset class is the same colour everywhere on the page, so once you have read one chart you can read the other.
See your allocation vs target
Once you've recorded holdings, tap Allocation at the top of Assets (or go to /assets/allocation) to see the whole portfolio as a mix, not just a total.
Set a target percentage for any asset class you care about — US equity, international, bonds, real estate, crypto, cash — and BudgetLabs compares it against what you actually hold. A donut chart shows your real split; a table underneath lines up actual % against target %, with the drift shown in both percentage points and dollars. Targets are entirely optional, and you don't need one for every class — leave a class blank if you don't have an opinion on it.
Drift gets a heads-up, not an alarm. Any class 5 percentage points or more off its target gets a plain-language callout above the table ("Bonds is 6.2pp under target"), and the same count shows as a small badge on the Allocation button on Assets — so you know before you even open the page whether anything's worth a look. Nothing rebalances on its own; it's information, not an instruction.
The page also breaks your portfolio down by tax treatment — taxable, tax-deferred, tax-free — and, if you hold company stock through an RSU account, shows what share of the whole portfolio that is and how much of it has vested versus not.
Update a value
Asset balances don't auto-sync (we don't link to your bank). Update them on a cadence that makes sense:
- Cash and HYSA — monthly, when you reconcile your budget.
- Brokerage / retirement — monthly or quarterly.
- Real estate — once or twice a year.
To update, open the account, change the Current value and Valuation date, and save. The history is retained.
The total-value chart
The card at the top of the page plots your combined asset value over time, with dollar amounts down the left and dates along the bottom. Hover any point for the exact total on that day.
Four buttons choose the stretch of time:
| Range | Covers |
|---|---|
| YTD | January 1st of this year onward |
| 1Y | the last twelve months |
| 3Y | the last three years |
| All | every value you have ever recorded |
The gain or loss shown under your total is measured over the range you picked, so switching to 3Y reports the three-year change rather than the twelve-month one. Your choice is remembered on that device.
Each range needs at least two recorded values to draw a line; ones you don't have enough history for yet are greyed out. If your history is shorter than the range you pick, a note under the chart tells you when it starts — that's why a longer range can look identical.
Every time you update an account's value, another point joins the chart — which is the practical reason to update on a cadence rather than only when you remember.
Notifications
On mobile, you can opt into a monthly reminder to update your asset balances. See Settings > Notifications.
Grouping and collapsing
Accounts are grouped by institution, and each group sits inside its own bordered panel tinted with that institution's colour, with a matching dot beside the group name — so it's obvious at a glance where one bank's accounts end and the next begins. BudgetLabs generates a starting colour from the institution's name — there's no fixed palette, so different institutions get different colours — and it stays put as you add, remove, or re-sort accounts.
You can change it to any colour you like. Tap the coloured dot next to an institution and use the colour picker, or type a hex code. Reset returns it to the generated default. Your choice applies to that institution everywhere it appears — Assets and the Debt tracker both — so if Chase holds your checking account and your credit card, both show the same colour. It's saved to your budget rather than your browser, so it follows you to your phone, and everyone sharing the budget sees the same colours.
Two levels of collapsing, both remembered on the device you're using:
- A whole institution — tap the group header to fold every account under it.
- A single account — tap the chevron on the card to fold it down to its name, type, institution, and current value. The collapsed values in a group still add up to the group's own total.
Nothing is hidden permanently and nothing syncs between devices: this is a viewing preference, not budget data, so collapsing groups on your phone won't change your laptop.
Closed accounts
When an account closes, mark it closed instead of deleting. Open the account's Edit pencil and switch on Closed, then save.
Closed accounts stop counting toward your active account count, the total value, and the projections, but stay in the historical record. Switch it back off any time.
If you do delete an account outright, any transactions linked to it are unlinked but kept. Goals are different: a goal that tracks the account is deleted along with it, because a savings target or payoff goal only means something in terms of the account it points at. The confirmation tells you how many goals that is, and names them, before the delete happens.
Linking transactions
When you log a transaction that's actually a transfer to a savings account (a paycheck split, a 401(k) contribution), link the transaction to the destination account. The account's balance moves automatically as transactions land.
One thing to know about dates. Each account's Current value is a snapshot — "this is what it held on the valuation date." Linked transactions are counted from that date forward, on the assumption that anything earlier is already baked into the number you typed.
So if you enter a balance as of today and then link a transaction from yesterday, it won't count — the app assumes yesterday's deposit is already in today's balance. If it isn't, set the valuation date back to before the transaction, or update the balance to the figure that includes it. The Total Contributed stat always tells you which transactions are being counted.
Recurring contributions and the forecast line
For accounts you contribute to on a regular schedule — 401(k), IRA, Roth IRA, HSA, 529, brokerage, HYSA, savings, checking — you can record the contribution rate so the projected balance reflects it.
Open the account, click the edit (pencil) button, scroll to the Contributions section, and fill in:
- Your Contribution — amount, cadence (weekly, biweekly, semi-monthly, monthly, annually), and an optional percent (the percent is informational only — it doesn't drive any math). Optional Started On date if you want the projection to delay contributions until a future date (useful when you're modeling a job change).
- Employer Contribution — independent amount + cadence, available on the same set of accounts. The cadences don't have to match yours.
A live "Annualized" line shows what the cadence works out to per year. If your annualized employee contribution exceeds the IRS limit for that account type, a yellow warning badge surfaces both in the modal and on the asset card. The math doesn't cap anything — over-contribution is shown, not blocked, so the projection still tracks what you'd actually contribute.
After save, the asset card shows a Contributing stat (e.g. $500 / biweekly · $13k/yr you + $6.5k/yr employer). The "Show value history" chart adds a dashed forward extension that compounds the existing rate (interest or annual change) plus the contribution stream. The forward horizon matches the backward range you select with the 1M / 6M / 1Y / 3Y / ALL buttons (ALL is capped at 5 years to keep projections defensible without a salary-growth assumption).
Today the contribution config is purely informational + projection — it doesn't generate transactions or budget categories on its own. If you want the actual paycheck deduction reflected in your monthly budget, log a transaction and link it to the account as you do today.
HSA contribution limits
If you have one or more accounts typed HSA, a card appears at the top of the Assets page showing how much has gone in this calendar year against the IRS annual limit — with a progress bar, the percentage used, and how much room is left.
It adds up every HSA in your budget, not each one separately. That matters: under family HDHP coverage the IRS limit is a single cap shared between spouses, so two people can each be under the limit in their own account and still be over it together. If you have more than one HSA, the card breaks the total down by account so you can see who contributed what.
Two settings shape the number:
- Coverage type — pick Family or Self-only on the card itself. This decides which IRS limit applies.
- Age 55 or older — a toggle on each HSA (Edit → the account's settings). This adds that person's catch-up allowance. It's per person, not per household: the IRS requires each spouse's catch-up to be contributed to their own HSA, which is why it lives on the account rather than the card.
Contributions that never hit your budget
Most HSA money arrives as a pre-tax payroll deduction — it never becomes a transaction in BudgetLabs, so there is nothing to link and the card would read $0 for someone who has been contributing all year.
To cover that, each HSA has an Already contributed in <year> field (Edit → the account's settings). Enter the total that's gone into that account this calendar year but isn't logged here — payroll deductions, employer contributions, a lump-sum deposit. The card adds it to whatever you have linked and shows the split, so the number stays auditable:
$4,300.00 of $8,750.00 · 49.14% $500.00 entered by hand + $3,800.00 from linked transactions
The figure is stamped with the year you entered it. When the calendar year rolls over, last year's number stops counting — otherwise a January limit would open with thousands of dollars already spoken for. The card and the account editor both tell you when a figure has gone stale so you can update it rather than wonder where the money went.
The card counts any transaction you've linked to an HSA, plus that manual figure. Include employer contributions — unlike a 401(k), where the employee and employer limits are separate, money your employer puts into an HSA counts against the same annual cap.
Limits are per calendar year and are updated as the IRS publishes them; the card shows which year it's measuring so a stale figure is visible rather than silent.
Net worth
The Lab's Net worth section is just sum(assets) − sum(debt). Open the Lab to see the historical chart and the current snapshot.
Related
- Debt tracker — what you owe.
- Lab — Goals — set savings-target, emergency-fund, and net-worth goals on top of these accounts.
- Hank — ask "what's my net worth?" and Hank will compute it from the same data.