All docs

Hank (AI Assistant)

AI Bank Statement Import

Paste raw bank text or upload a statement; let the AI extract clean transactions.

Some banks export usable CSVs. Some don't. AI bank statement import (sometimes called Smart Import) is the fallback for everything else — paste a block of statement text, drop in a PDF, or upload a screenshot, and the AI extracts a clean list of transactions you can review before saving.

When to use it

  • Your bank's CSV is malformed or missing key columns.
  • All you have is a PDF statement.
  • You took a screenshot of a transaction list.
  • You copied text out of a banking site that doesn't offer downloads.

If you have a clean CSV, CSV import is faster and more deterministic — use that instead.

Run an AI import

  1. Go to Transactions.
  2. Tap Import Transactions and choose AI mode (Smart Import).
  3. Paste the text or upload the PDF / image.
  4. Wait for the AI to parse — it returns a list of transactions with date, amount, description, and a suggested category.
  5. Review every row. Adjust amounts, fix descriptions, override categories where needed.
  6. Apply your auto-categorization rules if you want them to run.
  7. Confirm and import.

Email drop

If the receipt is sitting in your inbox, you don't have to copy-paste anything. Drag the email from your mail client (Outlook, Apple Mail, Gmail web — anything that lets you drag an email out) directly onto the Smart Import drop zone. We pull the body text, plus any image attachments through vision and any PDF attachments through text extraction. Counts as one Smart Import use, no matter how many attachments came along for the ride.

A few clients drop the email as an HTML payload instead of a file (Outlook on the web, Gmail web). That works too — same path, same result.

By default the source email is attached as the receipt for every transaction it produces — uncheck "Attach source as receipt to all imported transactions" in the preview if you'd rather not. The same auto-attach applies when you upload a PDF or image via Smart Import.

What gets extracted

For each row the AI returns:

  • Date — usually the post date.
  • Amount — positive number, with the sign inferred from context.
  • Description — the cleaned merchant or counterparty.
  • Suggested category — best guess based on the description; you decide whether to keep it.

Confidence scores are shown when the AI isn't certain — anything under "high" deserves a quick second look in the preview.

How uploads work

When you upload a file, BudgetLabs picks the right path automatically:

  • Digital PDFs (anything you downloaded from your bank's website) — text is extracted in the browser and only the cleaned text is sent to the AI. Cheap, fast, and works for the vast majority of bank statements.
  • Scanned PDFs and images (photos, screenshots, paper statements you scanned) — each page is rendered as an image and sent to the vision-capable AI. Slower and counts the same against your daily limit, but handles everything text extraction can't.

Limits:

  • 8 MB max per file.
  • 10 pages max for the vision fallback. If a scanned PDF is longer, only the first 10 pages are processed.
  • PDF, PNG, JPG, and WebP are supported.

Tips for clean results

  • One statement per import. Mixing accounts confuses the parser.
  • Crop screenshots tightly — extra UI chrome can be misread as transactions.
  • For PDF statements, the searchable text version (not a scan) parses much more accurately.

Limits and pricing

Smart Import is one of the things Pro actually unlocks. Free users get 1 Smart Import per day — enough to try it. Pro lifts that cap. See Plans & billing for current pricing.

Privacy

The text or image you upload is sent to BudgetLabs's AI provider (xAI's Grok) for parsing. The provider does not retain it, and BudgetLabs doesn't store the source — only the structured transactions you confirm. Don't paste anything more than you need: account numbers and addresses don't help the parser.

Splitting a transaction at import

If one imported row spans multiple categories — say a $237.31 phone bill that's part business and part personal — you can split it right in the preview without saving it first:

  1. In the preview table, click the Split icon (the branching-arrow icon next to the Ignore button) on the row.
  2. Two sub-rows appear below the parent. Pick a category for each.
  3. Type a dollar amount into the first sub-row (e.g. 70). The second sub-row auto-fills as the remainder (e.g. 167.31) so the splits always sum to the original amount.
  4. Click + Add split to add a third (or more) category.
  5. Click Import and Close as usual. Each parent saves as a single transaction with per-category allocations — any attached receipt lands on the parent.

To split a transaction after import, open it in the Transactions list and use the split flow there — both routes produce the same end result.

Related

  • CSV import — faster when your bank exports clean CSVs.
  • Auto-categorization rules — apply during the AI import preview.
  • Receipt scanning — for single-receipt OCR.
Last updated May 9, 2026