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.
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 this transaction across multiple 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.
- 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 this transaction over multiple 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.
Search and filter
The Transactions page supports several filters at once:
- Date range — start and end dates.
- Category — single or multi-select.
- Type — income, expense, savings.
- Budget month — restrict to a specific month.
- Free-text search across descriptions.
- Limit — show 25, 50, 100, or all matching transactions.
Filters are stackable, and the list re-sorts as you adjust them.
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 — upload a bank statement and map columns.
- 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 on the Dashboard category row and is excluded from your budget rollup.
When the money comes back to you:
- Open the transaction and find the reimbursable allocation.
- Tap Mark settled.
- The allocation stays excluded from the budget — the repayment zeroes out the loan without re-charging your category.
To review everything still outstanding, look for the Outstanding Reimbursables panel in Transactions.
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.