Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lionel Smith-Gordon Use of Asset in AssetCriteria #3228

27 changes: 27 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,29 @@

# _Product Model - Asset Refactoring in AssetCriteria_

_Background_

The Asset Refactoring initiative (see https://github.com/finos/common-domain-model/issues/2805) is seeking to improve the Product Model to address some long-standing issues and to ensure the continued extensibility to additional financial products and markets. A proposal has been agreed - through a cross-industry Task Force - to implement this remodelling in the CDM.

This release includes some additional functionality (following three planned major tranches of work in CDM 6 to implement the refactored model).

_What is being released?_

AssetCriteria:
- The attribute `assetIdentifier` has been refactored to model an actual asset, specified using the `Asset` choice data type, rather than just an identifier. The attribute name has also been updated to `specificAssets` to make it clear that it is a list of specific assets, all of whom are eligible to be pledged as collateral. The condition on the data type has been updated too.

ListingType:
- The cardinality of the three attributes in the data type `ListingType` (which is used in `AssetCriteria`) has been changed to none-to-many (rather than none or one); the attributes are `exchange`, `sector`, `index`. Without this, it would be only possible to select one of the values.

_Review directions_

The changes can be reviewed in PR: [#3228](https://github.com/finos/common-domain-model/pull/3228)

_Backward-incompatible changes_

This release contains changes that are not backward-compatible:
- All references to the attribute `assetIdentifier` on `AssetCriteria` need to be updated as referenced; the new attribute is `asset`.

# _Mapping Update - InterestRateForwardDebtPriceMappingProcessor updated to handle 'Percentage' quoteUnits_

_Background_
Expand All @@ -15,3 +41,4 @@ _Review directions_
In Rosetta, select the Textual Browser and inspect each of the changes identified above.

The changes can be reviewed in PR: [#3242](https://github.com/finos/common-domain-model/pull/3242)

11 changes: 7 additions & 4 deletions docs/eligible-collateral-representation.md
Original file line number Diff line number Diff line change
Expand Up @@ -220,13 +220,13 @@ type AssetCriteria:
agencyRating AgencyRatingCriteria (0..*)
maturityType MaturityTypeEnum (0..1)
maturityRange PeriodRange (0..1)
assetIdentifier AssetIdentifier (0..*)
specificAssets Asset (0..*)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The design principles impose a singular naming convention even when we are expecting lists of data i.e. specificAsset should be used here. I think adding the 's' on the end makes more sense in this instance.

collateralTaxonomy CollateralTaxonomy (0..*)
domesticCurrencyIssued boolean (0..1)
listing ListingType (0..1)

condition AssetCriteriaChoice:
optional choice collateralAssetType, collateralTaxonomy, assetIdentifier
optional choice collateralAssetType, collateralTaxonomy, specificAssets
```

- `collateralAssetType` Represents a filter based on the asset product
Expand All @@ -244,8 +244,11 @@ type AssetCriteria:
or original maturity.
- `maturityRange` Represents a filter based on the underlying asset
maturity.
- `productIdentifier` Represents a filter based on specific instrument
identifiers (e.g. specific ISINs, CUSIPs etc)
- `specificAssets` Represents a filter based on specific assets which
are acceptable as collateral (e.g. specific securities, loans, equities,
commodities or other assets etc). Assets may be defined using the
`Asset` data type, including by reference to an identifier such
as ISIN, CUSIP, etc.
- `collateralTaxonomy` Specifies the collateral taxonomy, which is
composed of a taxonomy value and a taxonomy source.
- `domesticCurrencyIssued` Identifies that the Security must be
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,20 +181,20 @@ type AssetCriteria: <"Represents a set of criteria used to specify eligible coll
agencyRating AgencyRatingCriteria (0..*) <"Represents an agency rating based on default risk and creditors claim in event of default associated with specific instrument.">
maturityType MaturityTypeEnum (0..1) <"Specifies whether the maturity range is the remaining or original maturity.">
maturityRange PeriodRange (0..1) <"Represents a filter based on the underlying asset maturity.">
assetIdentifier AssetIdentifier (0..*) <"Represents a filter based on specific instrument identifiers (e.g. specific ISINs, CUSIPs etc).">
specificAssets Asset (0..*) <"Represents a filter based on specifically identified assets (eg certain securities, loans, or commodities, etc), including using source identifiers such as CUSIP or ISIN.">
collateralTaxonomy CollateralTaxonomy (0..*) <"Specifies the collateral taxonomy,which is composed of a taxonomy value and a taxonomy source.">
domesticCurrencyIssued boolean (0..1) <"Identifies that the Security must be denominated in the domestic currency of the issuer.">
listing ListingType (0..1) <"Specifies the exchange, index or sector specific to listing of a security.">

condition AssetCriteriaChoice: <"If any are specified, only one of AssetType, CollateralTaxonomy or Asset should exist.">
optional choice collateralAssetType, collateralTaxonomy, assetIdentifier
optional choice collateralAssetType, collateralTaxonomy, specificAssets

type ListingType: <"Specifies a filter based on an underlying corporate financial official listing defined at a stock exchange.">
exchange string (0..1) <"Represents a filter based on the Primary Stock Exchange facilitating the listing of companies, exchange of Stocks, Exchange traded Derivatives, Bonds, and other Securities expressed in ISO standard 10383.">
exchange string (0..*) <"Represents a filter based on the Primary Stock Exchange facilitating the listing of companies, exchange of Stocks, Exchange traded Derivatives, Bonds, and other Securities expressed in ISO standard 10383.">
[metadata scheme]
sector string (0..1) <"Represents a filter based on an industry sector defined under a system for classifying industry types such as Global Industry Classification Standard (GICS) and North American Industry Classification System (NAICS)">
sector string (0..*) <"Represents a filter based on an industry sector defined under a system for classifying industry types such as Global Industry Classification Standard (GICS) and North American Industry Classification System (NAICS)">
[metadata scheme]
index Index (0..1) <"Represents a filter based on an index that measures a stock market, or a subset of a stock market.">
index Index (0..*) <"Represents a filter based on an index that measures a stock market, or a subset of a stock market.">

type EligibleCollateralSpecificationInstruction:
[rootType]
Expand Down
Loading