Import Bank Statement CSV Into a Budget App: Step-by-Step

Export transactions from your bank, YNAB or old Mint data, fix the usual CSV gotchas, and import them into a budget app without ever linking an account.

How-ToUpdated September 18, 20268 min readBy the BudgetForge AI team

You do not need to hand a budgeting app your online banking password to get your transactions into it. Every major US bank lets you download a file of your activity, and you can import that bank statement CSV into a budget app in a couple of minutes. This guide covers the file formats, where the download button hides at Chase, Bank of America, Wells Fargo and Capital One, how to export from YNAB and legacy Mint, the column-mapping and date gotchas that trip people up, and a four-step import in BudgetForge AI.

CSV vs. QFX vs. OFX: which file should you download?

Most banks offer two or three export formats. They contain the same transactions, but they behave differently once you try to import them.

  • CSV (comma-separated values). A plain text spreadsheet: one transaction per line, columns separated by commas. Opens in Excel, Google Sheets or Notepad. Every budgeting tool can read it, but every bank lays out the columns a little differently, so you usually have to tell the app which column is the date, which is the amount and which is the description.
  • OFX (Open Financial Exchange). A structured file with tagged fields for date, amount, payee and a unique transaction ID. Because the fields are labeled, there is no column mapping and duplicates are easier to detect.
  • QFX. Intuit's version of OFX, built for Quicken. For practical purposes a QFX file is an OFX file with an extra bank identifier. If your bank lists "Quicken" as a download option, that is QFX.
  • QBO is the QuickBooks variant. Skip it unless you run a business ledger.

Rule of thumb: pick QFX if your bank offers it, because the labeled fields and transaction IDs make de-duplication reliable. Pick CSV when QFX is not available, when you need a longer date range, or when you want to clean the data in a spreadsheet first. BudgetForge AI imports both CSV and QFX files, so either path works.

Tip: If a bank only offers PDF statements for older months, you cannot import those directly. Most banks keep 18 to 24 months of downloadable activity, so export regularly rather than trying to rebuild years of history later.

How to export transactions from your bank to CSV

Bank websites change their menus often, so treat these as the general path and look for words like Download, Export or Account activity.

Chase

Sign in at chase.com, open the account, and look above the transaction list for the Download account activity icon. Choose the account, pick a file type (Chase offers CSV, QFX, QBO and OFX), set the date range, then download. The date range is limited to recent activity, so download a month at a time and do not wait a year.

Bank of America

Sign in, open the account, and go to the Information & Services tab (or the Activity tab, depending on the account type). Click Download transactions, choose a date range, and select Microsoft Excel format (.csv). Many Bank of America customers report that the Quicken (.qfx) option has been removed for their accounts, so plan on CSV. History goes back roughly 18 months.

Wells Fargo

Sign in, open the Accounts tab and choose Download Account Activity. Set the From and To dates, choose Comma Delimited (ASCII, Spreadsheet) for CSV or the Quicken option for QFX, then click Download. One quirk: the Wells Fargo CSV has no header row. The columns are date, amount, an asterisk, an empty column, then description. Your import tool will ask you to label those columns manually.

Capital One

Sign in at capitalone.com and open the card or 360 account. For credit cards, open the Statements & documents menu and choose Download transactions; for checking and savings, look for a Download or Export link near the top of the transaction list. Pick CSV (or OFX/QFX if offered), set the date range, and export.

Other banks and credit unions follow one of these patterns. If you cannot find it, search the bank's help center for "download transactions".

How to export YNAB data and legacy Mint data

If you are moving from another budgeting tool, you want your history to come with you.

YNAB

Export is only available in the YNAB web app, not the mobile apps. Click the name of your plan at the top of the left sidebar and choose Export Plan. YNAB produces a zip with two CSV files: one with your plan (categories and category groups by month) and one with your full transaction register. The register file is the one to import. YNAB's own instructions are on its support page. If you are weighing the switch, see our BudgetForge AI vs. YNAB comparison.

YNAB's transaction CSV has separate Outflow and Inflow columns rather than one signed amount column, and the amounts include a currency symbol. Keep that in mind when you map columns below.

Mint (legacy)

Intuit shut Mint down in March 2024 and pointed users to Credit Karma, which did not carry over transaction history. If you downloaded a Mint CSV before the shutdown, it has Date, Description, Original Description, Amount, Transaction Type (debit or credit), Category and Account Name columns. Because the Amount column is always positive, you have to combine it with the Transaction Type column to get the sign right. If you did not export before the shutdown, start fresh from your bank's download. Our Mint alternatives guide walks through the options.

BudgetForge AI imports CSV and QFX files on your Windows PC, offline, with no bank login and no account to create.

Download BudgetForge AI (free)

Column mapping, dates, negative amounts and duplicates

CSV imports fail for boring reasons. Check these five things first.

1. Map the columns

A budget app needs at minimum a date, an amount and a description (payee). Optional columns are category, memo, check number and account. Open the CSV in a spreadsheet, look at the header row (or the first data row if there is no header), and note which column holds each value. Some exports include a Posted Date and a Transaction Date; use the transaction date so purchases land in the month you made them.

2. Date formats

US banks usually write 09/18/2026 (month first). A file from a European bank or a software export may use 18/09/2026 or 2026-09-18. If an import places half your September transactions in a month that does not exist, the day and month have been swapped. Most importers let you choose the date format; otherwise reformat the column in your spreadsheet to YYYY-MM-DD, which is unambiguous.

3. Negative amounts and the Debit/Credit split

There are three common conventions:

  • One signed column. Spending is negative (-42.17), income is positive. This is the easiest case.
  • Inverted sign. Credit card exports often show purchases as positive and payments as negative, because from the card issuer's point of view a purchase increases what you owe. Look for an "invert amounts" or "flip sign" switch in the importer.
  • Two columns (Debit and Credit, or Outflow and Inflow). Map both; the importer should subtract one from the other. If it only accepts one amount column, add a formula column in your spreadsheet: =Credit-Debit.

Also strip currency symbols, thousands separators and parentheses (some exports write (42.17) to mean negative). A quick Find and Replace handles it.

4. De-duplication

If you export January 1 to February 15 and later export February 1 to March 15, the overlapping two weeks will import twice unless the app catches it. QFX files carry a unique transaction ID that makes this automatic. For CSV, a good importer compares date, amount and description and flags matches. Make this easier on yourself by exporting non-overlapping ranges, or by always starting a new export the day after the previous one ended.

5. Pending transactions

Pending items often carry a different description than the posted version. Export only through yesterday's date so you do not end up with "PENDING AMAZON" and "AMAZON.COM*2K4" as two entries.

How to import transactions CSV into BudgetForge AI (4 steps)

The first import takes about five minutes because you map the columns once; after that it is under a minute.

  1. Open the importer. In BudgetForge AI go to File > Import. Pick the account the transactions belong to (for example "Chase Checking"). If you have not created the account yet, add it first so imported transactions have somewhere to live.
  2. Choose the file. Select the CSV or QFX you downloaded. For QFX, the fields are read automatically and you can skip to the review step. For CSV, the importer shows the first few rows so you can confirm it split the columns correctly and detected (or did not detect) a header row.
  3. Map the columns. Tell the importer which column is Date, Amount (or Debit and Credit), Description, and optionally Category and Memo. Set the date format if the preview looks wrong, and turn on the sign flip if your credit card purchases are showing as income. BudgetForge AI remembers the mapping for that account, so the next import from the same bank is pre-filled.
  4. Review and confirm. The review screen lists every transaction that will be added and flags any that look like duplicates of what is already in your local database. Uncheck anything you do not want, assign categories to new payees, and click Import. Everything is written to the local database on your PC; nothing is uploaded.

After the import, the category envelopes and the "To Budget" view reflect the new spending immediately. For what else the app does with that data, see the features page.

Caution: Always keep the original downloaded file until you have checked the imported totals against your bank's balance. If the sign or date format was wrong, delete the imported batch and re-import rather than editing hundreds of rows by hand.

A weekly import routine that takes ten minutes

Manual import sounds like a chore next to automatic bank sync, but a fixed routine makes it painless, and you actually look at every transaction, which is the point of budgeting.

  1. Pick a day. Sunday morning or Friday evening. Put it on your calendar.
  2. Export each account from the day after your last import through yesterday. Save the files in one folder named by date, for example 2026-09-18-chase.csv.
  3. Import each file with File > Import. Because the column mapping is saved, this is choose file, glance at the review screen, confirm.
  4. Categorize new payees. Most transactions will match payees you have already categorized. Handle the handful that are new.
  5. Check the envelopes. Look at what is "left to spend" in each category for the rest of the month and adjust if something is running hot.
  6. Reconcile monthly. Once a month, compare the account balance in the app with the bank's statement balance. If they differ, a transaction was missed or duplicated; the monthly statement makes it easy to find.

Four accounts, four exports, ten minutes. We go deeper on the privacy trade-offs in budgeting without linking your bank account.

Common import problems and quick fixes

SymptomLikely causeFix
All transactions land in one columnFile is tab- or semicolon-separated, not commaChoose the correct delimiter in the importer, or re-save as CSV from your spreadsheet
Purchases show as incomeCredit card export uses inverted signEnable the "flip sign" option for that account
Months are swappedDay/month date format mismatchSet the date format explicitly or convert to YYYY-MM-DD
Totals are doubleOverlapping export rangesDelete the batch, re-export with non-overlapping dates, rely on duplicate flagging

Once your mapping is saved, importing a bank statement CSV into a budget app is a two-click task. The transactions stay on your PC, you never share a bank login, and you can export to CSV any time, so you are never locked in.

Frequently asked questions

Is CSV or QFX better for importing bank transactions?

QFX (and OFX) files carry labeled fields and a unique ID per transaction, so there is no column mapping and duplicates are caught automatically. CSV works with every bank and tool and lets you clean the data in a spreadsheet first. Use QFX when your bank offers it; otherwise CSV is fine.

How do I export my transactions from YNAB?

In the YNAB web app (not mobile), click your plan name at the top of the left sidebar and choose Export Plan. You get a zip containing a plan CSV and a transaction register CSV. Import the register file into your new budgeting app.

Why do my credit card purchases import as positive amounts?

Many card issuers export purchases as positive numbers because they increase your balance owed. Use the sign-flip option in the importer for that account, or multiply the amount column by -1 in a spreadsheet before importing.

Can I still export my Mint transactions?

No. Intuit shut Mint down in March 2024 and transaction history was not transferred to Credit Karma. If you saved a Mint CSV before then, it can be imported; otherwise start from your bank’s own downloads.

Does BudgetForge AI upload my CSV anywhere?

No. BudgetForge AI runs fully offline on Windows. The CSV or QFX file is read on your PC and the transactions are stored in a local database. No account or bank login is required.

Start budgeting offline today

Free for Windows 10 and 11. No account, no subscription, no bank login. Your data stays on your PC.

Download BudgetForge AI (free) Version 1.21 · 117 MB · Windows 10/11 · No sign-up