Troubleshooting

Why is my P&L different from my exchange?

The P&L column is net: gross P&L minus the commission Actal knows about. Most differences come down to one of four things: the export had no commissions, the number you compare with is before fees, your platform charges something that is not a trade, or a point value is off.

Last checked Send feedback on this article

Check these first

  1. 1

    Open Trades and look at the Comm column. If it shows 0 on imported futures trades, the export had no commissions. Set the round-trip commission per contract in Settings > Accounts and click "Apply $X per contract to them".

  2. 2

    Compare like with like. Stats shows both "Net P&L" and "Gross P&L (before fees)". Check which one your platform's card shows.

  3. 3

    Open a trade whose number is off. The trade page shows the fills, the commission and the point value used. A wrong point value shows up here.

  4. 4

    Look at the import's Parser notes. A P&L recovered from prices, a swap included, or a divided price is noted there.

How Actal works out P&L

For most futures exports, Actal pairs the fills into round trips and computes gross P&L as the price move times the size times the contract's point value, rounded to cents. Net P&L is gross minus commission, and that is what the P&L column, the dashboard and the stats use. The built-in point values are the exchange ones: ES 50, MES 5, NQ 20, MNQ 2, CL 1000, MCL 100, GC 100, MGC 10, and so on. Stocks and crypto are priced per unit.

Some exports already state a P&L per trade, and Actal takes that number as it is: the TopstepX Trades export, the Tradovate Performance report, MetaTrader 4 and 5 statements, and TradingView's list of trades. When a file's P&L differs by more than 2% from the prices times the point value, the trade gets a note on the preview. The file's number still wins.

Commissions that were never in the file

Tradovate's Orders and Performance reports, the TopstepX Orders export, Rithmic, Sierra Chart, ATAS, thinkorswim futures, Webull and the column mapper carry no commissions. On the preview you set "Commission per contract (round trip)", and the value is saved on the account for every later import. Until then the preview says "No commissions in this export; P&L is gross until you set a per-contract default below." and your P&L is higher than your broker's.

Trades imported before you set the rate stay at $0 commission. Settings > Accounts flags them: "N imported trades have no commission, so net P&L is overstated." with a button to apply the saved rate. The rate is a round trip per contract, both sides together, so double the per-side rate your firm quotes.

Before or after fees

Platforms show both, often on different screens. Actal's P&L column is always after the commission it knows about. On Stats, the first group lists "Net P&L" and "Gross P&L (before fees)" side by side, plus the total "Commissions", so you can match whichever figure your platform shows.

Two exports state P&L net of fees while their prices say gross: TopstepX Trades and NinjaTrader Trades. Actal spots that and recovers the gross from the prices, so the fees are not taken off twice. The preview says: "N row(s) carried P&L net of fees; gross P&L was recovered from the prices so fees are not counted twice".

What is never counted

  • Funding payments, overnight financing on CFDs outside MetaTrader, exchange and data fees, platform subscriptions, and prop firm fees. None of these are trades, so none are stored.
  • Deposits, withdrawals, payouts and credits. MetaTrader statements list them and the import skips them with a note. TradingView and tastytrade files skip them silently.
  • The only fee columns summed into a trade's commission beyond the plain commission are NinjaTrader's: Commission, Clearing Fee, Exchange Fee, IP Fee and NFA Fee.
  • An account's cash balance. Actal keeps trades, not a ledger, so a balance that includes fees or payouts will not match the sum of the trades.

MetaTrader: swap and currency

On a MetaTrader statement, a trade's P&L is the profit plus the swap, and the commission plus taxes (MT4) or fee (MT5) is its cost. A trade with a swap gets the note "swap X included in P&L". Amounts in a non-USD account are stored in the account currency and shown with a $ sign; nothing is converted.

Point values, price scale and rounding

  • A symbol Actal does not know blocks the import until you type its point value in the "Unknown symbols" box on the preview. Nothing is guessed. The values you confirm live in Settings > Contracts and win over the built-in table.
  • A file whose prices are ten or a hundred times too big (ticks or a different price format) gets a "divide prices by N" suggestion with a checkbox. If that was unticked, P&L is off by the same factor.
  • Every trade's gross P&L and commission are rounded to cents on their own, so a month's total can differ from your platform by a few cents.
  • Partial exits: the exit commission is split per contract across the pieces, so a scale-out shows the same total as the file, spread over its trades.

Questions people ask

Did this not answer it?

Ask from the Feedback page in the app. The founder answers every question there, and the answer ends up in this help centre. Not signed in? Email hello@actal.io.