From a90859d92236201a395525cd4de0269662e715e4 Mon Sep 17 00:00:00 2001 From: JayasriR <124573358+JayasriR@users.noreply.github.com> Date: Tue, 29 Oct 2024 12:00:22 +0000 Subject: [PATCH] Lionel Smith-Gordon Price P3+ - Release (#3202) * Price P3+ Add attribute FixedPrice to SettlementPayout * Price On Option Payout * Release note * correction of typo correction of typo --------- Co-authored-by: Lionel Smith-Gordon Co-authored-by: Lionel SG <146734978+Oblongs@users.noreply.github.com> --- RELEASE.md | 18 ++++++++++++------ .../main/rosetta/product-template-type.rosetta | 4 ++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index aba35c780b..089cde774d 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,12 +1,18 @@ -# _Infrastructure - Dependency Update_ +# *CDM Product Model - Add Price to Payouts* + +_Background_ + +This is an additional enhancement following the Asset Refactoring initiative by improving the consistency +of the modelling of prices on payouts. _What is being released?_ -This release updates the `DSL` dependency. +The new attribute `fixedPrice` of type `PriceSchedule` has been added to the `OptionPayout` and to the +`SettlementPayout`. Both additionally have a `metadata` address link, pointing to the `PriceQuantity` +in the `TradeLot`. -Version updates include: -- `DSL` 9.20.0: support for passing metadata to functions and highlighting fixes. For further details see DSL release notes: https://github.com/finos/rune-dsl/releases/tag/9.20.0 +_Review Directions_ -_Review directions_ +In Rosetta, select the Textual Browser and inspect the changes to the two payouts identified above. -The changes can be reviewed in PR: [#3191](https://github.com/finos/common-domain-model/pull/3191) \ No newline at end of file +Changes can be reviewed in PR [#3184](https://github.com/finos/common-domain-model/pull/3190) diff --git a/rosetta-source/src/main/rosetta/product-template-type.rosetta b/rosetta-source/src/main/rosetta/product-template-type.rosetta index 0c1494425f..94e3f0029c 100644 --- a/rosetta-source/src/main/rosetta/product-template-type.rosetta +++ b/rosetta-source/src/main/rosetta/product-template-type.rosetta @@ -86,6 +86,8 @@ type OptionPayout extends PayoutBase: <" The option payout specification terms. optionType OptionTypeEnum (0..1) <"The type of option transaction. From a usage standpoint, put/call is the default option type, while payer/receiver indicator is used for options on index credit default swaps, consistently with the industry practice. Straddle is used for the case of straddle strategy, that combine a call and a put with the same strike."> exerciseTerms ExerciseTerms (1..1) <"The terms for exercising the option, which include the option style (e.g. American style option), the exercise procedure (e.g. manual exercise) and the settlement terms (e.g. physical vs. cash)."> strike OptionStrike (0..1) <"Specifies the strike of the option"> + fixedPrice PriceSchedule (0..*) <"Specifies the price of the settlement. The multiple cardinality is aligned to the one of the PriceQuantity->price that this price is referencing."> + [metadata address "pointsTo"=PriceQuantity->price] condition ClearedPhysicalSettlementExists: if settlementTerms -> physicalSettlementTerms exists @@ -405,6 +407,8 @@ type SettlementPayout extends PayoutBase: <"Represents a forward settling payout deliveryTerm string (0..1) <"Also called contract month or delivery month. However, it's not always a month. It is usually expressed using a code, e.g. Z23 would be the Dec 2023 contract, (Z = December). For crude oil, the corresponding contract might be called CLZ23."> delivery AssetDeliveryInformation (0..1) <"Contains the information relative to the delivery of the asset."> schedule CalculationSchedule (0..1) <"Allows the full representation of a payout by defining a set of schedule periods. It supports standard schedule customization by expressing all the dates, quantities, and pricing data in a non-parametric way."> + fixedPrice PriceSchedule (0..*) <"Specifies the price of the settlement. The multiple cardinality is aligned to the one of the PriceQuantity->price that this price is referencing."> + [metadata address "pointsTo"=PriceQuantity->price] condition Underlier: <"The underlier for a settlement payout cannot be a NonTransferableProduct."> underlier -> Product -> NonTransferableProduct is absent