Collateral Allocation Optimization
The Trade Allocation Manager uses the Collateral module's optimization framework to accelerate and improve the allocation of certain trades. Collateral optimization allocates collateral by making the best use of the global collateral inventory. The optimization tool can be tailored to adhere to various business or relationship constraints that may need to be taken into account.
The following trades types are supported in the Trade Allocation Manager:
• | MONEY FILL Repo trades in the Repo (not Reverse) direction |
• | FILL SecLending Sec Vs Sec trades in the Sec. Borrowing (not Sec. Lending) direction |
Optimization consists of three main steps:
1. Defining the allocation pool
2. Ordering the trades by applying the Trade Allocation Rules
3. Assigning securities to the trades according to the Collateral Allocation Rules
The Trade Allocation Manager is accessed from Calypso Navigator > Processing > Collateral Management > Trade Allocation Manager (menu action collateral.tradeallocation.TradeAllocationManager
).
You must have the Calypso Collateral module installed to use the Trade Allocation Manager.
Please refer to Calypso Collateral documentation for details.
If you do not have the Collateral module installed, you can manually allocate collaterals using the Money Fill window.
See Allocating a Collateral for details.
You can enter collaterals in bulk via csv upload.
See Repo Collateral Bulk Entry for details.
1. Eligible Trades
The fill type MONEY FILL is used for repos awaiting collateral allocation, while the fill type FILL is used for Sec Vs Sec trades.
The Reverse direction for repos and Sec. Lending direction for Sec Vs Sec trades are not currently supported for optimization.
See Capturing Repo Trades for complete details on repo trade fields.
See Capturing Security Lending Trades for complete details on security lending trade fields.
Ⓘ [NOTE: Fill type is a non-default field for Sec Lending trades and must be added manually from the right-click > Select fields functionality]
If the trade is saved without a collateral, the trade attribute MoneyFillAllocation will be set to PendingAllocation. The Trade Allocation Manager relies on this attribute for loading trades.
MONEY FILL repos can also be entered in bulk from Calypso Navigator > Trade > Security Finance > Bulk Entry.
See Capturing Bulk Entry Trades for details.
Please refer to "Capturing Bulk Entry Trades" in Calypso Equity Derivatives documentation for details.
2. Defining an Optimization Configuration
Before you can load trades in the Trade Allocation Manager, you must have defined an Optimization Configuration.
The Trade Optimization Configuration window is available from the Trade Allocation Manager by selecting Window > Configuration > Optimization Configuration (refdata.optimization.OptimizationConfigurationWindow
).
Optimization Configuration Dependencies
The diagram below shows Optimization Configuration component dependencies. Note that not every component is shown, but only those with dependencies.
2.1 General Panel
The General panel is selected by default.
You can load an existing optimization configuration by selecting Optimization Configuration > Load.
Sample General panel
Fields |
Description |
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Name |
Name of the optimization configuration. |
||||||||||||
Description |
Description of the optimization configuration. |
||||||||||||
Linked configuration |
Not used for Trade Allocation Manager. |
||||||||||||
Optimization Type |
Select TradeAllocation. If the window is opened from the Trade Allocation Manager, this value will be defaulted. Note that if the window is opened from the Collateral Manager, this value will not be available. |
||||||||||||
Solver |
Allocation-Rule is the only option for TradeAllocation. |
||||||||||||
Allocation Type |
Choose between:
|
||||||||||||
Pricing Env |
Select the pricing environment that will be used for allocation (and the subsequent quote set). |
||||||||||||
Currency |
The base currency of the allocations. |
||||||||||||
Optimization Date Offset |
Not used for Trade Allocation Manager. |
||||||||||||
Security Rounding Decimals |
Entering a value in this field allows you to specify the nominal precision for an allocation. Using fractional amounts for the nominal allows you to leave the price unchanged (or minimally changed) to perfectly equal the exposure amount. |
2.2 Target Panel
The Target panel enables you to define the target for the optimization. The target configuration used for MONEY FILL repo allocation is Trade-Allocation-rule. This target type is used specifically for the Allocation-Rule solver which is used only for bilateral collateral management.
When you select this target type, there are two allocation rules that must be defined. The definition of these rules is the basis for the Allocation-Rule solver. The solver addresses these rules in order of the rule and also in order within the rule. Therefore, the priority ordering that is created for these rules is critical to the collateral allocation result.
Sample Target panel
To define a target in your optimization configuration, you must first create a target configuration. Select Util > Target Configuration in the Trade Optimization Configuration window.
You can load an existing target configuration by selecting Target Configuration > Load.
Sample Target Configuration
» | Click New, then enter a name and description for the Target Configuration. |
» | In the Target Type drop down, select Trade-Allocation-rule. |
Note that if the window is opened from the Collateral Manager, this value will not be available.
» | Click ![]() |
You can add multiple rules. You can remove a rule using . Use
to order the priority of the rules.
Repeat this process for Collateral Allocation Rules.
» | Click Save when you are done. |
Trade Allocation Rules
This rule set allows you to specify which trade you would like to allocate first. You may sort trades by principal and/or counterparty. Note that the trades are not sorted visually.
Collateral Allocation Rules
This rule set allows you to specify the collateral allocation order.
Step 1 - You have the ability to designate collateral based on available quantity, category, haircut, currency, and maturity.
» | Select a rule and click Next. |
Step 2
» | If you select Available-Quantity, specify ascending or descending order. This rule takes into account any constraint based on quantity. |
» | If you select Collateral-Category, select a pre-defined target configuration of type "Category" to be used as an order preference for the categories. This is a target used within a target. |
A sample "Category" target for the purpose of MONEY FILL repo allocation is shown below. Each item added in the Categories section is a static data filter for a pre-defined category of collateral. The categories are ordered by priority.
» | If you select Collateral-Currency, select a currency or multiple currencies by which to sort the collateral. The collateral will be sorted by the currencies in the order specified. |
» | Collateral-Haircut allows you to sort the collateral by haircut, either ascending or descending. |
» | If you select Collateral-Maturity, specify ascending or descending order. The collateral will be sorted by the remaining maturity of the securities to be allocated. |
» | Collateral-Source is not used for Trade Allocation Manager. |
Step 3 - Click Apply.
2.3 Functions Panel
Not used for Trade Allocation Manager.
2.4 Substitution Panel
Not used for Trade Allocation Manager.
2.5 Constraint Panel
The Constraint panel allows you to define whether the optimizer should respect certain constraints when calculating the optimal solution.
Constraints may be global. Global means that the constraint applies globally to all trades that are optimized. Whether a constraint is global or not is pre-determined. This is not a selectable field.
Sample Constraint panel
Constraint options for TradeAllocation optimization type
Constraint |
Description |
---|---|
Bond-Maturity |
Using this constraint, you may exclude a bond if the maturity date is occurring in the next n days.
Date Type: Maturity Date is the only option. Days: Enter the number of days for the exclusion. These days are business days, using the security holiday calendar. |
Bond-Min-Purchase |
Excludes a security if the collateral amount is smaller than the "Min. Purchase Amt." value specified on the bond definition. Note that this constraint is currently not supported for manual allocation. |
Cash-Threshold |
Not used for Trade Allocation Manager. |
Clear-Trade-Allocations |
The conditions under which the allocations are cleared and not applied.
Clear Trade-Allocations: Never or If Not Fully Allocated. Select "If Not Fully Allocated" to prevent partial allocations. |
Collateral-Distribution |
Not used for Trade Allocation Manager. |
Collateral-Pool |
Not used for Trade Allocation Manager. |
Coupon |
Excludes a security if a coupon payment is to occur in the next n days.
Date Type: Coupon Date or Record Date. Days: If a coupon payment is to occur under the designated number of days, the security is not used by the optimizer. These days are business days, using the security holiday calendar. |
Dividend |
Excludes a security if a dividend payment is to occur in the next n days.
Date Type: The date type to be considered: Dividend Date or Record Date. Days: If a dividend payment is to occur under the designated number of days, the security is not used by the optimizer. These days are business days, using the security holiday calendar. |
Eligibility-Exclusion |
Allocate securities only if they are not part of the temporary exclusion configuration.
Config Name: Any configuration defined in the Eligibility Exclusion Configuration window. To access this window, in the Trade Optimization Configuration window, select Util > Eligibility Exclusion.
|
Fill-Category |
Indicates that the security to be allocated must be eligible as defined by the Fill Category repo trade field.
|
Fill-Source-Book |
Allocate securities based on the Collateral preferences order, but only the collaterals belonging to the selected book. |
Increment Lot Size |
Not used for Trade Allocation Manager. |
Ⓘ Mandatory constraint Allocate securities that are available on the specified inventory position on the value date defined in the Trade Allocation Manager.
Position Class: Internal, External, Client, or Margin_Call. Position Type: Any position type defined in the Inventory Position such as Actual, Not Settled, Theoretical, Expected, Forecast, etc... Date Type: Available, Booking, Settle, Trade, or Value. Positions based on Books/POs: Books, Processing Orgs, or Book Attribute. Books / Processing Orgs / Book Attribute and Book Value: This field varies based on the selection above. If Books is chosen, the Books field is visible. The positions are loaded based on the values selected in the field. If Processing Org is chosen, the Processing Org field is visible. The positions are loaded based on the selected PO's associated books. If Book Attribute is chosen, the Book Attribute and Book Value fields are visible. The positions are loaded based on the book attributes and their values selected in these fields. Movements: Any balance or movement type defined in the Inventory Position. Constrain Cash: Select to include cash as a constraint. |
|
LegalAgreement-Eligibility |
Indicates that the security to be allocated must be eligible to the Repo Legal Agreement defined on the MONEY FILL repo.
|
Max-Allocation-Number |
Limits the number of allocations per trade to the value specified in the constraint. This constraint is applied after optimization and if not met, it blocks saving the trade.
Value: Maximum number of allocations permitted. Filling: Must be set to No Filling. |
Min-Allocation-Number |
If the minimum is equal to the maximum (see above), the solver will target this precise number of allocations.
Value: Minimum number of allocations permitted. |
Mono-Collateral-Only |
For a given exposure, this constraint filters out any collateral assets with an available value lower than the exposure amount. This ensures that the exposures will either be covered, if possible, by a single collateral asset, or remain uncovered. This constraint is applied on an exposure-by-exposure basis and depends on each exposure amount. |
Repo Principal Adjustment |
The repo trade principal amount will be adjusted post-allocation to exactly match the security all-in money value. |
Required-Collateral |
Ⓘ Mandatory constraint Allocated amount must be equal to the repo trade principal. |
StaticData-Filter |
For the period defined, excludes securities if they match the static data filter selected.
Filter: Select any static data filter available. Start Date: The start date of the exclusion period. End Date: The end date of the exclusion period. |
Trade-Bond-Coupon |
Excludes a security if a bond coupon occurs between the trade start date and end date for a TERM trade, or between the trade start date and callable date for OPEN term trades.
Date Type: The date type to be considered: Coupon Date or Record Date. |
Trade-Bond-Maturity |
Exclude a bond whose maturity is occurring on or before the repo end date. |
Trade-Equity-Dividend |
Excludes a security if a dividend payment is to occur between the trade start date and end date for TERM trades, or between the trade start date and callable date for OPEN term trades.
Date Type: The date type to be considered: Dividend Date or Record Date. |
2.6 Attributes Panel
Not used for Trade Allocation Manager.
3. Allocating Collateral
Choose Calypso Navigator > Processing > Collateral Management > Trade Allocation Manager (menu action collateral.tradeallocation.TradeAllocationManager
to display the Trade Allocation Manager.
Sample Trade Allocation Manager
Below is an overview of the Trade Allocation Manager layout.
• | Selection criteria to load trades are defined in the Collateral Filter panel. |
• | The existing trades with the attribute MoneyFillAllocation set to either 'PendingAllocation' or 'Partially Allocated' are loaded in the Trades panel. |
• | The Trade Details panel displays in a vertical format the details of the trade selected in the Trades panel. |
• | The allocated securities are displayed in the Allocation panel. |
• | The Inventory panel displays eligible positions as defined by the Inventory constraint of the selected Optimization Configuration. |
Click to load the positions. You can right-click a position and select Configure > Configure Columns to configure the columns as needed.
• | If any of the desired panels are not displayed, select Window > Show View to select the panel you wish. |
• | You can save your current layout by selecting Window > Save Layout. |
3.1 Loading the Trades
Only trades with the attribute MoneyFillAllocation set to either 'PendingAllocation' or 'Partially Allocated' will be loaded in the Trades panel. Trades that have a status in the tradeCancelStatus domain will not be loaded.
» | Enter selection criteria to filter the trades that you want to process, then click Load. The selection criteria are described below. You can also select Trade Allocation Manager > Preferences to load pre-defined search criteria via the Template Manager. |
» | You can configure the display and create report templates using the Report, Data, and View menus. |
» | Once the trades are loaded, you can select a trade and click ![]() |
Search Criteria Details
Search Criteria |
Description |
---|---|
Process Date |
Defaults to the current date. Only one day's trades can be processed at a time. Mandatory field. |
Process Time |
Defaults to the current time. |
Trade Filter |
Select a trade filter. Mandatory field. |
Configuration |
Select an optimizer from the those that were created in the Trade Optimization Configuration window. Mandatory field. |
Security Positions |
In addition to the Inventory constraint, you can add further granularity by selecting any inventory position report named with the prefix "Allocation_". |
From the Template Manager, you are able to select a template for the Trade Allocation Manager as well as configure individual fields and templates for the panels. To display the Template Manager, select Allocation Manager > Preferences. From this window, you are able to:
• | Edit a template. |
• | Create a new template by clicking ![]() |
• | Delete a template by selecting it from the left side of the window and clicking ![]() |
• | Make a copy of an existing template by selecting it from the left side of the window and clicking ![]() |
• | Designate a default template by selecting it from the left side of the window and clicking ![]() |
• | Update a template with current window settings by selecting it from the left side of the window and clicking ![]() |
» | To display a template in the Trade Allocation Manager, select the template from the left side of the window and click Select. |
» | When saving a new template, you may designate whether it should be private or public. |
3.2 Optimizing the Collateral
Collaterals are optimized according to the selected Optimization Configuration.
» | Once the trades have been loaded in the Trades panel, select one or several trades and click Optimize. |
» | Select a trade and the optimization results are displayed in the Allocation panel. |
» | You can also manually allocate collateral. See below. |
Manual Allocation
Collateral can be allocated manually using the Inventory and Allocation panels.
» | Select a trade from the Trades panel. |
» | From the Inventory panel, click ![]() |
» | From the Allocation panel, manually adjust the values as needed, totaling the required collateral. |
You can remove a security by selecting it and clicking .
The security selector (product code drop-down and button) are not currently used.
3.3 Processing the Allocation
Once the securities to be allocated have been selected, a trade action must be applied to save the collateral on the trade.
» | From the Trades panel, select the trades to be processed and click Action. |
» | Select an action as appropriate, depending on the trade status and your Trade Workflow. |
The trade action is applied. The collateral is saved on the trade, and the trade attribute MoneyFillAllocation is changed from PendingAllocation to Allocated or Partially Allocated as appropriate.
The name of the Trade Optimization Configuration used is saved in the "Sec. Allocation Config" collateral attribute. It is set at the collateral level and a multi-collateral trade can have a different value per piece of collateral if the allocation is run in multiple rounds.