FIX 4.1 : Allocation <J> message

Structure | Related Messages

Description

The allocation record instructs a broker on how to allocate executed shares to sub-accounts. The allocation record 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 record can be sent by the broker to communicate fees and other details which can only be computed once the sub-account breakdowns are known.

An Allocation <J> message can be submitted as preliminary, calculated, 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. Replacement Allocation <J> 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.

The allocation record contains repeating fields for each order, sub-account and individual execution. The repeating fields are shown below marked with => . The field's relative position in the record 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.

The typical flow for US domestic trading (without MiscFees) is as follows:

Institution Allocation <J> (AllocTransType <71> ='0' (New)) Broker
Allocation ACK <P> (AllocStatus <87> ='3' (Received Not Yet Processed))
Allocation ACK <P> (AllocStatus <87> ='0' (Accepted) or '1' (Rejected))
Settlement Instructions <T> (optional) (SettlInstSource <165> ='2' (Institution's))
Settlement Instructions <T> (optional) (SettlInstSource <165> ='1' (Broker's))

The typical flow for international trading (with MiscFees) is as follows:

Institution Allocation <J> (AllocTransType <71> ='3'(Preliminary),
AllocAccount <79> provided without MiscFees or NetMoney <118>)
Broker
Allocation ACK <P> (AllocStatus <87> ='3' (Received Not Yet Processed))
Allocation <J> (AllocTransType <71> ='4' (Calculated),
MiscFees and NetMoney <118> provided by AllocAccount <79>)
Allocation ACK <P> (AllocStatus <87> ='3' (Received Not Yet Processed))
Allocation ACK <P> (AllocStatus <87> ='0' (Accepted) or '1' (Rejected))
Settlement Instructions <T> (optional*) (SettlInstSource <165> ='2' (Institution's))
Settlement Instructions <T> (optional*) (SettlInstSource <165> ='1' (Broker's))

*Settlement Instructions <T> may occur anywhere in the flow and may represent standing instructions.

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 record groups to follow. Absence of this field indicates that no individual execution records 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> ='4' (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

For Options or Futures to specify the month and year of maturity.

205 MaturityDay N

For Options or Futures and 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.

207 SecurityExchange N

Can be used to identify the security.

106 Issuer N
107 SecurityDesc N
53 Shares Y

Total number of shares allocated to all accounts

30 LastMkt N

Market of the executions.

6 AvgPx Y

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

15 Currency N

Currency <15> 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

Required with SettlmntTyp <63> other than regular

118 NetMoney N

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

77 OpenClose N
58 Text N
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>

=> 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 <58> field related to this AllocAccount <79>

=> 76 ExecBroker N

Required for step-in and step-out trades

=> 109 ClientID N

Used for firm identification in third-party transactions.

=> 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 (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.

=> => 137 MiscFeeAmt N

Required if NoMiscFees <136> > 0

=> => 138 MiscFeeCurr N

Required if NoMiscFees <136> > 0

=> => 139 MiscFeeType N

Required if NoMiscFees <136> > 0 (can only occur once within a MiscFee group)

<MessageTrailer> Y

 

Note: Req'd = "Y*" indicates that the field is not required for AllocTransType <71> ='2' (Cancel)

Related Messages