-
Notifications
You must be signed in to change notification settings - Fork 104
Description
Background
The Qualify_SecurityLending function expects that a collateralPortfolio -> collateralPosition -> product -> TransferableProduct exists. This is not always going to be the case.
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).
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
Type
Projects
Status