Appendix K (from www.fixtrading.org)

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:

 

à

New Order-Single (OrderQty=35000, NoAllocs=2, AllocAccount=ACCT1, AllocShares=10000, AllocAccount=ACCT2, AllocShares=25000)

 

 

ß

Execution Report (ExecType = �0� [New]

 

Institution

 

 

Broker

 

ß

Execution Report (ExecType = �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:

 

à

Allocation (AllocTransTyp=New)

 

 

ß

AllocationACK (AllocStatus=Received Not Yet Processed)

 

Institution

ß

AllocationACK (AllocStatus=Accepted or Rejected)

Broker

 

à

Settlement Instructions (optional) (SettlInstSource=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:

 

à

Allocation (AllocTransTyp=Preliminary, AllocAccounts provided without MiscFees or NetMoney)

 

 

ß

AllocationACK (AllocStatus=Received Not Yet Processed)

 

Institution

ß

Allocation (AllocTransTyp=Calculated, MiscFees and NetMoney provided by AllocAccount)

Broker

 

à

AllocationACK (AllocStatus=Received Not Yet Processed)

 

 

à

AllocationACK (AllocStatus=Accepted or Rejected)

 

 

à

Settlement Instructions (optional*) (SettlInstSource=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:

 

ß

Allocation (AllocTransTyp=Calculated without preliminary, MiscFees and NetMoney provided by AllocAccount)

 

 

à

AllocationACK (AllocStatus=Received Not Yet Processed)

 

Institution

à

AllocationACK (AllocStatus=Accepted or Rejected)

Broker

 

à

Settlement Instructions (optional*) (SettlInstSource=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

 

 

ß

Execution Report (ExecType = �0� [New]

 

 

 

 

 

 

ß

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

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

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

 

Allocate

 

 

 

 

à

Allocation (AllocTransTyp=New)

 

 

 

 

 

 

ß

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

 

 

 

 

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

AllocAccount

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

 

 

ß

Execution Report (ExecType = �0� [New]

 

 

 

 

 

 

ß

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

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

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

 

Allocate

 

 

 

 

à

Allocation (AllocTransTyp=New)

 

 

 

 

 

 

ß

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

 

 

 

 

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

 

 

ß

Execution Report (ExecType = �0� [New]

 

 

 

 

 

 

ß

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

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

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

 

Allocate

 

 

 

 

à

Allocation (AllocTransTyp=Preliminary, AllocAccounts provided without MiscFees or NetMoney)

 

 

ß

AllocationACK (AllocStatus=Received Not Yet Processed)

 

 

 

 

Commission/Fee Calc

 

ß

Allocation (AllocTransTyp=Calculated, MiscFees and NetMoney provided by AllocAccount)

 

 

à

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

 

 

ß

Execution Report (ExecType = �0� [New]

 

 

 

 

 

 

ß

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

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

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

 

Allocate

 

 

 

 

à

Allocation (AllocTransTyp=Preliminary, AllocAccounts provided without MiscFees or NetMoney)

 

 

ß

AllocationACK (AllocStatus=Received Not Yet Processed)

 

 

 

 

Commission/Fee Calc

 

ß

Allocation (AllocTransTyp=Calculated, MiscFees and NetMoney provided by AllocAccount)

 

 

à

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=1)

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

 

 

ß

Execution Report (ExecType = �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 (AllocTransTyp=Calculated without preliminary, MiscFees and NetMoney provided by AllocAccount)

 

 

à

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

 

 

 

 

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

 

 

ß

Execution Report (ExecType = �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 (AllocTransTyp=Calculated without preliminary, MiscFees and NetMoney provided by AllocAccount)

 

 

à

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

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.