On 17 October 2026 we ran every supported broker's export through the whole import path — import, import again, import into a second account, delete and import again, back up and restore — using real exports from each broker. These are the problems it found, and what to do if your journal was affected.
Options came in as stocks (Schwab, Robinhood, Webull)
An option was imported as a stock trade on the underlying, priced at the premium, without the ×100 contract multiplier — so its P&L was 100 times too small. On Schwab and E*TRADE some option rows were refused instead. Tastytrade and E*TRADE options were skipped entirely. All of them now import as options trades on the right contract, including expired, assigned and exercised ones, which close at $0.
What to do: on the Trades page, filter to the broker and look for “stock” trades priced like an option premium (often under $10, with a contract's size). Delete them, then import the file again.
Restoring a backup doubled the book
A backup restored onto the account it came from imported every broker trade a second time, and a restored trade with partial fills lost its fees. A backup now carries each trade's broker identity and its fills, so restoring it onto the same book adds nothing, and restoring it into an empty account rebuilds the same book. A backup made before this change is also recognised. If you restored one and now see every trade twice, delete the copies (they show the source backup).
Fees counted twice on some trades
A trade's fees were taken as its entry fees doubled. That is wrong whenever the two sides cost different amounts: an option that expires closes for nothing, and a sale carries regulatory fees a purchase does not. An expired option was charged its entry fee twice, and IBKR's Transaction History counted every fee twice. Imports now charge exactly the fees the file shows. Trades already in your journal keep their old figure; delete and re-import the file to correct them.
A partial sale of a position you still hold went missing
If you bought 8 shares and sold 4, the open trade kept the purchase but lost the sale, with its P&L and its fee. The sale now stays on the open trade as an exit, and its P&L counts. Realized P&L on that sale is worked out against your average cost, so it can differ from a broker statement that uses first-in-first-out lots.
A sale of shares bought before the file became a short
When an export does not reach back to the purchase, the sale was imported as a new short — even from Robinhood, which does not allow shorting. Now the preview offers to close the matching open trade in your journal, and leaves the sale out if there is none. The same applies to Interactive Brokers: a later statement that sells or expires a position opened in an earlier one now closes that trade, where before the close was dropped and the trade stayed open.
Trades that never arrived
- NinjaTrader: two trades opened in the same minute were treated as one, and the second was skipped as a duplicate.
- Tastytrade: the legs of a spread share one order number, and every leg after the first was skipped.
- Interactive Brokers Activity Statement and TradeStation's Tax Center CSV were sent to the column mapper instead of being recognised.
- E*TRADE's newer download (behind a five-line heading) and Schwab files that start with a title line were refused.
- TradeStation futures Transactions (Client Center) were refused, and when they did import they carried no fees; a fill that turned a position around (long 1, sell 2) also left a position open that the file had closed. Fees now come from the file, including the separate clearing-fee rows.
What to do: import the file again. The missing trades come in, and the trades that already imported are recognised and skipped (see How duplicate detection works).