Guide

How to Import Bank Statements (CSV) Into Your Expense App

Updated April 10, 2026 · 7 min read

You've got three months of bank transactions sitting in your online banking portal. Typing them into an expense tracker one by one isn't happening. Nobody has that kind of patience. The solution is CSV import: download your statement as a file, feed it to the app, and let the parser sort it out. Takes about 2 minutes for a full month of transactions. Here's exactly how to do it.

TL;DR

In this guide

  1. Why CSV Import Matters
  2. How to Download CSV from Your Bank
  3. Importing into Money Vault (Step-by-Step)
  4. Column Mapping Explained
  5. Date Format Issues (and Fixes)
  6. Common Bank CSV Formats
  7. What to Do After Import
  8. Troubleshooting

How this guide keeps imports clean

The import flow in this guide follows a fixed order: download the bank file, map the columns, verify the sample rows, then review the result before relying on it. That keeps bulk imports fast without hiding bad data.

73%
of US banks offer CSV or OFX statement downloads for free, no extra software needed
Source: Cornerstone Advisors Banking Survey, 2025

Why CSV Import Matters

CSV import is the bridge between "I started tracking last week" and "I have 6 months of data to work with." Without it, you're starting from zero. With it, you have context. Trends. Patterns. Enough data for the AI to tell you something useful about your spending.

It's also the privacy-friendly alternative to bank syncing. Apps that connect directly to your bank through Plaid or similar services need your banking credentials (or at least read-only access). CSV import doesn't. You download the file from your bank, import it locally, and the data never touches a third-party server.

CSV import (3 months)
~2 min
Bank sync setup
~5 min
Manual entry (3 months)
~4 hours
Estimated time to import 3 months of transaction data. Based on average 90 transactions/month.

How to Download CSV from Your Bank

Almost every bank lets you export transaction history as a CSV file. The steps vary slightly, but the general process is the same everywhere:

  1. Log into your bank's website (not the mobile app, the full website works better for this).
  2. Go to your account activity or statement section. Usually under "Accounts," "Transactions," or "Statements."
  3. Set the date range. Pick the period you want to import. Most banks let you go back 6-12 months.
  4. Look for a "Download" or "Export" button. Choose CSV format. Some banks also offer OFX, QFX, or QIF. CSV is the most universal and works with Money Vault.
  5. Save the file. On desktop, it downloads to your Downloads folder. On mobile Safari, it goes to Files. Either works for import.
Pro tip

If your bank doesn't show a CSV option, look for "Excel" or "Spreadsheet" format. You can usually open it and re-save as CSV. If you only see PDF statements, your bank might have a separate "Download Transactions" button elsewhere on the page.

Importing into Money Vault (Step-by-Step)

  1. Open Money Vault and go to Settings.
  2. Tap "Import Data" then "CSV Import."
  3. Select your CSV file. The iOS file picker opens. Navigate to where you saved the bank export. Tap the file.
  4. Review the column mapping. The app shows a preview of the first few rows and auto-detects which columns contain the date, amount, and description. If it guessed wrong, tap any column header to reassign it.
  5. Confirm and import. The app processes all rows, assigns categories based on merchant names, and creates expense entries. A progress indicator shows how many transactions were imported.
  6. Review the results. You'll see a summary: X transactions imported, Y categories assigned, Z flagged for review. Tap "View Imported" to check them.

The whole process takes about 2 minutes for a typical month (60-100 transactions). Three months? Maybe 3 minutes. The bottleneck is usually finding the download button on your bank's website, not the actual import.

Column Mapping Explained

Banks don't agree on how to format CSV files. Some use "Date, Description, Amount." Others use "Transaction Date, Payee, Debit, Credit." Some have 5 columns, some have 15. The column mapping step tells the app which columns matter.

Money Vault needs three things from your CSV:

The auto-detection gets this right about 85% of the time. When it doesn't, manual reassignment takes about 10 seconds. Once you've mapped a bank's format, the app remembers it for next time.

Import months of data in minutes

CSV import, voice input, receipt scanning. Money Vault handles it all. Free on iOS.

Download on the App Store

Date Format Issues (and Fixes)

This is the most common import headache. Your bank writes dates one way, the parser expects another.

Format Example Used By
MM/DD/YYYY 04/09/2026 Most US banks
DD/MM/YYYY 09/04/2026 UK, EU banks
YYYY-MM-DD 2026-04-10 ISO format, some fintech apps
MM-DD-YYYY 04-09-2026 Some US credit unions
DD Mon YYYY 09 Apr 2026 Some UK/Australian banks

Money Vault auto-detects the date format by analyzing the first few rows. If dates look ambiguous (is 03/04 March 4 or April 3?), it uses your device locale as a tiebreaker. US locale assumes MM/DD. EU locale assumes DD/MM. You can override this during import if it guesses wrong.

Common Bank CSV Formats

Here's what to expect from the most popular US banks:

Chase: Columns are Transaction Date, Post Date, Description, Category, Type, Amount. Clean format, imports smoothly. Chase even includes its own category assignments, though Money Vault's categorization is usually more accurate.

Bank of America: Date, Description, Amount, Running Balance. Simple and clean. The running balance column gets ignored during import. No issues.

Wells Fargo: Date, Amount, *, *, Description. The asterisk columns contain internal codes. The app skips them automatically. Dates use MM/DD/YYYY.

Capital One: Transaction Date, Posted Date, Card No., Description, Category, Debit, Credit. Split debit/credit columns. The app combines them during import.

Citi: Status, Date, Description, Debit, Credit. Status column ("Cleared," "Pending") gets ignored. Otherwise straightforward.

What to Do After Import

After importing, spend 5 minutes doing a quick quality check:

  1. Check the transaction count. Does it roughly match what your bank shows? If your statement has 87 transactions and the import shows 85, two might have been filtered (like pending transactions or balance adjustments).
  2. Spot-check categories. Look at the first 10-15 transactions. Are the categories right? If "AMZN Mktp US" got categorized as "Shopping" when it should be "Electronics" for your case, correct it. The smart cache learns from corrections.
  3. Check for duplicates. If you already logged some expenses manually or by voice for the same period, you might have doubles. Look for transactions on the same date with the same amount. The app flags potential duplicates during import, but check anyway.
  4. Assign accounts. If you imported from multiple bank accounts, make sure each import went to the right account in the app.

Troubleshooting

Problem: "File format not recognized." The file might not actually be CSV. Some banks generate XLS or XLSX files with a .csv extension. Open the file in a text editor (like Notes on Mac). If you see commas separating values, it's real CSV. If you see garbled characters, it's probably Excel format. Re-export from your bank or open in a spreadsheet app and save as CSV.

Problem: Amounts are wrong. Check if your bank uses a comma as the thousands separator (1,234.56) or as the decimal separator (1.234,56). European banks often use the second format. The app detects this from locale, but you can override it in import settings.

Problem: All transactions show the same date. The date column wasn't mapped correctly. Go back to column mapping and reassign the date column. Some banks put the date in an unexpected position.

Problem: Negative amounts. Some banks show expenses as negative numbers and income as positive. Others do the opposite. If your expenses show up as income, toggle the "Flip signs" option during import. It reverses positive and negative.

Problem: Special characters in descriptions. Bank descriptions like "POS DEBIT VISA 04/09 WHOLEFDS MKT #10432" look ugly but contain useful info. The categorization engine strips the banking codes and focuses on the merchant name portion. "WHOLEFDS MKT" correctly maps to Groceries even with all the extra noise.

Get started with your bank data

Import CSV, add voice entries, scan receipts. One app for everything. Free on iOS.

Download on the App Store