Appendix K

Example Usage of Allocations

The Allocation message provides the the ability to specify how an order or set of orders should be subdivided amongst one or more accounts.

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.

Orders involving Pre-Trade Allocation consist of the following steps:

  • Buyside sends a New Order request message specifying one or more AllocAccount and AllocShares values within the repeating group designated by NoAllocs.
  • Sellside sends Execution Report messages for the “New” and resulting fills.
  • Post-Trade Allocation messaging takes place.

The typical flow for Pre-Trade allocation is as follows:

Institution  New Order-Single <D> (OrderQty <38>=35000, NoAllocs <78>=2, AllocAccount <79>=ACCT1, AllocShares <80>=10000, AllocAccount=ACCT2, AllocShares=25000) Broker
 Execution Report (ExecType = “0” [New]

Execution Report <8> (ExecType <150> ='1') [Partial Fill]

Execution Report (ExecType ='2') [Filled]

(optional Execution Report (ExecType ='3') [Done for day]

Post-Trade Allocation Processing (see examples below)

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

1. Using Average Price: Each AllocAccount has a single AllocAvgPx (e.g. US and European) (see examples 1-1, 2-1, 3-1)

2. Using Executed Price: Combination of each AllocAccount and AllocPrice (unique LastPx) (e.g. Japan) (see examples 1-2, 2-2, 3-2)

Post-Trade Allocation supports three different message flows:

1. Buyside initiated without Misc Fees (see examples 1-1 and 1-2)

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

Institution  Allocation <J> (AllocTransTyp <71>=New) Broker
 AllocationACK <P> (AllocStatus <87>=Received Not Yet Processed)
 AllocationACK (AllocStatus=Accepted or Rejected)
 Settlement Instructions <T> (optional) (SettlInstSource <165>=Institution’s)
 Settlement Instructions (optional) (SettlInstSource=Broker’s)

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

2. Buyside-initiated with Misc Fee computation (see examples 2-1 and 2-2)

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

Institution  Allocation <J> (AllocTransTyp <71>=Preliminary, AllocAccounts provided without MiscFees or NetMoney) Broker
 AllocationACK <P> (AllocStatus <87>=Received Not Yet Processed)
 Allocation (AllocTransTyp=Calculated, MiscFees and NetMoney provided by AllocAccount)
 AllocationACK (AllocStatus=Received Not Yet Processed)
 AllocationACK (AllocStatus=Accepted or Rejected)
 Settlement Instructions <T> (optional*) (SettlInstSource <165>=Institution’s)
 Settlement Instructions (optional*) (SettlInstSource=Broker’s)

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

3. Sellside-initiated (see examples 3-1 and 3-2)

The typical flow for sellside-initiated (unsolicited by the buyside) is as follows:

Institution  Allocation <J> (AllocTransTyp <71>=Calculated without preliminary, MiscFees and NetMoney provided by AllocAccount) Broker
 AllocationACK <P> (AllocStatus <87>=Received Not Yet Processed)
 AllocationACK (AllocStatus=Accepted or Rejected)
 Settlement Instructions <T> (optional*) (SettlInstSource <165>=Institution’s)
 Settlement Instructions (optional*) (SettlInstSource=Broker’s)

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

Example 1-1: Buyside-initiated flow without MiscFee computation, using Average Price (all AllocAccounts with same AvgPx)

BUYSIDE SELLSIDE
 New Order-Single <D>
 Execution Report <8> (ExecType <150> ='0') [New]

Execution Report (ExecType ='1') [Partial Fill]

Execution Report (ExecType ='2') [Filled]

(optional Execution Report (ExecType ='3') [Done for day]

Allocate
 Allocation <J> (AllocTransTyp <71>=New)
 AllocationACK <P> (AllocStatus <87>=Received Not Yet Processed)
 AllocationACK (AllocStatus=Accepted or Rejected)

 

Symbol B/S Mkt Order Message Execution Rpt Messages
Account OrdID ClOrdID ExecID LastPx LastShares
IBM Buy N 520 20 300 100.00 3000
301 100.25 1000
302 100.00 3000
303 100.50 2000

Allocation Msg:

Symbol B/S Mkt Order section AvgPx Repeating fields Repeating fields
ID OrdID ClOrdID ExecID LastPx LastShares AllocPrice AllocShares Commission
IBM Buy N 999 520 20 100.1389 300 100.00 3000 F1 3000 150
301 100.25 1000 F2 3000 150
302 100.00 3000 F3 3000 150
303 100.50 2000

Example 1-2: Buyside-initiated flow without MiscFee computation, using Executed Price

BUYSIDE SELLSIDE
 New Order-Single <D>
 Execution Report <8> (ExecType <150> ='0') [New]

Execution Report (ExecType ='1') [Partial Fill]

Execution Report (ExecType ='2') [Filled]

(optional Execution Report (ExecType ='3') [Done for day]

Allocate
 Allocation <J> (AllocTransTyp <71>=New)
 AllocationACK <P> (AllocStatus <87>=Received Not Yet Processed)
 AllocationACK (AllocStatus=Accepted or Rejected)

 

Symbol B/S Mkt Order Message Execution Rpt Messages
Account OrdID ClOrdID ExecID LastPx LastShares
IBM Buy N 520 20 300 100.00 3000
301 100.25 1000
302 100.00 3000
303 100.50 2000

Allocation Msg:

Symbol B/S Mkt Order section Repeating fields Repeating fields
ID OrdID ClOrdID ExecID LastPx LastShares AllocAccount AllocPrice AllocShares Commission
IBM Buy N 999 520 20 300 100.00 3000 F1 100.00 2000 100
301 100.25 1000 F1 100.25 1000 50
302 100.00 3000 F2 100.00 2000 100
303 100.50 2000 F2 100.50 1000 50
F3 100.00 2000 100
F3 100.50 1000 50

Example 2-1: Buyside-initiated flow with MiscFee computation, using Average Price (all AllocAccounts with same AvgPx)

BUYSIDE SELLSIDE
 New Order-Single <D>
 Execution Report <8> (ExecType <150> ='0') [New]

Execution Report (ExecType ='1') [Partial Fill]

Execution Report (ExecType ='2') [Filled]

(optional Execution Report (ExecType ='3') [Done for day]

Allocate
 Allocation <J> (AllocTransTyp <71>=Preliminary, AllocAccounts provided without MiscFees or NetMoney)
 AllocationACK <P> (AllocStatus <87>=Received Not Yet Processed)
Commission/Fee Calc
 Allocation (AllocTransTyp=Calculated, MiscFees and NetMoney provided by AllocAccount <79>)
 AllocationACK (AllocStatus=Received Not Yet Processed)
 AllocationACK (AllocStatus=Accepted or Rejected)

 

Symbol B/S Mkt Order Message Execution Rpt Messages
Account OrdID ClOrdID ExecID LastPx LastShares
HNS.L Buy L 520 20 300 3.9809 100000
301 3.9809 25000

Allocation Msg:

Symbol B/S Mkt Order section Repeating fields Repeating fields
ID OrdID ClOrdID ExecID LastPx LastShares AllocAccount AllocShares Commission Repeating fields (NoMiscFees=2)
HNS.L Buy L 999 520 20 300 3.9809 100000 MiscFeeType MiscFeeAmt
301 3.9809 25000 F1 42200 335.988 5 830.9699
6 .25
F2 82800 652.937 5 1648.0926
6 .25

Example 2-2: Buyside-initiated flow with MiscFee computation, using Executed Price

BUYSIDE SELLSIDE
 New Order-Single <D>
 Execution Report <8> (ExecType <150> ='0') [New]

Execution Report (ExecType ='1') [Partial Fill]

Execution Report (ExecType ='2') [Filled]

(optional Execution Report (ExecType ='3') [Done for day]

Allocate
 Allocation <J> (AllocTransTyp <71>=Preliminary, AllocAccounts provided without MiscFees or NetMoney)
 AllocationACK <P> (AllocStatus <87>=Received Not Yet Processed)
Commission/Fee Calc
 Allocation (AllocTransTyp=Calculated, MiscFees and NetMoney provided by AllocAccount <79>)
 AllocationACK (AllocStatus=Received Not Yet Processed)
 AllocationACK (AllocStatus=Accepted or Rejected)

 

Symbol B/S Mkt Order Message Execution Rpt Messages
Account OrdID ClOrdID ExecID LastPx LastShares
1234 Buy T 520 20 300 1300 3000
301 1313 1000
302 1300 3000
303 1320 2000

Allocation Msg:

Symbol B/S Mkt Order section Repeating fields Repeating fields
ID OrdID ClOrdID ExecID LastPx LastShares AllocAccount AllocPrice AllocShares Commission Repeating fields (NoMiscFees=2)
1234 Buy T 999 520 20 300 1300 3000 MiscFeeType MiscFeeAmt
301 1313 1000 F1 1300 2000 25061 9 1253
302 1300 3000 F1 1313 1000 12656 9 632
303 1320 2000 F2 1300 2000 25058 9 1252
F2 1320 1000 12722 9 636
F3 1300 2000 25058 9 1252
F3 1320 1000 12722 9 636

Note: This example’s values are for a Japanese Domestic Trade, and for actual use, you need to set any other required fields.

Example 3-1: Sellside-initiated flow, single Account, using Average Price

BUYSIDE SELLSIDE
 New Order-Single <D>
 Execution Report <8> (ExecType <150> ='0') [New]

Execution Report (ExecType ='1') [Partial Fill]

Execution Report (ExecType ='2') [Filled]

(optional Execution Report (ExecType ='3') [Done for day]

Allocate
Commission/Fee Calc
 Allocation <J> (AllocTransTyp <71>=Calculated without preliminary, MiscFees and NetMoney provided by AllocAccount <79>)
 AllocationACK <P> (AllocStatus <87>=Received Not Yet Processed)
 AllocationACK (AllocStatus=Accepted or Rejected)

 

Symbol B/S Mkt Order Message Execution Rpt Messages
Account OrdID ClOrdID ExecID LastPx LastShares
IBM Buy N F1 520 20 300 1300 3000
301 1313 1000
302 1300 3000
303 1320 2000

Allocation Msg:

Symbol B/S Mkt Order section AvgPx Repeating fields Repeating fields
ID OrdID ClOrdID ExecID LastPx LastShares AllocAccount AllocShares Commission
IBM Buy N 999 520 20 1305.889 300 1300 3000 F1 9000 113277
301 1313 1000
302 1300 3000
303 1320 2000

Example 3-2: Sellside-initiated flow, single Account, using Executed Price

BUYSIDE SELLSIDE
 New Order-Single <D>
 Execution Report <8> (ExecType <150> ='0') [New]

Execution Report (ExecType ='1') [Partial Fill]

Execution Report (ExecType ='2') [Filled]

(optional Execution Report (ExecType ='3') [Done for day]

Allocate
Commission/Fee Calc
 Allocation <J> (AllocTransTyp <71>=Calculated without preliminary, MiscFees and NetMoney provided by AllocAccount <79>)
 AllocationACK <P> (AllocStatus <87>=Received Not Yet Processed)
 AllocationACK (AllocStatus=Accepted or Rejected)

 

Symbol B/S Mkt Order Message Execution Rpt Messages
Account OrdID ClOrdID ExecID LastPx LastShares
1234 Buy T F1 520 20 300 1300 3000
301 1313 1000
302 1300 3000
303 1320 2000

Allocation Msg:

Symbol B/S Mkt Order section Repeating fields Repeating fields
ID OrdID ClOrdID ExecID LastPx LastShares AllocAccount AllocPrice AllocShares Commission Repeating fields (NoMiscFees=1)
1234 Buy T 999 520 20 300 1300 3000 MiscFeeType MiscFeeAmt
301 1313 1000 F1 1300 6000 61441 9 3072
302 1300 3000 F1 1313 1000 10342 9 517
303 1320 2000 F1 1320 2000 20796 9 1039

Note: This example’s values are for a Japanese Domestic Trade, and for actual use, you need to set any other required fields.