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
| Column | What goes in it |
|---|---|
date | The 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. |
action | What 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. |
symbol | The ticker — VOO, AAPL, BTC. Leave it empty on rows that are not about a security, such as a cash deposit. |
quantity | Shares, units or coins. Decimals are kept exactly as you write them, so do not round fund reinvestments. |
price | Price per share. Leave it empty on rows that have no price, like a dividend or a fee. |
amount | The 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.
| date | action | symbol | quantity | price | amount | currency |
|---|---|---|---|---|---|---|
| 2026-01-05 | deposit | — | — | — | 5000.00 | USD |
| 2026-01-15 | buy | VOO | 10 | 462.30 | 4623.00 | USD |
| 2026-02-02 | buy | VOO | 2.4187 | 470.15 | 1137.00 | USD |
| 2026-03-20 | dividend | VOO | — | — | 18.44 | USD |
| 2026-04-11 | sell | VOO | 5 | 489.10 | 2445.50 | USD |
| 2026-05-02 | buy | BND | 40 | 72.65 | 2906.00 | USD |
| 2026-06-09 | buy | VOD.L | 500 | 68.42 | 34210.00 | GBX |
| 2026-06-30 | dividend | VOD.L | — | — | 412.50 | GBX |
| 2026-07-20 | withdrawal | — | — | — | 1200.00 | USD |
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 records | Words that mean it |
|---|---|
| Buy | buy bought purchase b bto bot · reinvest · köp kauf achat compra aankoop 購入 |
| Sell | sell sold sale s stc sld · sälj verkauf vente venta verkoop 売却 |
| Money in | deposit contribution wire ach eft electronic funds direct deposit · insättning einzahlung 入金 |
| Money out | withdrawal withdraw direct debit · uttag auszahlung 出金 |
| Income | dividend div interest distribution earnings · stock-lending wording · utdelning dividende zins 配当 |
| Fee or charge | fee fees commission margin interest service charge account charge adr fee advisory fee management fee custody |
| Split | stock split reverse split spl · put the shares the split added in quantity (negative for a reverse split) |
| Short & cover | short sale sell short sold short · buy to cover close short |
| Bonus / match | match ira match referral bonus sign-up bonus — recorded as bonus money, never counted as your own contribution |
| Position transfer | transfer in transfer out acat in rollover in — with 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
- Open your broker's export in Numbers, Excel or Google Sheets.
- Delete any preamble above the real header row — some brokers put an account summary at the top of the file.
- Rename the columns you need to date, action, symbol, quantity, price, amount.
- Delete the columns you do not need. Extra columns are ignored, so this is optional, but it makes the file easier to check.
- Delete any total or subtotal rows at the bottom — they are not transactions.
- Save as CSV and import it.
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.