If you've ever tried to consolidate years of trades from multiple brokers into a single spreadsheet, you already know the pain. Dates in three different formats. Currencies mixed together. Dividend rows that don't match any buy order. The goal of this guide is simple: help you import portfolio CSV data into WealthFlow accurately, so every return figure, cost basis calculation, and tax estimate you see is actually trustworthy.
No broker credentials are ever required — or even requested. WealthFlow's privacy stance is that your login details stay with you, always. CSV is the clean, auditable alternative.
Why the CSV Format Still Matters
Broker apps come and go. APIs break. Platforms get acquired. A well-structured CSV file, on the other hand, is a permanent, human-readable record of your investment history that you own outright.
More practically: if your IRR or cost basis is wrong, the most common culprit is a gap or error in your transaction history — a missed reinvested dividend, a stock split that wasn't recorded, or a purchase from five years ago that never made it into your current tracker. Why your portfolio return is wrong often comes down to exactly this kind of missing data.
Getting the CSV import right is therefore not a one-time admin chore. It's the foundation everything else — performance, tax reporting, goal tracking — is built on.
What WealthFlow's CSV Format Expects
WealthFlow uses a standardised transaction-based CSV structure. Each row represents one event: a buy, sell, dividend, fee, split, or transfer. The key columns are:
| Column | Description | Example |
|---|---|---|
date | Transaction date (YYYY-MM-DD) | 2023-04-14 |
type | BUY / SELL / DIVIDEND / FEE / SPLIT | BUY |
ticker | Exchange ticker or ISIN | VWCE or IE00B3RBWM25 |
quantity | Number of units (positive) | 12.5 |
price | Price per unit in the transaction currency | 98.42 |
currency | ISO 4217 code | EUR |
fees | Total commission/fees for this row | 1.95 |
account | Optional label for the account/broker | Degiro |
notes | Optional free-text field | Reinvested dividend |
⚠️ Important: Dates must be in YYYY-MM-DD format. Mixed formats (DD/MM/YYYY in some rows, MM/DD/YYYY in others) are the single most common cause of import errors and incorrect cost-basis sequencing.
You can download a blank template directly from the Import screen inside WealthFlow. Fill it in, or adapt your broker's export to match it.
Step-by-Step: Cleaning Your Broker Export Before You Import
Most brokers let you export a transaction history as CSV or Excel. The raw export almost never matches WealthFlow's format directly. Here's a practical cleaning workflow:
- Export everything, not just recent trades. IRR and FIFO cost basis depend on the full history. A purchase from 2018 affects the tax calculation on a sale in 2026.
- Standardise the date column. Open the file in a spreadsheet app and reformat the date column to
YYYY-MM-DD. In Excel: select the column → Format Cells → Custom → typeYYYY-MM-DD.
- Map your broker's transaction types to WealthFlow's types. Common mappings:
- "Purchase" / "Buy order executed" →
BUY - "Sale" / "Sell order executed" →
SELL - "Cash dividend" / "Dividend payment" →
DIVIDEND - "Commission" / "Custody fee" →
FEE - "Stock split" →
SPLIT
- Handle splits explicitly. If your broker records a 4-for-1 split as a single "adjustment" row, create a
SPLITrow withquantity = 4(the ratio) on the split date. WealthFlow will then adjust all prior cost-basis lots automatically. See stock splits and dividends record-keeping for the full logic.
- Separate fees from price when your broker bundles them. Some brokers report a single "gross amount" that includes commission. Split these: calculate the clean price per unit, put the fee in the
feescolumn. Bundled fees inflate your cost basis incorrectly and understate your real return.
- Assign an
accountlabel to every row. If you're importing from multiple brokers at once, this is how WealthFlow knows which positions belong where — useful for the multi-brokerage tracking view.
- Check for duplicate rows. Some broker exports repeat rows if you export overlapping date ranges. Sort by date + ticker + type and scan for exact duplicates before importing.
A Concrete Example: Three Years of an ETF Position
Say you hold VWCE (Vanguard FTSE All-World Acc, ISIN IE00B3RBWM25) bought in three tranches across different brokers:
| date | type | ticker | quantity | price | currency | fees | account |
|---|---|---|---|---|---|---|---|
| 2022-01-10 | BUY | IE00B3RBWM25 | 10 | 104.20 | EUR | 2.00 | Degiro |
| 2023-06-15 | BUY | IE00B3RBWM25 | 8 | 91.50 | EUR | 1.50 | Degiro |
| 2024-11-20 | BUY | IE00B3RBWM25 | 5 | 118.00 | EUR | 1.50 | IBKR |
After import, WealthFlow calculates:
- Average cost basis across all 23 units (weighted by quantity and price, plus fees allocated per unit)
- FIFO lots for tax reporting — when you eventually sell, the 2022 lot is consumed first
- IRR using the exact cash-flow dates and amounts, not a simplified CAGR approximation
Because VWCE is an accumulating ETF, there are no dividend rows to worry about here. If you held a distributing share class instead, each dividend payment would be its own DIVIDEND row — important for both return accuracy and tax records. Accumulating vs distributing ETFs explains why this distinction matters for your after-tax return.
What to Watch Out For (Honest Limitations)
Currency conversion rows. If you funded a USD account by converting EUR, your broker may show a "FX conversion" row. These are not investment transactions — exclude them, or log them as a cash transfer. WealthFlow handles multi-currency conversion at the position level using daily rates; you don't need to pre-convert prices.
Investment funds tracked by NAV/ISIN. If you hold mutual funds or pension sub-funds that aren't exchange-traded, use the ISIN as the ticker. WealthFlow looks up NAV prices by ISIN for supported funds. If a fund isn't found automatically, you can enter prices manually.
Very old or reconstructed history. If you're importing trades from before 2010 and you no longer have the original confirmations, be transparent with yourself: estimated cost-basis data produces estimated tax figures. Flag those rows in the notes column so you remember the uncertainty later.
This is not tax advice. FIFO, average cost, and other cost-basis methods are treated differently across European jurisdictions, and the rules change. The FIFO tax-report CSV WealthFlow generates (available on Pro) is a calculation tool — always verify with a tax professional or your local authority. For a general orientation, capital gains tax in Europe is a useful starting point.
After the Import: What to Check First
Once your CSV is uploaded, spend five minutes on these sanity checks:
- Total invested capital — does it match what you know you've put in, roughly?
- Position quantities — do the current holdings match your broker statements?
- Earliest transaction date — is your full history present, or is there a gap?
- IRR per asset — any wildly implausible figures (e.g., +800% IRR on a bond) usually point to a missing sell row or an incorrect price
If something looks off, the Import History screen shows each row that was processed and any warnings raised. Fix the source CSV, re-import, and the previous import is replaced cleanly.
From there, you can layer on WealthFlow's other features: benchmark comparison against an index, price alerts, an income calendar for dividends, and financial goals tied to specific positions. The data quality you put in at the CSV stage is what makes all of those features meaningful.
Ready to See Your Real Returns?
Once your CSV is imported, WealthFlow calculates IRR per asset automatically — and Pro users can export a FIFO tax-report CSV whenever they need it.
Start for free →