All guides

// Importing

How to Import Your Broker's Trade History

The import wizard is four steps: Source, Scope, Map, Preview. Nothing is written until you commit on the last one, so the whole run is safe to explore and abandon.

6 min readUpdated

Importing takes a file your broker already produces and turns each row into a trade. It runs as four steps, and nothing reaches your account until you commit on the last one — so the whole run is safe to explore, change your mind about, and abandon.

// 01 · prep

Before you start

Pick the export that lists transactions — variously called activity, history, or realized gains depending on the broker. A holdings or positions snapshot has no fills in it and can’t reconstruct how you got there.

Check which account is selected at the top of the wizard. Everything the import writes lands in that one.

// 02 · the file

1. Source — the file

The rail at the top of the wizard always says where you are.
  1. Upload the file

    Drop the CSV onto Import Data.
    Check this before dropping the file. The wizard has its own account picker — you don’t have to switch the active account first.
  2. Confirm what was detected

    The columns are fingerprinted against known broker formats. On a match, a banner names it and the mapping is filled in for you.
  3. If nothing matched, choose a broker

    A picker appears. Pick yours to use that broker’s reader, name an unlisted one (which tells us what to build next), or map the columns yourself on the Map step.

// 03 · scope

2. Scope — what to bring in

A single statement usually holds more than one kind of row: stock fills, option fills, and cash movements. Scope is where you choose which of those to import, with a count beside each so you can see what the file actually contains.

This step is skipped when the file only holds one kind.

// 04 · columns

3. Map — the columns

Mapping tells the importer which column is the date, the ticker, the quantity, the price, and so on. A recognized broker arrives already mapped and you can move straight past it; an unrecognized file gets best-guess matches you correct.

This step is skipped when the mapping is already complete.

// 05 · the check

4. Preview — check, then commit

The last step shows exactly what will be written, with everything the importer is unsure about surfaced as its own question: duplicates, splits, share transfers, spreads, short sales, and rows it set aside. Each is answerable in place.

You can also exclude individual rows or filter to specific tickers before committing. When something looks wrong here, it is almost always one of the cases in fixing an import that looks wrong.

// 06 · the clock

The source timezone

Trade times are kept as the wall clock you experienced, never converted. But a file records times in whatever zone the broker chose, so the preview asks which zone this file is in.

It pre-fills from the strongest evidence available: what the file says about itself first, then the broker’s known convention, then your own timezone — skipping any zone the file’s own timed option fills rule out, or that would place the newest fill after the moment you uploaded. You can override the pick. Getting it right is what places your trades correctly on the time-of-day and weekday charts; it does not shift the times you see on the trade itself.

// 07 · commit

What commit writes

Row kindWhat it becomes
Stock and option fillsTrades, with positions opened or closed as the fills dictate.
Option resolutionsThe matching open contract is closed as assigned, exercised, or expired.
Cash movementsDeposits and withdrawals in your cash history.
Splits and renamesApplied to the open position, then recorded so a re-import can't apply them twice.

A row that can’t be written fails on its own without taking the rest of the import with it, and is listed afterwards so you can see exactly what didn’t land.

How large a file can I import?

Up to 5 MB and 50,000 rows in one run. A longer history imports in parts — export it by date range and run them oldest first, so each statement’s opening trades exist before the sells that close them.

Frequently Asked Questions

Which file should I export from my broker?
The transaction, activity, or trade-history export — the one with a row per fill, not a positions snapshot. Major brokers are recognized automatically from the column headers, so you don't have to tell us which broker it came from; if nothing matches, a picker appears and you choose.
Will importing the same file twice duplicate my trades?
No, as long as you leave duplicate handling on Skip, which is the default. Rows already in the account are recognized and skipped, so overlapping statement windows are safe to import. Switching to import everything is the deliberate override.
Is anything saved before I press the final button?
Nothing is written to your account — no trades, positions, or cash entries — until you commit, so you can go back, change the mapping, exclude rows, or abandon the import without touching it.
Why does the wizard ask which timezone the file is in?
Because trade times are stored as the wall clock you experienced, and a file records times in whatever zone the broker used. Telling the wizard that zone lets it stamp the exact instant alongside your times, which is what places trades correctly on the hour-of-day charts.

Was this guide helpful?

Start your free journal

Track your trades for free

Ledger-accurate P&L for options and stocks. No credit card required.