Broker guides · the export is the obstacle, not the import

Getting the right file out of your broker

These pages say exactly which report to run and which columns carry the events that decide whether your ledger is right.

What each format actually carries

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.

BrokerFileResolutionsIndex settlementTime of fillExecution qualityAuto refresh
tastytradetransactions CSVyestwo rows, mergedto the secondyesno
Interactive BrokersFlex XMLtwo sections must be ontwo shapes, both readto the secondyesyes, your own token
Schwabtransactions CSVyes, signed correctlywritten as a trade, read as a settlementdate onlynot from this fileno
Robinhoodactivity report CSVyestwo rows, mergeddate onlynot from this fileno
WebullOrders Records CSVnone, it is an order lognot in the formatto the second, zone statedyesno
thinkorswimAccount Statement CSVif you Load Defaults firstnot in any public filein an unstated zone, so not usednot from this fileno

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.