Import Holdings from a File
Bring holdings in from a CSV, spreadsheet, or brokerage export — what columns matter and the common gotchas.
If your holdings already exist in a file, don't retype them. The importer reads brokerage position exports and hand-made spreadsheets alike, and it's available on every plan.
What Files Work
- CSV and XLSX — including the position-export files every major brokerage lets you download. Recognized layouts are parsed right on your device; a layout we can't read deterministically falls back to the same AI reader as PDFs.
- PDFs and screenshots — statements and app screenshots are read with AI extraction, useful when a proper export isn't available.
- Not supported: the legacy binary Excel format (.xls). Re-save it as .xlsx or CSV first.
What Columns Matter
Three pieces of data per row:
- Ticker (or a company name we can resolve)
- Shares
- Cost — cost basis or cost per share
The importer recognizes the common header names brokerages use, then shows you every parsed row for review before anything is saved — you pick the destination account and confirm.
How Cost Basis Is Handled
Cost basis comes only from real cost data in your file. A brokerage export missing its cost column never gets the market price substituted in — that would fabricate your gain/loss numbers. (The one exception: a bare hand-typed list of just tickers, shares, and a price column uses that price as a starting cost you can correct later.) Your brokerage's own export almost always includes real cost, so prefer that file when you can.
Common Gotchas
- Transaction files vs position files. Some brokerage exports (Fidelity's, notably) mix row types in one file. The importer classifies them, but a plain *positions* export is always the cleanest input.
- Already-owned tickers merge. Rows matching a symbol the destination account holds fold into the existing position (badged "Adds to Held") rather than duplicating it — see merge-on-add.
- The holdings cap. A free account holds up to 20 holdings per account. If a file exceeds the room left, you'll see a warning about which rows would be skipped before you commit.
- Dividends don't ride along. A positions file carries what you own, not what you've been paid — log income separately or import it.