Brokers and imports
Every venue Terminal has a saved export for, and every pasted-row grammar it recognises. Generated from the import fixtures and the app's own self-tests, so this page cannot claim a broker the code does not read.
Statements and exports
Each of these is a real export in that venue's own documented shape — its headers, its date format, its quirks — saved in the repository and pushed through the same import pipeline the app runs, then pinned to its full output. The right-hand column is what the suite asserts, in its own words.
| Venue | Proven against | What is pinned |
|---|---|---|
| MT4 / MT5 HTML statement | mt4-statement.html | MT4: closed statement imports as paired round trips |
| Tradovate Performance.csv | tradovate-performance.csv | Tradovate: bought/sold prices pair up; timestamp order gives the short |
| IBKR Flex Query XML | ibkr-flex.xml | IBKR Flex XML: attribute rows go through the executions/LIFO path |
| Coinbase fills.csv | coinbase-fills.csv | Coinbase: fractional partial close splits the lot, fees prorate |
| Kraken trades.csv | kraken-trades.csv | Kraken: pair/vol/time columns read; partial close splits |
| Polymarket activity.csv | polymarket-activity.csv | Polymarket: Market/Action/Shares columns read; prediction class detected |
| Kalshi fills.csv | kalshi-fills.csv | Kalshi: yes/no 'side' column falls through to the buy/sell 'action' column |
| Binance spot trade history (.xlsx) | no saved file | Binance: sheet_to_json rows — suffixed numbers, Pair/Executed/Date(UTC) |
| Robinhood account activity | robinhood-activity.csv | Robinhood: Trans Code sides, Activity Date; cash rows drop silently |
| Webull orders export | webull-orders.csv | Webull: Avg Price (the FILL) beats the bare Price (the LIMIT); cancelled orders skip |
| Schwab transactions | schwab-transactions.csv | Schwab: Sell Short opens a short; Fees & Comm read; Journal rows drop |
| Fidelity history | fidelity-history.csv | Fidelity: 'YOU BOUGHT …'/'YOU SOLD …' sentences parse as sides |
| Tastytrade history | tastytrade-history.csv | Tastytrade: signed debits abs'd; commissions + fees SUMMED; OCC option round trip every fixture stores dates the app can actually use every fixture lands on the RIGHT days, not merely date-shaped ones a separate Time column never displaces a real date column no fixture date escapes the 2026-08-10..14 window |
Pasted rows
Copy rows straight out of a broker's Orders or Activity panel and paste them in — no reformatting, no column mapping. These grammars are pinned by the app's own self-tests.
| Recognised without reformatting |
|---|
| thinkorswim qty-first @price |
| Tastytrade 'Bought' stock |
| Fidelity 'YOU BOUGHT' |
| DAS/Sterling pair+liquidity |
| single price + filled/ordered qty |
| TradeStation 'Bought' futures |
| Tradovate futures |
| Webull OCC option |
| Webull month-name option |
| Tastytrade 'Call'-before-strike option |
| Tastytrade 'Sold to Close' option |
| verbose put strike-before-type |
What this page does not claim
The saved exports are synthetic books written in each venue's format, not real-money statements. A venue absent from the table is not refused — the column sniffer reads most well-formed exports — it simply has no fixture, so nothing here promises it. If yours does not import, say so and it can become a fixture.