How to import a bank statement into Actual Budget
By Kayabyte · Last updated 28 October 2026
Actual Budget is a local-first budgeting app. Many people use it without bank sync, which means every transaction comes from a file you import yourself. Actual can import transactions from files such as OFX, QFX, QIF and CSV, but not from a PDF. This guide covers both the easy case, where your bank gives you a file, and the harder one, where you only have PDF statements.
Labels in Actual differ between versions, so use the menu names below as a guide.
1. If your bank offers a download
Look for CSV, OFX, QFX or QIF on your bank’s transaction page. OFX and QFX are best: they carry a unique ID per transaction, which Actual can use to avoid importing the same transaction twice. CSV has no such ID, so Actual matches duplicates by date, amount and payee, which is weaker.
In Actual, open the account and use the import option (look for “Import” at the top of the account page). Choose the file. For CSV, Actual shows a mapping screen where you choose which column is the date, payee, notes and amount, or separate debit and credit columns, and you set the date format. Check the preview, then import.
2. If you only have a PDF
Do it by hand in a spreadsheet:
- Copy the transactions out of the PDF, paste into Excel or Numbers, and split into columns.
- Delete page headers, footers and balance-brought-forward lines.
- Join any description that wrapped onto a second line.
- Make one amount column, negative for money out. Or keep separate debit and credit columns, which Actual’s CSV import can map.
- Use one date format throughout, and note whether it is day/month or month/day. You will need to tell Actual.
- Save as CSV and import as above.
3. Limits of the manual way
- No check. Actual doesn’t verify against your bank statement. If a row is lost in your spreadsheet, nothing warns you.
- Duplicates when a CSV overlaps a previous import. Use the preview, and import non-overlapping date ranges.
- Sign mistakes on credit cards, where purchases appear as positive numbers.
- Number formats. 1.234,56 in European statements becomes text or 1.23456 if the spreadsheet guesses wrong.
- Imported payees arrive as the bank’s raw text, which is long and ugly. Actual’s rules help clean that up after the import.
To catch lost rows, sum your amounts, add the opening balance, compare to the closing balance on the statement. Do this before importing, not after.
4. Where Balanced helps
Balanced is a Mac app we make. It reads PDF statements (text PDFs, plus scans and photos through Apple’s on-device text recognition) and CSV or TSV files from any bank, with headers and months in 10 languages. The preview shows the table it found, and you can fix column roles, date order and sign handling. It remembers each bank’s layout, so the next month’s statement from the same bank is quicker.
Then it checks the totals: opening balance plus transactions equals closing balance, and the running balance per row when the statement has one. If it doesn’t add up, Balanced tells you which rows and the difference, and exporting needs an explicit “Export anyway”.
From the Export button, choose the Actual Budget format. If you’d rather import OFX, QFX or CSV into Actual, those are available too. There is no AI guessing: every number is copied from your statement and checked. Everything runs on your Mac, and statements never leave it.
Limits: it depends on layout, so look at the preview; low-quality or heavily skewed scans can fail; a password-protected PDF must be unlocked first with the password from your bank. We can’t promise every bank works.
Download Balanced and convert for free: the free version converts and checks everything and exports the first 10 transactions per file. Pro is USD 59 per year or USD 7.99 per month for up to 3 Macs. See pricing and help. macOS 14 or later.
5. Tips for a clean start
- Import oldest first, and import each month once.
- Add the account’s starting balance in Actual before importing, so balances line up with the bank.
- After import, compare Actual’s balance with the bank’s closing balance for the last statement date.
- If you are choosing between plain-text finance tools, Beancount works from the same checked data.
Related guides
- How to import a PDF bank statement into YNAB
- How to turn a bank statement into Beancount
- Why converted statements don’t add up
More guides
- How to export Apple Card transactions to a spreadsheet
- How to convert a Bank of America statement to Excel
- How to turn a Chase statement into Excel or CSV
- How to convert a PDF bank statement to CSV
- How to convert a PDF bank statement to Excel
- DocuClipper alternatives for Mac: online service or an app on your Mac
- How to import a PDF bank statement into Xero
- How to convert a PDF bank statement to OFX
- How to import a PDF bank statement into QuickBooks as a QBO file
- How to get a PDF bank statement into Quicken (QIF or QFX)
- A private bank statement converter for Mac: keep your statements off other people’s servers
- ProperConvert alternatives for Mac: what to compare before you pay