Cover Distribution

Cover Distribution is the process of allocating clients/members collateral to cover liabilities. Collateral assets that have been deposited are allocated to cover exposures using a defined set of rules, rather than a linear programming algorithm. Cover Distribution includes the identification of which assets are used or unused, any excess collateral and whether a collateral call needs to be generated to cover any shortfall.

The menu actions pertaining to Cover Distribution are:

Cover Distribution Manager: collateral.clearing.CoverDistributionManager

Clearing Member Configuration window: refdata.clearing.ClearingMemberConfigWindow

Liability Group Configuration window: refdata.clearing.LiabilityGroupContextWindow

 

 

1. Using Cover Distribution

The first thing that you must do in order to use Cover Distribution is to set up a Deposit contract. The member firm deposits a pool of assets with the clearing house using this deposit contract. This pool of assets is then used to cover exposures. The Deposit contract enables you to specify certain parameters and rules regarding the collateral that is held in the deposit account. Assets are deposited into a deposit account using a margin call trade.

Once the Deposit contract has been established, a liability contract can be created which is then linked to the deposit contract. These two contracts have a parent/child relationship. The liabilities are contained in the liability contract.  Cover distribution allocates the assets from the deposit account to the liability accounts to cover the exposures using the optimization algorithm.

 

2. Contract Definition

The Deposit and Child contracts are created in the Clearing Member Configuration window. This window is similar to the Margin Call window but there are some added features pertaining specifically to cover distribution.

 

The fields and panels displayed above are described in the section "Defining Margin Call & Clearing Member Contracts".

 

3. Cover Distribution Manager

The major portions of the Cover Distribution Manager are highlighted below.

» The selection criteria is used to filter the clearing member contracts to load as well as selecting the type of cover distribution you would like to perform (intraday or end of day) and the Optimization Configuration to use. The pricing environments used for either type of distribution are designated in the Clearing Member Contract.
» Clearing member contracts are loaded in the results panel and the associated trades are loaded in the Underlyings panel below.
» The Underlyings panel allows you to view the actual margin call details.
» The Used Deposit and Unused Deposit panels are the same whether the parent or the child contract is selected above.
» The Liability panel displays the liabilities on the contract.

 

4. Executing a Cover Distribution

 

Step 1 - Before you load cover distribution contracts, designate filter criteria in the right panel. This criteria may include a variety of things but it must include the type of cover distribution that is desired, either intraday or end of day. The search criteria options are described below. You can also select File > Load Template to load pre-defined search criteria.

Distribution Type selections are populated from two domain values, one for Final Distribution (Collateral.CoverDistribution.Type.Final) and one for Intraday Distribution (Collateral.CoverDistribution.Type.Intraday). Through these domain values, you may configure custom distribution types.

You may display only Intraday distribution types by inputting the desired types in the Collateral.CoverDistribution.Type.Gui.Intraday domain value. If data is in this domain value, it takes priority over the other domains.

 

Step 2 - After search criteria and templates have been selected, you may then load, calculate and/or process the contracts. When any of these buttons is selected, nothing is saved to the database unless a workflow action is executed. A workflow action can be tied to each of these buttons through the Collateral Context window. A workflow action can also be manually executed by clicking the Action drop-down and choosing the desired action. The choices in the list vary depending on the current contract status.

Load: Loads contracts from the database

Calculate: Positions are loaded and priced from underlying trades, liability and headroom are computed

Process: Cover distribution is done and proposed margin calls are generated, apply the action EXECUTE to create the margin call trades

From the Process menu, you may also open the Optimization Configuration window by selecting Configuration.

 

Step 3 - The Margin Call Entry area on the right side of the screen can be configured to display the details of the cover distribution. Some of the relevant details viewable in this area are:

Headroom -the difference between the total collateral and the real liabilities, which is the total liabilities without the excess buffer
Excess Buffer - designated in the Clearing Member Contract
Excess Collateral - the total collateral minus the total liabilities
Total Collateral- total collateral value (in contract currency) available to cover the liabilities
Total Liabilities - the sum of the liabilities which have to be covered
Unused Collateral - the value (in contract currency) of the unused collateral position
Used Collateral - the value (in contract currency) of the collateral used to cover positions
Final Call Amount - the value of the call generated expressed in contract currency

Information displayed in this area can be configured by clicking .

 

Step 4 - The details area at the bottom of the window displays various information about the cover distribution such as allocation information, liability details, as well as used and unused deposit amounts. Some of these panels are described below.

 

NOTE: The information in the Used Deposit and Unused Deposit panels is the same regardless of whether you have selected the deposit or child contract in the table above. The Allocation, Liability, and Underlyings panels will display different information for the deposit and the liability contract.

Which inventory positions are generated is controlled through the InventoryPositions domain value.

 

Which margin call positions are generated is controlled through the MarginCallPositions domain value.

 

NOTE: The subtype of a Cover Distribution trade is controlled by the CoverDistsribution.subType domain. The default domain value is CoverDistribution. If no domain value is specified, the product subtype is set as COLLATERAL or SECURITY, depending on the transfer type.

NOTE: Security and Cash position rounding can be controlled with the following two domains:

Collateral.Position.CashPrecisionRounding

Collateral.Position.SecurityPrecisionRounding

 

4.1 Allocation Panel

 

4.2 Used Deposit Panel

 

4.3 Unused Deposit Panel

 

4.4 Liability Panel

 

5. Cover Distribution Workflow

There is no default workflow supplied with the Collateral Management module. Below is an example of a basic cover distribution workflow. The workflow supports standard Calypso workflow features.

 

You may add or edit workflow rules to suit your business purposes.

» Workflow rules are listed under the domain value workflowrulecollateral
» Workflow statuses are listed under the domain value CollateralStatus
» Workflow actions are listed under the domain value CollateralAction
» You may create custom collateral workflow rules by selecting Collateral in the Type field of the Custom Workflow Rule window.
» If a rule applies at all transitions in the workflow, you may add the rule to the domain mandatoryCollateralrule. Rules added to this domain value apply to each transition of the collateral workflow automatically rather than the rule needing to be added to each transition.
» Each action button in the Cover Distribution Manager can be tied to a collateral workflow action. This can be set up using the Collateral Context window. Please refer to the documentation on that window for details.
» A static data filter can be applied to the entire workflow. The filter must have the suffix _collateralWorkflow.This filter needs to be designated in the collateralWorkflowType domain value. When entering it in the domain, omit the _collateralWorkflow suffix. For example, if the filter is called MyFilter_collateralWorkflow, the domain value is just MyFilter. You must also add the same domain value to the CollateralType domain.

Example:

Create a static data filter MccId1234_collateralWorkflow
Add the domain value MccId1234 to the collateralWorkflowType domain
Add the domain value MccId1234 to the CollateralType domain
Configure workflows for the workflow subtype MccId1234
» You may aggregate the collateral workflows by product and subtype. Selecting a product and subtype under the Workflow heading in the Details panel of the Clearing Member contract will process the contract through the corresponding workflow. The subtype comes from the domain value CollateralType.
» The system checks for an applicable static data filter first, then it looks for the Product/Subtype designation in the Margin Call Contract.

 

The default Cover Distribution workflow rules are described below:

Workflow Rule

Description

CheckCalculatePricing

Returns false if everything has not been correctly priced before cover distribution. Run at that end of the CALCULATE action.

CheckCollateralEligibility

Checks that a margin call trade booked outside the cover distribution manager is valid as far as eligible currencies or securities. This rule also checks security eligibility for clearing service on a child contract. Returns false if the security or currency is not authorized.

CheckFullAllocation

Returns false if the contract is not fully allocated.

Checks both the pending allocations and the executed allocations for validationI pai

CheckProcessPricing

Returns false if everything not priced correctly during processing. (liability currency vs contract currency conversion and call currency vs contract currency conversion)

CheckAvailableDeposit

Returns false if there are insufficient assets in the deposit account

CheckNoCall

Returns true if the required margin is 0.

Execute

Creates margin call trades. Returns false if no allocation is set.

ExecuteUpdate

Creates margin call trades or updates existing trades if possible. Returns false if no allocation is set.

SendNotification

Sends message with type MC_NOTIFICATION

SendStatement

Sends message with type MC_STATEMENT

 

5.1 General Cover Distribution Statuses

 

NONE

When first loading a contract in Cover Distribution Manager, it appears in the status NONE.

 

CALCULATED

Positions have been loaded and priced from underlying trades, liability and headroom has been computed.

 

PROCESSED

Cover Distribution is completed and margin calls have been generated

 

EXECUTED

The action has been saved to the database and if necessary, trade ids have bee created. The Execute workflow rule must be attached to any workflow which results in EXECUTED status.

 

6. Withdrawal and Substitution of Collateral

For Cover Distribution, the Collateral Allocation window is used to initiate a withdrawal or substitution request.

The Deposit panel displays the unused deposits on the contract. The Used Deposit panel displays the used assets which have been allocated to the liability contract. The Liability panel displays the current liabilities for the contract.

The steps to initiate a withdrawal are described below.

 

Step 1 - Either double-click on the Deposit contract or highlight the contract and click Allocate to display the Allocation window.

 

Step 2 - Double-click on the unused asset. Change the direction to Pay and enter the Nominal amount to transfer.

 

Step 3 - Click Apply in the Allocation window. On the Cover Distribution Manager window, a theoretical trade is created in the lower Allocation panel of the deposit contract with a trade id of 0.

 

Step 4 - When the EXECUTE action is applied on the deposit contract, the trade is saved and a trade id is created.

 

» You may double-click on the trade in the Allocation panel to view the trade which shows the return of the amount of the asset to the clearing member.

 

» Reload and Calculate the Deposit contract to view the reduction in the collateral by the trade amount.

 

6.1 Withdrawing a Used Asset

If you wish to withdraw a used asset, for a security, the ISIN must be specified in the lower panel of the Allocation window. Or you may select Cash in the drop-down and specify a currency for a cash withdrawal. Choose a direction (Pay for a withdrawal) and specify an amount to be withdrawn.

After clicking Apply in the Allocation window, re-run the cover distribution process. The process will consider the withdrawal as not available and will attempt to cover the liabilities using other unused assets.

If there are sufficient unused assets to cover the remaining liabilities, then the withdrawal trade will be generated and released. If there are insufficient assets to cover, a call will be generated. The withdrawal trade will be created but it will not be released until sufficient assets are deposited. This is managed by adding the CheckAvailableDeposit message rule to the message workflow. This prevents the withdrawal message from being sent until the required assets are deposited.

 

7. COVER_DISTRIBUTION Scheduled Task

The COVER_DISTRIBUTION scheduled task functions in the same way as Cover Distribution Manager, but through a scheduled task. The attributes of this scheduled task are described below. To view the scheduled task window, from the Calypso Navigator, select Configuration > Scheduled Tasks > Scheduled Tasks.

 

Attribute

Description

Template

Collateral template (Same as File > Load Template in Cover Distribution Manager)

Collateral Context

Select a Collateral Context to use for the cover distribution

Price method

Select to either Price or Reprice

Optimization

Choice of the optimization configuration (Same as Optimizer that can be selected in Cover Distribution Manager)

Type

Indicates whether an intraday or final distribution should be run. Types available for selection come from the domains Collateral.CoverDistribution.Type.ScheduledTask.Intraday and Collateral.CoverDistribution.Type.ScheduledTask.Final.

Action

Corresponds to the actions of the buttons in Cover Distribution Manager with the Load button. Available actions are:

Load and calculate - loads contracts from the database and loads positions of the underlying trades, prices them, computes the liability entries and the constituted margin/headroom
Load calculate and process - same as Load and calculate but also does the cover distribution and generates the calls.

Note: Positions are loaded

Save by user action

If this is set to false, the result of the cover distribution is saved with the workflow preferred action. If it is set to true, the workflow action corresponding to the Action of the scheduled task is used (either Load and calculate or Load calculate and process).

The link between Action and workflow action is defined in the workflow tab of the collateral context.

 

8. Accommodation Charges

Accommodation Charges are charges based on the value of allocated assets. The charge is based on the allocation amount expressed in the liability currency that the cover distribution trade is covering. The amount is expressed in the liability currency and is called Liability Value.

An Accommodation Charge trade (which functions like a simple transfer) is created for each cover distribution of the day. The principal of this trade is the Liability Value.

An Accommodation Charge trade generates two transfers. First, a transfer with the same value date / settle date of the cover distribution trade. The transfer increases the client position at the cover distribution settle date. The transfer amount is the Liability Value. The second transfer is the reversal transfer in the same amount but in the opposite direction for the T+1 business day. This action flattens out the client position on the next business day. (The calendar used must be set at the processing org level.)

The Accommodation Charge trades must be created using the ACCOMMODATION_CHARGE scheduled task. The Accommodation Charge trade window can be viewed from the Cover Distribution Manager by selecting Window > Trade > Accommodation Charge Trade.

 

8.1 Setup

In order to use accommodation charges, you must set up one or many master accounts. These accounts should be designated with AUTO currency account functionality to generate accounts by currency. The accounts will be automatically generated for all available liability currencies.

 

You can then use inventory aggregation functionality to break down an inventory position using different netting keys which are used to define the level that is needed for reporting and calculation purposes. The Netting Configuration window is accessed through the Calypso Navigator by selecting Configuration > Settlements > Netting. The ACCOMMODATION netting type can be added in the nettingType domain. Netting keys are added in the XferAttributes domain.

These netting keys will populate as trade keywords in the accommodation charge trade.

 

8.2 Allocation Attributes

Calypso propagates additional information as allocation attributes and then propagates them at the cover distribution trade level. These allocation attributes are:

LiabilityValue - The amount that needs to be propagated in order to generate the Accommodation Charge trade. This is the principal of the Accommodation Charge trade.
LiabilityCurrency - This currency needs to be propagated in order to generate the Accommodation Charge trade. This is the currency of the LiabilityValue.

 

In the example below, the liability currency is GBP. The cover distribution allocation is in EUR.

The allocation contract value is 1,458,637.50 EUR, the FX rate FX.EUR.GBP is 2. The liability value is then 2,917,275 GBP.

The LiabilityValue and the LiabiltyCurrency are propagated as an allocation attribute and also as a cover distribution trade keyword.

 

Allocation attributes recognized by Calypso are listed under the Collateral Context window.

 

8.3 Scheduled Task: Accommodation Charge Process

The interest or accommodation charge trades are generated by the ACCOMMODATION_CHARGE scheduled task. This scheduled task can process a contract using a specific date range. This allows for running the scheduled task either on a daily basis or once a month.

» You may select a template from the available cover distribution templates. This will load the clearing member configuration.
» If the Start Date and End Date fields are empty, the scheduled task uses the value date to retrieve the cover distribution trades. This process is done on a daily basis.
» If the Start Date and End Date fields are populated, the scheduled task uses the date range to retrieve the last cover distribution trades of each day. The process is done on the dates in the range.
» Because there are liability configurations that will not be eligible for the accommodation charge process, these can be excluded by use of a static data filter. The filter, selected in the Allocation Filter field, can be used to specify which cover distribution trades are eligible for the process.
» When the scheduled task is run, it generates an Accommodation Charge trade. The client transfers are then generated using a specific BOAccommodationChargeHandler by the Transfer Engine.

 

8.4 Accommodation Charge Trade

The Accommodation Charge trade is like a simple transfer trade. Below is an example of an Accommodation Charge trade.

In this type of trade:

PO of the trade is the PO of the cover distribution trade (which is the PO of the related clearing member configuration)
Counterparty of the trade is counterparty of the cover distribution trade (which is the counterparty of the related clearing member configuration)
Trade Transfer Type is either INTEREST_CHARGE if the collateral type is cash or ACCOMMODATION_CHARGE if the collateral type is non-cash
Trade date is the cover distribution trade date (which is the process date of the cover distribution)
Settle date is the cover distribution settle date
Principal amount of the trade is the liability value stored as the LiabilityValue keyword (cover distribution trade keyword, set up in Collateral Context)
Currency of trade is the currency stored as the LiabilityCurrency keyword (cover distribution trade keyword, set up in Collateral Context)

 

Also, the following is populated at the trade keyword level:

MarginCall - the deposit clearing member configuration Id. This is used to recapitalize interest in the margin call position. This should be set up as a netting key.
ContractType - this is the contract type on the related clearing member configuration
CollateralType - if the allocation underlying is cash, the CollateralType is cash. If the allocation underlying is an equity, such as gold, then the CollateralType is Gold. If the allocation underlying is a security, then the CollateralType is the product code of the security.

These are set up as Netting Keys.

 

8.5 Accommodation Charge Product Transfers

There are two cash transfers on Accommodation Charge trades in order to keep a daily record of the used collateral contract value expressed in liability currency. The balance of this position is then used to create the interest bearing trades which carry the accommodation charge amount.

The first transfer increases the client position at the cover distribution settle date. The transfer amount is the liability value.

The second transfer is the reversal transfer in the same amount but in the opposite direction on T+1. The calendar used is set at the PO level.

The transfer types for Accommodation Charge trades with CollateralType of cash are INTEREST_BASIS_AMOUNT and INTEREST_BASIS_AMOUNT_REVERSAL. The transfer types for a non-cash CollateralType are ACC_BASIS_AMOUNT and ACC_BASIS_AMOUNT_REVERSAL.

 

After the cover distribution process, the cover distribution trades will have two transfers that decrease the deposit margin call position and increase the liability contract margin call position.

After executing the ACCOMMODATION_CHARGE scheduled task, an accommodation charge trade is generated.

Using a Settlement Delivery Instruction static data filter on the CollateralType trade keyword, enables the transfers to hit a specific account on which the appropriate interest configuration is set up.

It is then possible to use an inventory position aggregation to break down the account balance by sub-account (trade keyword ContractType) and by clearing service (trade keyword LiabilityName).

 

9. Cover Distribution Manager Search Criteria

Below is a description of the search criteria details in the Cover Distribution Manager.

 

Search Criteria Details

Search Criteria Description

Process Date / Time

Process Date

Defaults to the current date - Effective date of the margin calls.

Collateral Context

Collateral Context

Select a desired Collateral Context configuration to use for the Cover Distribution.

Filter

PO Name

Select a processing organization, or leave empty for all.

LE Name

Select a counterparty, or leave empty for all.

Contract Types

Select a contract type, or leave empty for all.

Contract Groups

You may select a contract group, defined in the Collateral Context Currency Definition panel, to load contracts based on that group currency.

Note: If no group is selected, contracts with different group currencies will be loaded and there could be a mix of currencies in the Remaining Mrg (Group Ccy) column.

Contract Filter

Select a static data filter if desired. Note that clearing services is an available static data filter attribute.

Contract Ids

Select individual contracts, or leave empty for all.

Note: When populated, this filtering criteria overrides any other criteria. Whatever is set in this field, whether they be master contract Ids or child contract Ids, they system will load the entire "group" (master and child).

Status Select a contract status, or leave empty for all.

Cover Distribution

Type

Select either Intraday Distribution or Final Distribution (end of day)

Configuration

You may select an optimization configuration from those that were created in the Collateral Optimization Configuration window. Note that the Optimization Type in the chosen configuration must be Cover Distribution.

 

10. Messages and Notifications

The Calypso Collateral module uses the standard Calypso messaging set up. For detailed information on this setup, please refer to Message Setup in the Calypso Messages documentation.

In the following example, a message type MC_NOTIFICATION is sent when status VALIDATED is reached.

Note in this example, the EventType domain must be updated to reflect the status name, STATUS_COLLATERAL. (In the example below, VALIDATED_COLLATERAL.)

 

10.1 Workflow rule

An alternate way to generate a back office message is using one of the following workflow rules:

SendNotification - Send a message with type MC_NOTIFICATION
SendStatement - Send a message with type MC_STATEMENT

If you choose to generate messages in this manner, the EventType domain name is based on action instead of status, ACTION_COLLATERAL.

 

10.2 Notification Status

Notification statuses are listed under the domain value MarginCall.NotificationStatus.The Notification Status column may be updated manually or by using the following message workflow rule in calypso.

UpdateMarginCallEntryMessageRule - Updates the Margin Call Entry Notification status.

 

11. Collateral Reports

There are five stand-alone reports available for generation through Collateral Manager. The five reports are compatible with the REPORT scheduled task. To select the desired report, select Window > Report. These reports are currently only available through the Collateral Manager window.

 

The available options are:

Margin Call Entry (report type MarginCallEntry) - This is a report of all of the changes that have been made to the contracts

 

Underlying Trades (report type MarginCallDetailEntry) - This report displays all of the underlying trades for the selected contracts.

 

Position (report type MarginCallPositionEntry) - The Position report displays collateral positions held across the contracts as of the collateral distribution date.

 

Position Valuation (report type MarginCallPositionValuation) This report displays the margin call positions and their MTM valuation as of the report date.

 

Allocation (report type MarginCallAllocationEntry) - This displays the allocations made for the contracts.

 

When a Collateral report is generated, it queries the database based on the designated criteria.

 

12. Generating a Margin Call Statement

When a margin call is saved, the system can generate a statement provided a message configuration has been setup. You also need to select the Send Statement checkbox in the Dates & Times panel of the margin call contract.

First, you need to add the value MC_STATEMENT to the messageType domain.

Then, define a message configuration for this message type using Configuration > Messages & Matching > Message Configuration Set-up (menu action refdata.AdviceSetupWindow) as shown below.

Margin call statements will appear in the Task Station under the Messages panel as well as in the Message report.

You can double-click the message to view the actual statement.

Note that this statement uses a default template, and that this template can be customized as applicable. See Help > Message Template Keyword for information on customizing message templates.

» Any column available in the Margin Call Entry Report can be included in a statement using the following pattern:

|REPORT#NameOfColumn|

(An example of this is in the default statement in CollateralStatement.html)

» For summaries (Interest, Allocations, Positions, Underlyings), you are able to use the report template directly. An example of the format for an Allocation summary is:

|ALLOCATIONS#NameOfReportTemplate|

» If a report template is not set or does not exist, the system uses the one defined in the Collateral Context.