My P&L doesn't match my broker

How to compare your imported P&L against your broker statement properly, the differences that are expected, and how to re-import without creating duplicates.

Same on every platform Updated

What this does

Your broker statement is the authority. If VEXA disagrees with it, work in this order: make the comparison fair, rule out the differences that are expected, then re-import if there is still a gap. Re-importing is safe.

Before you start

Have the statement open, not a screenshot of your account summary. You need the document with each fill on it, covering a date window you can state exactly.

Step 1: make the comparison fair

Four things have to match before the numbers can be compared at all.

  1. The same date window. Set VEXA’s date range to exactly the statement’s period.
  2. The same account. If you have more than one broker account in VEXA, filter to the one the statement covers.
  3. Closed trades only. A view that includes open positions mixes unrealised P&L into every total. Your statement’s realised figure has none.
  4. The same day boundaries. VEXA shows trades in the display timezone you chose, while brokers report in their own. A trade near midnight can legitimately sit on a different date in each. Changing your display timezone never alters the underlying data, which is always stored in UTC.

Do all four before concluding anything. Most reported mismatches close at this step.

Step 2: know which differences are expected

These are real differences with real causes. None of them means your import failed.

Fees and commissions. VEXA’s trade P&L is net of commission. If your statement quotes a gross figure and lists fees separately, the two will never agree until you subtract them.

Statements that carry no commission at all. Some export formats do not include what you paid. Where that is true, VEXA estimates the commission so the trade is not overstated, and an estimate is not the exact figure on your statement. If your broker offers a fuller export that carries the real cost, use that one.

Financing and swap. Overnight financing appears as its own line on many statements. It changes the account balance without belonging to any single trade.

Contract multipliers. Futures and options P&L depends on the contract size. Where a contract’s multiplier cannot be verified, VEXA deliberately leaves the value blank rather than printing a number it does not trust. A blank is a statement of uncertainty, not a zero.

Quantity units. Forex quantity is displayed in lots rather than raw units, so a position shown as 0.05 in VEXA can read as 5,000 on a statement. The P&L is the same.

Positions that are still open. A trade only closes in VEXA when the closing fills are imported. If your file stopped before them, the position stays open and its result is not in any realised total.

A partial export. Some brokers export one segment or one product type at a time. Equities in one file, derivatives in another, spot separately from futures. Importing one file gives you one slice, and the total will be short by the rest.

Step 3: check the broker server timezone before you re-import

If your broker reports timestamps in its own server time rather than a standard one, VEXA needs to be told which. Getting it wrong shifts every trade’s day, which turns a correct import into a set of correct trades on the wrong dates.

Set it before you upload, not after.

  • Web: Profile > Display Preferences > Broker Server Timezone
  • iPhone, iPad and Android: Profile > Settings > Broker Server Timezone
  • Android tablet: Profile > Settings > Display Timezone. The broker server timezone is the first section on that pane, above the display timezone list.

Step 4: re-import

Re-importing is safe. Duplicate detection compares the facts of each execution rather than the file it arrived in, so uploading the same file twice adds nothing the second time. If the result panel tells you every row was already imported, that is the correct outcome and not a refusal.

Export a window that fully contains the trades you are checking, including their closing fills, and upload it.

Steps

  1. Open the sidebar footer card and choose View Profile.
  2. Open Connected Brokers and pick the account the statement belongs to.
  3. Choose the Manual Upload tab and upload your file.
  4. Read the result panel: imported, duplicates, open positions and row errors are four separate numbers.
  5. Go to Trades, set the date range to the statement period, and compare totals.
  1. Tap the circular avatar at the top right of Home.
  2. Open Connected Services and tap the account the statement belongs to.
  3. Open Account Details, choose Manual Upload, then Manual CSV Upload, then Select CSV File.
  4. Read the result panel.
  5. Open Journal or Trading Metrics, set the range to the statement period, and compare.
  1. Open the profile chip at the bottom of the sidebar.
  2. Open Connected Services and tap the account the statement belongs to.
  3. Open Account Details, choose Manual Upload, then Manual CSV Upload, then Select CSV File.
  4. Read the result panel.
  5. Open Trades from the sidebar, set the range to the statement period, and compare.
  1. Tap the circular avatar at the top right of Home.
  2. Open Connected Brokers and tap the account the statement belongs to.
  3. Choose the Manual Upload tab and upload your file.
  4. Read the result panel.
  5. Open Journal or Metrics, set the range to the statement period, and compare.
  1. Open the profile chip at the bottom of the sidebar.
  2. Open Connected Brokers and pick the account the statement belongs to.
  3. Choose the Manual Upload tab and upload your file.
  4. Read the result panel.
  5. Open Trades from the sidebar, set the range to the statement period, and compare.

What you should see

For the same window, the same account and closed trades only, VEXA’s total should reconcile with your statement’s realised figure once you have accounted for anything in step 2. Trade by trade, entry price, exit price and quantity should match exactly.

One thing to be careful about

Always pick the account before you upload. A file uploaded without an account selected creates a new VEXA account for itself, which is how one real broker account ends up as two in VEXA and how totals end up split across them. If that has already happened, filter to the all-accounts view to see everything at once.

If you decide to remove an account and start again, read the dialog. It offers two options, and one of them deletes the trades along with the account. That is permanent.

If it doesn’t work

Related

Still stuck? Email support@vexatrade.ai.