finos / common-domain-model

The CDM is a model for financial products, trades in those products, and the lifecycle events of those trades. It is an open source standard that aligns data, systems and processes and is available as code in multiple languages for easy implementation across technologies.
Other
141 stars 59 forks source link

Proposed removal of AssetPool and deprecated data types in the Product Model #2966

Closed Oblongs closed 5 months ago

Oblongs commented 5 months ago

Background

The Asset Refactoring initiative (see issue 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 is being developed - through the cross-industry Asset Refactoring Task Force - to implement this remodelling in the CDM (in development, for inclusion in CDM 6.0). Prior to that, this preparatory PR proposes to remove the AssetPool data type, which has been found to be both unused and incorrect, and to remove some additional data types in the Product Model which were previously deprecated. This approach should provide a cleaner implementation path for the remodelling which will be put forward in a subsequent PR.

Proposal

Compatibility

As this release removes multiple attributes and product types, it will not be backwards compatible.

Product Model

In prior versions of the model, the data type IdentifiedProduct was used to differentiate products with an identifier (typically those in public markets) from those without a defined identifier (eg negotiated products). These concepts were updated in release 2.66 when ProductIdentifier was refactored - see the related release note. The related data types were marked with the annotation [deprecated] at that time.

SecurityPayout

SecurityPayout was previously used to model certain securities financing products, for example securities lending transactions and repos on securities. Prior to CDM 4, the modelling used two Payouts, one of these would be an InterestRatePayout representing the payment for the repo or lend, the second being a SecurityPayout to model the underlying product that is being lent or subject to repo.

In CDM 4, ICMA contributed an enhancement which replaced SecurityPayout with AssetPayout; the former was marked with the annotation [deprecated] in the model. The release note documents the changes that resulted in the model at that time.

AssetPool

The term "AssetPool" exists in FpML as part of the modelling of mortgage-backed securities. In a 4.0 release of the CDM, it was noted that the mapping of certain FpML sample files to the CDM was incomplete and the data type AssetPool was created and the corresponding attribute assetPool added to Product (see the release note). However, the recent refactoring has identified that this is, at best, incomplete and does not enable the correct modelling of MBS products. The data type and related attribute have been removed.

Oblongs commented 5 months ago

Link to minutes of the Asset Refactoring Task Force where this issue was discussed: https://github.com/finos/common-domain-model/issues/2909