FRAGMOS - ObservationTerms & ValuationTerms #3114
Labels
backward-incompatible
Likely to be backward-incompatible; must be on Steering WG roadmap; 2 maintainers to approve
complex
Major change; should be broken-down into smaller units; Steering WG approval recommended
Background
We consider that both observation terms and valuation terms are generic features to any payout type
to be populated on business case basis, therefore should not be restricted to particular types.
As of today ObservationTerms is only an attribute of OptionPayout and of PerformancePayout, and ValuationDates is only an attribute of PerformancePayout. We beleive all other types of payout may need to use such attributes.
To provide at least one example among many other possible ones, let's consider forwardPayout :
That is to illustrate that the need for observation or valuation terms is not driven by the type of the payout nor by the type of asset. It is actually driven by business usage and other features of the product to be considered in addition to the core payout type, given context.
related PR #3227
Main Proposal - PayoutBase
Additional Refactoring - ObservationTerms
Additional Refactoring - Observable
add new optional attribute (existing type) for recording the fixing value observed per each fixing date
add two (2) new conditions for consistency purposes
Additional Refactoring - PriceSchedule
In order to indicate which type of price is at stake when recording any fixing value (depending business it may relate to an "observation", else to "valuation", or "reset", or other ones, etc.) without creating top/down list of price attributes with distinct name to correspond to each possible type, we propose to add this optional attribute to Price that is an Enum :
IMPORTANT :
Additional Refactoring - ObservationDates
that is to designate a kind of date to observe ; logic behind it is mostly similar to the one involved in existing type PayRelativeToEnum (e.g. say you want to pay on "Valuation_Date" or "Calculation_Period_End_Date", etc.) that is to designate a particular type of date among a given set of dates defined elsewhere in the document
IMPORTANT :
( see for instance #3059)
same if showing type name instead of attribute name :

Additional Refactoring - ObservationSchedule
We are currently missing item for representing manufactured schedule composed of period series (mostly used when period are irregular, thus unlikely calculable based on periodic parameters)
for clarity, there is a component which already exists for similar need i.e. representing manufactured schedule, that is type SchedulePeriod, however, this type is too specific because it was fined-tuned especially for commodityPayout (thus includes additional specific attributes for commos such as "deliveryPeriod", "fixingDates" and "paymentDates", etc.), so we cannot re-use type SchedulePeriod as it is, hence proposal to create new type to meet core need to represent a set of schedule periods, but with no other any extra features.
Proposal :
create new type below :

then add it as an attribute to existing type ObservationSchedule :

Additional Refactoring - ValuationDates + PerformanceValuationDates
here is recap of situation today :
compare with change proposal :
Changes proposals are furthed detailed below.
Additional Refactoring - ValuationDates
Additional Refactoring - PerformanceValuationDates
The text was updated successfully, but these errors were encountered: