YNAB's file import takes four formats — CSV, OFX, QFX and QIF — and a PDF is not one of them. So a statement your bank only gives you as a PDF, an account that YNAB's direct import cannot link, or a month that fell through a sync gap has to be converted first. Here is how to do that, import it cleanly, and prove afterwards that every transaction arrived.
Why a PDF needs converting first
YNAB's file-based import reads structured files: rows with a date, a payee and an amount in known places. A PDF statement is a picture of a page — even when the text can be selected, nothing in the file says which number is the amount and which is the running balance. YNAB's own help pages list CSV as the preferred format, and OFX, QFX and QIF as the others it accepts. Anything else, PDF included, is rejected.
Before converting anything, check whether your bank's online banking offers a download for the period you need. Look for "Export", "Download transactions" or a format named after Quicken or QuickBooks. That file comes straight from the bank's system, so it is exact, and YNAB will take it as it is. Converting is for when that option is not there: the bank only keeps a few months of downloadable history, the account is closed, or the statement was emailed to you as a PDF.
Step 1: convert the PDF to OFX or CSV
Either OFX or CSV works; OFX is less work in YNAB. An OFX file says which field is the date, which is the payee and which is the amount, so YNAB imports it without asking you anything. A CSV makes YNAB show you its columns and ask which is which — easy, but one more place for a column to be mismatched.
The bank statement converter here reads the PDF (or a scan, or phone photos of the pages) and writes OFX, QIF or CSV. Before it gives you the file, it checks its own reading: opening balance plus money in minus money out must equal the closing balance printed on the statement, to the cent. If it does not, it tells you by how much and which rows break the running balance.
Do not skip that check, whatever you use to convert. A dropped line at a page break produces a file that imports perfectly and a YNAB balance that is quietly wrong — and you will find it weeks later during reconciliation, if at all.
If you have several months of statements, convert them one at a time or in a batch, but import each into YNAB separately. It keeps any problem confined to one month.
Step 2: import the file into the right account
In the YNAB web app:
- Open the account the statement belongs to.
- Use the file import option in the account's register, or drag the file onto the register.
- Confirm the account. For a CSV, check YNAB's column matching — date, payee, and either one amount column or separate inflow and outflow columns — and the date format.
- Review the preview and finish the import.
The transactions arrive in the register ready to be categorised, just like ones from direct import.
Credit cards. Import a card statement into the credit card account, not the checking account that pays it. The file must treat purchases as outflows and payments as inflows. The OFX and QIF written here mark card statements as card accounts, so the signs come out right; if you build a CSV yourself, this is the thing most often backwards.
Step 3: understand how YNAB handles duplicates
Two YNAB behaviours matter when you import files, and one of them can cost you a transaction.
Matching manual entries. If you typed a transaction in by hand and the same one later arrives in an import, YNAB matches the two when the amounts are exactly the same and the dates are within ten days of each other. You end up with one transaction, not two. That is what you want.
Skipping apparent duplicates. When you import files regularly, or alongside direct import, YNAB skips incoming transactions that have exactly the same date and amount as ones already there. Usually that prevents double counting. But genuine twins exist: two identical coffees on the same morning, two equal transfers on the same day, a subscription charged twice. One of each pair can be skipped.
The fix is not to trust the import blindly but to check the result, which is the next step.
Step 4: reconcile against the statement
After importing, compare YNAB's cleared balance for the account with the closing balance printed on the statement for the same date. YNAB's reconcile button walks you through exactly this: it asks whether the balance matches, and if it does not, it shows you the difference.
If the difference is zero, you are done: every transaction on the statement is in YNAB, with the right amounts.
If it is not zero:
- The difference equals one transaction's amount. Look for same-day, same-amount pairs on the statement — the duplicate-skipping rule above — and add the missing one by hand.
- The difference is a transaction you entered manually but never happened. A manual entry that did not match anything on the statement is still sitting there. Delete it or fix its date.
- The difference is spread across many rows. The file may have the wrong sign convention (inflows as outflows). Undo the import, fix the file, and import again.
Resist creating a reconciliation adjustment to make the numbers agree. It hides the problem instead of finding it.
Importing old history: a word of warning
Importing statements from before you started using YNAB changes the account's balance and, through it, the money YNAB thinks you have to assign. If your aim is to look back at a year of spending, it is usually cleaner to keep that history out of your live budget: import only from your account's starting balance date forward, and analyse the older months in a spreadsheet or a separate budget made for the purpose.
For the spreadsheet route, the same converter gives you an Excel workbook with every transaction in one sheet and the balance checks on another. Our guide to converting a bank statement PDF to Excel covers the two formulas that prove nothing is missing.
When there are a lot of statements
Catching up on a year or more, across several accounts, is where this gets tedious: one conversion and one import per statement, each checked. If you would rather hand it off, the statements can be converted for you — every one reconciled to the cent or with the difference explained, and delivered in the format you import.
Questions
- Can YNAB import a PDF bank statement?
- No. YNAB's file-based import accepts CSV, OFX, QFX and QIF files only. A PDF has to be converted to one of those first, or the transactions entered by hand.
- Should I use OFX or CSV for YNAB?
- OFX if you have the choice. It labels every field, so YNAB imports it without column mapping. CSV works too, but you have to confirm which column is the date, payee and amount, and get the date format right.
- Will importing the same statement twice create duplicates?
- YNAB skips incoming transactions with exactly the same date and amount as existing ones, so a repeat import is mostly ignored. The side effect is that genuine same-day, same-amount pairs can lose one member, which is why you should reconcile against the statement afterwards.
- Why doesn't my YNAB balance match the statement after importing?
- The usual causes are a skipped same-day duplicate, a manual entry that never matched a real transaction, a transaction dated outside the statement period, or a file with inflows and outflows reversed. The size of the difference usually tells you which.
- Can I import a scanned or photographed statement?
- Not directly, but a converter that reads images can turn it into OFX or CSV. Scans are where digits get misread, so the balance check matters even more there.