Every Tradovate account ships with a CSV export of fills and account performance — but the menu path, the column layout, and three quiet pitfalls (timezone, partial fills, multi-leg orders) sit between you and a clean import into any trading journal. This guide walks the whole path.
Tradovate's built-in Performance and Orders views are designed for monitoring open positions and recent fills — not for analyzing your edge over time. A few things you only get from an exported CSV:
Trader the web client (trader.tradovate.com) is the most reliable place to pull a full export. The exact menu labels may shift between Tradovate versions, but the pattern is consistent:
From the main navigation, look for the panel that lists your closed positions and fills. In recent versions it sits under a "Performance" or "Account" section; on older builds it's labeled "Orders" or "History".
If you trade multiple accounts (Combine, XFA, sim, live), pick the one you want first — exports are per-account by default. Then set the date range. For prop-firm review, monthly is the safest cadence; for backtesting and journaling, the full account lifetime is fine.
These three views show very different data — choose carefully. Most journals (Aurafy included) want the Fills view, which is one row per executed price (so a 4-contract order that fills in two pieces shows as two rows). The Positions view is one row per round-trip — useful for high-level review, but you lose the entry/exit detail.
The download button is usually in the top-right of the panel, sometimes hidden in a "⋯" overflow menu. The file lands in your browser's default Downloads folder.
Open the file (Excel, Numbers, or any text editor) and compare the row count against the number of fills the web UI showed. If the totals don't match, you may have hit a date-range issue or a hidden pagination cap.
The mobile app's export is more limited than the web client's. As of mid-2026:
trader.tradovate.com on a desktop once a week (or every Sunday) and pull the full week's CSV. That single weekly habit is the smallest workflow that keeps a journal complete.Column names and order have varied slightly between Tradovate versions. These are the fields that consistently appear in the Fills export — verify yours and map them to whatever tool you import into.
| Column (typical name) | What it means | Why it matters |
|---|---|---|
| Timestamp | The fill time, usually in your account's configured timezone | Match this to the chart timezone in your journal or you'll see trades shift hours |
| Symbol / Contract | The futures contract (ESZ5, NQU6, MES, etc.) — includes the contract month code | If you trade rollovers, the symbol changes — make sure your journal groups by root (ES) not contract month (ESZ5) |
| Side / B/S | Buy or Sell — for the fill itself, not the position direction | A Sell after a Buy closes a long; a Sell on its own opens a short. The CSV usually doesn't label this — your journal has to infer it |
| Qty / Quantity | Contracts executed at this price | If your single order filled in pieces, you'll see multiple rows summing to your order size |
| Price | The execution price of this fill | For multi-leg fills, your effective average is qty-weighted across the rows |
| Order ID | An identifier tying fills back to the original order | This is what lets a journal group partial fills into one "trade" |
| Account | Account name — Combine, XFA, sim, live, etc. | If you export across multiple accounts in one CSV, this is how to filter |
| P&L / Realized | Realized profit for the round-trip — only populated on the closing fill of a position | Rows mid-trade often show blank or zero; total P&L is the sum across closing fills only |
| Commissions / Fees | Per-side commissions and exchange fees | Tradovate's plans split these differently — make sure your journal subtracts the right column |
Realized P&L column. It should equal the total P&L shown in the Tradovate web UI for the same date range. If it doesn't, you're either missing rows, double-counting fills, or pulling the wrong export type.
Most "my journal numbers don't match Tradovate" tickets trace back to one of these three.
Tradovate timestamps export in your account's configured timezone, which may not be the timezone your chart software uses. A trade entered at 09:30 ET could appear in your journal as 14:30 UTC or 08:30 CT — same trade, different label, broken session-time analysis.
A market order for 4 contracts can fill in 1+3, 2+2, or 1+1+1+1 — the CSV records each piece as its own row, with the same Order ID. If your journal treats each row as an independent trade, your trade count balloons and your win rate breaks.
If you use Tradovate's bracket orders (entry + stop + target submitted as one), each leg fires as a separate Order ID — but they're conceptually one trade. The CSV shows them as up to three orders + two-or-more fills, and naive aggregation will count them as two or three trades instead of one.
Most CSVs go in clean if you trust the journal's importer. But if you're scripting, exporting into Notion / Sheets, or moving between journals, these are the cleanup steps that pay off:
2026-06-02T14:30:00-05:00). This is the format almost every downstream tool reads cleanly.root column derived from the contract symbol (ESZ5 → ES). Most analysis groups by root, not by contract month.Aurafy's Tradovate importer handles fill aggregation, bracket grouping, timezone normalization, and root-symbol mapping automatically. Drag the CSV into your account, pick the timezone if asked, and your trades land grouped by order with R-multiples, prop-firm rule tracking, and chart context already overlaid. Free tier — 1 account, 30 days of history, no card required.
Start importing free More on Aurafy + TradovateOnce your CSV is in a journal, a few free Aurafy tools layer prop-firm rule math on top of any trade history — no signup required:
It has a Performance dashboard and order history, but neither tags setups, computes R-multiples, overlays trades on charts, or tracks prop-firm rules. For execution monitoring, it's enough. For learning your edge, you'll outgrow it within a few weeks.
Tradovate offers a developer API, but for journaling purposes the CSV is simpler and doesn't require API credential management. Aurafy and most journals import the CSV, not the API.
Prop-firm dashboards usually compute P&L net of commissions and the firm's specific exchange-fee schedule. The Tradovate CSV may show pre-commission realized P&L in one column and commissions separately. Subtract commissions explicitly before comparing.
If your prop firm exposes both accounts inside Tradovate, the export is per-account. Pick the Combine account for eval data and the XFA account for funded-phase data. They're separate ledgers — never mix them in one journal view if you're analyzing rule-survival rates.
The Fills view does not (only executed prices), but the Orders view does. If you want to audit how often your stops or limits got cancelled before filling, pull the Orders view too — and never mix the two CSVs.
Not via the web UI directly. Either schedule a weekly calendar reminder to pull it manually, or use the developer API for full automation. Aurafy's roadmap includes scheduled Tradovate imports — not yet in the current release.
TopstepX uses Project X infrastructure, not Tradovate, for its core platform after August 2024 — so a TopstepX account doesn't necessarily export through Tradovate at all. If you're a Topstep trader on a NinjaTrader-via-Rithmic setup, your export path is different. See our NinjaTrader journal guide for that flow.
Tradovate occasionally adds fields (regulatory flags, routing venue, exchange order IDs). Most journals ignore unknown columns safely. If you're scripting, treat any unknown column as opaque metadata and don't fail the import on it.
Aurafy imports the standard Tradovate export, groups fills into orders and orders into positions, normalizes timezones, computes R-multiples per trade, and overlays everything on the chart at the time of the fill. Topstep / Apex / MFFU / TPT / Tradeify / Bulenox / Earn2Trade rule tracking included. Free tier — 1 account, 30 days history, no card.
Start free — no card See pricing