Skip to content

Update Qualify_SecurityLending qualification function #4083

@chrisisla

Description

@chrisisla

Background

The Qualify_SecurityLending function expects that a collateralPortfolio -> collateralPosition -> product -> TransferableProduct exists. This is not always going to be the case.

Image

If a trade is against cash then collateralPortfolio -> collateralPosition -> product -> TransferableProduct will hold the details of the cash being used as collateral - so this scenario is fine.

If a trade is against non-cash though, the collateral will be referenced using a schedule/portfolio identifier and thus there will not be a collateralPosition under collateralPortfolio at all, instead we would have a collateralPortfolio -> portfolioIdentifer that will hold the identifier for the collateral pool being used as collateral against this trade.

Proposal

Proposal: Update the function to now just check for the presence of collateral -> collateralPortfolio.

This is generic enough to cover cash (which would be under collateralPortfolio -> collateralPosition -> product -> TransferableProduct ) and non-cash (which would have a collateralPortfolio -> portfolioIdentifier).

Image

Note: We cannot specifically look for a portfolioIdentifer as this may not be present if the non-cash collateral is actually described on the trade itself (which is very unlikely but possible given the structure of the model).

An alternative, more specific, approach would be to check the collateral -> collateralProvisions. If this is "Cash" then we can check for collateralPortfolio -> collateralPosition -> product -> TransferableProduct, and if it is "NonCash" then we can check for collateralPortfolio (and maybe portfolioIdentifier if we feel this is appropriate). I am not convinced we need this level of specificity though.

Compatibility

This affects qualification only so is probably backwards compatible. However, this will alter how implementations view trades so should be considered.

Release

CDM 7

Additional Context

This came out of reviews performed on using the CDM for modelling securities lending trade executions. Non-cash trades were not being qualified correctly so it is important that we correct this qualification function.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status

Closed

Relationships

None yet

Development

No branches or pull requests

Issue actions