Skip to content

Commit b5f92c7

Browse files
Chuks-AjehOscar-TwomeyCDM-ReleaseManagement-OTPayalKhanna
authored
[7dev] Oscar Twomey Asset Model - Adding Redemption Attribute to Debt Type (#4447)
* Asset Model - Adding Redemption Attribute to Debt Type * Spelling corrections * update RELEASE.md + expectations * Update RELEASE.md --------- Co-authored-by: Oscar Twomey <oscar.twomey@regnosys.com> Co-authored-by: CDM-ReleaseManagement-OT <oscar.twomey+cdm@regnosys.com> Co-authored-by: payal.khanna <payal.khanna@regnosys.com>
1 parent 1a4bca1 commit b5f92c7

File tree

3 files changed

+34
-17
lines changed

3 files changed

+34
-17
lines changed

RELEASE.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1-
# *Ingestion Framework for FpML - Mapping Coverage: Credit, Equity and Commodity*
2-
1+
# _Asset Model - Adding Redemption Attribute to Debt Type_
32
_Background_
43

5-
Ingestion functions for FpML Confirmation to CDM have mapping coverage gaps for some products or test packs compared to the legacy Synonym mapping coverage. For further information, see [#4260](https://github.com/finos/common-domain-model/issues/4260).
4+
There are several values in the the `DebtClassEnum` relating to the redemption of the debt which could be more granular and composable. There are 4 attributes representing unique combinations for `IssuerConvertible`, `HolderConvertible`, `IssuerExchangeable`, `HolderExchangeable`. However, these could be represented using separate enums and conditions within DebtType. This would also remove the additional Convertible attribute.
65

76
_What is being released?_
87

9-
This release maps Credit, Equity and Commodity products, as per [#4453](https://github.com/finos/common-domain-model/issues/4453), [#4454](https://github.com/finos/common-domain-model/issues/4454) and [#4455](https://github.com/finos/common-domain-model/issues/4455).
8+
Created a DebtRedemption type
9+
- Added `redemptionType` attribute with type `RedemptionTypeEnum`
10+
- Added `putCall` attribute with type `PutCallEnum`
11+
- Added `party` attribute with type `RedemptionPartyEnum`
1012

11-
- Mapping support added for `AssetIdTypeEnum` values `Name` and `REDID` for FpML Credit products
12-
- Mapping of price per option updated for FpML Equity products
13-
- Mapping of `id` to `CommodityPayout` for FpML Commodity products
13+
Created 2 new enums
14+
- `RedemptionTypeEnum` with values Convertible, Exchangeable, ContingentConvertible, Sinkable, Extraordinary
15+
- `RedemptionPartyEnum` with values Holder and Issuer
1416

1517
_Review Directions_
1618

17-
Changes can be reviewed in PR: [#4456](https://github.com/finos/common-domain-model/pull/4456)
19+
The changes can be reviewed in PR: [#4447](https://github.com/finos/common-domain-model/pull/4447)

rosetta-source/src/main/rosetta/base-staticdata-asset-common-enum.rosetta

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -293,14 +293,9 @@ enum MaturityTypeEnum: <"Represents an enumeration list to identify the Maturity
293293
FromIssuance <"Denotes a period from issuance date until now.">
294294

295295
enum DebtClassEnum: <"Represents an enumeration list that identifies the type of debt.">
296-
Convertible <"Identifies a debt instrument that can be converted into common shares.">
297296
RegCap <"Identifies a debt instrument as one issued by financial institutions to count towards regulatory capital, including term and perpetual subordinated debt, contingently convertible and others. Excludes preferred share capital.">
298297
Structured <"Identifies a debt instrument athat has non-standard interest or principal features, with full recourse to the issuer.">
299298
Vanilla <"Identifies a debt instrument that has a periodic coupon, a defined maturity, and is not backed by any specific asset. The seniority and the structure of the income and principal payments can optionally be defined in DebtType.DebtEconomics.">
300-
HolderConvertible <"Identifies a debt instrument that can be converted primarily at the election of the holder into common shares of the Issuer.">
301-
HolderExchangeable <"Identifies a debt instrument that can be converted primarily at the election of the holder into common shares of a party other than the Issuer.">
302-
IssuerConvertible <"Identifies a debt instrument that can be converted at the election of the Issuer into common shares of the Issuer. Also known as reverse convertible.">
303-
IssuerExchangeable <"Identifies a debt instrument that can be converted at the election of the Issuer into common shares of a party other than the Issuer. Also known as reverse exchangeable.">
304299

305300
enum SecuredTypeEnum: <"Specifies the type of secured debt.">
306301
AssetBacked <"Debt instrument with periodic income payments and value derived from or backed by a specified pool of underlying assets.">
@@ -355,6 +350,17 @@ enum DebtPrincipalEnum: <"Represents an enumeration list that specifies the gene
355350
OtherStructured <"Denotes that the principal on the debt is calculated with reference to other underlyings (not being floating interest rates, inflation rates or indices) or with a non-linear relationship to floating interest rates, inflation rates or indices.">
356351
PrincipalOnly <"Denotes a stripped bond representing only the principal component.">
357352

353+
enum RedemptionTypeEnum: <"Specifies the contractual redemption or conversion features associated with a debt security.">
354+
Convertible <"Specifies a debt instrument that can be converted into common shares.">
355+
Exchangeable <"Specifies a debt security that can be converted to equity in a company other than the issuing company.">
356+
ContingentConvertible <"Specifies a debt security that can be converted into equity if a pre-defined trigger event occurs.">
357+
Sinkable <"Specifies a debt security that requires the issuer to periodically set aside money to buy back portions of the debt.">
358+
Extraordinary <"Specifies a debt security that can be redeemed early if certain extraordinary events occur.">
359+
360+
enum RedemptionPartyEnum: <"Specifies the redeeming party of a debt security.">
361+
Holder <"Specifies the holder of a debt security.">
362+
Issuer <"Specifies the issuer of a debt security.">
363+
358364
enum AssetTypeEnum: <"Represents an enumeration list to identify the asset type.">
359365
Security <"Indentifies negotiable financial instrument of monetary value with an issue ownership position.">
360366
Cash <"Indentifies cash in a currency form.">

rosetta-source/src/main/rosetta/base-staticdata-asset-common-type.rosetta

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -223,15 +223,24 @@ type EquityType:
223223
if equityType <> EquityTypeEnum -> DepositaryReceipt
224224
then depositaryReceipt is absent
225225

226-
type DebtType: <"Specifies the type of debt instrument.">
227-
debtClass DebtClassEnum (0..1) <"Specifies the characteristics of a debt instrument.">
228-
debtEconomics DebtEconomics (0..*) <"Specifies selected financial terms of a debt instrument.">
226+
type DebtType: <"Specifies the type of debt security.">
227+
debtClass DebtClassEnum (0..1) <"Specifies the characteristics of a debt security.">
228+
debtEconomics DebtEconomics (0..*) <"Specifies selected financial terms of a debt security.">
229229

230-
type DebtEconomics: <"Specifies selected economics of a debt instrument.">
230+
type DebtEconomics: <"Specifies selected economics of a debt security.">
231231
seniority DebtSeniorityEnum (0..1) <"Specifies the order of repayment in the event of a sale or bankruptcy of the issuer or a related party (eg guarantor).">
232232
interest DebtInterestEnum (0..1) <"Specifies the general rule for periodic interest rate payment.">
233233
principal DebtPrincipalEnum (0..1) <"Specifies the general rule for repayment of principal.">
234234
secured SecuredDebt (0..1) <"Specifies the type of secured debt.">
235+
redemption DebtRedemption (0..1) <"Specifies the general rule for redemption of a debt security.">
236+
237+
type DebtRedemption: <"Specifies the redemption features and whether the redemption right is exercised at the discretion of the issuer or the holder.">
238+
redemptionType RedemptionTypeEnum (0..1) <"Specifies the contractual redemption or conversion features associated with a debt security.">
239+
putCall PutCallEnum (0..1) <"Specifies the embedded option feature of a debt security.">
240+
party RedemptionPartyEnum (0..1) <"Specifies whether the debt security is redeemed at the election of the Issuer/Holder.">
241+
242+
condition ConvertibleExchangablePartyElectionExists: <"A type of redemption must be specified if the redeeming party is specified.">
243+
if party exists then redemptionType exists or putCall exists
235244

236245
type SecuredDebt:
237246
securedType SecuredTypeEnum (0..1) <"Specifies the type of secured debt product.">

0 commit comments

Comments
 (0)