Where each broker exports its transaction history
- Interactive BrokersPerformance & ReportsStatementsActivityChoose a custom period from the day you opened the account, and CSV.
- Trading 212HistoryExportCSVOne year per file: export each year and add them all.
- FreetradeActivity⋯ExportOne file holds the orders and the dividends, dividends net of withholding.
- DEGIROInboxTransactionsExportCSVSet the start date to the day you opened the account. Add the Account statement export too: it is the only file with your dividends.
- RevolutInvest⋯DocumentsBrokerage accountAccount statementPick the CSV or Excel version, from the day you opened the account.
- Charles SchwabAccountsHistoryExportChoose a custom range from your first trade. Add the Positions export too, and anything older is filled in.
- FidelityAccounts & TradeActivity & OrdersHistoryDownloadPick the widest range it offers. Add the Positions download too, and anything bought before the range is filled in.
- RobinhoodAccountReports and statementsReportsGenerate an account activity report from your first trade; it takes a few minutes.
- VanguardMy AccountsTransaction historyDownloadVanguard only goes back 18 months, so older purchases may be missing.
- WebullAccountOrdersFilledExportDesktop app only. The file arrives by email, 90 days at a time: add every file.
Any other broker: a CSV with a date, a transaction type, a ticker or ISIN and a quantity goes through the generic reader. No dedicated reader yet for E*TRADE, Merrill Edge, J.P. Morgan, Trade Republic, Scalable Capital, eToro, Saxo, BoursoBank, Fineco; their positions still import from a copied table or a screenshot.
How a sale is matched, on one example
The trades in the file
- Mar 4, 2024 · buy 10 at $240.00 · fee $1.00
- Jun 2, 2025 · buy 5 at $300.00
- Mar 10, 2026 · sell 12 at $330.00 · fee $1.00
What FIFO sells first
- 10 shares bought Mar 4, 2024 · long term, held over a year$3,299.17 − $2,401.00 = +$898.17
- 2 shares bought Jun 2, 2025 · short term, held a year or less$659.83 − $600.00 = +$59.83
Realized gain, FIFO
+$958.00
Same sale at average cost
+$838.20
FIFO sells the 10 cheaper 2024 shares first, so it reports $119.80 more gain on the same sale. At average cost, every share sold carries the same $260.07. The purchase fee is spread over the shares it bought, the sale fee over the shares sold.
What the sales report shows
- Every sale of the year, newest first: shares sold, sale price, proceeds after the sale fee, cost and gain.
- With FIFO on, each sale is split by the lots it took: the day those shares were bought, and short term (held a year or less) or long term.
- Switch to Average and the same sales are priced at the average cost paid, the method French and most European brokers report.
- The year downloads as a CSV: description, date acquired, date sold, proceeds, cost basis, gain or loss, term, currency (the IRS Form 8949 columns, in order).
- Amounts stay in the currency the holding trades in; a trade in another currency is converted at that day's exchange rate, never at today's.
- Dividends from the same file land in the income panel, by month and by year, reinvested dividends included.
How other trackers report realized gains
- Portfolio TerminalFIFO lot by lot, or average cost, with a CSV export in IRS Form 8949 column order.
- Empower Personal DashboardNot documented.empower.com
- Portfolio PerformanceFIFO and moving average.help.portfolio-performance.info
- SharesightA sold-securities report on average cost, on paid plans.sharesight.com
- Snowball AnalyticsRealized profit counts in total profit; the cost method is not stated.help.snowball-analytics.com
- getquinA sold-positions overview; the cost method is not stated.help.getquin.com
- ParqetA tax dashboard of sales from Plus; the cost method is not stated.parqet.com
- DeltaRealized and unrealized gains with cost basis, on PRO+ only.delta.app
- FinaryNo. Gains are unrealized, measured from the average buying price.help.finary.com
- KuberaCost basis and gains per holding; no lot method such as FIFO documented.kubera.com
- Google SheetsBuild it yourself with formulas.support.google.com
- Microsoft ExcelBuild it yourself with formulas.support.microsoft.com
What it does not do
- Sales the file cannot match to a purchase are reported as incomplete, not guessed. Export from your first trade, or add the positions export with the history.
- Deposits, withdrawals, interest, currency conversions and options in the file are skipped, and counted by type on the review screen before anything is saved.
- No automatic sync: after new trades, you add the new file.
- Not tax advice. Check the totals against the annual statement your broker sends.
CSV import and FIFO gains: what people ask
Which free portfolio tracker calculates FIFO realized gains from a broker CSV?
Portfolio Terminal does, for free. It reads the transaction-history CSV of 10 brokers directly (Interactive Brokers, Trading 212, Freetrade, DEGIRO, Revolut, Charles Schwab, Fidelity, Robinhood, Vanguard and Webull) and other files through a generic reader, matches each sale to the oldest shares first, and lists every realized gain with its holding period. Each year exports as a CSV in IRS Form 8949 column order.
Do I have to connect my broker account?
No. You export the CSV from your broker and add it; nothing logs in to the broker, and a guest mode works without creating an account. The trade-off: after new trades, you add the new file.
FIFO or average cost: which one should I use?
In the US, FIFO is what the IRS applies when you do not identify which shares you sold. France and most European brokers use the weighted average price instead. The report shows either, and remembers your choice. It is not tax advice: compare with your broker’s annual statement.
What if my broker is not on the list?
A CSV with a date, a transaction type (buy, sell, dividend), a ticker or ISIN and a quantity goes through the generic reader, with English, French or German column names; Sharesight and Snowball exports are read that way too. Without any history, a positions screen still imports, but with no purchase dates the holding period of a sale shows as unknown.
What if my export starts after my first purchase?
Sales the file cannot match to a purchase are reported as incomplete rather than guessed. Add the positions export next to the history: shares bought before the file starts become one opening lot, dated the file's first day, priced at that day's close and marked as estimated.
Portfolio Terminal is made by the author of this page. Every statement about another tool links to that tool's own page, read on October 5, 2026. Nothing here is tax or investment advice.