Most US traders lose 30–60 minutes the first time they try to export from their broker — menus move, column names don’t match, and dates import as text. This guide covers the four most common US brokers: Schwab/thinkorswim, Interactive Brokers, Tastytrade, and Webull. The focus is on the specific failure modes — wrong menus, extra transaction types, column overload — that cause silent import errors and missing trades in your journal.
Step 1: Export from Schwab/thinkorswim
Schwab completed the TD Ameritrade integration in 2023. The thinkorswim platform is retained, but account statements now appear under Schwab branding.
Export path: thinkorswim > Monitor tab > Account Statement
Set your date range using the From/To fields at the top of the Account Statement panel. Select CSV as the export format. The resulting file uses MM/DD/YYYY date formatting throughout.
One critical detail: wash-sale adjustments appear as a separate line item marked with a W in the transaction type column. JournalPlus auto-detects these W items and flags the corresponding trades — you do not need to edit the file before importing.
If your account was opened before the 2023 Schwab migration and you still see a StreetSmart Edge interface, the export path differs. In StreetSmart Edge, go to Accounts > Transaction History > Export. The column structure is similar, but the platform branding will look older.
Step 2: Export from Interactive Brokers via Flex Query
The default IBKR Activity Statement is the most common source of failed imports. It exports 47+ columns covering positions, dividends, withholding taxes, transfers, and more — the importer times out trying to parse it.
Use Flex Queries instead. Navigate to: Reports > Flex Queries > Create New Query
Select Trades as the statement type. Add exactly these fields:
| Field | Purpose |
|---|---|
| Symbol | Ticker |
| TradeDate | Entry/exit date |
| Quantity | Shares/contracts |
| TradePrice | Execution price |
| IBCommission | Commission cost |
| Buy/Sell | Direction |
| AssetClass | STK, OPT, FUT |
Set the date format to ISO 8601 (YYYY-MM-DD). Save the query and run it. A 200-trade export with these 7 columns imports into JournalPlus in under 10 seconds, compared to a timeout with the default statement.
IBKR Flex Queries support up to 10 years of trade history — use this when importing a historical backfill.
Step 3: Export from Tastytrade
Export path: Account > History > Transactions
The critical step is the filter. Tastytrade’s “All Transactions” export includes dividend credits, interest charges, margin fees, and cash transfers alongside actual trades. A trader who exported all transactions for a 45-trade Q4 SPY options account received a 312-row file — 222 rows were non-trade entries the importer flagged as unrecognized.
Set the Type filter to Trade only before exporting. This reduces the export to executed equity and options trades only. The resulting file will include options expiration data (expiry date, strike, call/put) intact.
Tastytrade exports use ISO 8601 date formatting (YYYY-MM-DD), which imports cleanly without any date conversion.
Step 4: Export from Webull
Webull has two important constraints that differ from the other brokers on this list.
Export is mobile-only. The Webull desktop application does not support trade history export. Open the mobile app and navigate to: Orders > History > Export. Select your date range and download the CSV. The file will be emailed to your registered address or available for direct download depending on your app version.
Webull does not flag wash sales. Webull’s support documentation confirms that wash-sale adjustments are not included in exports. Webull also supports fractional shares, so some rows may show quantities like 0.5 or 2.33.
Since Webull provides no wash-sale flagging, any Q4 tax reconciliation requires manual review. Under IRS Section 1091, a loss is disallowed if you purchase a substantially identical security within 30 days before or after the sale — a $10,000 disallowed loss can create a significant tax surprise if not caught before filing.
Step 5: Handle Date Formats and Wash-Sale Flagging
Date format handling across the four brokers:
| Broker | Date Format | JournalPlus Handling |
|---|---|---|
| Schwab/thinkorswim | MM/DD/YYYY | Auto-converted |
| IBKR Flex Query | YYYY-MM-DD (ISO) | Imports natively |
| Tastytrade | YYYY-MM-DD (ISO) | Imports natively |
| Webull | MM/DD/YYYY | Auto-converted |
No manual date reformatting is needed for any of these brokers as long as you use the export paths described above. Problems arise when using alternative export methods (such as copying data from the browser UI instead of using the dedicated export function), which can produce inconsistent formats.
Wash-sale flagging by broker:
- Schwab: Flagged in export with W line item — JournalPlus auto-detects
- IBKR: Not flagged in Flex Query exports — requires manual identification or tax software cross-reference
- Tastytrade: Not flagged in trade exports — requires manual identification
- Webull: Not flagged, by confirmed policy — requires manual identification
Pro Tips
- When doing a historical backfill from IBKR, run separate Flex Queries per year rather than one large multi-year query — this prevents timeout errors and makes it easier to spot gaps.
- For Tastytrade options traders, verify that the expiration date column appears correctly after import. If options appear as single-leg trades with no expiry, the export likely included a filter that stripped the options metadata.
- Schwab’s Account Statement date range defaults to the current month. Always manually set the From date — forgetting this is the most common reason traders import only a partial month.
- If you trade on both Schwab and IBKR, import IBKR first since it has the cleaner column structure. Use the Schwab import to catch discrepancies in execution data between the two accounts.
- For year-end tax prep, export each broker’s full calendar year in one file rather than importing monthly. This ensures wash-sale relationships across month boundaries are preserved.
Common Mistakes to Avoid
-
Using the IBKR default Activity Statement. The 47-column default export causes import timeouts and includes irrelevant position data. Always create a Flex Query with 7 targeted fields.
-
Exporting “All Transactions” from Tastytrade. A 45-trade account can generate 312 rows when fees and dividends are included. Filter to Trade type only — this is the single most common Tastytrade import failure.
-
Trying to export from Webull desktop. The desktop application does not support CSV export. Use the mobile app exclusively and verify the file arrives via email before closing the export dialog.
-
Ignoring wash-sale flags in Q4. Schwab exports flag wash sales automatically, but IBKR, Tastytrade, and Webull do not. A $10,000 disallowed loss under IRS Section 1091 will not appear in your journal P&L unless you tag it manually — leading to a mismatch between your journal and your 1099-B.
-
Not verifying row counts after import. Always compare the number of trades in your broker’s account history UI against the number imported into JournalPlus. A 10% discrepancy usually means a date range was off or an extra filter was applied during export.
How JournalPlus Helps
JournalPlus accepts CSV imports from all four brokers described in this guide without requiring column remapping — the importer recognizes Schwab, IBKR Flex Query, Tastytrade, and Webull file structures automatically. Schwab’s W wash-sale line items are detected and surfaced as trade tags so you can filter affected trades separately from your standard P&L view. For brokers that don’t flag wash sales (Webull, Tastytrade, IBKR), the trade tagging system lets you manually mark affected trades and exclude them from performance metrics during tax review. The analytics dashboard separates wash-sale-adjusted trades from clean P&L automatically once tagged, giving you an accurate picture of your reportable gains. If you trade across multiple accounts — for example, a Schwab taxable account and an IBKR margin account — JournalPlus’s multi-account journaling lets you import both into a single journal and view combined or isolated performance.
People Also Ask
Does JournalPlus support TD Ameritrade exports?
TD Ameritrade was fully merged into Schwab in 2023. The thinkorswim platform is retained, but account statements are now under Schwab branding. Use the Schwab export path described in this guide.
Why does my IBKR import time out or fail?
The default IBKR Activity Statement exports 47+ columns, many irrelevant to trade journaling. Use a Flex Query with only 7 fields — Symbol, TradeDate, Quantity, TradePrice, IBCommission, Buy/Sell, AssetClass — to reduce the file size and import in under 10 seconds.
Webull doesn't flag wash sales in my export. What should I do?
Webull confirmed in their support documentation that wash-sale flagging is not included in exports. You need to manually identify trades where you repurchased a substantially identical security within 30 days of a loss sale under IRS Section 1091.
Why did my Tastytrade import produce hundreds of unrecognized rows?
Exporting "All Transactions" includes dividend credits, interest charges, and margin fees that the importer cannot match to trades. Re-export filtering to Trade type only, which will reduce your row count to just executed trades.
How far back can I import trade history from IBKR?
IBKR Flex Queries support up to 10 years of trade history, compared to the 90-day default limit on standard Activity Statements. Set your date range accordingly when configuring the Flex Query.