Allocation (MsgType = J, FIXML = Allocation)

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 (J) 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 instance without affecting the entire Allocation (J) messge). 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 are indented 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:

  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 of FIX Specification for more examples and details.

Tag Field Name FIXML Req'd Comments
<Standard Message Header> Y MsgType = J
70 AllocID AllocID Y
71 AllocTransType AllocTransType Y
72 RefAllocID RefAllocID C Required for AllocTransType (71) = Calculated, Replace, or Cancel
196 AllocLinkID 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 AllocLinkType C Can be used to link two different Allocation (J) messages and identifies the type of link. Required if AllocLinkID (196) is specified.
73 NoOrders NoOrders C Indicates number of orders to be combined for allocation. If order(s) were manually delivered set to 1 (one). Not required for AllocTransType (71) =Cancel
=> 11 ClOrdID ClOrdID C 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 OrderID N
=> 198 SecondaryOrderID SecondaryOrderID N Can be used to provide order id used by exchange or executing system.
=> 66 ListID ListID N Required for List Orders.
=> 105 WaveNo WaveNo N
124 NoExecs NoExecs C 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 LastShares C Number of shares in individual execution. Required if NoExecs (124) > 0
=> 17 ExecID ExecID N
=> 31 LastPx LastPx C Price of individual execution. Required if NoExecs (124) > 0
=> 29 LastCapacity LastCapacity N Can be specified by broker for AllocTransType (71) =Calculated
54 Side Side Y
55 Symbol Symbol Y
65 SymbolSfx SymbolSfx N
48 SecurityID SecurityID N
22 IDSource IDSource N
167 SecurityType 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 MonthYear C Specifies the month and year of maturity. Required if MaturityDay (205) is specified.
205 MaturityDay Day N Can be used in conjunction with MaturityMonthYear (200) to specify a particular maturity date.
201 PutOrCall PutCall C For Options.
202 StrikePrice StrikePx C For Options.
206 OptAttribute OptAttribute N For Options.
231 ContractMultiplier 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 CouponRate N For Fixed Income.
207 SecurityExchange SecurityExch N Can be used to identify the security.
106 Issuer Issuer N
348 EncodedIssuerLen EncodedIssuerLen C Must be set if EncodedIssuer (349) field is specified and must immediately precede it.
349 EncodedIssuer EncodedIssuer C Encoded (non-ASCII characters) representation of the Issuer (106) field in the encoded format specified via the MessageEncoding (347) field.
107 SecurityDesc SecurityDesc N
350 EncodedSecurityDescLen EncodedSecDescLen C Must be set if EncodedSecurityDesc (351) field is specified and must immediately precede it.
351 EncodedSecurityDesc EncodedSecDesc C Encoded (non-ASCII characters) representation of the SecurityDesc (107) field in the encoded format specified via the MessageEncoding (347) field.
53 Shares Shares Y Total number of shares allocated to all accounts
30 LastMkt LastMkt N Market of the executions.
336 TradingSessionID TrdSesID N
6 AvgPx AvgPx Y For F/X orders, should be the "all-in" rate (spot rate adjusted for forward points).
15 Currency Currency N Currency of AvgPx (6) . Should be the currency of the local market or exchange where the trade was conducted.
74 AvgPrxPrecision AvgPxPrecision N Absence of this field indicates that default precision arranged by the broker/institution is to be used
75 TradeDate TradeDate Y
60 TransactTime TransactTime N Date/time when allocation is generated
63 SettlmntTyp Settlement N Absence of this field is interpreted as Regular
64 FutSettDate FutSettDate C "Settlement Date". Required with SettlmntTyp (63) other than regular
381 GrossTradeAmt GrossTradeAmt N Expressed in same currency as AvgPx (6) . Sum of ( AllocShares (80) * AllocAvgPx (153) or AllocPrice (366) ).
118 NetMoney NetMoney N Expressed in same currency as AvgPx (6) . Sum of AllocNetMoney (154) .
77 OpenClose OpenClose N
58 Text Text N
354 EncodedTextLen EncodedTextLen C Must be set if EncodedText (355) field is specified and must immediately precede it.
355 EncodedText EncodedText C Encoded (non-ASCII characters) representation of the Text (58) field in the encoded format specified via the MessageEncoding (347) field.
157 NumDaysInterest NoDaysInterest N Applicable for Convertible Bonds and fixed income
158 AccruedInterestRate AccruedInterestRate N Applicable for Convertible Bonds and fixed income
78 NoAllocs NoAllocs C Indicates number of allocation groups to follow.
=> 79 AllocAccount AllocAcct C 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 AllocShares Y
=> 81 ProcessCode ProcessCode N
=> 92 BrokerOfCredit BrokerOfCredit C Required if ProcessCode (81) is step-out or soft-dollar step-out
=> 208 NotifyBrokerOfCredit NotifyBrokerOfCredit N
=> 209 AllocHandlInst AllocHandInst N
=> 161 AllocText AllocText N Free format text field related to this AllocAccount (79)
=> 360 EncodedAllocTextLen EncodedAllocTextLen C Must be set if EncodedAllocText (361) field is specified and must immediately precede it.
=> 361 EncodedAllocText EncodedAllocText C Encoded (non-ASCII characters) representation of the AllocText (161) field in the encoded format specified via the MessageEncoding (347) field.
=> 76 ExecBroker ExecBroker C Required for step-in and step-out trades
=> 109 ClientID ClientID N Used for firm identification in third-party transactions (should not be a substitute for OnBehalfOfCompID (115) / DeliverToCompID (128) ).
=> 12 Commission CommAmt N
=> 13 CommType CommType N
=> 153 AllocAvgPx 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 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 SettCurrAmt N AllocNetMoney (154) in SettlCurrency (120) for this AllocAccount (79) if SettlCurrency (120) is different from "overall" Currency (15) .
=> 120 SettlCurrency SettCurrency C SettlCurrency (120) for this AllocAccount (79) if different from "overall" Currency (15) . Required if SettlCurrAmt (119) is specified.
=> 155 SettlCurrFxRate SettCurrForexRate N Foreign exchange rate used to compute SettlCurrAmt (119) from Currency (15) to SettlCurrency (120)
=> 156 SettlCurrFxRateCalc SettCurrForexRateCalc N Specifies whether the SettlCurrFxRate (155) should be multiplied or divided
=> 159 AccruedInterestAmt 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 NoMiscFees C Required if any miscellaneous fees are reported. Indicates number of repeating entries. Repeating group within Alloc repeating group. ** Nested Repeating Group follows **
=> => 137 MiscFeeAmt MiscFeeAmt C Required if NoMiscFees (136) > 0
=> => 138 MiscFeeCurr MiscFeeCurr C Required if NoMiscFees (136) > 0
=> => 139 MiscFeeType MiscFeeType C Required if NoMiscFees (136) > 0
<Standard Message Trailer> Y