Appendix D

Order State Change Matrices


Ref Group Description
D1 Vanilla Filled order
D2 Vanilla Part-filled day order, done for day
D3 Cancel Cancel request issued for a zero-filled order
D4 Cancel Cancel request issued for a part-filled order — executions occur whilst cancel request is active
D5 Cancel Cancel request issued for an order that becomes filled before cancel request can be accepted
D6 Replace to increase qty Zero-filled order, cancel/replace request issued to increase order qty
D7 Replace to increase qty Part-filled order, followed by cancel/replace request to increase order qty, execution occurs whilst order is pending replace
D8 Replace to increase qty Filled-order followed by cancel/replace request to increase order quantity
D9 Replace not for qty change Cancel/replace request (not for quantity change) is rejected as a fill has occurred
D10 Replace to decrease qty Cancel/replace request sent whilst execution is being reported — the requested order qty exceeds the cum qty. Order is replaced then filled
D11 Replace to decrease qty Cancel/replace request sent whilst execution is being reported — the requested order qty equals the cum qty — order qty is amended to cum qty
D12 Replace to decrease qty Cancel/replace request sent whilst execution is being reported — the requested order qty is below cum qty — order qty is amended to cum qty
D13 Replace – sequence One cancel/replace request is issued which is accepted — another one is issued which is also accepted
D14 Replace – sequence One cancel/replace request is issued which is rejected before order becomes pending replace — then another one is issued which is accepted
D15 Replace – sequence One cancel/replace request is issued which is rejected after it is in pending replace — then another one is issued which is accepted
D16 Replace – chaining One cancel/replace request is issued followed immediately by another — broker processes sequentially
D17 Replace – chaining One cancel/replace request is issued followed immediately by another — broker rejects the second as order is pending replace
D18 Unsolicited reports Telephoned order
D19 Unsolicited reports Unsolicited cancellation of a part-filled order
D20 Unsolicited reports Unsolicited replacement of a part-filled order
D21 Unsolicited reports Unsolicited reduction of order quantity by sell side
D22 Order reject Order rejected due to duplicate ClOrdID
D23 Order reject Order rejected because the order has already been verbally submitted
D24 Status Order status request rejected for unknown order
D25 Status Status request followed by "Nothing done"
D26 Status Order sent, immediately followed by a status request. Subsequent status requests sent
D27 GT GTC order partially filled, restated (renewed) and partially filled the following day
D28 GT GTC order with partial fill, a 2:1 stock split then a partial fill and fill the following day
D29 GT GTC order partially filled, restated (renewed) and canceled the following day
D30 GT GTC order partially filled, restated (renewed) followed by replace request to increase quantity
D31 Resend Poss resend
D32 TIF Fill or kill order that cannot be filled
D33 TIF Immediate or Cancel order that cannot be immediately hit
D34 Execution correct/cancel Filled order, followed by correction and cancellation of executions
D35 Execution correct/cancel A cancel of a partially filled order followed by an execution cancel(bust) and new execution
D36 Execution correct/cancel GTC order partially filled, restated (renewed) and partially filled the following day, with corrections of quantity on both executions
D37 Stopped/Guarantee A stopped (execution price guarantee) report followed by execution

 

The Table below shows which state transitions have been illustrated by the matrices in this Appendix (marked with an asterisk). The row represents the current value of OrdStatus and the column represents the next value as reported back to the buy-side via an execution report or order cancel reject message. Next to each OrdStatus value is its precedence – this is used when the order exists in a number of states simultaneously to determine the value that should be reported back. Note that absence of a scenario should not necessarily be interpreted as meaning that the state transition is not allowed:

OrdStatus
(precedence value)

New (2)

Partially
Filled (4)

Filled (8)

Done
For
Day (10)

Pending Cancel (12)

Pending
Replace (11)

Replaced  (3)

Canceled (5)

Rejected (2)

Stopped (7)

Pending New (2)

*

 

 

 

 

 

 

 

*

 

New (2)

*

*

*

*

*

*

*

 

*

*

Partially Filled (4)

 

*

*

*

*

*

 

*

 

 

Filled (8)

 

*

*

 

 

*

 

 

 

 

Done for Day (10)

 

*

 

 

 

 

 

 

 

 

Pending Cancel (12)

*

*

*

 

*

 

 

*

 

 

Pending Replace (11)

*

*

*

 

 

*

*

*

 

 

Replaced (3)

 

*

 

 

 

 

 

 

 

 

Canceled (5)

 

 

 

 

 

 

 

 

 

 

Rejected (2)

 

 

 

 

 

 

 

 

 

 

Stopped (7)

 

*

 

 

 

 

 

 

 

 

How to read the Order State Change Matrices:

  • The "Execution Report" message is referred to simply as "Execution"
  • The "Order Cancel/Replace Request" and "Order Cancel Request" messages are referred to as "Replace Request" and "Cancel Request" respectively
  • The shaded rows represent messages sent from buy-side to the sell-side
  • In general where two lines of a matrix share the same time, this means either
    • that there are two possible paths (e.g. a request is accepted or rejected) — in this case the first row of the two possible paths is the reject case which is italicized. The non-italicized row is the path that is continued by the remainder of the matrix
    • that two messages are being sent at the same time but in different directions such that the messages cross on the connection (e.g. a cancel request is sent at the same time as the sell-side is sending an execution) — in this case both lines have bold text
  • For scenarios involving cancel requests or cancel/replace requests "X" refers to the original order, "Y" refers to the cancel/replacing order. A similar convention is used for corrections or cancels to executions