The Allocation message provides the ability to specify how an order or set of orders should be subdivided amongst one or more accounts. It can also be used as a confirmation message through which third parties can communicate execution and settlement details between trading partners. In addition, the Allocation message can be sent by the broker to communicate fees and other details that can only be computed once the sub-account breakdowns are known.
Allocation is typically communicated Post-Trade (after fills have been received and processed). It can, however, also be communicated Pre-Trade (at the time the order is being placed) to specify the account(s) and their respective order quantities which make up the order. This is a regulatory requirement in certain markets and for certain types of securities.
An Allocation message can be submitted as preliminary, calculated, calculated without preliminary, new, cancel or replace. The AllocTransType (71) field indicates the purpose of the message. When submitting calculated, replace, or cancel AllocTransType (71) messages the RefAllocID (72) field is required. Note that AllocTransType (71) of Cancel, Reject, or Replace affects the entire Allocation message thus each AllocAccount (79) (cannot cancel, reject, or replace a single AllocAccount (79) instance without affecting the entire Allocation message). Replacement Allocation messages must contain all data for the replacement allocation. Calculated allocations should have a unique AllocID (70) and use RefAllocID (72) to specify the AllocID (70) from the preliminary. Calculated without preliminary are sent unsolicited from the sellside and do not require RefAllocID (72).
The Allocation message contains repeating fields for each order, sub-account and individual execution. The repeating fields shown below are marked with the =>symbol. The field's relative position in the message is important. For example, each instance of allocation must be in the order shown below.
Pre-Trade Allocation consists of the following steps:
Post-Trade Allocation can be computed via one of two methods:
Post-Trade Allocation supports three different message flows:
See Appendix K: Example Usage of Allocations for more examples and details.
Note: Req'd = "Y*" indicates that the field is not required for AllocTransType (71) ='2' (Cancel)
Tag | Name | Type | Required | Description |
---|---|---|---|---|
Component | ||||
70 | String | |||
71 | Char Enum | |||
72 | String | Required for AllocTransType = Calculated, Replace, or Cancel | ||
196 | String | Can be used to link two different Allocation messages (each with unique AllocID) together, i.e. for F/X "Netting" or "Swaps" | ||
197 | Int Enum | Can be used to link two different Allocation messages and identifies the type of link. Required if AllocLinkID is specified | ||
Component | Indicates number of orders to be combined for allocation. If order(s) were manually delivered set to 1 (one) | |||
Component | Indicates number of individual execution repeating group entries to follow. Absence of this field indicates that no individual execution entries are included. Primarily used to support step-outs | |||
54 | Char Enum | |||
55 | String | |||
65 | String | |||
48 | String | |||
22 | String Enum | |||
167 | String Enum | Must be specified if a Future or Option. If a Future: Symbol, SecurityType, and MaturityMonthYear are required. If an Option: Symbol, SecurityType, MaturityMonthYear, PutOrCall, and StrikePrice are required | ||
200 | MonthYear | Specifies the month and year of maturity. Required if MaturityDay is specified | ||
205 | DayOfMonth | Can be used in conjunction with MaturityMonthYear to specify a particular maturity date | ||
201 | Int Enum | For Options | ||
202 | Price | For Options | ||
206 | Char | For Options | ||
231 | Float | For Fixed Income, Convertible Bonds, Derivatives, etc. Note: If used, quantities should be expressed in the "nominal" (e.g. contracts vs. shares) amount | ||
223 | Float | For Fixed Income | ||
207 | Exchange | Can be used to identify the security | ||
106 | String | |||
348 | Int | Must be set if EncodedIssuer field is specified and must immediately precede it | ||
349 | Data | Encoded (non-ASCII characters) representation of the Issuer field in the encoded format specified via the MessageEncoding field | ||
107 | String | |||
350 | Int | Must be set if EncodedSecurityDesc field is specified and must immediately precede it | ||
351 | Data | Encoded (non-ASCII characters) representation of the SecurityDesc field in the encoded format specified via the MessageEncoding field | ||
53 | Quantity | Total number of shares allocated to all accounts | ||
30 | Exchange | Market of the executions | ||
336 | String | |||
6 | Price | For F/X orders, should be the "all-in" rate (spot rate adjusted for forward points) | ||
15 | Currency | Currency of AvgPx. Should be the currency of the local market or exchange where the trade was conducted | ||
74 | Int | Absence of this field indicates that default precision arranged by the broker/institution is to be used | ||
75 | LocalMktDate | |||
60 | UTCTimestamp | Date/time when allocation is generated | ||
63 | Char Enum | Absence of this field is interpreted as Regular | ||
64 | LocalMktDate | "Settlement Date". Required with SettlmntTyp other than regular | ||
381 | Amount | Expressed in same currency as AvgPx. Sum of (AllocShares * AllocAvgPx or AllocPrice) | ||
118 | Amount | Expressed in same currency as AvgPx. Sum of AllocNetMoney | ||
77 | Char Enum | |||
58 | String | |||
354 | Int | Must be set if EncodedText field is specified and must immediately precede it | ||
355 | Data | Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field | ||
157 | Int | Applicable for Convertible Bonds and fixed income | ||
158 | Float | Applicable for Convertible Bonds and fixed income | ||
Component | Indicates number of allocation groups to follow | |||
Component |