FIX 4.2 : Allocation <J> message

Structure | Related Messages

Description

The Allocation <J> 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 <J> 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 <J> 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 <J> 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 <J> 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.

  • The total shares allocated must equal the Shares <53> value which must equal the total executed quantity of the original order. If present, the total shares in the execution section must also be equal to this value.
  • The number of sub-account instances is indicated in NoAllocs <78>.
  • Multiple orders can be combined for allocation by identifying the number of orders in the NoOrders <73> field and each individual order in the OrderID <37> fields. Combined orders must have the same ticker, trade date, settlement date and side.

Pre-Trade Allocation consists of the following steps:

Post-Trade Allocation can be computed via one of two methods:

  1. Using Average Price: Each AllocAccount <79> has a single AllocAvgPx <153>
  2. Using Executed Price: Combination of each AllocAccount <79> and AllocPrice <366> (unique LastPx <31>) (e.g. Japan)

Post-Trade Allocation supports three different message flows:

  1. Buyside initiated without Misc Fees
  2. Buyside-initiated with Misc Fee computation
  3. Sellside-initiated

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)

Structure

Tag Field Name Req'd Comments
<MessageHeader> Y MsgType <35> = J
70 AllocID Y
71 AllocTransType Y
72 RefAllocID N

Required for AllocTransType <71> = 'Calculated', 'Replace', or 'Cancel'

196 AllocLinkID N

Can be used to link two different Allocation <J> messages (each with unique AllocID <70>) together, i.e. for F/X 'Netting' or 'Swaps'

197 AllocLinkType N

Can be used to link two different Allocation <J> messages and identifies the type of link. Required if AllocLinkID <196> is specified.

73 NoOrders Y*

Indicates number of orders to be combined for allocation. If order(s) were manually delivered set to 1 (one).

=> 11 ClOrdID Y*

Order ID assigned by client if order(s) were electronically delivered and executed. If order(s) were manually delivered this field should contain string 'MANUAL'.

=> 37 OrderID N
=> 198 SecondaryOrderID N

Can be used to provide order id used by exchange or executing system.

=> 66 ListID N

Required for List Orders.

=> 105 WaveNo N
124 NoExecs N

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.

=> 32 LastShares N

Number of shares in individual execution. Required if NoExecs <124> > 0

=> 17 ExecID N
=> 31 LastPx N

Price of individual execution. Required if NoExecs <124> > 0

=> 29 LastCapacity N

Can be specified by broker for AllocTransType <71> ='Calculated'

54 Side Y
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

Specifies the month and year of maturity. Required if MaturityDay <205> is specified.

205 MaturityDay N

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.

231 ContractMultiplier N

For Fixed Income, Convertible Bonds, Derivatives, etc. Note: If used, quantities should be expressed in the "nominal" (e.g. contracts vs. shares) amount.

223 CouponRate N

For Fixed Income.

207 SecurityExchange N

Can be used to identify the security.

106 Issuer N
348 EncodedIssuerLen N

Must be set if EncodedIssuer <349> field is specified and must immediately precede it.

349 EncodedIssuer N

Encoded (non-ASCII characters) representation of the Issuer <106> field in the encoded format specified via the MessageEncoding <347> field.

107 SecurityDesc N
350 EncodedSecurityDescLen N

Must be set if EncodedSecurityDesc <351> field is specified and must immediately precede it.

351 EncodedSecurityDesc N

Encoded (non-ASCII characters) representation of the SecurityDesc <107> field in the encoded format specified via the MessageEncoding <347> field.

53 Shares Y

Total number of shares allocated to all accounts

30 LastMkt N

Market of the executions.

336 TradingSessionID N
6 AvgPx Y

For F/X orders, should be the 'all-in' rate (spot rate adjusted for forward points).

15 Currency N

Currency of AvgPx <6>. Should be the currency of the local market or exchange where the trade was conducted.

74 AvgPrxPrecision N

Absence of this field indicates that default precision arranged by the broker/institution is to be used

75 TradeDate Y
60 TransactTime N

Date/time when allocation is generated

63 SettlmntTyp N

Absence of this field is interpreted as Regular

64 FutSettDate N

'Settlement Date'. Required with SettlmntTyp <63> other than regular

381 GrossTradeAmt N

Expressed in same currency as AvgPx <6>. Sum of (AllocShares <80> * AllocAvgPx <153> or AllocPrice <366>).

118 NetMoney N

Expressed in same currency as AvgPx <6>. Sum of AllocNetMoney <154>.

77 OpenClose N
58 Text N
354 EncodedTextLen N

Must be set if EncodedText <355> field is specified and must immediately precede it.

355 EncodedText N

Encoded (non-ASCII characters) representation of the Text <58> field in the encoded format specified via the MessageEncoding <347> field.

157 NumDaysInterest N

Applicable for Convertible Bonds and fixed income

158 AccruedInterestRate N

Applicable for Convertible Bonds and fixed income

78 NoAllocs Y*

Indicates number of allocation groups to follow.

=> 79 AllocAccount Y*

May be the same value as BrokerOfCredit <92> if ProcessCode <81> is step-out or soft-dollar step-out and Institution does not wish to disclose individual account breakdowns to the ExecBroker <76>. Required if NoAllocs <78> > 0. Must be first field in repeating group.

=> 366 AllocPrice N

Used when performing 'executed price' vs. 'average price' allocations (e.g. Japan). AllocAccount <79> plus AllocPrice <366> form a unique Allocs entry. Used in lieu of AllocAvgPx <153>.

=> 80 AllocShares Y
=> 81 ProcessCode N
=> 92 BrokerOfCredit N

Required if ProcessCode <81> is step-out or soft-dollar step-out

=> 208 NotifyBrokerOfCredit N
=> 209 AllocHandlInst N
=> 161 AllocText N

Free format text field related to this AllocAccount <79>

=> 360 EncodedAllocTextLen N

Must be set if EncodedAllocText <361> field is specified and must immediately precede it.

=> 361 EncodedAllocText N

Encoded (non-ASCII characters) representation of the AllocText <161> field in the encoded format specified via the MessageEncoding <347> field.

=> 76 ExecBroker N

Required for step-in and step-out trades

=> 109 ClientID N

Used for firm identification in third-party transactions (should not be a substitute for OnBehalfOfCompID <115>/DeliverToCompID <128>).

=> 12 Commission N
=> 13 CommType N
=> 153 AllocAvgPx N

AvgPx <6> for this AllocAccount <79>. For F/X orders, should be the 'all-in' rate (spot rate adjusted for forward points) for this allocation.

=> 154 AllocNetMoney N

NetMoney <118> for this AllocAccount <79>

((AllocShares <80> * AllocAvgPx <153>) - Commission <12> - sum of MiscFeeAmt <137> + AccruedInterestAmt <159>) if a Sell

((AllocShares <80> * AllocAvgPx <153>) + Commission <12> + sum of MiscFeeAmt <137> + AccruedInterestAmt <159>) if a Buy

=> 119 SettlCurrAmt N

AllocNetMoney <154> in SettlCurrency <120> for this AllocAccount <79> if SettlCurrency <120> is different from 'overall' Currency <15>

=> 120 SettlCurrency N

SettlCurrency <120> for this AllocAccount <79> if different from 'overall' Currency <15>. Required if SettlCurrAmt <119> is specified.

=> 155 SettlCurrFxRate N

Foreign exchange rate used to compute SettlCurrAmt <119> from Currency <15> to SettlCurrency <120>

=> 156 SettlCurrFxRateCalc N

Specifies whether the SettlCurrFxRate <155> should be multiplied or divided

=> 159 AccruedInterestAmt N

Applicable for Convertible Bonds and fixed income

=> 160 SettlInstMode N

Type of Settlement Instructions which will be provided via Settlement Instructions <T> message ('0'=Default, '1'=Standing Instructions, '2'=Specific Allocation Account Overriding, '3'=Specific Allocation Account Standing)

=> 136 NoMiscFees N

Required if any miscellaneous fees are reported. Indicates number of repeating entries. Repeating group within Alloc repeating group.

** Nested Repeating Group follows **

=> => 137 MiscFeeAmt N

Required if NoMiscFees <136> > 0

=> => 138 MiscFeeCurr N

Required if NoMiscFees <136> > 0

=> => 139 MiscFeeType N

Required if NoMiscFees <136> > 0

<MessageTrailer> Y

 

Related Messages