About this guide: I'm Lawrence, the writer behind supa.is. Between February and May 2026 I've published 150+ articles on supa.is across crypto and brokerage tooling โ including 30+ Interactive Brokers-specific guides (recent examples: IBKR Tax Lots: FIFO, LIFO & Specific ID, IBKR Tax Planner: Estimate Capital Gains, IBKR PortfolioAnalyst: Benchmark Your Portfolio). The most-repeated reader question across that IBKR archive is exactly how to pull an accurate activity statement and realized PnL export, which is why I'm publishing this standardized guide instead of answering one-off.
Scope note: This guide explains the Activity Statement's structure, export options, and reconciliation pitfalls based on IBKR's public reporting documentation. I have not run a live export in a funded account, so treat menu labels and filter names as approximate. IBKR updates its interfaces regularly; verify the exact layout in your current Client Portal or TWS build before relying on any specific label.
Interactive Brokers is powerful, but its reporting suite is dense. If you're at the end of the tax year or doing a quarterly review, you probably need a clean activity statement with your realized PnL. Unlike retail brokers with a one-click "Download Tax Report" button, IBKR makes you dig for it. Once you know what to look for, the export is straightforward.
Why Your Activity Statement Matters
Your daily statement or account summary won't give you a granular breakdown of realized PnL by asset class, by day, or by currency. The Activity Statement is the account's record of the trades, deposits, withdrawals, dividends, and fees that touched it during a specific period. You'll need it to file your taxes accurately, check whether your forex trades offset your equity losses, or dispute a wrong settlement with IBKR support.
Where the Activity Statement Lives
The Activity Statement is available in both the Client Portal (IBKR's web interface at ibkr.com) and Trader Workstation (the desktop application). In both, it sits under the Reports area of the interface, alongside other statement and report types.
The exact sub-menu position and label can shift between Client Portal versions and TWS builds. If you don't see it immediately, use the portal's search or report-list filter and look for "Activity Statement." The name is consistent across both platforms even when the surrounding menu structure changes.
Configuring the Report
Before generating the statement, you set a handful of parameters. These are the same whether you're in Client Portal or TWS:
| Parameter | What it controls | Typical choice for tax export |
|---|---|---|
| Date Range | Which period the statement covers | Calendar year (e.g., 01/01/2026 โ 12/31/2026) or "Year to date" |
| Account | Which IBKR account to report on | Your primary trading account; select individually if you hold multiple |
| Currency | Base currency for PnL figures | USD for US tax filing; transaction currency if you track per-currency |
| Symbol / Asset filter | Narrow to specific tickers | Leave blank for full account, or type a ticker (e.g., AAPL, BTC) for a single asset |
| Status filter | Which trade states to include | Completed (default); widen to "All" only if you need to see pending fills |
Exporting: CSV vs PDF
Once the report is generated, IBKR offers two export formats:
- CSV โ the format you want for any downstream work. It opens in Excel, Google Sheets, or tax software import modules. Each row is a transaction with columns for symbol, action, quantity, price, commission, realized PnL, and currency.
- PDF โ a printable, human-readable document. Useful for handing to an accountant or keeping as a record, but not practical for data manipulation.
Reading the Realized PnL Columns
When you open the CSV, the columns that matter most for realized PnL are:
- Symbol โ the ticker or instrument identifier
- Action โ Buy, Sell, or Exercise
- Realized PnL โ profit or loss *before* commissions
- Realized PnL (Net) โ profit or loss *after* commissions and fees
Common Issues and How to Fix Them
Even with a straightforward export, IBKR's reporting can throw curveballs. These are the issues that usually show up when reconciling an activity statement.
Like what you're reading? Try it yourself โ this link supports ChartedTrader at no cost to you.
Open an IBKR Account โIssue 1: "Report Generation Failed" or Timeout
If you request a very long date range (e.g., 5 years of data) and the generation times out, the server is struggling with the dataset size.
Break the date range into smaller chunks. Pull one year at a time, or one quarter at a time. Export each chunk to a separate CSV file, then combine them in Excel.
Issue 2: Realized PnL Doesn't Match Your Tax Software
Check your tax lot method. IBKR supports FIFO, LIFO, and specific identification, and the realized PnL you see depends on which method is applied to your lots. Make sure your tax software uses the same method as your IBKR account. Our IBKR Tax Lots: FIFO, LIFO & Specific ID guide walks through how the three methods change your reported gains, and the IBKR Tax Planner guide covers estimating capital gains in PortfolioAnalyst before you file.
Issue 3: Missing Trades in the Activity Statement
You remember making a trade, but it's not showing up in your exported activity statement.
Check the status filter. By default, the activity statement shows completed trades. If a trade is still pending or settling, it won't appear. You can widen the status filter to "All" to see pending trades, but be aware that pending trades do not have a realized PnL yet.
Issue 4: Currency Conversion PnL Is Confusing
If you trade forex or hold assets in multiple currencies, you'll see "Currency Conversion" lines in the activity statement. These represent the PnL from converting one currency to another (e.g., converting EUR to USD).
These are legitimate realized PnL events. If you bought EUR/USD and later sold it, the difference is realized PnL. Don't ignore these lines; they are part of your overall tax liability.
How to Organize Your PnL Data for Taxes
Once you have your exported CSV file, you need to organize it. A practical workflow is to open the CSV in Excel, filter by asset class (Stocks, Options, Forex, Crypto), then build a pivot table that sums "Realized PnL (Net)" by month. The year-end total from that pivot table is the number you'll ultimately report to the IRS (or your local tax authority). If you hate clicking through menus every month, automate the export with IBKR's Flex Web Query feature: create a query, select the activity fields you need, set the delivery method to a file (CSV), and set the frequency to monthly. Our IB Flex Query + Python guide shows how to take that CSV a step further and pipe it into your own reporting scripts.
If you're using dedicated tax software like TurboTax or TaxAct, most of it has an "Import Data" feature where you can upload your IBKR activity statement directly. The software parses the CSV and populates your tax forms.
FAQ
How often does IBKR update the Activity Statement?
The activity statement reflects completed activity, so a trade appears once it has executed and settled. For end-of-day reporting, pull it after market close so all of that day's trades are included.Can I export my Activity Statement for a specific asset only?
Yes. In the Activity Statement configuration you can filter by symbol. Type the ticker (e.g., AAPL, BTC) in the filter box and the report will only show trades for that asset.Does the Activity Statement include unrealized PnL?
No. The activity statement covers realized PnL from closed trades. For unrealized PnL on open positions, look at your account summary or the PortfolioAnalyst tool.What should I do if I find an error in my Activity Statement?
Contact IBKR support via the chat function in the Client Portal or TWS. Have your account number and the specific trade details (date, symbol, order ID) ready before you reach out.Is the Activity Statement the same as my Tax Center report?
No. The Tax Center is a separate tool built for tax reporting: it provides pre-filled tax forms (like the 1099-B in the US) and handles wash-sale rules. The Activity Statement is a raw data export you can use for your own tracking or to feed into third-party tax software.Risk Warning
Risk Warning: Crypto trading involves substantial risk of loss. Never invest more than you can afford to lose. This is not financial advice. Trading stocks, options, forex, and cryptocurrencies carries a high level of risk and may not be suitable for all investors. You should carefully consider your investment objectives, level of experience, and risk appetite before deciding to trade.