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:
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:
*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:
*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:
*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)
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
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)
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
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
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
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.
|