Import guides

The FolioBright standard.

Six columns. If your export does not import cleanly, rearrange it into this and it will.

Import guides  /  Standard CSV format

There is no industry-standard CSV for brokerage exports, and there is not going to be one. Every broker names its columns differently. FolioBright works around that by reading your file's header row and matching the columns itself — but when a file is unusual enough that it will not go in, this is the format that always will.

It is also the answer for anything that is not a brokerage at all: a spreadsheet you have kept by hand, a pension statement you are typing up, an old account whose export is long gone, a brokerage in a country nobody writes guides about.

Download the template   foliobright-template.csv · 9 example rows

The six columns

ColumnWhat goes in it
dateThe date the transaction happened. 2026-03-14 is unambiguous everywhere and is what we would use; most common formats are read too, but a bare 03/04/2026 means different days on different sides of the Atlantic.
actionWhat happened: buy, sell, dividend, interest, fee, split, deposit, withdrawal. This column decides the direction of the row, so it is the one to get right.
symbolThe ticker — VOO, AAPL, BTC. Leave it empty on rows that are not about a security, such as a cash deposit.
quantityShares, units or coins. Decimals are kept exactly as you write them, so do not round fund reinvestments.
pricePrice per share. Leave it empty on rows that have no price, like a dividend or a fee.
amountThe cash value of the row. Usually quantity × price, plus or minus any commission the broker charged.

What it looks like filled in

The events most portfolios are made of — money arriving, an ordinary purchase, a fractional reinvestment, a dividend with no share movement, a partial sale, a second holding, a London listing priced in pence, and money going out again.

The deposit comes first on purpose. Money arrives, then it is spent. A file made entirely of trades leaves FolioBright with purchases and nothing funding them, which is the one mistake that quietly distorts every return figure — your buys get read as investment gains rather than as money you put in.

dateactionsymbolquantitypriceamountcurrency
2026-01-05deposit5000.00USD
2026-01-15buyVOO10462.304623.00USD
2026-02-02buyVOO2.4187470.151137.00USD
2026-03-20dividendVOO18.44USD
2026-04-11sellVOO5489.102445.50USD
2026-05-02buyBND4072.652906.00USD
2026-06-09buyVOD.L50068.4234210.00GBX
2026-06-30dividendVOD.L412.50GBX
2026-07-20withdrawal1200.00USD

The full vocabulary

The action column is matched against the words below, ignoring case. You do not have to use our spelling — most of what brokers actually write is already here, in several languages. If your export uses wording that is not listed, rename it to one of these.

What it recordsWords that mean it
Buybuy bought purchase b bto bot · reinvest · köp kauf achat compra aankoop 購入
Sellsell sold sale s stc sld · sälj verkauf vente venta verkoop 売却
Money indeposit contribution wire ach eft electronic funds direct deposit · insättning einzahlung 入金
Money outwithdrawal withdraw direct debit · uttag auszahlung 出金
Incomedividend div interest distribution earnings · stock-lending wording · utdelning dividende zins 配当
Fee or chargefee fees commission margin interest service charge account charge adr fee advisory fee management fee custody
Splitstock split reverse split spl · put the shares the split added in quantity (negative for a reverse split)
Short & covershort sale sell short sold short · buy to cover close short
Bonus / matchmatch ira match referral bonus sign-up bonus — recorded as bonus money, never counted as your own contribution
Position transfertransfer in transfer out acat in rollover inwith a symbol and quantity. A transfer of cash is skipped, because a row cannot say which account it came from; record those with + Add Transaction

Options are read from the contract itself, wherever it appears in the row, so BTO, STC, assignments, exercises and expiries all import without any special wording from you. Journals, reorganisations, mergers and return-of-capital rows are set aside rather than guessed at, and every skipped row is listed with its reason before you import.

Rules that save you a re-import

One row per event. If you bought the same fund three times in a month, that is three rows. Do not net them together — the whole point of a transaction history is that it knows when each purchase happened, and a netted row makes your return wrong in a way that is hard to spot later.

Do not round the quantity. Dividend reinvestments produce quantities like 2.4187. Rounding to two places is how a portfolio ends up a few hundred dollars off and nobody can work out why.

Leave cells empty rather than writing zero. An empty price on a dividend row means "this row has no price". A zero means the price was zero, which is a different and untrue claim.

Strip currency symbols and thousands separators if you can. 4623.00 reads more reliably than $4,623.00, though both usually work.

Bring your deposits and withdrawals too. They are what tells FolioBright which of your growth is money you added and which is return you earned. Without them every purchase looks like it was funded from nowhere, and your performance figures overstate. If your broker will only export a year or two of activity, import what you can — the rest is inferred and the app tells you exactly what it inferred and where.

One account per file. If you are bringing in an IRA and a taxable account, make two files and import them into two accounts. They have different tax treatment and usually different goals, and separating them keeps allocation and contributions meaningful.

Keep the header row. The column names are how FolioBright knows what it is looking at.

Turning your export into this

  1. Open your broker's export in Numbers, Excel or Google Sheets.
  2. Delete any preamble above the real header row — some brokers put an account summary at the top of the file.
  3. Rename the columns you need to date, action, symbol, quantity, price, amount.
  4. Delete the columns you do not need. Extra columns are ignored, so this is optional, but it makes the file easier to check.
  5. Delete any total or subtotal rows at the bottom — they are not transactions.
  6. Save as CSV and import it.
Try importing before you do any of this. FolioBright reads your header row and matches the columns automatically, and when it meets a layout it has not seen it works the rest out from the shape of each column. Most files go straight in. This page is the fallback, not the first step.

Current holdings instead of history

If all you have is a snapshot of what you own today, use these columns instead: symbol, quantity, cost (total cost basis) or cost_per_share, and optionally price and name. Choose Current holdings rather than Transactions in the import window.

It gets you a correct picture of today with no history behind it, which means no performance chart and no return figures until you add transactions. That is a reasonable place to start — you can import positions now and let the history build from here.

Other brokerages

Nothing to install

FolioBright reads the file in your browser and stores the result in your own account. There is no brokerage login to hand over, no read-only credential, and no third-party aggregator sitting between you and your holdings.

Start free — 14 days, no card   Read the FAQ