Skip to main content
Fidelity → Beancount

Fidelity CSV to Beancount

Convert a Fidelity account History export — Cash Management or brokerage, they share the same amount column — into balanced double-entry Beancount transactions, with the readable payee text already mapped.

Column mapping verified against a real Fidelity export

How to export your Fidelity transactions

  1. 1

    Sign in at fidelity.com and open Accounts & Trade, then Portfolio.

  2. 2

    Select the Activity & Orders tab, then the History section beneath it.

  3. 3

    Choose a single account rather than All Accounts. The all-accounts download is a wider file with its columns in a different order, and this mapping does not fit it.

  4. 4

    Set the time period you want, then use the Download link and pick CSV. The file you want has a name beginning History_for_Account_.

  5. 5

    Paste the file below exactly as it downloaded — the empty lines Fidelity writes above the header row are discarded for you.

A brokerage export is mostly not cash, and the readable text hides in Action

Expect skipped rows, in quantity: share transfers and stock-plan activity carry a quantity but no dollar amount, so no money moved and there is nothing for a two-posting transaction to record. Each one is listed instead of invented, and on a brokerage account that can be a third or more of the file — the normal result, not a failed run. What converts is the cash: deposits, debits, dividends, interest and the cash leg of a trade, so a purchase becomes money leaving the account rather than shares arriving. Two Fidelity-specific details sit behind the mapping. The payee text lives in Action, while Security Description reads “No Description” on every cash row. And the ten-line legal block at the foot of the file is reported and skipped.

Beancount output

Your transactions will appear here as soon as you paste a CSV.

Fidelity export questions

My Fidelity file ends with ten lines of legal text — do I have to delete them?

Not for correctness. They are listed as unreadable rows and skipped, so the transactions above them still convert exactly. Delete them if you would rather see a clean run: it is everything from the blank line after your last transaction down to the “Date downloaded …” line. The blank rows at the top of the file need no attention at all — those are discarded before the header is even read.

Why does every row in my export say “No Description”?

Because Fidelity leaves Security Description empty on cash rows and puts the readable text in Action instead. Column detection picks the wrong one of the two and narrates your whole statement as a placeholder; this preset maps Action, so a payroll deposit reads “DIRECT DEPOSIT ACME CORP PAYROLL”. It is the clearest demonstration on this site of what a verified mapping buys you over a guess.

Can I download all my Fidelity accounts in one file?

You can, but do not convert that one here. The all-accounts download inserts Account and Account Number near the front, which moves the amount to a different column, and it mixes every account into rows that would all be posted to the single account you name below. That is two failures at once. Export one account at a time and use the file whose name begins History_for_Account_.

Converting an export from another bank or app?

Keep the ledger you just converted

Beancount.io hosts your plain-text ledger, imports future statements for you, and keeps every number auditable.

Start Free