A transaction is anything that moves money. The transaction list at Transactions is the searchable record of everything you've logged.
Add a transaction
- Open Transactions (or tap the + floating action button on the Dashboard).
- Tap Add Transaction.
- Enter:
- Amount
- Date (defaults to today)
- Description
- Category — start typing the name; matching categories surface as suggestions.
- Save.
The Dashboard's progress bar for that category updates immediately. Switch tabs and back; the new transaction is at the top of the list.
Edit a transaction
- Open Transactions.
- Tap the transaction.
- Change any field — amount, date, description, category.
- Save.
Edited transactions update both the transaction list and the affected month's totals.
The form's groups
The form keeps what every transaction needs in view — amount, description, category, date and budget month — and folds the rest into two groups you open with a tap on their header:
- Accounts — Linked Asset Account, Linked Debt Account and Paid with.
Collapsed on a new transaction. It opens by itself when the transaction is
already linked to an account, and the collapsed header names the link
(
Accounts · Account: Chase Checking · Paid with Amex), so you can see what a row is attached to without opening it. - Attachments — the receipt drop zone. Opens by itself when the transaction has files, with the count in the header.
Split and spread sit under the category as one row: Split across categories and Spread over months.
The row menu — every action in one click
On a desktop-width screen, right-click any row in the Transactions table (or click its ⋯ button) to open a menu with every common action on that transaction, without opening the edit form first:
The menu is grouped by how far each action reaches — what changes the amount, what the transaction is attached to, what affects rows beyond this one, what copies to your clipboard, and what creates or destroys the row:
- Split across categories… / Amortize over months… / Mark portion reimbursable — the three ways one charge's amount gets divided up (see below).
- Assign to card — set which credit card, or which checking/debit account, this purchase was paid with, straight from the menu (see below). Also here: Attach receipt… / View receipts and Mark as annual event… — the other things a transaction can be attached to.
- Always categorize "…" as … — create an auto-categorization rule from this row's merchant and category in one click. With Show all from "…" and Show all in …, which filter the table to the same merchant or category — the actions whose effect is felt beyond this single row.
- Copy description, Copy amount.
- Duplicate transaction, Edit transaction, Delete transaction.
Right-click and the ⋯ button open the exact same menu, so nothing is available from one and missing from the other. On a phone, use the Edit / Mark portion reimbursable / Delete buttons on each transaction card instead — the row menu is desktop-width only.
Split a transaction across categories
A single charge can legitimately cover more than one budget category. The classic example: a $300 family cell-phone bill where $100 is really a business expense, or a Costco run that's $200 of groceries plus a $50 tool. Splits let you record the bank charge once and have it show up in the right categories on your dashboard.
- Start a transaction the normal way (Add Transaction or the + action on a category row).
- Below the Category field, tap Split across categories.
- Two starter rows appear, each set to half the amount. Edit them:
- Pick the category for each row.
- Toggle between $ (absolute amounts) and % (percentages) at the top of the split section.
- Tap Add row to split across more than two categories. Tap the × next to a row to remove it. If you leave exactly one row's amount blank, it auto-fills with whatever's left to reach the transaction total (or 100% in percent mode) — start typing in that row any time to override it.
- The sum indicator at the bottom right shows your running total. It's green when the rows balance to the transaction total (or to 100% in percent mode) and amber when they don't.
- Tap Add & Close. The bank statement still sees one $300 charge; your dashboard sees the breakdown across each category.
When to use percent mode. Percentages are the right pick for recurring splits — the AT&T bill where the business share is always 33%. Next month when the bill is $310 instead of $300, the split stays 33/67 instead of getting stuck at the original dollar amounts.
Editing a split later. Open the transaction, change anything you need, and save. If the amount changes on a single-category transaction, the dashboard updates automatically. For an already-split transaction, re-open the split section and adjust the rows.
Deleting a split. Deleting the transaction removes the split too — there's no separate "remove split" step.
Spread a transaction over multiple months (amortize)
Sometimes one charge covers months of value — an annual software license, a yearly insurance premium, a 12-month gym membership paid up-front. Recording the full hit in a single month distorts that month and hides the cost from every later month. Amortization spreads the expense evenly across months so each month sees its share.
- Start a transaction the normal way and pick the right category.
- Below the Category field, tap Spread over months.
- Enter the number of months (default 12) and the start month (defaults to the transaction's budget month).
- The preview line shows what each month will look like — e.g. $100.00/mo × 12 months — Apr 2026 → Mar 2027.
- Tap Add & Close.
The bank statement still sees the original full-amount charge on the transaction date. Your dashboard shows only one month's share at a time. Future months show their share automatically as you navigate forward.
When NOT to amortize. If the charge really is a one-month expense (a single grocery run, a regular phone bill), don't amortize — that just hides legitimate spending. Amortization is for prepaid services that genuinely span multiple months.
Combining splits and amortization. Today the form supports either splitting or amortizing on a single transaction. The data model handles both at once (e.g. a $1,200 software license, half personal / half business, spread over 12 months), so future versions of the form will let you mix them. For now, pick the one that better describes the spend.
Default split for a category (recurring split rules)
If the same transaction always splits the same way every month — your phone bill that's always 67% personal and 33% business — set up a Default Split on the source category instead of re-doing it each time.
- Open Categories and edit the source category (e.g. Cell Phone).
- Expand Default Split.
- Pick a target category (e.g. Business Expenses) and enter the percent that should go there (e.g.
33). Add as many target rows as you need; the residual stays in the source category. - Save.
From then on, when you add a transaction to that category, the form shows a small "💡 This category has a default split — Apply" prompt. Tap Apply and the split section opens already filled in. You can still adjust before saving.
Because templates are stored as percentages, they keep working when the bill amount changes month to month — next month's $310 bill still splits 67/33, not stuck at the old dollar amounts.
Edit many transactions at once
Every row has a checkbox, and the table header has one that ticks everything on the page. As soon as anything is selected, a bar appears above the list showing how many you have and what you can do to all of them at once:
- Assign to card — the same credit-card and debit-card picker as the row menu, including None (clear). This is the fastest way to attribute a whole statement's worth of purchases to the card that paid for them.
- Change category — re-file everything selected. The card or account each row is attached to is left exactly as it was.
- Change budget month — move the selection into a different budget month.
- Delete — asks first, and tells you how many it is about to remove.
Seeing which card paid for what
Every row paid with a card carries a small mark next to its description — VISA, MC, AMEX, DISC for the big four, the company's own name for anything else you typed ("WILDFIRE", "CHASE"), or a neutral CARD when nothing is known. A row with no mark is a row not yet assigned to anything, which makes the ones still needing attention easy to pick out.
The same mark appears on a purchase paid with a debit card, so a checking account you actually spend from is just as easy to pick out.
BudgetLabs works the brand out from the account's name, so a card called "Chase Freedom Visa" is marked correctly with no setup. When the name gives nothing away — "Chase Sapphire Preferred" is a Visa and does not say so — set it yourself in Card company: on the Debt page for a credit card, or on the Assets page for an account with Has a debit card switched on. The box suggests the common ones (Visa, Mastercard, American Express, Discover, Chase, Capital One and more) and accepts anything else you type, because a card carries whatever is printed on it.
Selection covers the page you are looking at. Turning the page or changing a filter starts fresh, so nothing you cannot see can be caught up in an action. Up to 200 rows at a time; beyond that, narrow the filter first.
If a row cannot take the card you picked — because its category is already set to pay that same card, which would count the money twice — it is named and left alone, and everything else still goes through.
The checkboxes work on a phone too, where the row menu is not available.
Search and filter
The Transactions page supports several filters at once:
- Date range — start and end dates.
- Category — a searchable field. Tap it and type part of a name to find a category, instead of scrolling a long list.
- Type — income, expense, savings.
- Budget month — restrict to a specific month.
- Free-text search across descriptions.
- Rows per page — show 25, 50, 100, or all matching transactions.
Filters are stackable, and the list re-sorts as you adjust them.
Sorting. On desktop, click a column header. Below 1024px (phones and iPad portrait) the list shows as cards with no headers, so a Sort picker above it offers Recently added, Date, newest first and Date, oldest first.
Delete (and undo)
- Open the transaction.
- Tap Delete.
- Confirm.
Just deleted something by accident? Use the Undo action that appears immediately after delete. It restores the transaction with all original fields.
If you've moved on, you can also re-create the transaction by hand — totals will rebuild themselves.
Bulk-load history
You don't have to log historical transactions one at a time. See:
- CSV import — paste the rows from a bank or card CSV export.
- AI bank statement import — paste raw bank data and let Hank parse it.
- Receipt scanning — snap a photo for a single transaction.
Mark an allocation as reimbursable
When part of a charge will be paid back to you — a team lunch on your card, a medical copay your employer reimburses, a shared Airbnb — mark that allocation as reimbursable so it doesn't inflate your budget while you wait to be paid back.
- Open the transaction and find the allocation row you want to flag.
- Tap the Mark as reimbursable action on that row.
- Optionally add a memo (e.g. "owed by Sarah — team dinner") so you remember the context.
- Confirm. The allocation now shows a Reimbursable badge in the category's Transactions tab on the Dashboard (tap the row to open it) and is excluded from your budget rollup.
To review everything still outstanding, look for the Outstanding Reimbursables panel in Transactions. Each item shows how much has come back so far — "$40 of $120 back".
Record a repayment when the money comes back
When someone pays you back, record it against the reimbursable so your accounts stay honest and you can watch what's still owed shrink.
- Open the Outstanding Reimbursables panel in Transactions.
- Tap Record a repayment on the item that was paid.
- A short, category-free form opens with three fields:
- Amount — how much they paid you this time.
- Received into account — the checking or savings account the money landed in.
- Date — when it arrived.
- Save. The money is added to the account you picked — so your checking balance reflects the deposit — and the outstanding balance draws down by that amount.
Repayments can arrive in installments. If your daughter Venmos you back for half of a car repair over three payments, record each one as it lands: every payment adds to your account and shrinks what's still owed. Once the reimbursable is fully repaid it settles automatically and drops off the outstanding list.
Because the allocation was already excluded from your budget, recording a repayment never re-charges the original category — it just moves the real money and closes out the loan.
Auto-saved rename rules
Renaming a transaction description teaches the app to apply that name automatically to future imports of the same merchant.
- Edit a transaction and change its description (e.g. rename "AMZN Mktp US*2X4B9" to "Amazon").
- Save. A toast appears: "Rule saved: future imports from [original name] will be renamed to [new name]."
- Tap Undo in the toast if you didn't mean to create a rule. Otherwise dismiss it.
- The rule is now saved in Settings → Rules, where you can edit or delete it.
From now on, any Smart Import or CSV import that brings in a transaction with the original bank description will automatically apply your preferred name — you only need to rename once.
Adjust the amount on a transaction
Banks post transactions before tips clear — a $45.00 restaurant charge lands in your statement, but you paid $55.00 cash on top. Or you split a dinner bill in cash and only want to record your share. The amount override lets you correct the figure without losing the deduplication benefits of the original import.
At import time
In the Smart Import preview, click any amount cell. A small popover opens:
- Enter the adjusted amount (e.g.
55.00). - Optionally type a reason (e.g. "added $10 cash tip").
- Click outside or press Escape to close.
The row in the preview now shows your corrected amount. Import as normal.
On an existing transaction
- Open Transactions and tap the transaction.
- Change the Amount field.
- An optional Reason for adjustment field appears — fill it in if you want a note attached.
- Save.
What happens behind the scenes
- The Dashboard and all budget totals use your adjusted amount.
- BudgetLabs stores the original bank-reported amount privately so re-importing the same statement still detects the transaction as a duplicate (the dedup check uses the bank figure, not your edit).
- A small +$X.XX · reason badge appears on the transaction row in the Dashboard and Transactions table.
Undoing an override
To clear the override, set the amount back to the original bank value. The badge disappears and the adjustment reason is removed.
Attaching receipts and documents
You can attach supporting paperwork — a receipt photo, a PDF e-receipt or invoice, or an email — directly to any transaction for record-keeping.
How to attach a file
- Open the New Transaction or Edit Transaction modal.
- In the Attachments section, either:
- Drag and drop a file anywhere onto the drop zone, or
- Click to browse and pick one from your device.
- Accepted file types: photos (JPEG, PNG, WEBP), PDFs, and emails (
.emlfiles, or HTML / plain-text emails dragged straight from Outlook, Apple Mail, or Gmail). - You can attach multiple files to a single transaction — add them one at a time or drop several at once.
- Save the transaction. Attachments are stored immediately; they appear as a list under the modal's Attachments section.
Viewing and removing attachments
- Saved attachments appear as a list on the transaction detail view. Tap any row to open the file via a short-lived signed URL (links expire automatically for privacy).
- To remove a file, tap the × next to it in the list.
- Transactions with at least one attachment show a small paperclip next to the description in both the Dashboard category lists and the Transactions table, so you can spot which entries have paperwork without opening them.
Receipt scanning + attachment
When you tap the Scan receipt camera button, BudgetLabs extracts the amount, merchant, and date into the form as before — and now also keeps the photo as an attachment automatically. No extra steps needed.
Privacy note
Attachments are stored in your private receipts bucket, scoped to your account by row-level security, and served only via short-lived signed URLs you request. Files are never shared with third parties. Removing an attachment deletes both the metadata row and the file from storage.
Linking transactions to assets and debt
If a transaction is a transfer to a savings account or a payment toward a debt, you can link it to the matching account in Assets or Debt — the account's balance moves automatically. See those articles for details.
Assign a purchase to the card or account that paid for it
Most transactions aren't transfers or debt payments — they're ordinary purchases, and what's useful to record is simply which piece of plastic paid for it. Assign to card in the row menu does that in one click, without opening the edit form.
The submenu lists your accounts in two groups:
- Credit cards — a purchase here raises that card's balance, exactly the way the issuer sees it. The Debt Tracker adds it to the card's estimated current balance and lists it under that card's Linked Transactions.
- Debit cards — a purchase here lowers that account's recorded balance, because the money actually left. Only accounts you've marked Has a debit card appear (Assets → edit the account → How this account is used). That's a switch rather than something we guess: an escrow or sinking-fund account looks identical to a chequing account from the outside, and only you know which one you can actually hand over at a till.
None clears the assignment and puts the balance back. Because the two are mutually exclusive — a charge was paid by one thing — picking a card clears any cash link and vice versa, so a transaction can never be counted in two places.
A tick marks whichever account is currently assigned, so the menu doubles as a way to see what a row is already attached to.
The same two groups appear as Paid with on the transaction form, so it doesn't matter which route you take. An account marked as having a debit card moves out of Linked Asset Account and into Paid with — it's the same link either way, just filed under the question you're actually asking. (For a deposit — an income or savings category — Paid with disappears, since a deposit has no payer, and every account is available under Linked Asset Account again.)
Refunds. Switch the amount to Refund and the same picker is labelled Refunded to: pick the card or account the money went back to. A refund to a credit card lowers that card's balance on the Debt Tracker; a refund to a checking or debit account adds the amount back to that account's balance. Keep the refund in the category the purchase came from (say, Vacation), so that category's total drops by the refunded amount. Don't record it as income.
This is not the same as a debt payment. Buying groceries with your Amex is a purchase that increases what you owe; paying your Amex bill is a payment that decreases it. Assign to card records the first. For the second, link the transaction to the debt account from the edit form instead.
One note on timing. A cash account's balance only moves for transactions dated on or after the date that balance was last recorded — otherwise assigning an old receipt would silently re-litigate a figure you already reconciled.