Skip to content

Guide · Export CSV

Export CSV from your bank.

Every US bank exports CSV. Every US bank does it differently. Pick your bank below for the desktop route that works in 2026 — the date-range caps, the column quirks, and how Arden's importer handles each one without you mapping a thing.

At a glance

10 banks, two columns that matter.

Date-range caps and amount-column format are the two things that actually trip people up. Scan the table, then open the guide for the specifics.

BankDate rangeAmount format
Chase7 years (statement) / 90 days (rolling)Signed amount
Bank of America18 mo / 12 moSigned amount + preamble
Wells Fargo18 mo / 90 daysNo header row
Capital One~90 daysSplit Debit/Credit
Citi~90 daysSplit Debit/Credit
American Express6 billing periodsSigned (with details flag)
Fidelity90 days per pullHoldings + history split
Charles SchwabMulti-yearSigned + prefix rows
SoFi2 yearsSigned amount
Navy Federal90–180 daysSplit + Windows-1252

Before you start

Four things every bank-export workflow gets wrong.

Most "how to export CSV" articles online stop at the click path. These are the things that go sideways downstream — and what Arden's importer handles automatically so you don't have to.

  • Plan around your shortest window

    Credit cards almost always cap shorter than checking. If you want history back further than 90 days on any card, plan multiple statement-level pulls — most banks offer 6–18 months of statements, even when the rolling export cuts off at 90 days.

  • Don’t flatten split columns yourself

    Capital One, Citi, and Navy Federal ship Debit/Credit as separate columns instead of one signed amount. Resist the urge to combine them in a spreadsheet first — Arden’s importer auto-detects the indicator format and gets the signs right.

  • Watch for preamble rows

    Bank of America and Schwab include account-summary rows before the real CSV header. Most third-party importers choke on these; Arden skips them automatically. If you do open the file in Excel first, leave the preamble alone.

  • Sign conventions flip across account types

    Checking exports: debits negative, credits positive. Credit-card exports often flip — purchases negative, payments positive. If a preview looks backwards, Arden's importer has a one-click sign-flip toggle.

All guides

Every bank, with the quirks called out.

Common questions

What people ask before importing.

How long does a typical import take?
90 seconds per file for a year of transactions. The slow part is the bank export itself — once the CSV is on your machine, Arden processes ~3,000 transactions per second and shows a live preview before you commit.
What if my CSV has extra columns or weird headers?
Arden detects columns by content, not by header name. A column with values like "2026-04-13" gets identified as a date; a column with values like "-12.45" gets identified as the signed amount. Extra columns are ignored. The 10 bank-specific guides exist so you don't have to think about this — but it works on any CSV.
Can I re-import the same file later without duplicates?
Yes. Arden de-duplicates against existing transactions by date + amount + payee fingerprint. Drop the same file twice and the second import shows "0 new" — you can't accidentally double-import.
Why CSV instead of OFX/QFX?
OFX and QFX work too — Arden's importer accepts CSV, XLSX, OFX, and QFX. We default to CSV in the guides because it's the format every bank supports, the format that opens cleanly in Excel/Numbers if you want to spot-check, and the format least likely to ship malformed (OFX files have ~3× the malformed-file rate in our import logs).
My bank isn't in this list. Will Arden still import it?
Yes. The 10 banks here are the ones we've written click-paths for. Column detection runs on any CSV — drop your file into /import and the parser figures it out. If you want a guide written for your bank, email support@ardenmoney.com — they go in the queue based on request frequency.

Your bank not listed? Drop the file in anyway.

Arden's importer doesn't have a fixed list of supported banks. Column detection works from the file itself — drag whatever CSV, XLSX, OFX, or QFX your bank produced into /import and the parser figures it out.