Structure |
Related Messages
Description
The Execution Report <8> message is used to:
- confirm the receipt of an order
- confirm changes to an existing order (i.e. accept cancel and replace requests)
- relay order status information
- relay fill information on working orders
- reject orders
- report post-trade fees calculations associated with a trade
NOTE: Execution reports do not replace the end-of-day confirm. Execution reports are to be regarded only as replacements for
the existing fill messages currently communicated via telephone.
Each execution message will contain information that will describe the current state of the order and execution status as
understood by the broker. State changes should be sent as separate messages and should not be used to also convey new partial
fill details (i.e. do not report a partial fill or filled in a Done for the Day, Reject, etc.)
Execution report messages can be transmitted as transaction types (ExecTransType <20>) NEW, CANCEL, CORRECT or STATUS. Transaction types CANCEL and CORRECT modify the state of the message identified in field
ExecRefID <19>. Transaction type STATUS indicates that the execution message contains no new information, only summary information regarding
order status.
- The NEW transaction type indicates that this message represents a new order, a change in status of the order, or a new fill
against an existing order. The combination of the ExecTransType <20> and OrdStatus <39> fields will indicate how the message is to be applied to an order.
- The CANCEL transaction type applies at the execution level. The Cancel transaction will be used to cancel an execution which
has been reported in error. The canceled execution will be identified in the ExecRefID <19> field.
- The CORRECT transaction type 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 ExecutionRpt (same convention as ClOrdID <11> and OrigClOrdID <41>). 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.
Any fills which occur and need to be communicated to the customer while an order is "pending" and waiting to achieve a new
state (i.e. via a Order Cancel/Replace(aka Order Modification) Request <G>) must contain the "original" (current order prior
to state change request) order parameters (i.e. ClOrdID <11>, OrderQty <38>, LeavesQty <151>, Price <44>, etc). An order cannot be considered replaced until it has been explicitly accepted and confirmed to have reached the replaced
status (i.e OrdStatus <39> = "Replaced")--Care should be taken as the replaced order could still have reports coming which will update the CumQty <14> and AvgPx <6> of both the original and replacement, however, the effect on the replacement (ClOrdID <11>, new quantity or limit price, etc.) will not be seen until a report on the replacement has been generated.
The ExecType <150> field describes the specific ExecutionRpt while OrdStatus <39> will always identify the current order status.
See Appendix D: Order State Change Matrices.
To transmit a change in OrdStatus <39> for an order, the broker(sell side) should send an Execution Report <8> with the new OrdStatus <39> value in ExecType <150> AND OrdStatus <39> to signify this message is changing the state of the order. The only exception to this rule is when sending a Cancel Reject <9> in response to a Cancel <F> or Replace <G> request, the Cancel Reject <9> message is used. Furthermore, partial/complete fill information should be sent in a separate Execution Report <8> than order accept(New), cancel accept(Canceled), cancel/replace accept(Replaced) or Done For Day reports.
The OrdStatus <39> field is used to identify the status of the current order. If an order simultaneously exists in more than one order state,
the value with highest precedence is the value that is reported in the OrdStatus <39> field. The order statuses are as follows:
Precedence |
OrdStatus |
Description |
1 |
Pending Cancel/Replace |
Order with cancel request pending, used to confirm receipt of cancel or replace request. DOES NOT INDICATE THAT THE ORDER
HAS BEEN CANCELED OR REPLACED.
|
2 |
Done for Day |
Order not, or partially, filled; no further executions forthcoming |
3 |
Calculated |
Order has been completed for the day (either filled or done for day). Commission <12> or currency settlement details have been calculated and reported in this execution message
|
4 |
Filled |
Order completely filled, no remaining quantity |
5 |
Stopped |
Order has been stopped at the exchange |
6 |
Suspended |
Order has been placed in suspended state at the request of the client |
7 |
Canceled |
Canceled order with or without executions |
7 |
Expired |
Order has been canceled in broker's system due to time in force instructions |
8 |
Partially Filled
|
Outstanding order with executions and remaining quantity |
9 |
Replaced |
Replaced order with or without executions |
10 |
New |
Outstanding order with no executions |
10 |
Rejected |
Order has been rejected by broker. NOTE: An order can be rejected subsequent to order acknowledgment, i.e. an order can pass
from New to Rejected status.
|
10 |
Pending New |
Order has been received by brokers system but not yet accepted for execution. An Execution message with this status will only
be sent in response to a Status Request <H> message.
|
|
NOTE: The canceled and replaced order status is set in response to accepted cancel and replace requests. These requests are
only acted upon when there is an outstanding order quantity. Requests to replace OrderQty <38> to a level less than the CumQty <14> will be rejected. Requests to change price on a filled order will be rejected (see Order Cancel Reject <9> message type).
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> and/or OrdStatus <39> are Canceled, DoneForTheDay, Expired, Calculated, or Rejected in which case the order is no longer active and LeavesQty <151> could be 0.
The field ClOrdID <11> is provided for institutions to affix an identification number to an order to coincide with internal systems. The OrderID <37> field is populated with the broker-generated order number. 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.
Structure
Tag |
Field Name |
Req'd |
Comments |
<MessageHeader> |
Y |
MsgType <35> = 8
|
37 |
OrderID |
Y |
OrderID <37> is required to be unique for each chain of orders.
|
198 |
SecondaryOrderID |
N |
Can be used to provide order id used by exchange or executing system.
|
11 |
ClOrdID |
N |
Required for executions against electronically submitted orders which were assigned an ID by the institution. Not required
for orders manually entered by the broker.
|
41 |
OrigClOrdID |
N |
Conditionally required for PendingCancel, Replaced, Canceled ExecType <150> values. ClOrdID <11> of the previous order (NOT the initial order of the day) when canceling or replacing an order.
|
109 |
ClientID |
N |
Used for firm identification in third-party transactions.
|
76 |
ExecBroker |
N |
Used for firm identification in third-party transactions.
|
66 |
ListID |
N |
Required for executions against orders which were submitted as part of a list.
|
17 |
ExecID |
Y |
|
20 |
ExecTransType |
Y |
|
19 |
ExecRefID |
N |
Required for Cancel and Correct ExecTransType <20> messages
|
150 |
ExecType |
Y |
Describes the type of execution report. Same possible values as OrdStatus <39>.
|
39 |
OrdStatus |
Y |
Describes the current state of a CHAIN of orders, same scope as OrderQty <38>, CumQty <14>, LeavesQty <151>, and AvgPx <6>
|
103 |
OrdRejReason |
N |
For optional use with ExecType <150> = 8 (Rejected)
|
1 |
Account |
N |
Required for executions against electronically submitted orders which were assigned an account by the institution
|
63 |
SettlmntTyp |
N |
Absence of this field is interpreted as Regular.
|
64 |
FutSettDate |
N |
Required when SettlmntTyp <63> = 6 (Future) or SettlmntTyp <63> = 8 (Sellers Option)
|
55 |
Symbol |
Y |
|
65 |
SymbolSfx |
N |
|
48 |
SecurityID |
N |
|
22 |
IDSource |
N |
|
167 |
SecurityType |
N |
Must be specified if a Future or Option. If a Future: Symbol <55>, SecurityType <167>, and MaturityMonthYear <200> are required. If an Option: Symbol <55>, SecurityType <167>, MaturityMonthYear <200>, PutOrCall <201>, and StrikePrice <202> are required.
|
200 |
MaturityMonthYear |
N |
For Options or Futures to specify the month and year of maturity.
|
205 |
MaturityDay |
N |
For Options or Futures and can be used in conjunction with MaturityMonthYear <200> to specify a particular maturity date.
|
201 |
PutOrCall |
N |
For Options.
|
202 |
StrikePrice |
N |
For Options.
|
206 |
OptAttribute |
N |
For Options.
|
207 |
SecurityExchange |
N |
Can be used to identify the security.
|
106 |
Issuer |
N |
|
107 |
SecurityDesc |
N |
|
54 |
Side |
Y |
|
38 |
OrderQty |
Y |
|
40 |
OrdType |
N |
|
44 |
Price |
N |
Required if specified on the order
|
99 |
StopPx |
N |
Required if specified on the order
|
211 |
PegDifference |
N |
Required if specified on the order
|
15 |
Currency |
N |
|
59 |
TimeInForce |
N |
Absence of this field indicates Day order
|
126 |
ExpireTime |
N |
Required if TimeInForce <59> = GTD
|
18 |
ExecInst |
N |
Can contain multiple instructions, space delimited.
|
47 |
Rule80A(aka OrderCapacity) |
N |
|
32 |
LastShares |
Y |
Quantity of shares bought/sold on this (last) fill. Not required ExecTransType <20> = 3 (Status).
|
31 |
LastPx |
Y |
Price of this (last) fill. Not required for ExecTransType <20> = 3 (Status), Should represent the 'all-in' (LastSpotRate <194> + LastForwardPoints <195>) rate for F/X orders.
|
194 |
LastSpotRate |
N |
Applicable for F/X orders
|
195 |
LastForwardPoints |
N |
Applicable for F/X orders
|
30 |
LastMkt |
N |
|
29 |
LastCapacity |
N |
|
151 |
LeavesQty |
Y |
Amount of shares open for further execution. If the OrdStatus <39> is Canceled, DoneForTheDay, Expired, Calculated, or Rejected (in which case the order is no longer active) then LeavesQty <151> could be 0, otherwise LeavesQty <151> = OrderQty <38> - CumQty <14>.
|
14 |
CumQty |
Y |
Currently executed shares for chain of orders.
|
6 |
AvgPx |
Y |
|
75 |
TradeDate |
N |
Used when reporting other than current day trades.
|
60 |
TransactTime |
N |
|
113 |
ReportToExch |
N |
|
12 |
Commission |
N |
|
13 |
CommType |
N |
|
119 |
SettlCurrAmt |
N |
Used to report results of forex accommodation trade
|
120 |
SettlCurrency |
N |
Used to report results of forex accommodation trade
|
155 |
SettlCurrFxRate |
N |
Foreign exchange rate used to compute SettlCurrAmount from Currency <15> to SettlCurrency <120>
|
156 |
SettlCurrFxRateCalc |
N |
Specifies whether the SettlCurrFxRate <155> should be multiplied or divided
|
58 |
Text |
N |
|
<MessageTrailer> |
Y |
|
|
Related Messages
|