The Lab

Change Summary

Background

To provide a normalised view of the ExecutionReport received by Clients, changes are being made to the quantity fields listed below. Currently these values are taken directly from the Venue messages.  

For the venues where these values are not as per Whisperer standard, improvements are being made to bring them inline with the schema definition.

Field

Schema definitionNormalisation IssueAffected VenuesRelease Version
LegCumQtyTotal quantity filled so far on this Leg of the Order.

LegCumQty is populated inconsistently by some venues across different OrderStatuses.

autobahnfx_rapid, baml, barx, citi_colo, rbc_trading, standardchartered_s2bx, statestreet_efx, t360_tex.

2025.11.19.WE.RHEL9 - bnpparibas_efx_algofxspotstream_algoprecision_algo, ubs_algo, autobahnfx_rapid, bamlbgc_midfx, broadridge_orders, bnpparibas_efx_streaming 

2025.12.03.WE.RHEL9 - All venues except lseg_ftg, refinitiv_mapi, barx, jpmorgan_fx_algo 

2025.12.04.WE.RHEL9 - All venues

LegLeavesQtyQuantity remaining to execute on this Leg of the Order.LegLeavesQty is populated inconsistently by all venues across different OrderStatuses.All taker APIs

2025.11.19.WE.RHEL9 - bnpparibas_efx_algofxspotstream_algoprecision_algo, ubs_algo, autobahnfx_rapid, bamlbgc_midfx, broadridge_orders, bnpparibas_efx_streaming 

2025.12.03.WE.RHEL9 - All venues except lseg_ftg, refinitiv_mapi, barx, jpmorgan_fx_algo 

2025.12.04.WE.RHEL9 - All venues

LegAllocQty

If ExecType=Calculated/Trade then ABS (SUM (LegAllocQty))=LegLastQty, otherwise ABS (SUM (LegAllocQty))=LegOrderQty

LegAllocQty is is populated inconsistently across different ExecTypes.

LegAllocQty is sent as 0 for Cancelled ExecutionReports.

All taker APIs2025.08.29.WE.RHEL9 - All venues
LegAllocCalculatedCcyQty

If LegCurrency is LHS then=-LegAllocQty*LegLastPx;

if LegCurrency is RHS then=-LegAllocQty/LegLastPx (rounded to the precision of LegAllocQty, half-up)

Allocation side is not taken into account for some venues and thus LegAllocCalculatedCcyQty is always sent as positive.autobahnfx_algo, baml, exchange24, fxspotstream_algo, precision_algo, xtx_euthenia 2025.09.04.WE.RHEL9 - autobahnfx_algo, baml, exchange24, fxspotstream_algo, precision_algo, xtx_euthenia

Change

This change will ensure that the above quantity fields are normalised consistently across all venues OrdStatus/ExecType combinations. These fields will never be null in the ExecutionReport.

Timeline

  • Phased rollout starting August 2025.

Whisperer Client Impact

Clients should consider the impact if they are reliant on these fields of the ExecutionReport. These fields will never be populated as null.

Change Details

  • LegCumQty and LegLeavesQty: 

Quantity received from the Venue will be evaluated/corrected to match the expected behaviour below:

OrdStatusCumQtyLeavesQty
New0LegOrderQty
PendingNew0LegOrderQty
Rejected00
Partially FilledTotal quantity filled so far on this Leg of the Order.LegOrderQty-LegCumQty
FilledLegOrderQty.0
Pending Cancel

Total quantity filled so far on this Leg of the Order.
0 if there are no PartialFills.

Total quantity filled 

LegOrderQty-LegCumQty
CanceledTotal quantity filled so far on this Leg of the Order.
0 if there are no PartialFills.
0
Pending ReplaceTotal quantity filled so far on this Leg of the Order.LegOrderQty-LegCumQty
ExpiredTotal quantity filled so far on this Leg of the Order.
0 if there are no PartialFills.
0
  • LegAllocQty:

This will be populated with LegOrderQty except for the ExecType Trade and Calculated, where this will be LegLastQty.

  • LegAllocCalculatedCcyQty:

This will be populated as a negative value if LegSide matches with the allocation Side, and a positive if LegSide does not match with the allocation Side. 




  • No labels