📥 Import Portfolio
Import from Robinhood, M1 Finance, Schwab, Fidelity, Coinbase, and more with auto-detection
Step 1: Load Your CSV File
Step 3: Assign to Person
Who should own these assets?
Step 4: Confirm Import
How CSV import works (and why we built it this way)
CSV import lets you bring in an existing portfolio from a brokerage export, a spreadsheet, or another tracker without retyping every position. The whole process happens entirely in your browser — your file never leaves the device.
What kinds of files this accepts
Any plain CSV (comma-separated values) file works as long as it has at least two columns: a symbol/ticker column and a quantity column. Optional columns we'll auto-detect include cost basis, asset type, asset name, and which person owns the holding. Most brokerage exports work out of the box — we ship column-mapping presets for the major US brokers and you can adjust the mapping by hand if your file uses different headers.
Excel files (.xlsx) need to be saved as .csv first. In Excel/Numbers/Google Sheets: File → Save As → CSV.
Step-by-step walk-through
- Pick your file. Click Choose File and select your CSV. The app reads it locally; no upload happens.
- Confirm the column mapping. The mapping screen shows your file's columns on the left and the app's expected fields on the right. Adjust any mismatches by clicking the dropdowns. Required: symbol, quantity. Optional but recommended: cost basis, asset type.
- Review the parsed preview. A sample of rows is rendered exactly as they will be imported. Check three things: tickers look right, quantities are not orders of magnitude off, and asset types match what you expect.
- Choose merge mode. "Add to existing" appends the new rows to your current portfolio (with duplicate-detection on ticker + person). "Replace" clears your portfolio first — use only when you really mean to start fresh.
- Confirm. The import runs in milliseconds and you're taken back to the main Portfolio page where everything is now in place.
Common issues and how to fix them
- Tickers not recognised. Some brokerages append exchange suffixes (".US", ":NYSE") that Finnhub doesn't expect. Edit the CSV to use plain tickers (AAPL, MSFT, GOOGL) before importing.
- Quantities in scientific notation. Excel sometimes saves very small or very large numbers as
1.23E+05. Format the column as plain number before exporting to CSV. - European decimal separators. If your CSV uses commas as decimal separators (e.g.
1,234meaning 1.234), the parser will misread them. Convert to dots before importing. - Crypto symbols. Use the exchange's standard symbol (BTC, ETH, SOL) rather than display names (Bitcoin, Ether). The app maps these to live-price feeds automatically.
Why we don't store your CSV
Many tracker apps run CSV imports on their servers, which means your historical positions, cost bases, and account structure get logged in a database somewhere. We do the parsing in the browser using JavaScript so the file is read into memory, processed, and discarded — only the resulting portfolio entries are saved (locally, to your browser). It's a small but meaningful privacy difference, and it's why this page works even with no internet connection.