Four witnesses enter a room.
-The CRM says the client deposited $5,000.
-The payment provider says it processed $4,950.
-MT5 shows a $5,000 balance operation.
-The IB report calculates commission using less trading volume than the platform recorded.
Every report looks official and every system has evidence, yet somehow, their stories do not match. Welcome to the broker’s version of a detective case. The first instinct is usually to ask which report is wrong. A better question is:
What exactly was each system designed to record?
CRM, MT5, IB, and payment reports are not four copies of the same ledger. They are four witnesses standing in different places, recording different stages of the same transaction. Finding the truth means reconstructing the full story, let’s show you how.
Four Systems, Four Versions of the Story
A single client deposit can pass through several systems.
-
The client submits a request through the Client Area.
-
The CRM creates the transaction.
-
The payment provider processes the money.
-
MT5 receives a balance adjustment.
-
The client trades.
-
Eligible activity is attributed to an IB, and commission is calculated according to the broker’s rules.
Each step produces data, which is why broker report discrepancies often begin long before anyone opens a dashboard.
Witness 1: MT5 Records What Happened on the Trading Account
MT5 focuses on platform-side activity, including:
-
Orders
-
Deals
-
Positions
-
Trading volume
-
Balance operations
-
Profit and loss
-
Swap
-
Commission
-
Credit
Even within MT5, reports may group activity differently. One order can generate several deals, while multiple deals may belong to one position. A report grouped by positions can therefore show fewer rows than one grouped by deals without either being incorrect.
MT5 is the strongest witness for executed trading activity. It does not necessarily explain why a payment was approved, whether the Payment Service Provider (PSP) settled the full amount, or which trades qualify for IB commission.
Witness 2: The Payment Provider Records the Movement of Money
The payment report follows the transaction outside the trading platform.
It may record:
-
Requested amount
-
Authorized amount
-
Captured amount
-
Processing fee
-
Net settlement
-
Refunds
-
Reversals
-
Chargebacks
This is where a $5,000 CRM deposit and a $4,950 payment settlement can both be correct.
The client may have been credited with the full $5,000 while the provider deducted a $50 processing fee before settling the funds with the broker.
The discrepancy is not necessarily missing money. It may simply be the difference between the gross client payment and the net amount received by the broker.
Witness 3: The IB Report Records What Qualifies for Commission
An IB report does not simply repeat MT5 trading volume. It calculates how much activity qualifies for partner compensation under the broker’s rules.
Those rules may depend on:
-
Lots traded
-
Spread or revenue share
-
Symbol
-
Account type
-
Opened or closed trades
-
Trade duration
-
Client group
-
Campaign conditions
-
Multi-level partner structures
MT5 may show 100 lots traded while the IB report calculates commission on 82.
The remaining 18 lots may belong to excluded symbols, fall outside the commission period, fail a campaign condition, or have been traded before the client was assigned to the IB.
MT5 asks, “What was traded?” while IB report asks, “What deserves a payout?” Those are not the same question.
Witness 4: The CRM Connects the Case
The CRM brings the client profile, trading accounts, payment requests, PSP references, IB relationships, and operational actions into one environment.
It may display both:
-
Source data, received directly from MT5 or a payment provider
-
Derived data, calculated using CRM rules and configurations
For example, an MT5 deal imported into the CRM is source data. An IB commission or net-deposit total calculated from several fields is derived data.
A directly synchronized value should normally match its source once the integration is updated. A calculated value may legitimately differ because the CRM is applying filters, fees, conversion rates, or business rules.
When teams treat every figure as a direct copy, valid differences begin looking like system failures.
Why Broker Reports Stop Agreeing
Most reporting discrepancies come down to a few recurring suspects.
#1- They Are Measuring Different Moments
A deposit can have several timestamps:
-
Request created
-
Payment authorized
-
CRM approved
-
Trading account credited
-
PSP settled
-
Transaction reversed
A Friday deposit may appear instantly in the CRM and MT5 but only reach the PSP settlement report on Monday.
Reports can also use different time zones. A trade completed shortly before midnight on the MT5 server may fall into the following day inside the CRM.
Before comparing totals, brokers must agree on which timestamp and time zone define the reporting period.
#2- They Use the Same Word Differently
Terms such as deposit, profit, volume, and successful transaction can appear across several systems without carrying the same definition.
“Deposit” might mean:
-
A request submitted by the client
-
A CRM-approved transaction
-
A successful PSP payment
-
A settled payment
-
A balance credit posted to MT5
“Profit” might mean realized profit, floating profit, or net profit after commissions and swaps.
Two reports may show the same label while performing different arithmetic underneath it.
#3- One Figure Is Gross and the Other Is Net
Gross-versus-net differences appear everywhere.
A PSP may report the amount after fees; MT5 may show the full amount credited to the client.
MT5 may show total trading volume; The IB report may show commissionable volume after exclusions.
A partner report may show commission earned; The payment report may show what was actually transferred after deductions or adjustments.
The numbers appear to conflict because they represent different points in the calculation.
#4- An Update Arrived Late or Never Arrived
Broker systems exchange information through APIs, webhooks, and scheduled synchronizations.
A payment may move from pending to successful and later to reversed. If the reversal update fails to reach the CRM, the PSP and CRM will continue telling different stories.
The same can happen when:
-
An MT5 balance operation has not yet synchronized
-
A webhook is duplicated
-
An API response fails
-
An IB calculation runs before all deals are imported
-
A manual correction is made in one system only
Sometimes the discrepancy is temporary and sometimes it is the footprint of a missed event.
#5- The Rules Changed
IB rates, eligible symbols, payment fees, exchange rates, client groups, and campaign conditions can all change.
If a report recalculates old activity using today’s configuration, historical numbers may shift. A March transaction should be investigated using the rules that existed in March, not the settings visible today.
Without historical rule tracking, the system remembers the event but forgets the conditions that shaped it.
How to Trace the Real Story in Broker Report Discrepancies
When broker reports disagree, comparing four dashboard totals rarely solves anything. The investigation should begin with one precise mismatch.
For example:
“The CRM shows $245,000 in approved June deposits, while the PSP shows $238,400 in settled June payments for the same client group.”
That immediately reveals the likely suspects: approved versus settled status, reporting period, fees, reversals, or missing transactions.
Tip #1: Compare Individual Records, Not Only Totals
Export the underlying transactions and match them using:
-
CRM transaction ID
-
PSP reference
-
MT5 balance-deal ID
-
Client ID
-
Trading-account login
-
Amount and currency
-
Status
-
Timestamp
The records will usually fall into three groups:
-
Present and matching in both systems
-
Missing from one system
-
Present in both but carrying different values
This turns a large reporting gap into a smaller set of traceable exceptions.
Tip #2: Reconstruct the Timeline
Suppose the records show:
-
The client submitted a $2,000 deposit.
-
The PSP authorized it.
-
The CRM marked it successful.
-
MT5 credited the account.
-
The PSP later reversed the payment.
-
The reversal webhook failed.
-
The MT5 balance remained unchanged.
The reports are no longer telling an unsolvable mystery. They are documenting a missed reversal and an uncorrected account credit.
Tip #3: Separate Imported Data From Calculated Data
Every disputed field should be traced back to its origin.
Ask:
-
Was it imported directly?
-
Was it converted into another currency?
-
Was a fee deducted?
-
Was it filtered by status?
-
Was it calculated according to an IB rule?
-
Was it grouped into a reporting period?
A raw MT5 deal should be verified against MT5.
A PSP settlement should be verified against the provider.
An IB commission should be checked against the eligible volume, attribution dates, and commission formula.
Eventually, the investigation must reach the original event, not another summary of it.
Good Reporting Does Not Force Every Number to Match
The goal is not to make MT5, CRM, payment, and IB reports display identical totals. They serve different purposes, and those differences contain useful information. The goal is to make every figure explainable.
Brokers need to be able to move from a dashboard total to the individual records behind it, then from those records to:
-
The original platform event
-
The payment reference
-
The applicable fee
-
The IB rule
-
The exchange rate
-
The status history
-
The user or automated action
-
The integration log
FXBO CRM connects trading platforms, payment providers, client accounts, transactions, and partner structures within one operational environment. This gives brokers the context needed to investigate discrepancies without treating every system as an isolated island.
-MT5 remains the authority on platform-side trading events.
-The PSP remains the authority on payment processing and settlement.
-The IB engine applies the broker’s compensation logic.
-The CRM connects the witnesses and helps brokers reconstruct the case.
Report Discrepancies Are Often Solved in the Details
When broker reports tell different stories, the answer is rarely hidden inside the largest number on the dashboard.
It is usually found in a smaller detail:
-
The transaction that crossed midnight.
-
The provider fee removed before settlement.
-
The trade excluded from an IB campaign.
-
The reversal webhook that never arrived.
-
The client attribution that changed halfway through the month.
-
The old transaction recalculated under a new rule.
Reporting accuracy is not about demanding that every system say the same thing. It is about knowing where each number came from, what it represents, and how to trace it back to the event that created it.
Because brokerage numbers should not only add up but also be able to show their work.
Have you got the right CRM for the case? Request a free FXBO CRM demo and bring the full story into view.