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.
- Has a debit card — on chequing, savings, and other cash-style accounts. See below.
- Save.
"Count toward tracked savings"
Switch this on for any account whose balance you want the Tracked Savings Projection on the Lab to follow — and switch it on for as many as you like. A brokerage, a checking account and a high-yield savings account can all count together; the projection sums the ones you pick.
It is deliberately separate from the two flags around it, because they answer different questions. Count as spendable cash answers "can I spend this?", Include in emergency fund answers "is this my safety net?", and this one answers "is this money I am trying to grow?". A brokerage is usually yes to the third and no to the first two.
Nothing is tracked until you say so. The switch is off by default on every account, so turning it on is the only thing that changes your projection.
"Expected annual return"
Investment accounts — brokerage, 401(k), IRA, Roth IRA, HSA, 529 and crypto — carry one more field: an expected annual return, as a percentage. The Tracked Savings Projection compounds each account you track at its own rate, and it deliberately projects no growth for an account with no rate rather than assume a market return on your behalf. Set it here if you want a brokerage to grow in the projection; leave it blank and only your contributions move the line. The asset card shows the rate as Expected return +7.0%/yr.
Vehicles and real estate keep their own appreciation / depreciation rate, which estimates today's value from the purchase price — the same field underneath, a different meaning.
"Has a debit card"
Switch this on for any cash account you can actually spend from directly, and it becomes a payment option on the transaction form: Paid with → Debit cards, alongside your credit cards. A purchase assigned to it lowers its balance, the same way charging a credit card raises that card's.
It's a switch rather than something the app works out, because the account type genuinely can't answer the question. Escrow accounts, sinking funds and holding accounts are all "cash" in exactly the way a chequing account is, and offering them as ways to pay for groceries is noise. You know which of your accounts has a card attached; nothing else does.
Leaving it off changes nothing — the account still links to transactions the ordinary way, under Linked Asset Account.
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.
Everything is on the card — tap Holdings. You don't need to open the account for editing to see what's in it. The header shows how many positions you hold and what they add up to; tapping it lists every position as a table you can sort by any column: symbol, name, asset class, shares, value, or share of the account. It totals the value of everything listed at the bottom, and a cost basis column appears only when your holdings actually have one, so a statement that omits it doesn't leave you reading a column of dashes.
Add a position without opening the account. The Holdings section has an Add holding button — including when the account is empty, where it used to send you to the Edit screen and nothing else. Statement scanning is still the fastest way to enter a whole portfolio at once; adding one position by hand now happens on the card.
Fix a position where you're looking at it. Each row has edit and remove. Correcting a ticker a scan misread, or a share count that came through wrong, is a change to that one holding — you don't re-save the whole account. Editing a holding corrects the valuation already recorded for it rather than adding a new one; to record a new value for the whole account, use Record today's value.
On a phone the holdings appear as cards with a sort control instead of a table, and edit and remove work the same way.
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.
Allocate that cash into what you already hold. When there's uninvested cash to place, an Allocate button sits next to it. Type an amount against any of the account's existing positions and BudgetLabs buys in at the position's current price — the value goes up and, for anything you hold in shares, the share count scales to match, so the price per share doesn't move. A running total keeps you from allocating more than the cash on hand, and whatever you don't place stays right where it was, as uninvested cash. It only moves money into positions you already have — adding a brand-new one is still the separate Add holding button above.
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
Track RSU grants
An RSU account works differently from a brokerage account, and the difference is worth knowing: you record grants, not positions. A grant is one award — the date it was granted, the date it vests, what it's worth, and how many shares it covers.
Grants live on the card — tap Grants. The header shows how many grants you have and what they add up to; tapping it lists each one as a table you can sort by grant date, vest date, status, shares, or value.
Vested or unvested is worked out for you. Each grant is marked against today's date, so what you can actually sell is visible without counting back through dates yourself. A grant with no vest date recorded shows as No vest date rather than being assumed vested — guessing in your favour there would overstate what you hold.
Add, correct, or remove a grant in place. Every row has edit and remove, and there's an Add grant button whether the account has twenty grants or none.
The account's value comes from the grants. Unlike an investment account — where you enter the account's value and its holdings separately — an RSU account's Current Value is the sum of its grants. Add, correct, or remove one and the headline figure re-derives immediately, so the two can't drift apart. That also means there's no "uninvested cash" line here, and no warning about the numbers disagreeing: by construction, they can't.
In the allocation view an RSU account contributes its whole value to US equity rather than being split across positions, and the page separately shows how much of your company stock has vested versus not.
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.
Transfer between accounts
Sometimes the money doesn't come or go — it just moves. Sweeping a checking surplus into savings, funding the brokerage from your high-yield account, topping up the emergency fund: nothing was earned and nothing was spent, so it was never meant to be a budget event. Transfer records the move in one step, without touching your budget.
Two ways in:
- Transfer Assets, in the More menu at the top of the Assets page.
- The Transfer button (the ⇄ icon) on any eligible account card — this one pre-selects that card as the source, so "move this into savings" starts already half filled in.
Either opens a short form with four fields, plus one optional one:
- From — the account the money leaves.
- Into — the account it lands in.
- Count toward a savings category — optional, shown when your budget has a Savings category. Pick one if this move is you funding that goal; leave it on None for a plain transfer.
- Amount — how much you moved.
- Date — when it moved.
Save, and both balances move at once: the source account is drawn down and the destination raised by the same amount.
It never touches your budget, unless you ask it to. A transfer is money changing places, not income or spending, so it's filed under a reserved, excluded Transfer category that the Budget Breakdown doesn't list — you'll see the two halves on the account cards and the Transactions page, not on the Dashboard. The two halves cancel out by design — nothing counts toward Income − Expenses, and your zero-based plan stays exactly as balanced as it was. Your balances tell the truth while the budget stays quiet.
Funding a savings goal? Choose the Savings category on the form and the incoming half is filed under it instead — so the Dashboard shows the amount as saved toward that category this month, the destination account still rises, and the outgoing half still leaves the source account under the excluded Transfer category. Nothing counts as spending. Before this, you had to choose between logging a savings deposit (which left the source account untouched) and a plain transfer (which left the goal looking unmet), and doing both credited the savings account twice.
It's for accounts that hold money you can move — checking, savings, HYSA, brokerage, retirement, crypto, and the like. Vehicles and real estate aren't offered, because you can't sweep a balance out of a car.
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.
Fastest way in: from the account card itself. Expand Show transactions on a savings account's card and tap + Add transaction — it opens the same transaction form, already linked to that account, so you don't have to find it in the picker afterward.
The list is newest first — by date, and within a day by the order you entered them — and any column header sorts it: tap Date, Description, Amount or Balance once to sort, again to flip the direction. It also shows a Balance column: what the account held after each transaction, worked back from its current value. A transaction dated before the account's recorded value shows a dash there — it was already part of the figure you typed, so it never moved the balance on its own. Transfers land in this list the moment you save them, on both cards.
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.
Pre-tax payroll contributions (HSA, 401(k), and the like)
A contribution taken out of your paycheck before tax — an HSA payroll deduction, a 401(k) contribution, employer money — never lands in your budget, because it was never part of your take-home. It is neither an expense nor income, so don't give it an Expense or Income category. There are two ways to record it, and you can use whichever fits:
- Limit-tracking only (HSA). Use the Already contributed in <year> field above. It counts toward the HSA limit with no transaction at all — the cleanest choice for a pure payroll deduction you don't need to see in the account's activity.
- As a linked transaction — when you want the contribution to move the account's value and show under the account's transactions, or you're recording one to a 401(k) or other pre-tax account that has no limit card. Add a transaction linked to that account and give it a Savings category (the amount toggle becomes Savings Deposit). Leave that savings category unplanned — budget $0 for it. It then bumps the account's value and appears in its activity without unbalancing your budget: the dashboard's plan-balance ("over-assigned") check reads only your planned amounts, never actual transactions, so a deposit that exceeds your income raises no warning.
A dedicated, unplanned category — say "Retirement / HSA contributions" — keeps these off to the side. They'll still appear in the dashboard's Savings → Saved total, which reads higher than your take-home since the money is pre-tax; that's expected, not an error. One caution for HSAs: the limit card sums the hand-entered figure and linked transactions, so pick a single method per contribution — entering the same dollars both ways double-counts them against the limit.
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.