To import transactions from a CSV, open a portfolio, press Import CSV on its Transactions card and choose the file your broker exported. The wizard reads it, shows you every row it found before anything is written, and imports only the rows you leave ticked.
CSV import is part of the Ultimate plan. On the free plan the button reads Import CSV · Ultimate and takes you to Plan & billing in Settings instead. Every new account gets Ultimate for seven days once its email address is confirmed, with no card asked for.
The import writes into one portfolio, so the button sits on that portfolio’s Transactions card, beside Add transaction. Under Combined portfolio both buttons are absent — switch to the portfolio the trades belong to first, from the switcher in the header.
The Other brokers card in Settings → Connected accounts has an Import a CSV button that opens the same wizard.
The wizard runs in four steps — File, Columns, Review and Done. On the first, press Choose file. The file has to be a .csv — or, from Interactive Brokers, a Flex Query .xml — of at most 2 MB.
Above the button, Works out of the box with lists the export formats the wizard recognises on its own. The CSV ones are Trading 212, Revolut and the Interactive Brokers Activity Statement; the one XML format is the Interactive Brokers Flex Query (see below). A file in one of those formats is read without any setup. Leave Broker on Detect automatically and pick your broker there only if the file is not recognised on its own.
Any other CSV — from Degiro, XTB, Freedom24, a spreadsheet you keep yourself — can still be imported: the wizard simply asks you which column is which.
When the format is recognised, the wizard skips this step and goes straight to the review, with a Detected: badge naming the format and an Edit mapping button in case you want to look anyway.
Otherwise it opens on Columns, with its best guess already filled in. Each of our fields — Ticker, Action / type, Quantity, Price per share, Amount (used for dividend, fee and interest rows) and Date — has a menu of your file’s column headers. Continue stays disabled until every field your file needs is mapped, and the wizard names the ones still missing. Below them, Date format shows the pattern it detected; if it could not read the dates, type the pattern yourself (dd/MM/yyyy, for example).
Below the columns, each distinct value in your type column (“Market buy”, say) gets its own menu: map it to Buy, Sell, Dividend, Fee or Interest, or to Not a transaction — skip. Deposits, withdrawals and currency conversions belong under the last one. You answer once per value, not once per row.
The review table lists each transaction the wizard read — ticker, type, quantity, price, amount and date — with a status, and a line above the table counts them: how many are ready to import, how many are duplicates, how many have errors.
To fix a row, press the pencil at the end of it: the cells become editable, the row is re-checked as you type, and once the error clears it is ticked for you. Rows mapped to not a transaction are kept out of the table altogether; a Show … skipped rows button lists them with the reason and the original line from your file, so you can check nothing real was left behind.
The button at the bottom of the review names the count — Import 24 transactions, for instance — and nothing is written to the portfolio until you press it. The dialog cannot be closed while the import is running. If it fails, you stay on the review with your choices intact and can try again.
The last step says how many transactions were imported. The rows are checked once more as they are written, and any that are refused at that point are listed by row number with the reason — a sale of more shares than the portfolio holds on that date, for example. The portfolio reloads behind the dialog, so the new transactions are in place when you press Done.
A connected Interactive Brokers account can only ever sync the last 365 days. For anything older, run the same Flex Query by hand: in Client Portal open Performance & Reports → Flex Queries, press Run next to the query your connection uses, choose Custom Period and Format XML, and export one calendar year per file. Import each .xml here; the wizard recognises it as Interactive Brokers (Flex Query XML) and goes straight to the review.
Every row in that file carries Interactive Brokers’ own transaction id, so a year imported twice — or a year the connection later reads again — is recognised by that id and comes back marked Duplicate and unticked. Tick it anyway and it is refused at the last step with the reason, rather than written a second time. The connection itself is described in how to connect a broker account.
You can import a newer export of the same account later: rows already in the portfolio come back marked Duplicate and unticked, so only the new ones are imported unless you choose otherwise. If your broker is Trading 212 or Interactive Brokers, a connected account does this for you every night — see how to connect a broker account. Once the transactions are in, the portfolio tracker guide covers what the portfolio screen does with them, and portfolio analytics what Ultimate adds on top.