These pages say exactly which report to run and which columns carry the events that decide whether your ledger is right.
One CSV covers everything: fills, expirations, assignments, exercises and the cash settlement of index options.
The default Flex Query hides the events that matter. Two sections have to be switched on or an assigned put arrives as a closing buy at a price of zero.
Eight columns, two dates on every resolution row, and an index settlement dressed up as a closing trade.
Nine columns, no time on any row, and a one-letter suffix that decides whether a position was long or short.
An order log rather than a statement: eleven columns, a clock that names its own zone, and no expiration row anywhere because the format has none.
A dozen named sections, a time in a zone the file does not reliably state, and no expiration row anywhere.
Every parser here was written against a REAL export, and this is what those files turned out to hold. A blank is not a shrug: it is a thing the format does not carry, and the guide says what to do about it.
| Broker | File | Resolutions | Index settlement | Time of fill | Execution quality | Auto refresh |
|---|---|---|---|---|---|---|
| tastytrade | transactions CSV | yes | two rows, merged | to the second | yes | no |
| Interactive Brokers | Flex XML | two sections must be on | two shapes, both read | to the second | yes | yes, your own token |
| Schwab | transactions CSV | yes, signed correctly | written as a trade, read as a settlement | date only | not from this file | no |
| Robinhood | activity report CSV | yes | two rows, merged | date only | not from this file | no |
| Webull | Orders Records CSV | none, it is an order log | not in the format | to the second, zone stated | yes | no |
| thinkorswim | Account Statement CSV | if you Load Defaults first | not in any public file | in an unstated zone, so not used | not from this file | no |
Execution quality is the one Desk feature a file can rule out. It compares your fill to the two sides that were standing at the minute it printed, and Schwab, Robinhood and thinkorswim do not record the minute: Schwab and Robinhood write the date alone, and the thinkorswim statement prints a clock without saying which zone it is in, which is worse than none. Everything else on Desk works from every file here.
Interactive Brokers is the only one that can refresh itself, and not because its API is better: the Flex token is YOURS, made in Client Portal, restrictable to one IP and revocable by you, so it needs nobody's approval. The others have no equivalent, which is why they are files. A broker not on this list is not refused: send the export and the parser is written from it, because a parser written from documentation instead of a real file is a parser that fails on the first real one.