From c7a136cb9c0b17db80459aa07f536ff061624718 Mon Sep 17 00:00:00 2001 From: JEAN BAPTISTE ZIADE Date: Mon, 3 Feb 2025 15:47:18 +0000 Subject: [PATCH] CorporateActionEvent_Enrichement_FRAGMOS CorporateActionEvent_Enrichement_FRAGMOS --- .../main/rosetta/event-common-enum.rosetta | 106 ++++++++++-------- .../main/rosetta/event-common-type.rosetta | 92 ++++++++++++++- 2 files changed, 147 insertions(+), 51 deletions(-) diff --git a/rosetta-source/src/main/rosetta/event-common-enum.rosetta b/rosetta-source/src/main/rosetta/event-common-enum.rosetta index 159faa0271..976b5ecd36 100644 --- a/rosetta-source/src/main/rosetta/event-common-enum.rosetta +++ b/rosetta-source/src/main/rosetta/event-common-enum.rosetta @@ -26,38 +26,48 @@ enum AssetTransferTypeEnum: <"The qualification of the type of asset transfer."> FreeOfPayment <"The transfer of assets takes place without a corresponding exchange of payment."> enum EventIntentEnum: <"The enumeration values to qualify the intent associated with a transaction event."> - Allocation <"The intent is to allocate one or more trades as part of an allocated block trade."> - CashFlow <"The intent is to designate a stand-alone cash transfer as a result of Trade contracual terms e.g. incurred by payout for instance a Performance Amount or a Floating Rate Amount. The particular CashFlow at stake shall be further specified in priceTransferEnum or transferTypeEnum. For clarity, such intentEnum value shall not be used whenever a cash transfer is not stand-alone but is instead embedded in another Event as part of the composable modelling e.g. Decrease with Fees, Cross-Currency Notional Reset, etc. or any other Event whenever including a cash transfer with other features. For clarity, a principal payment related to a Principal Exhange is excluded as well, because a dedicated intentEnum value exists for this event i.e. PrincipalExchange value."> - Clearing <"The intent is to clear the contract."> - Compression <"The intent is to compress multiple trades as part of a netting or compression event."> - ContractFormation <"The intent is to form a contract from an execution."> - ContractTermsAmendment <"The intent is to amend the terms of the contract through renegotiation."> - CorporateActionAdjustment <"The intent is to take into effect the occurrence of a Corporate Action and the particular Corporate Action at stake shall be further specified in CorporateActionTypeEnum."> - CreditEvent <"The intent is to take into effect the occurrence of a Credit Event."> - Decrease <"The intent is to Decrease the quantity or notional of the contract."> - EarlyTerminationProvision <"The intent is to fully unwind the Trade, as a result of the application of Trade contractual terms (e.g. an obligation to do so before Termination Date as part of any kind of Early Termination terms) as defined within the CDM EarlyTerminationProvision data type. Accordingly, increase and decrease of positions which result from negotiation by the parties shall not be designated by such intentEnum. For clarity, partial exercise of an option before its expiration date is excluded as well, though related to Trade contract terms, because a dedicated intentEnum value exists for this event i.e. OptionExercise value."> - Increase <"The intent is to Increase the quantity or notional of the contract."> - IndexTransition <"The intent is to replace an interest rate index by another one during the life of a trade and add a transition spread on top of this index (and on top of the spreads already defined in the trade, if any). "> - NotionalReset <"The intent is to increase or to decrease the notional of the Trade, in accordance with Notional Reset features e.g. could apply for Cross Currency Swaps, Equity Performance Swaps, etc."> - NotionalStep <"The intent is to increase or to decrease the notional of the Trade, in accordance with Step features attached to a Payout Quantity."> - Novation <"The intent is to novate the contract."> - ObservationRecord <"The intent is to record any kind of stand-alone obervervations e.g. internal data recording, usage of CDM for recording and/or exchanging data as part of pricing 'consensus' processing, etc. For clarity, such intentEnum value shall not be used whenever an observation is not stand-alone but is instead embedded in another Event as part of the composable modelling e.g. CashFlow to which an observation of prices is associated, etc."> - OptionExercise <"The intent is to Exercise a contract that is made of one or several option payout legs. For clarity, such intentEnum value shall not be used whenever an optional right is exercised in relation with a Trade which composition includes other types of payout legs e.g. right to call or to cancel before Termination Date as part of any kind of Early Termination terms other than genuine bermuda or american style features described in option payout. "> - OptionalExtension <"The intent is to extend the trade through exercise of an optional right as defined within the CDM OptionProvision data type."> - OptionalCancellation <"The intent is to cancel the trade through exercise of an optional right as defined within the CDM OptionProvision data type."> - PortfolioRebalancing <"The intent is to rebalance a portfolio, by inserting new derivatives transactions into portfolios of participants to reduce risks linked to those trades. These are offsetting trades that rebalance relationships between different counterparties when it comes to exposure of portfolios to certain types of risk, such as interest rate risk."> - PrincipalExchange <"The intent is to pay or to receive a cash transfer, in accordance with Principal Exchange features."> - Reallocation <"The intent is to reallocate one or more trades as part of an allocated block trade."> - Repurchase <"The intent is to close a repo transaction through repurchase."> + Allocation <"The intent is to allocate one or more trades as part of an allocated block trade."> + CashFlow <"The intent is to designate a stand-alone cash transfer as a result of Trade contracual terms e.g. incurred by payout for instance a Performance Amount or a Floating Rate Amount. The particular CashFlow at stake shall be further specified in priceTransferEnum or transferTypeEnum. For clarity, such intentEnum value shall not be used whenever a cash transfer is not stand-alone but is instead embedded in another Event as part of the composable modelling e.g. Decrease with Fees, Cross-Currency Notional Reset, etc. or any other Event whenever including a cash transfer with other features. For clarity, a principal payment related to a Principal Exhange is excluded as well, because a dedicated intentEnum value exists for this event i.e. PrincipalExchange value."> + Clearing <"The intent is to clear the contract."> + Compression <"The intent is to compress multiple trades as part of a netting or compression event."> + ContractFormation <"The intent is to form a contract from an execution."> + ContractTermsAmendment <"The intent is to amend the terms of the contract through renegotiation."> + CorporateActionAdjustment <"The intent is to take into effect the occurrence of a Corporate Action (the particular Corporate Action at stake shall be further specified in CorporateActionTypeEnum)."> + CreditEvent <"The intent is to take into effect the occurrence of a Credit Event."> + Decrease <"The intent is to Decrease the quantity or notional of the contract."> + EarlyTerminationProvision <"The intent is to fully unwind the Trade, as a result of the application of Trade contractual terms (e.g. an obligation to do so before Termination Date as part of any kind of Early Termination terms) as defined within the CDM EarlyTerminationProvision data type. Accordingly, increase and decrease of positions which result from negotiation by the parties shall not be designated by such intentEnum. For clarity, partial exercise of an option before its expiration date is excluded as well, though related to Trade contract terms, because a dedicated intentEnum value exists for this event i.e. OptionExercise value."> + Increase <"The intent is to Increase the quantity or notional of the contract."> + IndexTransition <"The intent is to replace an interest rate index by another one during the life of a trade and add a transition spread on top of this index (and on top of the spreads already defined in the trade, if any). "> + NotionalReset <"The intent is to update the notional of the Trade, in accordance with Notional Reset features e.g. could apply for Cross Currency Swaps, Equity Performance Swaps, etc."> + NotionalStep <"The intent is to increase or to decrease the notional of the Trade, in accordance with Step features attached to a Payout Quantity."> + Novation <"The intent is to transfer the position to another clearing member, or more generally to another counterparty."> + ObservationRecord <"The intent is to record any kind of stand-alone obervervations e.g. internal data recording, usage of CDM for recording and/or exchanging data as part of pricing 'consensus' processing, etc. For clarity, such intentEnum value shall not be used whenever an observation is not stand-alone but is instead embedded in another Event as part of the composable modelling e.g. CashFlow to which an observation of prices is associated, etc."> + OptionExercise <"The intent is to Exercise a contract that is made of one or several option payout legs. For clarity, such intentEnum value shall not be used whenever an optional right is exercised in relation with a Trade which composition includes other types of payout legs e.g. right to call or to cancel before Termination Date as part of any kind of Early Termination terms other than genuine bermuda or american style features described in option payout. "> + OptionalExtension <"The intent is to extend the trade through exercise of an optional right as defined within the CDM OptionProvision data type."> + OptionalCancellation <"The intent is to cancel the trade through exercise of an optional right as defined within the CDM OptionProvision data type."> + PortfolioRebalancing <"The intent is to rebalance a portfolio, by inserting new derivatives transactions into portfolios of participants to reduce risks linked to those trades. These are offsetting trades that rebalance relationships between different counterparties when it comes to exposure of portfolios to certain types of risk, such as interest rate risk."> + BasketRebalancing <"The intent is to rebalance basket constituents, by inserting new ones and/or removing ones, updating quantity and/or restriking the prices, etc."> + PrincipalExchange <"The intent is to pay or to receive a cash transfer, in accordance with Principal Exchange features."> + Reallocation <"The intent is to reallocate one or more trades as part of an allocated block trade."> + Repurchase <"The intent is to close a repo transaction through repurchase."> + Substitution <"The intent is to subtitute new share to compensate for a prior existing share beign affected by a corporate event, for instance a share-for-share or any other kind of event that may be separatly agreed by the parties. This is quite similar to PortfolioReblancing, yet with Substitution one may expect that the global notional amount of the basket is not affected by the substitution of the shares, that usually coming with formula terms for the purpose of calculating the booking price of the new share e.g. New Share Initial Price = New Share MtM price x ( Old Share Initial Price / Old Share MtM Price )."> + BespokeEvent <"The intent is to represent the occurrence of an event which description is seperatly agreed between the parties and/or described in any referenced agreement (for instance bespoke term described in any string type objects present in most root attributes of Agreement type)."> enum PositionEventIntentEnum: - PositionCreation <"The intent is to form a position from a fully formed contract."> - CorporateActionAdjustment <"The intent is to take into effect the occurrence of a Corporate Action and the particular Corporate Action at stake shall be further specified in CorporateActionTypeEnum."> - Decrease <"The intent is to Decrease the quantity of the position."> - Increase <"The intent is to Increase the quantity of the position."> - Transfer <"The intent is to transfer the position to another clearing member."> - OptionExercise <"The intent is to Exercise a position or part of a position."> - Valuation <"The intent is to update the valuation of the position."> + PositionCreation <"The intent is to form a position from a fully formed contract."> + CorporateActionAdjustment <"The intent is to take into effect the occurrence of a Corporate Action and the particular Corporate Action at stake shall be further specified in CorporateActionTypeEnum."> + Decrease <"The intent is to Decrease the quantity of the position. it is assumed that this component shall also be used in particular case where there is full decrease i.e. position is null after the event occurred, whatever type of decrease trigger being at stake e.g. early termination, expiry at maturity, etc."> + Increase <"The intent is to Increase the quantity of the position."> + Novation <"The intent is to transfer the position to another clearing member, or more generally to another counterparty."> + Allocation <"The intent is to allocate one or more trades as part of an allocated block trade."> + OptionExercise <"The intent is to Exercise a position or part of a position."> + Valuation <"The intent is to update the valuation of the position."> + PortfolioRebalancing <"The intent is to rebalance a portfolio, by inserting new derivatives transactions into portfolios of participants to reduce risks linked to those trades. These are offsetting trades that rebalance relationships between different counterparties when it comes to exposure of portfolios to certain types of risk, such as interest rate risk."> + BasketRebalancing <"The intent is to rebalance basket constituents, by inserting new ones and/or removing ones, updating quantity and/or restriking the prices, etc."> + Substitution <"The intent is to subtitute new share to compensate for a prior existing share beign affected by a corporate event, for instance a share-for-share or any other kind of event that may be separatly agreed by the parties. This is quite similar to PortfolioReblancing, yet with Substitution one may expect that the global notional amount of the basket is not affected by the substitution of the shares, that usually coming with formula terms for the purpose of calculating the booking price of the new share e.g. New Share Initial Price = New Share MtM price x ( Old Share Initial Price / Old Share MtM Price )."> + NotionalReset <"The intent is to update the notional amount of the Trade, in accordance with Notional Reset features e.g. could apply for Cross Currency Swaps, Equity Performance Swaps, etc."> + NotionalStep <"The intent is to increase or to decrease the notional of the Trade, in accordance with Step features attached to a Payout Quantity."> + BespokeEvent <"The intent is to represent the occurrence of an event which description is seperatly agreed between the parties and/or described in any referenced agreement (for instance bespoke term described in any string type objects present in most root attributes of Agreement type)."> enum RecordAmountTypeEnum: <"The enumeration of the account level for the billing summary."> AccountTotal @@ -120,22 +130,26 @@ enum PerformanceTransferTypeEnum: <"The enumerated values to specify the origin Variance enum CorporateActionTypeEnum: <"The enumerated values to specify the origin of a corporate action transfer."> - CashDividend <"Corporate action triggered by the distribution of a cash dividend."> - StockDividend <"Corporate action triggered by the distribution of a stock dividend."> - StockSplit <"Corporate action triggered by a stock split. A stock split or stock divide increases the number of shares in a public company. The price is adjusted such that the before and after market capitalization of the company remains the same and dilutiondoes not occur. The value maps closely to the ISO code (SPLF) defined as a distribution of subsidiary stock to the shareholders of the parent company without a surrender of shares."> - ReverseStockSplit <"Corporate action triggered by a reverse split. A reverse stock split or reverse split is a process by a company of issuing to each shareholder in that company a smaller number of new shares in proportion to that shareholder's original shares that are subsequently canceled. A reverse stock split is also called a stock merge. The reduction in the number of issued shares is accompanied by a proportional increase in the share price. The value maps closely to the ISO code (SPLR) defined as a decrease in a company's number of outstanding equities without any change in the shareholder's equity or the aggregate market value at the time of the split. Equity price and nominal value are increased accordingly."> - SpinOff <"Corporate action triggered by a spin Off. A spin-out, also known as a spin-off or a starburst, refers to a type of corporate action where a company splits off sections of itself as a separate business. The value maps closely to the ISO code (SOFF) defined as a a distribution of subsidiary stock to the shareholders of the parent company without a surrender of shares. Spin-off represents a form of divestiture usually resulting in an independent company or in an existing company. For example, demerger, distribution, unbundling."> - Merger <"Corporate action triggered by a merger. Mergers and acquisitions (abbreviated M&A) is an aspect of corporate strategy, corporate finance and management dealing with the buying, selling, dividing and combining of different companies and similar entities that can help an enterprise grow rapidly in its sector or location of origin, or a new field or new location, without creating a subsidiary, other child entity or using a joint venture. The distinction between a merger and an acquisition has become increasingly blurred in various respects (particularly in terms of the ultimate economic outcome), although it has not completely disappeared in all situations. The value maps closely to the ISO code (MRGR) defined as an offer made to shareholders, normally by a third party, requesting them to sell (tender) or exchange their equities."> - Delisting <"Corporate action triggered by the removal of a security from a stock exchange."> - StockNameChange <"Corporate action triggered by a change in the name used to trade the security."> - StockIdentifierChange <"Corporate action triggered by a change in the code used to trade the security."> - RightsIssue <"Corporate action triggered by an issuance to shareholders of rights to purchase additional shares at a discount."> - Takeover <"Corporate action triggered by a takeover. A takeover is the purchase of onecompany (the target) by another (the acquirer, or bidder). The value maps to the ISO code (TEND) but is finer grained than TEND which emcompasses Tender/Acquisition/Takeover/Purchase Offer/Buyback. ISO defines the TEND code as an offer made to shareholders, normally by a third party, requesting them to sell (tender) or exchange their equities."> - StockReclassification <"Corporate action triggered by a Stock Reclassification."> - BonusIssue <"Corporate action triggered by a bonus issue. A bonus issue or bonus share is a free share of stock given to current shareholders in a company, based upon the number of shares that the shareholder already owns. While the issue of bonus shares increases the total number of shares issued and owned, it does not change the value of the company. The value maps closely to the ISO code (BONU) defined as a bonus, scrip or capitalisation issue. Security holders receive additional assets free of payment from the issuer, in proportion to their holding."> - ClassAction <"Corporate action triggered by a Class Action. An action where an individual represents a group in a court claim. The judgment from the suit is for all the members of the group (class). The value maps closely to the ISO code (CLSA) defined as the situation where interested parties seek restitution for financial loss. The security holder may be offered the opportunity to join a class action proceeding and would need to respond with an instruction."> - EarlyRedemption <"Corporate action triggered by an early redemption. The value maps closely to the ISO code (MCAL) defined as the redemption of an entire issue outstanding of securities, for example, bonds, preferred equity, funds, by the issuer or its agent, for example, asset manager, before final maturity."> - Liquidation <"Corporate action triggered by a liquidation. When a business or firm is terminated or bankrupt, its assets are sold (liquidated) and the proceeds pay creditors. Any leftovers are distributed to shareholders. The value maps closely to the ISO code (LIQU) defined as a distribution of cash, assets or both. Debt may be paid in order of priority based on preferred claims to assets specified by the security."> + CashDividend <"Corporate action triggered by the distribution of a cash dividend."> + StockDividend <"Corporate action triggered by the distribution of a stock dividend."> + StockSplit <"Corporate action triggered by a stock split. A stock split or stock divide increases the number of shares in a public company. The price is adjusted such that the before and after market capitalization of the company remains the same and dilutiondoes not occur. The value maps closely to the ISO code (SPLF) defined as a distribution of subsidiary stock to the shareholders of the parent company without a surrender of shares."> + ReverseStockSplit <"Corporate action triggered by a reverse split. A reverse stock split or reverse split is a process by a company of issuing to each shareholder in that company a smaller number of new shares in proportion to that shareholder's original shares that are subsequently canceled. A reverse stock split is also called a stock merge. The reduction in the number of issued shares is accompanied by a proportional increase in the share price. The value maps closely to the ISO code (SPLR) defined as a decrease in a company's number of outstanding equities without any change in the shareholder's equity or the aggregate market value at the time of the split. Equity price and nominal value are increased accordingly."> + SpinOff <"Corporate action triggered by a spin Off. A spin-out, also known as a spin-off or a starburst, refers to a type of corporate action where a company splits off sections of itself as a separate business. The value maps closely to the ISO code (SOFF) defined as a a distribution of subsidiary stock to the shareholders of the parent company without a surrender of shares. Spin-off represents a form of divestiture usually resulting in an independent company or in an existing company. For example, demerger, distribution, unbundling."> + Merger <"Corporate action triggered by a merger. Mergers and acquisitions (abbreviated M&A) is an aspect of corporate strategy, corporate finance and management dealing with the buying, selling, dividing and combining of different companies and similar entities that can help an enterprise grow rapidly in its sector or location of origin, or a new field or new location, without creating a subsidiary, other child entity or using a joint venture. The distinction between a merger and an acquisition has become increasingly blurred in various respects (particularly in terms of the ultimate economic outcome), although it has not completely disappeared in all situations. The value maps closely to the ISO code (MRGR) defined as an offer made to shareholders, normally by a third party, requesting them to sell (tender) or exchange their equities."> + Delisting <"Corporate action triggered by the removal of a security from a stock exchange."> + StockNameChange <"Corporate action triggered by a change in the name used to trade the security."> + StockIdentifierChange <"Corporate action triggered by a change in the code used to trade the security."> + RightsIssue <"Corporate action triggered by an issuance to shareholders of rights to purchase additional shares at a discount."> + Takeover <"Corporate action triggered by a takeover. A takeover is the purchase of onecompany (the target) by another (the acquirer, or bidder). The value maps to the ISO code (TEND) but is finer grained than TEND which emcompasses Tender/Acquisition/Takeover/Purchase Offer/Buyback. ISO defines the TEND code as an offer made to shareholders, normally by a third party, requesting them to sell (tender) or exchange their equities."> + StockReclassification <"Corporate action triggered by a Stock Reclassification."> + BonusIssue <"Corporate action triggered by a bonus issue. A bonus issue or bonus share is a free share of stock given to current shareholders in a company, based upon the number of shares that the shareholder already owns. While the issue of bonus shares increases the total number of shares issued and owned, it does not change the value of the company. The value maps closely to the ISO code (BONU) defined as a bonus, scrip or capitalisation issue. Security holders receive additional assets free of payment from the issuer, in proportion to their holding."> + ClassAction <"Corporate action triggered by a Class Action. An action where an individual represents a group in a court claim. The judgment from the suit is for all the members of the group (class). The value maps closely to the ISO code (CLSA) defined as the situation where interested parties seek restitution for financial loss. The security holder may be offered the opportunity to join a class action proceeding and would need to respond with an instruction."> + EarlyRedemption <"Corporate action triggered by an early redemption. The value maps closely to the ISO code (MCAL) defined as the redemption of an entire issue outstanding of securities, for example, bonds, preferred equity, funds, by the issuer or its agent, for example, asset manager, before final maturity."> + Liquidation <"Corporate action triggered by a liquidation. When a business or firm is terminated or bankrupt, its assets are sold (liquidated) and the proceeds pay creditors. Any leftovers are distributed to shareholders. The value maps closely to the ISO code (LIQU) defined as a distribution of cash, assets or both. Debt may be paid in order of priority based on preferred claims to assets specified by the security."> + BankruptcyOrInsolvency <"Corporate action triggered by bankruptcy, insolvency filing or insolvency of the issuer of the Security."> + IssuerNationalization <"Corporate action triggered by the nationalization of the issuer of the Security."> + Relisting <"Corporate action triggered by the relisting of a security from the original stock exchange to another exchange."> + BespokeEvent <"The intent is to represent the occurrence of a Corporate Action which description is seperatly agreed between the parties and/or described in any referenced agreement (for instance bespoke term described in any string type objects present in most root attributes of Agreement type)."> enum CreditEventTypeEnum: <"Represents the enumerated values to specify a credit event type."> [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/credit-event-type"] diff --git a/rosetta-source/src/main/rosetta/event-common-type.rosetta b/rosetta-source/src/main/rosetta/event-common-type.rosetta index 8340c18305..70751c9415 100644 --- a/rosetta-source/src/main/rosetta/event-common-type.rosetta +++ b/rosetta-source/src/main/rosetta/event-common-type.rosetta @@ -3,6 +3,7 @@ version "${project.version}" import cdm.base.* import cdm.base.datetime.* +import cdm.base.datetime.daycount.* import cdm.base.math.* import cdm.base.staticdata.asset.common.* import cdm.base.staticdata.asset.rates.* @@ -504,11 +505,92 @@ type CreditEvent: <"Specifies the relevant data regarding a credit event."> publiclyAvailableInformation Resource (0..*) <"A public information source, e.g. a particular newspaper or electronic news service, that may publish relevant information used in the determination of whether or not a credit event has occurred."> referenceInformation ReferenceInformation (1..1) <"The reference entity, part of a credit basket, impacted by the credit event."> -type CorporateAction: <"Specifies the relevant data regarding a corporate action."> - corporateActionType CorporateActionTypeEnum (1..1) <"The type of corporate action taking place."> - exDate date (1..1) <"The date on which the corporate action is known to have taken place."> - payDate date (1..1) <"The date on which resulting from the corporate action are delivered."> - underlier Underlier (1..1) <"The underlier impacted by the corporate action."> +type CorporateAction: <"Specifies the relevant data regarding a corporate action"> + corporateActionType CorporateActionTypeEnum (1..1) <"The type of corporate action taking place."> + exDate date (1..1) <"The date on which the corporate action is known to have taken place."> + payDate date (1..1) <"The date on which resulting from the corporate action are delivered."> + recordDate date (0..1) <"The date on which the account phyical balance and related underlier ownership is recorded by the custodian."> + announcementDate date (0..1) <"The date on which the corporate action is announced by the issuer."> + underlier Underlier (1..1) <"The underlier impacted by the corporate action."> + adjustmentTerms AdjustmentTerms (0..1) <"Specifies any additional details e.g. further descriptions depending on the particular type of Corporate Action, adjustmentFactor, calculations"> + informationSource InformationSource (0..1) <"A class defining the source of data used in an Observation for any purposes. The data is either sourced from a Provider, or from a Party."> + dividendObservation PriceSchedule (0..1) <"To record observations of dividends."> + bespokeEventDescription string (0..1) <"Corporate action triggered by the occurrence of an event which description is seperatly agreed between the parties and/or described in any referenced agreement (for instance bespoke term described in any string type objects present in most root attributes of Agreement type)."> + + condition DividendObservation: <"Price type is restricted to record observations of dividends."> + if dividendObservation exists + then dividendObservation -> priceType = PriceTypeEnum -> Dividend + + condition CorporateActionTypeBespoke: <"When Enum value does not corresponds to standard terms, then bespoke description must be populated."> + if corporateActionType = CorporateActionTypeEnum -> BespokeEvent + then bespokeEventDescription exists + + condition: <"If intent is to record dividend observation per se with no relation to an adjustment (typically when such observation is made, looking forward dividend passthrough payments) then no adjustment is expected, and vice-versa. For the avoidance of doubts, in the case dividend terms are involved in the calculation or the occurrence of an adjustment calculation, then such information shall be defined at such proper level i.e. precisely as an attribute of the adjustmentFactorCalculation."> + optional choice adjustmentTerms, dividendObservation + +type AdjustmentTerms:<"Describes the terms involved for adjusting the price of the underlier impacted by a Corporate Action."> + + adjustmentFactorValue number (1..1) <"The multipler value applied to the price of the underlier impacted by a Corporate Action."> + adjustmentFactorCalculation PriceAdjustmentFactorCalculationTerms (0..1) <"Describes the input terms involved in the calculation of the adjustment factor applied to the price of the underlier impacted by a Corporate Action."> + +type PriceAdjustmentFactorCalculationTerms : <"Describes the input terms involved in the calculation of the adjustment factor applied to the price of the underlier impacted by a Corporate Action."> + shareForShareRatio number (0..1) <"Multiple value, say 'M/N' to get a number 'M' of shares after ethe event, given a number 'N' of shares prior to the event. "> + shareForRightsRatio number (0..1) <"Multiple value, say 'M/N' to get a number 'M' of rights after ethe event, given a number 'N' of shares prior to the event. "> + rightsSubscriptionPrice Price (0..1) <"The price to pay per each right."> + dividendRatio number (0..1) <"Multipler value (e.g. 85 %, etc.) to calculate net dividend amount, given gross amount before taking into account the relevant fiscal features."> + spinOffPrice SpinOff (0..1) <"Defines the underlier for both the Parent Company and the Child Compagny involved in Spin Off corporate action, as well as th respective price observation for each."> + mergerPrice Merger (0..1) <"Defines the underlier for both the Purchaser Company and the Acquired Compagny involved in Spin Off corporate action, as well as th respective price observation for each."> + accrualFactor AccrualFactor (0..1) <"The accrual rate and related terms, to adjust the price of an underlier impacted by a Corporate Action when economic impact consists in freezing the underlier price to last fixing and applying accruals for each remaining underlier price fixing date required i.e. for each, adjustedPrice = lastFixingPrice x (1 + accrualRate x DCF)."> + lastFixingPrice_priorAdjustment Price (0..1) <"The last fixing price of the Underlier affected by the CorporateAction, before any adjustment with regards to the CorporateAction."> + dividendObservation PriceSchedule (0..1) <"To record observations of dividends."> + bespokeCalculationFormula string (0..1) <"To describe the formula used to calculate the Adjustment Factor."> // temporary place holder -> plan is to re-use BespokePayoutFormula type designed by Structured Product WG + + condition SpinOffOrMergerOrAccrual: + optional choice spinOffPrice, mergerPrice, accrualFactor + + condition DividendObservation: <"Price type is restricted to record observations of dividends."> + if dividendObservation exists + then dividendObservation -> priceType = PriceTypeEnum -> Dividend + +type AccrualFactor :<"The accrual rate and related terms, to adjust the price of an underlier impacted by a Corporate Action when economic impact consists in freezing the underlier price to the last fixing then applying accruals per each remaining underlier price fixing date required i.e. for each fixing date, adjustedPrice = lastFixingPrice x accrualFactor, where: accrualFactor = (1 + accrualRateValue x DCF)."> + accrualRateValue PriceSchedule (0..1) <"The rate to be applied to the last fixing price, for price accrual calculation purposes. DatedValue may be used for the purpose of representing Price series if such calculation is required for multiple dates."> + [metadata location] + accrualRateCalculationTerms AccrualFactorCalculationTerms (0..1) <"Describes the input terms involved in the calculation of the accrual factor."> + + condition AccrualPriceIsRate: + accrualRateValue -> priceType = PriceTypeEnum -> InterestRate + +type AccrualFactorCalculationTerms: <"Describes the input terms involved in the calculation of the accrual factor. Optionnally, long and short stub interpolation rates can be specified."> + tenorTillMaturity number (1..1) <"The duration between last fixing date and the payment date of accruals, calculated in accordance with the appropriate DayCountFraction."> + dayCountFraction DayCountFractionEnum (1..1) <"The enumerated values to specify the day count fraction."> + shortStubInterpolationTerms FloatingRateSpecification (0..1) <"Describes the rate and related tenor for the short stub when the accrualRate optionnaly results from an interpolation method."> + longStubInterpolationTerms FloatingRateSpecification (0..1) <"Describes the rate and related tenor for the long stub when the accrualRate optionnaly results from an interpolation method."> + + condition TenorExistsInInterpolation: + if shortStubInterpolationTerms exists + or longStubInterpolationTerms exists + then shortStubInterpolationTerms -> rateOption -> FloatingRateIndex -> indexTenor exists + and longStubInterpolationTerms -> rateOption -> FloatingRateIndex -> indexTenor exists + +type SpinOff :<"Defines the underlier for both the Parent Company and the Child Compagny involved in Spin Off corporate action, as well as th respective price observation for each."> + parentCompanyPrice PriceQuantity (1..1) <"Defines the underlier for the Parent Company involved in Spin Off corporate action, as well as the related price observation."> + childCompanyPrice PriceQuantity (1..1) <"Defines the underlier for the Child Company involved in Spin Off corporate action, as well as the related price observation."> + + condition EquityPrice: <"Each attribute shall define both the equity instrument and the price at stake."> + parentCompanyPrice -> observable -> Asset -> Instrument -> Security -> instrumentType = InstrumentTypeEnum -> Equity + and parentCompanyPrice -> price count = 1 + and childCompanyPrice -> observable -> Asset -> Instrument -> Security -> instrumentType = InstrumentTypeEnum -> Equity + and childCompanyPrice -> price count = 1 + +type Merger: <"Defines the underlier for both the Purchaser Company and the Acquired Compagny involved in Merger corporate action, as well as th respective price observation for each."> + purchaserCompanyPrice PriceQuantity (1..1) <"Defines the underlier for the Purchaser Company involved in Merger corporate action, as well as the related price observation."> + acquiredCompanyPrice PriceQuantity (1..1) <"Defines the underlier for the Acquired Company involved in Merger corporate action, as well as the related price observation."> + + condition EquityPrice: <"Each attribute shall define both the equity instrument and the price at stake."> + purchaserCompanyPrice -> observable -> Asset -> Instrument -> Security -> instrumentType = InstrumentTypeEnum -> Equity + and purchaserCompanyPrice -> price count = 1 + and acquiredCompanyPrice -> observable -> Asset -> Instrument -> Security -> instrumentType = InstrumentTypeEnum -> Equity + and acquiredCompanyPrice -> price count = 1 type ClearingInstruction: <"All information required to perform the clear life cycle event; the clearing party (CCP), the two parties facing each other on the alpha contract, and optionally the parties acting as clearing members."> alphaContract TradeState (1..1) <"The contract that will be submitted to the clearing house for clearing. The contract should indicate that it should be cleared by assigning a clearing organisation as a party role.">