TradeReview AI / Brokers / thinkorswim
A trading journal that reads your thinkorswim export
thinkorswim's account statement is one of the richest exports any retail platform produces, and one of the most awkward: several tables in one file, option symbols in full OCC form, and multi-leg orders split across rows. The option codes are the part that breaks most journals, and they are parsed here rather than stored as strings.
How the import actually works
Export your trade history from thinkorswim as a CSV and drop it into the journal. There is no template to fill in first.
The mapper reads the header row and matches your broker's column names against the ones it knows - date, symbol, side, qty, price, fees and a realised P/L column under any of a dozen spellings, from P/L to Realized PnL to Net Profit. Where a column is named something it has not seen, you pick it once from a dropdown and it remembers that file shape for next time.
It also works out what kind of instrument the file holds from the symbols themselves, so the right contract maths is applied without you configuring anything. If it guesses wrong, there is a row of buttons at the top of the import screen to correct it.
Rows that are not trades - transfers, dividends, interest, fees charged to the account - are skipped rather than logged as mystery positions.
An option symbol charts as its underlying
An OCC option code looks like TSLA260612P00380000: the underlying, the expiry, a P or a C, and the strike. Most journals either store that string as the instrument name - so you end up with hundreds of one-trade instruments - or strip the digits and leave you with something called "TSLAP".
Here the code is parsed properly. The trade is tagged with its strike and expiry, it is grouped under its underlying, and the chart opens on TSLA.
The premium is the capital at risk
On a long option the most you can lose is what you paid, and that is a number the journal can work out rather than ask for: contracts times premium times the contract size. So "risk used" on a long option is real rather than estimated.
That matters because it is measured against the risk you planned. Three contracts at 7.40 is $2,220 of premium. Against a $250 risk plan that is 8.88R - and the journal says so in red, whether or not the trade won.
Multi-leg positions stay readable
A spread arrives as separate legs, each with its own strike and its own fill. They import as what they are: individual trades on the same underlying, on the same day, which you can group under one setup tag. Nothing is silently netted into a single row that hides what you actually did.
Questions
Will it read my option symbols properly?
Yes. A code like TSLA260612P00380000 is read as a 12 June 2026 380 put on TSLA. The trade is grouped under TSLA and the chart opens on TSLA, not on a symbol called TSLAP.
What about futures trades in the same account?
They import alongside, with the correct point value per contract. Stocks, options and futures can sit in one journal and still be compared, because everything is also measured in R.
Is it free?
Yes. Unlimited trades, CSV import, the full dashboard, entry and exit screenshots, trade replay and PDF reports are free with no card. AI coaching, AI agents and automatic broker sync are on paid plans.
Do I have to give you my broker password?
No. CSV import needs nothing but the file. Automatic sync on paid plans goes through SnapTrade or the broker's own API, which use read-only connections - the journal can never place a trade.
Import yesterday's session
Export it from thinkorswim, drop the CSV in, tag the setups, and open the hour-of-day breakdown. That one chart is where most traders find their leak.