Allocation Management FIXML API - Submission and Usage Rules

Submission and usage rules include:

General Usage Rules

This section lists the API rules that are common to all types of allocations:

  • Vanilla give-up

  • Average pricing

  • Cross-exchange give-up

  1. Allocations cannot be cancelled if the claiming firm accepted the allocation.

  2. The executing firm may cancel the allocation if the claiming firm refused the allocation. This prevents the claiming firm from later claiming the allocation.

  3. The claiming firm may claim an allocation if it was not cancelled. This includes refusing an allocation and later claiming it.

  4. An executing firm cannot amend the allocation after the claiming firm claimed the allocation.

  5. An executing firm may amend an allocation after the claiming firm refused it. The claiming firm may then claim the amended allocation.

  6. Trades may not transition directly between give-up, average pricing, or cross-exchange give up. They must first be un-marked for allocation, then marked for allocation using the other methodology.

  7. On a Trade Capture Report, setting the Allocation Indicator to Allocation Not Required (AllocInd=0) requires the Average Pricing Indicator set to No Average Pricing (AvgPxInd=0), or the AvgPxInd attribute be omitted; otherwise, the Trade Capture Report is rejected.

Give-Up Usage Rules

This list describes the API rules applicable to vanilla give-ups in the API.

  1. The clearing system does not validate for claimed or unclaimed allocations in the group when an executing firm un-marks trades from group. This could result in the quantity of a give-up group being reduced below the quantity of claimed allocations, which cause the executing firm to be out of balance.

  2. An executing firm cannot cancel a give-up group if it has claimed allocations.

  3. By default, trades that meet grouping criteria are grouped together when marked for give-up. The executing firm can opt out of this by designating a trade not be added to an existing allocation group.

  4. If the executing firm designates multiple allocations to the same firm and account, the clearing system by default rolls up all of these allocations into a single allocation. Both the executing and claiming firms see only one allocation. However, the executing firm can choose to override rollup, which results in multiple individual allocations.

  5. The executing firm cannot amend an allocation to change the instruction to override rollup.

  6. The clearing system will not group any NYMEX, COMEX, or SX trades. When marked for give-up, the clearing system creates a new group for each of these trades. Additionally, firms can opt out of grouping; the clearing system creates a new group for each trade when the firm marks each trade for allocation.

Average Price Usage Rules

This list describes the applicable average pricing API rules.

  1. Trades may not be un-marked for average price allocation or removed from an average price group if the group is complete.

  2. To remove trades from a completed average price group, the executing firm must un-complete the group.

  3. An executing firm cannot un-complete an average price group if the group contains claimed allocations.

  4. Un-completing an average price group cancels all unclaimed allocations.

  5. Trades may be moved from one average price group to another if both groups are incomplete.

  6. The executing firm cannot allocate before completing an average price group.

  7. The executing firm can only cancel an incomplete average price group.

  8. Cancelling an average price group leaves the trade (if any) unmarked from the group, but the trades remain marked for average pricing.

  9. Marking a trade for give-up allocation that was previously marked for average pricing requires the executing firm first un-mark the trade from average pricing and mark it for give-up.

  10. Removing a trade from an average pricing group but keeping it in the average pricing system as unassigned requires specifying an Average Price Indicator of Average price trade removed from group (AvgPxInd=100) in a Trade Capture Report that modifies the trade. Modifying the trade and omitting the Average Price Group ID (AvgPxGrpID) is not sufficient.

  11. Rollup is never performed for average pricing groups. If the executing firm designates multiple allocations to the same firm and account, the clearing system will not roll up the allocations, which results in multiple individual allocations. The executing firm cannot override this behavior.

  12. The clearing system may split an allocation into two or more allocations if the allocation could not be satisfied by trades having the same fee characteristics.

Sub-Allocation Usage Rules

This list describes all of the applicable sub-allocation API rules.

  1. A claiming firm wanting to sub-allocate a trade must first claim the allocation and then sub-allocate it using distinct messages. Claiming and sub-allocating in a single message is not supported.

  2. If a sub-allocation is being average priced, an Average Price Group ID (AvgPxGrpID) must be specified.

Reversal Usage Rules

This list describes all the allocation reversal API rules.

  1. A claiming firm must first claim an allocation before either party can reverse it.

  2. Either the executing firm or the claiming firm can request a reversal.

  3. A reversal, once refused, can later be accepted, provided the party that initiated the reversal has not cancelled it.

  4. The party that initiates a reversal may cancel a reversal, but only if the other party has not accepted or refused it.

Cross-Exchange Give-Up Usage Rules

This section describes all of the API rules that are applicable for cross-exchange allocations in the API differing from those already specified as General Usage Rules, Give-up Usage Rules, and Reversal Usage Rules.

  1. The executing firm must specify claiming firm information when marking a trade for cross-exchange allocation. It is not possible to mark a trade for cross-exchange allocation without indicating one or more claiming firms.

  2. A trade may be marked for MOS and only partially allocated. The executing firm then keeps the unallocated quantity if it takes no further action. The executing firm may also submit additional MOS allocations for the unallocated quantity remaining on the same trade. However, any unallocated quantity may not be allocated via give-up or average pricing.

  3. If a CME executing firm cancels an allocation pre-trade, the cancel may be ignored if SGX clearing has claimed or refused an allocation.

  4. An SGX firm cannot initiate a reversal.

  5. Cancelling a reversal is not currently supported.

  6. If cancellation of reversal is supported in a future release, in a scenario where a CME firm cancels a reversal that it initiated, the cancel may be ignored if SGX clearing has claimed or refused the reversal.

FIXML Message and Attribute Usage in Allocation Messages

Message Types

Message Type

Description

Message

Message Type

Description

Message

Mark Trade for Give-up
Mark Trade for Give-up with Specific Instructions
Mark Trade for Average Pricing
Un-mark Trade Change Average Price Group

Sent by the executing firm as a new trade or an amendment to a previously submitted trade.

TradeCaptureReport

Mark Trade Acknowledgment
Un-mark Trade Acknowledgment
Change Average Price Group Acknowledgment

Sent by the API in response to marking a trade, un-marking a trade, or changing allocation parameters of a marked trade.

TradeCaptureReportAck

Group Summary notifications

For trades marked for give-up, these messages are sent by the API in response to the creation of a group, addition of a trade to an existing group, or cancellation of a group. For trades marked for average pricing, these messages are sent by the API in response to adding or removing a trade from an average price group, when a group is completed or un-completed, or when a group is cancelled.

AllocationInstructionAlert

Complete Average Price Group
Un-complete Average Price Group

Sent by the executing firm to complete an average price group.
Sent by the executing firm to un-complete an average price group.

AllocationInstruction

Submit Allocation Instruction
Amend Allocation Instruction
Cancel Allocation Instruction

Sent by the executing firm to submit, amend, or cancel an allocation instruction.

AllocationInstruction

Allocation Instruction Acknowledgment

Sent by the clearing system to the executing firm acknowledging the submission, amendment, or cancellation of an allocation instruction, or reporting an error.

AllocationReport

Notify Claiming Firm
Notify Claiming Firm of Cancellation
Notify Claiming Firm of Amendment

Sent by the clearing house to notify the claiming firm of a new allocation, cancellation of an allocation, or amendment of an allocation proposed by the executing firm.

AllocationReport

Claim an Allocation
Refuse an Allocation

Sent by the claiming firm to the clearing system to indicate whether the claiming firm accepts or refuses an allocation proposed by the executing firm.

AllocationInstruction

Allocation Claim Notification
Allocation Refusal Notification

Sent by the clearing system to the executing firm to indicate status changes to an allocation, such as those caused by a claiming firm accepting or refusing an allocation.

AllocationReport

Allocation Claim Acknowledgment
Allocation Refusal Acknowledgment

Sent by the clearing system to the claiming firm acknowledging and processing the claim or refusal from the claiming firm.

AllocationReport

Sub Allocate an Allocation

Sent by the claim firm to sub-allocate an allocation after claiming the allocation.

AllocationInstruction

Request Allocation Reversal

Initiated by either the executing firm or the claiming firm to the clearing system to request the release or reversal of a claimed allocation.

AllocationInstruction

Reversal Request Acknowledgment

Sent by the clearing system to acknowledge the reversal request.

AllocationReport

Reversal Request Notification

Sent by the clearing system to notify the opposite side of the proposed reversal.

AllocationReport

Accept a Reversal
Refuse a Reversal

Sent to the clearing system to accept or refuse the proposed reversal.

AllocationInstruction

Reversal Acceptance Acknowledgment
Reversal Refusal Acknowledgment

Sent by the clearing system to the initiator of the claim or refusal of the reversal, acknowledging acceptance or refusal of the reversal.

AllocationReport

Reversal Acceptance Notification
Reversal Refusal Notification

Sent by the clearing system to the initiator of the reversal, to notify the firm of the acceptance or refusal of the reversal.

AllocationReport

Cancel Reversal Request

Sent by the firm that initiated the reversal to the clearing system.

AllocationInstruction

Cancel Reversal Acknowledgment

Sent by the clearing system to the firm that initiated the reversal.

AllocationReport

Cancel Reversal Notification

Sent by the clearing system to the firm that did not initiate the reversal, notifying that firm of the reversal’s cancellation.

AllocationReport

Clearing System Reject

Sent by the clearing system in response to an invalid request.

AllocationInstructionAck

Allocation Identifiers

The API allows and provides the following identifiers when submitting and reporting allocations to the clearing system. Identifiers are provided by the submitter and assigned by the CME clearing system. All identifiers provided by a firm are reported back on all the subsequent acknowledgments and notifications to the firm. Submitters must reference allocations using CME clearing system assigned identifiers.

Name

Attribute

Message

Usage

Name

Attribute

Message

Usage

Message Identifiers

Message ID

@ID

Allocation Instruction

Unique message ID. Used by both executing and claiming firms.

Reference ID

@RptRefID

Allocation Report

Used by clearing system when responding to an Allocation Instruction.

Contains the same value specified in ID for the Allocation Instruction.

Reference ID

@RptRefID

Allocation Instruction Ack
Allocation Instruction Alert

Used by clearing system when responding to an Allocation Instruction.

Contains the same value specified in ID for the Allocation Instruction.

Clearing assigned Group ID


@GrpID

Allocation Instruction Alert

Sent by clearing system to identify allocation groups (give up, average price, or cross exchange give up)

@GrpID

Allocation Instruction

Must be sent by the executing firm and must equal the GrpID the clearing system sent in an Allocation Instruction Alert.

Required on all Allocation Instruction messages sent by the executing firm except for sub-allocation.

@GrpID

Allocation Report

Sent by clearing system to the executing firm on all messages to identify the allocation group.

Average Price Group ID

@AvgPxGrpID

Trade Capture Report

Sent by the executing firm to assign a trade to an average price group.



@AvgPxGrpID

Allocation Instruction Alert
Allocation Report

Echoed by the clearing system to the executing firm for average price groups. Will match the AvgPxGrpID

specified in a Trade Capture Report.

Allocation Identifiers

Clearing assigned Allocation ID

Alloc/@IndAllocID2

Allocation Report

Sent by clearing system to the executing firm and claiming firm on all messages to identify the allocation.

Alloc/@IndAllocID2

Allocation Instruction

Sent by the claiming firm to the clearing system to reference an allocation. Sent by the executing firm to the clearing system to reference an allocation. For example when amending, cancelling, or reversing an

allocation. In sub-allocations, sent by the original claiming firm to identify the allocation to sub-allocate.

Firm assigned Allocation ID

Alloc/@IndAllocID

Allocation Instruction

Sent by firms (both executing and claiming) to provide an additional identifier for the allocation. Optional.



Alloc/@IndAllocID

Allocation Instruction Alert

If Alloc/@IndAllocID is specified by the firm in an Allocation Instruction, the clearing system will store this and send it back to the claiming firm when referencing the allocation.

Trade ID

AllExc/@TradeID

Allocation Instruction Alert

Sent by the clearing system to the executing firm to indicate the Trade ID of a trade added to or removed from a group.

Transaction Quantity

@Qty

Allocation Instruction Alert

Indicates the quantity by which the group changes as part of the current transaction. Positive when adding a trade to a group. Zero when changing just the status of a group, e.g. completing or un-completing a group. Negative when removing trades from a group.

Group Quantity

@GrpQty

Allocation Instruction Alert

Total quantity in the group. This only changes if trades are added or removed from the group. Note: Allocating from a group, or reversing allocations, does not affect the group quantity.

Total Allocation Quantity

@Qty

Allocation Instruction
Allocation Report

Total quantity being allocated by this message.

Allocation Quantity

Alloc/@Qty

Allocation Instruction
Allocation Report

Quantity allocated to the party identified in the <Pty> element.

Requested Allocation Quantity

Alloc/@ReqQty

Allocation Report

Quantity allocated to the party identified in the <Pty> element in the requested allocation. Can differ from Alloc/@Qty when the clearing system splits an allocation. Sent to executing firm for average price allocations.

Trade Quantity

AllExc/@LastQty

Allocation Instruction Alert

Indicates the quantity of a trade added to or removed from a group. Is always positive.

Average Price

@AvgPx

Allocation Instruction Alert

Average price computed by the clearing system for a completed group. Incomplete groups generally will not have an average price specified.

Average Price

@AvgPx

Allocation Report

Average price at which allocation occurs.

Give-up Price (Trade Price)

@AvgPx

Allocation Report

For vanilla give-ups this contains the trade price.

Trade Price

AllExc/@LastPx

Allocation Instruction Alert

Indicates the price of a trade added to or removed from a group.

Grouping and Rollup Attributes

The following attributes indicate instructions pertaining to grouping and roll-up, which the executing firm uses to override default behavior.

Name

Attribute 

Message 

Usage

Name

Attribute 

Message 

Usage

Allocation Group Instruction

RptSide/@AllocGrpInst

Trade Capture Report
Trade Capture Report Ack

Instruction on how to add a trade to an allocation group when it is being given-up.

The default behavior is to add the trade to an existing allocation group if one exists.
0 = Add to an existing allocation group if one exists
1 = Do not add the trade to an existing allocation group

Allocation Rollup Instruction

Alloc/@AllocRollupInst

Allocation Instruction
Allocation Report

An indicator to override the normal procedure to roll up allocations for the same

Carry Firm. Note that this may not be used for average pricing groups.
0 = Roll up
1 = Do not roll up

Allocation Rollup Instruction

RptSide/Alloc/@AllocRollupInst

Trade Capture Report
Trade Capture Report Ack

An indicator to override the normal procedure to roll up allocations for the same

Carry Firm. Note that this may not be used for average pricing groups.
0 = Roll up
1 = Do not roll up

Buy Sell Convention

This section describes the convention used for buy sell code convention in allocation messages.

In this scenario the executing firm is giving up a trade, which is a buy. For transactions where the executing firm makes a trade to sell, the side in all of the above scenarios is reversed. The clearing system reverses the buy sell code when an allocation is initiated.

Scenario

 Message Type

 Executing Firm

Claiming Firm

Scenario

 Message Type

 Executing Firm

Claiming Firm

Original Trade

 TrdCaptRpt

BUY



Group Summary Notification after a trade is allocated

AllocInstrctnAlert

BUY



New Allocation Notification

AllocRpt

SELL

BUY

Allocation Claimed / Refused by the Claim side

AllocRpt

SELL

BUY

Allocation Reversal confirmation

AllocRpt (allocation released and release accepted)

SELL

BUY




How was your Client Systems Wiki Experience? Submit Feedback

Copyright © 2024 CME Group Inc. All rights reserved.