Why Realised Forex Profit Can Exceed Your Total Gain: Reconcile Average Entry and Partial Closures
The same forex fills can show a realised gain of $250 or $1,250 under different cost allocations, while the combined gain remains $950. Rebuild executed quantities, remaining cost and current bid before comparing statement figures.
A profitable partial closure does not tell you how much your entire forex position has earned. Part of the result remains in the open quantity, and the realised figure depends on the entry cost assigned to the quantity that was closed. Compare the realised and unrealised amounts together, using the same allocation and valuation time.
In the hypothetical EUR/USD example below, identical executions and an identical remaining bid produce either $250 or $1,250 of realised profit under two explicitly different cost allocations. Both give a combined gross gain of $950. Mixing the larger realised gain with the other allocation’s floating gain invents another $1,000. The purpose is to reconcile a statement, not to choose a reporting policy or recommend adding to a position.

Start with executed quantities, not the number of orders
Assume a USD account and a linear EUR/USD position, with prices expressed as dollars per euro. The actual hypothetical opening fills are a purchase of 100,000 EUR at 1.1000 and a purchase of 200,000 EUR at 1.1200. A later sale closes 150,000 EUR at 1.1150. The remaining 150,000 EUR is marked at a contemporaneous executable bid of 1.1180.
The final row of the table is a valuation, not another execution. Its $167,700 is not cash already received or a guaranteed future sale amount. Likewise, the opening dollar notionals are inputs to the price-profit calculation; a margined account need not pay the full $334,000 principal. Reserved margin, exchanged principal and profit are separate quantities.
| Event | EUR quantity | USD/EUR price | USD price-equivalent |
|---|---|---|---|
| Opening buy fill | 100,000 | 1.1000 | 110,000 |
| Additional buy fill | 200,000 | 1.1200 | 224,000 |
| Actual partial closing sell | 150,000 | 1.1150 | 167,250 |
| Remaining long valuation; not a fill | 150,000 | Bid 1.1180 | 167,700 |
Use actual fills, including partial fills, rather than requested order sizes or one average per order. First establish that the sale really reduced this position. Account modes can treat opposite orders differently; how an opposite forex trade affects the existing position explains that preliminary check. Here the closure and the remaining long quantity are already confirmed.
Weight the entry by euros actually bought
The opening cost used for this calculation is 100,000×1.1000 + 200,000×1.1200 = $334,000 for 300,000 EUR. The volume-weighted entry is therefore 334,000/300,000 = 1.113333333… USD per EUR. Keep the fraction through the calculation and round only the displayed result.
The simple average of the two prices is 1.1100. It gives the first, smaller fill the same weight as the second fill and implies an opening cost of only $333,000. That $1,000 understatement would overstate the combined gain by $1,000. This is an arithmetic error, not an alternative allocation policy.
Weight in matching base-currency units. If a statement gives lots, first convert each fill using the applicable contract specification; do not assume all symbols or accounts use the same units per lot. Do not average EUR/USD entry prices with USD/JPY entries or with the reciprocal USD/EUR quote.
A position line may aggregate several fills, while execution history lists each one separately. A rounded position price can be convenient for display but insufficient to reproduce cents. Obtain the underlying quantity and price precision before concluding that the broker’s arithmetic is wrong.
Keep realised profit and the remaining basis in one allocation
The partial sale’s dollar price-equivalent is 150,000×1.1150 = $167,250. Under an explicitly proportional weighted-cost illustration, half the opening quantity carries half the $334,000 basis: $167,000. The realised profit is $250. The remaining basis is also $167,000, so its $167,700 current valuation gives $700 unrealised profit.
For comparison only, suppose a separate ledger allocates the earliest 100,000-EUR fill and 50,000 EUR of the second fill to the closure. The disposed basis is $110,000 + $56,000 = $166,000, giving $1,250 realised profit. The remaining 150,000 EUR retains $168,000 basis and therefore has a $300 unrealised loss at the same bid.
| Illustrative cost allocation | Realised USD | Unrealised USD | Combined gross USD |
|---|---|---|---|
| Proportional weighted cost | 250 | 700 | 950 |
| Hypothetical earliest fill first | 1,250 | −300 | 950 |
Both decompositions reproduce 167,250 + 167,700 − 334,000 = $950. The first allocation’s $250+$700 and the second’s $1,250−$300 are internally consistent. Combining $1,250 with $700 gives a false $1,950. These are hypothetical allocation comparisons, not a claim that every account offers either method, a tax rule, or permission to change the account’s contractual method.
A positive realised gain can coexist with a total loss
Change only the remaining executable bid to 1.1080. The first two purchases and the partial closing fill stay exactly as recorded. The remaining valuation becomes 150,000×1.1080 = $166,200. The combined result is now 167,250 + 166,200 − 334,000 = −$550.
The proportional illustration still shows $250 realised, but now has an $800 unrealised loss. The hypothetical earliest-fill allocation still shows $1,250 realised, but its remaining unrealised loss is $1,800. Both totals are −$550. A closed-profit headline cannot establish whether the open strategy is ahead.
The check changes when quantities, fills, valuation side, timestamp or charges differ. An identical-looking realised number from two statement screenshots is not evidence that their remaining exposure is identical. Nor does a different split by itself establish a hidden charge or an execution error.
If the remaining 150,000 EUR is later actually sold at 1.1180, with no further charges, the fully closed gross result is $950 under either allocation. That is a conditional additional execution, not something already achieved by marking the open position at 1.1180.
Reconcile equity after charges, separately from margin
Return to the first checkpoint at bid 1.1180. Assume starting equity of $10,000, no deposits or withdrawals, no other positions and $120 of aggregate charges already posted. The net result is $950−$120 = $830, so equity is $10,830. The $120 is a separate explicit assumption, not a fee inferred from the allocation difference.
After those same posted charges, the proportional ledger’s balance is 10,000+250−120 = $10,130; adding its $700 unrealised profit gives $10,830 equity. The alternative ledger’s balance is 10,000+1,250−120 = $11,130; subtracting its $300 floating loss gives the same equity. Balance and equity answer different questions.
At the lower bid 1.1080, either ledger gives equity of 10,000−550−120 = $9,330. A larger balance does not remove the open loss. Reserved margin is not a trading expense to subtract again; it is a separate account constraint. Actual financing, commission or conversion charges must follow the statement’s posted and unposted treatment without double counting.
The floating valuation still excludes any additional cost or slippage on a future closure unless the account explicitly includes it. If profit must be converted into a different account currency, add the actual conversion convention and rate as another reconciliation step. The USD-account example deliberately avoids that extra moving input.
Audit one complete position history before comparing reports
Export the executed deals for the entire position life, retaining IDs, timestamps, direction, base-currency quantities, prices, charges and links to the affected position. Separately record the remaining position, its cost allocation rule, bid or ask valuation side and exact valuation time. Report filters may omit an entry outside the selected dates; a visible closing deal alone cannot reconstruct its opening basis.
Check quantity conservation first: 100,000+200,000−150,000 = 150,000 EUR remaining. Then check the entry numerator, disposed basis and retained basis: the last two must sum to the original $334,000. Finally reconcile realised plus unrealised profit to the $950 or −$550 direct quantity-price calculation, and only then reconcile equity after the separately identified charges.
If a difference remains, ask for the specific missing input: a fill, an allocation, a valuation timestamp, a conversion or a posted adjustment. Keep order instructions, completed executions, floating marks and account cash movements distinct. A changed realised-profit line is meaningful only alongside its matching remaining quantity and cost.


