Skip to main content

Import file formats

Big Picture Money can import transactions from files before they are written to the ledger. Import always goes through a staging review step — nothing is committed until you confirm.

Supported formats (v1)

FormatExtensionNotes
CSV.csvSpreadsheet or bank export; column mapping required
QFX.qfxQuicken / Intuit bank download (XML-based)
OFX.ofxOpen Financial Exchange bank download

QIF (Quicken Interchange Format) is not supported in v1.

CSV requirements

Encoding

  • UTF-8 preferred
  • Latin-1 / Windows-1252 exports from older banks are usually readable; if characters look wrong, re-export as UTF-8 from your bank or spreadsheet

Delimiters

The importer detects comma, semicolon, or tab delimiters from the first line.

Required mapped fields

You must map these target fields to source columns before continuing:

Target fieldTypical source headers
Transaction dateDate, Transaction Date, Purchase Date
AmountAmount or separate Debit / Credit columns
DescriptionDescription, Details, Payee, Narrative

Optional:

Target fieldTypical source headersNotes
Posted datePosted Date, Posting DateWhen different from transaction date, stored in memo (e.g. Posted 2025-01-16)
MemoMemo, Card No., NotesCombined with posted date when both are mapped
External IDFITID, reference columnsBank reference for duplicate detection

Bank Category columns (e.g. issuer spending categories) are not imported into your category tree in v1 — leave unmapped or skip.

Date conventions

Common formats are recognized, including YYYY-MM-DD, MM/DD/YYYY, and DD/MM/YYYY when unambiguous from the file.

Amount conventions

  • Amounts are stored in the ledger as signed integers in minor units (cents for USD)
  • Expenses are negative; deposits and credits are positive
  • A single Amount column may already be signed, or use separate Debit / Credit columns
  • Parentheses or trailing minus indicate negative values in some exports

Saved mapping

For each account, the app remembers column mapping keyed by the CSV header row. Repeat imports with the same headers autofill mapping.

QFX and OFX

  • Transactions are read from standard STMTTRN (or equivalent) blocks
  • Date, amount, name/memo, and FITID (when present) are extracted automatically
  • No column mapping step

Duplicate detection

Each parsed row gets a stable fingerprint from the target account, date, amount, normalized description, and bank reference (for example FITID) when available. On commit, fingerprints are stored so the same row is recognized on future imports.

A staged row is skipped as a duplicate when:

  • Its fingerprint matches a row imported earlier into that account, or
  • It closely matches an existing register transaction (same date, amount, and similar description)

Duplicates are always skipped — they cannot be imported. The import summary lists skipped duplicates (date, description, amount) as informational messages only.

Limits and performance

  • Large files are parsed in a background job with progress reporting
  • You can navigate away during import; a notification appears when parsing or commit finishes
  • Very large files (tens of thousands of rows) may take longer to review; use bulk accept/skip actions in staging

Audit trail

Each import records the source filename and batch metadata locally (encrypted at rest with your database). There is no cloud upload of import files.