Skip to content

CSV Import

Wilson auto-detects the CSV format based on column headers:

BankDetectionKey Columns
ChaseDetails, Posting DateDate, Description, Amount
American ExpressDate, Description, AmountWith Amex-specific header pattern
Bank of America (checking)Date, Description, AmountBoA checking format
Bank of America (credit card)Posted Date, Reference NumberBoA credit card format
GenericFallbackAny CSV with date, description, amount columns

Tell Wilson to import in plain English:

Import my transactions from ~/Downloads/chase.csv
Import the Amex statement at ~/Documents/amex-march.csv
Terminal window
wilson --run "Import transactions from ~/Downloads/chase.csv"

Wilson’s format detector works in this order:

  1. OFX — Checks for <OFX> or OFXHEADER markers
  2. QIF — Checks for !Type: header
  3. CSV — Sniffs column headers to identify bank format:
    • Chase: looks for Details + Posting Date
    • Amex: looks for Amex-specific header pattern
    • BofA: looks for Posted Date + Reference Number or BoA checking headers
    • Generic: falls back to any CSV with recognizable date/amount columns

Wilson prevents duplicate imports at two levels:

  1. File-level — The SHA-256 hash of each imported file is stored. Re-importing the same file is skipped entirely.
  2. Transaction-level — Each transaction gets a computed external_id (hash of date + description + amount). Duplicate transactions across different files are skipped.

Account → Activity → Download icon → CSV

Statements & Activity → Download → CSV

Activity tab → Download → Spreadsheet (CSV)

Wilson also supports OFX (v1.x SGML and v2.x XML) and QIF (Quicken Interchange Format) files. Just point Wilson at the file:

Import ~/Downloads/statement.ofx
Import ~/Downloads/quicken-export.qif