CME STP FIXML - Allocation Message Flows
This page describes the sequence and flow of information (showing key FIXML fields) between the client system and the CME STP FIXML.
Allocation
CME STP supports allocations, which means one firm "gives-up" trades to another firm. The firm that executed a trade (i.e. Executing firm) may want to "allocate" or "give-up" a trade to a different firm (i.e. Claiming firm).
The Executing firm will receive an Offset message to indicate that the trade is being removed and the Claiming Firm will receive an Onset message to indicate the trade is now on their books. This flow shows the original trade followed by the modified trade, and the offset and onset messages that the API sends for an allocation.
The following diagram shows only responses, and not requests.
In the case of a reversal or release of an allocation, CME STP will report both the offset and onset trades as cancelled. (@TransTyp = 1) Parameters on the cancel will mirror those of the original offset or onset, e.g. the side of the cancel message will match the side of the respective offset or onset message.
Sub-allocation (e.g. the claiming firm marks a claimed allocation for give-up) will not result in the "Trade marked for Allocation" message above, however, when the new claiming firm claims the allocation, CME STP will send offset and onset trades.
Allocation of Spreads
CME STP allocates spreads at the leg level only, therefore the API does not mark spread level messages for allocation. For users requesting @MLegRptTyp = 2 (individual leg of a multi-leg security), allocation of spread legs is no different than allocation of outright trades, except that @MLegRptTyp = 2 instead of 1.
For firms requesting spread level messages, (for example, @MLegRptTyp = 3), allocation behaves differently. When a clearing firm marks a leg of a spread for allocation, the API sends a message showing that individual leg as an @MLegRptTyp = 2 to the executing firm, even though the user only requested @MLegRptTyp = 3. The field @StrategyLinkID can be used to link the allocated leg to the multi-leg spread message. The offset and onset trades after the claiming firm claims the allocation are no different than before. Should a clearing firm un-mark a trade for allocation (not illustrated), the API will send a message with @MLegRptTyp = 2 showing the leg as un-marked.
When requesting @MLegRptTyp = 3, be advised that any @MLegRptTyp = 2 messages received only indicate allocation status. These @MLegRptTyp = 2 messages must not be booked as new trades, considering that they duplicate one or more legs of the @MLegRptTyp = 3 messages already received. Clients systems should not double count the trades.
The following diagram shows only responses, and not requests.
Allocation States
Allocation Scenarios
APS - Average Price
GUS - Give-up
Allocation Type | Scenario / Transition | Transition End State | CME STP TCR Received? | Summary |
|---|---|---|---|---|
GUS | ||||
GUS | Mark for Allocation (individual trade) |
| Y | When The Buy Side of Trade is Marked for Allocation Then the Buy Side Receives TCR which is a Replace (transTyp=2) with AllocInd=1 and GrpID2 |
GUS | Allocate Trade to Claiming Firm | Allocation Pending | N |
|
GUS | Allocation Claimed by Receiving Firm | Claimed | Y | When firm "<GiveUp>" accepts the allocation from firm "<Buyer>" Then firm "<GiveUp>" receives new OFFSET TCR with Transtyp= 0, OfstInst= 0 , GrpID2= abc, no TrdRegTS block Then firm "<Claiming>" receives new ONSET TCR with Transtyp= 0, OfstInst= 1 , GrpID2= abc, no TrdRegTS block |
GUS | Trade is Unmarked | Start | Y | Given Trade entered in CPC When The Buy Side of Trade is Marked for Allocation Then the Buy Side Receives TCR, which is a Replace TransTyp=2 with AllocInd=1 and GrpID2 When the Buy Side of Trade has Allocation Unmarked in FECPLus Then the Buy Side Receives TCR, which is a Replace TransTyp=2 AND NO AllocInd and NO GrpID2 |
GUS | Claimed Allocation: Reverse Requested and Accepted | Reversed | Y | Given Allocation has been claimed When the Claiming firm allocation is reversed the following day, then NO TCR is reported When the Buy Side of Trade accepts the reversal Then the Buy Side Receives TCR which is updated OFFSET with Transtyp= 1 (cancel) Then the Claimed Side Receives TCR which is updated ONSET with Transtyp= 1 (cancel) |
GUS | Claimed Allocation: Reversal Requested but is Rejected or Cancelled | Claimed | N |
|
APS | ||||
APS | Create APS Group (marking for APS allocation) | Incomplete Group | Y | Given Trade entered in CPC When The Buy Side marks trades for APS and Assigns group Then The Buy Side Receives TCR which is a Replace (TransTyp=2) with AllocInd=1, GrpID2 and AvgPxInd=1 |
APS | Complete Average Price Group | Complete Group | N |
|
APS | Allocate Trade to Claiming Firm | Allocation Pending | N |
|
APS | Claim Allocation APS Group | Claimed | Y | Given Trades allocated to APS Group then TCR GrpID2=abc, AvgPxInd=1, AllocInd=1 Given Allocation performed on APS group to Carry Firm then No TCR When Claiming Firm Claims Allocation Then the Buy Side Receives TCR with OfstInst=0, GrpID2=abc, AvgPx, ClOrdID="Group Name" Then the Claiming firm Receives TCR with OfStInst=1, GrpID2=abc, AvgPx, ClOrdID="Group Name" |
APS - Full Lifecycle | ||||
APS
| Full Cycle APS |
|
| Given Trades allocated to APS Group, then TCR GrpID2=abc, AvgPxInd=1, AllocInd=1 Given Allocation performed on APS group to Carry Firm, then No TCR When Claiming Firm Claims Allocation Then the Buy Side Receives TCR with OfstInst=0, GrpID2=abc, AvgPx, ClOrdID="Group Name" Then the Claiming firm Receives TCR with OfStInst=1, GrpID2=abc, AvgPx, ClOrdID="Group Name" |
Create Group |
| Y | Given Trades allocated to APS Group, then TCR GrpID2=abc, AvgPxInd=1, AllocInd=1 | |
Complete Group |
| N | No TCR sent to STP | |
Allocate Trade to claiming Firm |
| N | No TCR sent to STP | |
Claim Allocation |
| Y | Buy Side Receives TCR with OfstInst=0, GrpID2=abc, AvgPx, ClOrdID="Group Name" Claiming firm Receives TCR with OfStInst=1, GrpID2=abc, AvgPx, ClOrdID="Group Name" | |
Reverse Allocation |
| N | No TCR sent to STP | |
Accept Reversal |
| Y | Then the Buy and Claiming side receive a Cancel message | |
Sub-Allocation | ||||
| Creating a Sub-Allocation | Claimed | Y | When the Claiming side Marks for SubAllocation |
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.