-
Notifications
You must be signed in to change notification settings - Fork 79
FRAGMOS - metadada for all Price occurrences in Payout #3669
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
Comments
Issue was discussed at the CDM Derivatives Working Group - April 30th, 2025 - outcome inconclusive so should be followed-up. @JBZ-Fragmos To summarise the high-level proposal:
My view:
|
As discussed during the meeting, I don't think the |
agreed @mgratacos |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Background
As of today, there is neither consistent usage (ISSUE n°1) nor sufficient leverage (ISSUE n°2) of metadata referencing across the model where
Price
exists, notably when used as an attribute of components inPayout
paths.For clarity, situation is the following :
Price
already has proper annotation[metadata location]
inTradeLot->PriceQuantity
Price
components insidePayout
can actually benefit from this existing structure, because the corresponding annotation[metadata address]
is missing for these components.ISSUE n°1 : inconsistent usage of metadata references
EXAMPLE of current inconsistent use cases :
performancePayout->initialValuationPrice
is a kind ofPrice
type attribute insidePayout
path, which already has expected annotation[metadata address]
so it can be referenced fromTradeLot->PriceQuantity
optionPayout->strike
is a kind ofPrice
type attribute insidePayout
path, which is currently missing the annotation[metadata address]
so it cannot be referenced fromTradeLot->PriceQuantity
There is no reason why some
Payout
attribute of typePrice
have the annotation that permits for being referenced fromTradeLot->PriceQuantity
whereas some other components of same typePrice
in same conceptual place (i.e.Payout
attribute) do not have this annotation for being referenced as well.ISSUE n°2 : insufficient leverage of metadata references
Not to have
[metadata address]
in allPrice
components involved inPayout
is also compromising full benefit of the referencing mechanism from a functional standpoint, accross the model, actually not just when considering Product model, but also (if not mainly) when considering Event model and its ability to represent Lifecycle of Products.Indeed, referencing is an embedded kind of resolving property i.e. when compiling, CDM objects with proper referenced value populated in referencing structures above described is actually resolved, meaning that path with
[metadata address]
eventually results in havfing end-value corresponding to the one of the path with[metadata location]
.For instance, there are a lot (if not a majority) of Lifecycle event which eventually consists in updating some before data with after data in such a way that is functionally equivalent to resolving a reference between before and after...
And that is especially obvious whenever
Price
is at stake. That is why ensuring metadata referencing is in place whenever feasible, is base structure for simplifying the creation or the refactoring of the Instructions involved in Event model.In other words, whenever referencing can be used / embedded in an
Instruction
, this means suchInstruction
is roughly "out-of-the-box" because expected functional effect for updating is native in CDM when compiling the references.EXAMPLE of current use case :
The current
QuantityChange Instruction
already works this way : afterChange
is resolved intoPriceQuantity
the native referencing structure that is connectingPrice
inPayout
withPriceQuantity
actually permit to finish the job i.e. to propagate the changes insidePayout
paths (without the need for an additional Instruction that would directly target such paths)EXAMPLE of additional / new kinds of use case we may contemplate :
Our point is that such behavior shall be further leveraged, and extended to **** than
QuantityChange
.As a key example we have in mind, we beleive that refactoring of current
Reset
andObservation
items involved in Event model, for instance by replacing/harmonizing with newInstruction
that could be namedFixingObservation
which could typicallly be easilly designed, also with very generic scope able to encompass not only basic fixing but also resolvable fixing, including barrier event fixing, etc. if provided all kinds ofPrice
(including triggerPrice
inKnock
, etc.) would have proper annotation[metadata reference]
as we are proposing here.Proposal
1 - to add [metadata address] to any Price type components where it is currently missing in
Product
model (whether of typePrice
orPriceSchedule
because the later one actually extendsPrice
) :level
(an attribute ofTrigger
)varianceStrikePrice
volatilityStrikePrice
correlationStrikePrice
initialRate
(an attribute ofFloatingRateSpecification
)2 - in addition to that, we beleive the annotation for referencing is also required in component which existing type is simply to poor for permitting such annotation to be added, that is
quantityMultiplier
(an attribute ofQuantityMultiplier
) which type isnumber
; proposal being to upgrade it with typePriceQuantity
with[metadata address]
annotation.Compatibility
Core proposal n°1 only consists in adding
[metadata address]
annotation therefore is backward compatibleNot sure if proposal n°2 may not be backward compatible
Release
current PR corresponding to this Issue :
#3395
The text was updated successfully, but these errors were encountered: