Log in

8 Execution Report

The Execution Report message is used to:

  1. Confirm the receipt of an order
  2. Confirm changes to an existing order, i.e. accept cancel and replace requests
  3. Relay order status information
  4. Relay fill information on working orders
  5. Relay fill information on tradeable or restricted tradeable quotes
  6. Reject orders
  7. Report the post-trade fee calculations associated with a trade

Execution Reports do not replace end-of-day confirmations.

Separate Execution Reports are sent for each order in a New Order List <35=E>.

An Execution Report communicates the current state of the order as understood by the broker, using OrdStatus (39), and the purpose of the message, using ExecType (150).

In an Execution Report, OrdStatus (39) is used to convey the current state of the order. If an order simultaneously exists in more than one order state, the value with highest precedence is the value that is used in the OrdStatus (39) field. The order statuses are as follows, from highest to lowest precedence:

PrecedenceOrdStatusDescription
11Pending CancelOrder with an Order Cancel Request pending, used to confirm receipt of an Order Cancel Request. Does not indicate that the order has been canceled.
10Pending ReplaceOrder with an Order Cancel/Replace Request pending, used to confirm receipt of an Order Cancel/Replace Request. Does not indicate that the order has been replaced.
9Done for DayOrder not filled, or partially filled; no further executions possible for the trading day
8CalculatedOrder has been completed for the day, either filled or done for day. Commission or currency settlement details have been calculated and reported in this execution message
7FilledOrder completely filled, no remaining quantity
6StoppedOrder has been stopped at the exchange. Used when guaranteeing or protecting a price and quantity
5SuspendedOrder has been placed in suspended state at the request of the client
4CanceledCanceled order with or without executions
4ExpiredOrder has been canceled in broker's system due to time-in-force instructions. The only exceptions are fill-or-kill and immediate-or-cancel orders that have Canceled as their terminal order state
3Partially FilledOutstanding order with executions and remaining quantity
2NewOutstanding order with no executions
2RejectedOrder has been rejected by the sell-side. Note: an order can be rejected subsequent to order acknowledgment, i.e. an order can pass from New to Rejected status
2Pending NewOrder has been received by the sell-side's system but not yet accepted for execution. An execution message with this status will only be sent in response to a Status Request message
1Accepted for biddingOrder has been received and is being evaluated for pricing. It is anticipated that this status will only be used with the “Disclosed” BidType List Order Trading model

ExecType (150) is used to identify the purpose of the Execution Report. To transmit a change in OrdStatus (39) for an order, the broker (sell-side) should send an Execution Report with the new OrdStatus (39) value in both the ExecType (150) and the OrdStatus (39) fields to signify this message is changing the state of the order. The only exception to this rule is that when rejecting a cancel or cancel/replace request, the Order Cancel Reject <35=9> message is used both to reject the request and to communicate the current OrdStatus (39). An ExecType (150) of Pending Cancel or Pending Replace is used to indicate that a cancel or cancel/replace request is being processed. An ExecType (150) of Canceled or Replace is used to indicate that the cancel or cancel/replace request has been successfully processed.

Execution information (e.g. new partial fill or complete fill) should not be communicated in the same report as one which communicates other state changes (such as pending cancel, pending replace, canceled, replaced, accepted, done for day etc).

Any fills which occur while an order is pending and waiting to reach a new state must contain the original order parameters, prior to state change request, i.e. ClOrdID (11), OrderQty (38), Price (44), etc. These fills will cause the CumQty (14) and AvgPx (6) to be updated. An order cannot be considered replaced until it has been explicitly accepted and confirmed to have been replaced via an Execution Report with ExecType (150) = 'Replace', at which time the effect of the replacement (new quantity, price, etc.) will be seen.

Requests to cancel or cancel/replace an order are only acted upon when there is an outstanding order quantity. A request to replace the OrderQty (38) to a level lower than the CumQty (14) will be interpreted by the broker as a request to stop executing the order. A request to change the price of a filled order will be rejected.

The OrderQty (38), CumQty (14), LeavesQty (151), and AvgPx (6) fields should be calculated to reflect the cumulative result of all versions of an order. For example, if partially filled order A were replaced by order B, the OrderQty (38), CumQty (14), LeavesQty (151), and AvgPx (6) on order B's fills should represent the cumulative result of order A plus those on order B.

The general rule is: OrderQty (38) = CumQty (14) + LeavesQty (151).

There can be exceptions to this rule when ExecType (150) or OrdStatus (39) are Canceled, DoneForDay, Expired, Calculated, or Rejected. In which case, the order is no longer active and LeavesQty (151) could be 0.

Execution Reports communicate new fills with ExecType (150) = Trade. Execution Reports with ExecType (150) = Trade Cancel or Trade Correct are used to cancel or correct a previously modified execution report as follows:

  • The ExecType (150) of Trade Cancel applies at the execution level and is used to cancel an execution which has been reported in error. The canceled execution will be identified in the ExecRefID (19) field. Note: ExecType (150) of Trade Cancel should not be used to cancel a previous Execution Report with ExecType (150) of Trade Cancel (e.g. cannot cancel a cancel).
  • The ExecType (150) of Trade Correct applies at the execution level and is used to modify an incorrectly reported fill. The incorrect execution will be identified in the ExecRefID (19) field. If a single execution is corrected more than once, ExecRefID (19) should refer to the ExecID (17) of the last corrected Execution Report (same convention as ClOrdID (11) and OrigClOrdID (41)). To correct an Execution Report which was previously canceled, an Execution Report with ExecType (150)=Trade should be sent (e.g. cannot send ExecType (150)=Trade Correct for an Execution Report with ExecType (150)=Trade Cancel). Note: Data reported in the CumQty (14), LeavesQty (151), and AvgPx (6) fields represent the status of the order as of the time of the correction, not as of the time of the originally reported execution.

An ExecType (150) of Order Status indicates that the execution messages contains no new information, only summary information regarding order status. It is used, for example, in response to an Order Status request message

See "Order State Change Matrices" for examples of key state changes, processing of cancel and cancel/replace requests, and for execution cancel/corrects.

An Execution Report with ExecType (150) = Restated represents an Execution Report sent by the sellside communicating a change in the order or a restatement of the order's parameters without an electronic request from the customer. ExecRestatementReason (378) must be set. This is used for GT orders and corporate actions (see below), changes communicated verbally to the sellside either due to normal business practices or as an emergency measure when electronic systems are not available, repricing of orders by the sellside (such as making Sell Short orders compliant with uptick / downtick rules), or other reasons (Broker option). ExecRestatementReason (378) can also be used to communicate unsolicited cancels.

The field ClOrdID (11) is provided for institutions or buy-side brokers or intermediaries to affix an identification number to an order to coincide with internal systems. The OrderID (37) field is populated with the sell-side broker-generated order number (or fund manager-generated order number for CIVs). Unlike ClOrdID (11) / OrigClOrdID (41) which requires a chaining through Cancel/Replaces and Cancels, OrderID (37) and SecondaryOrderID (198) are not required to change through changes to an order.

The underlying business assumption of orders that can trade over multiple days, such as GTC and Good Till Date orders expiring on a future trading date (henceforth referred to as GT orders) is that a GT order that is not fully executed and has not been canceled and has not expired on a given day remains good for the broker to execute the following day. Note that the concept of "day" is determined by the market convention, which will be security specific. At the end of each trading day, once the order is no longer subject to execution, the broker may optionally send an Execution Report with ExecType (150)='3' (Done for Day). When the ExpireDate (432) or ExpireTime (126) of a Good Till Date order is reached, or a GTC order reaches a maximum age, the order is considered expired and the broker may optionally send an Execution Report with ExecType (150) and OrdStatus (39)=Expired (C).

In handling GT orders, the OrderQty (38), CumQty (14) and AvgPx (6) fields will represent the entirety of the order over all days. The fields DayOrderQty (424), DayCumQty (425), and DayAvgPx (426) can be used on days following the day of the first trade on a GT order. Prior to the start of business each day, for all GT orders that have partial fills on previous days, DayCumQty (425) and DayAvgPx (426) are set to zero, and DayOrderQty (424) becomes the LeavesQty (151). The following relationship holds: DayOrderQty (424) = OrderQty (38) - (CumQty (14) - DayCumQty (425)). Since (CumQty (14) - DayCumQty (425)) represents the volume traded on all previous days, DayOrderQty (424) = OrderQty (38) - Volume traded on all previous days. Note that when changing the quantity of an order, both OrderQty (38) and DayOrderQty (424) will change. Requests to change or cancel an order will be made in terms of the total quantity for the order, not the quantity open today. For example, on an order where OrderQty (38)=10000 and 2000 shares trade during the previous days, a request to change OrderQty (38) to 15000 will mean that 13000 shares will be open. See "Order State Change Matrices" for examples of canceling and changing GT orders partially filled on previous days.

A Cancel on an execution (trade bust, ExecType (150) = Trade Cancel) happening the same day of the trade will result in CumQty (14) and DayCumQty (425) each decreasing by the quantity busted, and LeavesQty (151) increasing by the quantity busted. OrderQty (38) and DayOrderQty (424) will remain unchanged. If the business rules allow for a trade bust to be reported on a later date than the trade being busted, the OrderQty (38) and DayCumQty (425) will remain unchanged, the LeavesQty (151) and DayOrderQty (424) will increase by the quantity busted, and the CumQty (14) will decrease by the quantity busted.

If bilaterally agreed between counterparties, a broker may wish to transmit a list of all open GT orders, permitting reconciliation of the open orders. Typically this transmission may occur at the end of the trading day or at the start of the following trading day. There is no expected response to such retransmission; in the event of a reconciliation problem this should be resolved manually or via the DK message. Assuming no corporate actions have occurred, the broker will send an Execution Report with ExecType (150) = Restated (D) and ExecRestatementReason (378) = GT renewal / restatement (no corporate action) (1) for each open GT order. These Execution Reports may have DayCumQty (425) and DayAvgPx (426) restated to zero, and DayOrderQty (424) restated to LeavesQty (151) if the transmission occurs at the start of the following business day. The broker has the option of changing the OrderID (37) and SecondaryOrderID (198) fields, or leaving them unchanged. If they are changed, then the buy-side should use these new ID fields when sending Order Cancel Request <35=F>, Order Cancel/Replace Request <35=G>, and Order Status Request <35=H> messages.

In the case of a corporate action resulting in the adjustment of an open GT order, the broker will send an Execution Report with ExecType (150) = Restated (D) and ExecRestatementReason (378) = GT Corporate action (0) with the order's state after the corporate action adjustment. In the case of stock splits, OrderQty (38), CumQty (14), AvgPx (6), and LeavesQty (151) will be adjusted to reflect the order's state in terms of current quantity (e.g. shares), not pre-split quantity (e.g. shares). See "Order State Change Matrices" for examples of GT order restatement with and without a corporate action.

CIV orders to be executed by the fund manager do not use the TimeInForce (59) field and only a subset of OrdStatus (39) values are expected to be used. See VOLUME 7 - "PRODUCT: COLLECTIVE INVESTMENT VEHICLES" for the CIV-specific OrdStatus (39) values.

The Execution Report message is also used for multileg instrument. See "Use of the Execution Report for Multileg Instruments" for multileg-specific details.

Structure

TagNameTypeRequiredDescription
Component
Required
Component
For use in drop copy applications. NOT FOR USE in transactional applications
37String
Required
OrderID is required to be unique for each chain of orders
2422Int
Required if provided on the order message. Echo back the value provided in the order message
2423String
Can be used to link execution to the MassOrder(35=DJ) message
198String
Can be used to provide order id used by exchange or executing system. Can alternatively be used to convey implicit order priority
526String
527String
11String
Required when referring to orders that were electronically submitted over FIX or otherwise assigned a ClOrdID(11)
1166String
In the case of quotes can be mapped to:
41String
Conditionally required for response to a Cancel or Cancel/Replace request (ExecType(150) = 6 (Pending Cancel, 5 (Replaced), or 4 (Canceled)) when referring to orders that where electronically submitted over FIX or otherwise assigned a ClOrdID(11). ClOrdID(11) of the previous accepted order (NOT the initial order of the day) when canceling or replacing an order
583String
278String
Reference to the MDEntryID(278) of this order or quote in the market data
693String
Required if responding to a QuoteResponse(35=AJ) message. Echo back the Initiator's value specified in the message
790String
Required if responding to and if provided on the OrderStatusRequest(35=H) message. Echo back the value provided by the requester
584String
Required if responding to a OrderMassStatusRequest(35=AF). Echo back the value provided by the requester
961String
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + legs
911Int
Can be used when responding to an OrderMassStatusRequest(35=AF) to identify the total number of ExecutionReport(35=8) messages which will be returned
912Boolean Enum
Can be used when responding to an OrderMassStatusRequest(35=AF) to indicate that this is the last ExecutionReport(35=8) messages which will be returned as a result of the request
Component
Specifies party information related to the submitter
Component
Specifies parties not directly associated with or owning the order, who are to be informed to effect processing of the order
229LocalMktDate
Component
66String
Required for executions against orders which were submitted as part of a list
548String
CrossID for the replacement order
551String
Must match original cross order. Same order chaining mechanism as ClOrdID(11)/OrigClOrdID(41) with OrderCancelReplaceRequest(35=G)
549Int Enum
2334String
2335Int Enum
Conditionally required when RefRiskLimitCheckID(2334) is specified
880String
1891String
17String
Required
Unique identifier of execution message as assigned by sell-side (broker, exchange, ECN) (will be 0 (zero) for ExecType(150) = I (Order Status))
19String
Required for ExecType(150) = H (Trade Cancel) and ExecType(150) = G (Trade Correct)
150Char Enum
Required
Describes the purpose of the execution report
2431Int Enum
Can be used to provide further detail for ExecType(150) field
39Char Enum
Required
Describes the current state of a CHAIN of orders, same scope as OrderQty, CumQty, LeavesQty, and AvgPx
636Boolean Enum
For optional use with OrdStatus = 0 (New)
2838Price
103Int Enum
For optional use with ExecType = 8 (Rejected)
1328String
Reason description for rejecting the transaction request
1664Length
Must be set if EncodedRejectText(1665) field is specified and must immediately precede it
1665Data
Encoded (non-ASCII characters) representation of the RejectText(1328) field in the encoded format specified via the MessageEncoding(347) field
378Int Enum
Required for ExecType = D (Restated)
2961Boolean
2667Int Enum
828Int Enum
829Int Enum
855Int Enum
2347Int Enum
Component
570Boolean Enum
2524Int Enum
May be used to bilaterally inform counterparty of trade reporting status
1String
Required for executions against electronically submitted orders which were assigned an account by the institution or intermediary
660Int Enum
581Int Enum
Specifies type of account
589Char Enum
590Char Enum
591Char Enum
70String
Component
Pre-trade allocation instructions
63String Enum
64LocalMktDate
Takes precedence over SettlType value and conditionally required/omitted for specific SettleType values
574String Enum
1115Char Enum
544Char Enum
635String Enum
Component
Required
Component
Component
Number of underlyings
Component
54Char Enum
Required
2102Boolean
1688Int Enum
Available for optional use when Side(54) = 6(Sell short exempt)
Component
854Int Enum
Component
Conditionally required when the OrderQtyData component is required or specified in a prior, related message
1093Char Enum
40Char Enum
423Int Enum
Component
44Price
Required if specified on the order
1092Char Enum
99Price
Required if specified on the order
Component
1823Int Enum
Component
Component
839Price
The current price the order is pegged at
1095Price
The reference price of a pegged order
845Price
The current discretionary price of the order
1740Int Enum
1742Price
Required if specified on the order
1741Int Enum
847Int Enum
The target strategy of the order
Component
Strategy parameter block
848String
For further specification of the TargetStrategy
849Percentage
Mandatory for a TargetStrategy=Participate order and specifies the target particpation rate
850Float
For communication of the performance of the order versus the target strategy
15Currency
2897String Enum
376String
2404String
2351Length
Must be set if EncodedComplianceText(2352) field is specified and must immediately precede it
2352Data
Encoded (non-ASCII characters) representation of the ComplianceText(2404) field in the encoded format specified via the MessageEncoding(347) field
377Boolean Enum
59Char Enum
Absence of this field indicates Day order
168UTCTimestamp
Time specified on the order at which the order should be considered valid
432LocalMktDate
Conditionally required if TimeInForce(59) = 6 (GTD) and ExpireTime(126) is not specified
126UTCTimestamp
Conditionally required if TimeInForce(59) = 6 (GTD) and ExpireDate(432) is not specified
1629Int
Conditionally required when TimeInForce(59)=10 (Good for Time)
1916Int Enum
18MultipleCharValue Enum
Can contain multiple instructions, space delimited
1805Int Enum
1057Boolean Enum
528Char Enum
529MultipleCharValue Enum
1815Int Enum
1934Int Enum
1091Boolean
1390Int Enum
Applies to trades resulting from the order
582Int Enum
Component
32Quantity
Quantity (e.g. shares) bought/sold on this (last) fill. Required if ExecType(150) = F (Trade) or ExecType(150) = G (Trade Correct) unless FillsGrp or OrderEventGrp is used
1056Quantity
Used for FX trades to express the quantity or amount of the other side of the currency. Conditionally required if ExecType(150) = F (Trade) or G (Trade Correct) and is an FX trade
1071PriceOffset
Optionally used when ExecType(150) = F (Trade) or G (Trade Correct) and is a FX Swap trade. Used to express the swap points for the swap trade event
652Quantity
1828Quantity
31Price
Price of this (last) fill. Required if ExecType(150) = ExecType = F (Trade) or G (Trade Correct) unless FillsGrp or OrderEventGrp or TradePriceCondition(1839)=17 (Price is pending) or 18 (Price is not applicable) is used
651Price
669Price
Last price expressed in percent-of-par. Conditionally required for Fixed Income trades when LastPx(31) is expressed in Yield, Spread, Discount or any other price type that is not percent-of-par
631Price
194Price
Applicable for F/X orders
195PriceOffset
Applicable for F/X orders
1743Price
Upfront Price for CDS transactions. Conditionally required if TradePriceNegotiationMethod(1740) = 4(Percent of par and upfront amount), 5(Deal spread and upfront amount) or 6(Upfront points and upfront amount)
2750Price
2751Quantity
30Exchange
If ExecType(150) = F (Trade), indicates the market where the trade was executed. If ExecType(150) = 0 (New (0), indicates the market where the order was routed
1430Char Enum
1300String
100Exchange
1133Char Enum
2704Int Enum
336String Enum
625String Enum
943String
29Char Enum
Component
The set of "LimitAmts" fields defined in "Common Components"
151Quantity
Required
Quantity open for further execution. If the OrdStatus(39) is = 4 (Canceled), 3 (Done For Day), C (Expired), B (Calculated), or 8 (Rejected) (in which case the order is no longer active) then LeavesQty(151) could be 0, otherwise LeavesQty(151) = OrderQty(38) - CumQty(14)
14Quantity
Required
Currently executed quantity for chain of orders
84Quantity
Can be used to specify the remaining quantity that was cancelled prior to order reaching terminal state (i.e. when LeavesQty(151)=0). If specified, OrderQty(38) = CumQty(14) + CxlQty(84)
6Price
Not required for markets where average price is not calculated by the market
424Quantity
For GT orders on days following the day of the first trade
425Quantity
For GT orders on days following the day of the first trade
426Price
For GT orders on days following the day of the first trade
1361Int
Used to support fragmentation. Sum of NoFills(1362) across all messages with the same ExecID(17)
893Boolean Enum
Indicates whether this is the last fragment in a sequence of message fragments. Only required where message has been fragmented
Component
Specifies the partial fills included in this ExecutionReport(35=8), mutually exclusive with OrderEventGrp component
Component
Specifies the order events included in this ExecutionReport(35=8), mutually exclusive with FillsGrp component
2830Char Enum
427Int Enum
States whether executions are booked out or accumulated on a partially filled GT order
75LocalMktDate
Used when reporting other than current day trades
60UTCTimestamp
Time the transaction represented by this ExecutionReport(35=8) occurred
113Boolean Enum
Component
On a fill/partial-fill message, it represents value for that fill/partial fill. On ExecType(150) = B (Calculated), it represents cumulative value for the order
Component
Use as an alternative to CommissionData component if multiple commissions or enhanced attributes are needed
Component
Component
Component
381Amount
157Int
230LocalMktDate
158Percentage
159Amount
738Amount
For fixed income products which pay lump-sum interest at maturity
920Amount
For repurchase agreements the accrued interest on termination
921Amount
For repurchase agreements the start (dirty) cash consideration
922Amount
For repurchase agreements the end (dirty) cash consideration
258Boolean Enum
259LocalMktDate
260Price
238Amount
237Amount
118Amount
On a fill/partial fill message, it represents value for that fill/partial fill. On a ExecType(150) = B (Calculated) message, it represents cumulative value for the order. Value expressed in the currency reflected by the Currency(15) field
119Amount
Used to report results of forex accommodation trade
120Currency
Used to report results of forex accommodation trade
2899String Enum
Component
2795Int Enum
155Float
Foreign exchange rate used to compute SettlCurrAmt(119) from Currency(15) to SettlCurrency(120)
156Char Enum
Specifies whether the SettlCurrFxRate(155) should be multiplied or divided
21Char Enum
110Quantity
1822Int Enum
1089Quantity
1090Int
2676Percentage
Component
Component
2362String
May be used as an alternative to MatchingInstructions when the identifier does not appear in another field
2964Int Enum
May be used to return the self-match prevention instruction provided on the order placement message. Omit for unsolicited cancellations and use ExecRestatementReason(378) to convey the self-match prevention instruction that caused the cancellation
2523Int Enum
Component
Component
111Quantity
1816Int Enum
77Char Enum
For use in derivatives omnibus accounting
210Quantity
775Int Enum
Method for booking out this order. Used when notifying a broker that an order to be settled by that broker is to be booked out as an OTC derivative (e.g. CFD or similar). Absence of this field implies regular booking
58String
354Length
Must be set if EncodedText field is specified and must immediately precede it
355Data
Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field
193LocalMktDate
Can be used with OrdType = "Forex - Swap" to specify the "value date" for the future portion of a F/X swap
192Quantity
Can be used with OrdType = "Forex - Swap" to specify the order quantity for the future portion of a F/X swap
641PriceOffset
Can be used with OrdType = "Forex - Swap" to specify the forward points (added to LastSpotRate) for the future portion of a F/X swap
442Char Enum
Default is a single security if not specified
1385Int Enum
For contingency orders, the type of contingency as specified in the order
480Char Enum
For CIV - Optional
481Char Enum
513String
Reference to Registration Instructions message for this Order
494String
Supplementary registration information for this Order
483UTCTimestamp
For CIV - Optional
515UTCTimestamp
For CIV - Optional
484Char Enum
For CIV - Optional
485Float
For CIV - Optional
638Int Enum
639PriceOffset
851Int Enum
Applicable only on OrdStatus(39) = 1 of (Partially filled) or 2(Filled)
Component
Component
Specifies the leg executions of a multi-leg order or quote
797Boolean
Component
Required if any miscellaneous fees are reported
1380Percentage
1028Boolean
1029Boolean
1030String
1031MultipleStringValue Enum
1032Int Enum
1724Int Enum
2882Int Enum
May be used for cross orders submitted with single order messages
1725String
1726String
2883Int Enum
2884Int Enum
May be used for cross orders submitted with single order messages
2525Boolean
522Int Enum
2679Int Enum
Can be used to highlight change of order ownership
Component
Component
Component
1937Int Enum
May be used to indicate the post-execution trade continuation or lifecycle event. This should echo the value in the message that resulted in this report
2374String
2372Length
Must be set if EncodedTradeContinuationText(2371) field is specified and must immediately precede it
2371Data
Encoded (non-ASCII characters) representation of the TradeContinuationText(2374) field in the encoded format specified via the MessageEncoding(347) field
1188Float
1189Float
1190Float
811Float
1917Price
Component
1080String
1081Char Enum
1806String
Component
May be used to provide a list of orders and their relationship to the order identified in this message
1803Int Enum
1804Percentage
1808Quantity
1809Quantity
1807Int Enum
1810Int Enum
1811Quantity
1819Price
1820Price
1821Int Enum
Component
Required