Trading journals can only build native importers for so many brokers. There are dozens of stock and crypto platforms in active use, and a new one launches every year. If yours isn't on the supported list, the practical answer usually isn't "wait for support" — it's a mapper that lets you tell the app what your columns mean, once, and reuse that mapping every time you re-import.

This guide walks through TheSpeculatorsJournal's Custom CSV — Any Broker importer end to end: what to export from your broker, exactly which columns are required versus optional, how the profit and loss calculation falls back when your file doesn't have a P&L column, and how to handle execution-level fill data instead of finished round-trip trades.

What the Custom CSV mapper does, and when to use it

Instead of parsing a specific broker's export format, the Custom CSV mapper shows you the raw column headers from your file and lets you assign each one to a target field — Symbol, Trade Date, Entry Price, and so on. Because the mapping is stored by column header name rather than column position, it keeps working even if your broker reorders columns in a future export.

Reach for it when your broker isn't one of the natively supported formats, when a broker's export format has changed and broken the native parser, or when your trade history lives in a spreadsheet or a backtesting log rather than a broker export at all. If you trade on TradeZero, Interactive Brokers, Binance, or Coinbase, the matching built-in importer will save you a mapping step — see How to Import IBKR Trades for what that looks like. Everyone else, this is the path.

Before you start: exporting your trade history

Most brokers have a "trade history," "closed positions," or "execution report" export somewhere in account activity or reporting — export it as CSV with the header row included. Two things are worth checking before you upload:

Step 1: Select the format

On the Import Trades screen, choose Custom CSV — Any Broker — it's the recommended, default option, since it works regardless of which broker or exchange the file came from.

Step 2: Upload the file

Upload your export (CSV, up to 5MB). The app reads the header row and the data rows immediately and moves you into the mapping panel — nothing is imported yet at this point, so there's no risk in uploading a file just to see how it maps.

Step 3: Map your columns

This is the step that matters. You'll see a dropdown for every target field, each pre-filled with a best guess based on your column headers (a header like "Ticker" or "Coin" auto-maps to Symbol, "P&L" or "Realized" auto-maps to Net P&L, and so on). Check every guess rather than trusting it blindly, especially on files with unusual header names.

Required fields: Symbol / Ticker, Trade Date, and Entry Price. The mapper won't proceed without these three mapped to a column.

Optional fields: Exit Price, Quantity / Shares, Net P&L, Fees / Commission, Entry Time, Exit Time, and Side / Direction. Map whichever of these exist in your file — leaving one as "not in file" is fine if your export doesn't include it.

Date format: a separate dropdown lets you choose Auto-detect, MM/DD/YYYY, or DD/MM/YYYY. Auto-detect handles most files correctly by checking which part of the date exceeds 12, but if your dates are ambiguous (every day-of-month value happens to be 12 or under), set the format explicitly rather than trusting auto-detect to guess right.

Below the dropdowns, a preview table shows the first few raw rows of your file so you can visually confirm a mapped column actually contains what you think it does before applying anything.

How the P&L calculation falls back

If your file has a Net P&L column, map it directly and the importer uses it as-is. If it doesn't, map Exit Price and Quantity instead, and the app computes P&L for you as (exit price minus entry price) times quantity, minus fees — direction-aware, so short trades are calculated correctly. If neither a P&L column nor Exit Price plus Quantity are available, the trade still imports, but as a pending trade with no P&L until you fill that in manually.

Put this into practice
TheSpeculatorsJournal tracks this automatically — win rate, profit factor, equity curve, and more. 7-day free trial, card required, cancel anytime.
Start Free Trial →

Execution-level files: when to use FIFO matching

If your export is one row per individual fill rather than one row per completed trade — common with some crypto exchanges and direct-access brokers — turn on the Execution-level file (FIFO matching) toggle before mapping. This swaps Entry Price and Exit Price for two different fields: Side / Direction and Fill Price, since each row represents a single buy or sell rather than a full round trip.

You'll also set which text values in your file mean "buy" and which mean "sell" — the defaults cover common variants (B, BUY, BOUGHT, BTO for buys; S, SELL, SOLD, STC for sells), and you can edit them to match whatever labels your export actually uses, comma-separated. There's also a checkbox to apply a small per-share commission if your execution file doesn't already net it out. The app then matches fills into completed trades using first-in-first-out pairing by symbol.

Save your mapping so you never do this again

Once your columns are mapped correctly, name the mapping (your broker's name is usually the obvious choice) and save it before applying. The next time you export trades from the same broker or platform, that saved preset repopulates every dropdown automatically — because it's stored by column header name, it survives your broker adding, removing, or reordering columns in the meantime. For anyone re-importing weekly or monthly, this turns a five-minute mapping exercise into a two-click one.

Step 4: Preview and selectively import

Applying the mapping moves you to a preview: every parsed trade in a paginated table with a checkbox, so you can deselect any rows you don't actually want imported — useful if your export included trades outside the range you meant to bring in. Summary badges show how many trades parsed as wins, losses, or still-open, and if you're on a trial, a banner shows your remaining import allowance against the trial's trade cap.

One caveat worth taking seriously: there's no automatic duplicate detection. If you import the same file twice, or two exports with overlapping date ranges, every overlapping trade gets duplicated. Keep track of which date ranges you've already imported, and when in doubt, trim the export before uploading rather than relying on the app to catch the overlap for you.

Common mapping mistakes

FAQ

What if my broker isn't in the supported list at all?

That's exactly what the Custom CSV mapper is for — it doesn't depend on a broker-specific parser. As long as you can export your trade history to CSV, you can map it manually.

Does this work for crypto exchanges too?

Yes. The mapper is broker-agnostic, and the FIFO matching mode specifically exists because many crypto exchange exports are fill-level rather than trade-level.

What happens to trades with no P&L data at all?

If neither a Net P&L column nor Exit Price plus Quantity can be mapped, the trade imports as pending, with entry data recorded but no profit or loss calculated until you edit it manually.

Can I reuse a mapping I've already saved?

Yes, saved mappings are stored per account and selectable from a preset dropdown the next time you use the Custom CSV importer, which auto-fills every field based on your file's column headers.

Will importing the same file twice create duplicate trades?

Yes — there is no automatic duplicate detection, so re-uploading a file you've already imported, or a file with an overlapping date range, will duplicate every overlapping trade. Track what you've already imported and trim exports accordingly.

Conclusion

A universal CSV mapper trades a little bit of one-time setup for coverage no fixed list of broker integrations can match. Get the mapping right once — required fields assigned, date format confirmed, P&L source chosen deliberately — save it, and every future import from that broker becomes a two-click job instead of a five-minute one. If you're new to trading journals generally, it's worth understanding what a complete trade record should contain before you map your first file, and once your data is in, these are the metrics worth checking first.

This article is for educational purposes only and is not financial advice. Always verify imported trade data against your broker's records before relying on it for performance analysis or tax reporting.