All releases¶
4.0.0-dev.36
Product Model - Enum and FpML coding scheme update
Background
Rosetta has a feature for its enumerations that enables, if a certain enumeration is directly related to an FpML coding scheme, to label that enumeration with the corresponding coding scheme canonical URI, so every time that coding scheme is updated, the enumeration will be automatically updated (and so will its mappings). That has been done for CreditEventTypeEnum
and InformationProviderEnum
. For CapacityUnitEnum
, since it is not uniquely related to an FpML coding scheme, the changes have been done manually.
What is being released?
The following
CapacityUnitEnum
codes have been added along with their synonym mappings:GBBSH
,GBBTU
,GBMBTU
,GBMMBTU
,GBTHM
,HOGB
,ISOBTU
,ISOMBTU
,ISOMMBTU
,ISOTHM
,KWD
,KWM
,KWMIN
,KWY
,MWD
,MWM
,MWMIN
,MWY
,SGB
,USBSH
,USBTU
,USMBTU
,USMMBTU
,USTHM
The following
CapacityUnitEnum
codes have been removed along with their synonym mappings:BSH
,BTU
,DTH
,INGOT
,KWDC
,KWHC
,KWMC
,KWMINC
,KWYC
,MMBTU
,MWDC
,MWHC
,MWMC
,MWMINC
,MWYC
,THERM
Enum
CreditEventTypeEnum
has been annotated with FpML coding schemeCreditEventTypeScheme
Enum
InformationProviderEnum
has been annotated with FpML coding schemeInformationProviderScheme
The following samples from the CDM test pack have been modified so that they do not contain the deprecated FpML code
MMBTU
:com-ex13-physical-gas-us-tw-west-texas-pool-floating-price-4-days
com-ex22-physical-gas-option-multiple-expiration
com-ex34-gas-put-option-european-floating-strike
com-ex36-gas-call-option-european-spread-negative-premium-floating-strike
com-ex01-gas-swap-daily-delivery-prices-last
com-ex02-gas-swap-prices-first-day
com-ex03-gas-swap-prices-last-three-days
com-ex05-gas-v-electricity-spark-spread
com-ex06-gas-call-option
com-ex07-gas-put-option
com-ex28-gas-swap-daily-delivery-prices-option-last
com-ex46-simple-financial-put-option
com-ex1-gas-swap-daily-delivery-prices-last
com-ex02-energy-nat-gas-cash
com-ex5-gas-v-electricity-spark-spread
The following sample from the CDM test pack has been modified so that it does not contain the deprecated FpML code
THERM
:com-ex14-physical-gas-europe-ttf-fixed-price
Review directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
4.0.0-dev.35
Product Model - Inflation Swaps - calculationMethod and calculationStyle
What is being released?
This release adds the following fields:
calculationMethod
- This field will be added as an enum. The enum will contain the following values:Ratio
Return
Spread
calculationStyle
- This field will be added as an enum. The enum will contain the following values:YearOnYear
ZeroCoupon
These fields can be found under the following paths:
- For
calculationMethod
, please use -InterestRatePayout -> rateSpecification -> inflationRate -> calculationMethod
- For
calculationStyle
, please use -InterestRatePayout -> rateSpecification -> inflationRate -> calculationStyle
The enum values can be found under the following paths:
- For
calculationMethod
, a new enum calledInflationCalculationMethodEnum
was added. This can be found at rosetta-source/src/main/rosetta/observable-asset-calculatedrate-enum.rosetta - For
calculationStyle
, a new enum calledInflationCalculationStyleEnum
was added. This can be found at rosetta-source/src/main/rosetta/observable-asset-calculatedrate-enum.rosetta
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
Product Model - Bond Reference - Coupon Rate
What is being released?
This release adds the field couponRate
to the BondReference
type under InterestRatePayout
.
The path for this field would be the following:
- InterestRatePayout > bondReference > couponRate. The
couponRate
is of typeFixedRateSpecification
with a cardinality of (0..1).
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
4.0.0-dev.34
Infrastructure - Dependency Updates
What is being released?
This release updates the CDM library dependencies including:
- Dependency
rosetta-dsl
updated to version7.1.1
- contains bug fixes, a simplified dependency structure, and security updates - Dependency
ingest-test-framework
updated to version5.5.1
- contains bug fixes related to synonym conditional mapping
This release contains no changes to the model or test expectations.
Review directions
CDM Java implementors should update their maven pom.xml
to the latest CDM maven artefact (groupId com.isda, artifactId cdm) and recompile.
3.3.1
Infrastructure - Dependency Updates
What is being released?
This release updates the CDM library dependencies including:
- Dependency
rosetta-dsl
updated to version7.1.1
- contains bug fixes, a simplified dependency structure, and security updates - Dependency
ingest-test-framework
updated to version5.5.1
- contains bug fixes related to synonym conditional mapping
The release contains no changes to the model or test expectations.
Review directions
CDM Java implementors should update their maven pom.xml
to the latest CDM maven artefact (groupId com.isda, artifactId cdm) and recompile.
4.0.0-dev.32
Product Model - FpML synonym mappings for party information
Background
This release updates and extends the FpML mapping coverage for party representation.
What is being released?
Mappings added to populate CDM attribute
AssignedIdentifier -> identifier
with FpML elementsmessageId
,collateralPortfolio
andeventId
; the latter being referenced with FpMLeventIdScheme
Mappings added to populate CDM attributes
NaturalPerson -> firstName
andNaturalPerson -> lastName
with FpML elementpersonId
, when that element is formatted as two strings (first and last name) separated by a dot
Review directions
- In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
3.2.3
Product Model - FpML synonym mappings for party information
Background
This release updates and extends the FpML mapping coverage for party representation.
What is being released?
Mappings added to populate CDM attribute
AssignedIdentifier -> identifier
with FpML elementsmessageId
,collateralPortfolio
andeventId
; the latter being referenced with FpMLeventIdScheme
Mappings added to populate CDM attributes
NaturalPerson -> firstName
andNaturalPerson -> lastName
with FpML elementpersonId
, when that element is formatted as two strings (first and last name) separated by a dot
Review directions
- In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
4.0.0-dev.31
Workflow Model - Representation of approvals for a Workflowstep
Background
As part of the work done by the ISLA Trading Working Group some enhancements have been made to the WorkflowStep event model and associated functions.
What is being released?
This release adds a new type of WorkflowStepApproval that can be used to track whether parties included on the workflow have approved a proposedEvent or not. A new approval object of type WorkflowStepApproval has been added to the existing WorkflowStep type.
The function Create_ProposedWorkflowStep has had approval added as an input. This is the only function updated as it is the only one that deals with proposed events rather than business events.
A correction has also been made to the setting of the previousWorkflowStep in the Create_AcceptedWorkflowStepFromInstruction function.
Data Types
- Added WorkflowStepApproval type:
- Includes approved, party, rejectedReason and timestamp
- Modified WorkflowStep type:
- Added approval attribute of type WorkflowStepApproval
Functions
- Modified Create_AcceptedWorkflowStepFromInstruction function:
- Modified previousWorkflowStep to be set to proposedWorkflowStep and not proposedWorkflowStep -> previousWorkflowStep
- Modified Create_ProposedWorkflowStep function:
- Added approval as an input to the function which, if present, will be added into the new WorkflowStep generated as the result of the function
Review Directions
In the CDM Portal, select the Textual Browser and inspect the types and functions.
4.0.0-dev.30
Mappings and model change - Simplify FpML Synonym Hierarchy
Background
This release will simplify and rationalise the FpML synonym hierarchy and versions. This will make it easier for contributors working on synonyms to map FpML documents into CDM objects.
What is being released?
The following two mapping files are being renamed, with their paths remaining unchanged :
mapping-fpml-synonym.rosetta
tomapping-fpml-confirmation-tradestate-synonym.rosetta
mapping-fpml-process-synonym.rosetta
tomapping-fpml-confirmation-workflowstep-synonym.rosetta
The following synonym groups within these files are being renamed:
FpML_5_10_Processes
toFpML_5_Confirmation_To_WorkflowStep
FpML_5_10
toFpML_5_Confirmation_To_TradeState
All synonym groups related to specific versions such as 5.10
, 5.12
and 5.13
have been removed. The above groupings will now contain synonyms for all FpML 5 versions.
Review Directions
In the CDM Portal, select the Textual Browser to inspect the synonym source groups mentioned above.
4.0.0-dev.28
Product Model - FpML synonym mappings for credit products
Background
This release updates and extends the FpML mapping coverage for the product model.
What is being released?
Mappings added to populate CDM attribute
CreditDefaultPayout -> generalTerms -> basketReferenceInformation -> basketName
with FpML pathunderlyer -> basket -> basketName
for Credit productsMappings added to populate CDM attribute
CreditDefaultPayout -> generalTerms -> basketReferenceInformation -> basketId
with FpML pathsunderlyer -> basket -> basketId
orunderlyer -> basket -> id
for Credit productsMappings added to populate CDM attribute
CreditDefaultPayout -> generalTerms -> basketReferenceInformation -> referencePool -> referencePoolItem -> referencePair
with FpML pathunderlyer -> referenceEntity
for Credit products
Product Model - Business centers - Enhancement for business day calendar location
Background
The definition of the enumerated list BusinessCenterEnum was previously conflating 2 separate concepts: the business centre calendar defined per geo-location and the business centre calendar defined by reference to a commodity exchange or as specified in the ISDA definitions.
What is being released?
CDM enum
BusinessCenterEnum
has been split into two different enums:BusinessCenterEnum
andCommodityBusinessCalendarEnum
. Each new enum has been labeled with its corresponding FpML Coding scheme, those beingBusinessCenterScheme
andCommodityBusinessCalendarScheme
, respectively.commodityBusinessCalendar
of typeCommodityBusinessCalendarEnum
has been added to CDM typeBusinessCenters
so that commodity products are being supported in regards of the splitting described above. Also added that element to the required choice defined inside the typeFpML synonyms have been adjusted to reference the FpML element
businessCalendar
.
Review directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
3.2.1
Product Model - FpML synonym mappings for credit products
Background
This release updates and extends the FpML mapping coverage for the product model.
What is being released?
Mappings added to populate CDM attribute
CreditDefaultPayout -> generalTerms -> basketReferenceInformation -> basketName
with FpML pathunderlyer -> basket -> basketName
for Credit productsMappings added to populate CDM attribute
CreditDefaultPayout -> generalTerms -> basketReferenceInformation -> basketId
with FpML pathsunderlyer -> basket -> basketId
orunderlyer -> basket -> id
for Credit productsMappings added to populate CDM attribute
CreditDefaultPayout -> generalTerms -> basketReferenceInformation -> referencePool -> referencePoolItem -> referencePair
with FpML pathunderlyer -> referenceEntity
for Credit products
Review directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
4.0.0-dev.27
CDM Distribution - Licence Terms - Minor typo corrections
Background
The URL pointing to the CDM Portal link is broken in the Licence Terms and 4.0.0-DEV.0 appears as 4.0.0-DEV
What is being released?
The URL pointing to the CDM portal has been adjusted on the Licence Term. The reference to the Licence Terms has also been updated to 4.0.0-DEV.0
Review Directions
- In the CDM Portal, download a CDM distribution and inspect that the link to the CDM portal in Licence document point to the main CDM portal page.
- In the CDM Portal, open the Licence Terms licence and inspect that is shown correctly as 4.0.0-DEV.0.
Mappings and model change - isApplicable attribute for AutomaticExercise
Background
This release adds an element isApplicable inside AutomaticExercise, previously approved by the ARC.
What is being released?
In data type AutomaticExercise
:
- Attribute
isApplicable
of data typeAutomaticExercise
added in the CDM Model. - Mappings around
AutomaticExercise
were updated.
Review Directions
In the CDM Portal, select the Textual Browser to inspect the types mentioned above and review the changes.
In the CDM Portal, select Ingestion and review the following samples in the test pack:
fpml-5-10 > incomplete-products > equity-options
fpml-5-10 > incomplete-products > commodity-derivatives
4.0.0-dev.26
Legal Documentation & Collateral – Eligible Collateral Schedule Builder Function
Background
The current CDM model provides the unambiguous data representation of an Eligible Collateral Schedule, which necessarily requires a relatively verbose definition of complex data relationships.
When using the CDM Object Builder to manually construct an Eligible Collateral Schedule members need a quicker method for creating more complex Eligible Collateral Schedule information.
The existing Eligible Collateral Schedule data type should not be changed as it has been tested and signed off by members as suitable for representing an unambiguous complete schedule.
What is being released?
Function EligibleCollateralScheduleHelper
has been added to provide a quicker way to build an EligibleCollateralSchedule
through the combination of common and variable schedule characteristics. The function input EligibleCollateralScheduleInstruction
contains common and variable EligibleCollateralCriteria
which are merged by the function to form a complete EligibleCollateralSchedule
.
Review Directions
In the CDM Portal, select the Textual Browser to inspect the types mentioned above and review the changes.
In the CDM Portal, select the Downloads page, and download the ISDA CDM as a Java Examples project. Open the project and review the Java example EligibleCollateralScheduleHelperTest
.
In the CDM Portal, select the Instance Viewer, review the visualisation examples in the Eligible Collateral folder.
4.0.0-dev.25
Product Model - Observation Dates
Background
This release revises the representation of a custom Observation schedule to improve representation in the model.
What is being released?
In data type ObservationDates
:
- Attribute
observationSchedule
of data typeObservationSchedule
updated to optional single cardinality to represent a single schedule.
In data type ObservationSchedule
:
- Attribute
observationDate
of data typeObservationDate
updated to multiple cardinality to represent a list of observation dates - Attribute
dateAdjustments
added to represent a business day convention at the level of the schedule
In data type ObservationDate
:
- Data type contains attributes to represent an adjusted or unadjusted date, a weight for the observation and an observation reference.
Related synonym mappings have been adjusted to deal with changes.
Review Directions
In the CDM Portal, select the Textual Browser to inspect the types mentioned above and review the changes.
Product Model - Condition fixes
What is being released?
Data type SettlementTerms
:
- Condition
OptionSettlementChoice
has been updated to correctly represent relationship between settlementType and the need to represent physical or cash settlement terms
Data type CorrelationReturnTerms:
- Condition
CorrelationValue
has been updated to correctly represent the limit of the strike to be between the value 1 and -1
Review Directions
In the CDM Portal, select the Textual Browser to inspect the types mentioned above and review the changes.
Product Model - FpML Mappings
Background
This release updates and extends the FpML mapping coverage for the product model.
What is being released?
- Mappings added to populate CDM attribute
SettlementBase -> settlementType
with codeCash
orPhysical
whennonDeliverableSettlement
orphysicalExercise
are present on the FpML input, respectively - Mappings added to populate CDM attribute
SettlementBase -> settlementCurrency
with FpML elemententitlementCurrency
- Mappings added to populate CDM attribute
productIdentifier
when the instrument is a generic product - Mappings added to populate CDM attributes
primaryAssetClass
andsecondaryAssetClass
when the instrument is a generic product - Mappings added to populate CDM attribute
TransferExpression -> priceTransfer
with codeUpfront
when payment type isAdditional Payment
and codeNovation
when the input is a novation - Mappings added to populate CDM attributes
effectiveDate
andterminationDate
for generic products - Mappings added to populate CDM attribute
optionPayout
when the generic product is an option - Mappings added to populate CDM attribute
Product -> contractualProduct
for generic products - Mappings added to populate CDM attribute
AveragingCalculationMethod
- Mappings updated for CDM attribute
PayerReceiver
Review directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select Ingestion and review the following samples:
fpml-5-10 > products > fx > fx-ex07-non-deliverable-forward
fpml-5-10 > products > fx > fx-ex28-non--deliverable-w-disruption
fpml-5-10 > products > rates > bond-option-uti
fpml-5-10 > products > rates > cb-option-usi
fpml-5-10 > incomplete-products > bond-options > bond-option
fpml-5-10 > incomplete-products > bond-options > cb-option
fpml-5-10 > incomplete-products > bond-options > cb-option-2
fpml-5-10 > incomplete-products > commodity-derivatives > com-ex22-physical-gas-option-multiple-expiration
fpml-5-10 > incomplete-products > commodity-derivatives > com-ex23-physical-power-option-daily-expiration-efet
fpml-5-10 > incomplete-products > commodity-derivatives > com-ex29-physical-eu-emissions-option
fpml-5-10 > incomplete-products > commodity-derivatives > com-ex31-physical-us-emissions-option
fpml-5-10 > incomplete-products > commodity-derivatives > com-ex47-physical-eu-emissions-option-pred-clearing
Product Model - Orphan Types clean-up
Background
This release relocates and deletes some unused types in the model and adjusts the corresponding FpML synonym mappings.
What is being released?
- Attribute
personRole
of type NaturalPersonRole added to typeParty
- Attribute
assetPool
of type AssetPool added to typeProduct
- Enumeration 'MortgageSectorEnum' was deleted
- Attribute commodityInfoPublisher which uses the enumeration'commodityInfoPublisherEnum' added to type CommodityProductDefinition
- Attribute
deliveryNearby
added to typeDeliveryDateParameters
Related synonym mappings were also adjusted to deal with changes.
Review Directions
In the CDM Portal, select the Textual Browser to inspect the types mentioned above and review the changes.
3.2.0
Product Model - FpML Mappings
Background
This release updates and extends the FpML mapping coverage for the product model.
What is being released?
- Mappings added to populate CDM attribute
SettlementBase -> settlementType
with codeCash
orPhysical
whennonDeliverableSettlement
orphysicalExercise
are present on the FpML input, respectively - Mappings added to populate CDM attribute
SettlementBase -> settlementCurrency
with FpML elemententitlementCurrency
- Mappings added to populate CDM attribute
productIdentifier
when the instrument is a generic product - Mappings added to populate CDM attributes
primaryAssetClass
andsecondaryAssetClass
when the instrument is a generic product - Mappings added to populate CDM attribute
TransferExpression -> priceTransfer
with codeUpfront
when payment type isAdditional Payment
and codeNovation
when the input is a novation - Mappings added to populate CDM attributes
effectiveDate
andterminationDate
for generic products - Mappings added to populate CDM attribute
optionPayout
when the generic product is an option - Mappings added to populate CDM attribute
Product -> contractualProduct
for generic products - Mappings added to populate CDM attribute
AveragingCalculationMethod
- Mappings updated for CDM attribute
PayerReceiver
Review directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select Ingestion and review the following samples:
fpml-5-10 > products > fx > fx-ex07-non-deliverable-forward
fpml-5-10 > products > fx > fx-ex28-non--deliverable-w-disruption
fpml-5-10 > products > rates > bond-option-uti
fpml-5-10 > products > rates > cb-option-usi
fpml-5-10 > incomplete-products > bond-options > bond-option
fpml-5-10 > incomplete-products > bond-options > cb-option
fpml-5-10 > incomplete-products > bond-options > cb-option-2
fpml-5-10 > incomplete-products > commodity-derivatives > com-ex22-physical-gas-option-multiple-expiration
fpml-5-10 > incomplete-products > commodity-derivatives > com-ex23-physical-power-option-daily-expiration-efet
fpml-5-10 > incomplete-products > commodity-derivatives > com-ex29-physical-eu-emissions-option
fpml-5-10 > incomplete-products > commodity-derivatives > com-ex31-physical-us-emissions-option
fpml-5-10 > incomplete-products > commodity-derivatives > com-ex47-physical-eu-emissions-option-pred-clearing
4.0.0-dev.23
Product Model - Party Identifier Type
Background
This release updates the enumeration PartyIdentifierTypeEnum
and adds the corresponding FpML synonym mappings.
What is being released?
- Value
MIC
added to enumerationPartyIdentifierTypeEnum
- FpML mappings updated for
PartyIdentifierTypeEnum
valuesMIC
andLEI
Review Directions
In Rosetta, select CDM for Digital Regulatory Reporting
project, then the Translate tab, and review samples in fpml-5-10 > record-keeping > products > rates
3.1.1
Product Model - Party Identifier Type
Background
This release updates the enumeration PartyIdentifierTypeEnum
and adds the corresponding FpML synonym mappings.
What is being released?
- Value
MIC
added to enumerationPartyIdentifierTypeEnum
- FpML mappings updated for
PartyIdentifierTypeEnum
valuesMIC
andLEI
Review Directions
In Rosetta, select CDM for Digital Regulatory Reporting
project, then the Translate tab, and review samples in fpml-5-10 > record-keeping > products > rates
4.0.0-dev.22
ICMA Contribution - Replaced SecurityFinancePayout with AssetPayout and Removal of Additional Deprecated Components
Background
As part of ICMA's previous contribution to the CDM for Repo and Bonds (reference release 4.0.0-dev 19), several model components that have been ear-marked as deprecated need to be removed. Those components are now superseded by new components from that contribution.
What is being released?
This release removes the following deprecated components:
Data types
SecurityFinancePayout
(superseded byAssetPayout
)SecurityFinanceLeg
(superseded byAssetLeg
)
Attributes
- In
Payout
andSettlementOrigin
:securityFinancePayout
(superseded byassetPayout
) - In
Collateral
:marginPercentage
(already represented withineligibleCollateral
) - In
ProductTaxonomy
:taxonomySource
andtaxonomyValue
(superseded bysource
andvalue
inTaxonomy
super-type) - In
AssignedIdentifier
:identifierType
(moved toTradeIdentifier
)
Annotations
- In
ExecutionDetails
: the[metadata reference]
annotation forpackageReference
Functions
In addition, the functional model has been amended as follows:
The logic previously relying on the
securityFinancePayout
attribute now usesassetPayout
andcollateral->collateralProvisions
, including the sec-lending product and event qualification logic. The functions impacted are:CalculateTransfer
Create_SecurityTransfer
Create_SecurityFinanceTransfer
ResolveTransfer
SecurityFinanceCashSettlementAmount
Create_BillingRecord
ResolveSecurityFinanceBillingAmount
Create_AssetPayoutTradeStateWithObservations
Qualify_SecurityLendingAgreement
Qualify_Repurchase
Qualify_FullReturn
The sec-lending samples and mappers have been adjusted to reflect the new structure
Function names referring to "Security Finance" have replaced it with the more generic "Asset"
Model descriptions that use the term "Security Finance Payout" have replaced it with "Asset Payout"
Other
- Various comments that were left-over from the contribution have been removed
Review directions
In the CDM Portal, select the Textual Browser and inspect the types and functions.
In the CDM Portal, select Ingestion and review the sample in the "fis" folder.
In Rosetta, select the Visualisation tab and review the event examples in the "Security Lending" folder.
4.0.0-dev.20
Product Model - Package Price and Spread
Background
Coverage for package price was introduced in FpML 5.13. This release allows for the mapping of package prices and spreads, and refactors BusinessEvent
and EventInstruction
to improve consistency.
What is being released?
This release adjusts the model and adds FpML mapping coverage for package prices and spreads.
- Mappings added to populate CDM attribute
ExecutionDetails->packageReference->price
from FpML elementquote
. BusinessEvent
updated to extendEventInstruction
, with all attributes (excepteventQualifier
andafter
) moved toEventInstruction
.
Review directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select Ingestion and review the following samples:
- fpml-5-10 > processes > msg-package-price
- fpml-5-10 > processes > msg-package-spread
4.0.0-dev.19
ICMA Contribution - CDM for Repo and Bonds
Background
This release covers two phases of the ICMA CDM for Repo and Bonds Initiative. Phase 1 covered CDM design of a classic repurchase agreements with a fixed term and fixed rate, and events for purchase and repurchase. Phase 2 extended the CDM product model and event model to cover open term and floating rate repurchase agreements, and the associated lifecycle events.
What is being released?
This release includes the following:
Additions to AssetClass and ProductTaxonomy to add Money Market and repurchase agreement taxonomy requirements.
Add ICMA as a documentation publisher.
Add OnVenue as a ExecutionTypeEnum.
Replaced SecurityFinancePayout and SecurityFinanceLeg with AssetPayout and AssetLeg.
Additional provisions for cancellation (early termination of a repo contract).
Additional provisions for pairoff.
Added the functions to create primitive instructions and qualifications for the following lifecycle events:
- Roll
- Early Termination
- On-Demand Rate Change
- On-Demand Interest Payment
- Shaping
- PairOff
Review Directions
In the CDM Portal, select the Textual Browser, navigate to types and event functions mentioned above and inspect their structure definitions and associated data conditions.
In addition for the new events, there are 2 ways to review how they work:
- In Rosetta, select the Visualisation tab and select the Repo and Bond section, where a set of pre-canned event inputs and their output can be inspected.
- In Rosetta, select the Functions tab and then select the
Create_BusinessEvent
function, where an arbitrary event instruction object can be passed. To build that instruction input, each new event is associated to an instruction generator function (e.g.Create_RollPrimitiveInstruction
for the Roll event) that can be invoked in the Functions tab as well.
4.0.0-dev.18
Infrastructure - Java 8 Support
What is being released?
To provide a wider compatibility for CDM Java implementors, this release changes the Java version of the distributed CDM Java artefacts from version 11 to 8.
Review Directions
CDM Java implementors should update their maven pom.xml
to the latest CDM maven artefact (groupId com.isda
, artifactId cdm
) and recompile with Java 8 (or later).
3.1.0
Infrastructure - Java 8 Support
What is being released?
To provide a wider compatibility for CDM Java implementors, this release changes the Java version of the distributed CDM Java artefacts from version 11 to 8.
Review Directions
CDM Java implementors should update their maven pom.xml
to the latest CDM maven artefact (groupId com.isda
, artifactId cdm
) and recompile with Java 8 (or later).
4.0.0-dev.17
Product Model - Day Count Fractions
What is being released?
This release updates the enumeration list DayCountFractionEnum
and associated functions to reference the ISDA 2021 Definitions.
- All enumerations now contain reference to both the 2021 definitions and 2006 definitions where appropriate.
- BUS/252 has been renamed CAL/252 in line with the ISDA 2021 definitions.
- FpML Mappings for BUS/252 and CAL/252 both map to the single CDM CAL/252 enumeration.
Review Directions
In the CDM Portal, select Textual Browser and review enumeration DayCountFractionEnum
In the CDM Portal, select Ingestion and review:
- fpml-5-10 > products > rates > ird-ex33-BRL-CDI-swap-versioned
Product Model - Simple Payment
What is being released?
Data type SimplePayment
has been removed from the CDM as it replicates content contained in Transfer
. Attribute initialFee
of data type CancelableProvision
has been updated to be of type Transfer
.
Review Directions
In the CDM Portal, select Textual Browser and review data type CancelableProvision
4.0.0-dev.15
Product Model - FpML Mappings - Credit Default Swaps
What is being released?
This release updates and extends the FpML mapping coverage for Credit Default Swap products.
- Mappings added to populate CDM attribute
creditDefaultPayout->settlementTerms->settlementType
- Mappings updated for FpML component
creditDefaultSwap->feeLeg
to correctly populate CDM attributesInterestRatePayout->calculationPeriodDates
andInterestRatePayout->paymentDates
.
Review Directions
In the CDM Portal, select Ingestion and review examples in the folder fpml-5-10 > products > credit
- fpml-5-10 > products > credit > cd-ex01-long-asia-corp-fixreg-versioned
- fpml-5-10 > products > credit > cd-ex16-short-us-corp-fixreg-recovery-factor-versioned
3.0.5
Product Model - FpML Mappings - Credit Default Swaps
What is being released?
This release updates and extends the FpML mapping coverage for Credit Default Swap products.
- Mappings added to populate CDM attribute
creditDefaultPayout->settlementTerms->settlementType
- Mappings updated for FpML component
creditDefaultSwap->feeLeg
to correctly populate CDM attributesInterestRatePayout->calculationPeriodDates
andInterestRatePayout->paymentDates
.
Review Directions
In the CDM Portal, select Ingestion and review examples in the folder fpml-5-10 > products > credit
- fpml-5-10 > products > credit > cd-ex01-long-asia-corp-fixreg-versioned
- fpml-5-10 > products > credit > cd-ex16-short-us-corp-fixreg-recovery-factor-versioned
4.0.0-dev.13
Core CDM Contribution to FINOS - Repositioning of Collateral & Removal of ISDA Legal Documentation components in Preparation for Open Sourcing
Background
As part of the CDM transition to the Finance Open Source Foundation (FINOS), a new "Core CDM" has been constructed and will be transferred to FINOS.
All ISDA Legal Documentation components have been removed from this Core CDM. These will be managed as extensions of the model and positioned in a separate repository under a license at ISDA.
Collateral components (non legal) which have been developed by the CDM Collateral Working Group have been moved to a new namespace that is more appropriate for their further development through a new CDM Collateral working group at FINOS.
What is being released?
The
Agreement
type in the namespace cdm.legaldocumentation.contract still contains 4 attributes and their respective type definition remains in place for existing and other legal agreement components to be added. However, the structural details of these definition are now hollowed out as empty types. Their content will continue to be managed at ISDA separatelycreditSupportAgreementElections CreditSupportAgreementElections (0..1) <"Elections to specify a Credit Support Annex or Credit Support Deed for Initial or Variation Margin.">
collateralTransferAgreementElections CollateralTransferAgreementElections (0..1) <"Elections to specify a Collateral Transfer Agreement.">
securityAgreementElections SecurityAgreementElections (0..1) <"Elections to specify a Security agreement.">
masterAgreementSchedule MasterAgreementSchedule (0..1) <"Elections to specify a Master Agreement Schedule.">
The
Collateral
type and associated components have been moved to a new namespace cdm.product.collateral for further development outside the legaldocumentation namespace which was no longer appropriate.Content related to ISDA FLoating Rate Indices meta and reference data has also been removed from cdm.observable.asset.fro as it is proprietary ISDA IP.
Associated Synonym file and in line mappings to the types mentioned afore and other related content have also been removed so that the contribution is functionally complete and stands alone without any errors or omissions.
A model containing the content mentioned will be published in an upcoming release and will be maintained by ISDA. Implementer will be able to integrated this model extension with the FINOS Core CDM for applicable use cases.
Review Directions
In the CDM Portal, select the textual representation of the model and inspect the different model components mentioned above.
4.0.0-dev.11
Product Model - Performance Payout - Valuation dates
Background
This release completes the representation of the valuation dates for a performance payout with the specification of the initial dates, that was previously missing.
What is being released?
The attribute valuationDatesInitial
of type PerformanceValuationDates
has been added to specify the initial valuation dates of the underlyer. The corresponding synonym mapping has also been introduced.
Review Directions
In the CDM Portal, select the textual representation of the model and inspect the representation of the valuation dates of a PerformancePayout
.
Product Model - FpML Mappings - Bond Reference for Interest Rate Payout
What is being released?
Synonym mapping has been added to populate the bondReference
attribute in data type InterestRatePayout
so that the reference to a bond underlier and the applicability of the Precedent bond condition. The latter denotes that the contract is only valid if the bond is issued and that if there is any dispute over the terms of the fixed stream then the bond terms will be used.
Review Directions
In the CDM Portal, select Ingestion and review the following example:
- fpml-5-10 > incomplete-products > inflation-swaps > inflation-swaps-ex02-yoy-bond-reference
Product Model - Enumeration Referencing FpML Scheme
What is being released?
InflationRateIndexEnum is now linked to the FpML Coding Scheme through use of the docReference
functionality. The contents of the enumeration list will now be automatically kept in line with the latest FpML scheme information.
Review Directions
In the CDM Portal, select the Textual Browser and review InflationRateIndexEnum
.
4.0.0-dev.10
Product Model - FpML Scheme - Enumeration Update
Background
FpML version 5.13 contains scheme updates. The CDM Enumerations have been re-synced with the FpML source in order to contain the latest information.
What is being released?
FloatingRateIndexEnum
has been updated to contain additional values.
Review Directions
- In the CDM Portal, select the Textual Browser, and review the enumeration mentioned above.
4.0.0-dev.8
Product Model - Qualification Functions - Bug Fixes
What is being released?
This release fixes a defect related to the following function Qualify_SubProduct_FixedFloat
.
Previously, the qualification function Qualify_SubProduct_FixedFloat
did not cater for product featuring an inflation rate on the interestRatePayout
. This issue has now been resolved.
Review Directions
In the CDM Portal, select the Textual Browser, and review the functions mentioned above.
4.0.0-dev.7
CDM Distribution - Upgrade per Common Vulnerabilities and Exposures (CVE) Standards
What is being released?
A part of the CDM Contribution to FINOS, all third party dependencies have been verified and updated when necessary according the FINOS requirements for Common Vulnerabilities and Exposures
More details on requirements is available with:
- Common Vulnerabilities and Exposures (CVE): https://community.finos.org/docs/governance/software-projects/cve-responsible-disclosure/
- License Validation: https://community.finos.org/docs/governance/Software-Projects/license-categories
CDM Distribution - Implementation examples for Qualification
What is being released?
Examples of Qualification Logic have been included in the Java distribution to illustrate usage and inform implementation.
Review Directions
Download and inspect the CDM Examples and open the Java file: src/main/java/com/regnosys/cdm/example/qualify/QualificationReportExample.java
Infrastructure - 5.13 Synonym Source
What is being released?
Infrastructure changes required to work with FpML 5.13 Synonym Source.
Review Directions
Download and inspect the additional FpML_5_13
Synonym source in the following file: src/main/rosetta/mapping-fpml-synonym.rosetta
4.0.0-dev.4
Infrastructure - Qualification
What is being released?
This release contains a bug fix related to qualification. If multiple qualification matches are found, no qualifier will now be set, and an error will be generated.
Review Directions
This bug fix does not affect any examples in CDM as none were qualifying with multiple matches.
The fixed can be found in com.regnosys.rosetta.common.postprocess.qualify.QualificationResult.java.
3.0.3
Infrastructure - Qualification
What is being released?
This release contains a bug fix related to qualification. If multiple qualification matches are found, no qualifier will now be set, and an error will be generated.
Review Directions
This bug fix does not affect any examples in CDM as none were qualifying with multiple matches.
The fixed can be found in com.regnosys.rosetta.common.postprocess.qualify.QualificationResult.java.
4.0.0-dev.3
Infrastructure - Security Update
What is being released?
Third party software libraries updated to comply with the “Common Vulnerabilities and Exposures” standard (CVE, https://www.cve.org/).
3.0.2
Infrastructure - Security Update
What is being released?
Third party software libraries updated to comply with the “Common Vulnerabilities and Exposures” standard (CVE, https://www.cve.org/).
4.0.0-dev.1
CDM Model - Function Bug Fixes
What is being released?
This release contains two bug fixes related to functions that compare quantities.
- func
CompareTradeLotToAmount
- change required to compareQuantity->value
only if it exists. This change will fix the use-case where theQuantity
contains a schedule, hence thevalue
attribute will be empty and should not be compared. - func
QuantityDecreasedToZero
- change required to comparison of the before and afterQuantity
values. The function previously compared that all beforeQuantity
values were greater than zero, but has now been changed to greater or equal to zero to handle the use-case where one of the before tradeQuantity
values are zero.
Review Directions
In the CDM Portal, select the Textual Browser, and review the functions mentioned above.
3.0.1
CDM Model - Function Bug Fixes
What is being released?
This release contains two bug fixes related to functions that compare quantities.
- func
CompareTradeLotToAmount
- change required to compareQuantity->value
only if it exists. This change will fix the use-case where theQuantity
contains a schedule, hence thevalue
attribute will be empty and should not be compared. - func
QuantityDecreasedToZero
- change required to comparison of the before and afterQuantity
values. The function previously compared that all beforeQuantity
values were greater than zero, but has now been changed to greater or equal to zero to handle the use-case where one of the before tradeQuantity
values are zero.
Review Directions
In the CDM Portal, select the Textual Browser, and review the functions mentioned above.
4.0.0-dev.0
CDM Model - Version 4-DEV
What is being released?
This release contains the ISDA CDM 4-DEV development version
Development Guidelines have been developed which describe how version management will be handled across the Development version and Production version.
Review Directions
- In the CDM Portal, navigate to
Downloads
and review the ISDA CDM 3 and ISDA CDM 4 DEV Java artefacts. - In the CDM Portal, navigate to
Documentation
and then toDevelopment Guidelines > Version Management
section, or directly at: https://cdm.docs.rosetta-technology.io/source/contribution.html#version-management, to review the development practices.
3.0.0
CDM Model - Version 3
What is being released?
ISDA CDM 3.0 addresses the following scope:
- Comprehensive representation of Interest Rate, Equity, Credit, and Foreign Exchange derivative products, Financial Commodity products, and Security Lending products including product qualification aligned with the ISDA Product Taxonomy v.2.0.
- Extensive event model based on a set of functional building blocks used to compose the business events that mark the post-trade life-cycle of financial transactions.
- Data model supporting the digitisation of the CPMI IOSCO’s Critical Data Elements technical guidance and the various global reporting regulations for OTC derivatives transaction across the G20 regions, including in particular the updated US CFTC Part 43 and Part 45 technical specifications.
- Machine-executable representation of all ISDA defined day count fractions and interest amount calculations, covering the new Floating Rate Options from the 2021 ISDA Definitions.
- Representation of the ISDA new generation collateral documentation as integrated with CreateiQ documents, and the standardised digital representation of Eligible Collateral Schedules.
- Mapping syntax with external data representation, supporting integration with FpML version 5.10 and 5.12, CreateiQ, ORE XML, DTCC Trade Warehouse Submission and Cash Notification protocols, and with the CME Clearing Submission and Clearing Notification protocols, for interest rate swap.
- Comprehensive set of examples, default implementation components, contribution guidelines and documentation to facilitate the CDM on-boarding by market participants, service providers and technology firms.
- Distributions of the model as code projected in nine different commonly used languages.
2.189.1
Product Model - FpML Mapping of Open Units for Baskets
Background
This release extends the product mapping coverage for the FpML Equity Swaps structure.
What is being released?
- Mappings for FpML component
openUnits
have been added to the model to mapQuantity.unit.financialUnit
correctly forequity
andindex
basket constituents.
Review Directions
In the CDM Portal, select Ingestion and review the following examples:
- fpml-5-10 > incomplete-products > equity-swaps > eqs-ex07-long-form-with-stub
- fpml-5-10 > incomplete-products > equity-swaps > eqs-ex08-composite-basket-long-form-separate-spreads
- fpml-5-10 > incomplete-products > equity-swaps > trs-ex01-equity-basket
2.188.1
Product Model - FpML Mapping of Commodity Swaption Exercise Terms
Background
This release extends the product mapping coverage for the FpML Commodity Swaption structure.
What is being released?
- Mappings for FpML component
physicalExercise
have been added to the model to map exercise terms for Commodity Swaptions.
Review Directions
In the CDM Portal, select Ingestion and review the following examples:
- fpml-5-10 > incomplete-products > commodity-derivatives > com-ex29-physical-eu-emissions-option
- fpml-5-10 > incomplete-products > commodity-derivatives > com-ex31-physical-us-emissions-option
2.187.1
Product Model - Transfer Type Enumeration
What is being released?
- The Enumeration list
TransferTypeEnum
has been renamedScheduledTransferTypeEnum
to identify more clearly cashflows associated with lifecycle events. - The Enumeration value
BrokerageCommission
has been repositioned from the relabeledScheduledTransferTypeEnum
toFeeTypeEnum
.
Review Directions
In the CDM Portal, select the Textual Browser, navigate to the model components mentioned above.
Product Model - FpML Mapping of Interest Rate Known Amount Schedule
Background
This release extends the product mapping coverage for the FpML Intererst Rates Known Amount Schedule structure.
What is being released?
- Relax the cardinality of
rateSpecification
to optional instead of required and add a condition thatrateSpecification
orprincipalPayment
must be present. - Update the mapping for the FpML element
knownAmountSchedule
toPayoutBase
’sPriceQuantity
. - Refine the qualification function for fixed float interest rate swap to cover the use case of single final payment.
Review Directions
In the CDM Portal, select the Textual Browser, navigate to types mentioned above and inspect their structural definitions and associated data conditions.
2.187.0
Legal Documentation & Collateral – Simulated IM/VM Collateral Exposure for an Execution
Background
This change allows collateral requirements to be associated to trade details at the pre-execution stage of the trade i.e. when necessary legal agreements may not be signed. The key limitation currently is that the CDM makes the agreement date a mandatory attribute of any legal documentation/agreement object. As a result the CDM is limited to only represent signed (i.e. executed) agreements.
In addition, the Independent Amount attribute of the Collateral
type has been incorrectly made mandatory. It is not always necessary, so this has been corrected.
What is being released?
This release includes the following
- Relax the cardinality of
agreementDate
to optional withinLegalAgreement
type and introduce logical conditions to enforce the presence of this data attribute when the legal document is supposed to have been agreed (signed) (e.g. for thecontractFormationInstruction
or associated functions). - Add
Collateral
details as an optional data input for anExecutionInstruction
and augment the correspondingcreate_Execution
function to link these details to the execution. - Relax the cardinality of the
independentAmount
attribute in the Collateral type so as to be optional and add the relevant condition to enforce that at least one component betweenindependentAmount
,portfolioIdentifier
andcollateralPortfolio
is present.
Review Directions
In the CDM Portal, select the Textual Browser, navigate to types mentioned above and inspect their structure definitions and associated data conditions.
2.186.4
Product Model - FpML Synonym Mapping Enhancements
What is being released?
This release fixes various FpML product synonym mapping issues identified through a review of unmapped fields.
- Product Identification - synonyms added to map
productTaxonomy
andproductIdentifier
more accurately - Various other mappings have been added to resolve validation issues previously appearing
Review Directions
In the CDM Portal, select Ingestion and review the samples below
- products > rates >
bond-option-uti
-productIdentifier
no longer incorrectly mapped on to bond option - incomplete-products > commodity-derivatives >
com-ex29-physical-eu-emissions-option
-productTaxonomy
correctly mapped
2.186.3
Product Model - Enhancements for Representation of Termination Provisions
Background
The CDM represents termination provisions such as optional or mandatory termination, extendible and cancellable provisions. Security finance transactions can have specific termination features such as open, extendible or evergreen. Those features have been introduced in the payout details using the existing termination provisions.
What is being released?
This release positions a new dedicated termination provision component, applicable across asset classes, inside the product's economic terms. This component assembles the existing termination provisions (early termination, extendible and cancellable) plus the evergreen provisions into a single data type.
In turn, the evergreen provisions and the associated duration components have become redundant and have been removed from the security finance payout.
Data types
Modified
EvergreenProvision
type:- Removed all its existing attributes
- Added
singlePartyOption
,noticePeriod
,noticeDeadlinePeriod
,noticeDeadlineDateTime
,extensionFrequency
andfinalPeriodFeeAdjustment
attributes
Modified
ExtendibleProvision
type:- Added
singlePartyOption
,noticeDeadlinePeriod
andnoticeDeadlineDateTime
attributes (same as inEvergreenProvision
) - Added
extensionTerm
andextensionPeriod
attributes - Marked
followUpConfirmation
attribute as optional
- Added
Added new
TerminationProvision
type:- Included
cancellableProvision
,earlyTerminationProvision
andextendibleProvision
attributes in that data type - Added
evergreenProvision
attribute in that data type
- Included
Modified
EconomicTerms
type:- Added
terminationProvision
attribute - Removed
cancellableProvision
,earlyTerminationProvision
andextendibleProvision
attributes (now encapsulated intoterminationProvision
) - Added
SecurityFinancePayoutDividendTermsValidation
condition (to enforce that a transaction with dividend terms specified must be a term trade) - Added
ExtendibleProvisionExerciseDetails
condition (to enforce that the appropriate exercise type is associated with each termination provision)
- Added
Removed
Duration
type (just marked as deprecated, for backward compatibility reasons), which previously containedevergreenProvision
Modified
SecurityFinancePayout
type:- Marked
duration
attribute as deprecated (its underlyingevergreenProvision
attribute is now encapsulated interminationProvision
) - Removed
DividendTermsValidation
condition (condition now positioned inEconomicTerms
)
- Marked
Modified
TradableProduct
type, so that paths used in conditions use the newterminationProvision
attribute
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select the Ingestion Panel and review the following examples:
- products > equity >
eqs-ex09-compounding-swap
- products > rates >
ird-ex16-mand-term-swap
- products > repo >
repo-ex02-repo-open-fixed-rate
2.186.2
Event Model - Representation of Credit Events and Corporate Actions
Background
The representation of credit events and corporate actions and the corresponding functional elements have been introduced in the model. Both types of events are represented as components of an ObservationEvent
. The later can be recorded in the new observationHistory
of a TradeState
by using the new primitive instruction ObservationInstruction
.
The representation of credit events and corporate actions does not include information about the impact of the event on a particular trade. The focus of this change is only to document the generic information published by the Determinations Committee on the occurence of a credit event or the basic information describing the ocurrence of a corporate action events.
What is being released?
- Model coverage for the determination of credit events.
- Model coverage for the ocurrence of corporate actions.
- Qualification functions for the determination of a credit event and corporate actions.
- Creation functions for credit events and corporate actions.
Data types
- Added new
ObservationInstruction
type. - Added new
ObservationEvent
type. - Added new
CreditEvent
type. - Added new
CorporateAction
type. observationHistory
attribute of typeObservableEvent
added toTradeState
.observation
attribute of typeObservationInstruction
added toPrimitiveInstruction
.- Type of
excludedReferenceEntity
inIndexReference information
changed toReferenceInformation
.
Enumerations
- Added new
CreditEventTypeEnum
enumeration. - Updated
EventIntentEnum
to support credit events. - Updated
CorporateActionTypeEnum
with more values and documentation. - Updated
FeeTypeEnum
enumeration to support credit events and corporate actions.
Functions
- Added new
Create_Observation
function. - Updated
Create_TradeState
function to supportobservation
. - Updated
Create_PrimitiveInstruction
function to supportobservation
. - Updated function
Create_StockSplit
to work with the introduced changes.
Qualification
- Added new
Qualify_CreditEventDetermined
function. - Added new
Qualify_CorporateActionDetermined
function.
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select the Instance Viewer, and review examples:
- Credit Event Business Event > Credit Event
- Credit Event Business Event > Credit Event With Observation History
- Corporate Actions Business Event > Corporate Actions
- Corporate Actions Business Event > Corporate Actions With Observation History
2.186.1
Base Model - Period Enum
Background
A review of Commodity products linked to the electricity market highlighted the need to represent a quantity specified on a per-hour basis. The quantity frequency attribute previously used a period enumeration whose smallest unit was day, not hour.
What is being released?
This release adds an H
enumerated value to PeriodExtendedEnum
and some corresponding mappings (although this does not affect any FpML sample in the current test pack).
In addition, a further review of time / period enumeration has revealed a number of overlapping components, which should be harmonised in future work (although not part of this release):
PeriodEnum
PeriodTimeEnum
TimeUnitEnum
Review Directions
In the CDM Portal, review the enumerations mentioned above.
2.186.0
DSL Syntax: List extract
Keyword to replace map
What is being released?
Following feedback from CDM users, this release adjusts the DSL keyword used to process a list of items. The keyword map
has been replaced with the keyword extract
. For backwards compatibility, using the map
keyword will remain possible for a limited time.
Syntax
Before
set outputList: inputList map [<Expression to modify item>]
After
set outputList: inputList extract [<Expression to modify item>]
Example
Before
func ExtractPriceType: inputs: prices Price (0..*) output: priceTypeEnums PriceTypeEnum (0..*) set priceTypeEnums: prices map [ item -> priceType ]
After
func ExtractPriceType: inputs: prices Price (0..*) output: priceTypeEnums PriceTypeEnum (0..*) set priceTypeEnums: prices extract [ item -> priceType ]
Review Directions
In the CDM Portal, open the Textual Browser and inspect the changes across the following functions:
func Create_Split
func BusinessCenterHolidaysMultiple
func CompareQuantityByUnitOfAmount
func VectorScalarOperation
func ReplaceParty
func QuantityIncreased
func QuantityDecreased
func CompareTradeStatesToAmount
func Create_Split
func UpdateSpreadAdjustmentAndRateOptions
func Create_BillingRecords
func Create_Return
func Create_BusinessEvent
func Qualify_Allocation
func Qualify_CashAndSecurityTransfer
func Qualify_PartialNovation
func Qualify_StockSplit
func Qualify_Reallocation
func UndisputedAdjustedPostedCreditSupportAmount
func DetermineObservationPeriod
func IndexValueObservationMultiple
func CashPriceQuantityNoOfUnitsTriangulation
func GetQuantityScheduleStepValues
2.185.4
Legal Documentation Model - Rename Legal Agreement Namespace to Legal Document
Background
As part of the transition of the Core CDM to a new repository, an analysis of the present CDM namespaces has been undertaken. A number of appropriate but minor changes have been identified which will be rolled out in coming weeks. One of which is to rename the namespace where legal agreement data models have been developed to be more generic and appropriate name and reposition some of the collateral work which may be more appropriately held in a namespace in the cdm.product namespace.
What is being released?
The cdm.legalagreement
namespace has been renamed to cdm.legaldocumentation
.
Created new namespace: cdm.product.collateral
Review Directions
In the CDM Portal, download the CDM Distribution and see the updated namespaces.
2.185.0
Legal Agreement Model - Enhancements for Eligible Collateral Concentration Limits
Background
This release follows recent work with ISDA members in the form of workshops to extend the eligible collateral representation in preperation for mapping and adoption.
What is being released?
The representation of concentration limits for Eligible Collateral applied to Equity Products has been enhanced with the below:
New attribute added to data type
ConcentrationLimitCriteria
namedaverageTradingVolume
to enable the user to specify an average trading volume on an exchange in relation to Equity productsNew data type added
AverageTradingVolume
for representing the average trading volume of an Equity product upon an exchange or set of exchangesAttributes added to data type
AverageTradingVolume
period
for representing the period of the equities average trading volume on the exchange/smethodology
for indicating the type of equity trading volume’
Attribute
methodology
has an associated enumeration modelled namedAverageTradingVolumeMethodologyEnum
which allows the user to specify a single or consolidated average trading volume across exchange/sAn additional enumeration has been added to the
ConcentrationLimitTypeEnum
list namedMarketCapitalisation
to indicate a limit of the issue calculated as a percentage of the market capitalisation of the asset on the market.Existing description for
IssueOutstandingAmount
under theConcentrationLimitTypeEnum
list had been updated as per member suggestions.Conditions have been added beneath the data type
EligibleCollateralCriteria
as follows:ConcentrationLimitTypeIssueOSAmountDebtOnly
a condition that concentration limit type 'IssueOutstandingAmount' is restricted to be used only if the asset type is described as 'Security' and 'Debt'.ConcentrationLimitTypeMarketCaplitalisationEquityOnly
a condition that concentration limit typeMarketCapitalisation
is restricted to be used only if the asset type is described asSecurity
andEquity
.AverageTradingVolumeEquityOnly
a condition that concentration limitAverageTradingVolume
is restricted to be used only if the asset type is described asSecurity
andEquity
A condition has been added beneath the data type
ConcentrationLimit
as followsPercentageConcentrationLimit
to enforce that percentage limit exists if the concentration limit type isMarketCapitalisation
Review Directions
In the CDM Portal, select the Textual Browser and inspect the changes mentioned above and across the following data types and enumerations:
ConcentrationLimit
ConcentrationLimitCriteria
AverageTradingVolume
ConcentrationLimitTypeEnum
AverageTradingVolumeMethodologyEnum
2.184.0
Product Model - FpmL Mapping Enhancements for Commodity Products
Background
The recent price and quantity schedule refactoring highlighted gaps in the coverage of the FpML commodity test pack related to FpML mappings.
What is being released?
This release completes mappings for 2 additional commodity products: a commodity swaption and a commodity swap with a custom schedule.
Review Directions
In the CDM Portal, select Ingestion and review the following new samples:
fpml-5-10 > products > commodity
commodity-option-energy-oil-ex01-cash
commodity-option-energy-nat-gas-ex02-cash
Product Model - FpML Mapping Enhancements for Equity Index Products
Background
The recent price and quantity schedule refactoring left some inconsistency in the treatment of the quantity of equity index vs single-name options.
In the single-name case the quantity being referenced in the option payout is a number of shares, whereas in the index case the quantity was a monetary amount (unless that monetary amount was itself absent, in which case the number of index units was referenced). This means that any post-trade processing of an option contract would have to be forked between those cases, including for reporting.
What is being released?
The index treatment has been aligned onto the single-name one and the quantity now reflects the number of index units in all cases.
Since there was no equity index option featuring both a monetary amount and a number of index units available in the FpML test pack, a new one has been synthesized based on an existing record-keeping sample and used to adjust the mapping.
Review Directions
In the CDM Portal, select Ingestion and review the new sample to illustrate the new behaviour:
- fpml-5-10 > products > equity >
equity-option-price-return-index-ex03-european-call
and compare for consistency with an existing sample:
- fpml-5-10 > products > equity >
eqd-ex04-european-call-index-long-form
2.183.2
Product Model - FpML Scheme - Enumeration Update
Background
A review FpMl scheme has identified that CDM Enumeration have become outdated and needed to be re-synced with FpMl Source.
What is being released?
- Updating schemeLocation to match value in CanonicalUri instead of LocationUri.
- Processes to extract latest scheme details from FpMl source.
- Updating Enumeration with new values.
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
2.183.0
Base Model - Naming Consistency for Measure Types
What is being released?
This release adjusts the name of types and attributes related to the Measure and Step data types to make them more consistent. It also folds the multiplier attributes that can be associated to a quantity into a a single, complex multiplier attribute.
Details
The following data types and attributes have been modified:
MeasureBase
: renamed attributesamount
intovalue
(more neutral, amount is generally associated with money) andunitOfAmount
intounit
.Measure
: added data type as an extension ofMeasureBase
with a condition requiring thevalue
attribute to be present.Step
: renamed asDatedValue
(previously a step could be mis-interpreted in a schedule as representing a 'delta').Step
: renamed attributesstepValue
asvalue
(in line with thevalue
attribute on aMeasure
) andstepDate
asdate
.MeasureSchedule
: renamedstep
attribute asdatedValue
, in line with the change in type.PriceSchedule
: renamed attributeperUnitOfAmount
asperUnitOf
.QuantitySchedule
: folded themultiplier
(number) andmultiplierUnit
attributes into a single, optionalmultiplier
attribute of typeMeasure
.
All synonyms and functional expressions have been updated to reflect the new structure and preserve existing behaviour.
Review directions
In the CDM Portal, select Textual Browser and review the types mentioned above.
For examples of how the quantity multiplier is now handled, select the Ingestion panel and review the following samples:
- FpML 5.10 > products > rates >
bond option uti
- FpML 5.10 > products > equity >
eqd ex04 european call index long form
2.182.3
Product Model - Simplification of the Commodity Schedule Type
What is being released?
This release updates the Commodity Schedule data type following the recent changes to the price and quantity schedules to only represents the custom period dates (start and end dates, fixing and payment dates). It no longer contains either price or quantity attributes. The price and quantity will be represented with the generic price and quantity schedules positioned in every payout structure.
As no existing trade sample with custom commodity schedule existed, no mapping has been done to map those to the new structure for now.
Details
The following data types and attributes have been modified:
SchedulePeriod
: removedquantity
,totalQuantity
andprice
.CommoditySchedule
: removedunitOfAmount
,priceExpression
andperUnitOfAmount
.CommodityPayout
: added aCalculationPeriod
choice condition that requires the period dates to be specified either as a parametricCalculationPeriodDates
or a non-parametricCommoditySchedule
.
Review directions
In the CDM Portal, select Textual Browser and review the types mentioned above.
Base Model - Deprecation of Duplicate TimeInterval Type
What is being released?
This release removes the TimeInterval data type which is a duplicate of the existing DateRange data type. This clean-up follows from the commodity schedule work, where that type was used to express period dates.
Details
The following data types and attributes have been modified:
SchedulePeriod
(as used inCommoditySchedule
): updated to use theDateRange
type instead ofTimeInterval
for thecalculationPeriod
andfixingPeriod
attributes.DateRange
: attribute names changed tostartDate
andendDate
(in line with how attributes were named inTimeInterval
).TimeInterval
: data type removed.
Synonyms have been adjsuted to reflect the new attribute names.
Review directions
In the CDM Portal, select Textual Browser and review the types mentioned above.
2.182.2
Product Model - Commodity Option
Background
This release extends the representation of the OptionPayout
type to over the gaps that commodity options currently have in the model. It also extends the possible ways of calculating averages in commodity products.
What is being released?
- The addition of the attribute
schedule
of typeCommoditySchedule
toOptionPayout
. - Modification of the averaging calculation representation to determine which type of weighting and which Pythagorean mean is being used.
- Mapping additions to support the changes above, and also the mappings of the payment dates on
SettlementTerms
.
Data Types
- Created type
AveragingCalculationMethod
, which containsisWeighted
andcalculationMethod
and their respective types:boolean
andAveragingCalculationMethodEnum
. - In
Reset
, changedaggregationMethodology
of typeAggregationMethod
toaveragingMethodology
of typeAveragingCalculation
. - Modified the attribute name
averagingMethod
inCommodityPayout
toaveragingFeature
and changed its type toAveragingCalculation
. - In
settlementDate
, changed the name ofadjustedDate
toadjustedOrRelativeDate
. - Added the attribute
schedule
of typeCommoditySchedule
toOptionPayout
so that commodity option products support the overwriting of their original schedule. - In
AveragingCalculation
, changed the name ofcalculationMethod
toaveragingMethod
. - Changed
averagingRateFeature
toaveragingFeature
in typeOptionFeature
. - In
PerformancePayout
, changedaveragingMethod
type fromAveragingMethodEnum
toAveragingCalculationMethod
.
Functions
- Updated
Create_SecurityFinanceReset
to support the changes onAveragingCalculationMethodEnum
. - Updated
Qualify_EquityOption_PriceReturnBasicPerformance_SingleName
,Qualify_EquityOption_PriceReturnBasicPerformance_Index
,Qualify_EquityOption_PriceReturnBasicPerformance_Basket
andQualify_ForeignExchange_VanillaOption
in order to support the change of theaveragingRateFeature
attribute name toaveragingFeature
inOptionFeature
.
Synonyms
- Added the synonyms needed to map the FpML attribute
averagingMethod
to the new averaging structure, as well as theschedule
mappings and therelativePaymentDates
tosettlementTerms
.
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select Ingestion and review commodity examples, including:
- fpml-5-10 > products > commodity > com-ex03-gas-swap-prices-last-three-days
- fpml-5-10 > products > commodity > com-ex04-electricity-swap-hourly-off-peak
- fpml-5-10 > products > commodity > com-ex05-gas-v-electricity-spark-spread
2.182.0
Product Model - Price Schedule
What is being released?
This release updates the Price attribute in the PriceQuantity object to be specified as a schedule (optionally) instead of just a single value. That price schedule attribute can then be referenced in a consistent structure positioned in PayoutBase.
This release does not deal with remapping all the price attributes that are currently present in various payout structures - this will be part of future work.
Background
A review of the price and quantity attributes respectively in the PriceQuantity
object (outside the Payout
) and in the ResolvablePayoutQuantity
(inside the Payout
) identified some inconsistencies in how schedules were represented.
Previously, only a single point-in-time value was present in the PriceQuantity
object for each price. This value was then referenced as a Price
attribute in different payout structures depending on the type of payout (e.g. a RateSchedule
, a SpreadSchedule
etc.). In case the price was specified as a schedule, the single value in the PriceQuantity
object represented the schedule's initial value while the rest of the schedule (date and value pairs) was directly specified in the payout-specific structure.
This release allows the PriceQuantity
object to contain the entire schedule or just a single value for the price. It also adds a price schedule attribute to the generic ResolvablePriceQuantity
structure (which supersedes ResolvablePayoutQuantity
) positioned in PayoutBase
. This structure now references the full price and quantity information (including schedule, if any) from the PriceQuantity
object but does not store any actual value.
Details
The following data types and attributes have been modified:
PriceQuantity
: theprice
attribute is now specified as aPriceSchedule
.ResolvablePriceQuantity
: renamed fromResolvablePayoutQuantity
ResolvablePriceQuantity
: now contains apriceSchedule
attribute with multiple cardinality. This attribute is associated to ametadata address
notation to reference theprice
attribute inPriceQuantity
.RateSchedule
: removed the separateinitialValue
andstep
attributes and replaced with the singlepriceSchedule
attribute, also associated to ametadata address
notation. Several structure extendRateSchedule
(e.g.SpreadSchedule
,StrikeSchedule
) and inherit that change.
Synonyms have been updated so that existing FpML price attributes (single value or entire schedule, if any) that mapped to RateSchedule
or its extended data types continue to map to those. The priceSchedule
attribute in ResolvablePriceQuantity
is not being populated yet from any source document.
All the functional logic has been adjusted to reflect the changed type of the price
attribute in PriceQuantity
.
Review directions
In the CDM Portal, select Textual Browser and review the types mentioned above.
To view an example of how rate schedules are now represented, select the Ingestion panel and review the following sample:
- fpml-5-10 > products > rates
- ird ex24 collar
2.181.2
Product Model - Legacy Product Model Concepts
Background
The Product
qualification functions contain logic referring to legacy product model concepts, specifically references to the cashflow payout that was previously used to represent payments.
What is being released?
- Removed product qualification logic that refers to legacy product model concepts (e.g. using cashflow to represent payments)
Background
In the CDM Portal, select Textual Browser and review the types mentioned above. E.g:
- func Qualify_AssetClass_CreditDefault
- func Qualify_CreditDefaultSwaption
- func Qualify_EquityOption_PriceReturnBasicPerformance_SingleName
- Qualify_EquityOption_PriceReturnBasicPerformance_Basket
2.181.1
Product Model - Quantity Schedule
What is being released?
This release updates the Quantity attribute in the PriceQuantity object to be specified as a schedule (optionally) instead of just a single value.
Background
A review of the price and quantity attributes respectively in the PriceQuantity
object (outside the Payout
) and in the ResolvablePayoutQuantity
(inside the Payout
) identified some inconsistencies in how schedules were represented.
Previously, only a single quantity value was present in the PriceQuantity
object and referenced in ResolvablePayoutQuantity
. In case the quantity was specified as a schedule, that single value represented the schedule's initial value while the rest of the schedule (date and value pairs) was directly specified in ResolvablePayoutQuantity
.
This release allows the PriceQuantity
object to contain the entire schedule or just a single value for the quantity. This quantity schedule is then referenced in its entirety in ResolvablePayoutQuantity
, so the latter does not store any actual value.
Details
The following data types and attributes have been modified:
PriceQuantity
: thequantity
attribute is now specified as aNonNegativeQuantitySchedule
.ResolvablePayoutQuantity
: thequantitySchedule
attribute, which was already of typeNonNegativeQuantitySchedule
, is now associated to ametadata address
notation to reference thequantity
attribute inPriceQuantity
. That same notation has been removed from theresolvedQuantity
attribute.
Synonyms have been updated so that all FpML quantity attributes (single value or entire schedule, if any) now map to the quantity
attribute in PriceQuantity
. All direct mappings to the quantitySchedule
attribute in ResolvablePayoutQuantity
have been removed and replaced by a metadata reference. All direct mappings to the resolvedQuantity
attribute have also been removed.
All the functional logic has been adjusted to reflect the changed type of the quantity
attribute in PriceQuantity
.
Review directions
In the CDM Portal, select Textual Browser and review the types mentioned above.
To view examples of how quantity schedules are now represented, select the Ingestion panel and review the following samples:
fpml-5-10 > products > rates
- EUR variable notional uti
- GBP VNS uti
- USD VNS uti
2.181.0
Product Model - FpML Mapping of Product Identifier Source
Background
The data type ProductIdentifier
comprises an identifier and source to uniquely identify a product. For example, a Security identifier may be assigned a source of ISIN. The previous FpML mapping approach contained a number of issues where the identifier and source were mismatched.
What is being released?
Product Identifier
- A Build mapper for for the attributesource
has been created to simplify the conditions and correctly map the relevant values.
Review directions
In the CDM Portal, select Ingestion and review the FpML examples, including:
- fpml-5-10 > products > credit > cdm-cds-ref-ob-versioned.xml
- fpml-5-10 > products > equity > eqd-ex01-american-call-stock-long-form.xml
Event Model - Price of Packaged Transaction
Background
The BusinessEvent
type allows for the representation of packages details with the packageInformation attribute which is of type IdentifiedList
. This release adds a price
attribute to reflect the price of the related package.
What is being released?
- Added attribute
price
of typePrice
into theIdentifiedList
type.
Review directions
In the CDM Portal, select Textual Browser and review the types mentioned above.
2.180.1
Product Model - Principal Payments
Background
This release refactors the data types and attributes used to specify Principal Payments in the CDM.
What is being released?
Data type PrincipalExchanges
has been renamed PrincipalPayments
and added to PayoutBase
so that all Payouts that extend PayoutBase
can describe Principal Payment features. These features define whether intial, intermediate and final exchanges should occur, using a boolean attribute. The timing, value and direction of initial and final payments. And a schedule of intermediate payments.
A new attribute principalPaymentSchedule
has been added to PrincipalPayments
allowing the definition of initial and final principal payments, and a schedule of intermediate principal payments.
Data type PrincipalExchange
has been renamed PrincipalPayment
and refactored to explicitly define the direction of movement using a payerReceiver
attribute, and the amount of principal to be paid, defined using the complex type Money
.
The attribute principalExchange
has been removed from data type CashflowRepresentation
.
Review Directions
In the CDM Portal, select Textual Browser and view the data types and attributes identified above.
In the CDM Portal, select Ingestion and view the following example trade to review the new model structure:
- fpml-5-10 > products > rates > ird-ex06-xccy-swap-uti.xml
Event Model - BusinessEvent and Transfer Intent Enumerations
Background
The Enumeration lists used to specify the intent of a BusinessEvent
and Transfer
have been updated to enable a greater set of scenarios to be described using the CDM.
What is being released
The enumeration list EventIntentEnum
has been extended to allow declarative indication of intent for additional types of Business Events. A new enumeration list CorporateActionTypeEnum
has been added to identify the specific nature of a Corporate Action. The enumeration list TransferTypeEnum
has been updated to allow declarative indication of additional Transfer Types.
The following changes have been made to EventIntentEnum
:
Enumerations added:
- CashFlow
- PrincipalExchange
- CorporateActionAdjustment
- ObservationRecord
- NotionalStep
- NotionalReset
- EarlyTermination
- OptionalExtension
- OptionalCancellation
- Decrease
Enumerations updated:
- ContractTermsAmendment (previously Renegotiation)
- OptionExercise (previously Exercise)
Enumerations removed:
- StockSplit
CorporateActionTypeEnum
has been created containing the following enumerations:
- CashDividend
- StockDividend
- StockSplit
- ReverseStockSplit
- SpinOff
- Merger
- Delisting
- StockNameChange
- StockIdentifierChange
- RightsIssue
The following changes have been made to TransferTypeEnum
:
Enumerations added:
- FixedRateReturn
- FloatingRateReturn
- FractionalAmount
Enumerations updated:
- PrincipalPayment (previously PrincipalExchange)
Enumerations removed:
- Interest
Review Directions
In the CDM Portal, select Textual Browser and view the enumerations identified above.
2.180.0
Product Model - Performance Payout - Structural Definition Enhancements
Background
A review of the Performance Payout has identified opportunities for structured enhancements e.g. cardinality, former commodity-related attributes, and the dividend structure. This release also addresses minor mapping improvements for performance and commodity payouts.
What is being released?
- Updated cardinality for several attributes in
PerformancePayout
. - Removed commodity related attributes from
PerformancePayout
. - Renamed several
PerformancePayout
attributes. - Added model support for basket component-specific
DividendPayoutRatio
. - Minor mapping improvements.
Data types
The attribute
primaryRateSource
in typeFxSpotRateSource
renamed asprimarySource
.The attribute
secondaryRateSource
in typeFxSpotRateSource
renamed assecondarySource
.The attribute
dividendPayoutRatio
in typeDividendPayout
(nowDividendPayoutRatio
) renamed astotalRatio
.The attribute
dividendPayout
in typeDividendReturnTerms
renamed asdividendPayoutRatio
.The attribute
dividendPayoutRatioCash
in typeDividendPayout
(nowDividendPayoutRatio
) renamed ascashRatio
.The attribute
dividendPayoutRatioNonCash
in typeDividendPayout
(nowDividendPayoutRatio
) renamed asnonCashRatio
.Removed
rounding
attribute from typePriceReturnTerms
.Removed
spread
attribute from typePriceReturnTerms
.Removed
rollFeature
attribute from typePriceReturnTerms
.Removed
averagingMethod
attribute from typePerformancePayout
.Cardinality for
fxFeature
changed to(0..*)
in typePerformancePayout
.Cardinality for
pricingTime
changed to(0..1)
in typeObservationTerms
.Condition
PricingTime
added to typeObsevationTerms
Translate
- Mappings adapted to changes introduced in this contribution.
- Minor mapping improvements for
PerformancePayout
andCommodityPayout
.
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select Ingestion and review the following samples:
fpml-5-10/products/equity
- eqs-ex01-single-underlyer-execution-long-form
- eqs-ex01-single-underlyer-execution-long-form-other-party
- eqs-ex06-single-index-long-form
- eqs-ex09-compounding-swap
- eqs-ex10-short-form-interestLeg-driving-schedule-dates
- eqs-ex11-on-european-single-stock-underlyer-short-form
- eqs-ex12-on-european-index-underlyer-short-form
- eqs-ex13-pan-asia-interdealer-share-swap-short-form
fpml-5-10/incomplete-products/equity-swaps
- eqs-ex08-composite-basket-long-form-separate-spreads
- trs-ex01-equity-basket
DSL Update: Improved validation of only-element
Background
This release of the Rosetta DSL resolves a technical issue in the performance of the only-element
expressions.
What is being released?
The incorrect outcome of only-element
, in particular when only-element
operator is used on a singular expression, has been resolved.
Review Directions
This change does not impact the CDM model.
2.179.4
Product & Event Model - Qualification Functions
Background
This release reorganises the Qualification functions into their own namespace to improve organisation of the model code.
What is being released?
All Qualification functions previously under cdm.product.common
have been moved into a new namespace cdm.product.qualification
.
All Qualification functions previously under cdm.event.common
have been moved into a new namespace cdm.event.qualification
.
Review Directions
In the CDM Portal, select Textual Browser and view the functions mentioned above.
2.179.2
Product Model - Price and Quantity Schedule
Background
This (non-functional) release begins to refactor the price and quantity components so they can accomodate schedules.
What is being released?
The Price
and Quantity
data types both extend a basic type called MeasureBase
, which represents a measure as a combination of a value and a unit.
This release maintains the common ancestry of Price
and Quantity
to MeasureBase
but introduces additional ancestors to allow those components to support schedules.
Specifically, a new MeasureSchedule
data type now extends MeasureBase
with an additional schedule of date and value pairs as an optional step
attribute, instead of just the single amount
value. New PriceSchedule
and QuantitySchedule
data types are introduced that both extend MeasureSchedule
with the same system of units and multiplier attributes previously found on Price
and Quantity
.
In MeasureBase
, the amount
attribute is now optional. MesureSchedule
requires at least one of the amount
or step
attributes to be present, so that there is at least one value.
The existing Price
(resp. Quantity
) data type is now a specialised extension of PriceSchedule
(resp QuantitySchedule
) that requires the additional schedule attribute to be absent. This structure allows to introduce those additional base components while preserving the original behaviour of Price
and Quantity
as they are currently used to model products and events.
Review Directions
In the CDM Portal, select Textual Browser and view the attributes and data types above.
2.179.0
Product Model - Product Identification
Background
This release refactors the data attributes and data types used to identify and classify products in the CDM.
What is being released?
Data type ProductIdentification
has been removed from the CDM which previously contained a combination of concepts describing both the taxonomy of a product and also a productIdentifier
used to identify a specific product.
The below attributes have been added to ProductBase
which can now be used to consistently identify any type of Product in the model using two distinct concepts:
productIdentifier
- data typeProductIdentifier
comprises an identifier and source to uniquely identify a product. For example an ISIN assigned to a Security.productTaxonomy
- data typeProductTaxonomy
comprises attributes allowing the indication of a family, or class, that the product is a member of. For example a CFI code, or the ISDA Taxonomy.
ProductTaxonomy is composed of the following attributes:
primaryAssetClass
- Classifies the most important risk class of the productsecondaryAssetClass
- Classifies additional risk classes of the trade, if anytaxonomyValue
- Specifies a taxonomy value assigned to the product, for example a CFI code, an ISDA Taxonomy valuetaxonomySource
- Enumerates the taxonomy source associated with thetaxonomyValue
providedproductQualifier
- Derived from the product payout features using a CDM product qualification function that determines the product type based on the product payout features
When a productQualifier
is derived for a product the associated taxonomySource
value of ISDA
is automatically populated as the CDM currently qualifies products using the ISDA Taxonomy classification scheme.
All data types defined as attributes of Product
in the CDM (e.g. ContractualProduct, Security, Commodity) now extend ProductBase
in order to inherit the attributes above.
Review Directions
In the CDM Portal, select Textual Browser and view the attributes and data types above.
In the CDM Portal, select Ingestion and view the following example trade to review the new model structure:
- fpml-5-10 > products > rates > USD-Vanilla-swap.xml
Product Model - Non-standard Terms
What is being released?
A boolean attribute nonStandardisedTerms
has been added to EconomicTerms
in order to identify where economic details exist that have not been captured in the CDM representation of the product. This has been done in order to develop support for the FpML genericProduct
concept.
Review Directions
In the CDM Portal, select Textual Browser and view the attributes and data types above.
Product Model - PayoutQuantity cardinality
What is being released?
The cardinality of payoutQuantity
within data type ProductBase
has been updated to be optional, this is to allow the model to correctly support Interest Rate Swaptions where the payoutQuantity is defined as part of the underlying product. Interest Rate Swaption examples in the CDM were previously failing validation as there was no payoutQuantity
value populated on the optionPayout
component of the product representation.
Conditions have been added to all payout types other than OptionPayout
to require a payoutQuantity
to be populated.
Review Directions
In the CDM Portal, select Textual Browser and view the following data types:
PayoutBase
- note thatpayoutQuantity
is now optionalInterestRatePayout
- note conditionQuantity
which requires apayoutQuantity
to exist. The same condition exists on all other Payouts apart fromOptionPayout
In the CDM Portal, select Ingestion and view the following example, note that there is no longer a validation failure for a missing payoutQuantity
on optionPayout
:
- fpml-5-10 > products > rates > ird-ex09-euro-swaption-explicit-physical-exercise.xml
2.177.0
Event Model - Illustrative Reference Implementations for WorkflowSteps
What is being released?
This change adds programmatic examples of how to use the Event model functions to create a WorkflowStep
from a TradeState
and an Instruction
.
Review Directions
In the CDM Portal, select Downloads page, and download the ISDA CDM as Java Examples project. Open the project and review the Java classes below:
com.regnosys.cdm.example.functions.CreatePartialTerminationEventTest
com.regnosys.cdm.example.functions.CreateNovationEventTest
2.176.4
Event Model - FpML Synonym Mappings for amendment events
Background
The FpML mapping for business events was previously adjusted to map FpML event messages to a WorkflowStep
instruction, i.e., a WorkflowStep
containing a proposed BusinessEvent
. Doing so enabled the use of the WorkflowStep
instruction with the function Create_AcceptedWorkflowStepFromInstruction
to create the corresponding fully-specified WorkflowStep
.
What is being released?
This release extends the FPML synonym mappings to address amendment events.
Review Directions
In the CDM Portal, select Ingestion and review the samples below, which have been mapped to WorkflowStep
instructions:
fpml-5-10/incomplete-processes/msg-ex59-execution-advice-trade-amendment-F02-00.xml
fpml-5-10/incomplete-processes/msg-ex60-execution-advice-trade-amendment-correction-F02-10.xml
In the CDM Portal, select Instance Viewer, and review the above samples in the FpML Processes
folder, which create fully-specified Workflowstep
events from the ingested instructions.
Product Model - FpML Synonym Mapping for the Product Identifier of Bond Options
What is being released?
FpML mappings have been enhanced to support mapping of productIdentifier
for Bond and Convertible Bond Options.
Review Directions
In the CDM Portal, select Ingestion and review the samples below, which now contain a product identifier:
fpml-5-10/products/rates/bond-option-uti.xml
fpml-5-10/products/rates/cb-option-usi.xml
Product Model - FpML Synonym Mapping for FX Volatility Swaps
What is being released?
FpML mappings have been enhanced to resolve issues with the FpML mappings for FX Volatilty Swaps. volatilityStrike
and currency of vegaNotional
are now both mapped
Review Directions
In the CDM Portal, select Ingestion and review the sample below, which now contain a product identifier:
fpml-5-10/incomplete-products/fx-derivatives/fx-ex31-volatility-swap.xml
2.176.3
Workflow Model - Creation of Workflow Steps with multiple Event Identifiers
What is being released?
This release adjusts the WorkflowStep creation functions to allow multiple identifiers to be associated with a single WorkflowStep. The attribute eventIdentifier
within data type WorkflowStep
is of unbound cardinality. The corresponding creation functions should accordingly permit multiple values as an input for that attribute.
Review Directions
In the CDM Portal, select Textual Browser and review the functions listed below:
Create_WorkflowStep
Create_AcceptedWorkflowStep
Create_ProposedWorkflowStep
2.176.2
Event Model - Removal of Legacy Primitive Events
Background
This release follows the recent work on the composable business event model using Instruction type and the corresponding creation function, Create_BusinessEvent. The previous approach would composed business events with with primitive events. Theese are no longer needed. Business Events are now described through the combination of Instructions and the resulting after Trade States.
What is being released?
This release removes the final legacy PrimitiveEvent and adjust the associated modelling elements.
- Removed Types
- PrimitiveEvent
- ExecutionPrimitive
- ContractFormationPrimitive
- SplitPrimitive
- QuantityChangePrimitive
- ResetPrimitive
- TermsChangePrimitive
- TransferPrimitive
- Renamed functions that referred to primitive but no longer returned an event primitive type, e.g Create_ExecutionPrimitive renamed to Create_Execution
- Removed functions: QuantityDecreasedPrimitive, QuantityDecreasedToZeroPrimitive, CompareQuantityChangePrimitives, CompareQuantityChangePrimitive
- Updated all qualification functions that referred to EventPrimitive
Review Directions
In the CDM Portal, select Textual Browser and review the types and function mentioned above.
2.175.2
Product Model - Equity Qualifying Functions
Background
This release extends the qualification for equity products, in particular for basic performance equity product with a single name, an index or a basket as underlier.
What is being released?
This release adjusts the qualification logic for equity swap products to aligned with the specified ReturnTerms
, rather than the specified ReturnTypeEnum
.
Qualify_EquitySwap_PriceReturnBasicPerformance_SingleName
Qualify_EquitySwap_TotalReturnBasicPerformance_SingleName
Qualify_EquitySwap_PriceReturnBasicPerformance_Basket
Qualify_EquitySwap_PriceReturnBasicPerformance_Index
Review Directions
In the CDM Portal, select Textual Browser and review the corresponding qualification functions
In the CDM Portal, select Ingestion and review the samples in the folders below havve been qualified adequately:
- fpml-5-10 > products > equity-swaps
- fpml-5-10 > incomplete-products > equity-swaps
2.175.1
Product Model - Equity Qualifying Functions
Background
This release extends the qualification for equity products, in particular for basic performance equity options with an index or a basket as underlier.
What is being released?
- Two new qualifying functions:
Qualify_EquityOption_PriceReturnBasicPerformance_Index
andQualify_EquityOption_PriceReturnBasicPerformance_Basket
. - The fixing of the ISDA_Taxonomy synonym values for index transaction types. The current value is
Index
but it has to beSingleIndex
.
Functions
product-common-func
Added the Qualify_EquityOption_PriceReturnBasicPerformance_Index
and Qualify_EquityOption_PriceReturnBasicPerformance_Basket
functions since they were missing.
Event Model - Removal of Unused Synonym Mappings for the Legacy Event Model and Corresponding Ingestion Samples
Background
This release follows the recent work on the composable business event model using Instructions and the corresponding creation function, Create_BusinessEvent
. The previous approach using business events composed with primitive events was illustrated with several mocked up samples. Those were enabled with artificial XML schema and associated synonym mapping. They are no longer needed.
What is being released?
This release removes the legacy event model XML schema (based on primitive event), the corresponding synonym mappings (i.e., synonym source Workflow_Event
), and ingestion samples previously illustrating the business event composed with primitive events.
Review Directions
In the CDM Portal, select Textual Browser and review that the Workflow_Event
synonym mappings have been removed.
In the CDM Portal, select Ingestion and review that the legacy event samples have been removed.
2.175.0
DSL - CDM Distribution - Java Code Generation For Functions with Data Validations
What is being released?
This release improves the Java code generation for functions related to the handling condition
and post-condition
failures. The default implemetation will will throw an exception. Implementers can reconfigure or extend this outcome based on their specific requirements, for example additional logging, error reporting etc.
Review Directions
In the CDM Portal, download the Java distribution and inspect the generated function classes, and the default handler class org.isda.cdm.function.DefaultConditionValidator.java
.
2.173.0
Event Model - Correction and Cancellation visualisation examples
Background
This release follows the recent work on the composable business event model, and the subsequent migration of the visualisation examples from the legacy model to the new model.
What is being released?
Visualisation examples for Correction and Cancellation workflows have been updated.
Review Directions
In the CDM Portal, select the Instance Viewer, review the visualisation examples in the Workflow Step folder.
2.172.1
Product Model - Party Contact Information Synonym Mapping
Background
This release extends the FpML to CDM syonynm mappings for Party Contact Information.
What is being released?
Additional synonym mappings have been added to map Party and Business Unit contact information.
Review Directions
In the CDM Portal, select Ingestion and review party
attribute on the sample below:
- fpml-5-10 > processes > msg-new-trade-CFTC-clearing
Product Model - FX Variance and Volatility Synonym Mapping
Background
This release extends the FpML to CDM syonynm mappings for FX Variance and Volatility products.
What is being released?
Additional synonym mappings have been added to map informationSource
and businessCenters
.
Review Directions
In the CDM Portal, select Ingestion and review the samples below:
- fpml-5-10 > incomplete-products > fx > fx-ex30-variance-swap
- fpml-5-10 > incomplete-products > fx > fx-ex31-volatility-swap
Documentation: Composable event model
Background
Following the roll-out of the composable event model, the documentation is being updated to reflect the new design.
What is being released?
This release updates al the content (text, diagrams and snippets) under the Event Model section of the user documentation.
Review Directions
In the CDM Portal, navigate to the user documentation part and then go to the Event Model section, or directly at: https://cdm.docs.rosetta-technology.io/source/event-model.html.
2.172.0
CDM Model: Realignment between Namespaces and Filenames
Background
Following Release 2.170.0 .rosetta filenames and namespaces for synonyms still had some inconsistency.
What is being released?
This release re-synchronises the filenames and namespaces.
Review Directions
In the CDM Portal, you can download a CDM distribution and inspect filenames versus namespaces.
2.171.0
Product Model - Equity Payout Removal
Background
The new Payout
PerformancePayout
was recently introduced to allow for representation of a wider variety of products, both new (Variance, Volatility, Correlation and Dividend Swaps) and already supported ones (Basic Price Return and Total Return Swaps). This release removes the deprecated EquityPayout
and adapts all related functions to use the PerformancePayout
.
What is being released?
- Removed
EquityPayout
and associated deprecated types. - Functions associated to
EquityPayout
have been removed or adapted.
Data types
The following types have been adapted to PerformancePayout
:
Payout
- removedequityPayout
attributeSettlementOrigin
- removedequityPayout
attributeEquitySwapMasterConfirmation2018
- updated conditionCreate_SecurityFinanceReset
- updated description
The following types have been removed from the model:
EquityPayout
EquityDividendReturnTerms
EquityPriceReturnTerms
EquityValuation
Enumerations
- Value
TradeDate
added toDividendDateReferenceEnum
- Value
Variance
,Volatility
andDividend
removed fromReturnTypeEnum
Functions
The following functions have been added to the model:
ResolvePerformanceObservationIdentifiers
ResolveEquityValuationTime
ResolvePerformanceReset
NewSingleNamePerformancePayout
ResolvePerformancePeriodStartPrice
The following functions have been removed from the model:
ResolveEquityObservationIdentifiers
ResolveEquityValuationDate
ResolveEquityValuationTime
ResolveEquityReset
NewSingleNameEquityPayout
ResolveEquityPeriodStartPrice
ResolveEquityPeriodEndPrice
The following functions have been adapted to PerformancePayout
:
ResolvePerformanceReset
EquityCashSettlementAmount
EquityPerformance
Create_ResetPrimitive
CalculateTransfer
ResolveTransfer
NewEquitySwapProduct
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
2.170.0
CDM Model: Realignment between Namespaces and Filenames
Background
Subsequent to the multiple versions of the CDM, the .rosetta filenames and namespaces have become inconsistent.
What is being released?
This release re-synchronises the filenames and namespaces.
Review Directions
In the CDM Portal, you can download a CDM distribution and inspect filenames versus namespaces.
2.169.3
Event Model - Mapping CME and DTCC events
Background
This release follows the recent work on the event model, which introduced a composable model for representing business events. Recent releases have updated FpML synonyms to re-map from the old to the new model.
What is being released?
This release updates the CME and DTCC synonym mappings to use the composable Event model.
Review Directions
In the CDM Portal, select Ingestion and review the samples in the cme-cleared-confirmed-1-17 and dtcc-11-0 folders.
In the CDM Portal, select Instance Viewer, and review the above samples in the cme-cleared-confirmed-1-17 and dtcc-11-0 folders.
2.169.2
Product Model - Party Contact Information
Background
This release extends the Party model to include Party Contact Information.
What is being released?
The ContactInformation
data type has been added to Party
and NaturalPerson
to allow representation of Party address related information.
The PartyContractInformation
data type has been removed from the CDM model. The data type handles concepts specific to Regulatory Reporting that will be handled in the DRR model.
Synonym mappings have been updated to reflect the model changes.
Review Directions
In the CDM Portal, select Textual Browser and reviw the data types above.
In the CDM Portal, select Ingestion and review the samples below:
- isda-create > test-pack > production > 2018-im-csa-ny-law/2.2 > tp2-metadata2_cdm
- fpml-5-10 > incomplete-products > loan > Loan_Bulk_ex100
Product Model - Product Identification Synonym Mapping
Background
This release extends the FpML to CDM synonym mappings for product identification.
What is being released?
The enhancing of the Product Identification mapping to handle a product description and the identification of a CFI code.
Types
base-staticdata-asset-common-enum
- Added the enumeration
Name
to the enumeration listProductIdTypeEnum
Synonyms
synonym-cdm-fpml
- Added mapping coverage for the
description
FpML element. - Added mapping coverage for an
externalProductTypeSource
ofCFI
.
Review Directions
In the CDM Portal, select Ingestion and review the samples below:
- fpml-5-10 > products > equity > eqd-ex01-american-call-stock-long-form
- fpml-5-10 > products > credit > cdm-cds-ref-ob-versioned
Product Model - Interest Rate Product Qualification
Background
This release updates the Interest Rate Product Qualification rules to more accurately qualify OIS transactions.
What is being released?
The composable qualification rule Qualify_Transaction_OIS
has been updated to include additional OIS Floating Rate Options so that Interest Rate Swap OIS contracts are qualified more accurately.
Review Directions
In the CDM Portal, select Textual Browser and reviw the function above.
In the CDM Portal, select Ingestion and review the samples below:
- fpml-5-10 > products > rates > NDS-INR-uti
2.169.1
Product Model - FpML mapping of Basic Price Return and Total Return Swaps
Background
The Payout
performancePayout
was recently introduced to allow for representation of a wider variety of products, both new (Variance, Volatility, Correlation and Dividend Swaps) and already supported products (Basic Price Return and Total Return Swaps). In previous releases, the PerformancePayout
was used to represent new products, and the deprecated EquityPayout
was used to represent Basic Price and Total Return Swaps.
What is being released?
The FpML synonyms for Basic Price and Total Return Swaps have been moved from EquityPayout
to PerformancePayout
.
The following types and attributes have been updated:
ValuationDates
type added to the modelEquityValuationDates
type renamed asPerformanceValuationDates
PerformancePriceReturnTerms
type renamed asPriceReturnTerms
PerformanceDividendReturnTerms
type renamed asDividendReturnTerms
DividendPeriod->dividendPeriodStartDate
attribute renamed asstartDate
DividendPeriod->dividendPeriodEndDate
attribute renamed asendDate
- Enum value
TradeDate
added toDividendDateReferenceEnum
The following qualification functions have been adapted for PerformancePayout
:
Qualify_BaseProduct_EquitySwap
Qualify_EquitySwap_PriceReturnBasicPerformance_SingleName
Qualify_EquitySwap_TotalReturnBasicPerformance_SingleName
Qualify_EquitySwap_PriceReturnBasicPerformance_Index
Qualify_EquitySwap_TotalReturnBasicPerformance_Index
Qualify_EquitySwap_PriceReturnBasicPerformance_Basket
Qualify_EquitySwap_TotalReturnBasicPerformance_Basket
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select Ingestion and review the following samples:
fpml-5-10/products/equity
- eqd-ex01-american-call-stock-long-form.xml
- eqd-ex04-european-call-index-long-form.xml
- eqs-ex01-single-underlyer-execution-long-form.xml
- eqs-ex01-single-underlyer-execution-long-form-other-party.xml
- eqs-ex06-single-index-long-form.xml
- eqs-ex09-compounding-swap.xml
- eqs-ex10-short-form-interestLeg-driving-schedule-dates.xml
- eqs-ex11-on-european-single-stock-underlyer-short-form.xml
- eqs-ex12-on-european-index-underlyer-short-form.xml
- eqs-ex13-pan-asia-interdealer-share-swap-short-form.xml
- eqs-ex14-european-interdealer-share-swap-short-form.xml
2.168.1
Floating Rate Index Reference Data model - Extended FloatingRateIndexDefinition
Background
Since the design of the CDM Floating Rate Index Definition model in 2021, the ISDA 2021 Interest Rate Definitions have expanded the metadata requirements. This change reflects the latest metadata specifications for ISDA Floating Rate Options.
What is being released?
FROs Metadata extensions
Extended FloatingRateIndexDefinition
type with:
Changed existing
fro
element fromFloatingRateOption
type to a newFloatingRateIndexIndentification
typeAdded new
FloatingRateIndexIndentification
type with:- New
floatingRateIndex
element ofFloatingRateIndexEnum
type - New
currency
element ofISOCurrencyCodeEnum
type - New
froType
element ofstring
type
- New
Changed existing
supportedDefinition
element fromContractualDefinitionsEnum
type to a newContractualDefinition
typeAdded new
ContractualDefinition
type with:- New choice between:
- New
contractualDefinitionIdentifier
element ofContratcualDefinitionIdentifier
type- New
contractualDefinitionType
element ofContractualDefinitionsEnum
type - New
contractualDefinitionVersion
element ofstring
type
- New
- Existing
identifier
element ofidentifier
type
- New
- New
publicationDate
element ofdate
type
- New choice between:
Extended existing
FloatingRateIndexMap
type with:- New choice between:
- New
contractualDefinitionIdentifier
element ofContratcualDefinitionIdentifier
type- New
contractualDefinitionType
element ofContractualDefinitionsEnum
type - New
contractualDefinitionVersion
element ofstring
type
- New
- Existing
identifier
element ofidentifier
type
- New
- New choice between:
Changed cardinality of
externalStandard
element withinFloatingRateIndexExternalMap
type. From required (lower bound eq 1) to optional (lower bound eq 0)Extended existing
FloatingRateIndexCalculationDefaults
with:- Changed cardinality of
fixing
element ofFloatingRateIndexFixingDetails
type. From upper bound eq 1 to unbounded. - Removed
fixingTime
andfixingOffset
elements - New
publicationCalendar
element ofBusinessCenterEnum
type
- Changed cardinality of
Added new
inLoan
element ofboolean
typeAdded new
history
element ofFroHistory
type- Added new
FroHistory
type with:- New
startDate
element ofdate
type - New
firstDefinedIn
element ofContractualDefinition
type - New
updateDate
element ofdate
type - New
lastUpdateIn
element ofContractualDefinition
type - New
endDate
element ofdate
type
- New
- Added new
Added new
administrator
element ofAdministrator
type- Added new
Administrator
type with:- New
name
element ofstring
type - New
website
element ofstring
type
- New
- Added new
Added new
deprecationReason
element ofstring
typeAdded new
fpmlDescription
element ofstring
typeExtended existing
FloatingRateIndexFixingDetails
with:- Changed cardinality of
fixingTime
element. From unbounded to upper bound eq 1 - Removed
alternativeFixingTime
element - Changed cardinality of
fixingOffset
element. From unbounded to upper bound eq 1
- Changed cardinality of
Extended existing
FloatingRateIndexFixingTime
with:- New
fixingTimeDefinition
ofstring
type - New
fixingReason
ofstring
type
- New
Extended existing
BusinessDayOffset
with:- New
fixingTimeDefinition
ofstring
type - New
fixingReason
ofstring
type
- New
Review Directions
In the CDM Portal, select the Textual Browser and search and inspect the FloatingRateIndexDefinition
type.
Event Model - Mapping FpML novation events
Background
The FpML mapping for business events was previously adjusted to map FpML event messages to a WorkflowStep
instruction, i.e., a WorkflowStep
containing a proposed BusinessEvent
. Consequently a CDM implementer can use the WorkflowStep
instruction with function Create_AcceptedWorkflowStepFromInstruction
to create the corresponding fully-specified WorkflowStep
event.
What is being released?
This release extends the FPML synonym mappings to address novation events.
Review Directions
In the CDM Portal, select Ingestion and review the samples below, which have been mapped to WorkflowStep
instructions:
- fpml-5-10/processes/msg-ex52-execution-advice-trade-partial-novation-C02-00.xml
- fpml-5-10/processes/msg-ex53-execution-advice-trade-partial-novation-correction-C02-10.xml
- fpml-5-10/processes/msg-novation-from_transferor.xml
In the CDM Portal, select Instance Viewer, and review the above samples in the FpML Processes
folder, which create fully-specified WorkflowStep
events from the ingested instructions.
2.168.0
Infrastructure
What is being released?
- Release updated bundle to fix a bug in the CDM release pipeline
2.166.1
Product Model - FX Variance and Volatility Swaps
Background
The new Payout
performancePayout
was recently introduced to allow for representation of a wider variety of products, not only from the equity asset class, but also from any product involving a return determined by an observation. This release introduces support for the first non-equity products, namely FX variance swaps and FX volatility swaps.
What is being released?
- Minor changes to Performance Payout to enable it to accommodate FX variance and FX volatility swaps.
- Mapping coverage for FX variance and FX volatility swaps.
- Minor adjustments to FX qualification functions.
Functions
dayType
added toPeriodicDates
type (base-datetime-type)price
removed fromEquityObservation
type (observable-asset-type)- Type of
boundedCorrelation
changed fromBoundedCorrelation
toNumberRange
(product-asset-type) numberOfObservationDates
added toObservationTerms
type (product-common-schedule-type)- Unused
AveragingObservation
type removed (product-common-settlement-type) - Type
performancePayout
moved to product-template-type (product-common-settlement-type) observationTerms
added toperformancePayout
(product-template-type)
Qualification
Minor changes to:
- Qualify_ForeignExchange_ParameterReturnVariance
- Qualify_ForeignExchange_ParameterReturnVolatility
Translate
Added mapping coverage for FX variance and FX volatility swaps.
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select Ingestion and review the following samples:
fpml-5-10/incomplete-products/fx-derivatives
- fx-ex30-variance-swap.xml
- fx-ex31-volatility-swap.xml
2.166.0
Infrastructure - Function Java Code Generation
What is being released?
This release updates the Java code generation for functions to ensure the function output object is cleaned of any empty objects, which can cause issues in implementing systems.
Review Directions
In the CDM Portal, select Instance Viewer and review the function outputs on the Visualisation panel.
2.165.0
Product Model - Performance Payout - Variance and Dividend Options
Background
The new Payout
performancePayout
was recently introduced to allow for representation of a wider variety of products. In this release, support for Options with a performance underlier has been introduced. In these products the use of PerformancePayout
is not direct, but indirect, as the product underlying the option.
What is being released?
- Minor changes to Performance Payout to enable it to accommodate Variance and Dividend Options.
- Mapping coverage for Variance and Dividend Equity Options.
- Qualification functions for Variance, Volatility, Correlation and Dividend Options.
Types
product-asset-type
- Removed
extraordinaryEvents
fromVarianceReturnTerms
type. - Removed
extraordinaryEvents
fromVolatilityReturnTerms
type. - Added
multipleExchangeIndexAnnexFallback
toValuation
type. - Added
componentSecurityIndexAnnexFallback
toValuation
type.
product-template-type
- Added
EquitySpecificAttributes
condition toPerformancePayout
type. - Added
expirationTimeType
attribute toEuropeanExercise
type.
Enumerations
- Added
ExpirationTimeTypeEnum
.
Translate
synonym-cdm-fpml
Added mapping coverage for Variance, Volatility, Correlation and Dividend Options:
- Qualify_EquityOption_ParameterReturnVariance_SingleName
- Qualify_EquityOption_ParameterReturnVariance_Index
- Qualify_EquityOption_ParameterReturnVariance_Basket
- Qualify_EquityOption_ParameterReturnVolatility_SingleName
- Qualify_EquityOption_ParameterReturnVolatiliy_Index
- Qualify_EquityOption_ParameterReturnVolatiliy_Basket
- Qualify_EquityOption_ParameterReturnCorrelation_Basket
- Qualify_EquityOption_ParameterReturnDividend_SingleName
- Qualify_EquityOption_ParameterReturnDividend_Index
- Qualify_EquityOption_ParameterReturnDividend_Basket
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select Ingestion and review the following samples:
fpml-5-10/products/variance-swaps
- eqvs-ex06-variance-option-transaction-supplement
- eqvs-ex07-variance-option-transaction-supplement-pred-clearing
fpml-5-10/products/dividend-swaps
- div-ex04-dividend-swap-option-transaction-supplement
- div-ex05-dividend-swap-option-gs-example
- div-ex06-dividend-swap-option-pred-clearing
Product Model - FpML mappings for Equity
What is being released?
This release fixes FpML product synonym mapping issues for FpML equityOption
samples, focusing on settlement type and currency.
Review Directions
In the CDM Portal, select Ingestion and review the samples specified below.
- fpml-5-10/incomplete-products/equity-options
- fpml-5-10/products/equity
2.164.0
Product Model - Party and Person Identification
Background
This release contains a set of changes to Party
and Person
identification. The model now supports the enumeration of the nature of an identifier for both partyId
and personId
instead of relying on FpML metadata schemes to qualify the source of the identifier.
In addition, this release fixes an issue with a missing mapping for FpML knownAmountSchedule
.
What is being released?
- Change to partyId structure
- Added new type
PartyIdentifier
allowing a Party to be represented by an identifier and an enumeration partyId
updated to be of typePartyIdentifier
- Added new
PartyIdentifierTypeEnum
with two values, BIC and LEI
- Added new type
- Change to personId structure
- Added new type
PersonIdentifier
allowing a Person to be represented by an identifier and an enumeration personId
updated to be of typePersonIdentifier
- Added values
NPID
andPLID
, and removed valuesBIC
andLEI
fromPersonIdentifierTypeEnum
- Added new type
- Updated model to model mappings as a result of the partyId and personId changes
- Fix for
knownAmountSchedule
mapping
Review Directions
In the CDM Portal, select the Textual Browser and search and inspect the updated partyId
and personId
structures and the associated enumerations PartyIdentifierTypeEnum
and PersonIdentifierTypeEnum
.
In the CDM Portal, select Ingestion and review the following sample trade to see partyId
and personId
changes:
- fpml 5-10 > products > rates> USD-Vanilla-swap
2.163.4
Product Model - FpML mappings for Commodity and Credit
What is being released?
This release fixes various FpML product synonym mapping issues for commodity and credit samples.
- Commodity - synonyms added to map FpML
commoditySwaption
samples that were previously unmapped. - Credit - synonyms updated to fix the mapping of FpML
periodicPayment
elements intopaymentDates->paymentDateSchedule->interimPaymentDates->periodicDates
.
Review Directions
In the CDM Portal, select Ingestion and review the samples specified below.
fpml-5-10/incomplete-products/commodity-derivatives
- com-ex22-physical-gas-option-multiple-expiration.json
- com-ex23-physical-power-option-daily-expiration-efet.json
- com-ex29-physical-eu-emissions-option.json
- com-ex31-physical-us-emissions-option.json
- com-ex47-physical-eu-emissions-option-pred-clearing.json
fpml-5-10/incomplete-products/credit-derivatives (all samples)
2.163.2
Event Model - Mapping to CDM representation of business event
Background
The current mapping of FpML event messages to CDM requires pointing to BusinessEvent
with a set of PrimitiveEvent
. This approach deviates from the recommended design that uses a set of after TradeState
and a set of Instruction
, each including a before Tradestate
. Structurally, many FpML events messages are analogous to the latter. A few model changes have been made and synonyms have been adjusted to enable a more systematic mapping to a WorkflowStep
instruction. The latter can then be processed by a CDM function to create the corresponding fully-specified WorkflowStep
event.
What is being released?
This release focuses on the synonym mapping and infrastructure changes to map FpML events to WorkflowStep
instruction and subsequently invokes a function to create a WorkflowStep
event.
Model changes
- Add new type
EventInstruction
to group the attributes required forBusinessEvent
creation, i.e., List ofInstruction
, an optionalEventIntentEnum
and an event date. - Update
WorflowStep
attributesproposedEvent
andnextEvent
to use the typeEventInstruction
. - Add new function
Create_AcceptedWorkflowStepFromInstruction
to create a fully-specifiedWorkflowStep
event from an inputWorkflowStep
instruction.
Ingestion and infrastructure changes
- The
FpML_Processes
samples for Contract Formation and Termination events have been mapped toWorkflowStep
instruction. - The changes in
synonym-cdm-fpml-processes.rosetta
are focused on typesWorkflowStep
,EventInstruction
andInstruction
. - The
WorkflowStep
instructions are then processed by theCreate_AcceptedWorkflowStepFromInstruction
function to create aWorkflowStep
event.
Review Directions
In the CDM Portal, select the Textual Browser and review types and functions mentioned above.
In the CDM Portal, select Ingestion and review the samples below, which have been mapped to WorkflowStep
instructions:
- fpml-5-10/processes/msg-ex51-execution-advice-trade-initiation-C01-00.xml
- fpml-5-10/processes/msg-ex58-execution-advice-trade-initiation-F01-00.xml
- fpml-5-10/processes/msg-ex63-execution-advice-trade-initiation.xml
- fpml-5-10/processes/msg-partial-termination.xml
In the CDM Portal, select Instance Viewer, and review the samples in the FpML Processes
folder, which create WorkflowStep
events from the ingested instructions.
2.162.4
Legal Agreement Model - Features to categorise CSA documents
What is being released?
This change allows the explicit categorisation of the ISDA Credit Support documents. This is particularly helpful for documents published since 2016 that currently carry the margin type (Variation or Initial) only in the agreement name. The adjustments include:
- New attribute
creditSupportAgreementMarginType
added to data type nameAgreementName
- Conditions added to ensure that a CSA margin type is only specified if a credit support agreement type is specified as an agreement name, and it published year
vintage
is > = 2016 - A new enumeration list
CreditSupportAgreementMarginTypeEnum
with options forVariationMargin
andInitialMargin
Review Directions
In the CDM Portal, select the Textual Browser and search and inspect the addition of creditSupportAgreementMarginType
as an attribute to the data type AgreementName
.
Please also inspect the related conditions that have been updated in the model named CSAMarginType
under the data types listed here:
LegalAgreementIdentification
AgreementName
Inspect the associated enumeration list CreditSupportAgreementMarginTypeEnum
and its contents VariationMargin
.
Collateral Model - Features to link transactions and collateral portfolios
What is being Released
This change represents the association between a trade, the corresponding collateral portfolios and balances as prescribed by underlyig legal agreements (e.g. IM/VM CSA). The following is included:
- New attributes added to data type
Collateral
forportfolioIdentifier
andcollateralPortfolio
. This allows users to identify collateral portfolios related to a trade and to list the collateral components and resulting balances. - New attribute
payerReceiver
added to data typeCollateralBalance
. This allows the representation of both the Payer Receiver (party1 or party2) and the Collateral direction (posted or received) - New attribute
collateralAgreement
added to data typeCollateralPortfolio
. This allows the direct association of a portfolio with a collateral agreements. - The data type
CollateralPortfolio
has been made a[root Type]
to allow for independent use in the model
Review Directions
In the CDM Portal, select the Textual Browser and search and inspect the additions laid out above across the following data types:
Collateral
CollateralBalance
CollateralPortfolio
2.162.3
Reporting - CFTC
Background
This release will fix the regulatory rule ReportingTimestamp
to output the correct ISO8601 date time format.
What is being released
- The
Now
function used in CFTC reporting has now been updated to generate the correct timestamp format.
Review Directions
- In Rosetta open up a DRR workspace and navigate to the
Reports
tab - Select Report
CFTC / Part45
and DatasetCFTC Event Scenarios
- Scroll to column
97 Reporting timestamp
and notice the new format
2.162.2
Product Model - Commodity Swaps
Background
This release enhances the financial commodity products coverage in CDM by adding a set of structures needed to fully describe commodity products. Particularly, a new Schedule structure allows full representation of a commodity swap and supports standard schedule customization. It expresses all the dates, quantities, and pricing data in a non-parametric way.
What is being released
- A new schedule structure added for commodity swaps, available in the
FixedPricePayout
and theCommodityPayout
. - A new fixed price schedule added to
FixedPricePayout
to support a fixed price with steps. - Updated
quantitySchedule
insidePayoutQuantity
to better support a quantity with steps. - A new commodity description element has been added.
- Fixed FpML mapping issue for
instrumentId
to be able to support Commodity Reference Prices. - Added missing FpML mapping values for
quantityFrequency
.
Types
base-staticdata-asset-common-type
Added the description
element, of type string
, within Commodity
.
observable-asset-type
Created the FixedPrice
type, which contains fixedPriceSchedule
of type NonNegativePriceSchedule
.
product-common-schedule-type
Updated the NonNegativeQuantitySchedule
type, allowing the specification of the steps at the same level as the initial quantity, not within an unnecessary stepSchedule
element.
Created the NonNegativePriceSchedule
type, with the structure described before.
product-common-settlement-type
Added the schedule
element, of type CommoditySchedule
, within CommodityPayout
.
product-template-type
Updated the FixedPricePayout
type:
- Changed the type of
fixedPrice
fromPrice
toFixedPrice
. - Added the
schedule
element, of typeCommoditySchedule
.
Created the CommoditySchedule
type, which contains:
unitOfAmount
andperUnitOfAmount
of typeUnitType
.priceExpression
of typePriceExpression
.- The repeatable element
schedulePeriod
of typeSchedulePeriod
.
Created the SchedulePeriod
type, which contains:
quantity
,totalQuantity
andprice
of typenumber
.paymentDate
of typedate
.calculationPeriod
andfixingPeriod
of typeTimeInterval
.
Created the TimeInterval
type, which contains two elements: startDate
and endDate
of type date
.
Functions
product-asset-calculation-func
Updated the GetQuantityScheduleStepValues
function due to the new structure of the quantity schedule.
Synonyms
synonym-cdm-fpml
Added mapping coverage for the FpML element instrumentId
, mapped it into productIdentifier
inside the commodity underlier.
Expanded the coverage on the mapping of the quantity frequency by adding the synonyms for the FpML codes PerMonth, PerCalculationPeriod and Term.
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select Ingestion and review the following samples:
- fpml-5-10/products/commodity
- fpml-5-10/incomplete-products/commodity-derivatives
2.162.0
Product Model - Correlation and Dividend Swaps
Background
The PerformancePayout
was recently introduced to allow for representation of a wider variety of equity products including Price and Total Return Swaps, plus a new range of Equity Return Swaps, namely variance (including its dispersion variant), volatility, correlation and dividend swaps. The first release included mapping coverage for variance and volatility, while the present one adds coverage for correlation and dividend swaps.
What is being released
- Mapping coverage for correlation swaps
- Mapping coverage for dividend swaps
- Minor adjustments to equity qualification functions
- Fixes for variance and volatility mappings
Functions
product-common-func
Added only exists
replacing exists
for conditions specifying the type of underlier
or the type of returnTerms
required in variance, volatility, correlation and dividend qualification functions.
Updated functions:
Qualify_EquitySwap_ParameterReturnVariance_SingleName
Qualify_EquitySwap_ParameterReturnVariance_Index
Qualify_EquitySwap_ParameterReturnVariance_Basket
Qualify_EquitySwap_ParameterReturnVolatility_SingleName
Qualify_EquitySwap_ParameterReturnVolatility_Index
Qualify_EquitySwap_ParameterReturnVolatility_Basket
Qualify_EquitySwap_ParameterReturnCorrelation_Basket
Qualify_EquitySwap_ParameterReturnDividend_SingleName
Qualify_EquitySwap_ParameterReturnDividend_Index
Qualify_EquitySwap_ParameterReturnDividend_Basket
Qualify_ForeignExchange_ParameterReturnVariance
Qualify_ForeignExchange_ParameterReturnVolatility
Qualify_ForeignExchange_ParameterReturnCorrelation
Removed fixedPricePayout count = 1
condition for dividend swaps, thus allowing for multiple period dividend swaps to be qualified.
Updated functions:
Qualify_EquitySwap_ParameterReturnDividend_SingleName
Qualify_EquitySwap_ParameterReturnDividend_Index
Qualify_EquitySwap_ParameterReturnDividend_Basket
Translate
synonym-cdm-fpml
Fixed volatility and dispersion mapping issues.
Added mapping coverage for correlation swaps and dividend swaps. Correlation swaps use PerformancePayout
alone, while dividend swaps use the PerformancePayout
structure in combination with one or several FixedPricePayout
.
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select Ingestion and review the following samples:
fpml-5-10/products/variance-swaps
- eqvs-ex04-dispersion-variance-swap.xml
- eqvs-ex05-dispersion-variance-swap-transaction-supplement.xml
fpml-5-10/incomplete-products/volatility-swaps
- eqvls-ex01-volatility-swap-index-matrix.xml
- eqvls-ex02-volatility-swap-index-mca.xml
fpml-5-10/products/correlation-swaps
- eqcs-ex01-correlation-swap.xml
- eqcs-ex02-correlation-swap.xml
- eqcs-ex03-correlation-swap.xml
- eqcs-ex04-correlation-swap.xml
fpml-5-10/products/dividend-swaps
- div-ex01-dividend-swap.xml
- div-ex02-dividend-swap-collateral.xml
- div-ex03-dividend-swap-short-form-japanese-underlyer.xml
User Documentation - Development Guidelines
What is being released
This release consolidates all the development guidelines into a single section in the CDM user documentation, and adds a specific sub-section regarding the agile development approach. It also includes some minor fixes and clean-ups.
In the CDM user documentation, there is now an entire section called "Development Guidelines". This section contains the following sub-sections:
- Governance (previously part of the "Overview" section)
- Design Principles (previously part of the "Overview" section)
- Agile Development Approach (new sub-section)
- How to Contribute (was previously a stand-alone section)
- Documentation Style Guide (was previously a stand-alone section)
In the "Overview" section, the governance and design principles parts have been replaced by references with links to that new "Development Guidelines" section of the user documentation.
Review Directions
In the CDM user documentation, navigate to the "Development Guidelines" section shown in the left-hand side panel.
2.161.0
Event Model - Index Transition, Reset, Stock Split visualisation examples
What is being Released
This release follows the recent work on the composable business event model and the corresponding creation function, Create_BusinessEvent
. Visualisation examples have been created for Index Transition, Reset and Stock Split business events.
This release also removes deprecated types and functions from the old event model. Some deprecated components from the old event model are still in use, mostly in ingestion examples, which will be migrated to the new event model and removed in future releases.
Review Directions
In the CDM Portal, select the Instance Viewer, review the visualisation examples in the Index Transition Business Event and Stock Split Business Event folders.
2.160.0
Legal Agreement Model - Enhancements for the categorisation of legal agreement
Background
The categorisation of legal agreements has been enhanced and a few data validation rule have been adjusted based on feedback from users.
What is being Released
Change of data type name
LegalAgreementType
toLegalAgreementIdentification
. This change uses a more relevant type name for identifying the legal agreement and avoids the unnecessary use of suffix 'type' in the label.Conditions have been updated in the model due to the renaming of
LegalAgreementType
tolegalAgreementIdentification
.Data type
AgreementName
has an additional condition added forcreditSupportAgreement
This condition ensures a credit support agreement type is specified if the legal agreement is a credit support agreement.Changes have been made to the logic in haircut percentages and Asset type conditions. In Data type
CollateralValuationTreatment
the related conditions forHaircutPercentage
,FxHaircutPercentage
andAdditionalHaircutPercentage
, have all been adjusted so the higher range of population is <1 instead of <=1.HaircutPercentage
has been adjusted so the lower range is >=0 instead of >0. These changes will address errors reported by users when using the model.Data type
AssetType
and its related conditionOtherAssetSubType
have been changed as foolows (assetType
<>AssetTypeEnum
toassetType
=AssetTypeEnum
). These changes will address errors reported by users when using the model.Within
MasterAgreementTypeEnum
ISDA
has been amended toISDAMaster
, this change was recommended by ISDA legal team and is more in line with the document name and avoids confusion with the publisher used when identifying the agreement type at a higher level in the model. Updates have also been made to the related ISDACreate and FPML synonyms
Review Directions
In the CDM Portal, select the Textual Browser and inspect the changes outlined above
2.159.0
Product Model - New Performance Payout
Background
This change addresses the gap in the CDM product model for representing variance, volatility, correlation, and dividend swaps. The model avoids the proliferation of new payouts with one central new Performance Payout to cover these type of swaps as well other products previously represented with the use of the Equity Payout (e.g price and total return swaps). The singular Performance Payout specifies a specific metric observed and the function applied by the means of different return terms, each of them featuring both shared and return-terms-endemic components. The corresponding structural definition covers all products sharing the following characteristics:
- Require the observation of an underlier to be made.
- The return is derived from the observed value of the underlier, either directly (as in price or total return swaps) or by applying a specific function to the observed value (as in variance, volatility, or correlation).
The new performance payout is not equity-exclusive. It cover other performance based products such as foreign exchange variance and volatility swaps, belonging to the Foreign Exchange asset class.
Given the complexity of the change, the previous equity payout has been temporarily maitained along with the new performance payout. All components affected by the change have been duplicated to allow the user to represent equity products either ways (except for the new variance, volatility and correlation, which were not included in the equity payout).
As this coexistence of both equity and performance payouts is devised as a temporary measure until the latter is fully tested, components associated with the older model have been marked as deprecated.
Change summary:
- New performance payout, intended to:
- Substitute the equity payout (price, total return products)
- Represent variance, volatility, correlation and partially dividend
- Added specific components for variance, volatility, correlation and dividend products.
- Renamed FixedForwardPayout to FixedPricePayout to better reflect its content and usage.
- Restructured date system for equity products. The attribute calculationPeriodDates replaced by valuationDates and observationDates for all performance products.
- Duplicated components to allow the coexistence of old and new representation of equity products (equityPayout/performancePayout and calculationPeriodDates/valuationDates and observationDates).
What is being released?
The summary below is divided into sections for Data Types, Enumerations, Functions and Translate.
Data Types
event-common-type
:
Modified
SettlementOrigin
– Added performancePayout. fixedForwardPayout replaced by fixedPricePayout.Lineage
– References to equityPayout deprecated. Equivalent references to performancePayoutAdded
observable-asset-type
:
New
EquityValuationDates
– With respect to EquityValuation, removed price attribute.EquityObservation
– Defines how and when a performance type option or performance type swap is to be observed. Structure analogous to that of EquityValuation.DividendApplicability
– The parameters which define whether dividends are applicable. Equivalent to the FpML Dividends.model.
Deprecated
EquityValuation
product-asset-type
:
New
PerformanceDividendReturnTerms
– Several components removed because they are represented in dividendReturnTerms -> dividendPeriod. Added attribute performance as a placeholder.DividendPeriod
– Time bounded dividend payment periods, each with a dividend payment date per period.PerformancePriceReturnTerms
– valuationPriceInterim replaced by valuationPriceInitial. Absorbed returnType to distinguish if the payout is part of a total return product, or it is price only. Absorbed elements formerly exclusive to commodity return terms (no longer present in the performance payout), but potentially applicable to equity products as well (rounding, conversionFactor, spread, rollFeature). Added attribute performance as a placeholder.ReturnTermsBase
– Contains all common components in variance, volatility and correlation return Terms.VarianceReturnTerms
– Contains all specific components required to represent a variance product and, through inheritance from ReturnTermsBase, those common to variance, volatility and correlation.VolatilityReturnTerms
– Contains all specific components required to represent a volatility product and, through inheritance from ReturnTermsBase, those common to variance, volatility and correlation.CorrelationReturnTerms
– Contains all specific components required to represent a correlation product and, through inheritance from ReturnTermsBase, those common to variance, volatility and correlation.Valuation
– Contains all non-date valuation information.EquityUnderlierProvisions
– Contains Equity underlier provisions regarding jurisdiction and fallbacks.VarianceCapFloor
– Contains possible barriers for variance products, both variance-based and underlier price based.BoundedVariance
– Contains conditions which bound variance when the contract specifies one or more boundary levels. These levels are expressed as prices for confirmation purposes.VolatilityCapFloor
– Contains containing volatility-based barriers.BoundedCorrelation
– Describes correlation bounds, which form a cap and a floor on the realized correlation.
Deprecated
DividendPayoutRatio
– underlier component deprecated. Following migration toPerformancePayout
, underlier can be removed from as it is already present in dividendPeriod, where it can be established for every period.DividendReturnTerms
PriceReturnTerms
product-common-schedule-type
:
New
DateRelativeToValuationDates
– Version of the functionDateRelativeToCalculationRates
usingEquityValuationDates
as an input instead ofCalculationPeriodDates
.
product-common-settlement-type
:
New
PerformancePayoutBase
– Removed calculationPeriodDates and replaced by valuationDates and observationDates. Used in the newPerformancePayout
.
Modified
FxFixingDate
– Version of the functionResetDates
usingEquityValuationDates
as an input instead ofCalculationPeriodDates
.
product-template-type
:
New
ReturnTerms
– Specifies the type of return of a performance payout: price, dividend, variance, volatility or correlation.PerformancePayout
– New performance payout. Contains the necessary specifications for all performance payouts, encompassing equity return, dividend, variance, volatility and correlation products.
Deprecated
EquityPayout
- Note that despite being deprecated, it is still used in the current version to allow for representation of equity products already present in the model through both the existingEquityPayout
and the newPerformancePayout
.
Modified
EconomicTerms
– condition ExtraordinaryEvents adapted to include performancePayout.Payout
– fixedForwardPayout attribute replaced by fixedPricePayout (name change). Added performancePayout attribute. Corresponding conditions added or modified.TradableProduct
– Conditions duplicated or modified to match the new performance structure.FixedForwardPayout
– Renamed asFixedPricePayout
.
Enumerations
base-math-enum
:
FinancialUnitEnum
– AddedVariance
andVolatility
values.
observable-asset-enum
:
PriceTypeEnum
– AddedVariance
andVolatility
values.
product-asset-enum
:
RealisedVarianceMethodEnum
– The contract specifies which price must satisfy the boundary condition.FPVFinalPriceElectionFallbackEnum
– Specifies the fallback provisions in respect to the applicable Futures Price Valuation.
Deprecated
ReturnTypeEnum
– ValuesVariance
,Volatility
andDividend
deprecated, since they now can be identified by their returnTerms. OnlyPrice
andTotal
values left as non deprecated.
Functions
event-common-func
:
Duplicates (changed references)
ResolvePerformanceValuationDate
– References to equityPayout replaced by references to performancePayout.ResolvePerformanceValuationTime
– References to equityPayout replaced by references to performancePayout.ResolvePerformanceReset
– References to equityPayout replaced by references to performancePayout.
Modified
NewEquitySwapProduct
– Reference to fixedForwardPayout replaced by reference to fixedPricePayout.
product-asset-func
:
New
ResolvePerformancePeriodStartPrice
– References to equityPayout replaced by references to performancePayout. References to calculationPeriodDates replaced by references to valuationDates.ResolvePerformancePeriodEndPric
e – References to equityPayout replaced by references to performancePayout. References to calculationPeriodDates replaced by references to valuationDates.
Deprecated
ResolveEquityPeriodStartPrice
ResolveEquityPeriodEndPrice
product-common-func
:
New
Qualify_EquitySwap_ParameterReturnVariance_SingleName
– Qualifies a product as an Equity Swap for which the performance is based on the variance changes on a single stock.Qualify_EquitySwap_ParameterReturnVariance_Index
– Qualifies a product as an Equity Swap for which the performance is based on the variance changes on an index.Qualify_EquitySwap_ParameterReturnVariance_Basket
– Qualifies a product as an Equity Swap for which the performance is based on the variance changes on a basket.Qualify_EquitySwap_ParameterReturnDispersion
– Qualifies a product as an Equity Swap for which the performance is based on the variance changes in several legs.Qualify_EquitySwap_ParameterReturnVolatility_SingleName
– Qualifies a product as an Equity Swap for which the performance is based on the volatility changes on a single stock.Qualify_EquitySwap_ParameterReturnVolatility_Index
– Qualifies a product as an Equity Swap for which the performance is based on the volatility changes on an index.Qualify_EquitySwap_ParameterReturnVolatility_Basket
– Qualifies a product as an Equity Swap for which the performance is based on the volatility changes on a basket.Qualify_EquitySwap_ParameterReturnCorrelation_Basket
– Qualifies a product as an Equity Swap for which the performance is based on changes in the correlation between the constituents of a basket.Qualify_EquitySwap_ParameterReturnDividend_SingleName
– Qualifies a product as an Equity Swap for which the performance is based on the dividend returns of a single stock.Qualify_EquitySwap_ParameterReturnDividend_Index
– Qualifies a product as an Equity Swap for which the performance is based on the dividend returns of an index.Qualify_EquitySwap_ParameterReturnDividend_Basket
– Qualifies a product as an Equity Swap for which the performance is based on the dividend returns of a basket.Qualify_ForeignExchange_ParameterReturnVariance
– Qualifies a product as Foreign Exchange Swap for which the performance is based on the variance of a foreign exchange underlier.Qualify_ForeignExchange_ParameterReturnVolatility
– Qualifies a product as Foreign Exchange Swap for which the performance is based on the volatility of a foreign exchange underlier.Qualify_ForeignExchange_ParameterReturnCorrelation
– Qualifies a product as Foreign Exchange Swap for which the performance is based on the correlation changes between the constituents of a basket.
Modified
Qualify_AssetClass_Equity
– Added products with underlier equity baskets as Equity Asset Class products.Qualify_BaseProduct_EquitySwap
– Added asset class check using Qualify_AssetClass_Equity to replace the former equityPayout check. Payout check changed from equity Payout to several payout combinations (all containing at least a performance payout) to reflect the payout structures of all the equity products now available.Qualify_EquitySwap_PriceReturnBasicPerformance_SingleName
– Qualification adapted to include performance payout. One interest and one performance payout is required.Qualify_EquitySwap_TotalReturnBasicPerformance_SingleName
– Qualification adapted to include performance payout. One performance (dividend), one performance (price) and one interest rate payout are required.Qualify_EquitySwap_PriceReturnBasicPerformance_Index
– Qualification adapted to include performance payout. One interest and one performance payout is required.Qualify_EquitySwap_TotalReturnBasicPerformance_Index
– Qualification adapted to include performance payout. One performance (dividend), one performance (price) and one interest rate payout are required.Qualify_EquitySwap_PriceReturnBasicPerformance_Basket
– Qualification adapted to include performance payout. One interest and one performance payout is required.Qualify_EquitySwap_TotalReturnBasicPerformance_Basket
– Qualification adapted to include performance payout. One performance (dividend), one performance (price) and one interest rate payout are required.Qualify_Commodity_Swap_FixedFloat
– References to equityPayout replaced by references to performancePayout.
product-common-schedule-func
:
New
ValuationPeriod
– Version of the functionCalculationPeriod
using valuationDates as an input instead of calculationPeriodDates. A Java implementation will be added as part of a future release.ValuationPeriods
– Version of the functionCalculationPeriods
using valuationDates as an input instead of calculationPeriodDates. A Java implementation will be added as part of a future release.
Translate
Added synonym coverage for variance and volatility swaps using the new performance payout. Other equity products not supported by the performance payout yet, but by the existing equity structure. Mappings and full coverage for equity products using the new performance payout are expected to be included in upcoming releases.
Review Directions
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.
In the CDM Portal, select Ingestion and review the following samples:
fpml-5-10/incomplete-products/variance-swaps
- eqvs-ex01-variance-swap-index.xml
- eqvs-ex02-variance-swap-single-stock.xml
- eqvs-ex03-conditional-variance-swap.xml
- eqvs-ex04-dispersion-variance-swap.xml
- eqvs-ex05-dispersion-variance-swap-transaction-supplement.xml
- eqvs-ex06-variance-option-transaction-supplement.xml
- eqvs-ex07-variance-option-transaction-supplement-pred-clearing.xml
fpml-5-10/incomplete-products/volatility-swaps
- eqvls-ex01-volatility-swap-index-matrix.xml
- eqvls-ex02-volatility-swap-index-mca.xml
2.158.0
Infrastructure change
- This release splits the build of the
CDM
from it's upstreamBundle
dependencies
2.156.3
Event Model - Exercise
Background
This release follows the recent work on the composable business event model and the corresponding creation function Create_BusinessEvent
.
The Exercise business event is now supported in the CDM through either a functional approach, for physical exercise of Interest Rate and Credit Swaptions only, or a declarative approach for other exercise scenarios.
Functional Model
For Physical exercise of Interest Rate Swaptions or Credit Default Swaptions the CDM functional model can create the required outputs through the use of a an exercise
Instruction passed into the Create_BusinessEvent
function.
Declarative Model
For Cash exercise, and for Physical exercise of Options that are not Interest Rate or Credit Default Swaptions a declarative model approach needs to be taken where the BusinessEvent is defined by a quantityChange
Instruction to close the Option, with an associated transfer
for Cash Exercise, or a quantityChange
Instruction to close the Option and a separate execution
Instruction for the replacement trade for Physical Exercise.
What is being released?
ExerciseInstruction
- updated to contain the necessary inputs to functionally instruct an exercise business event.Create_ExercisePrimitive
- new primitive event creation function used to functionally create the result of the physical exercise of an Interest Rate Swaption or Credit Default Swaption.Create_BusinessEvent
- updated to call Create_ExercisePrimitive
when input contains an exercise
instruction.Qualify_Exercise
- updated to correctly qualify an exercise business event based on the functional or declarative model.
The CDM contains the following visualisation examples to demonstrate the approach described.
- Swaption Full Cash Exercise
- Swaption Partial Physical Exercise
- Swaption Full Physical Exercise
- Cancellable Swap Exercise
Review Directions
In the CDM Portal, select the Textual Browser and review the data types and functions described above
In the CDM Portal, select Instance Viewer and review the visualisation examples above in the Exercise Business Event
folder
2.156.2
Legal Agreement Model - Rationalise Legal Agreement type identification
Background
The representation of legal agreements lacks consistency. Some agreements use the DocumentationIdentification
data type and are identified through a series of enumerations that point to individual instances of documents such as Master Agreements, Master Confirmation Agreements, Credit Support Agreements, Confirmations (e.g. Contractual Definitions, Contractual Terms Supplements etc) and Other Agreements. Some agreements use the LegalAgreement
data type and are identified through a composable set of attributes allowing the publisher, vintage, governing law and agremeent name to be specified.
The representation of Legal Agreement is therefore refactored through a standardised composition of data types using the LegalAgreement
data type as anchor. Credit Support Agreements have been fully refactored to follow this approach. Other documents will be re-factored in future releases.
What is being released?
This release contains the components required to represent Legal Agreements per the above approach. Model to model mappings have been updated. Changes are described based on the data types, attributes, enumerations and functions impacted.
Data Types
AgreementName
- This new data type categorises the agreement, describes addtional features and provides for the attributes previously found in DocumentationIdentification
.
DocumentationIdentification
- This has been removed.
RelatedAgreement
- This has been removed. All references have been updated to point to LegalAgreement
.
Attributes
attachment
- This attribute has been moved to LegalAgreementBase
to point to supplementary external documents.
clauseLibrary
- This boolean attribute has been moved to AgreementTerms
defining whether agreement terms have been negotiated using the Clause Library methodology.
Enumerations
LegalAgreementTypeEnum
- This new enumeration identifies the legal agreement type (e.g. Master Agreement, Confirmation, Credit Support Agreement).
CreditSupportAgreementTypeEnum
- This enumeration has been adjusted to remove the document publisher, vintage and governing law from their names as this information is now supported with the LegalAgreementType
component
This change also adjusts the label names and attributes of some of the related enumerations and data types.
Review Directions
In the CDM Portal, select the Textual Browser and search and inspect each of the changes identified above.
In the CDM Portal, select Ingestion and review the following samples with documentation:
Master Agreement, Master Confirmation and Confirmation
- fpml-5-10/products/credit/cdx-index-option.xml
Master Agreement and Confirmation
- fpml-5-10/products/credit/cd-ex01-long-asia-corp-fixreg-versioned.xml
Master Agreement and Credit Support Agreement
- events/novation-both-parties.xml
2.155.1
DSL Syntax - Remove deprecated DRR report syntax
What is being released?
This release removes the deprecated DSL syntax to specify DRR reports using the with fields
keywords.
An example of the previous syntax is as follows:
report CFTC Part43 in T+1 \twhen ReportableEvent \tusing standard ISO_20022 with fields \t\tReportingTimestamp \t\tReportingCounterpartyID \t\tTypeOfIdOfTheOtherCounterparty
Which has now been replaced by the following syntax:
report CFTC Part43 in T+1 when ReportableEvent \tusing standard ISO_20022 \twith type CFTCPart43TransactionReport type CFTCPart43TransactionReport: reportingTimestamp string (1..1) [ruleReference ReportingTimestamp] reportingCounterpartyID string (1..1) [ruleReference ReportingCounterpartyID] typeOfIdOfTheOtherCounterparty string (1..1) [ruleReference TypeOfIdOfTheOtherCounterparty]
Review Directions
There is no impact as the usages have already been replaced in DRR by the with type
keywords.
2.154.3
Infrastructure - Scheme Importer
What is being released?
This release turns the scheme importer into a reusable component that can be imported and used in models that extend the CDM.
Review Directions
There is no user impact of this release.
2.154.2
Event Model - Partial Novation, Clearing and Allocation Visualisation Samples
What is being released?
This release follows the recent work on the composable business event model and the corresponding creation function, Create_BusinessEvent. Visualisation examples have been created for Partial Novation, Clearing and Allocation business events.
Review Directions
In the CDM Portal, select the Instance Viewer, review the visualisation examples in the Novation Business Event, Clearing Business Event and Allocation Business Event folders.
2.153.4
Infrastructure - CDM Structure
What is being released?
- Developers can develop/maintain the ingestion tests, demo code, distribution, project and scheme importer so that changes can be made as part of the CDM
2.152.1
Product and Event Model - Migrate Java function implementations to native DSL
What is being released?
Following the recent addition of DSL syntax features, functions that were previously implemented in Java due to unsupported DSL features, have now been migrated to native DSL.
The migrated function namespace and names are listed below:
cdm.base.datetime
GetAllBusinessCenters
BusinessCenterHolidaysMultiple
cdm.event.common
UpdateIndexTransitionPriceAndRateOption
FindMatchingIndexTransitionInstruction
cdm.observable.asset.fro
IndexValueObservationMultiple
cdm.observable.event
ResolveObservationAverage
cdm.product.asset
ResolveEquityInitialPrice
cdm.product.asset.calculation
GetNotionalAmount
GetQuantityScheduleStepValues
cdm.product.asset.floatingrate
GetRateScheduleAmount
GetRateScheduleStepValues
Review Directions
In the CDM Portal, select Textual Browser and review the functions above.
2.151.0
Event model - Transfer FpML Processes and Record-Keeping mapping
What is being released?
Following the recent Transfer
model changes, and the corresponding FpML (Confirmation view) mappings to TradeState
, this release adds Transfer
mappings for FpML Processes and Record-Keeping view.
Review Directions
In the CDM Portal, select Ingestion and review the following example transactions:
- fpml-5-10 > incomplete-processes > msg-ex19-cds-execution-allocations
- fpml-5-10 > incomplete-processes > msg-ex51-execution-advice-trade-initiation-C01-00
- fpml-5-10 > incomplete-processes > msg-ex58-execution-advice-trade-initiation-F01-00
2.150.5
CDM Documentation
Background
The CDM and its underlying technology (Rosetta) currently share the same documentation site. As the CDM and Rosetta mature, the documentation sites should be split to separate the concerns and have appropriate branding.
What is being released?
With this release, the CDM documentation will move to its own dedicated site. The Rosetta documentation will remain at the existing URL and will link to the CDM documentation.
Review Directions
To view the CDM documentation:
- In the CDM Portal, select Documentation and follow the link to navigate to the new CDM Docs URL
- From any browser, Navigate to https://cdm.docs.rosetta-technology.io
To view the Rosetta documentation:
- In the Rosetta Application, select the Documentation from the top right menu
- From any browser, Navigate to https://docs.rosetta-technology.io
2.150.2
Event model - Transfers
Background
Transfer components are not represented consistently in the CDM for post-trade events. Initiation trade event generated transfers are represented in a PriceQuantity
object attached to a Trade
, where as post trade event generated transfers are represented as a Transfer
object embedded in a business event instruction. This inconsistency creates ambiguity for implementors and creates complexity when defining functional reporting rules. In addition, for post trade events a Transfer can only be defined in terms that require the CDM functional model to calculate the Transfer amount, implementors cannot provide a pre-determined amount.
The CDM Transfer model is therefore being refactored based on three principles:
- Develop a standardised approach for the representation of a Transfer which is used consistently across all event types.
- Align the representation of transfers with the composable
BusinessEvent
model. - Rewrite the functional logic of Transfers so that a Business Event instruction is defined in terms of a defined Transfer amount. The functional model is retained for calculating a Transfer amount but the creation of a Business Event is not dependent on leveraging the functionality.
Following the refactoring any transfers associated with an event would be captured as part of the Instruction
to create the BusinessEvent
. This would be used to create a TransferHistory
associated with the TradeState
. The PriceQuantity
would therefore contain representation of notional and prices only.
What is being released?
This release contains the components required to represent Transfers in line with the above approach. Visualisation and model to model mappings have been updated to reflect this refactoring. Changes are described based on the data types, enumerations and functions impacted:
Data Types
TradeState
- contains an attributetransferHistory
which has been updated to reference the data typeTransferState
.TransferState
- specifies a Transfer that has been effected by a business or lifecycle event and the state of theTransfer
through its lifecycle.Transfer
– updated to define a movement of assets between two parties, information about thesettlementOrigin
andresetOrigin
of the transfer, and atransferExpression
defining the nature of the transfer amount and its source.TransferStatus
– new data type that defines where aTransfer
is in its lifecycle.SettlementOrigin
- updated data type containing a reference to the payout that was the origin of the transfer amount, where applicable.TransferExpression
- defines the nature of the transfer amount in terms of a fee type (e.g. Premium, Termination) or transfer associated with a scheduled or contingent event on a contract (e.g. Exercise, Performance, Credit Event)TransferInstruction
– updated to contain a list of definedTransferState
to be added to aTradeState
CalculateTransferInstruction
– contains instructions for calculating a transfer associated with a TradeState with reference to a payout and any necessary resets.Instruction
– attributeprimitiveInstruction
has been updated from multiple to single cardinality so that an instruction is defined in terms of a single primitiveInstruction containing a list of basic primitive instruction attributes.PrimitiveInstruction
– has been updated to remove theone-of
condition allowing a list of primitive instruction attributes to be defined. A new attributetransfer
has been added allowing a list ofTransferInstruction
to be specified.
Enumerations
FeeTypeEnum
- updated to be an attribute withinTransferExpression
defining a transfer amount in terms of a fee type.
Functions
Create_TradeState
- updated function to addTransferHistory
to aTradeState
when inputInstruction
contains a transfer.Create_TransferPrimitive
– updated to take input of aTransferInstruction
containing a list ofTransferState
, and creates aTradeState
with updatedTransferHistory
.CalculateTransfer
– new function that takes input of aCalculateTransferInstruction
, calculates a Transfer amount and creates output of aTransfer
.Create_CashTransfer
– takes input of aCalculateTransferInstruction
, calculates a Transfer amount using functionResolveTransfer
and creates output of aTransfer
.ResolveTransfer
– new function that takes input of aCalculateTransferInstruction
containing aPayout
and associatedResetHistory
and creates output of a Transfer.SecurityFinanceCashSettlementAmount
– updated function to create output of aTransfer
.EquityCashSettlementAmount
– updated function to create output of aTransfer
.InterestCashSettlementAmount
– updated function to create output of aTransfer
.
Visualisations
The following Visualisations have been updated to contain Transfers represented using the updated model.
Quantity Change Business Event > Partial Termination Equity Swap
Quantity Change Business Event > Partial Termination Vanilla Swap
Quantity Change Business Event > Full Termination Equity Swap
Quantity Change Business Event > Full Termination Vanilla Swap
Execution Business Event > Interest Rate Swap with Initial Fee
Translate
Model to model mappings have been updated to reflect the above model refactoring
Review Directions
In the CDM Portal:
- Select the Textual Browser and search for the data types, enumerations and functions listed above.
- Select the Instance Viewer and review the Visualisation samples above.
- Select Ingestion and review the following example transactions:
- fpml-5-10 > products > equity > eqd-ex01-american-call-stock-long-form
- fpml-5-10 > products > rates > ird-initial-fee
2.149.0
Infrastructure – Source enums from FpML scheme where specified
What is being released?
This release adds additional enumerations to CDM sourced from FpML scheme where there is a 1:1 mapping possible. The following four files are enhanced:
- legalagreement-csa-enum
- legalagreement-master-enum
- observable-asset-enum
- observable-common-enum
with enums sourced from FpML for the following: IndependentAmountEligibilityEnum
, HoldingPostedCollateralEnum
, MasterAgreementTypeEnum
, MasterConfirmationAnnexTypeEnum
, MasterConfirmationTypeEnum
, InterpolationMethodEnum
, SettlementRateOptionEnum
, DeterminationMethodEnum
.
Review Directions
In the CDM Portal select the bases listed above and view added docReference for the enums detailed.
2.148.0
Product Model – Composable Product Qualification - Equity and Credit
What is being released?
This release refactors Credit and Equity product qualification to leverage the hierarchical approach to product qualification in order to a) eliminate unnecessary repetition in the product qualification functions, and b) create a set of functions that can be reused in the development of the Digital Regulatory Reporting ("DRR") ruleset.
Background
Product Qualification functions are currently written as independent expressions for qualification into the ISDA product taxonomy. This leads to repetition in the model as the functional component identifying the Asset Class and Base Product components of the Taxonomy are repeated. This is in conflict with the CDM design principle of composability and re-usability.
Regulatory reporting rules also refer to classifications of products at a variety of levels as a component of regulatory functional expressions. For this purpose, utility rules have been developed which replicate the same structure.
This release focuses on creating a composable set of qualification rules for Credit and Equity products.
Details
New product qualification rules have been added to the model to describe the hierarchy of Interest Rate products as defined by the ISDA Product Taxonomy:
- Qualify_AssetClass_CreditDefault - Qualifies a product as having the Asset Class classification Credit Default.
- Qualify_AssetClass_Equity - Qualifies a product as having the Asset Class classification Equity.
- Qualify_BaseProduct_EquitySwap - Qualifies a product as having the Base Product Classification Equity Swap.
The following product qualification rules have been updated to leverage the new composable product qualification approach:
- Qualify_CreditDefaultSwap_SingleName
- Qualify_CreditDefaultSwap_Index
- Qualify_CreditDefaultSwap_IndexTranche
- Qualify_CreditDefaultSwap_Loan
- Qualify_CreditDefaultSwap_Basket
- Qualify_CreditDefaultSwaption
- Qualify_AssetClass_Equity
- Qualify_EquitySwap_PriceReturnBasicPerformance_SingleName
- Qualify_EquitySwap_TotalReturnBasicPerformance_SingleName
- Qualify_EquitySwap_PriceReturnBasicPerformance_Index
- Qualify_EquitySwap_TotalReturnBasicPerformance_Index
- Qualify_EquitySwap_PriceReturnBasicPerformance_Basket
- Qualify_EquitySwap_TotalReturnBasicPerformance_Basket
- Qualify_EquityOption_PriceReturnBasicPerformance_SingleName
Review Directions
In the CDM Portal, select the Textual Browser and review the functions detailed above.
Event Model - Compression and Novation Visualisation Samples
What is being released
This release follows the recent work on the composable business event model and the corresponding creation function, Create_BusinessEvent
. Visualisation examples have been created for compression and novation business events.
Review Directions
In the CDM Portal, select the Instance Viewer, review the visualisation examples in the Compression Business Event and Novation Business Event folders.
2.147.1
Migrate Record Keeping Test Packs
What is being released?
The FpML 5-10 Recordkeeping Translate samples are being moved to the Digital Regulatory Reporting model so that model-to-model mappings can be created and managed next to other regulatory related artefacts.
This release removes the Record Keeping test packs from the CDM model. These test packs are being migrated to the Digital Regulatory Reporting model.
Review Directions
The Recordkeeping Translate test pack is no longer available when reviewing Ingestion in the CDM Portal
2.145.0
DSL Syntax - List operations: sum, min, max, join, sort, first and last
What is being released?
This release introduces a number of syntax keywords related to list operations.
sum
- Returns a summed total from the items of a list of
int
ornumber
.
Example
func SumNumbers: <"Returns the sum of the given list of numbers."> inputs: numbers number (0..*) output: total number (1..1) set total: numbers sum
min
/max
- Returns the maximum or minimum item from a list based on a comparable (e.g.
string
,int
,number
,date
) item or attribute.
Example
func FindVehicleWithMaxPower: <"Returns the vehicle with the highest power engine."> inputs: vehicles Vehicle (0..*) output: vehicleWithMaxPower Vehicle (1..1) set vehicleWithMaxPower: vehicles max [ item -> specification -> engine -> power ]
join
- Returns a
string
concatenated from the items of a list, optionally separated with a delimiterstring
.
Example
func JoinStrings: <"Concatenates the list of strings, separating each element with a comma (",") delimiter."> inputs: strings string (0..*) output: result string (1..1) set result: strings join [ "," ]
sort
- Returns a list in sorted order based on a comparable (e.g.
string
,int
,number
,date
) item or attribute.
Example
func SortDatesChronologically: <"Sorts the list of dates chronologically."> inputs: dates date (0..*) output: sortedDates date (0..*) set sortedDates: dates sort
first
/last
- Returns the first or last item from a list.
Example
func GetFirst: <"Get the first date."> inputs: dates date (0..*) output: firstDate date (0..1) set sortedDates: dates first
Review Directions
In the CDM Portal, select the Textual Browser, and search for syntax keywords.
Product Model - CreditDefaultPayout Index Factor and Seniority
What is being released
Data type IndexReferenceInformation
has been extended to include indexFactor
and seniority
.
indexFactor
- represents the index version factorseniority
- Defines the seniority of debt instruments comprising the index. The enumerated values in the CDM have been populated with linkage to the FpML scheme Credit Seniority Scheme (http://www.fpml.org/coding-scheme/credit-seniority-2-3.xml)- FpML mappings have been updated to reflect the above
Review Directions
In the CDM Portal, select Textual Browser, and review the data type and attributes above.
2.143.2
Period Amount Calculations - Clean up
What is being released?
The FixedAmount and FloatingAmount functions have been updated to leverage the FixedAmountCalculation and FloatingAmountCalculation functions released in 2.120.1.
The DayCountFraction function has been retired; it is replaced by YearFraction (from release 2.120.1), which is less dependent on InterestRatePayout structures and so is more generally usable.
The CalculationPeriods function has been added; it returns all calculation periods for an InterestRatePayout.
The FixedAmountCalculation function has been enhanced to return detailed intermediate results.
A few bugs in the floating amount calculations have been corrected, including:
- Handling of the notional was incorrect in a couple of functions
- Handling of daily caps and floors on daily calculated (average and compound) was incorrect
Background
An extensive set of enhancements was made in release 2.120.1 to floating and fixed amount calculation logic. These allowed the logic to retrieve more information from the InterestRatePayout structure, and to do new types of calculations. There were some existing uses of the old FixedAmount and FloatingAmount logic that were not updated at that time to use the new calculations. With this release, we retire most of that legacy code, by making small enhancements to the new floating and fixed amount calculation code.
Minor logic errors have been corrected and some minor enhanced functionality has been added to make using the above easier. There has also been some minor redesign to some functions to improve processing efficiency, based on implementation experience.
Details
- The
FixedAmount
function has been modified to call theFixedAmountCalculation
function. As part of this, the function signature forFixedAmount
has changed slightly - The
FixedAmountCalculation
function has been modified to:- Allow the notional to be passed in, instead of being looked up from the InterestRatePayout. (If omitted it looks up the notional from the InterestRatePayout)
- Change/correct the notional representation to use notional->amount instead of quantity->multiplier and to put the currency in notional->unitOfAmount->currency instead of notional->multiplierUnit->currency
- Return a structure holding intermediate results to explain the calculation
- The
FloatingAmount
function has been modified to call theFloatingAmountCalculation
function. As part of this, the function signature forFloatingAmount
has changed slightly - The
FloatingAmountCalculation
function has been modified to:- Allow the notional to be passed in, instead of being looked up from the InterestRatePayout. (If omitted it looks up the notional from the InterestRatePayout)
- Allow the interest rate to be passed in, instead of being calculated. (If omitted, the floating rate is calculated).
- Change/correct the notional representation to use notional->amount instead of quantity->multiplier and to put the currency in notional->unitOfAmount->currency instead of notional->multiplierUnit->currency
- Refactor it into several pieces to allow intermediate calculations to be reused more efficiently
- The
LookupNotionalAmount
function has been changed as above to use amount and unitOfAmount. - The
DayCountFraction
function/implementation has been deleted. Use the new YearFraction function instead. - The
GenerateObservationDatesAndWeights
function has been refactored to split it into several smaller functions to allow intermediate results to be reused without being recomputed, to improve efficiency - The
CalculationPeriods
function has been added to product-common-schedule-func.rosetta and a Java implementation has been provided
Event Model - Composable Event - Updates for Execution, Contract Formation and Quantity Change Visualisation Samples
What is being released
This release follows the recent work to compose business events with a list of instructions applied as input to the common business event creation function Create_BusinessEvent
. The visualisation examples for the following business events have been refactored and augmented with the details of the input instructions: execution, contract formation, and quantity change.
Review Directions
In the CDM Portal, select the Instance Viewer, review the visualisation examples in the Execution Business Event, Contract Formation Business Event and Quantity Change Business Event folders and inspect how the representation of the input instructions has been embedded in each business event.
Event Model - Business Event Intent
What is being released
This release normalises the representation of intent on a BusinessEvent
, as well as on the Instruction
passed into the Create_BusinessEvent
function. Intent is required when a BusinessEvent cannot be qualified solely with the resulting TradeState and instructions used.
- The enumeration
InstructionFunctionEnum
has been removed from the model as it duplicates the functionality ofIntentEnum
. - The enumeration
IntentEnum
has been renamedEventIntentEnum
and been updated to contain a simplified list only containing enumerations which are needed to uniquely qualify aBusinessEvent
. - BusinessEvent qualification functions have been updated to reflect the refactoring above.
Review Directions
In the CDM Portal, select Textual Browser and review EventIntentEnum
.
2.143.0
Infrastructure - Restructure CDM Repository
What is being released
This release restructures the CDM GitHub repository placing the source under its own separate sub-module. This work facilitates the isolation of the CDM testing framework and the Rosetta source.
Review Directions
There is no functional impact on any systems or services from this change.
2.141.0
Infrastructure - Serialise dates to ISO-8601 format
What is being released
This release changes the Java to JSON serialisation format for dates to ISO-8601 format, so that it represents a date starting with the year, followed by the month, and day. For example, "2022-01-31" represents the 31st January 2022.
Previously, the serialised format contained separate fields for day, month and year.
"unadjustedDate" : { "day": 31, "month": 1, "year": 2022}
Now, the serialised format is an ISO-8601 date string.
"unadjustedDate" : "2022-01-31"
Review Directions
In the CDM Portal, select Ingestion and review any sample.
2.140.0
Event Model - Consolidation of workflow information in WorkflowStep
What is being released?
This release consolidates some workflow-related attributes that were previously positioned in the BusinessEvent type into the WorkflowStep type instead.
Details
The following types and attributes have been modified:
The
WorkflowStepState
type has been renamed more succinctly asWorkflowState
.The
workflowEventState
attribute (now of typeWorkflowState
) has been moved fromBusinessEvent
intoWorkflowStep
and renamed simply asworkflowState
.The
tradeWarehouseWorkflow
attribute has been removed fromBusinessEvent
. Its underlying attributes are all included in theworkflowState
attribute that is now positioned inWorklfowStep
:warehouseIdentity
warehouseStatus
partyCustomisedWorkflow
The
TradeWarehouseWorkflow
type has been deprecated as it is no longer used.
The qualification functions for ClearingSubmission
and ClearingRejection
have been adjusted to reflect the new structure. These two functions are not tested with sample messages as part of the CDM. In future, the qualification of Rejection / Submission shall operate at the WorkflowStep
level rather than the BusinessEvent
.
Similarly, the TradeWarehousePositionNotification
qualification function was not tested and has been removed. This qualification shall also operate at the WorkflowStep
level rather than BusinessEvent
.
Synonyms have been adjusted to allow mapping of existing CME and DTCC messages to continue to work with the new structure.
Review Directions
In the CDM Portal Textual Browser search for the types listed above to see the changes.
Use the Ingestion function to review the CME and DTCC examples.
Product Model - Equity option strike price FpML mapping
What is being released?
This release fixes the FpML mapping of strike price for equity options.
Details
The FpML synonym mappings for equity option strike price Price->perUnitOfAmount
attribute is updated based on the underlier.
- For an equity underlier the
perUnitOfAmount
is mapped toFinancialUnitEnum->Share
. - For an index underlier the
perUnitOfAmount
is mapped toFinancialUnitEnum->IndexUnit
.
Review Directions
In the CDM Portal, select Ingestion and review the updated samples in the fpml-5-10 > products > equity folder:
- eqd-ex01-american-call-stock-long-form
- eqd-ex04-european-call-index-long-form
Infrastructure - Validation of inherited types
What is being released?
This release contains a bug fix related to validation of data types that inherit from other data types.
- E.g. the
type
definition is specified using theextends
keyword:type InterestRatePayout extends PayoutBase
.
Previously, any super type validation failures, such as cardinality or condition failures, were not included in the validation diagnostics.
- E.g. when validating an
InterestRatePayout
, validation failures fromPayoutBase
were ignored.
The super type validation failures are now included in the validation diagnostics.
Review Directions
In the CDM Portal, select Ingestion and review the Validation panel for any sample.
Product Model - Commodity total notional quantity FpML mapping
What is being released?
This release adds FpML mapping of total notional quantity for commodity products.
Details
The FpML synonym mappings for totalNotionalQuantity
have been added to PriceQuantity->quantity
for both CommodityPayout
and FixedForwardPayout
.
Review Directions
In the CDM Portal, select Ingestion and review all samples in the fpml-5-10 > products > commodity folder.
2.139.0
Legal Agreement Model - ISDA Create mappings
What is being released
This release moves the ISDA_Create_1_0
synonym mappings into a separate file, synonym-cdm-isda-create.rosetta
. Separating the model and synonym mappings improves readability and maintenance, and is consistent with other mappings, such as FpML_5_10
.
Review Directions
In the CDM Portal, select the Textual Browser and search for the ISDA_Create_1_0
synonyms.
Event Model - Composable Event Model - Qualification of Full Termination
The Business Event qualification function Qualify_Termination
has been updated to qualify a Full Termination of a business event generated using the new composable event model.
Review Directions
In the CDM Portal, select Instance Viewer, and navigate to the Create Termination Business Event -> Full Termination - Equity Swap
sample.
2.138.0
User Documentation - CDM Eligible Collateral Representation
What is being released
This release adds Eligible Collateral Representation user documentation to the documentation website. For reference, the document has already had a peer review and has previously been published as a PDF to ISDA members.
Review Directions
DSL Syntax - Reduce keyword to merge or aggregate a list
What is being released
This release introduces the reduce
keyword to merge or aggregate the items of a list into a single item based on an expression. The reduce
keyword can be used to implement simple operations such as summing a list of numbers, joining a list of strings, or finding a maximum or minimum value in a list, and well as operations on complex objects.
Upcoming releases will contain additional syntax to more concisely specify simple operations sum
, join
, min
and max
.
Syntax
reduce <parameter1>, <parameter1> [ <expression to merge or aggregate any two list items, parameter1 and parameter2> ]
Example
In the example below, the input list of numbers are combined by addition.
func SumNumbers: inputs: numbers number (0..*) output: total number (1..1) set total: numbers reduce a, b [ a + b ]
Example
In the example below, the input list of strings are concatenated together along with a delimiter. Given a list "a", "b", "c", and a delimiter ",", the resulting string would be "a,b,c".
func JoinStrings: inputs: strings string (0..*) delimiter string (1..1) output: result string (1..1) set result: strings reduce a, b [ a + delimiter + b ]
Example
In the example below, the input list of numbers are aggregated to find the maximum number. Given two list items, n1
and n2
; keep the greater item and discard the lesser item.
func FindMaxNumber: inputs: numbers number (0..*) output: max number (1..1) set max: numbers reduce n1, n2 [ if n1 > n2 then n1 else n2 ]
Example
In the example below, the input list of Vehicle
are aggregated to find the vehicle with the most powerful engine.
func FindVehicleWithMaxPower: inputs: vehicles Vehicle (0..*) output: vehicleWithMaxPower Vehicle (1..1) set vehicleWithMaxPower: vehicles reduce v1, v2 [ if v1 -> specification -> engine -> power > v2 -> specification -> engine -> power then v1 else v2 ]
Review Directions
In the CDM Portal, select the Textual Browser, and search for usages such as Sum
.
2.137.1
DSL Syntax - Usage of only-element and distinct with list operations
What is being released
This release enables the use of existing keywords only-element
and distinct
with a list operation (e.g. map
, filter
etc). Previously they had to be used in a separate function steps. All applicable usages in the model have been updated.
Example
Previously list operations, such as filter
or map
, had to be in a separate function step from only-element
.
func GetDrivingLicence: inputs: drivingLicences DrivingLicence (0..*) licenceNumber string (1..1) output: drivingLicence DrivingLicence (0..1) alias filteredDrivingLicences: drivingLicences filter [ item -> licenceNumber = licenceNumber ] set drivingLicence: filteredDrivingLicences only-element
Now only-element
can be combined in the same expression.
func GetDrivingLicence: inputs: drivingLicences DrivingLicence (0..*) licenceNumber string (1..1) output: drivingLicence DrivingLicence (0..1) set drivingLicence: drivingLicences filter [ item -> licenceNumber = licenceNumber ] only-element
Review Directions
In the CDM Portal, select the Textual Browser, and search for usages such as ExtractCounterpartyByRole
and ExtractAncillaryPartyByRole
.
DSL Syntax - Set and Add keywords for assigning a list or appending to a list
What is being released
The existing function syntax assign-output
appends list items to any existing list items. However, it is often necessary to replace the items of the list, and this requires a new syntax to differentiate the two use-cases. New keywords set
and add
have been introduced for function output assignment, which replace the existing assign-output
functionality.
All functions have been updated to use the new syntax.
Example
func AddDrivingLicenceToVehicleOwnership: inputs: vehicleOwnership VehicleOwnership (1..1) newDrivingLicence DrivingLicence (1..1) output: updatedVehicleOwnership VehicleOwnership (1..1) set updatedVehicleOwnership: vehicleOwnership // add newDrivingLicence to existing list of driving licences add updatedVehicleOwnership -> drivingLicence: newDrivingLicence
Example
func UpdateDateOfRenewal: inputs: vehicleOwnership VehicleOwnership (1..1) newDateOfRenewal date (1..1) output: updatedVehicleOwnership VehicleOwnership (1..1) set updatedVehicleOwnership: vehicleOwnership // overwrite existing list with an updated list of driving licences set updatedVehicleOwnership -> drivingLicence: vehicleOwnership -> drivingLicence map [ Create_DrivingLicence( item -> countryofIssuance, item -> licenceNumber, item -> dateofIssuance, newDateOfRenewal, item -> vehicleEntitlement, item -> penaltyPoints ) ]
Review Directions
In the CDM Portal, select the Textual Browser, and review all functions.
2.136.6
Event Model – Margin Call Process, Exposure, Collateral Positions and Balance Representation
What is being released
New data types and attributed are proposed to represent margin calls for collateral related processes. These common data elements are intended for the various asset classes where collateral margin call practices exist such as (OTC Derivates, OTC Cleared, Repo, Securities Lending and ETD). The changes include the following:
MarginCallBase
– Specifies the generic requirements for all message typesExposure
- Represents positions and aggregate exposure/ valuations required in margin call calculationsMarginCallExposure
- Represents exposure for margin call reference and a breakdown of exposure values if requiredCollateralBalance
– Represents an aggregated collateral balance in a base currency with is settlement status and any haircut factorsCollateralPortfolio
– Allows for specification of portfolio identity, individual components of a collateral positions and a collateral balanceCollateralPosition
– Extendsposition
for listing individual collateral plus their settlement status and any specific treatment/ haircuts.MarginCallIssuance
- Represents common attributes for margin call issuance communicationsMarginCallInstructionType
- Represents values to specify the call notification type and specific action typesMarginCallResponseAction
- Represents specific actions in response messages such as what collateral is being delivered and whether it is a deliver or return of collateralMarginCallResponse
- Represents common attributes for margin call response communications. Includes agreement of amount, actions for delivery and if the response is (agreed in full, partially or disputed)
Review Directions
In the CDM Portal, select the Textual Browser and search and inspect each of the below data types, their attributes and descriptions. They are all in the event-common-type name space:
MarginCallBase
Exposure
MarginCallExposure
CollateralBalance
CollateralPortfolio
CollateralPosition
MarginCallIssuance
MarginCallInstructionType
MarginCallResponseAction
MarginCallResponse
In the name space event-common-type, review the following conditions:
- condition
RegIMRoleIMOnly
Found in relation to data typeMarginCallBase
- Specifies a condition to ensure that RegIMRole (Pledgor or Secured Party) is only applicable if the Reg margin type is defined as RegIM (Regulatory Initial Margin) - condition
OverallExposureSumOfSimmAndScheduleIM
Found in relation to data typeMarginCallExposure
- Represents a condition to ensure that if Simm IM exposure and Schedule/Grid IM exposure are specified the sum value must equate to overall exposure amount - condition
CollateralPositionStatusSettledOrIntransitOnly
Found in relation to data typeCollateralPosition
- Represents a condition to ensure that if a status is defined for a collateral position you must only indicateSettled Amount
orIn Transit
amount from the available enumerations. - condition
CallTypeExpectedVisibility
Found in relation to data typeMarginCallInstructionType
- Represents a condition to ensure that a visibility indicator is specifies then the call type must be an expected call.
In the name space event-common-enum please review and inspect each of the enumerations, their values and descriptions as listed below:
CallTypeEnum
- Represents the enumeration values that indicate the intended status of message type, such as expected call, notification of a call or a margin call.MarginCallActionEnum
- Represents the enumeration values to identify the collateral action instruction.CollateralStatusEnum
- Represents the enumeration list to identify the settlement status of the collateral.MarginCallResponseTypeEnum
- Represents the enumeration values to define the response type to a margin call.RegMarginTypeEnum
- Represents the enumeration values to specify the margin type in relation to bilateral or regulatory obligation.RegIMRoleEnum
- Represents the enumeration values to specify the role of the party in relation to a regulatory initial margin call.HaircutIndicatorEnum
- Represents the enumeration indicators to specify if an asset or group of assets valuation is based on any valuation treatment haircut.
Within the name space (event-position-type), the following changes have been made, please inspect the following:
- Data type
Position
has had the following attributes removed
product
quantity
postionStatus
These have been replaced with a new attributepositionComponent
which usesPriceQuantity
for representation of positions with many price quantities
- The attribute
tradeReference
has been renamed to referenceTradeState
instead ofTrade
- Minor spacing issues have been rectified in the descriptions for the following data types:
Position
PortoflioState
Workflow Model - Intended BusinessEvent of next WorkflowStep
What is being released
Modelling components for the representation of the intended business event that would form the next workflowStep
.
Details
nextWorkflowStep
has been introduced as an attribute of data type WorkflowStep
. This attribute allows the specification of either a nextIntendedEvent
which allows the intended event to defined using the existing IntentEnum
, or a proposedInstruction
. A one-of
condition requires one of the attributes to be defined only.
Review Directions
In the CDM Portal, select the Textual Browser and search for WorkflowStep
and review the attributes above.
Select the Ingestion Viewer and review the sample fpml-5-10 > record-keeping > record-ex02-vanilla-swap-datadoc containing the Intent to Clear.
Event Model - Equity Swap Quantity Change Visualisations
What is being released
Visualisation examples have been added to demonstrate how an Increase, Partial Termination and Termination of an Equity Swap would be represented in the CDM.
Details
Three visualisation examples can now be reviewed demonstrating how a Quantity Change would be represented for an Equity Swap including representation of multiple TradeLot
.
Create Increase Business Event
- increases the quantity and notional on an existing Equity Swap through the addition of a newTradeLot
.Create Partial Termination Business Event
- decreases the quantity and notional on an existing Equity Swap by changing the quantity of oneTradeLot
only.Create Full Termination Business Event
- fully terminates an Equity Swap through the reduction of all notionals to zero.
Review Directions
In the CDM Portal, select the Instance Viewer, navigate to the Create Termination Business Event
folder and review the examples above.
2.136.1
Product Model - Enhancement for Enumerated Values for Capacity Units
What is being released?
This release updates the existing CapacityUnitEnum
. This follows a gap analysis completed on the additional capacity codes being used in the industry for OTC products, including commodities, and ISO 20022 codes. There are two types of proposed changes:
- Distinction between US and GB codes to improve clarity of the units being used.
- Addition of new codes that were not supported by the CapacityUnitEnum
The following units have been removed:
- CWT
- GAL
- T
- ST
The following new units have been added:
UST - "Denotes a US Ton as a standard unit" replaces "ST"
GBT - "Denotes GB Ton as a standard unit" replaces "T"
USCWT - "Denotes US Hundredweight unit as a standard unit" replaces CWT"
GBCWT - "Denotes a GB Hundredweight as a standard unit"
USGAL - "Denotes a US Gallon as a standard unit" replaces GAL
GBGAL - "Denotes a GB Gallon unit as standard unit"
Weight and volume units:
- BDFT - "Denotes Board Feet as a standard unit"
- CBM - "Denotes Cubic Meters as a standard unit"
- MMBBL - "Denotes a Million Barrels as a standard unit"
- G - "Denotes a Gram as a standard unit"
Environmental units:
- CRT - "Denotes Climate Reserve Tonnes as a standard unit"
- ENVCRD - "Denotes Environmental Credit as a standard unit"
- ENVOFST - "Denotes a Environmental Offset as a standard unit"
Energy units
- KWDC - "Denotes a Kilowatt Day Capacity as a standard unit"
- KWHC - "Denotes a Kilowatt Hours Capacity as a standard unit"
- KWMC - "Denotes a Kilowatt Month Capacity as a standard unit"
- KWMINC - "Denotes a Kilowatt Minute Capacity as a standard unit"
- KWYC - "Denotes a Kilowatt Year Capacity as a standard unit"
- MWDC - "Denotes a Megawatt Day Capacity as a standard unit"
- MWHC - "Denotes a Megawatt HoursCapacity as a standard unit"
- MWMC - "Denotes a Megawatt Month Capacity as a standard unit"
- MWINC - "Denotes a Megawatt Minute Capacity as a standard unit"
- MWYC - "Denotes a Megawatt Year Capacity as a standard unit"
Review Directions
In the CDM Portal Textual Browser search for CapacityUnitEnum
to see the updated list of values.
2.135.1
Product Model - Enhancements for Multiple Underliers
What is being released
This release adds support for multiple underlier products represented through a new Basket
product type.
The new Basket
product type allows the representation of a list of BasketConstituent
which are represented using the CDM Product type.
The Weight and Observable for each basket constituent can be represented through the PriceQuantity
element in the model, with the addition of a Weight
financial unit enumeration.
Specific to EquityPayout
:
- The cardinality of
dividendPayout
withinDividendReturnTerms
has been updated from single to multiple to allow aDividendPayoutRatio
to be defined for eachBasketConstituent
. - The naming of the data type
DividendPayout
has also been updated toDividendPayoutRatio
, and anunderlier
attribute has been added to associate each DividendPayoutRatio with its corresponding basket component. - The cardinality of
fxFeature
has been updated from single to multiple to allow a list of FX features to be defined when required.
Product Qualification functions have been added to the model to qualify products based on the new basket feature.
Qualify_EquitySwap_PriceReturnBasicPerformance_Basket
Qualify_EquitySwap_TotalReturnBasicPerformance_Basket
FpML to CDM model to model mappings have been enhanced to support the new features.
Review Directions
In the CDM Portal, select the Textual Browser and review the changes by searching for the new and updated data types and enumerations below:
- FinancialUnitEnum
- Product
- Basket
- EquityPayout
- DividendPayoutRatio
In the CDM Portal, select Ingestion and review the updated ingestion examples below in the fpml-5-10 > products > equity-swaps folder:
- eqs-ex03-index-quanto-long
- eqs-ex07-long-form-with-stub
Event Model - Common Business Event Creation Function
What is being released
This release contains an initial design for a common business event creation function that creates a BusinessEvent
based on an Instruction
list, and optionally an existing TradeState
.
Details
- Each
Instruction
contains a list ofPrimitiveInstruction
which specifies how create or modify aTradeState
. - Function
Create_BusinessEvent
processes a list ofInstruction
; invoking the functionCreate_TradeState
for eachInstruction->primitiveInstruction
, and assigning the outputTradeState
to theBusinessEvent
. - Function
Create_TradeState
creates or modifies aTradeState
based on an inputPrimitiveInstruction
list.
Review Directions
In the CDM Portal, select the Textual Browser and search for the data types and functions mentioned above.
In Rosetta, use the Visualisation panel to view Quantity Change - Increase
function which invokes the Create_BusinessEvent
function to create an Increase
business event.
DSL Syntax - Flatten Keyword for Collapsing lists and Syntax Validation with List Item Cardinality enhancements for Filter and Map keywords
What is being released
This release contains additional syntax validation for list operations filter
and map
, and adds support to allow processing of items with multiple cardinality (e.g. a list of lists), and introduces new flatten
keyword to convert a list of lists into a list.
Example
func GetAllDrivingLicencesFromInternationalOwners: <"Get list of driving licences from owners with 2 or more licences."> inputs: owners VehicleOwnership (0..*) <"List of owners, each contain a list of driving licences."> output: drivingLicences DrivingLicence (0..*) <"Flattened list of driving licences."> set drivingLicences: owners // map each owner item into a list of driving licences map [ item -> drivingLicence ] // each item is now a list of driving licences // filter to include only items which contain more than one driving licence filter [ item count > 1 ] // each item is still a list of driving licences // flatten list so output is a "flat" list of driving licences (rather that a list where each item is a list of driving licences) flatten
2.133.3
Product Model - Representation of Package Transactions
What is being released
Modelling components for the representation of package transactions have been added to the product model and mapped from FpML
Background
A package transaction consists of several trades which, even though they may be represented separately, are tied into a single package and typically executed together. Executing trades as a package has implications for post-trade processes such as reporting or confirmation and therefore requires specific package attributes to be captured.
This capture has 2 components:
- When separate trades are executed together as part of a single package, the atomic business event representing such bundled execution needs to record the attributes of that package - i.e. at minimum, an identifier for the package
- Individual trades that are part of a package must each refer to such package
Details
The package representation is achieved by introducing the following:
- A new
IdentifiedList
data type is designed to represent any list of objects as a list of identifiers (when those objects have an identifier), with an identifier for the list itself. While this data type can be used to represent a package as a list of trade identifiers, the naming is generic to allow potential re-use for other use cases. The identifier attributes use the genericIdentifier
data type. - A new
packageInformation
attribute of typeIdentifiedList
has been added toBusinessEvent
, to represent a single execution with multiple trades as a package. - A new
packageReference
attribute, also of typeIdentifiedList
has been added toExecutionDetails
(as contained in a standaloneTrade
), to provide a reference to the package when that trade was executed as part of a package.
The latter attribute is handled as a reference to preserve referential integrity. The package object, represented as a simple list of trade identifiers, should exists independently of the underlying trades and those trades simply make reference to it.
Several FpML samples representing package transactions (either the packages themselves, or single underlying trades) have been used to test the model and synonym mappings updated accordingly. Those samples are:
pkg-ex02-swap-spread-single-trade-execution-notification
pkg-ex55-execution-notification
pkg-ex60-request-clearing
pkg-ex61-clearing-confirmed
Review Directions
In the CDM Portal, select the Textual Browser and search for the above mentioned data types.
Select the Ingestion Viewer and review the above samples.
2.133.2
Business Event model - Composable Event model
Background
Business events in the CDM are currently described using separate instructions and functions to create each potential business event, and those functions are not composable. The various instructions captured in the Instruction
data type are not structured consistently with some instructions referencing the before
trade state, where as others do not. This contravenes the principle of composability and nullifies the benefit of defining primitive events.
The CDM event model is therefore being refactored based on three principles:
- Develop a standardised functional logic for each primitive event function, leveraging the existing functional logic developed for business events.
- Define a set of primitive instructions to be used as inputs in each primitive event function – those primitive instructions should set a consistent treatment of the before trade state.
- Rewrite the functional logic of business events by composition in terms of those primitive event functions’ logic.
Following the refactoring Business Events will be described in terms of the instructions used to create the events and the after TradeState(s) created. The Primitive Event functions will describe the transformations that occur when the instructions are applied to create a business event.
What is being released
This release introduces core components required to develop the composable event model in the CDM. Changes are described based on the data types, enumerations and functions impacted:
Data types
BusinessEvent
- new attributesinstruction
,instructionFunction
andafter
added to describe the instructions that were used to create the event; the functional event defined by the set of instructions; and the after TradeState(s) created, respectively.PrimitiveInstruction
- a new data type containing the list of PrimitiveEvent instructions needed to pass into a PrimitiveEvent functionInstruction
- new attributesprimitiveInstruction
andbefore
added to describe inputs required to pass into a BusinessEvent described using the composable model.TermsChangeInstruction
- a new data type containing the instructions required to pass into the Terms Change primitive event function.
Enumerations
InstructionFunctionEnum
- enumeration values indicating the Business Event defined by the set of PrimitiveInstructions provided.
Functions
Create_BusinessEvent
- a new composable function that creates a business event from instructions containing primitive instructions and optionally a trade state.Create_TradeState
- a new composable function that creates a trade state from instructions containing primitive instructions and optionally a trade state.Qualify_ContractFormation
- qualification function updated to qualify a business event created using the composable model as contract formation.Qualify_Execution
- qualification function updated to qualify a business event created using the composable model as execution.Qualify_Partial Termination
- qualification function updated to qualify a business event created using the composable model as partial termination.Qualify_Termination
- qualification function updated to qualify a business event created using the composable model as termination.Qualify_Renegotiation
- qualification function updated to qualify a business event created using the composable model as renegotiation.QuantityDecreased
,QuantityIncreased
,QuantityDecreasedToZero
- compares quantities on a before and afterTradeState
.QuantityDecreasedPrimitive
,QuantityIncreasedPrimitive
,QuantityDecreasedToZeroPrimitive
- compares before and after quantities on aQuantityChangePrimitive
.
Review Directions
In the CDM Portal, select the Textual Browser and search for the data types, enumerations and functions above.
2.132.3
Product Model - Calculation Period Dates for Equity and Commodity Products
What is being released
This release addresses inconsistencies identified in the cardinality of CalculationPeriodDates
across different Payouts. These inconsistencies are identified across EquityPayout
and CommodityPayout
.
Review Directions
In the CDM Portal, select the Textual Browser and search for the EquityPayout
, ObservationPayout
and review CalculationPeriodDates
. Review and inspect all updated cardinalities. These changes span across the following namespaces:
- product-common-settlement-type
- product-template-type
2.132.1
Legal Agreement Model - Eligible Collateral Schedule: Description Updates and Refactored Criteria
What is being released
The eligible collateral schedules (ECS) representation, related data types and associated descriptions have been enhanced or refined with additional features: In addition the higher level ECS data structure has been refactored.
ECS representation and related data missing descriptions added
Description of the ECS related data types and attributes updated for consistency.
All descriptions across ECS representation related data reviewed and corrected as per style guide
Data attribute within
DebtInterestEnum
realigned as not correctly positions in data listNew attribute
otherAssetType
to data typeAssetType
for specifying other asset types, with a condition to ensure it exists if other asset types are specified under AssetTypeEnumChanges to the higher-level data structure
EligibleCollateralCriteria
andConcentrationLimitCriteria
:•
EligibleCollateralCriteria
becomes an extension of newly namedCollateralCriteriaBase
•
CollateralCriteriaBase
containsIssuerCriteria
andAssetCriteria
•
EligibleCollateralCriteria
still connects toIssuerCriteria
andAssetCriteria
but additionally hasCollateralTreatment
• Within
CollateralTreatment
,ConcentrationLimitType
has been moved to sit withinConcentrationLimitCriteria
which also referencesCollateralCriteriaBase
• Amendments have been made to the related condition
ConcentrationLimitTypeChoice
Review Directions
In the CDM Portal, select the Textual Browser and search for the updated descriptions related to the ECS data CDM model mentioned above. Review and inspect all updated descriptions, these include missing, re written descriptions and any updates needed to be in line with the Rosetta style guide. These changes span across the following namespaces:
• base-datetime-type• base-math-enum• base-staticdata-asset-common-enum• base-staticdata-asset-common-type• legalagreement-csa-enum• legalagreement-csa-type• observable-asset-enum• observable-asset-type
Search for the DebtInterestEnum
list, please inspect the re alignment of OtherStructured
which was originally not properly listed and appeared to follow on from the line above InterestOnly
this has now been correctly positioned beneath.
Search for data type AssetType
and inspect the changes, an additional attribute has been added to this type called otherAssetType
this is represented as a data string
with an unlimited cardinality to allow you to represent various other asset types if needed. A related condition is also added beneath that so that if you identify other
from the AssetTypeEnum
options otherAssetType
must exist.
Search for the data type CollateralCriteriaBase
and inspect the changes, it has been modified so that EligibleCollateralCriteria
extends CollateralCriteriaBase
and now only contains the attributes treatment
. CollateralCriteriaBase
now only houses attributes issuer
and asset
.
Search for the data type ConcentrationLimit
, and inspect the changes. The attribute ConcentrationLimitCriteria
has been refactored to extend CollateralCriteriaBase
that houses the relevant attributes to define asset and issuer criteria specifically. The data type still contains the attribute ConcentrationLimitType
to allow a more generic specification of concentration limits. The related conditions have also been updated to reflect these changes.
2.132.0
DSL Syntax - Filter and Map Keywords for Extracting or Modifying the Items of a List
What is being released?
List Item Filtering
The filter
keyword has been introduced to filter the items of a list based on a boolean
expression. For each list item, a boolean
expression is evaluated to determine whether to include or exclude the item. The resulting list is assigned to output parameter. Note that filtering a list does not change the item type, e.g. when filtering a list of PartyRole
, the output list type must also be of PartyRole
.
Syntax
set outputList: inputList filter [ Boolean expression – true to include, false to exclude ]
Example
func FilterPartyRole: inputs: partyRoles PartyRole (0..*) partyRoleEnum PartyRoleEnum (1..1) output: filteredPartyRoles PartyRole (0..*) set filteredPartyRoles: partyRoles filter [ item -> role = partyRoleEnum ]
List Item Processing
The map
keyword has been added to modify the items of a list based on an expression. For each list item, an expression is invoked to modify the item. The resulting list is assigned to output parameter. The map
keyword was chosen as it is the most widely used terms for this use-case, used in languages such as Java, Python, Scala, Perl, Clojure, Erlang, F#, Haskell, Javascript, PHP, and Ruby.
Syntax
set outputList: inputList map [ Expression to modify item ]
Example
func ExtractPriceType: inputs: prices Price (0..*) output: priceTypeEnums PriceTypeEnum (0..*) set priceTypeEnums: prices map [ item -> priceType ]
Review Directions
In CDM Portal Textual Browser search the following functions.
Party
/Counterparty
functions:
ExtractCounterpartyByRole
ExtractAncillaryPartyByRole
ReplaceParty
FilterPartyRole
PriceQuantity
functions:
FilterPrice
FilterQuantityByCurrency
FilterQuantityByCurrencyExists
FilterQuantityByFinancialUnit
MergeTradeLot
Transfer
functions:
TransfersForDate
FilterCashTransfers
FilterSecurityTransfers
Miscellaneous functions:
Create_BillingRecords
Create_RelatedAgreementsWithPartyReference
ExtractFixedLeg
2.131.6
Product Model - Enumeration Referencing FpML Scheme
What is being released?
This release provides the ability to reference FpML Schemes when modelling enumerations. Upon contribution the enumeration values are then automatically populated based on the source data obtained from the FpML Scheme.
Once an Enumeration has been defined in the CDM a scheme reference annotation is used to indicate the source of information for populated the contents of the enumeration list. The annotation is made of a docReference
with a body
e.g. ISDA, corpus
e.g. FpML_Coding_Scheme and a schemeLocation
. An example of this is as follows:
[docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/floating-rate-index-3-2"]
Review Directions
In CDM Portal Textual Browser search for FloatingRateIndexEnum
to see an example of an annotation and an enumeration populated using a reference.
2.131.5
Trade Model - Identification of the nature of a Trade Identifier
What is being released?
This release contains an updated TradeIdentifier
data and a new enumeration TradeIdentifierTypeEnum
in order to enumerate the nature of a Trade Identifier. Previously this has only been possible through the inclusion of a metadata scheme
.
- The enumeration list
TradeIdentifierTypeEnum
contains two values:UniqueTransactionIdentifier
andUniqueSwapIdentifier
Review Directions
In CDM Portal Ingestion tab review sample trade:
fpml-5-10 > products > rates > cdm-xccy-swap-after-usi-uti
2.131.4
DSL Syntax - DRR - Invoke a Function from Filter When
What is being released?
This release contains DSL change to allow Digital Regulatory Reporting syntax to invoke a function from filter when
.
In the code snippet below, the function IsPriceMonetary
is called from the filter when
clause.
filter when IsPriceMonetary( Price ) then
Review Directions
Changes to filter when
syntax will be made in an upcoming Digital Regulatory Reporting release.
2.131.1
Event Model - Settlement Origin of a Transfer
What is being released?
This release normalises the settlement origin attribute of a transfer, that provides lineage to the trade component that generated that transfer.
Details
Following recent normalisation of SettlementTerms
and the adition of price settlement cashflows to the PriceQuantity
object, the origin of a transfer can be normalised to simply point to SettlementTerms
object. This settlement origin attribute is now being expressed in the Transfer
data type as:
settlementOrigin SettlementTerms (0..1) [metadata reference]
This reference uniquely points to the SettlementTerms
object embedded in the trade component generating that transfer, since all transfer-generating components must contain settlement terms.
In turn, the purpose-built SettlementOrigin
data type, which was previously used to provide this reference (as a switch between all the different transfer-generating components), is no longer used and has been deprecated.
Review Directions
In the CDM Portal, select the Textual Browser and review the above data types.
2.131.0
*Event Model - Normalisation of the Create Function for Quantity Change Primitive *
What is being released?
This release develops a normalised functional expression of the Create_ function for a quantity change primitive event.
Details
Following the addition of price settlement cashflows to the PriceQuantity structure, the functional expression of Create_QuantityChangePrimitive
has been adjusted to account for price settlement cashflow inputs. The function now takes as arguments:
PriceQuantity
, which can contain price settlement cashflows, instead of justQuantity
QuantityChangeDirectionEnum
, which is a new enumeration to specify whether the quantity change is an increase, a decrease or a replacement (the quantity change being always specified as a positive number)Identifier
to (optionally) specify an identifier for the trade lot being increased or decreased
These attributes have been assembled to form a new QuantityChangeInstruction
data type, which has been added to Instruction
. That single data type supersedes the previously separate IncreaseInstruction
and DecreaseInstruction
data types, where the increase/decrease direction is now handled via an enumeration.
The normalised Create_ function for quantity change primitive event is now being utilised in a number of Create_ event functions:
Create_StockSplit
Create_Termination
Create_ClearedTrade
Create_Return
The function visualisation samples for Partial and Full Termination have been adjusted to reflect the new function argument structure.
Review Directions
In the CDM Portal, select the Textual Browser and review the aforementioned data types and functions. Select the Instance Viewer and review the following samples:
- CREATE TERMINATION BUSINESS EVENT
2.130.5
Legal Agreement Model - ISDA Create Document Schema Update
What is being released?
This release contains an update to the JSON schemas used to translate ISDA Create
documents to CDM. The ISDA Create
schema version changes are detailed below:
isda-create > test-pack > production
- 2018-im-csa-ny-law from 1.2 to 2.2
- 2019-clearstream-cta to 1.2 to 2.2
- 2019-isda-bank-custodian-cta to 1.1 to 2.1
- 2019-isda-bank-custodian-sa-ny-law from 0.3 to 1.1
isda-create > test-pack > sandbox
- 2018-im-csa-ny-law from 1.4 to 2.4
- 2018-im-csd-eng-law from 1.4 to 2.4
- 2019-clearstream-cta to 1.2 to 3.2
- 2019-euroclear-cta to 1.2 to 3.2
- 2019-isda-bank-custodian-cta to 1.3 to 3.3
- 2019-isda-bank-custodian-sa-eng-law from 0.7 to 2.1
- 2019-isda-bank-custodian-sa-ny-law from 0.7 to 1.3
isda-create > other > sandbox
- 2016-clearstream-cta-eng-law from 0.7 to 1.4
- 2016-clearstream-cta-ny-law from 0.7 to 1.4
- 2016-im-csa-jpn-law from 0.6 to 1.4
- 2016-im-csd-eng-law from 0.9 to 2.3
- 2017-euroclear-cta-eng-law from 0.7 to 1.4
- 2017-euroclear-cta-ny-law from 0.8 to 1.4
- 2018-euroclear-cta-ny-law from 0.12 to 3.7
- 2018-euroclear-sa-bel-law from 0.14 to 1.12
Review Directions
In the CDM Portal, select the Ingestion panel and review folders below:
- isda-create > test-pack > production
- isda-create > test-pack > sandbox
- isda-create > other > sandbox
2.130.2
Event Model - ContractFormationInstruction
What is being released?
The ContractFormationInstruction
data type has been updated to optionally take an executionInstruction
as an input to be used in events which need to create an execution and fully formed contract in
Details
ContractFormationInstruction
can now be defined using an execution
or executionInstructions
as input. A required choice
condition validates that one of the attributes is provided along with an optional legalAgreement
.
In addition the Create_ContractFormation
business event creation function has been adjusted to use the executionInstruction
attribute when defined.
Review Directions
In the CDM Portal, select the Textual Viewer and review the data types and functions mentioned above.
Event Model - Transfer: Remove unused Transfer sub-types
What is being released?
Several unused Transfer-related data types have been removed from the model
Details
The following data types and their corresponding synonyms have been removed:
CashTransferBreakdown
CashTransferComponent
CommodityTransferBreakdown
CommodityTransferComponent
SecurityTransferBreakdown
SecurityTransferComponent
TransferorTransferee
Review Directions
In the CDM Portal, select the Textual Viewer and see that the above mentioned data types have been removed.
DSL Syntax - Digital Regulatory Reporting Report Definition
What is being released?
This release contains DSL change to allow Digital Regulatory Reporting syntax to specify the report
as a type
where each attribute is associated with a regulatory rule
, rather than a simple list of fields
(e.g. regulatory rule
list).
Details
Specifying the report
as a type
allows the cardinality and type to be specified and validated for each report attribute. Furthermore, the API report output is now structured to allow transformation into other data formats (e.g. ISO 20022) possible.
Review Directions
Changes to report syntax will be made in an upcoming Digital Regulatory Reporting release.
2.129.4
Event Model - Function Update
What is being released?
This release fixes the Create_ContractFormation
function for the use case where the instructions include a LegalAgreement
. By adding a Java implementation for the Create_RelatedAgreementsWithPartyReference
, the provided LegalAgreement
is now added to contract formation output Trade->contractDetails->documentation
attribute.
Review Directions
In the CDM Portal, select the Visualization panel and review contents of the folder labeled Form Contract Business Event, and compare Fixed/Floating Single Currency Interest Rate Swap Master Agreement with Fixed/Floating Single Currency Interest Rate Swap No Legal Agreement.
Visualise Termination Events Description
What is being released?
Descriptions added to the Full Termination
and Partial Termination
CDM event visualisations.
Review Directions
In the CDM Portal, select the Instance Viewer (which will redirect you to Rosetta portal (press OPEN on ISDA Common Domain Model if prompted to) and select the following:
- CREATE TERMINATION BUSINESS EVENT > Full Termination - Vanilla Swap
- CREATE TERMINATION BUSINESS EVENT > Partial Termination - Vanilla Swap
The descriptions are also available in the CDM distributions.
2.129.3
Visualise Allocation Events
What is being released?
An Allocation workflow visualisation consisting of an Execution
, a proposed WorkflowStep
containing an AllocationInstruction
and finally an accepted WorkflowStep
containing an Allocation
business event.
Review Directions
In the CDM Portal, select the Instance Viewer (which will redirect you to Rosetta portal {press OPEN on ISDA Common Domain Model if prompted to}) and select:
- CREATE ALLOCATION BUSINESS EVENT > Vanilla Swap
2.129.2
Product Model - FpML Mapping of Notional
What is being released?
This release corrects the representation of Quantity
in cases where notional is referenced between legs in FpML.
The existing FpML synonym mapping of notionals into PriceQuantity
is inconsistent across products, which creates challenges for creation of DRR rules.
The following changes standardise location of initial quantity within PayoutBase
creating normalized location for capture of value and onward referencing:
fxLinkedNotionalSchedule -> initialQuantity
has been moved up topayoutQuantity -> quantitySchedule
.- Funding leg of an Equity Swap has initial notional populated in
payoutQuantity -> quantitySchedule
with reference to the onlyPriceQuantity -> quantity
. - Population of
PriceQuantity
is unchanged.
Review Directions
In the CDM Portal, select the Ingestion Panel and review the following samples:
- fpml-5-10 > products > rates > cdm-xccy-swap-after-usi-uti.xml
- fpml-5-10 > products > rates > cdm-xccy-swap-before-usi-uti.xml
- fpml-5-10 > products > equity > eqs-ex01-single-underlyer-execution-long-form.xml
- fpml-5-10 > products > equity > eqs-ex01-single-underlyer-execution-long-form-other-party.xml
- fpml-5-10 > products > equity > eqs-ex06-single-index-long-form.xml
- fpml-5-10 > products > equity > eqs-ex09-compounding-swap.xml
- fpml-5-10 > products > equity > eqs-ex10-short-form-interestLeg-driving-schedule-dates.xml
- fpml-5-10 > products > equity > eqs-ex11-on-european-single-stock-underlyer-short-form.xml
2.129.1
Event Model - Create Termination Function
What is being released?
This release introduces a creation function for termination and partial termination events.
Details
The function Create_Termination
has inputs of type TradeState
and TerminationInstructions
, and an output of type BusinessEvent
that contains a QuantityChangePrimitive
, and optionally a TransferPrimitive
.
Review Directions
In the CDM Portal, select the Textual Browser and review the type and functions mentioned above.
2.129.0
DSL Syntax - Distinct keyword
What is being released?
This release introduces the new DSL keyword distinct
used to remove duplicates from a list.
The distinct
keyword can appear after an attribute with multiple cardinality in a path expression, as shown in the example below.
quantity -> unitOfAmount -> currency distinct
The operation will return a subset of the list containing only distinct elements. It’s useful for removing duplicate elements from a list, and can be combined with other syntax features such as count
to determine if all elements of a list are equal, as shown in the example below.
payout -> interestRatePayout -> payoutQuantity -> quantitySchedule -> initialQuantity -> unitOfAmount -> currency distinct count = 1
The product qualification function, Qualify_BaseProduct_CrossCurrency
, has been updated to use the distinct keyword to identify when a product has a different currency specified on each InterestRatePayout
.
func Qualify_BaseProduct_CrossCurrency: inputs: economicTerms EconomicTerms (1..1) output: is_product boolean (1..1) assign-output is_product: Qualify_AssetClass_InterestRate_Swap(economicTerms) = True and economicTerms -> payout -> interestRatePayout count = 2 and ( economicTerms -> payout -> interestRatePayout -> payoutQuantity -> quantitySchedule -> initialQuantity -> unitOfAmount -> currency distinct count = 2 or ( economicTerms -> payout -> interestRatePayout -> payoutQuantity -> quantitySchedule -> initialQuantity -> unitOfAmount -> currency exists and economicTerms -> payout -> interestRatePayout -> payoutQuantity -> quantityMultiplier -> fxLinkedNotionalSchedule -> varyingNotionalCurrency exists and economicTerms -> payout -> interestRatePayout -> payoutQuantity -> quantitySchedule -> initialQuantity -> unitOfAmount -> currency <> economicTerms -> payout -> interestRatePayout -> payoutQuantity -> quantityMultiplier -> fxLinkedNotionalSchedule -> varyingNotionalCurrency ) )
Review Directions
In the CDM Portal, select the Textual Browser and review the following functions:
Qualify_BaseProduct_CrossCurrency
Qualify_BaseProduct_IRSwap
Qualify_BaseProduct_Inflation
In the CDM Portal, select the User Documentation tile and navigate to the Rosetta DSL > Expression > Rosetta Path Expressions section, or review the documentation section directly:
2.128.5
Product Model - FpML Synonym Mapping for Forward Rate Agreements
What is being released?
This release updates the FpML mappings for FRAs to cover PriceQuantity
.
Details
FpML represents FRAs in a single fra
xml element which is currently mapped into separate fixed and floating InterestRatePayout
legs. This release adds logic to also map the PriceQuantity
instances that correspond to the fixed and floating InterestRatePayout
components of the product.
Review Directions
In the CDM Portal, select the Ingestion Panel and review the following samples:
- fpml-5-10 > products > ird-ex08-fra.xml
- fpml-5-10 > products > ird-ex08-fra-no-discounting.xml
Concentration Limit – Refactor value and percentage cap. Addition of concentration limit type (Issue Outstanding Amount)
What is being released?
The data type ConcentrationLimit
has various attributes to define a concentration limit by criteria but also provides a means for how to express the concentration limit as a number value or a percentage. The corresponding data attributes valueCap
and percentageCap
only allowed for expression of a higher limit (cap). These have been renamed and refactored to valueLimit
and percentageLimit
and will now allow the user to express both an upper and lower limit (cap and floor) as a number value or percentage.
In addition to this, data attribute ConcentrationLimitTypeEnum
, an additional option has been added to the enumeration list to specify IssueOutstandingAmount
The user can now express concentration limits on an assets outstanding amount issued on the market.
Review Directions
In the CDM Portal, select the Textual Browser and search for the data types mentioned above.
- Search for the data type
ConcentrationLimit
and inspect the change to remove data attributevalueCap
andpercentageCap
and replace withvalueLimit
andpercentageLimit
and changes to the description and related condition. - To support the number (%) and money ranges, additional data types have been added to the
base-math-type
namespace. Search for data typesNumberRange
,NumberBound
,MoneyRange
andMoneyBound
, and inspect the logic to support specifying a number and money range lower and upper limits with related conditions to ensure the user specifies at least one ends of the scale. Please also note each option also has aboolean
that will indicate if the percentage or money amount inclusive or not. - Search for the data type
ConcentrationLimit
and within find data attributeConcentrationLimitTypeEnum
, inspect the additional option has been added to the enumeration list to specifyIssueOutstandingAmount
and its supporting description.
Event Model – Function Documentation
This release updates descriptions to the Visualisation panel for a few product in the functions: Execute Business Event and Contract Formation.
Descriptions have been added for the following products:
- Functions > Execute Business Event > Interest Rate Swap with Other Party Payment
Descriptions have been updated/expanded for the following products:
- Functions > Execute Business Event > Credit Default Swap
- Functions > Form Contract Business Event > Fixed/Floating Interest Rate Swap
- Functions > Form Contract Business Event > Credit Default Swap
Review Directions
In the CDM Portal select the Visualisation panel and review contents of the folders specified above.
2.128.1
Event Model - Map FpML Record-Keeping Novation Event
What is being released?
This release adds FpML Record-Keeping synonyms for the notional amount, and parties of the before and after states representing a Novation event.
Review Directions
In the CDM Portal, select the Ingestion Panel and review the following samples:
- fpml-5-10 > record-keeping > record-ex113-novation-from_transferor.xml
- fpml-5-10 > processes > msg-ex52-execution-advice-trade-partial-novation-C02-00.xml
- fpml-5-10 > processes > msg-ex53-execution-advice-trade-partial-novation-correction-C02-10.xml
Event Model - Map FpML Record-Keeping Clearing Event
What is being released?
This release adds FpML Record-Keeping synonyms for clearing events, including timestamps and the workflow event status.
Review Directions
In the CDM Portal, select the Ingestion Panel and review the following samples:
- fpml-5-10 > record-keeping > record-ex143-new-trade-CFTC-clearing.xml
- fpml-5-10 > record-keeping > record-ex149-new-beta-trade-CFTC-SEC-and-canada.xml
Product Model - Additional Day Count Fraction
What is being released?
This release adds the day count fraction ACT/ACT.ISMA
to the model denoting a Fixed/Floating Amount that will be calculated in accordance with Rule 251 of the statutes, by-laws, rules and recommendations of the International Securities Market Association.
Review Directions
In the CDM Portal, select the Textual Browser and navigate to the above enumeration.
Product Model - Early Termination Provisions
What is being released?
This release adjusts data types OptionalEarlyTermination
and MandatoryEarlyTermination
to contain the required settlement terms data type and adds synonym mappings for Optional and Mandatory Early Termination events in the CDM.
Details
OptionalEarlyTermination->cashSettlement
updated to be of data typeSettlementTerms
in order to includesettlementDate
MandatoryEarlyTermination->cashSettlement
updated to be of data typeSettlementTerms
in order to includesettlementDate
- Synonym mappings added to support ingestion of FpML 5.10
- The following trades contained in the
fpml-5-10 > incomplete-products > interest-rate-derivatives
folder have been moved tofpml-5-10 > products > rates
- ird-ex11-euro-swaption-partial-auto-ex
- ird-ex13-euro-swaption-cash-with-cfs
- ird-ex14-berm-swaption
- ird-ex15-amer-swaption
- ird-ex16-mand-term-swap
- ird-ex17-opt-euro-term-swap
- ird-ex18-opt-berm-term-swap
- ird-ex19-opt-amer-term-swap
- ird-ex20-euro-cancel-swap
- ird-ex21-euro-extend-swap
- ird-ex26-fxnotional-swap-with-cfs
- ird-ex28-bullet-payments
- ird-ex31-non-deliverable-settlement-swap
- ird-ex34-MXN-swap
- ird-ex35-inverse-floater-inverse-vs-floating
- ird-ex36-amer-swaption-pred-clearing
Review Directions
In the CDM Portal, select the Textual Browser and navigate to the above data type.
In the CDM Portal, select the Ingestion panel and review sample trades specified above, specifically ird-ex16-mand-term-swap
and ird-ex17-opt-euro-term-swap
.
Product Model - FINOS - Product Control Consensus Pricing Services
What is being released?
A new object TradePricingReport
and new property optionReferenceType
has been added to support the Product Control Consensus Pricing Services on Equity Vanilla Options. The additional object and property together with the existing OptionPayout
object will be used to form the common template data model that include all the attributes where vendors are expected to require to run valuation processes and return consensus data to the banks.
Details
TradePricingReport
– Object created with new data attributesPricingTime
(data typetimezone
) andDiscountingIndex
(data typeFloatingRateIndexEnum
) to specify the time and discounting curve used to price an option and existing attributeTrade
to specify the option trade details.OptionReferenceType
- Added toObservation
to allow specification of what product reference source is used to calculate the option price.OptionReferenceTypeEnum
– New enum types created and included inOptionReferenceType
to capture the reference source type for option pricing; enums include Future and Spot.
Review Directions
In the CDM Portal, select the Textual Browser and review the types and enumerations specified above.
2.127.2
Event Model – Function Documentation
What is being released?
This release adds descriptions to the Visualisation panel for all products in one of the functions: Execute Business Event.
Details
Descriptions have been added for the following products:
- Functions > Execute Business Event > Swaption
- Functions > Execute Business Event > Interest Rate Swap with Initial Fee
- Functions > Form Contract > Basis Swap
- Functions > Form Contract > Credit Default Swap
- Functions > Form Contract > FX Forward
- Functions > Form Contract > Fixed/Floating Single Currency Interest Rate Swap
- Functions > Form Contract > Forward Rate Agreement
- Functions > Form Contract > OIS Swap
- Functions > Form Contract > Swaption
- Functions > Form Contract > Repo Fixed Rate
Review Directions
In the CDM Portal select the Visualisation panel and review contents of the folders specified above.
Event Model - Map FpML Record-Keeping Termination Event
What is being released?
This release adds FpML Record-Keeping synonyms for the notional amount of the before and after states representing a Termination event.
Review Directions
In the CDM Portal, select the Ingestion Panel and review the following samples:
- fpml-5-10 > record-keeping > record-ex112-partial-termination.xml
- fpml-5-10 > record-keeping > record-ex130-partial-termination-xccy.xml
- fpml-5-10 > record-keeping > record-ex131-partial-termination-xccy-swap.xml
2.127.0
Product Model - Normalisation of the PriceType and CashflowType enumerations
What is being released?
This release normalises the PriceType (formerly contained into a single enumeration) into a composite list of enumerations, each tackling a different dimension used to qualify the type of a price: asset price / interest rate / exchange rate / cash payment, gross / net, clean / dirty etc. This release also separates the CashflowType (formerly contained into a single enumeration) into a composite list of enumerations. Where the CashflowType corresponds to a negotiated event between parties, a dedicated enumeration qualifies the type of lifecycle event the cashflow originates from (termination / novation etc.). This same enumeration is used in turn in PriceType, to further qualify the source of a cash payment price.
Details
The list of enumerated values for
PriceTypeEnum
is reduced to only 5 values.The
CashflowTypeEnum
is reduced to only qualify cashflows corresponding to scheduled events, with all fee / premium values taken out.The following new enumerations are introduced to capture the other dimensions of a price type:
CashPriceTypeEnum
GrossOrNetEnum
CleanOrDirtyPriceEnum
CapFloorEnum
SpreadTypeEnum
FeeTypeEnum
New
CashPrice
andPriceExpression
types are introduced, that use these new enumerations.CashPrice
is encapsulated inPriceExpression
.A new
CashflowType
is introduced, that uses these enumerations.CashPrice
is also encapsulated inCashflowType
, with a required choice betweenCashPrice
or the (reduced)CashflowTypeEnum
.The
Price
type is modified to encapsulate the new compositePriceExpression
type, instead of the flatPriceTypeEnum
.The
Cashflow
type is modified to encapsulate the new compositeCashflowType
, instead of the flatCashflowTypeEnum
.FpML synonyms have been adjusted so that the FpML price or cashflow type attributes map to the new structures.
Functions have been adjusted to preserve the current behaviour while using the new enumeration structures.
Review Directions
In the CDM Portal, select the Textual Browser and review the types and enumerations specified above. Select the Ingestion Panel and review the new Price
structure on the sample output.
2.126.1
Product Model - Mapping to FpML: Addition of incomplete product examples
What is being released?
This release includes additional FpML 5.10 data samples within the model where full synonym mapping has not been completed yet. The new samples are included in an fpml-5-10 -> incomplete-products
folder in order to identify them separately to samples in the fpml-5-10 -> products
folder where CDM model components exist and synonym mappings have been created to support ingestion. The addition of these examples gives transparency on further work required to support all products contained in the FpML 5.10 Confirmation View Examples download.
Details
Examples contained in the FpML -> CDM 5.10 Confirmation View download which are not contained in the existing CDM ingestion examples have been added in the following folders:
- fpml-5-10 > incomplete-products > bond-options
- fpml-5-10 > incomplete-products > commodity-derivatives
- fpml-5-10 > incomplete-products > correlation-swaps
- fpml-5-10 > incomplete-products > credit-derivatives
- fpml-5-10 > incomplete-products > dividend-swaps
- fpml-5-10 > incomplete-products > equity-options
- fpml-5-10 > incomplete-products > equity-swaps
- fpml-5-10 > incomplete-products > fx-derivatives
- fpml-5-10 > incomplete-products > inflation-swaps
- fpml-5-10 > incomplete-products > interest-rate-derivatives
- fpml-5-10 > incomplete-products > variance-swaps
- fpml-5-10 > incomplete-products > volatility-swaps
Review Directions
In the CDM Portal, select the Ingestion panel and review contents of the folders specified above.
Event Model – Function Documentation
What is being released?
This release adds descriptions to the Visualisation panel for all products in one of the functions: Execute Business Event.
Details
Descriptions have been added for the following products:
- Functions > Execute Business Event > Basis Swap
- Functions > Execute Business Event > Credit Default Swap
- Functions > Execute Business Event > FX Forward
- Functions > Execute Business Event > Fixed/Floating Single Currency Interest Rate Swap
- Functions > Execute Business Event > Forward Rate Agreement
- Functions > Execute Business Event > OIS Swap
- Functions > Execute Business Event > Repo Fixed Rate
Review Directions
In the CDM Portal select the Visualisation panel and review contents of the folders specified above.
2.126.0
Product Model – Inflation Swaps
What is being released?
Inflation Rate Indices have been added to the CDM so that Inflation Linked products can be represented. In addition synonym mappings have been updated to support ingestion of FpML sample trades.
Details
InflationRateIndexEnum
added containing enumeration of inflation rate indices.- Synonym mappings added to support ingestion of FpML 5.10
- The following trades containing in the
fpml-5-10 > incomplete-products > inflation
folder have been moved tofpml-5-10 > products > inflation
- inflation-swap-ex01-yoy
- inflation-swap-ex02-yoy-bond-reference
- inflation-swap-ex03-yoy-initial-level
- inflation-swap-ex04-yoy-interp
- inflation-swap-ex05-zc
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant enumeration specified above.
In the CDM Portal, select the Ingestion panel and review sample trades specified above.
2.123.4
Product Model – Added Support for Commodity Options & Refactor of AveragingObservation
What is being released?
OptionPayout
has been updated to support vanilla Commodity Options (Bullet European & Asian). The release refactors the AveragingObservation
object to AveragingCalculation
and introduces a new property, ObservationTerms
, to the OptionPayout
object. The solution decouples the aspects of observing & averaging a price that were previously both contained within AveragingObservation
and also offers support for cross product observations that are possible for Option contracts.
Details
AveragingCalculation
- New data type created to replaceAveragingObservation
& defines calculation parameters associated with Average/Asian Options. Modelled inOptionFeature
with data attributeaveragingRateFeature
.ObservationTerms
- New data type created and included inOptionPayout
to specify terms associated with observing a benchmark price. Contains a number of existing data types to capture; observable, pricingTime, pricingTimeType, primarySource, secondarySource, precision, observationDate & calculationPeriodDates.AveragingStrikeFeature
- Object created to keep previous support for average strikes & replaces previous use ofAveragingObservation
inOptionStrike
.ParametricDates
- Added toObservationDates
to allow specification of date terms in parametric means typically associated with commodities.
Relevant synonym mappings have been updated so that linkage exists to equivalent FpML structures.
New Ingestion Examples
New FpML examples have been added to the CDM distribution & are available in the ingestion pack to validate the changes being made for the representation of Commodity Options and also Commodity Swaps, that was included in a previous release. The examples are:
com-ex2-gas-swap-prices-first-day
com-ex3-gas-swap-prices-last-three-days
com-ex4-electricity-swap-hourly-off-peak
com-ex6-gas-call-option
com-ex7-gas-put-option
com-ex9-oil-put-option-american
com-ex27-wti-put-option-asian-listedoption-date
com-ex28-gas-swap-daily-delivery-prices-option-last
com-ex39-basket-option-confirmation
com-ex41-oil-asian-barrier-option-strip
com-ex46-simple-financial-put-option
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types specified above.
Select the Ingestion view and review the samples in fpml-5-10 > products > commodity
.
2.123.2
Product Model – Price and Quantity including Settlement Instructions
What is being released?
Cashflow components have been harmonised such that, except for Foreign Exchange, all the cashflow attributes of an FpML trade are mapped as settlement instructions in the Price/Quantity object of a CDM trade.
Background
Multiple inconsistencies have been identified in the current modelling of settlement terms. This leads to inefficiency in the product model and in the ability to represent functional rules for digital regulatory reporting.
This release follows on recent work to implement the baseline of an atomic settlement structure in the PriceQuantity object, from which a product- and asset-agnostic functional settlement model can be built. It results that the structure of a tradable product's cashflows can be harmonised between the PriceQuantity and Cashflow components. In turns, all the cashflows that are meant to be settled as part of a trade can be extracted from the product definition and represented in PriceQuantity, for example:
- the premium of an option
- the upfront fee of a CDS
- the present value of a swap in case of unwind or novation
This release remaps the remaining cashflow attributes (settlement date and direction) of all FpML and related samples as settlement instructions in the PriceQuantity structure, and removes them from the Cashflow component of the Product object. The exception is Foreign Exchange products, which continue to use Cashflow components to represent the currency flows.
Details
The following data types have been updated:
- A new
CashflowDetails
data type has been introduced, that represents ancillary information (such as payment discounting, cashflow type etc.) that can be attached to a cashflow. This information was previously found directly on theCashflow
data type. - The
Cashflow
data type has been simplified. It continues to extendPayoutBase
, but now only contains one optionalcashflowDetails
attribute. - The same
cashflowDetails
attribute has been added toPriceQuantity
. - The
paymentDelay
attribute (applicable to CMBS and RMBS) has been moved out ofCashflow
and positioned in the commonSettlementDate
component.
- A new
All the FpML synonyms for the
cashflow
attribute inPayout
have been removed, so that no cashflow components are being mapped as product definition.The synonyms for the
cashflow
attribute ofForeignExchange
have not been modified.Synonyms have been added to the
PriceQuantity
component to populate itsbuyerSeller
andsettlementTerms
attributes based on FpML samples.The CDS qualification functions have been updated to account for the case where no cashflow is present, since the upfront fee is now mapped outside of the product.
Event model functions that were operating on the
Cashflow
component have been adjusted to effect the inheritedPayoutBase
attributes instead.
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types and functions specified above.
Select the Ingestion Panel and review relevant samples, for example:
product>credit>cdindex-ex01-cdx-uti
(upfront fee example)product>equity>eqd-ex01-american-call-stock-long-form
(premium example)product>rates>GBP-OIS-uti
(additional payment example)
2.122.0
Event Model – Contract State deprecation
What is being released?
The ContractState
data type and all related types, functions and synonyms are being retired from the model.
Background
This release follows-on from the primitive harmonisation work completed earlier, whereby the event model is now harmonised to operate on the single TradeState
data type. All other data types to represent trade states are redundant and unused, so they can be removed from the model.
Details
The following data types and the related synonyms have been removed:
ContractState
PostContractFormationState
, inherited fromContractState
The following functions have been removed:
ContractStateFromTradeState
TradeStateFromContractState
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types specified above.
DSL Syntax - Synonym keyword to remove HTML formatting
What is being released?
This release introduces the new DSL keyword removeHtml
for synonyms to specify that all HTML tags should be removed during ingestion.
In the code snippet below, the synonym will map the ISDA_Create_1_0
attribute specify
to a CDM attribute. The removeHtml
keyword means that any HTML tags contained in the data will be removed.
[synonym ISDA_Create_1_0 value "specify" removeHtml]
Review Directions
In the CDM Portal, select the Ingestion view, and review the samples in isda-create
.
2.121.0
Product Model – Price and Quantity including Settlement Instructions
What is being released?
The structural definition of the tradable product has been rationalised, with a merged price/quantity structure that now incorporates settlement instructions (i.e. the settlement terms and the buyer/seller direction). Mappings have not been modified in this release, so attributes related to price/quantity settlement (e.g. option premium or upfront fee, foreign exchange etc.) are still mapped to the product and will be remapped at a later stage.
Background
Multiple inconsistencies have been identified in the current modelling of settlement terms. This leads to inefficiency in the product model and in the ability to represent functional rules for digital regulatory reporting.
This release focuses on creating the baseline of an atomic settlement structure from which a product- and asset-agnostic functional settlement model can be built. This structure is based on the principle that a settlement consists of an exchange of a given quantity against a given price between two parties. The existing PriceQuantity
structure already captures the price and quantity components of that exchange. It is now extended to include the required settlement attributes such as settlement date, direction etc. These settlement attributes are optional because some price/quantity may not define a straight settlement: instead, such price/quantity may be inputs into a product that will further specify the mechanics of those settlements.
Details
The
PriceQuantity
data type has been extended to describe a harmonised settlement structure that now also includes:- a
settlementTerms
attribute, that describes the settlement method (cash or physical) - a
buyerSeller
attribute, that handles the direction of the settlement
- a
The
SettlementInstructions
data type has been retired, as its attributes have now been merged into the uniquePriceQuantity
, and thesettlementInstructions
attribute has been removed fromTradableProduct
.Each trade lot now describes its own settlement attributes independently, which can be found in
tradeLot -> priceQuantity
. All functional expressions have been updated to fetch the settlement attributes ofTradableProduct
fromtradeLot -> priceQuantity
instead ofsettlementTerms
andsettlementInstructions
.Some static (java) code has had to be adjusted to work with the restructured model.
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types specified above.
In the Ingestion panel, verify that samples ingestion output has not been altered. The re-mapping of attributes related to the settlement of price/quantity (e.g. option premium) will occur at a later stage.
2.120.1
Product Model - Interest Payout Calculation Enhancements
What is being released?
A set of enhanced types and functions for computing interest rate payout amounts, and in particular floating amounts.
The enhancements are located in the following namespaces:
cdm.product.asset.calculation
includes enhanced fixed and floating amount calculations, with the capability to look up the notional in effect during the calculation period, and to do day count calculations using a simplified day count implementation that uses the base date library.cdm.product.asset.floatingrate
includes floating rate setting and processing, with the capability to look up and apply rate processing such as spreads, multipliers, caps and floors, etc.cdm.observable.asset.calculatedrate
includes a preliminary implementation of the new modular calculated floating rates (such as lookback compound or observation shift daily average) defined in the 2021 ISDA definitions. Also supports OIS rate calculations.cdm.observable.asset.fro
- includes logic for retrieving Floating Rate Option definitional metadata and index values.cdm.base.datetime.daycount
- new day counting logic, independent of calculation period calculations.
The current implementation should be viewed as experimental and is being released for review and feedback. Implementers using these capabilities are cautioned that they should test the results carefully, and report any issues or concerns to the CDM team.
Some of the calculation period amount capabilities that are included in FpML and the ISDA Definitions that are not yet fully supported in these enhancements include:
- Initial Rate: there is a basic implementation of rates specified for the initial period, but it is not thoroughly tested and may require adjustment to handle all cases correctly.
- Stubs: There is no support for stub rate calculations at this time.
- Compounding methods: there is currently only support for calculating the cash flows for a single calculation period. There is some support roughed in for compounding over multiple calculation periods using the CompoundingMethod, such as calculating spread-exclusive rates and cashflows, but this has not been used or tested yet.
- Reset averaging: there is currently no support for averaging using the resetDates concept, where the reset period is set to more frequent than the calculation period.
- The US rate treatment logic has a defined entry point but no implementation as yet. It may be that the interface to that function will need adjustment to provide all the necessary information for the calculation, although an attempt has been made to supply the necessary information.
In addition, some logic has been refactored. For example, the DayCountFractionEnum
has been moved to cdm.base.datetime.daycount
.
We anticipate that some additional cleanup changes will be made in subsequent releases, including:
- The existing
FixedAmount
andFloatingAmount
functions are likely to be rewritten to use the new calculation logic. - The existing
DayCountFraction
function is likely to be retired, replaced by the newYearFraction
function.
Following is a description of each of the functions included in the release.
New functions in cdm.product.asset.calculation
include:
FixedAmountCalculation
: Calculates the fixed amount for a calculation period by looking up the notional and the fixed rate and multiplying by the year fractionLookupFixedRate
: Look up the fixed rate for a calculation periodFloatingAmountCalculation
: Calculate a floating amount for a calculation period by determining the raw floating rate, applying any rate treatments, looking up the calculation period notional, then performing the multiplication of the notional, rate, and year fraction. Floating amount calculations are described in the 2021 ISDA Definitions in Section 6 and 7.LookupNotionalAmount
: Look up the notional amount in effect for a calculation periodLookupQuantityScheduleAmount
: Look up a value from a quantity schedule given a supplied starting date. It will return the value of the last step that is before the supplied starting date, or if none matches, the initial value.FindNonNegativeScheduleSteps
: Find all schedule step values whose stepDate is before or equal to the supplied periodStartDate, starting from supplied startingStep number. Returns a list of step values starting from the last matching one and going in reverse order. Done this slightly odd way for efficiency and simplicity in code generation.SelectNonNegativeScheduleStep
: Retrieve a single step from a schedule given a step number. This is an entry point to a function written in a native language like Java. Returns the step if it exists, else null. The index is 0-based, so 0 returns the first step.CalculateYearFraction
: Calculate the year fraction for a single calculation period, by invoking the base year fraction logic
New functions in cdm.product.asset.floatingrate
include:
DetermineFloatingRateReset
: Get the value of a floating rate by either observing it directly or performing a rate calculation. This function works differently depending on the rate category and style, as described in the 2021 ISDA Definitions, Section 6.6.GetFloatingRateProcessingType
: Get a classification of the floating rate is processed. This is based on FRO category, style, and calculation method, as described in the 2021 ISDA Definitions Section 6.6. The categorization information is obtained from the FRO metadata.ProcessFloatingRateReset
: Entry point for the function that performs the floating rate resetting operation. There are different variations depending on the processing type (e.g. screen rate, OIS, modular calculated rate).GetCalculatedFROCalculationParameters
: Initialize a calculation parameters block for an OIS or a daily average rate. Used to support FROs that include an embedded calculation.ProcessFloatingRateReset(processingType: FloatingRateIndexProcessingTypeEnum->CompoundIndex)
: Call the compounded index processing logic to calculate the reset.EvaluateScreenRate
: Evaluate/lookup the value of a screen rate.DetermineResetDate
: Determine the value of the reset date given a reset dates structure and a calculation period for which it is needed. Reset dates are defined in the 2021 ISDA Definition in Section 6.5.5.DetermineFixingDate
: Determine the observation (fixing) date needed given a reset dates structure and a reset date.GetFloatingRateProcessingParameters
: Determine the processing parameters to use from the InterestRatePayout by looking them up if necessary from the corresponding schedules in the interest rate streamSpreadAmount
: Look up the spread amount for a calculation periodMultiplierAmount
: Look up the multiplier amount for a calculation periodCapRateAmount
: Look up the cap rate amount for a calculation periodFloorRateAmount
: Look up the floor rate amount for a calculation periodLookupRateScheduleAmount
: Look up an amount for a calculation period from a rate scheduleFindScheduleSteps
: Find all rate schedule step values whose stepDate is before or equal to the supplied periodStartDate, starting from supplied startingStep number. Returns a list of step values starting from the last matching one and going in reverse order. Done this slightly odd way for efficiency and simplicity in code generation. Assumes schedule step are in ascending date order.SelectScheduleStep
: Retrieve a single step from a schedule given a step numberApplyFloatingRateProcessing
: Perform rate treatments on floating rates, such as applying spreads, multipliers, caps and floors, rounding, and negative interest treatment.ApplyFloatingRatePostSpreadProcessing
: Perform post-spread rate treatments on floating rates, such as applying caps and floors, rounding, and negative interest treatment.ApplyCapsAndFloors
: Apply any cap or floor rate as a constraint on a regular swap rate, as discussed in the 2021 ISDA Definitions, section 6.5.8 and 6.5.9ApplyUSRateTreatment
: Apply the US rate treatment logic where applicable (Bond Equivalent Yield, Money Market Yield, as described in the 2021 ISDA Definitions, section 6.9. (NB: this function does not have an implementation.)ApplyFinalRateRounding
: Apply the final rate rounding treatment logic as described in the 2021 ISDA Definitions, section 4.8.1.
New functions in cdm.observable.asset.calculatedrate
include:
EvaluateCalculatedRate
: Evaluate a calculated rate as described in the 2021 ISDA Definitions, Section 7GenerateObservationDatesAndWeights
: Apply shifts to generate the list of observation dates and weights for each of those datesComputeCalculationPeriod
: Determine the calculation period to use for computing the calculated rate (it may not be the same as the normal calculation period, for instance if the rate is set in advance)DetermineObservationPeriod
: Determine any applicable offsets/shifts for the period for observing an index, and then generate the date range to be used for observing the index, based on the calculation period, plus any applicable offsets/shiftsGenerateObservationPeriod
: Generate the date range to be used for observing the index, based on the calculation period, plus any applicable offsets/shifts.GenerateObservationDates
: Generate the list of observation dates given an observation periodDetermineWeightingDates
: Determine the dates to be used for weighting observationsProcessObservations
: Apply daily observation parameters to rate observation. These are discussed in the 2021 ISDA Definitions, section 7.2.3 and 7.2.4.GenerateWeights
: Recursively creates a list of weights based on the date difference between successive days.ApplyCompoundingFormula
: Implements the compounding formula: Product of ( 1 + (rate * weight) / basis), then backs out the final rate. This is used to support section 7.3 of the 2021 ISDA Definitions.ApplyAveragingFormula
: Implements the weighted arithmetic averaging formula. Sums the weighted rates and divides by the total weight. This is used to support section 7.4 of the 2021 ISDA Definitions.
New functions in cdm.observable.asset.fro
include:
IndexValueObservation
: Retrieve the values of the supplied index on the specified observation date.IndexValueObservationMultiple
: Retrieve the values of the supplied index on the specified observation dates.FloatingRateIndexMetadata
: Retrieve all available metadata for the floating rate index.ValidateFloatingRateIndexName
: Return whether the supplied floating rate index name is valid for the supplied contractual definitions.
New functions in cdm.base.datetime.daycount
include:
YearFraction
: The fraction of a year represented by a date range.YearFractionForOneDay
: Return the year fraction represented by a single day, i.e. 1 / dayCountBasis, where dayCountBasis represents the denominator of the day count fraction. This perhaps should take into account leap years, though the ISDA compounding formulas do not cover ACT basis at the moment.DayCountBasis
: Return the day count basis (the denominator of the day count fraction) for the day count fraction.
2.119.3
Product Model – FpML Synonym Mappings for Equity Swaps and Equity Options
What is being released?
This release contains a number of FpML synonym mapping fixes for Equity Swaps and Equity Options as detailed below
Details
- For Equity Options the
OptionPayout
has aPayoutQuantity
populated referencing thePriceQuantity
. - For all products the
ExternalProductType
is enumerated based on the metadata scheme associated with the product type value. - For specification of Equity Dividend treatment the following attributes and enumerations, and associated synonym mappings, have been added to data type
DividendReturnTerms
.- Attributes
nonCashDividendTreatment, dividendComposition and specialDividends
. - Enumerations
DividendCompositionEnum and NonCashDividendTreatmentEnum
for specification of Equity Dividend Treatment.
- Attributes
- Added boolean election
mutualEarlyTermination
toOptionalEarlyTermination
. - Added mappings for
multipleExercise
andpartialExercise
.
Review Directions
In the CDM Portal, select the Ingestion view and review the samples in fpml-5-10->products->equity
.
Product Model – Composable Product Qualification
What is being released?
A hierarchical approach to product qualification has been introduced in order to a) eliminate unnecessary repetition in the product qualification functions, and b) create a set of functions that can be reused in the development of the Digital Regulatory Reporting ("DRR") ruleset.
Background
Product Qualification functions are currently written as independent expressions for qualification into the ISDA product taxonomy. This leads to repetition in the model as the functional component identifying the Asset Class and Base Product components of the Taxonomy are repeated. This is in conflict with the CDM design principle of composability and re-usability.
Regulatory reporting rules also refer to classifications of products at a variety of levels as a component of regulatory functional expressions. For this purpose, utility rules
have been developed which replicate the same structure.
This release focuses on creating a composable set of qualification rules for Interest Rate products that can then be extended to cover additional asset classes, and also used to simplify the development of the DRR rules.
Details
New product qualification rules have been added to the model to describe the hierarchy of Interest Rate products as defined by the ISDA Product Taxonomy:
- Qualify_AssetClass_InterestRate_Swap - Qualifies a product as having the Asset Class classification Interest Rate.
- Qualify_BaseProduct_IRSwap - Qualifies a product as having the Base Product classification Interest Rate Swap.
- Qualify_BaseProduct_CrossCurrency - Qualifies a product as having the Base Product classification Cross Currency.
- Qualify_BaseProduct_Fra - Qualifies a product as having the Base Product classification Forward Rate Agreement.
- Qualify_BaseProduct_Inflation - Qualifies a product as having the Base Product classification Inflation Swap.
- Qualify_SubProduct_FixedFloat - Qualifies a product as having the Sub Product classification Fixed Float.
- Qualify_SubProduct_FixedFixed - Qualifies a product as having the Sub Product classification Fixed Fixed.
- Qualify_SubProduct_Basis - Qualifies a product as having the Sub Product classification Basis.
- Qualify_Transaction_ZeroCoupon - Qualifies a product as having the Transaction classification Zero Coupon.
- Qualify_Transaction_YoY - Qualifies a product as having the Transaction classification Year on Year.
- Qualify_Transaction_OIS - Qualifies a product as having the Transaction classification OIS.
The following product qualification rules have been updated to leverage the new composable product qualification approach:
- Qualify_InterestRate_IRSwap_FixedFloat
- Qualify_InterestRate_IRSwap_FixedFixed
- Qualify_InterestRate_IRSwap_Basis
- Qualify_InterestRate_IRSwap_FixedFloat_ZeroCoupon
- Qualify_InterestRate_IRSwap_FixedFloat_OIS
- Qualify_InterestRate_IRSwap_Basis_OIS
- Qualify_InterestRate_CrossCurrency_FixedFloat
- Qualify_InterestRate_CrossCurrency_Basis
- Qualify_InterestRate_CrossCurrency_FixedFixed
- Qualify_InterestRate_InflationSwap_FixedFloat_YearOn_Year
- Qualify_InterestRate_InflationSwap_FixedFloat_ZeroCoupon
- Qualify_InterestRate_InflationSwap_Basis_YearOn_Year
- Qualify_InterestRate_InflationSwap_Basis_ZeroCoupon
- Qualify_InterestRate_Fra
- Qualify_InterestRate_CapFloor
Review Directions
In the CDM Portal, select the Textual Browser and review the functions detailed above.
Infrastructure – CDM Portal Download
- Fixed CDM portal download link.
Review Directions
In the CDM Portal, select Downloads, and the links to download the CDM distributable are now working.
2.119.0
DSL Syntax - Enhancements for repeatable regulatory rules
What is being released?
This release introduces the new DSL keyword repeatable
to model reporting rules that repeat the same reporting logic on a specific set of data. One use case is the CFTC Part 45 regulation. Fields 33-35 require to report the full details of a notional quantity schedule: for each quantity schedule step the notional amount, the effective date and the end date must be reported.
Usage of the repeatable
keyword will replicate the following logical template:
extract repeatable
<ExpressionWithMultipleCardinality> ( <ReportingRule1>, <ReportingRule2> ... <ReportingRuleN> )
The logic prescribes that a set of N reporting rules is applied sequentially but as a collective to each item of the list of data records named ExpressionWithMultipleCardinality.
In the example below, the repeatable
keyword in the reporting rule NotionalAmountScheduleLeg1
signifies that the bracketed set of reporting rules should be applied as a collective to each item of the extracted list of quantity notional schedule steps. The rule NotionalAmountScheduleLeg1
will therefore result into a repeating set of reported fields with corresponding values.
reporting rule NotionalAmountScheduleLeg1 <"Notional Amount Schedule">\t[regulatoryReference CFTC Part45 appendix "1" item "33-35" field "Notional Amount Schedule"\t\tprovision "Fields 33-35 are repeatable and shall be populated in the case of derivatives involving notional amount schedules"] TradeForEvent then InterestRateLeg1 then extract repeatable InterestRatePayout -> payoutQuantity -> quantitySchedule -> stepSchedule -> step then ( NotionalAmountScheduleLeg1Amount, NotionalAmountScheduleLeg1EndDate,\t\t NotionalAmountScheduleLeg1EffectiveDate )reporting rule NotionalAmountScheduleLeg1Amount <"Notional amount in effect on associated effective date of leg 1">\t[regulatoryReference CFTC Part45 appendix "1" item "33" field "Notional amount in effect on associated effective date of leg 1"]\t\tCDENotionalAmountScheduleAmount\t\tas "33/35-$ 33 Notional amount leg 1"reporting rule NotionalAmountScheduleLeg1EffectiveDate <"Effective date of the notional amount of leg 1">\t[regulatoryReference CFTC Part45 appendix "1" item "34" field "Effective date of the notional amount of leg 1"]\t\tCDENotionalAmountScheduleEffectiveDate\t\tas "33/35-$ 34 Effective date leg 1"reporting rule NotionalAmountScheduleLeg1EndDate <"End date of the notional amount of leg 1">\t[regulatoryReference CFTC Part45 appendix "1" item "35" field "End date of the notional amount of leg 1"]\t\tCDENotionalAmountScheduleEndDate\t\tas "33/35-$ 35 End date leg 1"
Review Directions
In the CDM Portal, select the User Documentation tile and navigate to the Rosetta DSL> Rosetta Modelling Components> Reporting Component section, or review the documentation section directly:
Legal Agreement Model - ISDA Create Synonym Mappings
What is being released?
This release contains a number of ISDA Create synonym mapping fixes, as detailed below.
- Fixed synonym mappings for:
CustodianEvent->endDate
CollateralTransferAgreementElections->terminationCurrencyAmendment
CreditSupportAgreementElections->terminationCurrencyAmendment
AmendmentEffectiveDate->specificDate
AmendmentEffectiveDate->customProvision
- Added mapping exclusions for fields not intended to be mapped.
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types specified above.
Select the Ingestion view and review the samples in isda-create > test-pack > production
.
2.118.7
Legal Agreement Model - ISDA Create Synonym Mappings
What is being released?
This release contains a number of ISDA Create synonym mapping fixes, as detailled below.
- Added type
PledgeeRepresentativeRider
to model the terms of the Rider for the ISDA Euroclear 2019 Collateral Transfer Agreement with respect to the use of a Pledgee Representative, and updated the synonym mappings. - Added attribute
JurisdictionRelatedTerms->belgianLawSecurityAgreement
to model whether the Belgian Law Security Agreement Addendum is deemed applicable by the parties, and updated the synonym mappings. - Fixed synonym mappings for:
- `PostingObligations->partyElection->eligibleCollateral->criteria->treatment->valuationTreatment->fxHaircutPercentage
SubstitutedRegime->additionalRegime
TerminationCurrencyAmendment->effectiveDate
MinimumTransferAmountAmendment->effectiveDate->customProvision
TerminationCurrencyAmendment->effectiveDate->customProvision
SensitivityMethodology->specifiedMethodology
LegalAgreementNameEnum->ClauseLibrary
andLegalAgreementNameEnum->MasterAgreement
- Added mapping exclusions for fields not intended to be mapped.
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types specified above.
Select the Ingestion view and review the samples in isda-create > test-pack > production
.
2.118.4
Product Model – 2021 Floating Rate Definitions
What is being released?
The floating rate structure has been extended to include components from the new 2021 ISDA definitions, including new floating rate calculation parameters (observation shift, lookback, lockout, cap/floor) and fallback parameters. The new structure has been validated against FpML 5.12 samples that include the new definitions.
Details
A new
FloatingRateCalculationParameters
type describes the parameters applicable to the new floating rate calculations.New enumerations have been introduced to describe the calculation method:
CalculationMethodEnum
ObservationPeriodDatesEnum
CalculationShiftMethodEnum
A new
FallbackRateParameters
type describes the fallback parameters, including the relevant calculation parameters for the fallback rate.New
calculationParameters
andfallbackRate
attributes have been added to theFloatingRate
data typeA new FpML 5.12 example:
ird-ex40-rfr-avg-swap-obs-period-shift
has been added to the ingestion pack, that tests an example of the new structure
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types specified above.
Select the Ingestion view and review the sample mentioned above.
Product Model – New 2021 Cash Settlement Terms
What is being released?
New cash-settlement terms for mid-market valuation and replacement value methods have been added in accordance with the 2021 definitions. Synonym mappings have been extended using two new FpML 5.12 examples containing optional early termination terms according to these new valuation methods.
Details
CashSettlementMethodEnum
includes 5 new cash-settlement methods for mid-market valuation and replacement value:MidMarketIndicativeQuotations
MidMarketIndicativeQuotationsAlternate
MidMarketCalculationAgentDetermination
ReplacementValueFirmQuotations
ReplacementValueCalculationAgentDetermination
A new
CashCollateralValuationMethod
data type has been added that includes the parameters required for the new valuation methods.The harmonised
CashSettlementTerms
data type has been extended to include an optionalcashCollateralValuationMethod
attribute.Conditions have been added to
CashSettlementTerms
to ensure data integrity against the new cash settlement method types.CalculationAgentPartyEnum
has been renamed more generically asPartyDeterminationEnum
, as it now also applies to the protected party determination in the replacement value method.2 new samples including optional early termination clauses have been added to the FpML 5.12 group:
ird-ex47-rfr-compound-swap-lookback-oet-rvfq-FpML_5_12
ird-ex46-rfr-compound-swap-lookback-oet-mmviq
Their valuation method attributes have been mapped to the extended
CashSettlementTerms
data type.
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types.
In the Ingestion tile, search for the samples specified above.
2.118.3
Legal Agreement Model – Collateral Valuation Treatment/Identification and addition of additional haircuts
What is being released?
The data type CollateralValuationPercentage
has been renamed to CollateralValuationTreatment
as more relevant. The corresponding data attribute valuationPercentage
has been renamed to haircutPercentage
and its description reflects haircut rather than the full valuation percentage.
The following functions have been updated with the new names:
PostedCreditSupportItemAmount
SecurityFinanceCashSettlementAmount
ResolveSecurityFinanceBillingAmount
An additional haircut data attribute additionalHaircutPercentage
with related description has been added along with conditions as haircutPercentage
and fxHaircutPercentage
.
Review Directions
In the CDM Portal, select the Textual Browser and search for the data types mentioned above.
Search for the data type CollateralValuationTreatment
and inspect the change from CollateralValuationPercentage
throughout the model. Inspect the change to data attribute haircutPercentage
from valuationPercentage
and changes to the description and related conditions.
Check the addition of data attribute additionalHaircutPercentage
and inspect the related conditions.
Inspect the addition of condition HaircutPercentageOrMarginPercentage
which forces a required choice for haricutpercentage
or marginpercentage
In the legalagreement-csa-func file inspect the changes made to the function for haircut calculation to support the changes made.
Credit Notations – Agency Rating Criteria additions and added descriptions
What is being released?
A new enumeration list CreditNotationBoundaryEnum
will now denote the boundary of a credit agency rating i.e minimum or maximum. It is used now with theboundary
attribute added to the AgencyRatingCriteria
data type.
Descriptions for attributes of CreditNotationMismatchResolution
and AgencyRatingCriteria
have been added.
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types and review as per the following instructions:
Search for the data type AgencyRatingCriteria
and inspect the descriptions added to attributes mismatchResolution
and referenceAgency
. Also inspect the new added data attribute boundary
and its related enumerations CreditNotationBoundaryEnum
with descriptions.
Search for CreditNotationMismatchResolutionEnum
and inspect the descriptions now populated that where previously missing in the model.
2.118.2
Utility Functions - Vector Math Library
What is being released?
A library of utility functions for working with vectors (ordered collections of numbers) has been added to support modelling functions that require complex mathematical operations. Typical usage will include averaging and compounding calculations for floating amounts..
The functions are located in the namespace base-math-func
.
New functions include:
ToVector
: Creates a vector from a list of numbers.SelectFromVector
: Selects a single value from a vector (list of numbers), i.e. result = val[index].- Returns null if the specified vector is empty or if the specified index is out of range.
- Returns the element of the vector at the specified index.
LastInVector
: Returns the last value in a vector. If the vector is empty, returns nullAppendToVector
: Appends a single value to a vectorVectorOperation
: Generates a result vector by applying the specified arithmetic operation to each element of the specified left and right vectors in turn. i.e. result[n] = left[n] [op] right[n], where [op] is the arithmetic operation specified per theArithmeticOperationEnum
enum list. This function can be used to, for example, multiply or add two vectors.VectorScalarOperation
: Generates a result vector by applying the specified arithmetic operation and scalar right value to each element of the specified left vector in turn. i.e. result[n] = left[n] [op] right[n], where [op] is the arithmetic operation specified per theArithmeticOperationEnum
enum list. This function can be used, for example, to multiply a vector by a scalar value, or to add a scalar to a vector.VectorGrowthOperation
: Generates a result vector where the first component is the specifiedbaseValue
(typically 1) and each following nth component is the product of the previous component and the nth element of a seperate specified vector. For example: result[1] = baseValue * factor[1] and result[n] = result[n-1] * factor[n]. Typically factor[n] = 1.1 can represent a 10 percent increase, and 0.9 would correspond to a 10 percent decrease. The resulting vector will have the one more element than the specified list of factors. This function is typically useful for performing compounding calculations.
A new scalar function has been added to better support floating rate processing:
RoundToPrecision
: Rounds a specified number to a specified precision (in decimal places) using a roundingMode of typeRoundingDirectionEnum
. This is similar toRoundToNearest
but takes a precision rather than an amount, and uses a different rounding mode enumeration that supports more values.
Utility Functions - Basic Date Math Library
What is being released?
A library of utility functions for working with dates and lists of dates has been added to CDM to support modelling functions that require to ma to perform mathematical operations on date. Typical usage will generate list of dates for modular rate calculations in floating amounts.
A simple Java reference implementation accompanies this change. However users can provide their own implementations of these functions using a more robust date math library.
The functions are located in the namespace base-datetime-func
.
New functions include:
CombineBusinessCenters
: Creates aBusinessCenters
object that includes the union of business centers in the two specified lists.RetrieveBusinessCenterHolidays
: Returns a merged list of holidays for the specified business centers.DayOfWeek
: Returns the day of week corresponding to the specified dateAddDays
: Adds the specified number of calendar days to the specified date. A negative number will generate a date before the specified date.DateDifference
: Returns the difference in days between two specified dates. A negative number implies the first specified date is after the second.LeapYearDateDifference
: Returns the difference in leap year calendar days between two specified dates. (That is, the number of dates that happen to fall within a leap year.) A negative number implies the first specified date is after second.SelectDate
: Selects a date from a list of dates based on index. If not found, return nothing.LastInDateList
: Returns the last date in a list of datesAppendDateToList
: Adds a date to a list of datesPopOffDateList
: Removes the last element from a list of dates
The following are also new functions. A simple Java reference implementation is also provided.
IsWeekend
: Returns whether the specified date is a weekend. The implementation currently assumes a 5 day week with Saturday and Sunday as holidays. A more sophisticated implementation might use the business centers to determine which days are weekends, but most jurisdictions where derivatives are traded follow this convention.IsHoliday
: Returns whether a day is a holiday for the specified business centersIsBusinessDay
: Returns an indicator of whether the specified date is a good business date given the specified business centers. True => good date, i.e. not a weekend or holiday. False means that it is either a weekend or a holidayAddBusinessDays
: Returns a good business date that has been offset by the given number of business days given the specified business centers. A negative value implies an earlier date (before the specified originalDate), and a positive value a later date (after the specified date).GenerateDateList
: Creates a list of good business days starting from the startDate and going to the end date, inclusive, omitting any days that are weekends or holidays according to the specified business centers.
2.118.1
Product Model – Cash Settlement and Physical Settlement Terms
What is being released?
The structural definition of Settlement Terms has been harmonised. This release addresses transaction components related to Physical Settlement of derivative products and Cash Settlement of FX products. A previous release incorporated harmonisation of concepts related to Cash Settlement for credit, cross-currency swaps and swaptions.
Background
Multiple inconsistencies have been identified in the current modelling of settlement terms. This leads to inefficiency in the product model and in the ability to represent functional rules for digital regulatory reporting. The resolution approach creates several modelling components common across products as part of PayoutBase
and preserve the elements that are genuinely specific.
Details
CashSettlementTerms
describes a harmonised cash-settlement structure that works across credit, cross-currency swaps, swaptions and FX products.CashSettlementTerms
cardinality updated to allow multiple terms to be provided for FX products.PhysicalSettlementTerms
describes a harmonised physical-settlement structure that works across credit and options.CreditDefaultPayout
extendsPayoutBase
to pick up the normalisedSettlementTerms
structure. Corresponding data types have been removed fromCreditDefaultPayout
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types specified above. In the CDM Portal, select the Ingestion view and review the following sample trades:
- ird ex09 euro swaption explicit physical exercise
- fx ex07 non deliverable forward
- cd ex01 long asia corp fixreg versioned
Product Model - Option Denomination Deprecation
What is being released?
As part of the price/quantity normalisation, the option payout structure has been further rationalised by retiring the specialised OptionDenomination
type and corresponding attributes:
numberOfOptions
(number),optionEntitlement
(number) andentitlementCurrency
(string)
These modeling elements were previously used for Equity and Bond Option products and were all inherited from FpML. This change will see the same information captured by the Quantity
structure with the amount
, multiplier
and multiplierUnit
attributes. The relevant synonym mappings have been adjusted so that the corresponding values from FpML samples are populated in the Quantity
structure of the CDM representation.
Review Directions
In the CDM Portal, use the Textual Browser to review OptionPayout
, where the optionDenomination
attribute has been retired
In the Ingestion Panel, try the following samples:
- products > rates >
bond option uti
- products > rates >
cb option usi
- products > equity >
eqd ex01 american call stock long form
2.117.0
Legal Agreement Model - ISDA Create Synonym Mappings
What is being released?
ISDA Create synonym mapping fixes for ApplicableRegime
, adding RegulatoryRegimeEnum
synonyms for Brazil, United Kingdom, South Africa, South Korea and Hong Kong SFC.
Review Directions
In the CDM Portal, use the Textual Browser to review ApplicableRegime
and RegulatoryRegimeEnum
.
In the Ingestion Panel, try samples in folders:
- isda-create > test-pack > 2018-im-csa-ny-law
- isda-create > test-pack > 2018-im-csd-eng-law
- isda-create > test-pack > 2019-clearstream-cta
- isda-create > test-pack > 2019-euroclear-cta
- isda-create > test-pack > 2019-isda-bank-custodian-cta
2.116.0
Technical Change - Java 8 Support
What is being released?
The generated Java code in the CDM distribution is now compatible with Java version 8 and above.
Review Directions
In the CDM Portal, download the CDM distribution pack to inspect and make use of the generated Java code.
2.115.0
User Documentation - Add Design Principles section
What is being released?
The CDM design priciples have been documented as part of the CDM overview section of the user documentation. They describe the driving principles of the CDM design at a high-level, providing some direct examples from the model to illustrate practical applications of those principles.
Laying-out the design principles in the documentation will facilitate contributions to the CDM by the community, and help users understand the rationale behind some of the CDM design choices. The How to Contribute guide has been adjusted to refer to the design principles documentation.
Review Directions
In the CDM Portal, select the User Documentation tile and navigate to the CDM Design Principles section, or review the documentation section directly:
2.114.0
Product Model – Cash Settlement Terms
What is being released?
The structural definition of Settlement Terms has been harmonised. This release will only impact more consistently the transaction components related to Cash Settlement of derivative products. A further release will incorporate harmonisation of concepts related to Physical Settlement.
Background
Multiple inconsistencies have been identified in the current modelling of settlement terms. This leads to inefficiency in the product model and in the ability to represent functional rules for digital regulatory reporting. The resolution approach creates several modelling components common across products as part of PayoutBase
and preserve the elements that are genuinely specific.
Details
Extension of the SettlementTerms
data type that is now used consistently:
- Across payouts through extension of
PayoutBase
- As part of
TradableProduct
CashSettlementTerms
describes a harmonised cash-settlement structure that works across credit, cross-currency swaps and swaptions.
The different cash-settlement methods have been migrated to a specificCashSettlementMethodEnum
. Other settlement enums (cash vs physical, DvP etc.) have been positioned in theSettlementBase
type.
Removal of the SettlementTerms
attribute from Trade
and EquityPayout
Addition of a new data type SettlementInstructions
that is used in the definition of TradableProduct
for event related cashflows.
Addition of a common SettlementDate
abstraction layer, in which the different methods are represented as a one-of
.
Update of the relevant synonym mappings to reflect the new model structure.
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types specified above.
In the CDM Portal, select the Ingestion view and review sample trade fpml-5-10/products/rates/ird-ex12-euro-swaption-straddle-cash.xml
2.113.3
Legal Agreement Model – Conditions added to Concentration Limit
What is being released?
A condition has been added to CDM to ensure that when a concentration limit is used, a choice of concentration type is made to either use ConcentrationLimitCriteria
for a specific description of where to apply the concentration limit or ConcentrationLimitType
for a higher level generic description of where to apply the concentration limit.
In addition a condition is also added to ensure that when the data type ConcentrationLimit
is used, a concentration value choice must be made to either use valueCap
or percentageCap
.
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types and review as per the following instructions:
- Search for the data type
ConcentrationLimit
under the allowed data attributes are 2 additional conditionsConcentrationLimitValueChoice
andConcentrationLimitTypeChoice
Please review these conditions to ensure they determine the correct outcomes required.
Legal Agreement Model – Removal of SCSA from Legal Agreement Name enumeration list
What is being released?
Removal of legal agreement type Standard Credit Support Annex from the list of identifiable document names in the LegalAgreementNameEnum
list. The reason for this being, the document is no longer widely negotiated and research has indicated less than 5 of these exist operationally. Having it referenced in CDM has confused members and feedback has confirmed consensus agreement to remove from the model.
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types and review as per the following instructions:
- Search for the data type enum
LegalAgreemenyNameEnum
and inspect the removal ofStandardCreditSupportAnnex
- Related synonyms in
synonym-cdm-fpml
whereStandardCreditSupportAnnex
is referenced have also been removed from CDM.
2.113.2
Legal Agreement Model – Conditions added to Concentration Limit
What is being released?
A condition has been added to CDM to ensure that when a concentration limit is used, a choice of concentration type is made to either use ConcentrationLimitCriteria
for a specific description of where to apply the concentration limit or ConcentrationLimitType
for a higher level generic description of where to apply the concentration limit.
In addition a condition is also added to ensure that when the data type ConcentrationLimit
is used, a concentration value choice must be made to either use valuatiocap
or percentagecap
.
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types and review as per the following instructions:
- Search for the data type
ConcentrationLimit
under the allowed data attributes are 2 additional conditionsConcentrationLimitValueChoice
andConcentrationLimitTypeChoice
Please review these conditions to ensure they determine the correct outcomes required.
Legal Agreement Model – Removal of SCSA from Legal Agreement Name enumeration list
What is being released?
Removal of legal agreement type Standard Credit Support Annex from the list of identifiable document names in the LegalAgreementNameEnum
list. The reason for this being, the document is no longer widely negotiated and research has indicated less than 5 of these exist operationally. Having it referenced in CDM has confused members and feedback has confirmed consensus agreement to remove from the model.
Review Directions
In the CDM Portal, select the Textual Browser and search for the relevant data types and review as per the following instructions:
- Search for the data type enum
LegalAgreemenyNameEnum
and inspect the removal ofStandardCreditSupportAnnex
- Related synonyms in
synonym-cdm-fpml
whereStandardCreditSupportAnnex
is referenced have also been removed from CDM.
2.113.1
DSL Syntax - Only Exists for multiple attributes
What is being released?
The only exists
DSL feature has been enhanced to allow a list of attributes to be evaluated to determine a boolean outcome in a similar way to a single attribute.
The syntax for a single attribute remains the same. The statement below will evaluate to true if interestRatePayout
exists and all other attributes of Payout
are absent.
economicTerms -> payout -> interestRatePayout only exists
The new syntax allows for a list of attributes to be specified. The statement below will evaluate to true only if both interestRatePayout
and equityPayout
exist and all other attributes of Payout
are absent.
(economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> equityPayout) only exists
This change allows many of the qualification functions to be simplified.
Review Directions
In the CDM Portal, use the Textual Browser to review the usages of only exists
in the model, including the following examples:
- Product qualification functions -
Qualify_InterestRate_IRSwap_FixedFloat
,Qualify_Commodity_Swap_FixedFloat
,Qualify_CreditDefaultSwap_SingleName
.
2.112.3
Event Model - Contribution of ISLA - CDM for Securities Lending
What is being released?
This release contributes modelling components proposed by ISLA to extend the CDM event model in term of Securities Lending products. The release extends existing CDM event model concepts to support allocation, re-allocation, initial Settlement, and part and full return, of a Securities Lending contract. In addition a new product and event model is introduced for the billing function. Visualisation examples are included for all events covered as part of the contribution in a new folder Security Lending
.
Changes to existing data types and qualification functions have been made where appropriate to accomodate the additions to the model.
Details
Allocation and Re-Allocation
The Create_Allocation
and Create_SplitPrimitive
functions have been extended to be fully formed functions that are able to support multiple allocations and the specification of an ancillary party. A new Create_Reallocation
function has been introduced to allow specification of a reallocation event through the ReallocationInstruction
data type consisting of: the original block trade, existing splits to be decreased, existing splits to be increased, and details of any new splits produced by the reallocation event.
Updates to Existing Data Types, Enumerations and Functions
AllocationBreakdown
- updatedpartyReference
attribute tocounterparty
to allow the new party to be specified, and which side of the trade they are being allocated into. Cardinality ofquantity
updated to allow specification of all quantities associated with the individual split.SplitPrimitive
- additional condition added to ensure the quantities of the resulting split trades total that of the block trade.PartyRoleEnum
- Role ofAgentLender
added to the enumeration listIntentEnum
- Intent ofReallocation
added to the enumeration listCreate_SplitPrimitive
- assigns aclosedState
and apositionStatus
ofAllocated
Create_QuantityChangePrimitive
- updated input to allow specification of a list of quantities on an inputTradeState
that require changing.
New Data Types and Functions
ReallocationInstruction
DecreasedTrade
IncreasedTrade
Create_Reallocation
Qualify_Reallocation
Visualisation
- See examples
Allocation
andReallocation
New, Part and Full Return Settlement
The Create_Transfer
function has been extended to support creation of cash and security transfers representing the settlement of a security lending transaction. A new Create_Return
function has been introduced to allow specification of the part or full return of a Security Lending Transaction through the ReturnInstruction
data type consisting of: the trade being partially or fully returned, the quantity being returned, and the return date.
Updates to Existing Data Types and Functions
TransferInstruction
- new attributepayerReceiver
andquantity
added to specify values when part of a return event.Create_Transfer
- allow specification of an event date.Create_TransferPrimitive
- creates cash and security movements for a Security Finance transaction and sets thePositionStatusEnum
to Settled when Transfers have been applied to a Security Finance transaction.Create_CashTransfer
- creates cash movements for a Security Finance transaction, assignssettlementOrigin
of the payout used to create the cash transfer.Qualify_CashAndSecurityTransfer
- updated function to qualify based only on transfers associated with the event date.
New Data Types and Functions
ReturnInstruction
Create_Return
Create_SecurityFinanceTransfer
Qualify_FullReturn
SecurityFinanceCashSettlementAmount
Visualisation
- The workflow of the new, partial, and full return settlement events are demonstrated using the CDM workflow event model reflecting the instruction and settlement of each event.
- See examples
New Settlement Workflow
,Part Return Settlement Workflow
andFull Return Settlement Workflow
.
Billing
The process of invoicing fees associated with a Security Lending transaction has been modelled with the addition of the SecurityLendingInvoice
data type, to represent the information needing to be passed from one party to the other. The Create_SecurityLendingInvoice
function has been introduced to allow specification of the information required to populate an invoice, including calculation of the billing amounts, through the BillingInstruction
data type consisting of: the sending and receiving party, the billing start and end date, a BillingRecordInstruction
, and a BillingSummaryInstruction
.
Updates to Existing Data Types and Functions
FloatingAmount
andFixedAmount
- updated to allow specification ofCalculationPeriodData
when the period for the calculation is not specified parametrically on the payout (e.g. billing for a partial period of a security lending transaction).calculationPeriod
is now aliased as part of each function, either as the specifiedCalculationPeriodData
or the regular period on theinterestRatePayout
DayCountFraction - all Day Count Fraction functions have been simplified to use alias defined in
FloatingAmount
orFixedAmount
.
New Data Types, Enumerations and Functions
SecurityLendingInvoice
BillingInstruction
BillingRecord
BillingSummary
BillingRecordInstruction
BillingSummaryInstruction
RecordAmountTypeEnum
Create_SecurityLendingInvoice
Create_BillingRecords
Create_BillingRecord
Create_BillingSummary
Create_SecurityFinanceTradeStateWithObservations
Create_SecurityFinanceReset
ResolveSecurityFinanceBillingAmount
Visualisation
- See example
Billing
.
Legal Agreement Model
Updates to Existing Enumerations
LegalAgreementEnum
-GMSLA
added to enumeration list.LegalAgreementPublisherEnum
-BNYM
,ISLA
, andJPMorgan
added to enumeration list.
Utility Functions
A number of utility functions have been updated or added to the model in order to facilitate implementation of the above model components.
New Data Types and Functions
Create_TradableProduct
- creates a tradable product object from a set of given inputs.ConvertToAdjustableOrAdjustedOrRelativeDate
- Utility function to convert from AdjustableOrAdjustedOrRelativeDate to AdjustableOrAdjustedOrRelativeDate.FilterQuantityByFinancialUnit
- Filter list of quantities based on unit type.UpdateAmountForEachQuantity
- Updates all quantities on each price quantity with the new amount.UpdateAmountForEachMatchingQuantity
- Updates any quantity from the list of new quantities if the unit of amount matches.DeductAmountForEachMatchingQuantity
- Deducts the amount for any quantity from the list of new quantities if the unit of amount matches.Create_Quantity
- Create Quantity with given amount and unit of amount.Create_UnitType
- Create UnitType with given currency or financial unit.ExtractCounterpartyByRole
- Extracts from a list of Counterparty data types, the Counterparty that corresponds to the role i.e. Party1 or Party2.ReplaceParty
- Removes the old party, and adds the new party.Create_PayerReceiver
- Create PayerReceiver with given payer and receiver.ExtractFixedLeg
- Filters a list of InterestRatePayouts to extract a Fixed Leg.CalculationPeriodRange
- Outputs CalculationPeriodData for a given start date, end date and business days.Create_TradableProduct
- Creates a new TradableProduct with the given inputs.Create_SplitTrades
- Loops through each trade and calls Create_SplitTrade.Create_SplitTrade
- Creates a split trade from a block trade and a breakdown.
Updates to Existing Data Types and Functions
ResolveCashflow
- creates cash movements for a Security Finance transaction.Create_TerminationQuantityChangePrimitive
- sets aclosedState
andpositionStatus
on the Terminated tradeCloseTrade
- renamedTerminateContract
and updated to set aclosedState
andpositionStatus
.
Review directions
In the CDM Portal, select the Textual Browser and search for any of the changes specified above.
In Rosetta, select Visualisation and search for any of the examples defined above.
2.111.0
DSL Syntax - New keywords to compare a list to a single data object
What is being released?
New keywords have been introduced in the DSL syntax to compare a list of items to a single data object. Currently comparing a list to single data object will only result to true if all the items of the list match the single data object. The all
and any
keywords can now be used to extend the comparison outcome with any equality operators: =
, <>
, >
, >=
, <
, <=
.
In the examples below, payout -> interestRatePayout
is a list according to the cardinality of its definition in the model.
The all
keyword will be used to specify that all items in the list must match the single data object. Accordingly, the statement will evaluate to true if each paymentDates -> paymentFrequency -> period
for every item of the list interestRatePayout
is equal to T
.
economicTerms -> payout -> interestRatePayout -> paymentDates -> paymentFrequency -> period all = PeriodExtendedEnum -> T
The any
keyword will be used to specify that any item in the list must match the single data object. Accordingly, the statement will evaluate to true if at least one paymentDates -> paymentFrequency -> period
for any item of the list interestRatePayout
is equal to T
.
economicTerms -> payout -> interestRatePayout -> paymentDates -> paymentFrequency -> period any = PeriodExtendedEnum -> T
All list comparisons in the model have been updated to use the all
or any
keywords whilst retaining the original expected logical outcome.
In the CDM Documentation, review the following sections:
Review Directions
In the CDM Portal, use the Textual Browser to review the list comparisons in the model, including the following examples:
- Event qualification functions -
Qualify_CashTransfer
,Qualify_Novation
- Product qualification functions -
Qualify_InterestRate_IRSwap_FixedFloat
,Qualify_InterestRate_IRSwap_FixedFloat_OIS
- Conditions -
PriceQuantity -> NonNegativeQuantity
,CreditDefaultPayout -> FpML_cd_13
,CreditDefaultPayout -> FpML_cd_14
2.110.1
Product Model - Observable attribute references
What is being released?
Following the recent price, quantity and observable refactor, this release makes the PriceQuantity->observable
attributes referencable by adding location
/address
annotations to the attributes of type Observable
and their corresponding attributes in the Product
payouts. Synonyms have also been migrated to the new model for all products including rates, equity, FX, credit and repo, and also all other Event, DTCC and CME synonyms.
- Add
location
annotation toObservable->commodity
and addaddress
annotation toCommodityPayout->underlier->commodity
. - Add
location
annotation toObservable->productIdentifier
and addaddress
annotation toPayoutBase->productIdentifier
(super type ofSecurity
,Loan
andIndex
). - Add
location
annotation toObservable->currencyPair
and addaddress
annotation to:optionPayout.exerciseTerms.settlement.fxSettlementTerms.fixing.quotedCurrencyPair
forwardPayout.settlementTerms.fxSettlementTerms.fixing.quotedCurrencyPair
optionPayout.feature.averagingRateFeature.fxRateObservable.quotedCurrencyPair
- Add
deprecated
annotation to ExchangeRate type.
Review Directions
In the CDM Portal, select the textual browser and inspect the types mentioned above.
In the CDM Portal, select ingestion and review the following samples:
Observable->commodity
:
- fpml-5-10/products/commodity/com-ex1-gas-swap-daily-delivery-prices-last
- fpml-5-10/products/commodity/com-ex5-gas-v-electricity-spark-spread
- fpml-5-10/products/commodity/com-ex8-oil-call-option-strip
Observable->productIdentifier
:
- fpml-5-10/products/rates/bond-option-uti
- fpml-5-10/products/equity/eqs-ex01-single-underlyer-execution-long-form.json (Security)
- fpml-5-10/products/equity/eqd-ex04-european-call-index-long-form.json (Index)
Observable->currencyPair
:
- fpml-5-10/products/equity/fx-ex07-non-deliverable-forward
- fpml-5-10/products/equity/fx-ex11-non-deliverable-option
- fpml-5-10/products/equity/fx-ex22-avg-rate-option-specific
DSL Syntax - Deprecation of "includes" keyword
What is being released?
The use of the keyword includes
has been deprecated in favor of the equivalent keywordcontains
. The former was only used in the definition of the function Create_ClearedTrade
.
Review Directions
In the CDM Portal, select the textual browser and inspect that the syntax keyword includes
is no longer present.
2.108.3
Product Model - Support for Increase and Decrease as part of a single Trade
What is being released?
The structural definition of a TradableProduct
has been adjusted with a new TradeLot
data type. This type is introduced to represent the trading of multiple trade lots as part of a single trade. This new feature is particularly needed to support use cases like trade increase (upsize) as well as decrease (unwind).
A Tradableproduct
can have multiple TradeLot
. They each contain:
- multiple instances of
PriceQuantity
, - an
effectiveDate
attribute (optional) to capture the date at which the price and quantity elements become effective in the case of an already open trade - a
lotIdentifier
as unique identifier
Several functions have been updated to reflect the new definition of TradableProduct
. For example, the functions that calculate the performance and cash settlement on the return leg of an equity Swap, have been updated to work in the case of a single trade lot only.
Future work will ensure that those functions also work with multiple trade lots. This requires iteration logic which is not yet supported in the Rosetta DSL today.
All the synonym mappings have been adjusted. All the FpML product sample messages have been interpreted with a single trade lot.
The relevant sections in the CDM documentation have been updated.
Review directions
In the CDM Portal, select the textual browser and review the following data types:
TradableProduct
TradeLot
PriceQuantity
To review all the functions that have been modified, in the textual browser search on tradeLot
.
In the CDM Portal, select the ingestion panel and review any of the FpML product samples.
In the CDM Documentation, review the following sections:
Event Model - Function Development - Support for Increase and Decrease Events
What is being released?
A new IncreaseInstruction
type has been added to cater for the Increase business event use case (also known as upsize) where a new trade lot is added to the trade.
A new DecreaseInstruction
type has been added to cater for the Decrease business event use case (also known as unwind) where the trade lots inscribed on a trade will be decreased.
The Instruction
type has been augemented with these 2 new types.
The relevant sections in the CDM documentation have been updated.
Review directions
In the CDM Portal, select the textual browser and review the following data types:
IncreaseInstruction
DecreaseInstruction
Instruction
In the CDM Documentation, review the following sections:
2.108.1
Product Model - Mapping to FpML: Add new Record-Keeping samples
What is being released?
New FpML samples (non-public execution report) are added to the set of Record-Keeping samples:
- Rates: FRA, OIS Swap, Inflation Swap, CapFloor
- FX: Simple Exotic Barrier and Digital
- Commodity: Oil Swap
Although synonyms have been adjusted to map a large number of fields in those documents, some more work will be required to allow a complete coverage. Example of fields missing:
- Rate option for Inflation Swap
- Cap rate schedule, when a spread schedule is also present
- Special features for FX Simple Exotic
These samples are included as part of a broader addition of samples for DRR, and having those documents at least partially mapped in CDM allows to proceed with modelling of the reporting logic (for instance, having the premium fields captured for options).
The FpML synonyms and paths have also been cleaned-up to provide a more consistent treatment across product types / asset classes, making the mappings more readable and more easily extensible (for instance in the treatment of option premium).
Review directions
In the CDM Portal, select the Ingestion panel and review the following samples:
record-keeping
>record ex03 capfloor with premium
record-keeping
>record ex04 fra
record-keeping
>record ex05 inflation swap
record-keeping
>record ex06 ois swap
record-keeping
>record ex07 capfloor with spread
record-keeping
>record ex21 fx simpleexotic barrier
record-keeping
>record ex22 fx simpleexotic digital
record-keeping
>record ex31 commodity oil swap
Documentation - How to Contribute and Doc Style Guide sections
What is being released?
The documentation has been updated to accomodate an increasing number of contributors to the CDM from the industry community.
The documentation now contains an "How to Contribute" section that details the practical responsibilities of both the Contributor and the Reviewer in the process, in accordance with the CDM governance guidelines, and the subsequent deployment process.
As any contribution needs to include its own documentation update and release notes, a "Documentation Style Guide" section has been provided to ensure on-going consistency in the CDM documentation which may be sourced from many different writers.
Review directions
Review the new sections in the CDM documentation:
2.108.0
Event Model - Function Development - Create Index Transition Business Event
What is being released?
Based on a member contribution, this release contains functions to create a BusinessEvent
that represents an index transition on an interest rate product.
Taking as an input IndexTransitionInstruction
, the function creates a BusinessEvent
that comprises a TermsChangePrimitive
containing the update to the floating rate index and any spread adjustment, and also, optionally, a TransferPrimitive
, for any required value settlement (cash transfer). The function does not support adjustment to a spread schedule yet.
Review directions
In the CDM Portal, select the Textual Browser, and review type IndexTransitionInstruction
and functions Create_IndexTransition
, Create_IndexTransitionTermsChangePrimitive
.
In the Rosetta application, select the Visualisation tab, and review the Create_IndexTransition
examples for Vanilla Swap and Cross Currency Swap.
2.107.2
Product Model - Mapping to FpML: Enables ingestion of FpML 5.12 data samples and adds new illustrative examples
What is being released?
This release enables the ingestion of FpML 5.12 data samples with the model and provides illustrative CDM examples across commodity, credit, equity, fx, rates and repo products. This release does not address yet differences between FpML 5.10 and 5.12. This will be done in future work.
Review directions
In the CDM Portal, select the Ingestion panel, and review the following samples:
fpml-5-12 > products > commodity
fpml-5-12 > products > credit
fpml-5-12 > products > equity
fpml-5-12 > products > fx
fpml-5-12 > products > rates
fpml-5-12 > products > repo
2.107.1
Product Model - Simplify unnecessary nesting when pointing to an Underlier data type
What is being released?
Payouts containing an underlier previously referenced the data type Underlier
which contained a single attribute underlyingProduct
of type Product
. This created an unnecessary extra layer in the model. This release simplifies this unnecessary nesting and removes the redundant data type Underlier
. All the payouts that previously contained this data type now point directly to a Product
.
Functions and Regulatory Report definitions referencing this model structure have been updated to reflect the simplification of the model.
Review directions
In the CDM Portal, select the Textual Browser, and review the following data types:
EquityPayout
ForwardPayout
ObservationPayout
OptionPayout
2.106.7
Event Model - Rate Reset: Fallback Rates
What is being released?
This release adjusts the Reset
type and related functions to support Fallback Rates.
Fallback Rates are used, for example, as a substitute for LIBOR on legacy LIBOR contracts that have not been amended to an Adjusted Reference Rate (ARR), and where Fallback contractually applies.
Often in a fallback reset process the reset rate is set in arrears rather than in advance as is the case with rates like LIBOR today, where the rate is reset for the subsequent accrual period. For example, given a trade with 3 month floating rate, and where such as fallback applies, the reset date (defined in the model with existing attribute Reset->resetDate
) of 20th April is at the end of the interest accrual period, the Rate Record Date would be 3 months earlier, 19th Jan (e.g. near start of the accrual period because reset rate is set in arrears, defined in the model with new attribute Reset->rateRecordDate
).
Typically, if no rate is available on the Rate Record Date of 19th Jan, the observed rate will be taken on the nearest previous date where a rate is available (defined in the model with the existing attribute Reset->observations->observationIdentifier->observationDate
).
The related functions Create_Reset
, Create_ResetPrimitive
and ResolveInterestRateReset
have been adjusted to use the new attribute rateRecordDate when specified.
Note that the reset process for equities is unaffected.
Review directions
In the CDM Portal, select the Textual Browser, and review the following types and functions:
Reset
,ResetInstruction
Create_Reset
,Create_ResetPrimitive
andResolveInterestRateReset
2.106.4
Legal Agreement Model - Add ISDA Create Samples
What is being released?
This release adds additional ISDA Create sample json files for the legal agreement document types listed below, including samples from their Development, Sandbox and Production environments.
- 2002-isda-master-agreement
- 2002-isda-master-agreement-schedule-with-isda-clause-library
- 2002-isda-master-agreement-with-clause-library
- 2016-im-csa-ny-law
- 2018-im-csa-ny-law
- 2018-im-csd-eng-law
- 2018-isda-im-csa-ny-law
- 2018-isda-im-csd-eng-law
- 2019-clearstream-sa-security-provider-lux-law
- 2019-clearstream-sa-security-taker-lux-law
- 2019-euroclear-cta
- 2019-isda-bank-custodian-cta
- 2019-isda-bank-custodian-sa-eng-law
- 2019-isda-bank-custodian-sa-ny-law
- 2019-isda-bank-custodian-sa-ny-law-sample
- 2019-isda-clearstream-cta
- 2019-isda-euroclear-cta
- 2021-small-sample-document
Review directions
In the CDM Portal, select Ingestion panel, and run samples from the following folders:
- isda-create/test-pack-2021-05-06/production/
- isda-create/test-pack-2021-05-06/sandbox/
- isda-create/test-pack-2021-05-06/development/
2.106.2
Event Model - Transfer components: Rationalised representation of Quantity and Observable attributes
What is being released?
This release adjusts the Transfer
type by replacing the PriceQuantity
attribute, with separate Quantity
and optional Observable
attributes. In addition, a data constraint has been added to the Transfer
type to validate that when an Observable
is specified that the Quantity->unitOfAmount->financialUnit
is also specified.
Review directions
In the CDM Portal, select the Ingestion panel, and review in the following samples the details of the transfer history associated to the after state of the transfer primitive that composes the business event.
- events > exercise-swaption-cash
- events > increase-xccy
- events > partial-termination-xccy
Legal Agreement Model - Collateral Taxonomy Sources: EU UK, & US Eligible Collateral Category Listings
What is being released?
Collateral Taxonomy sources and Regulatory Enumeration lists to support the identification/labelling and categorisation of eligible collateral asset types per different regime's regulations, as part of global uncleared derivatives margin rules for posting collateral margin. The lists added to the model are based on those published and supported under the following jurisdictional regulatory bodies:
- European Union Eligible Collateral Assets classification categories based on EMIR Uncleared Margin Rules
- United Kingdom Eligible Collateral Assets classification categories based on UK Onshored EMIR Uncleared Margin Rules
- US Eligible Collateral Assets classification categories based on Prudential Regulators and CFTC Uncleared Margin Rules
Each of the enumerated values has a complete description of the relevant regulatory rules they represent. They are listed as additional Taxonomy sources to those already represented in the CDM
Review directions
In the CDM Portal, select the Textual Browser and search for the relevant data types and review as per the following instructions:
- Search for
TaxonomySourceEnum
and inspect the new enum valuesEU_EMIR_EligibleCollateralAssetClass
,UK_EMIR_EligibleCollateralAssetClass
,US_CFTC_PR_EligibleCollateralAssetClass
. Each corresponds to a regulatory enumeration list for a regime:EU_EMIR_EligibleCollateral
contains 18 enum values A to R,UK_EMIR_EligibleCollateral
contains 18 enum values A to R,US_CFTC_PR_EligibleCollateral
contains 13 enum values. Each of the enum values has its own complete description based on the corresponding regulations. - Search for the new type
CollateralTaxonomy
underProductTaxonomy
. This new type specifies aTaxonomySource
and a value from the enumeration list. - New conditions have been added for
EU_EMIR_EligibleCollateral
,UK_EMIR_EligibleCollateral
,US_CFTC_PR_EligibleCollateral
. These conditions enforces the specified regulatory enumerated list to match the taxonomy source. - A new type
CollateralTaxonomyValue
lists the available taxonomy value enumeration options as well as anonEnumeratedTaxonomyValue
that caters for taxonomy value outside of the available enumerated lists. A logical condition was added to ensure one collateral taxonomy values is specified. ProductTaxonomy
has been replaced withCollateralTaxonomy
Within asset criteria and the related condition for optional choice.
2.106.0
Product Model - Commodity: Added Mapping for Commodity Derivative Products
What is being released?
This release introduces mapping for Commodity derivative products. A set of critical attributes has been succesully mapped for Commodity Swaps and a basic framework has been completed for Commodity Options. In addition, one new product qualification and three related ingestion examples have been added in a new Products category called Commodity. Specific changes are listed below:
New synonyms to support Commodity derivative products in existing data types:
Price
ProductIdentifier
Quantity
Observable
OptionPayout
Payout
Product
TradableProduct
Frequency
UnitType
PeriodEnum
QuotationSideEnum
CapacityUnitEnum
BusinessCenterEnum
New synonyms for new data types that support Commodity derivative products:
FixedForwardPayout
Commodity
Changes to Product Qualifications:
- Added
Qualify_CommodityOption
- Added description to
Qualify_Commodity_Swap_FixedFloat
- Added description to
Qualify_Commodity_Swap_Basis
Added new ingestion examples:
com-ex1-gas-swap-daily-delivery-prices-last
com-ex5-gas-v-electricity-spark-spread
com-ex08-oil-call-option-strip
Completed the enumerated list for the following:
CommodityInformationPublisherEnum
Review directions
In the CDM Portal, select the Textual Browser, search for any of the changes specified above. Also, select the Ingestion Feature, Products->Commodity, and select any of the new examples to see the results of mapping from FpML to a CDM Compliant format, including the applicable Product Qualification.
2.105.3
Legal Agreement Model - Collateral Agreement Elections
What is being released?
Under Credit Support Agreement Elections, mapping exercises identified a number of validation errors due to the model initially focussing on IM documentation, during mapping a VM agreement these were spotted. This release resolves some of the fields which are mandatory for IM only and makes them optional. The elections covered in this release are as follows:
- generalSimmElections
- substitutedRegime
- conditionsPrecedent
- custodyArrangements
Review Directions
In the CDM portal use the textual browser to review the following:
- Review enhancements to type
CreditSupportAgreementElections
- Locate generalSimmElections, substitutedRegime, conditionsPrecedent, custodyArrangements
- Check cardinality changes for each from (1..1) to (0..1)
Legal Agreement Model - Eligible Collateral Schedule
What is being released?
Eligible Collateral Criteria allows specification of a Listing Type in order to define constraints based on the index, sector, or exchange an asset is listed on. The cardinality on these attributes has been changed so that multiple values for each can be specified.
Review Directions
In the CDM portal use the textual browser to review the following:
- Review enhancements to type
ListingType
2.105.2
Product Model - PriceQuantity: FpML synonym mappings for FloatingRateSpecification
What is being released?
The recent PriceQuantity
refactoring introduced a new standard set of data types for Price
and Quantity
and also propagated the related changes throughout most of the model. This release contains a few minor clean up tasks:
The initial floating rate is considered an attribute of the Product
. The FpML synonyms have been changed to map the initial floating rate into the FloatingRateSpecification -> initialRate
, rather than PriceQuantity -> price
.
Review Directions
In the CDM Portal, select Ingestion, and review the following samples:
For FloatingRateSpecification -> initialRate
:
- products > credit > cdindex-ex04-iBoxx-uti.xml
- products > rates > ird-ex29-non-deliverable-settlement-swap-uti.xml
- products > rates > ird-ex33-BRL-CDI-swap-versioned.json
Event Model - Event Date: FpML Record-Keeping synonym mappings for BusinessEvent
What is being released?
This release adds an FpML Record-Keeping synonym mapping for BusinessEvent -> eventDate
.
Review Directions
In the CDM Portal, select Ingestion, and review the following samples:
For BusinessEvent -> eventDate
:
- record-keeping > record-ex01-vanilla-swap.xml
- record-keeping > record-ex02-vanilla-swap-datadoc.xml
- record-keeping > record-ex100-new-trade.xml
2.104.2
CDM Distribution: Kotlin Language
What is being released?
The suite of CDM Distributions has been expanded with a version in Kotlin programming language on the CDM Portal. This version only contains CDM types and enums for now.
Review Directions
- In the CDM Portal, A new tile in the downloads section offers the option to retrieve the new CDM Kotlin Distribution.
2.103.0
Legal Agreement Model - Updated ISDA Create Samples Names
What is being released?
This release renames the ISDA Create sample json files for the legal agreement document types to be in line with the agreed ISDA Create naming convention.
- 2016-im-csa-ny-law
- 2019-clearstream-sa-security-provider-lux-law
- 2019-clearstream-sa-security-taker-lux-law
- 2019-isda-bank-custodian-sa-eng-law
- 2019-isda-bank-custodian-sa-ny-law
Review directions
In the CDM Portal, select Ingestion, and run samples from the following folders:
- isda-create/test-pack/production/
- isda-create/test-pack/sandbox/
2.102.0
Product Model - Contribution of ISLA - CDM for Securities Lending - SecurityFinancePayout
What is being released?
This release contributes modelling components proposed by ISLA to extend the CDM in term of Securities Lending products. The release introduces a new Payout SecurityFinancePayout
, five additional new data types contained within SecurityFinancePayout
, and two new enumerations. The existing SecurityPayout
data type and the encapsulated data types and related enumerations have been marked as [deprecated]
in the model to reflect the move to using the new SecurityFinancePayout
.
Changes to other data types and qualification functions have been made where appropriate to accomodate for the new payout.
Details
New Data Types
SecurityFinancePayout
DividendTerms
CollateralProvisions
SecurityFinanceLeg
Duration
EvergreenProvision
New Enumerations
DurationTypeEnum
CollateralTypeEnum
Updates to Existing Data Types
Payout
- added new data attributesecurityFinancePayout
EligibleCollateral
- data type renamed toEligibleCollateralSchedule
, attributescheduleIdentifier
of typeIdentifier
added to allow specification of an identified Collateral Schedule within a Legal Agreement.PostingObligationsElection
- attributeeligibleCollateral
updated to reflect data type name change above.CollateralValuationPercentage
- new attributemarginPercentage
and data conditionMarginPercentage
added to support alternate approach to defining margin requirements for Securities Finance transactions.
Updates to Qualification Functions
- Twenty nine Product Qualification functions for Credit Default Swaps, Equity Swaps and Interest Rate Swaps have been updated or extended to factor the use of the new
SecurityFinancePayout
.
Data Types marked as Deprecated
SecurityPayout
InitialMargin
InitialMarginCalculation
SecurityValuation
SecurityValuationModel
BondValuationModel
BondPriceAndYieldModel
UnitContractValuationModel
Enumerations marked as Deprecated
MarginTypeEnum
RepoDurationEnum
Review directions
In the CDM Portal, select the Textual Browser and search for any of the changes specified above.
2.101.8
Model Change - Modified Choice conditions to rename with unique names
What is being released?
This release modifies the naming of choice conditions in the model that were not previously identified with a unique condition name. Conditions previously identified with the name Choice
now have a unique name consisting of the name of the data type with the word Choice
as a suffix.
The following data types containing conditions named Choice have been adjusted to reflect the new naming convention.
AdjustableDate
AdjustableOrRelativeDate
AdjustableOrRelativeDates
BusinessCenters
AdjustableRelativeOrPeriodicDates
CommodityProductDefinition
DeliveryDateParameters
CommodityReferenceFramework
Obligations
NaturalPerson
PartyContactInformation
LimitApplicable
PartyCustomisedWorkflow
Resource
ApplicableRegime
NotificationTimeElection
SubstitutedRegime
AssetCriteria
FxSettlementRateSource
CalculationAgent
ExtraordinaryEvents
FeaturePayment
CreditDefaultPayout
GeneralTerms
InterestRatePayout
BasketReferenceInformation
ReferenceInformation
PaymentCalculationPeriod
AveragingPeriod
WeightedAveragingObservation
ResolvablePayoutQuantity
CashSettlementTerms
DeliverableObligations
OptionSettlement
SettlementTerms
SecurityLeg
InitialMarginCalculation
FxFeature
ExerciseFee
ExerciseFeeSchedule
ExerciseProcedure
MultipleExercise
Review directions
In the CDM Portal, select the Textual Browser and search for any of the changes specified above.
2.101.5
Model Change - Modified Money data type to use the new standard Quantity data type
What is being released?
This release modifies the Money
type by making it an extension of Quantity
, removing the existing attributes in Money
, and adding a condition that requires the unitOfAmount
to be a currency
.
The following functions required minor modifications to point-to/use the new location of currency in the Money
data type:
Create_Transfer
CreditSupportAmount
DeliveryAmount
EquityCashSettlementAmount
PostedCreditSupportItemAmount
ReturnAmount
UndisputedAdjustedPostedCreditSupportAmount
The following function required no change after the Money
data type was changed:
SumPostedCreditSupportItemAmounts
The data type for the following attribute was changed from Money
to Price
:
UnitContractValuationModel
->unitPrice
The following data types required no change after the Money
data type was changed
BondPriceAndYieldModel
CalculationPeriod
Cashflow
CashSettlementTerms
CashTransferBreakdown
CashTransferComponent
ConcentrationLimit
CreditEvents
CustodianTerms
ElectiveAmountElection
ExerciseFee
ExerciseFeeSchedule
FailureToPay
InitialMargin
PartialExercise
PaymentCalculationPeriod
PaymentDetail
PaymentDiscounting
PercentageRule
Position
PostedCreditSupportItem
PremiumExpression
PrincipalExchange
SecurityLeg
SimplePayment
StubValue
Review directions
In the CDM Portal, select the Textual Browser and search for any of the changes specified above.
2.101.4
Model Change - Modified Money data type to use the new standard Quantity data type
What is being released?
This release modifies the Money
type by making it an extension of Quantity
, removing the existing attributes in Money
, and adding a condition that requires the unitOfAmount
to be a currency
.
The following functions required minor modifications to point-to/use the new location of currency in the Money
data type:
Create_Transfer
CreditSupportAmount
DeliveryAmount
EquityCashSettlementAmount
PostedCreditSupportItemAmount
ReturnAmount
UndisputedAdjustedPostedCreditSupportAmount
The following function required no change after the Money
data type was changed:
SumPostedCreditSupportItemAmounts
The data type for the following attribute was changed from Money
to Price
:
UnitContractValuationModel
->unitPrice
The following data types required no change after the Money
data type was changed
BondPriceAndYieldModel
CalculationPeriod
Cashflow
CashSettlementTerms
CashTransferBreakdown
CashTransferComponent
ConcentrationLimit
CreditEvents
CustodianTerms
ElectiveAmountElection
ExerciseFee
ExerciseFeeSchedule
FailureToPay
InitialMargin
PartialExercise
PaymentCalculationPeriod
PaymentDetail
PaymentDiscounting
PercentageRule
Position
PostedCreditSupportItem
PremiumExpression
PrincipalExchange
SecurityLeg
SimplePayment
StubValue
Review directions
In the CDM Portal, select the Textual Browser and search for any of the changes specified above.
2.101.2
Product Model - Credit: Update to Credit Product Qualifications
What is being released?
This release provides an updated set of Credit Product Qualification functions, introducing four new functions, to bring the new total to six. All of the new and revised functions account for currently supported products in a consistent manner. The revised functions align with the ISDA v1 and/or v2 Taxonomy where applicable, are mutually exclusive, and fill gaps from the previous version, e.g. to separately identify single name Credit Default Swaps (CDS) from loan and index CDS.
The descriptions for each of these functions are compliant with the CDM style guide. In addition, inline guidance comments have been added to explain each section of code in each of the Credit Product Qualification functions so that implementers can more easily understand the purpose of each group of lines of code. This release also adds one new Credit Product FpML Ingestion Examples, bringing the total to 21. The new and revised functions are listed below, with the count of CDM ingestion examples shown in parentheses:
New Product Qualification Functions:
Qualify_CreditDefaultSwap_Loan
(2)Qualify_CreditDefaultSwap_Index
(4)Qualify_CreditDefaultSwap_IndexTranche
(1 - new)Qualify_CreditDefaultSwap_Basket
(2)
Revised Product Qualification Functions:
Qualify_CreditDefaultSwap_SingleName
(8)Qualify_CreditDefaultSwaption
(4)
Review directions
In the CDM Portal, select the Textual Browser to inspect the changes to the functions specified above. Also, select the Ingestion feature Products->Credit, and choose one or more examples to view, such as cd-ex01-long-asia-corp-fixreg-versioned.xml
and note the productQualifier for each in the CDM panel on the right side.
2.101.0
Legal Agreement Model - Add ISDA Create Samples
What is being released?
This release adds additional ISDA Create sample json files for the legal agreement document types listed below, including samples from their both Production and Sandbox environments.
- 2016 IM CSA (NY Law)
- 2019 Clearstream SA (Security-provider) (Lux Law)
- 2019 Clearstream SA (Security-taker) (Lux Law)
- 2019 ISDA Bank Custodian SA (Eng Law)
- 2019 ISDA Bank Custodian SA (NY Law)
Review directions
In the CDM Portal, select Ingestion, and run samples from the following folders:
- isda-create/test-pack/production/
- isda-create/test-pack/sandbox/
2.100.1
Model Change - Removed New Inline Comments
What is being released?
This release removes inline comments (e.g. ones preceeded by TODO) that were introduced after the last clean up of inline comments. There were eleven rows in the logical model from which these comments were removed.
Review directions
In the CDM Portal, select the Textual Browser, search for any instances of //. The only remaining ones should be as part of a URL or as a guidance comment in a function or synonyum. Also there should not be any instances of /*.
2.100.0
Product Model - PriceQuantity: CDM Cardinality change in Price and minor changes to enumerations in the FinancialUnitEnum
What is being released?
A change to the cardinality of one attribute of the Price
data type and minor changes to the FinancialUnitEnum
as described below:
- The cardinality of the
perUnitOfAmount
attribute in thePrice
data type has been changed to mandatory singular (1..1) from optional singular (0..1) so that this value will always be populated - The enumerated values set in
FinancialUnitEnum
have been made singular and a new value ContractualProduct has been added:- Contracts has been changed to Contract
- IndexUnits has been chagned to IndexUnit
- Shares has been changed to Share
- ContractualProduct has been added to qualify a price that applies to the complete contractual product, such as a cash premium on an OTC Option
Review directions
In the CDM Portal, select the Graphical Navigator, search any of the data types listed above. Alternatively, select the Textual Browser and search for the data types and attributes listed above.
2.99.16
Product Model - PriceQuantity: PriceQuantity refactoring follow up tasks - minor changes for Reset, OptionStrike, and FloatingRate
What is being released
The recent PriceQuantity
refactoring introduced a new standard set of data types for Price
and Quantity
and also propagated the related changes throughout most of the model. This release continues that propagation in specific areas and includes other minor clean up tasks:
Updated
Reset
->resetValue
andObservation
->observationValue
type to use thePrice
data type.In
OptionStrike
- Removed metadata address from
StrikePrice
: This attribute uses the new standardPrice
data type, but does not require the new metadata address pointing toPriceQuantity
because the strike price is not represented there. This change corrects an unintended change from thePriceQuantity
refactoring release. - For the FpML synonyms, changed the mapping for the FpML
StrikePrice
to point to theOptionPayout
instead of theTradableProduct->PriceQuantity
. - Changed the condition
choice
toone of
, which is a more streamlined expression that can be used in this case.
- Tangentially related to
PriceQuantity
: Expanded the description forBusinessEvent
->EventDate
.
Review directions
In the CDM Portal, select the Textual Browser and search for the data types and attributes listed above. Also, see one or more ingestion examples, e.g.fx ex09 euro op
.
2.99.15
Product Model - Equity: Update to Equity Product Qualifications and addition of a generic Index Option Product Qualification
What is being released?
This release provides an updated set of Equity Product Qualification functions, introducing four new functions, revising one, and dropping one to bring the new total to five. The release also adds a generic Index Option Product Qualification function. All of the new and revised functions account for currently supported products in a consistent manner. The revised functions align with the ISDA v1 and/or v2 Taxonomy where applicable, are mutually exclusive, and fill gaps from the previous version, e.g. to separately identify price return products. The descriptions for each of these functions are compliant with the CDM style guide. In addition, inline guidance comments have been added to explain each section of code in each of the IR Product Qualification functions so that implementers can more easily understand the purpose of each group of lines of code.
This release also adds two new Equity Product FpML Ingestion Examples, one for Qualify_EquityOption_PriceReturnBasicPerformance_SingleName
and one for Qualify_IndexVanillaOption
, which appears in the Equity group, bringing the total to eleven.
This expanded set of function are listed below, with the count of CDM ingestion examples shown in parentheses:
New Product Qualification Functions:
Qualify_EquitySwap_TotalReturnBasicPerformance_SingleName
(5)Qualify_EquitySwap_PriceReturnBasicPerformance_Index
(2)Qualify_EquitySwap_TotalReturnBasicPerformance_Index
(1)Qualify_EquityOption_PriceReturnBasicPerformance_SingleName
(1)Qualify_IndexVanillaOption
(1)
Revised Product Qualification Function:
Qualify_EquitySwap_PriceReturnBasicPerformance_SingleName
(1)
Dropped Product Qualification Function:
Qualify_EquitySwap_ParameterReturnDividend_Basket
: Deferred until fully supported in the CDM
Review directions
In the CDM Portal, select the Textual Browser to inspect the changes to the functions specified above. Also, select the Ingestion feature Products->Equity, and choose one or more examples to view, such as eqs-ex01-single-underlyer-execution-long-form-other-party.xml
and note the productQualifier
for each in the CDM panel on the right side.
2.99.14
Model Change - Upgrade Reset and Transfer Function Model to support Interest Rate Payout
What is being released?
This release introduces upgrades to the Reset and Transfer business event functions by adding support for the InterestRatePayout
data type.
Expanding on existing functionality which supports EquityPayout
, this upgrade to support InterestRatePayout
follows the existing Reset and Transfer mechanism. Namely, the Reset business event function receives as an input the relevant market data Observation
values and the relevant Trade
object. The Transfer
business event function receives the resulting Reset
business event values as an input to calculate the quantity of the transfer via a performance calculation, which for an InterestRatePayout
would use the existing FixedAmount
and FloatingAmount
calculation functions.
Further, functions relating to the Transfer business event were renamed and refactored to harmonise cash and security transfers. The below functions were change:
func Create_CashTransfer
renamed toCreate_Transfer
, which is now the business event function to associate both cash and security transfers to Trades.func Create_CashTransferPrimitive
renamed toCreate_TransferPrimitive
, which now supports creation of transfers of cash and securities.func Create_Transfer
renamed toCreate_CashTransfer
, which creates instances of theTransfer
data type for cash transfers. The corresponding function to create instances ofTransfer
for security transfers isCreate_SecurityTransfer
. These two functions are referenced inCreate_TransferPrimitive
to associate the newly createdTransfer
toTradeState
s.
Review directions
In the CDM Portal, use the Textual Browser to inspect the changes to the function model. Note that no visual examples have yet been created for the Interest Rate Reset and Transfer events.
2.99.12
Product Model: Update to Interest Rate Product Qualifications
What is being released?
This change provides an update to the set of Product Qualification functions for Interest Rate (IR) products. Sixteen of the seventeen pre-existing functions in this category have been revised to account for currently supported products in a consistent manner. The revised functions align with the ISDA v1 and/or v2 Taxonomy where applicable, are mutually exclusive, and fill gaps from the previous version, e.g. to exclude other payout types where applicable, and properly define rules for FRAs and OIS-indexed swaps where applicable.
All 51 FpML IR ingestion examples in the CDM now resolve to the correct qualifications. Previously there were a number of cases for which the feature could not uniquely qualify the product or qualified it as the wrong product. The new descriptions for this set of functions are compliant with the CDM style guide. In addition, inline guidance comments have been added to explain each section of code in each of the IR Product Qualification functions so that implementers can more easily understand the purpose of each group of lines of code. These functions are listed in the code in the logical order shown below, with the count of CDM ingestion examples shown in parentheses:
Qualify_InterestRate_IRSwap_FixedFloat
(24 examples)Qualify_InterestRate_IRSwap_FixedFixed
(0 examples)Qualify_InterestRate_IRSwap_Basis
(1 examples)Qualify_InterestRate_IRSwap_FixedFloat_ZeroCoupon
(3 examples)Qualify_InterestRate_IRSwap_FixedFloat_OIS
(4 examples)Qualify_InterestRate_IRSwap_Basis_OIS
(0 examples)Qualify_InterestRate_CrossCurrency_FixedFloat
(4 examples)Qualify_InterestRate_CrossCurrency_FixedFixed
(1 examples)Qualify_InterestRate_CrossCurrency_Basis
(2 examples)Qualify_InterestRate_InflationSwap_FixedFloat_YearOn_Year
(0 examples)Qualify_InterestRate_InflationSwap_FixedFloat_ZeroCoupon
(0 examples)Qualify_InterestRate_InflationSwap_Basis_YearOn_Year
(0 examples)Qualify_InterestRate_InflationSwap_Basis_ZeroCoupon
(0 examples)Qualify_InterestRate_Fra
(2 examples)Qualify_InterestRate_CapFloor
(3 examples)Qualify_InterestRate_Option_Swaption
(5 examples)Qualify_InterestRate_Option_DebtOption
(2 examples)
The Qualify_InterestRate_IRSwap_FixedFloat_PlainVanilla
function was removed from the CDM because it does not align with market requirements for a product qualification in the CDM. Note that the surviving Qualify_InterestRate_IRSwap_FixedFloat
qualification (first item in the list above) represents the most basic IR Swap product type.
Review directions
In the CDM Portal, select the TextualBrowser
, click inside the page, search in the text any of the functions listed above.
Also in the CDM Portal, select the Ingestion function, then select Products, then Rates, and review any of the examples, noting the ProductQualifier
. For example, select CAD-Long-Initial-Stub-versioned.xml and note that the ProductQualifier
is InterestRate_IRSwap_Basis
.
2.99.6
CDM Distribution - C# Data Validation
What is being released?
This release introduces support for data validation in the C# distribution, enabling validation based on both cardinality and conditional statements.
Cardinality
The C# code generators now generate a validation rule for each attribute cardinality constraint, so if the cardinality of the attribute does not match the requirement an error will be associated with that attribute by the validation process.
Condition Statement
Data type condition definitions comprises a boolean expression that applies to the type attributes. The C# code generators now support the following language features:
- conditional statements:
if
,then
,else
- boolean operators:
and
,or
- list statements:
exists
,is absent
,contains
,count
- comparison operators:
=
,<>
,<
,<=
,>=
,>
Choice
Choice rules define a choice constraint between the set of attributes of a type. The C# code generators now support the one-of
condition.
Review directions
In the CDM Portal, go to the Downloads section, and download either C# 9 (.NET 5.0) or C# 8 (.NET Standard 2.1).
2.99.5
Model Change - Added Support for Commodity Swaps
What is being released?
This release introduces support for basic Commodity Swaps, featuring new payout data types and an expanded data structure to support the definition of the underlying commodity reference price. Specific changes listed below:
New and revised Payout
data types
ObservationPayout
: Added to represent common attributes forEquityPayout
andCommodityPayout
CommodityPayout
: Added to support the floating leg of a Commodity Swap with data structures that can represent the unique needs of Commodity SwapsFixedForwardPayout
: Added to support the fixed leg of a Commodity Swap and may be re-used in other product contextsEquityPayout
: Modified as an extension ofObservationPayout
and removed the attributes that are now represented inObservationPayout
New data types to support the CommodityPayout
data type
CommodityPriceReturnTerms
: Defines parameters in which the commodity price is assessedRollFeature
: Identifies a way in which the futures contracts referenced will roll between periodsPricingDates
: Specifies dates or parametric rules for the dates on which the price will be determinedParametricDates
: Defines rules for the dates on which the price will be determinedLag
: The pricing period per calculation period if the pricing days do not wholly fall within the respective calculation period
Modified and new data types to support Commodity Reference Prices as underliers
Commodity
: Expanded with additional attributes to define the Commodity Reference PricesCommodityProductDefinition
: Specifies the commodity underlier in the event that no ISDA Commodity Reference Benchmark existsDeliveryDateParameters
: Specifies a date or the parameters for identifying the relevant contract date when the commodity reference price is a futures contractCommodityReferenceFramework
: Specifies the type of commodityPriceSource
: Specifies a publication that provides the commodity price, including, where applicable, the details of where in the publication the price is published
New functions to support Commodity Swaps
Qualify_Commodity_Swap_FixedFloat
: Identifies a product as a Commodity FixedFloat swapQualify_Commodity_Swap_Basis
: Identifies a product as a Commodity Basis swap (FloatFloat)
Changes in enums to support Commodity Swaps
- Added
RollSourceCalendarEnum
: Identifies a date source calendar from which the pricing dates and the roll to the next contract will be based - Added
DayDistributionEnum
: Denotes the method by which the pricing days are distributed across the pricing period - Combined the values from
CommodityBusiness
with the values inBusinessCenterEnum
- Modified
PeriodExtendedEnum
by adding a new enumerated value, C (CalculationPeriod), which is used when the defined the period corresponds to the calculation period, for example, it is used in the Commodity Markets to indicate that a reference contract is the one that corresponds to the period of the calculation period
Review directions
In the CDM Portal, select the Textual Browser, search for any of the changes specified above. For example, begin with Payout
and then drill down into ObservationPayout
, CommodityPayout
, or FixedForwardPayout
.
2.99.4
DSL Syntax - Syntax upgrades for regulatory rules
What is being released?
Additional validation rules have been added to identify incorrect syntax when using the minBy or maxBy operator.
A simplification of the syntax for extracting information from a CDM object. The word
multiple
is no longer required afterextract
.
CDM Model - Simplification of regulatory rules
What is being released?
An update for all reporting rules currently using extract multiple
syntax. The use of the multiple
operator is no longer necessary.
An update of regulatory rule CrossCurrencySwapBuyerSeller
which had invalid syntax.
An update of regulatory rule CDSPrice
to use syntax which is more human readable.
Model Change
- Removal of redundant
multiple
keyword fromextract
rule. - Update of regulatory rule
CrossCurrencySwapBuyerSeller
- Update of regulatory rule
CDSPrice
Review directions
In Rosetta Core use the Textual View to inspect the reporting rules.
See reporting rule TradingDateTime
, which has had the redundant multiple
keyword removed.
See reporting rule CrossCurrencySwapBuyerSeller
, which has had the invalid syntax removed.
See reporting rule CDSPrice
, which has been rewritten.
2.98.5
CDM Model - Removed unnecessary comments from the logical model
What is being released?
This release provides a cleaner version of the CDM logical model that is viewable in the ISDA CDM Portal. About 500 unnecessary commments were removed from the model in order to minimize distractions while reading the model. These comments were preceded by the symbol // or inserted between the symbols /* and * /. Over 100 of these comments began with the phrase TODO or similar, indicating future work to be considered. All of these comments have been archived and are under review to identify and prioritize work to be done.
The only type of comments that have not been removed are those that provide useful guidance to the users, most typically found in the product qualifications and synonyms where additional explanation is helpful for user interpretation between lines of code.
Review directions
In the CDM Portal, select the Textual Browser, search for the symbol //. The only cases that should be found are examples of guidance comments or the use of // in a URL. Also, search for /* , there should not be any cases of this notation.
Technical Change - Bugfix to Java code
What is being released?
The setXXX methods in RosettaModelObjectBuilders now accept null as an argument. Setting a value to null has the effect of clearing out the value for that attribute.
Review directions
In CDM Portal, use the Downloads icon to access the generated Java code.
2.97.13
Technical Change - Bugfix to Graphical Navigator in CDM Portal
What is being released?
Bugfix. The Graphical Navigator in the CDM Portal was broken such that it failed to show type details in the right panel. The same bug also broke the search functionality.
Review directions
In the CDM Portal, select the Graphical Navigator, search for a data type, e.g. TradableProduct, observe the graphical display of this data type and the type details in the right panel.
2.97.9
Technical Change - Bugfix to Graphical Navigator in CDM Portal
What is being released?
Bugfix. The Graphical Navigator in the CDM Portal was broken such that it failed to show type details in the right panel. The same bug also broke the search functionality.
Review directions
In the CDM Portal, use the Graphical Navigator to inspect the model, clicking on data attributes displays data type details in the right-hand panel. Use the search functionality to search for a data type.
2.97.8
Technical Change - Bugfix to Typescript code generator
What is being released?
Bugfix. The Typescript code generator has been updated to generate a missing interface, which is needed to make use of the generated Typescript code.
Review directions
In the CDM Portal, use the Downloads icon and subsequently the Typescript icon to download and access the generated Typescript files.
Technical Change - Enhanced transparency of CDM data validation for users
What is being released?
Java code has been updated to enhance transparency of CDM data validation issues. It is now easier for technical CDM adopters to see data validation issues as they execute CDM data validation logic in a Java execution environment.
Review directions
In the CDM Portal, navigate to the Downloads icon and then to the Java icon to download all Java code artefacts. Users can make use of the CDM Demo icon (also within Downloads) to see how to invoke CDM data validation logic in Java.
CDM Model: Expanded set of enumerations in RegulatoryRegimeEnum
What is being released?
Additional regimes have been added to the RegulatoryRegimeEnum
which is used to express the required regimes for initial margin documentation. The RegulatoryRegimeEnum
is used as an enumeration for attributes in the ApplicableRegime
and SubstitutedRegime
data types within the legal agreements model.
The new enumerated values are BrazilMarginRules
, UnitedKingdomMarginRules
, SouthAfricaMarginRules
, SouthKoreaMarginRules
, and HongKongSFCMarginRules
, all of which have come into force in January 2021. Each of these enumerated values has a complete description that uses the text provided in the relevant regulatory supplement.
Review directions
In the CDM Portal select the Textual Browser, search for ‘ApplicableRegime’ and ‘SubstitutedRegime’, click on the ‘RegulatoryRegimeEnum’ next to the ‘regime’ attribute and observe the expanded list of regimes, including the ones noted above.
2.97.5
Technical Change - Builder Refactor
What is being released?
Upgraded the CDM code generators to ease future community contributions. This further simplifies the creation of Java function implementations by the CDM project team and the wider community.
Note: this change will not be backwards compatible with current CDM Java implementations.
How to review the change
In the CDM Portal, use the Download icon to inspect the generated Java code. Please note that the structure of the generated Java objects, those that represent CDM data types, have changed.
Technical details of the change
All the CDM types are now being generated in Java as interfaces instead of classes with implementation provided separately e.g. AdjustableDate is now a Java interface with an implementation called AdjustableDateImpl.
CDM Java objects are instantiated using the builder pattern with builder classes like AdjustableDateBuilder. These classes again have been made into interfaces that extends the POJO interfaces. These also have implementation provided e.g. AdjustableDateBuilder is an interface implemented by AdjustableDateBuilder.
The benefit of this change is that an AdjustableDateBuilder is a AdjustableDate, which makes the implementations of the code generators and functions much easier and more maintainable.
Using the new structure
If you are only using CDM objects and functions that have been generated elsewhere you should not need to make any changes.
If you have code that changes CDM objects in Java or instantiates them using the builder classes there are some changes you will need to make. In all these examples XXX stands for the name of a CDM type.
- The setXXXBuilder(XXXBuilder xxxBuilder) methods have been removed. The setXXX(XXX xxx) methods should be used instead as they will now accept XXXBuilders as they now implement XXX
- Similarly the addXXXBuilder methods have also been removed and addXXX methods should be used
- The setXXXRef methods have been renamed to setXXXValue becuase they have always set the value and not the ref
- Function implementations - Any parameter of a function that was previously of type List should now be List<? extends XXX>
Model Change - Update cardinality constraints for PriceQuantity
data type
What is being released?
Update for the cardinality of price
and quantity
attributes on the PriceQuantity
data type to optional. The optionality of price and quantity will allows for these attributes to be used independently when use cases require so, for example the denomination of the notional for the protection leg does not require the price component and the description of an upfront fee to denote a cash price will not require the quantity component.
Review directions
Make use of the CDM Portal and its Ingestion panel to inspect how existing sample documents are represented using the. New PriceQuantity
structure.
2.96.4
CDM Model: Event Model - ContractFormationPrimitive
What is Being Released
Bug Fix - The ContractFormationPrimitive
event has been updated to remove a redundant condition and correct commentary for the remaining condition to be applied to the event object.
Model Changes
The conditions onContractFormationPrimitive
have been rationalised to one condition which continues to ensure that trade details are persisted when a contract is formed from an input trade (i.e. Before contains TradeState
) from an execution object (or otherwise).
Review Directions
In the CDM Portal, use the Textual Browser to inspect the data type `ContractFormationPrimitive'.
2.96.1
CDM Model: Function Development - Create_ContractFormation
What is Being Released
The Create_ContractFormation
function has been updated to use an instructions object and ensure consistent design of Business Event functions in the CDM.
Background
Consistent design of Business Event Functions will allow for easier adoption of the CDM Event Model. Each Business Event creation function should result in a valid CDM output object based on input instructions. All Business Event creation functions, and Business Event qualification functions should include a description.
Model Changes
The ContractFormationInstruction
data type has been added to the model, containing mandatory data attributes required on a Contract Formation Business Event. Create_ContractFormation
function updated to contain ContractFormationInstruction
as input object. Descriptions on Create_ContractFormation
and Qualify_ContractFormation
updated.
Review Directions
In the CDM Portal, use the Textual Browser or Graphical Navigator to inspect the data types and functions referenced above.
2.95.6
Technical change: Compile for java 11
What is Being Released
The generated Java code in the CDM distribution has been upgraded to use Java version 11.
The previous version (Java version 1.8) is no longer supported by Oracle.
Users of the CDM Java distribution 2.95.6 (or higher) will need to use Java with a version 11 or higher.
Review Directions
In the CDM Portal, download the CDM distribution pack to inspect and make use of the generated Java code.
2.95.4
CDM Model: Update to regulatory reporting logic to account for Price Quantity Phase 2 release
What is Being Released
Updates to the logical expressions of the regulatory reporting logic already present in the model, where the new PriceQuantity
data structure ought to be used.
Review Directions
In the CDM Portal and Textual Browser, see updates to reporting rule FixedFixedPrice
, reporting rule FixedFloatPrice
, reporting rule BasisSwapPrice
, reporting rule CDSPrice
and reporting rule Quantity
.
2.95.1
CDM Model: Refactoring of Price and Quantity – Phase 2
What is Being Released
The continuation of the refactoring of the price and quantity data types in the CDM.
Background
This phase of the price and quantity refactoring achieves multiple objectives:
- Creates revised atomic price and quantity data types that can be used anywhere in the model where a price and/or quantity is required.
- Inserts those new types into the
TradableProduct
data type and into specific locations in thePayout
data type and other sections of the model. - Allows for a product definition that is fully agnostic of the price and quantity for a specific trade.
- Enables an efficient process for functions whose inputs require product definitions and related price and quantity. The previous version used an arbitrary set of attributes as a proxy to another set of attributes which is not appropriate, because that is the role of a reference – this new release introduces a new referencing mechanism consisting of an address and location pair that allows efficient referencing of
price
andquantity
to thePayout
data types for purposes of function inputs while upholding the product agnostic principle for the persisted objects.
Primary Model Changes
Added a new base data type,
MeasureBase
, which represents two common attributes for prices and quantities:amount
, which is a numberunitOfAmount
, which is of typeUnitType
, a new data type that qualifies the unit by which the amount is measured (e.g. a specific currency, a specific financial unit such as shares, or a capacity unit such as barrels)
Added new enumerated sets to support
UnitType
:WeatherUnitEnum
FinancialUnitEnum
CapacityUnitEnum
, which replacesUnitEnum
Revised the
Price
data type which- extends
MeasureBase
with two attributes- the mandatory
priceType
attribute which is of typePriceTypeEnum
, a new enumerated set perUnitOfAmount
, which is of typeUnitType
, and provides an optional attribute to further define the price
- the mandatory
- replaces
PriceNotation
and the encapsulated data types ofActualPrice
,CashPrice
, andPrice
- and replaces the old
Price
data types and the number data type in selected locations withinPayout
- extends
Revised the
Quantity
data type which- extends
MeasureBase
with two optional attributesmultiplier
which is a numbermultiplierUnit
which is of typeUnitType
- replaces the
QuantityNotation
data type throughout the model
- extends
Revised the
Observable
data type which- specifies the object to be observed for a price – the object could be an asset or a reference
- replaces
AssetIdentifier
with a refined data structure, e.g. currency is not included because it is defined in theunitOfAmount
where applicable
Added a new data type,
PriceQuantity
which- specifies the price, quantity, and optionally the observable for use in a trade or other purposes
- comprises three attributes
price
quantity
observable
- includes a new metadata type, called address-location which
- can be used as a special reference to point to payout data types or other locations
- are assigned to the
price
andquantity
attributes
Revised the
TradableProduct
data type which- replaces
priceNotation
andquantityNotation
with thepriceQuantity
attribute which is of thePriceQuantity
data type - adds
settlementTerms
, for which the data type is a revisedSettlementTerms
that replacesassetIdentifier
withpriceQuantity
- replaces
Removed
PriceNotation
,QuantityNotation
, andAssetIdentifier
from the model because they have been replaced by the data types described above
Additional Related Model Changes
The following attributes now use the revised
Quantity
data type and a metadata address that points toPriceQuantity
->Quantity
:ResolvableQuantity
->resolvedQuantity
ResolvableQuantity
->quantitySchedule
->initialQuantity
The following attributes now use the modified
Price
data type and a metadata address that points toPriceQuantity
->Price
:RateSchedule
->initialPrice
OptionExercise
->strike
->StrikePrice
Other modified data types:
AllocationBreakdown
->quantity
now uses the revisedQuantity
data typeReferenceInformation
->price
now uses the revisedPrice
data typeInflationRateSpecification
condition now refers toObservable
in place ofAssetIdentifier
EquityValuation
->price
now uses the revisedPrice
data type
Modified a set of creation functions to use the modified
PriceQuantity
data type and/or its encapsulated types:Create_Allocation
: Change in Embedded FunctionCreate_ClearedTrade
: Change in AliasCreate_Execution
: Change in Input , OutputCreate_ExecutionPrimitive
: Change in Input , OutputCreate_Exercise
: Change in ConditionCreate_TransferPrimitive
: Change in Condition
Modified a set of qualification functions to use the modified
PriceQuantity
data type and/or its encapsulated types:Qualify_InterestRate_IRSwap_Basis_OIS
: Change in OutputQualify_InterestRate_IRSwap_FixedFloat
: Change in OutputQualify_InterestRate_IRSwap_FixedFloat_OIS
: Change in OutputQualify_InterestRate_IRSwap_FixedFloat_PlainVanilla
: Change in OutputQualify_StockSplit
: Change in Alias
Modified other functions to use the modified
PriceQuantity
data type and/or its encapsulated types:CurrencyAmount
: Change in InputEquals
: Change in Input, OutputEquityCashSettlementAmount
: Change in OutputEquityPerformance
: Change in Embedded FunctionExtractQuantityByAsset
: Change in Input, OutputExtractQuantityByCurrency
: Change in Input , OutputFloatingAmount
: Change in Embedded FunctionFxMarkToMarket
: Change in AliasGreaterThan
: Change in Input, OutputGreaterThanEquals
: Change in Input, OutputNoOfUnits
: Change in InputPlus
: Change in Input, OutputPriceQuantityTriangulation
: Change in InputResolvablePayoutQuantity
: Change in OutputResolveEquityInitialPrice
: Change in Input , OutputResolveEquityPeriodEndPrice
: Change in OutputResolveEquityPeriodStartPrice
: Change in Input, OutputStockSplit
: Change in AliasTerminateContract
: Change in Output
Removed one function that is no longer needed:
- Removed the function
ExchangeRateQuantityTriangulation
which was an embedded function theCashPriceQuantityNoOfUnitsTriangulation
function because the newPriceQuantity
structure enforces the logic that was defined in this function
- Removed the function
Modified a set of Reporting Rule changes to use the modified
PriceQuantity
data type and/or its encapsulated types:FixedRatePrice
FloatingRatePrice
SingleCurrencyBasisSwap
CrossCurrencySwapBuyerSeller
FixedFloatPrice
BasisSwapPrice
FixedFixedPrice
CDSPrice
Quantity
Added new synonym data types and synonym enums:
Price
PriceQuantity
PriceQuantity
UnitType
CapacityUnitEnum
FinancialUnitEnum
PriceTypeEnum
WeatherUnitEnum
Modified a set of synonym data types to use the modified
PriceQuantity
data type and/or its encapsulated types:Price
RateSpecificationBase
ResolvablePayoutQuantity
TradableProduct
OptionStrike
Synonym data types replaced by the modified
PriceQuantity
data type and/or its encapsulated types:CashPrice
ActualPrice
AssetIdentifier
PriceNotation
QuantityNotation
Review Directions
- In the CDM Portal, use the Textual Browser or Graphical Navigator to review the data types, attributes, functions, enumerated sets, and synonyms referenced in this note.
- Review ingestion examples, such as
ird ex29 non deliverable settlement swap uti
.
2.94.1
CDM Portal: Infrastructure - Registered User Information
What is Being Released
A technical change to also capture which versions of the CDM license, and the Privacy Policy will have been accepted by the user of the CDM portal. This will also record when acceptance is again requested from the user due to updates to the terms of these licenses or policy artefacts.
2.94.0
CDM Model: Function Development - Create_Execution
What is Being Released
The Create_Execution function has been updated to use an instructions object and ensure consistent design of Business Event functions in the CDM.
Background
Consistent design of Business Event Functions will allow for easier adoption of the CDM Event Model. Each Business Event should create a valid CDM output object based on input instructions. All Business Event creation functions, and Business Event qualification functions should include a description.
Model Changes
The ExecutionInstruction
data type has been added to the model, containing mandatory data attributes required on an Execution Business Event. ExecutionDetails
data type added as an attribute within ExecutionInstruction
to specify type and venue of Execution. Create_Execution
function updated to contain ExecutionInstruction
as input object. Descriptions on Create_Execution
and Qualify_Execution
updated.
Review Directions
In the CDM Portal, use the Textual Browser or Graphical Navigator to inspect the data types and functions referenced above.
CDM Model: Primitive Harmonisation - Follow Ups
What is Being Released
Observation Event
As part of the Primitive Harmonisation design, the creation of Observation
data object instances should be handled independently and outside the trade life-cycle, the observation is not an event but a piece of data used in a process. Now, Observation
object instances will be linked to a trade (via the TradeState
data type), which is now done via the reset process.
As such, the ObservationPrimitive
and its associated functions are no longer needed in the model and have been removed.
Ingestion examples have also been updated to reflect this change in structure.
Review Directions
In the CDM Portal, use the Textual Browser or Graphical Navigator to inspect the data types and functions referenced above. The Equity Swap example within the Functions app now exemplifies how the reset process works after Primitive Harmonisation.
Documentation Update
User documentation for CDM has been updated to reflect the changed brought about as part of Primitive Harmonisation. Additionally, code-snippets were checked and updated to reflect the current model syntax. Unit tests to check validity of code-snippets were also updated to catch instances where code-snippets do not match model syntax.
Review Directions
In the CDM Portal, use the Documentation app to inspect the user documentation.
Position data type
The Position
data type was updated such that it now mandates a reference to Trade
. This change accounts for the normalisation of Contract
and Execution
data types, which have now been consolidated into the Trade
data type.
Review Directions
In the CDM Portal, use the Textual Browser or Graphical Navigator to inspect the data type.
CDM Model: Ancillary Roles - Validation Rules
What is Being Released
Ancillary Roles
Additional validation rules have been included in the specification of TradableProduct
to ensure integrity of the relationship between each ancillary role included in the definition of a product and the ancillary parties included in the definition of the tradable product.
Review Directions
In the CDM Portal, use the Textual Browser or Graphical Navigator to inspect the TradableProduct
data type and the conditions related to ancillaryParty
2.91.2
CDM Model: Primitive Harmonisation Phase 3 - Transfer Primitive
What is Being Released
Primitive harmonisation for Transfer Primitive, which now completes the harmonisation process for all Primitives.
Background
Harmonisation will allow for easier combination of Primitives to form complex business events. Changing before
and after
attributes to use the same data type eliminates the need for data translations when combining Primitives.
Whilst data translation can be addressed in the Function Model, defining the applicable data types correctly in the Data Model removes the need for additional complexity.
Model Changes
The TransferPrimitive
data type has been updated to make use of TradeState
data type for both before
and after
attributes.
TradeState
has been updated to additionally include the transferHistory
attribute, which is represented by the Transfer
data type.
Transfer
represents the movement of cash, security or commodities between two parties, which can be a result of negotiated events, for example partial terminations, or scheduled events, for example Interest Rate Swap coupon payments. In either case, the definition of terms relating to settlement can be referenced via the settlementOrigin
attribute. Representation of the settlement status is done using the workflow model and as such uses WorkflowStatusEnum
(encapsulated by BusinessEvent
).
The Create_CashTransfer
function defines how Transfer
s should be created in any given cash transfer event. To support the existing Equity Swap coupon payment example, which focuses on cash transfers, functions such as EquityCashSettlementAmount
were updated and referenced from Create_CashTransfer
.
Further, descriptions and necessary data types for Allocation, Exercise and Reset business events have been upgraded to reflect the latest model changes.
Sample File Changes
A number of sample files relating to Transfers were removed as they are no longer valid in the new model. Applicable scenarios will be updated and reintroduced as part of subsequent releases.
Review Directions
In the CDM Portal, use the Textual Browser or Graphical Navigator to inspect changes to the model, referencing the data types and functions mentioned above. Navigate to Functions to inspect the Equity Swap reset example, which has a transfer component.
2.90.3
User Documentation: Namespace section
What is being released
The Namespace section has been added to the CDM user documentation, in line with recent changes to the model.
Notable changes and updates introduced:
- New Namespace section.
- Detailed description of individual components within the Namespace concept.
- Addition of relevant examples to demonstrate model content.
Review direction
In the CDM Portal, review the CDM Documentation, in particular the section:
Updated Product Identification Type Enumeration
What is being released
The enumeration ProductIdSourceEnum has been changed to ProductIdTypeEnum to more accurately define a representation of an enumerated list of Product Identification Types.
Review Directions
In the CDM portal, review the enumeration listed above.
CDM Model: Minor update to regulatory rule logic and regulatory test pack
What is being released
Regulatory rule logic and regulatory test cases were updated to account for recent changes to Primitives.
Review Directions
- See
reporting rule TradeForEvent
, which has re-enabled support for events usingQuantityChangePrimitive
.
CDM Model: Update to Legal Agreement and Eligible Collateral model
What is being released
The Legal Agreement and Eligible Collateral model has been updated to address deficiencies in the model identified following review with ISDA members.
- Regime - rationalised data type to more efficiently reflect clause structure.
- Substituted Regime - aligned structure of Substituted Regime data type with Regime data type to achieve consistency in modelling approach.
- Asset Criteria - added Listing Criteria to filter eligibility based on Exchange, Sector and/or Index.
- Various small fixes to model descriptions and ISDA Create synonyms.
Review Directions
- In the CDM portal textual browser review data types
Regime
,SubstitutedRegime
, andListingType
withinAssetCriteria
. - In the CDM review ISDA Create ingestion samples.
2.90.0
CDM Model: Primitive Harmonisation Phase 2 and part of Phase 3
What is being released
Phase 2 and parts of Phase 3 work to harmonise Primitive events to make use of TradeState data type to represent before and after attributes.
Background
Harmonisation will allow for easier combination of Primitives to form complex business events. Migrating before and after states to use the same data type eliminates the need for data translations when combining Primitives.
Whilst data translation can be addressed in the Function Model, defining the applicable data types correctly in the Data Model removes the need for additional complexity.
Model Changes
The following primitives and their corresponding business events have been updated:
SplitPrimitive
ExercisePrimitive
(deleted, replaced with quantity change and contract formation/transfer)ResetPrimitive
(deleted, replaced with the ‘Reset’ data typeObservationPrimitive
(deleted, observation details now captured in newly createdReset
data type)
The corresponding business events for this set of primitives are Allocation, Exercise, and Reset.
The key changes made in relation to each of the primitive events are listed below:
SplitPrimitive
has been harmonised to useTradeState
. However, theSplitOutcome
data type has been deleted because, as a result of this change, it is no longer referenced by any other types or functions.ExercisePrimitive
was deleted and replaced with a combination ofQuantityChangePrimitive
,ContractFormationPrimitive
, andTransferPrimitive
. In addition, the following data types have been deleted, as they were all referenced solely byExercisePrimitive
:ExerciseOutcome
,PhysicalExercise
, andCashExercise
.Reset
is a new data type replacing the ResetPrimitive. The Observation-Reset proposal from April 2020 was used as the baseline design for creating this new type and for updating the Reset process. The mechanism of recording reset values utilises the newly introducedReset
data type. Values that are observed in the market in order to fulfil contractual product obligations for resets and other events are now represented in theObservation
data type, which is referenced by theReset
data type, removing the need for theObservationPrimitive
data type, which has been deleted.Observation
is a root type, meaning data instances can exist independently from others and are decoupled from the event model.
Review Directions
In the CDM Portal, use the Textual Browser or Graphical Navigator to review the types referenced in this note.
Use the Function icon to see the changes to the reset process in the context of an Equity Swap with single underlier.
CDM and Rosetta Documentation
What is being released
Improvements to the documentation of Rosetta and the CDM distribution including
- Renaming Contract to Trade in documentation to match the previous change in CDM
- Better explanation of functions and expressions in Rosetta including the precise semantics of various expression operators
- Better documentation of how to create mappings
- Details of how to obtain artifacts required to use the CDM Java distribution
Review Directions
On the rosetta docs site https://docs.rosetta-technology.io/ there are new pages for expressions and mapping in the DSL section as well as changes to the existing pages.
Documentation: CDM Documentation site styling update
What is being released
The visual styling of the CDM section of the documentation site has been updated to be consistent with Rosetta, which includes adding the ISDA CDM logo.
Review Directions
See https://docs.rosetta-technology.io/cdm/index.html
2.89.0
DSL Syntax: Disjoint Keyword
What is being released
Added the new disjoint
keyword which can be used to write an expression that compares two lists to determine if there are any common elements. If there are no common elements, the lists are disjoint, and the expression will evaluate to true.
Given two lists of floating rate indexes, e.g.
before -> ... -> floatingRateIndex disjoint after -> ... -> floatingRateIndex
Then the expression will evaluate to true if every "after" floating rate index is different from every "before" floating rate index.
Bug Fix: Data Rule Java Code Generation
What is being released
Fix bug in the Java code generation to allow data rules to be invoked after each function invocation.
Review Directions
In the CDM Portal, go to the Downloads page, and download the Java Examples. Review the example in Java class, com.regnosys.cdm.example.template.Validation
.
2.88.1
Model Optimisation: Extract Party References from Product
What is being released
This change is the part of the ongoing model refactoring to externalise the definition of the parties involved in a transaction from the definition of the transacted product.
Updates the model naming based on feedback from the Architecture Review Committee:
- Rename
RelatedPartyEnum
toAncillaryRoleEnum
. - Rename
CounterpartyEnum
toCounterpartyRoleEnum
. - Rename
RelatedPartyReference.relatedParty
toAncillaryParty.role
. - Rename
Counterparty.counterparty
toCounterparty.role
. - Rename
TradableProduct
attributes with multiple cardinality to be singular, e.g.TradableProduct.counterparty
andTradableProduct.ancillaryParty
.
Updates the model to specify the ancillary role consistently regardless of whether the party is a counterparty or not:
- Remove type
CounterpartyOrRelatedParty
. - Update attributes
CalculationAgent.calculationAgentParty
,AdditionalDisruptionEvents.determiningParty
,DividendReturnTerms.extraordinaryDividendsParty
,OptionPhysicalSettlement.predeterminedClearingOrganisationParty
andExerciseNotice.exerciseNoticeReceiver
to use enumAncillaryRoleEnum
. - Add conditions to
TradableProduct
type to ensure that if anAncillaryRoleEnum
is specified in the product, there is a correspondingAncillaryParty
entry.
Review Directions
In the CDM Portal, use the Textual Browser to review the types mentioned above.
In the CDM Portal, use the Ingestion page to compare the samples below, noting that the ancillary roles CalculationAgentIndependent
, ExtraordinaryDividendsParty
and DisruptionEventDeterminingParty
are specified consistently in both samples:
equity > eqs-ex01-single-underlyer-execution-long-form.xml
equity > eqs-ex01-single-underlyer-execution-long-form-other-party.xml
2.88.0
Digital Regulatory Reporting: FpML Event Ingestion
What is being released
As part of the Digital Regulatory Reporting workstream, the FpML record-keeping schema, and a corresponding ingestion environment, has been added to demonstrate CDM integration with FpML reporting.
The FpML record-keeping schema is intended to be used for reporting the primary economic terms of derivative transactions to swaps data repositories. FpML messages, such as nonpublicExecutionReport
, can now be ingested into a CDM event, e.g. WorkflowStep
, which can then be processed by CDM regulatory reporting logic.
Review Directions
In the CDM Portal Ingestion section, review new FpML record-keeping samples:
- record-keeping > record-ex01-vanilla-swap
- record-keeping > record-ex02-vanilla-swap-datadoc
- record-keeping > record-ex100-new-trade
In the Rosetta Core, use the text editor to review the new synonyms in file synonym-cdm-fpml-recordkeeping.rosetta
.
2.87.2
FpML Projection: Swaptions
What is being released
Projection is the translation from CDM format to external data formats. This release updates the FpML projection mappings for swaptions. Note that to project a swaption into FpML, the input CDM data must qualify as InterestRate_Option_Swaption
.
Review Directions
In the Rosetta Core, open the Projection panel, and upload any of the CDM swaption json samples that are provided that are provided in the CDM distribution:
rates > ird-ex09-euro-swaption-explicit-physical-exercise
rates > ird-ex09-euro-swaption-explicit-versioned
rates > ird-ex10-euro-swaption-relative-usi
rates > ird-ex12-euro-swaption-straddle-cash
rates > ird-ex12-euro-swaption-straddle-cash-related-party
2.87.1
CDM Model: Primitive Harmonisation Phase 1
What is being released
Phase 1 of work to harmonise Primitive events such that Primitives use the TradeState
data type to represent it's before and after state.
Harmonisation will allow for easier combination of Primitives to form complex business events. Migrating before and after states to use the same data type means no need for data translations when combining Primitives.
Whilst data translation can be addressed in the Function Model, defining the correct data types correctly, upfront in the Data Model removes the need for additional complexity.
Model Changes
The key changes in this release relate to the creation of the TradeState
data type. TradeState
includes all necessary data definitions to:
- Replace trade representations
Execution
andContract
. - Replace state representations
ContractState
,PostContractFormationState
.
The following Primitives have been harmonised as a result of creating the TradeState
data type:
- Contract Formation
- Execution
- Quantity Change
- Terms Change
- Reset
- Split (before state only)
Special Note
Contract
represented the root of the Product Model and was referenced extensively in CDM and its associated tooling. All explicit references to Contract
have been replaced by TradeState
. This involved updating the following model and tooling elements:
- Ingestion now produces a
TradeState
data instance. - Function Model references to
Execution
,Contract
,ContractState
orPostContractFormationState
have been updated to use toTradeState
instead. - Regulatory reporting previously making references to
Contract
, have been updated to useTradeState
. - Updated Handwritten java examples of event sequences and visualisations to account for the migration have been updated.
Review Directions
- In the CDM Portal, use the Textual Browser or Graphical Navigator to review the type
TradeState
.
2.86.0
New ExerciseInstruction and Create_Exercise Function
What is being released
A data type and function pair that allow for the representation of an instruction to exercise an option and a subsequent function that constructs the contract changes.
ExerciseInstruction
is a new data type that specifies the information to communicate the intention to exercise, as expressed by the party holding the rights to an option.Create_Exercise
function constructs the business event that represents the exercise of an option according to the referencedExerciseInstruction
.
The initial structure of the data type and function are designed to support a use case of a European style Swaption that is exercised for physical settlement. The initial validation of the data type and function have been limited to that use case.
The current structure may be valid for other cases, but these have not yet been validated. Over time, additional use cases will be validated or used as a reference to expand the structure as needed, for example, for cash settlement, other underlying asset types and for American style options.
Review Directions
In the CDM portal, reviews the data type and function listed above, and load examples in the Visualisation function to see an illustration of the use of the function.
2.85.9
Infrastructure: Distribute Source Code
What is being released
- Include all Rosetta source files in the CDM downloadable distribution.
Review Directions
In the CDM Portal Downloads page, download the ISDA CDM as Java distribution and review contents in folder lib/dependencies
. The sources code is now provided for the following CDM dependencies:
rosetta-common
com.regnosys.rosetta.lib
com.regnosys.rosetta.blueprints
2.85.8
Additional FX ingestion samples and product qualifications
What is being released
- Additional FX ingestion samples have been added to demonstrate CDM support for FX Swaps, FX Options, and FX Options with Averaging Schedules.
- Qualification functions have been updated in the model to:
- support explicit qualification of Spot / Forward trades (func Qualify_ForeignExchange_Spot_Forward)
- support FX Options and other Options with Averaging Schedules (func Qualify_ForeignExchange_VanillaOption)
- support FX Swaps (e.g. Spot-Forward, Forward-Forward) (func Qualify_ForeignExchange_Swap)
- Further synonym mappings have been added to synonym-cdm-fpml to enable ingestion of the additional ingestion samples.
Review Directions
In the CDM Portal, in the Ingestion section, review new and revised functions listed above, as well as the synonyms in the file noted above, and the following examples:
- product > fx > fx-ex03-fx-fwd
- product > fx > fx-ex08-fx-swap
- product > fx > fx-ex09-euro-opt
- product > fx > fx-ex10-amer-opt
- product > fx > fx-ex11-non-deliverable-option
- product > fx > fx-ex12-fx-barrier-option
- product > fx > fx-ex20-avg-rate-option-parametric
- product > fx > fx-ex22-avg-rate-option-specific
2.85.7
Bugfix Product Qualification Example & Minor Documentation Update
What is being released
- Bugfix. Fixed the Qualification Java example to make use of the latest CDM Java APIs and additionally indicates where the qualification values should be stored on the CDM object. Added automated tests for several examples to catch code-level failures prior to releases.
- Documentation Update. Clarification of record types were added to the Rosetta DSL documentation.
Review Directions
- Bugfix. In the CDM Portal, in the Downloads section, download the CDM Java examples pack and inspect Qualification.java.
- Documentation Update. See documentation at docs.rosetta-technology.io/dsl/documentation.html#syntax
2.85.6
Model Optimisation: Master Agreement Schedule
What is being released
This change is part of the ongoing modelling of the clauses contained in the 2002 ISDA Master Agreement Schedule.
This particular release adds a further seven clauses to allow specification of:
- Address for Notices: Clause specifying the address and other details for notices.
- Dated as of Date: The date specified as the "Dated as of Date" by the parties, which is used when transacting to identify the Master Agreement which shall govern that transaction.
- Credit Support Provider: A defined term identifying entities that provide credit support in relation to a contractual party.
- Credit Support Document: A defined term identifying documents that are relevant to the provision of credit support in relation to a contractual party.
- Governing Law: Clause specifying the choice of governing law.
- Specified Entity: A clause that allows each party specify its Specified Entities for certain Events of Default and Termination Events.
- Termination Currency: A clause specifying the currency in which the termination payment is made (including the process by which such currency is determined).
Review Directions
- In the CDM Portal, use the Textual Browser to review the data type
MasterAgreementSchedule
containing the data types mentioned above.
2.85.5
Model Optimisation: Legal Agreement Party References
What is being released
This change is part of the ongoing model refactoring to externalise the definition of the parties involved in a transaction from the definition of the transacted product, and the legal agreements that support the transaction.
This particular release updates the legal model to specify the elective parties using the CounterpartyEnum
values Party1
and Party2
, replacing the existing approach which uses the text "partyA" and "partyB".
- Update all party election types under namespace
cdm.legalagreement.csa
, such asAccessConditionsElections
,AdditionalRepresentationElection
,CalculationAgentTerms
etc, to specify the elective party as typeCounterpartyEnum
. - Add
AgreementTerms.counterparty
attribute to specify theParty
reference and correspondingCounterpartyEnum
. - Update all
isda-create
synonyms to useCounterpartyEnum
.
Review Directions
In the CDM Portal, use the Textual Browser to review the types mentioned above.
In the CDM Portal, use the Ingestion page to review any
isda-create
samples.
2.85.3
2.85.0
CDM Model: Data Templates
What is being released
This release introduces the concept of data templates to the CDM. Data templates provide a way to store data which is common across multiple CDM objects in a single referenced template.
One of the driving use-cases for templates in the CDM is Equity Swaps. Due to the high volume of contracts with near identical product details from Equity Financing desks. The product details duplicated on each contract can be extracted into a single template, and each contract can then specify a reference to that template. Each contract would only specify the unique product details, which can be merged with the template to form a fully specified object when required.
In the business domain the same is achieved via master confirmation or portfolio swap agreements which can be bespoke or standard, or via clients having standard term sheets agreed and sitting with sales desks to be used when writing all future deals (a working practice which has parallels in almost every asset class).
Model Changes
The annotation type [metadata template]
has been added to the model. This annotation indicates that a data type is eligible to be used as a template. The designation applies to all encapsulated types in that data type.
For example, currently, the only date type in the model that has been assigned this new annotation is ContractualProduct
. The designation of template eligibility also applies to EconomicTerms
which is an encapsulated type in ContractualProduct
, and also likewise applies to Payout
which is an encapsulated type in EconomicTerms
.
Other than the new annotation, data templates do not have any impact on the model, i.e. no new types, attributes, or conditions.
Review Directions
- In the CDM Portal, use the Textual Browser to review the type
ContractualProduct
and annotation[metadata template]
.
Merging Utilities and Examples
Once a template reference has been resolved, it will be necessary to merge the template data to form a single fully populated object. This release includes code utilities, written in Java, that can merge the data from two objects into one. These utilities can be extended by implementors to change the merging strategy to meet their requirements.
This release also includes a example to show usage of data template and the merging utilities.
Review Directions
- In the CDM Portal, go to the Downloads page, and download the Java Examples. Review the example in Java class,
com.regnosys.cdm.example.template.TemplateExample
.
2.83.3
Infrastructure: Namespace reclassification
What is being released
Following the latest namespace reclassification, an infrastructure change is required to enable Rosetta Core to run ingestion on CDM type cdm.event.workflow.WorkflowStep
which was reclassified from org.isda.cdm.WorkflowStep
.
Review Directions
This infrastructure change has no impact on the CDM model, nor the CDM Portal.
To run the ingestion on a cdm.event.workflow.WorkflowStep
type in Rosetta Core, select the Ingestion panel, and run the all integration tests for synonym CDM_Event
.
2.83.2
Model Optimisation: Extract Party References from Product
What is being released
This change is the part of the ongoing model refactoring to externalise the definition of the parties involved in a transaction from the definition of the transacted product.
- New enum
RelatedPartyEnum
specifies all the possible parties roles (other than counterparty) which are defined within the product. - The
RelatedPartyEnum
can be resolved to an actual party by looking up the enum value in typeRelatedPartyReference
to find the corresponding party reference. - New type
CounterpartyOrRelatedParty
is used when the party can be either one of the counterparties or a related party. RelatedPartyEnum
is constrained within each usage in the model using conditions.
This release covers the party references in CalculationAgent.calculationAgentParty
, Cashflow.payerReceiver.payerRelatedParty
and Cashflow.payerReceiver.receiverRelatedParty
, and completes the externalisation of parties from the translated product with a few exceptions.
PhysicalExercise
andCashExercise
- the physical and cash exercise models require refactoring to useTradableProduct
. Once completed, the deprecated attributesPayerReceiver.payerPartyReference
andPayerReceiver.receiverPartyReference
can be removed.- 3rd party payments should be modelled with
SettlementTerms
rather thanCashflow
- Once completed, the deprecated attributesPayerReceiver.payerRelatedParty
andPayerReceiver.receiverRelatedParty
can be removed.
Functions have also been updated to work with counterparties and related parties.
Create_Execution
,Create_ExecutionPrimitive
,Create_ClearedTrade
,Create_CashTransferPrimitive
,CashflowSettlementTerms
,ExtractCounterpartyBySide
, andExtractRelatedParty
.
Review Directions
In the CDM Portal, use the Textual Browser to review the types, enums and functions mentioned above.
In the CDM Portal, use the Ingestion page to review the following samples:
CalculationAgent.calculationAgentParty:
equity > eqs-ex01-single-underlyer-execution-long-form.xml
equity > eqs-ex01-single-underlyer-execution-long-form-related-party.xml
Cashflow.payerReceiver.payerRelatedParty and receiverRelatedParty:
rates > swap-with-other-party-payment.xml
PhysicalExercise:
events > exercise-swaption-physical.xml
CashExercise:
events > exercise-swaption-cash.xml
CDM Function: Fix CalculationPeriod Function to Resolve the Correct Period in the Schedule.
What is being fixed
When the valuation date is equal to the period start date, the function logic would use the wrong period.
2.82.8
Product/Event Model: Averaging Model
What is being released
This change introduces a multi-purpose model for calculating an average of market observations according to contract terms for options. The model can be used to specify the parametric input needed for making an average calculation to determine a strike price or a settlement amount. Specific changes are noted below:
- New type
AveragingObservation
, which defines parameters for use in cases when a valuation or other term is based on an average of market observations. - New type
ObservationDates
, which describes date details for a set of observation dates in parametric or non-parametric form. - New type
FxRateObservable
, which defines foreign exchange (FX) asset class specific parameters for market observations. - New type
ObservationSchedule
, which specifies a single date on which market observations take place and specifies optional associated weighting. - New enum
AveragingCalculationMethodEnum
, which specifies enumerations for the type of averaging calculation. - Modified type
OptionFeature
in which the attributeasian
is replaced withaveragingRateFeature
which is of typeAveragingObservation
. - Modified type
OptionStrike
in which the attributeaveragingStrikeFeature
is added and is of typeAveragingObservation
. Also modified the choice condition to includeaveragingStrikeFeature
.
Review Directions
In the CDM Portal, use the Textual Browser to review the types, enums, and functions mentioned above, or use the Graphical Navigator. For example, in the Graphical Navigator, search for OptionFeature
and then drill down on the averagingRateFeature
and underlying data types.
2.82.7
Product/Event Model: Averaging Model
What is being released
This change introduces a multi-purpose model for calculating an average of market observations according to contract terms for options. The model can be used to specify the parametric input needed for making an average calculation to determine a strike price or a settlement amount. Specific changes are noted below:
- New type
AveragingObservation
, which defines parameters for use in cases when a valuation or other term is based on an average of market observations. - New type
ObservationDates
, which describes date details for a set of observation dates in parametric or non-parametric form. - New type
FxRateObservable
, which defines foreign exchange (FX) asset class specific parameters for market observations. - New type
ObservationSchedule
, which specifies a single date on which market observations take place and specifies optional associated weighting. - New enum
AveragingCalculationMethodEnum
, which specifies enumerations for the type of averaging calculation. - Modified type
OptionFeature
in which the attributeasian
is replaced withaveragingRateFeature
which is of typeAveragingObservation
. - Modified type
OptionStrike
in which the attributeaveragingStrikeFeature
is added and is of typeAveragingObservation
. Also modified the choice condition to includeaveragingStrikeFeature
.
Review Directions
In the CDM Portal, use the Textual Browser to review the types, enums, and functions mentioned above, or use the Graphical Navigator. For example, in the Graphical Navigator, search for OptionFeature
and then drill down on the averagingRateFeature
and underlying data types.
2.82.1
Infrastructure: Fix for the broken JavaDocs link
What is being fixed
This broken JavaDocs link on the Documentation page is fixed.
Review Directions
In the CDM Portal, navigate to the Documents > JavaDocs tile, then click download link and see that it works.
2.82.0
CDM Model: Remaining model in org.isda.cdm namespace classification
What is being released
This refactor is the sixth and final incremental change that will further transform the org.isda.cdm file into a hierarchical namespace.
This refactor includes the reorganisation of some model objects to existing namespaces while other being deleted (as they are not being used in CDM).
Types to be moved to existing namespaces:
- Types: CalculationAgentModel moved to cdm.product.template namespace.
- Types: PackageInformation & ExerciseEvent moved to cdm.event.common namespace.
- Enums: StandardSettlementStyleEnum moved to cdm.product.common.
- Funcs: NewEquitySwapProduct, NewSingleNameEquityPayout & NewFloatingPayout moved to cdm.event.common namespace.
Objects to be deleted:
- Types: CommoditySet, BondOptionStrike, CalculationAmount & DeterminationMethod.
- Enums: OriginatingEventEnum, PaymentStatusEnum & PackageTypeEnum.
- Funcs: EquityAmountPayer & ResolvePrice.
Review Directions
In Rosetta Core (https://ui.rosetta-technology.io/), review the File or Namespace structure in the Editor Textual View. In the CDM Portal,
navigate to the Downloads tile, then download artefacts in Java, DAML, Typescript or Scala distribution format and review the reorganised source folder.
2.81.0
CDM Distribution: C# Language
What is being released
The suite of CDM Distributions has been expanded to 2 versions in C# programming language on the CDM Portal:
- C# 8.0 based on .NET Core 3.1 (.NET Standard 2.1).
- C# 9.0 based on .Net 5 Preview.
Review Directions
2 new tiles in the downloads section of the CDM Portal offering the option to download the new C# CDM Distributions.
2.80.0
CDM Distribution: C# Language
What is being released
The suite of CDM Distributions has been expanded to 2 versions in C# programming language on the CDM Portal:
- C# 8.0 based on .NET Core 3.1 (.NET Standard 2.1).
- C# 9.0 based on .Net 5 Preview.
Review Directions
2 new tiles in the downloads section of the CDM Portal offering the option to download the new C# CDM Distributions.
2.79.0
CDM Model: Event & Regulation namespace classification
What is being released
This refactor is the fifth incremental change that will further transform the org.isda.cdm file into a hierarchical namespace.
This fifth refactor includes the changes for the cdm.event.* & cdm.regulation.* set of namespaces.
The namespaces contain components used across the CDM for
- Business event concepts: primitives, contract state and associated state transition function specifications
- Workflow concepts (orthogonal to business event): time stamp, credit limit, trade warehouse info and associated function specifications
- Position concepts: portfolio and portfolio aggregation
- ISO standard concepts.
Review Directions
In Rosetta Core (https://ui.rosetta-technology.io/), review the File or Namespace structure in the Editor Textual View. In the CDM Portal,
navigate to the Downloads tile, then download artefacts in Java, DAML, Typescript or Scala distribution format and review the reorganised source folder with new cdm.event.* files.
CDM Model: Deprecated types & functions
What is being released
Following objects to be marked deprecated.
Types:
- CommoditySet
- BondOptionStrike
- CalculationAmount
- CalculationAgentModel
- PackageInformation
- DeterminationMethod
- ExerciseEvent
- TradeDate
Functions:
- EquityAmountPayer
- ResolvePrice
User Documentation: Regulatory Reporting Syntax
What is being released
A new section has been added to the Rosetta DSL documentation that explains the regulatory reporting components and the syntax that can be used to write reporting logic.
This update will allow external contributors to write further regulatory reporting components in the CDM, in order to scale-up the effort of digitising regulatory rules and associated best practices.
Review Directions
In the CDM Portal, navigate to the ISDA CDM Documentation tile and find the "Reporting Component" under the Rosetta DSL > Rosetta Modelling Components section.
Alternatively, documentation section is directly accessible at: https://docs.rosetta-technology.io/dsl/documentation.html#reporting-component.
2.78.0
Model Optimisation: Extract Party References from Product
What is being released
This change is part of the ongoing model refactoring to externalise the definition of the parties involved in a transaction from the definition of the transacted product.
- New enum
RelatedPartyEnum
specifies all the possible parties roles (other than counterparty) which are defined within the product. - The
RelatedPartyEnum
can be resolved to an actual party by looking up the enum value in typeRelatedPartyReference
to find the corresponding party reference. - New type
CounterpartyOrRelatedParty
is used when the party can be either one of the counterparties or a related party. RelatedPartyEnum
is constrained within each usage in the model using conditions.
This release covers the party references in AdditionalDisruptionEvents.determiningParty
, DividendReturnTerms.extraordinaryDividendsParty
, OptionPhysicalSettlement.predeterminedClearingOrganizationParty
and ExerciseNotice.exerciseNoticeReceiver
. Future releases will cover the remaining party references defined within the product.
Review Directions
In the CDM Portal, use the Textual Browser to review the enum and types mentioned above.
In the CDM Portal, use the Ingestion page to review the following samples:
AdditionalDisruptionEvents.determiningParty:
equity > eqs-ex01-single-underlyer-execution-long-form.xml
equity > eqs-ex01-single-underlyer-execution-long-form-related-party.xml
equity > eqs-ex06-single-index-long-form.xml
DividendReturnTerms.extraordinaryDividendsParty:
equity > eqs-ex01-single-underlyer-execution-long-form.xml
equity > eqs-ex01-single-underlyer-execution-long-form-related-party.xml
OptionPhysicalSettlement.predeterminedClearingOrganizationParty:
events > exercise-swaption-physical-related-party.xml
ExerciseNotice.exerciseNoticeReceiver:
rates > ird-ex12-euro-swaption-straddle-cash-related-party.xml
2.77.0
CDM Model: Legal Agreement namespace classification
What is being released
This refactor is the fourth incremental change that will further transform the org.isda.cdm file into a hierarchical namespace.
This fourth refactor includes the changes for the cdm.legalagreement.* set of namespaces.
The namespaces contain components used across the CDM for
- Generic documentation concepts: legal agreement, contract, calc agent, disruption and extraordinary events,
- Common legal agreement concepts,
- Contract (i.e. transaction confirmation) concepts,
- Credit support concepts: CSA, collateral, elections, initial margin, threshold, minimum transfer amount,
- and Master agreement concepts.
Review Direction
In Rosetta Core (https://ui.rosetta-technology.io/), review the File or Namespace structure in the Editor Textual View. In the CDM Portal,
navigate to the Downloads tile, then download artefacts in Java, DAML, Typescript or Scala distribution format and review the reorganised source folder with new cdm.legalagreement.* files.
New mapping syntax is being released to support selected variations in patterns observed during synonym mappings from other models to the CDM
What is being released
pattern
-A synonym on a a basicType or an enumerated type can optionally be followed by the pattern construct that consists of the keyword pattern
followed by two quoted strings.
The first string is a regular expression using the PERL standard syntax used to match against the input value. The second string is a replacement expression used to reformat the matched input before it is processed for the basic type or enum. E.g.
Frequency: + periodMultiplier [value "Tenor" maps 2 pattern "([0-9]*).*" "$1"] + period [value "Tenor" maps 2 pattern "[0-9]*(.*)" "$1"]
A tenor value of "1Y" will be deconstructed into a period of 'Year' and a periodMultiplier of '1'
dateFormat
- A date/time synonym can be followed by a format construct. The keyword dateFormat
should be followed by a string.
The string should be a date format and will be interpreted following the pattern documented here Date format. This format will be used to interpret dates/times from the input element.
E.g.
+ tradeDate [value "startDate" dateFormat "MM/dd/yy"]
Review Directions
- The first use of the pattern and format syntax has been in the context of an initial set of mapping synonyms for ORE XML. The pattern syntax is used to map the tenor field - splitting it up into separate period and period multiplier fields. The format syntax is used to map dates from formats accepted in ORE XML to the CDM.
- For an illustration of the use of the new pattern syntax, 1) go to the CDM Portal, 2) click on the link for Rosetta, 3) in the Files panel on the left, select synonym-cdm-ore, 4) and then view the mappings for Frequency
- To view a an example in rosetta, 1) first verify that the status indicator in the lower right is green, 2) go to the ingestion feature, under Synonyms, select ORE_1_0_39, deselect the other synonym sets, 3) Select INTEGRATION TESTS, 4) click the play button next to Ingestion 5) scroll down select the ORE test ingestion for Vanilla_IR_Swap 6) In the right side panel with the CDM projection, check the period and period multiplier for any Period, and check any date to see the results of the mapping
2.73.0
Model Optimisation: Exercise Notice
What is being released
The ExerciseNotice
data structure is insufficient to address all use cases, for example when both parties have the right to exercise.
To address all use cases, ExerciseNoticeGiverEnum
has been introduced with values Buyer
, Seller
, Both
and AsSpecifiedInMasterAgreement
.
In addition, for greater clarity the ExerciseNotice
attributes have been renamed to exerciseNoticeGiver
and exerciseNoticeReceiver
and the descriptions have been updated.
Review Directions
In the CDM Portal, use the Textual Browser to review ExerciseNotice
and ExerciseNoticeGiverEnum
.
2.72.2
Model Optimisation: Extract Party References from Product
What is being released
This change is part of the ongoing model refactoring to externalise the definition of the parties involved in a transaction from the definition of the transacted product.
Update function Create_ClearedTrade
to correctly assign the counterparties on the resulting beta and gamma trades.
Review Directions
In the CDM Portal, use the Textual Browser to review the function Create_ClearedTrade
, and use the Instance Viewer to review the Clearing Accepted and Clearing Rejected examples.
In Rosetta Core, review the function Create_ClearedTrade
in file model-cdm-functions
, and on the Visualisation panel review the Clearing Accepted and Clearing Rejected examples.
2.72.0
CDM Model: Product namespace classification
What is being released
This refactor is the third incremental change that will further transform the org.isda.cdm file into a hierarchical namespace tree.
This third refactor includes the changes for the cdm.product.* set of namespaces.
The namespaces contain components used across the CDM for
- Generic product concepts: economic terms and payout,
- Common product settlement concepts:cash vs physical, non-deliverable, money and cashflow, delivery vs payment,
- Common product schedule concepts: calculation period, reset, fixing and payment dates, stub, notional schedule, roll convention,
- Product concepts applicable to specific asset classes,
- and Template feature concepts to define payouts.
Review Direction
In Rosetta Core (https://ui.rosetta-technology.io/), review the File or Namespace structure in the Editor Textual View. In the CDM Portal,
navigate to the Downloads tile, then download artefacts in Java, DAML, Typescript or Scala distribution format and review the source to see the new cdm.product.* files.
Extension of EMIR Regulatory Rules
What is being released
In preparation for modelling of the functional expression of EMIR Article 9 RTS and ITS, the provisions for an initial set of rules have been added to the CDM.
Review Direction
In Rosetta Core (https://ui.rosetta-technology.io/), review reporting rules containing regulatoryReference ESMA EMIR ITS_9
in the model-reg-reporting file.
Change in rosetta path conditional mapping
What is being released
An enhancement to the semantics of the rosetta path conditional logic required a minor change to the synonyms for effectiveDate
in calculationPeriodDates
.
Review Directions
In Rosetta Core (https://ui.rosetta-technology.io/), navigate to the synonym-cdm-fpml file and review the synonyms for effectiveDate
in calculationPeriodDates
.
2.71.10
CDM Model: ProductId Refactoring Supplemental Changes
What is being released
In the Product
data type, added the commodity
attribute, added descriptions for the other attributes, and updated the data type description.
In the ExternalProductType
data type, renamed the externalProductType
attributes as value
.
Review Directions
In the CDM Portal, use the Textual Browser to look up the data types mentioned above.
2.71.9
CDM Model: Enhancement to Create_ExecutionPrimitive and Create_Execution
What is being released
Added three input and output attributes to the Create_ExecutionPrimitive
, Create_Execution
, and Create_ClearedTrade
functions. All three attributes are required in the ExecutionPrimitive
but were not previously in the functions: executionType
, tradeDate
, and identifier
.
Review Directions
In the Rosetta Core, search for the functions noted above.
2.71.7
CDM Documentation: Java Distribution Guidelines
What is being released
Added a new section for Java Distribution Guidelines under CDM Portal Documentation.
Review Direction
Go to CDM Portal documentation, you will see an additional section called CDM Java Distribution Guidelines
.
2.71.6
Infrastructure: Build and Release Process
What is being released
Changes to the build and release process to accommodate the CDM's increased memory size.
2.71.5
Infrastructure: Add Ingestion Environment for ORE XML model
What is being released
A new synonym source ORE_1_0_39
has been created in the CDM which is being used to create mappings between the ORE XML model and the CDM. The initial scope for the mapping is plain vanilla interest rate swaps.
A new Ingestion Envrionment has also been added such that ORE XML sample documents and their ingested CDM representations can be displayed in the CDM Portal.
Review Directions
In the Rosetta core, see the filename synonyms-cdm-ore
In the Ingestion page, see the drop-down for the ore-1-0-39
entry.
2.71.2
Model Optimisation: Extract Account References from Product
What is being released
This change is part of the ongoing model refactoring to externalise the definition of the parties involved in a transaction from the definition of the product being transacted itself. This particular change addresses counterparty account reference details that are currently embedded within the representation of the product.”
This release focuses on moving Account
references outside of the Product
. Account references in types PayerReceiver
and BuyerSeller
(both positioned inside the Product
) have been deprecated and replaced by linking the Account
to a Party
at the Contract
level by specifying the new attribute Contract.account.partyReference
.
In addition to the model change, the translation mappings have been updated for synonyms FpML_5_10
, Workflow_Event
, CME_ClearedConfirm_1_17
, CME_SubmissionIRS_1_0
, DTCC_9_0
and DTCC_11_0
.
Further work on moving Account
will be done as part of separate changes to support the settlement and cash transfer use cases. For the settlement use case a different Account
may be specified on each Payout
, e.g. for a cross-currency swap, each currency may settle into a different account. This use case is not currently supported by the model. The current set of FpML samples does not contain illustrative cases with different accounts specified at the Payout
level. Further changes will be proposed based on analysis of relevant use cases.
To make the Product
fully agnostic to parties, non-counterparty party references must also be moved, e.g. AdditionalDisruptionEvents.determiningParty
, DividendReturnTerms.extraordinaryDividends
, OptionPhysicalSettlement.predeterminedClearingOrganization
, etc. This will be done as part of separate changes in the coming weeks.
Review Directions
In the Textual Browser, review changes to Account
, PayerReceiver
and BuyerSeller
.
In the Ingestion Panel, review FpML sample products > EUR-Vanilla-account.xml
, and any CME Cleared Confirmed sample, for example cme-cleared-confirm-1-17 > IRD_EX05_LONG_STUB_SWAP.xml
.
2.71.0
CDM Model: Observable namespace classification
What is being released
This refactor is the second incremental change that will further transform the org.isda.cdm file into a hierarchical namespace tree.
This second refactor includes the changes for the cdm.observable.* set of namespaces.
The namespaces contain components used across the CDM for market data, holiday calendar date, event (extraordinary event, trigger event, disruption event), and asset (schedule, settlement, price and quantity notation, etc).
Review Directions
In Rosetta Core (https://ui.rosetta-technology.io/), review the File or Namespace structure in the Editor Textual View.
In the CDM Portal, navigate to the Downloads tile, then download artefacts in Java, DAML, Typescript or Scala distribution format and review the source to see the new cdm.observable.* files.
2.66.3
CDM Model: ProductIdentifier Refactoring
What is being released
The refactoring rationalizes the use of ProductIdentifier
and standardizes related references. Changes include:
- Creating a
ProductBase
abstract type with one encapsulated data type:ProductIdentifier
- Setting cardinality of the id and the source in
ProductIdentifier
to (1..1) - Define Index, Loan, Commodity, and Security as extensions of
ProductBase
- Remove
IdentifiedProduct
- Restructure Security to align with
CollateralAssetType
and rename data types and attributes with the word bond by replacing bond with debt - The products that were previously extensions of
IdentifiedProduct
can now be identified insecurityType
and related attributes in theSecurity
data type:Bond
,ConvertibleBond
, andMortgageBackedSecurity
are identified as the enumerated value of Debt insecurity
, andConvertibleBond
andMortgageBackedSecurity
can be further identified indebtClass
as the enumerated values of Convertible and AssetBacked. Similiarly,ExchangeTradedFund
andMutualFund
are identified as the enumerated value Fund insecurity
, and can be further identified infundType
. Otherwise, the pre-existing types (Equity
andWarrant
) can be identified as enumerated values insecurity
. - In
ProductIdentification
, replaceproductType
withexternalProductType
(of typeExternalProductType
) and replaceproductId
withproductIdentifier
(of typeProductIdentifier
)
Review Directions
In the CDM Portal, navigate to the Textual Browser and search for the data types noted above.
CDM Model: Model Definitions
What is being released
Added definitions for attribute TradableProduct.counterparties
and type Counterparty
.
2.65.10
Infrastructure: CDM Portal Change Password bug
What is being released
Fixed a bug where after updating the authentication library, the users were being forced to change their passwords on first login.
2.65.7
Infrastructure: CDM Portal Change Password bug
What is being released
Fixed a bug affecting a small number of users where the CDM Portal was not registering the password change and continuously asking to change their password.
2.65.6
Infrastructure: CDM Portal Change Password bug
What is being released
Fixed a bug affecting a small number of users where the CDM Portal was forcing the user to change their password but wasn't accepting any new password.
2.65.4
Infrastructure: User Extraction API Fix
What is being released
Upgraded user extraction API to support downloads of more than 1000 registered users.
Review directions
- ISDA CDM Admins can log into the portal and download users via the CDM Portal Home Page.
2.65.2
CDM Model: Legal Document Modelling
What is being released
Variation Margin model added and initial changes for Master Agreement Schedule model.
The following documents or specific clauses are now supported:
Variation Margin Agreements
- ISDA 2016 CSA for Variation Margin ("VM") (Security Interest - New York Law)
- ISDA 2016 CSA for VM (Title Transfer – English Law)
- ISDA 2016 CSA for VM (Loan – Japanese Law)
- ISDA 2016 CSA for VM (Title Transfer – Irish Law)
- ISDA 2016 CSA for VM (Title Transfer – French Law)
Master Agreement Schedule
- ISDA 2002 Master Agreement Schedule (Automatic Early Termination Clause only)
Other related changes:
- Model changes for Eligible Collateral and Margin Agreement Schedule.
ISDA Create
synonym mapping fixes.- Updated documentation samples in the Legal Agreement section.
Review directions
- Review type
CreditSupportAgreementElections
,MasterAgreementSchedule
andEligibileCollateral
. - Review
ISDA Create
ingestion samples in the CDM Portal Ingestion Page in folderisda-create
.
CDM Model: Synonym Externalisation
What is being released
As part of the ongoing namespace changes, synonyms defined inline in the CDM Model are being moved to their respective namespaces. The following have now been externalised:
FpML_5_10
CME_SubmissionIRS_1_0
CME_ClearedConfirm_1_17
Review directions
The extracted synonyms can be viewed in Rosetta Core:
- The FpML file is named
synonym-cdm-fpml.rosetta
under namespacecdm.synonyms.fpml
. - The CME file is named
synonym-cdm-cme.rosetta
under namespacecdm.synonyms.cme
.
The extracted synonyms can also be viewed in the CDM Portal Textual Browser by searching for synonym source FpML_5_10
, synonym source CME_ClearedConfirm_1_17
and synonym source CME_SubmissionIRS_1_0
.
Infrastructure: DAML Upgrade
What is being released
Upgrade DAML version to use version 1.3.0 for DAML compilation.
Review directions
Download and review the DAML CDM distributed artifact from the CDM Portal Download page.
Infrastructure: Go Code Generation
What is being released
Add a Go implementation of the CDM to the available downloads.
Notable changes and updates introduced:
- The generated Go source code contains all CDM model types and enums, and all function specifications.
- As Go language compilation is platform-specific, the CDM distributed artifact does not contain executable code.
- The Go CDM distributed artifact is now available on the CDM Portal Downloads page.
Review directions
Download and review the Go CDM distributed artifact from the CDM Portal Download page.
2.64.0
Model Optimisation: Extract Party References from ContractualProduct
What is being released
Following the recent model refactoring to extract Party
references from ContractualProduct
, the regulatory reporting model in model-reg-reporting
was updated to look up the Party
based on the CounterpartyEnum
.
Review direction
In the Textual Browser, review reporting rules:
FixedFloatBuyerSeller
FixedFixedBuyerSeller
SingleCurrencyBasisSwap
CrossCurrencySwapBuyerSeller
CreditDefaultSwapBuyerSeller
2.63.5
User Documentation: Legal Agreement Section
What is being released
The Legal Agreement section of the CDM user documentation has been updated, in line with recent changes to other sections of the documentation and to the model.
Notable changes and updates introduced:
- Updated modelling approach describing current scope and updated design principles.
- Detailed description of individual components within the Legal Agreement model.
- Detailed description of structure and modelling approach for Elective Provisions
- Addition of relevant examples to demonstrate model content
- Updated description of approach for linking legal agreements to contracts
The Process section has also been updated to explain support for initial margin calculations as part of the Calculation Process section.
Review direction
In the CDM Portal, review the CDM Documentation, in particular the sections:
2.62.5
CDM Model: Legal Document Modellinge
What is being released
ISDA Create schemas and samples added for ISDA 2019 Security Agreements for Belgium and Luxembourg Law.
Review Directions
In the Ingestion Panel, try samples in folders:
isda-create > isda-sa-im-2019-bellaw
isda-create > isda-sa-im-2019-luxlaw
2.60.0
Model Optimisation: Extract Party References from ContractualProduct
What is being released
The first part of the model refactoring to move Party
definitions and references to make ContractualProduct
agnostic to parties, i.e. for trades containing economically identical products, but different counterparties, the CDM representation of the products should also be identical.
Replace any Party
or references to Party
by a resolvable enum, CounterpartyEnum
, which contain values Party1
and Party2
that correspond to the two counterparties to the trade.
Create type Counterparty
to specify which CounterpartyEnum
corresponds to which Party
, and add to TradableProduct
with a cardinality of exactly two e.g. one for each counterparty. Typically the Counterparty.party
attribute would be specified as a reference because the party would already be fully specified on the Contract
, Execution
or WorkflowStep
, along with any other parties related to the trade eg. broker or calculation agent etc.
In addition to the model changes, the translation mappings have been updated for synonyms FpML_5_10
, Workflow_Event
, CME_ClearedConfirm_1_17
, CME_SubmissionIRS_1_0
, DTCC_9_0
and DTCC_11_0
.
To make the ContractualProduct
fully agnostic to parties, the Account
must also be moved. That will be done as part of further changes in the coming weeks. In addition there will be further changes to remove non-counterparty party references e.g. AdditionalDisruptionEvents.determiningParty
, DividendReturnTerms.extraordinaryDividends
, OptionPhysicalSettlement.predeterminedClearingOrganization
etc.
Review direction
In the Textual Browser, review CounterpartyEnum
, Counterparty
, PayerReceiver
, BuyerSeller
, ExerciseNotice.optionBuyer
and NotifyingParty
.
In the Ingestion Panel, review any FpML samples under products
or Event samples under events
.
Below is a list of samples which are of particular interest:
FpML sample containing CounterpartyEnum
data in PayerReceiver
:
products > rates > EUR-Vanilla-uti
FpML sample containing CounterpartyEnum
data in PayerReceiver
, BuyerSeller
and NotifyingParty
:
products > credit > cds-loan-ReferenceObligation-uti
Event allocation sample that shows the Product
is party agnostic. The WorkflowStep.businessEvent.primitives.contractFormation
before and after data has different party references specified in the Contract.tradableProduct.counterparties
, but each Contract.tradableProduct.product.meta.globalKey
is identical (in these samples the globalKey
is generated based on a checksum of the data; so identical keys indicate identical data):
events > allocation-single
FpML sample with party references Contract.collateral.independentAmount
(e.g. party references as outside the ContractualProduct
), and CounterpartyEnum
data in PayerReceiver
and BuyerSeller
(e.g. inside the ContractualProduct
):
products > credit > cd-indamt-ex01-short-us-corp-fixreg-versioned
FpML sample with CounterpartyEnum
data in ExerciseTerms.optionBuyer
, PayerReceiver
and BuyerSeller
:
products > rates > bond-option-uti
FpML sample with a payment to a third party (e.g. not one of the two counterparties). See Contract.tradableProduct.product.contractualProduct.economicTerms.payout.cashflow.payerReceiver.receiverPartyReference.externalReference
, moving cashflow payout party references will be part of a separate change:
products > rates > swap-with-other-party-payment
2.59.1
Infrastructure: Merge multiple ISDA create ingestion environemnts into one
What is being released
Merge the isda-reate ingestion environments
- The various flavours of isda create were being treated as entirely seperate entities for the purpose of ingestion slowing the ingestion creation process. These can now be merged into one which should cause an increase in performace of core.
2.58.3
Infrastructure: Add override keyword to Rosetta Grammar
What is being released
Adding a new override keyword
- The override keyword allows a type to be extended from another namespace.
2.57.8
CDM Model: Legal Document Modelling
What is being released
Resolve complex ISDA Create mapping issues for legal documents:
- Addresses for Transfer/Demands and Notices - Addresses are now mapped for the specified party
- Related Agreements –
COLLATERAL_TRANSFER_AGREEMENT
,MASTER_AGREEMENT
andSECURITY_AGREEMENT
agreement types are now mapped for related agreements - Posting Obligations - Additional_language is now correcty mapped to the specified party.
- Recalculation of Value - Elections are now correcty mapped to the specified party.
- French Law Addendum – Bespoke language are now associated with correct party on CTA ISDA Bank Custodian 2019.
- Regime/Security Provider Rights Event/Security Taker Rights Event - Elections are now correcty mapped to the specified party.
Review direction
In the Ingestion Panel, try samples in folder isda-create.
- clearstream-cta-2016-englaw/sample1 - see
partyElection -> address
mapped to correct party. - clearstream-sa-2016-luxlaw/sample1 - see
agreementType -> COLLATERAL_TRANSFER_AGREEMENT
mapped for the releated agreement for date 2020-04-03 - isda-csa-im-2016-jpnlaw/sample1 - see
postingObligations -> partyElection
mapped for partyA and partyB - clearstream-cta-2019/sample1 - see
recalculationOfValue -> partyElection
correctly associate partyA and partyB indisputeResolution
. - euroclear-cta-2019/sample1 - see
jurisdictionRelatedTerms -> frenchLawAddendum
correctly associate theaddendumLanguage
with partyB. - isda-csa-im-2018-nylaw/sample1 - see
rightsEvents -> securityProviderRightsEvent
correctly associate partyA and partyB forpartyElection
.
2.57.7
*Event Model: Direct Principal and Agency Clearing Model *
What is being released
The clearing function has been enhanced to support the Direct Agency clearing model. Direct clearing is when the risk party to the trade is facing the CCP, either through its own account (principle) or its clearing member acting as agent (angency).
Notable changes:
- Clearing function renamed to
Create_CrearedTrade
and is now consistent with the strategic approach. - Descriptions added/modified for
ClearingInstruction
andCreate_CrearedTrade
. party1
/party2
alias used in clearing function to link parties have been moved toClearingInstruction
.clearerParty1
/clearerParty2
added to inClearingInstruction
to support agency clearing.- Constrain added to
Create_CrearedTrade
inputs so that the parties and roles are present in the alpha trade.
Review direction
In the CDM Portal, open the Textual Browser and see:
- func
Create_CrearedTrade
- type
ClearingInstruction
Infrastructure: Namespace hierarchy to be sorted
What is being released
Infrastructure change to show the files in the namespace hierarchy in sorted order.
2.57.2
*Event Model: Direct Principal and Agency Clearing Model *
What is being released
The clearing function has been enhanced to support the Direct Agency clearing model. Direct clearing is when the risk party to the trade is facing the CCP, either through its own account (principle) or its clearing member acting as agent (angency).
Notable changes:
- Clearing function renamed to
Create_CrearedTrade
and is now consistent with the strategic approach. - Descriptions added/modified for
ClearingInstruction
andCreate_CrearedTrade
. party1
/party2
alias used in clearing function to link parties have been moved toClearingInstruction
.clearerParty1
/clearerParty2
added to inClearingInstruction
to support agency clearing.- Constrain added to
Create_CrearedTrade
inputs so that the parties and roles are present in the alpha trade.
Review direction
In the CDM Portal, open the Textual Browser and see:
- func
Create_CrearedTrade
- type
ClearingInstruction
Infrastructure: Namespace hierarchy to be sorted
What is being released
Infrastructure change to show the files in the namespace hierarchy in sorted order.
2.56.6
User Documentation: Overview Section
What is being released
The overview section of the CDM user documentation has been updated, in line with recent changes to other sections of the documentation and to the model.
Notable changes and updates introduced:
- Updated components diagram
- Aligned high-level description of benefits onto ISDA's systematic messaging about CDM
- New CDM governance section
- Move of versioning section to be part of the CDM distribution section
- Clean-up language and clarify explanations where required
- Updated links and resources
Review direction
In the CDM Portal, review the CDM Documentation, in particular the section:
Documentation: Add descriptions to Create functions
What is being released
The Functions defined in the CDM have been updated to include descriptions for their usage, inputs, outputs and conditions.
Review Direction
In the CDM textual browser, see the descriptions for functions:
Create_Execution
Create_ExecutionPrimitive
Create_ContractFormation
Create_ContractFormationPrimitive
ClearingInstruction
Event Model: Add Create Workflow Step Functions
CDM functions to create a WorkflowStep
with a business event that has happened or a WorkflowStep
supporting proposing a business event, accepting a business event, and rejecting a business event. The new functions enable data quality remediation on a WorkflowStep
data record with the use of the action attribute with possible values of New, Correct and Cancel and constraints restricting the inputs to valid cases.
Review Direction
- New annotation type [create WorkflowStep] added similar to [create BusinessEvent].
- 4 new functions have been added to create workflowStep with inputs: message Information, timestamp, event identifiers, parties, accounts.
Create_WorkflowStep
- Business Event + action (new, correct, cancel)Create_ProposedWorkflowStep
- Proposed Instructions + action (new or correct only)Create_AcceptedWorkflowStep
- Business Event + previous proposed step referenceCreate_RejectedWorkflowStep
- Rejection + previous proposed step
- Action is now optional on
WorkflowStep
Portal Registration Form Bugfix
What is being released
For new users registering on the CDM Portal, numbers are were not permitted to be used when specifying a company name. This bug has been fixed.
2.56.0
CDM Model: Legal Document Modelling
What is being released
Resolve complex ISDA Create mapping issues for legal documents:
- Convert ISDA Create currency descriptions into ISO Country Code (iso4217)
Access Conditions
- fix mapping of Additional Termination EventsAmendment to Termination Currency
- fix mapping of three party election structure, and agreement date.SIMM Calculation Currency
- fix mapping of elections.Collateral Management Agreement
- fix mapping of elections.Custodian Event End Date
- fix mapping issues and addCustodianEventEndDate.safekeepingPeriodExpiry
to accommodate Clearstream CTA documents.- Remove
LegalDocumentBase.partyInformation
as it duplicatesLegalDocumentBase.contractualParty
andLegalDocumentBase.otherParty
.
Review Direction
In the Ingestion Panel, try samples in folder isda-create
.
2.55.5
Infrastructure changes: Ingestion
What is being released
Fixed a bug in the ingestion algorithm that was causing issue in the downsteam projects.
2.55.4
User Documentation: Consistency of Examples vs Model
What is being released
A technical change has been introduced in the CDM build and release infrastructure, that verifies the consistency of any code snippet included in the user documentation vs the model, and alerts in case of any discrepancy. Going forward, this will facilitate maintenance of the user documentation as the model evolves, by forcing to update the documentation in synchrony with any model change.
As part of this infrastructure change, a number of code snippets in the user documentation have been updated to be synchronised with the model.
In particular, following removal of the inception primitive (superseded by the execution and contract formation primitives) as part of a recent release, the user documentation has been updated to reflect that model change.
Review Direction
In the CDM Portal, review the CDM Documentation, in particular the section:
2.55.3
Product Model: Equity Swap Modelling
What is being released
Fixes for Equity Swap model, and corresponding FpML synonym mappings for returnLeg.effectiveDate
and interestLegPaymentDates
.
Review Direction
In the Textual Viewer, review types
PaymentDateSchedule
,AdjustableRelativeOrPeriodicDates
andPeriodicDates
.In the Ingestion Panel, try samples in folder
products > equity
.
2.55.0
CDM Model: Legal Document Modelling
What is being released
Resolve complex ISDA Create
mapping issues:
CalculationDateLocation
- resolve incorrect association of mapped items.Custodian
- build mapper to associate Custodian Name and Account details for Stock vs Cash.Threshold
/MinimumTransferAmount
- update existing mapper to correctly deal with zero amount.CustodyArrangements
- resolve incorrect association of mapped items.
Review Direction
In the Ingestion Panel, try samples in folder isda-create
.
User Documentation: Event Model
What is being released
Following recent overhaul of the Rosetta DSL documentation, the CDM documentation has been updated, focusing on:
- Event Model section
- Lifecycle Event Process section of the Process Model
An overview of the design principle of the CDM event model has been introduced, including an explanatory diagram for the different levels in the model and their relationships:
- Trade State
- Primitive Event
- Business Event
- Worksflow Step
All snippet examples have been updated to reflect their current status in the CDM.
The Process Model section has been expanded to include Primitive Event creation functions, and the Event Qualification section has also been updated, both reflecting consistent use of the func
syntax in the Rosetta DSL.
Review Direction
In the CDM Documentation, review the CDM Model tab, in particular the sections:
CDM Model: Eligible Collateral Modelling
What is being released
Extension of CDM model to incorporate treatment of collateral
- Concentration Limits
- Inclusion/Exclusion Criteria
Review Direction
In the Textual Browser, review types CollateralTreatment
and ConcentrationLimitCriteria
.
2.54.1
Model Optimisation: Initial fees and additional payments
What is being released
The Create_Execution
function has been modified to include an input for the initial settlement information for the transaction such as a fee or upfront payment.
The existing SettlementTerms
type has been used for this and has been adjusted to contain all relevant information: date, parties, and payer/receiver, plus an assetIdentifier to uniquely link this cashflow settlement to a cashPrice specification.
Review Direction
In the Textual Broswer of the CDM Portal:
- Type
Execution
has been modified to have a one-to-many relationship withSettlementTerms
to support multiple initial settlement terms. PayerReceiver
has been added toSettlementTerms
to define the settlement partiesAssetIdentifier
has been added toSettlementTerms
to uniquely link the cashflow settlement to a cashPrice specification- Updated Create_Execution to take
SettlementTerms
as an input - Updated descriptions to align with the change in the data structure:
- Search for type
SettlementTerms
- see updated description - Search for type
Execution
, scroll down to attributesettlementTerms
- see updated description - Search for func
Create_Execution
, scroll down to inputsettlementTerms
- see updated description
- Search for type
In the Instance Viewer of the CDM Portal, see the exection business event
examples:
Swaption
- Premium is represented as a settlement termSwap With Other Party Payment
- Broker fee is represented as a settlement termSwap With Initial Fee
- Fee is represented as a settlement term
2.53.5
Product Model: Equity Swap Modelling
What is being released
Fixes for Equity Swap model, and corresponding FpML synonym mappings.
valuationDates.periodicDates
-EquityValuation.valuationDates
previously only allowed list of dates, rather than named date attributes e.g.calculationStartDate
,calculationEndDate
,calculationPeriodFrequency
etc.fxFeature
- added toEquityPayout
.
Review Directions
In the Ingestion Panel, review sample:
products > equity > eqs-ex12-on-european-index-underlyer-short-form.xml
2.53.4
Product Model: FpML Equity Swap Mapping
What is being released
FpML synonym fixes for Equity Swap samples.
Review Directions
In the Ingestion Panel, try the following samples folder products > equity
.
2.53.0
CDM Model: Namespace Hierarchy Bug fixes
What is being released
Minor bug fixes in the generation of the namespace hierarchy tree.
2.52.4
Event Model: Function test changes based on working group feedback
What is being released
Follow up action from 12-May-20 Design WG minutes:
Demonstration was provided of the Create, Correct, Cancel function:
Working group observed that rejected is including in the cancel WorkflowStep. This should be removed from the model. Action: CDM team to review attributes contained within type WorkflowStep and revise accordingly.
The reject has been removed from the cancel step.
Demonstration of Create_ContractFormation with a Legal Document:
Working group observed that under Contract, the parties are defined twice. Firstly, as parties to the Contract, and secondly as parties to the Legal Agreement. Response: CDM team will review how parties are referenced through this function and recommend an approach that doesn’t require parties to be defined in multiple places.
The parties within the legel agreement are now references to the parties defined in the contract to avoid duplicating parties.
Review Direction
In the Instance Viewer section of the CDM Portal:
- See "New Cancel Correct" section. Observe that in the visualisation, the cancel is no longer rejected.
- Under the "Form Contract" section, open "Fixed/Floating Single Currency Interest Rate Swap With Legal Agreement" and observe that in the parties are not duplicated in the
LegalAgreement
.
2.52.2
Model Optimisation: Remove Inception Primitive
What is being released
Follow up action from 2-Jul-19 Design WG minutes:
- Remove the Inception primitive and provide sample events for ExecutionPrimitive and ContractFormation. Proposal is to make use of the new ‘Function Specification’ module and start presenting events as a sequence instead of a static ingestion.
The InceptionPrimitive
has been deprectated for some time and has now been completely removed in favour of the ExectionPrimitive
and ContractFormationPrimitive
. All synonymns, conditions, qualifications and function have now been updated to reflect this. Examples of Inception events provided in the CDM Portal Ingestion section have now been removed and replaced with new examples that are available in the Instance Viewer section created by executing the relevent Business Event Functions.
Review Direction
In the CDM Portal Review changes:
- In the Ingestion page, DTCC XML samples now ingest into
ContractFormation
events rather thanInception
. - See CME confirm examples now qualify the beta and gamma trades as
ContractFormation
- In the Textual browser, see the reg reporting definition of
NewTrade
now reports on Execution or Contract Formation (but not both to avoid double reporting) - In the Textual browser, see updated qualifications:
Qualify_Novation
,Qualify_PartialNovation
,Qualify_TradeWarehousePositionNotification
- In the Instance Viewer, see new examples for FX Forward, CDS and Repo in the Execution and Contract Formation Business section
- In the Textual browser, see that
PostInceptionState
has been renamed toPostContractFormationState
for consistency
2.51.3
Documentation: Process Model
What is being released
Following recent overhaul of the Rosetta DSL documentation, the CDM documentation has been updated, focusing on:
- Process model section (formerly: functions)
- Product qualification section
The former CDM function section has been migrated to a dedicated Rosetta DSL function section (as per previous release), and the CDM documentation focuses instead on explaining how this function feature is used to standardise lifecycle event processes. Two types of process are being demonstrated:
- Validation process
- Calculation process
- An upcoming section (not part of this release) will also focus on event creation process
The product qualification section has also been adjusted to reflect the use of functions for the qualification logic.
Example snippets for the two updated sections have been updated to reflect their latest representation in the CDM, and some additional examples have been included where relevant.
Review Direction
In the CDM Documentation, review the CDM Model tab, also directly accessible here: https://docs.rosetta-technology.io/cdm/documentation/source/documentation.html
CDM Model: Legal Document Modelling
What is being released
Collateral Documentation Changes:
- Further
ISDA Create
synonym mapping fixes. - Extension of
CreditSupportAgreementElections
to fully support 2016 ISDA IM CSA Japanese Law.
Review Direction
In the Ingestion Panel, try samples in folders:
isda-create > isda-csa-im-2016-jpnlaw
2.51.1
CDM Model: Bug fixes
What is being released
Cleanup of tests and some minor bug fixes.
2.51.0
CDM Model: Synonyms & MetaType cleanup
What is being released
Default synonyms moved to a separate namespace cdm.synonyms.config
. All the metaType values moved to a read-only resource.
2.48.3
Documentation: DSL Documentation Overhaul
What is being released
Complete overhaul of Rosetta DSL documentation, with the syntax now stabilised following a complete set of changes introduced recently.
The changes include:
- Change from
class
totype
- Unification of validation components under
condition
attached to type - All functions unified under
func
, including object qualification logic - New
annotation
concept introduced, to unify all metadata - Syntax made more consistent across all these components
The examples illustrating the syntax in the documentation have been fully updated.
Review Direction
In the CDM Documentation, review the Rosetta Modelling Components section at: https://docs.rosetta-technology.io/dsl/documentation.html
CDM Model: Legal Documents Modelling
What is being released
ISDA Create schemas and samples added for Euroclear CTA documents.
Review Directions
In the Ingestion Panel, try samples in folders:
isda-create > euroclear-cta-2016-englaw
isda-create > euroclear-cta-2016-nylaw
isda-create > euroclear-cta-2017-englaw
isda-create > euroclear-cta-2017-nylaw
2.48.2
CDM Model: Namespace hierarchy representation
What is being released
Auto Generation of namespace-hierarchy.json file, which represents the CDM Model in a tree format
CDM Portal: Bug fix for Graphical Navigator
What is being released
Fix bug where the Graphical Navigator only partially displayed the CDM.
2.48.0
CDM Model: Legal Documents Modelling
What is being released
Fixes to ISDA Create
synonym mapping of Legal Documents model, focused on ApplicableRegime
and AdditionalRegime
types.
Review Directions
In the Ingestion Panel, try samples in the folder isda-create
.
2.47.0
CDM Model: Legal Documents Modelling
What is being released
Updates to the Legal Documentation model:
- Addition of
ISDA Create
synonyms for CTA documents. - CTA model adjustments required to resolve testing issues.
- Deprecation of legacy CSA model components.
- Addition of new CSA model.
Review Directions
In the Ingestion Panel, try samples in folders:
isda-create > clearstream-cta-2016-englaw
isda-create > clearstream-cta-2016-nylaw
isda-create > clearstream-cta-2019
isda-create > euroclear-cta-2019
isda-create > isda-cta-im-2019
Event Model: New Correct Cancel Example
What is being released
Added an example for new, correct and cancel workflow for a vanilla IRS.
Review Directions
Open Rosetta Core and navigate to the Visualisation section:
- Select
NEW CANCEL CORRECT WORKFLOW
- See an example where in IRS is created with a quanity of 99999, which is then corrected and then cancelled.
2.46.4
Event Model: Allocation / Split Business Events
What is being released
Refactor Allocation
and Split
business events.
Allocation
business event contains two types of primitives:
SplitPrimitive
with the original execution split into separate executions with the quantity as specified in theAllocationInstructions
.ContractFormationPrimitive
for each execution inSplitPrimitive.after.splitTrades.execution
, updating the party based on theAllocationInstructions
.
Review Directions
In the Textual Browser, review the functions:
Create_Allocation
(BusinessEvent creation function)Create_SplitPrimitive
(PrimitiveEvent creation function)Create_ContractFormationPrimitive
(PrimitiveEvent creation function)Qualify_Allocation
(Qualification function)
In the Ingestion Panel, review the samples:
events > allocation-multiple.xml
events > allocation-single.xml
2.46.2
Infrastructure: Annotations
What is being released
Changes to annotations based on the recommendations of the recent design review of CDM functions.
- Remove
[partialKey]
- the annotation was used on theEconomicTerms
type, and was intended to provide a hash/checksum of the object data, excluding any metadata, that could be used for comparing economic equality between objects. However, the current implementation could cause both false positive and false negative results, and, following the recent quantity and price model refactor does not account for these values.
Review Directions
In the Textual Browswer, review the EconomicTerms
type.
2.45.2
Function Testing: Initial fee and other party payment examples
What is being released
As part of the on going function testing, two new examples have been created for a swap execution with initial fee and one for a payment to a party.
Review Directions
In Rosetta Core, navigate to the Visualise page and select the new examples:
- Swap With Initial Fee
- Swap With Other Party Payment
2.45.0
Infrastructure: Annotation Syntax
What is being released
Changes to annotations based on the recommendations of the recent design review of CDM functions. The following annotations have been updated:
qualification
:
- Annotation declaration syntax changed to specify the qualifiable type e.g.
BusinessEvent
orProduct
. - Annotation declaration syntax changed to specify the function name prefix, and set as "Qualify". e.g.
func Qualify_Execution
. - Add validation to enforce that any function with a
qualification
annotation has the correct function name prefix, input type and output type.
creation
:
- Rename annotation from
funcType
tocreation
. - Set annotation prefix to "Create". e.g.
func Create_ExecutionPrimitive
. - Add validation to enforce that any function with a
creation
annotation has the correct function name prefix, and output type.
Review Directions
In the Textual Browser, review annotations qualification
and creation
.
2.44.3
CDM Documentation: Update
What is being released
General documentation refresh with updated code snippets and explainations.
Review Directions
Please see documentation update here: https://docs.rosetta-technology.io/cdm/documentation/source/documentation.html
Infrastructure: Legal Documents Modelling
What is being released
Add ISDA Create JSON schemas and ingestion sample documents for Collateral Transfer Agreements.
Review Directions
In the Ingestion Panel, try samples in folders:
isda-create > clearstream-cta-2016-englaw
isda-create > clearstream-cta-2016-nylaw
isda-create > clearstream-cta-2019
isda-create > isda-cta-im-2019
2.44.1
Event Model: Add Examples and Tests for New Trade Functions
What is being released
New examples for the Execute
and FormContract
functions.
Execute
Business Event- Fixed/Floating Single Currency Interest Rate Swap
- Forward Rate Agreement
- Basis Swap
- OIS Swap
- Swaption
FormContract
Business Event- Fixed/Floating Single Currency Interest Rate Swap using ISDA Master Agreement
- Fixed/Floating Single Currency Interest Rate Swap
- Forward Rate Agreement
- Basis Swap
- OIS Swap
- Swaption
Review Directions
Using Rosetta Core, navigate to the Visualise CDM Events section and select 'EXECUTE BUSINESS EVENT' or 'FORM CONTRACT BUSINESS EVENT'. There will be an item per example which you can click on to see a visualisation. Click on a node to see the CDM JSON in the analisys section.
2.44.0
Model Optimisation: Price Refactor
What is being released
Clean up tasks following the recent model price refactor:
- Migrate regulation reporting rules for
ESMA MiFIR RTS22
to use new price model.
Review Directions
In the Textual Browser, review reporting rules:
FixedRatePrice
,FloatingRatePrice
,FixedFixedPrice
FixedFloatBuyerSeller
,CrossCurrencySwapBuyerSeller
,FixedFixedBuyerSeller
IsFixedFloat
,IsFixedFixed
,IsIRSwapBasis
,IsXCCYSwap
,IsCreditDefaultSwap
2.43.2
CDM Model: Legal Documents Modelling
What is being released
Implementation of model to support Security Agreements.
Ability to ingest below documents from ISDA Create:
- 2019 ISDA Bank Custodian SA (NY Law)
- 2019 ISDA Bank Custodian SA (Eng Law)
- 2019 Euroclear SA (Bel Law)
Review Directions
In the Ingestion Panel, review samples in folders:
isda-create > euroclear-sa-2019-bellaw
isda-create > isda-sa-im-2019-englaw
isda-create > isda-sa-im-2019-nylaw
2.43.0
Infrastructure: Legal Documents Modelling
What is being released
Add ISDA Create JSON schemas and ingestion sample documents for Security Agreements.
Review Directions
In the Ingestion Panel, try samples in folders:
isda-create > clearstream-sa-2016-luxlaw
isda-create > clearstream-sa-2017-luxlaw
isda-create > clearstream-sa-secprovider-2019-luxlaw
isda-create > clearstream-sa-sectaker-2019-luxlaw
isda-create > euroclear-sa-2016-bellaw
isda-create > euroclear-sa-2018-bellaw
isda-create > euroclear-sa-2019-bellaw
2.42.9
Infrastructure: Function Testing
What is being released
Test definitions have been added to the cdm to test the Execute
and FormContract
function definitions with a vanilla IRS.
Review Directions
The tests will be available to view in Rosetta Core in the near future.
2.42.8
Infrastructure: Function Testing
What is being released
Test definitions have been added to the cdm to test the Execute
and FormContract
function definitions with a vanilla IRS.
Review Directions
The tests will be available to view in Rosetta Core in the near future.
2.42.7
Infrastructure: Function Testing
What is being released
Test definitions have been added to the cdm to test the Execute
and FormContract
function definitions with a vanilla IRS.
Review Directions
The tests will be available to view in Rosetta Core in the near future.
2.42.6
Model Optimisation: Price Refactor
What is being released
Clean up tasks following the recent model price refactor:
- Migrate conditions related FpML rule IRD 25 to type
TradableProduct
-FpML_ird_25_FixedRate
,FpML_ird_25_FloatingRateSpread
,FpML_ird_25_FloatingRateCapRate
andFpML_ird_25_FloatingRateFloorRate
. - To support use case for a floating rate multiplier schedule, add attribute
multiplier
to typeFloatingInterestRate
, and add FpML sampleird-ex27-inverse-floater.xml
. - Migrate condition
FloatingRateMultiplierSchedule
to typeFloatingInterestRate
.
Review Directions
In the Textual Browser, review:
- Conditions
FpML_ird_25_FixedRate
,FpML_ird_25_FloatingRateSpread
,FpML_ird_25_FloatingRateCapRate
andFpML_ird_25_FloatingRateFloorRate
on typeTradableProduct
. - Condition
FloatingRateMultiplierSchedule
on typeFloatingInterestRate
.
In the Ingestion Panel, review sample products > rates > ird-ex27-inverse-floater.xml
.
2.42.5
CDM Model: Eligible Collateral Model
What is being released
Changes to Issuer and Product taxonomy model to support Eligible Collateral.
- Changes to Issuer model to include reference to Fund Issuers and Special Purpose Vehicles.
- Changes to Product model to include reference to Bond Types and Bond Economics.
- Additional descriptions added across the model.
Review Directions
In the Textual Browser, review types IssuerCriteria
and ProductCriteria
.
2.42.4
Model Optimisation: Quantity Refactor
What is being released
Clean up tasks following the recent model quantity refactor:
- Rename attribute
NonNegativeQuantitySchedule.quantity
toNonNegativeQuantitySchedule.initialQuantity
. - Add FpML synonym mappings logic to populate
NonNegativeQuantitySchedule.initialQuantity
only when a quantity schedule exists. - Add attribute
ResolvablePayoutQuantity.resolvedQuantity
to be populated when the quantity is resolved (based on the aseet identifier). - Add conditions to type
TradableProduct
-NotionalAdjustment
,InterestRatePayoutQuantityResolvable
,EquityPayoutQuantityResolvable
,CreditDefaultPayoutQuantityResolvable
,CashflowQuantityResolvable
andSecurityQuantityResolvable
. - Add conditions to type
Payout
-NotionalResetOnEquityPayout
andNotionalResetInterestRatePayoutExists
. - Add condition to type
ResolvablePayoutQuantity
-ResolvedQuantity
.
Review Directions
In the Textual Browser, review type ResolvablePayoutQuantity
.
2.42.3
CDM Model: Currency Enum
What is being released
Adding two currency code enumerated sets to the file base-staticdata-asset-commons-enum:
- enum
ISOCurrencyCodeEnum
- enum
CurrencyCodeEnum
extendsISOCurrencyCodeEnum
The CurrencyCodeEnum
will be used in place of string as the date type for all currency fields. The work of updating the data type will be completed in one or more subsequent releases.
The new CurrencyCodeEnum
is materialized version of the FpML
external scheme for currency codes and includes an applicable synonym.
Review Directions
In the Textual Browser, review ISOCurrencyCodeEnum
and CurrencyCodeEnum
.
2.42.2
CDM Model: Legal Documents Modelling
What is being released
First phase of refactoring to support new legal documents modelling approach.
- Change to
LegalAgreement
to look forContractualTerms
. - Addition of
ContractualTerms
to define anAgreement
andRelatedAgreements
- Addition of
RelatedAgreements
for specification of related agreements terms - Rename
Documentation->RelatedAgreement
inmodel-derivatives-shared
and update reference inmodel-cdm-product
. - Addition of types to support Credit Support, Collateral Transfer and Security Agreements.
- Modelling of clauses in Security Agreement and addition of synonyms.
Review Directions
In the Textual Browser, review LegalAgreement
and related types.
2.42.1
Model Enhancements: Adding description to the CDM Model
What is being released
Added the ability to provide descriptions for a CDM Namespace. Additionally added the description for the cdm.base package.
base.rosetta
base-staticdata.rosetta
base-staticdata-party-enum.rosetta
base-staticdata-identifier-type.rosetta
base-staticdata-asset.rosetta
base-staticdata-asset-common-enum.rosetta
base-math-enum.rosetta
base-datetime-enum.rosetta
Review Directions
View any of the above mentioned files, right next to their namespace label, there is a description.
2.42.0
Model Optimisation: Price Refactor
What is being released
Clean up tasks following the recent model price refactor:
- Add FpML synonym mappings logic to populate
Schedule.initialValue
when a price schedule exists. - Rename type
InterestRateSpread
toFloatingInterestRate
. - Add
[deprecated]
annotation to deprecated attributes. - Fix minimum cardinality for
TradableProduct.priceNotation
.
Review Directions
In the Ingestion Panel, try the following samples which contain price step schedules in folder products > rates
:
EUR-variable-notional-uti.xml
ird-ex04-arrears-stepup-fee-swap-usi-uti.xml
ird-ex22-cap.xml
ird-ex23-floor.xml
ird-ex24-collar.xml
GBP-VNS-uti.xml
USD-VNS-uti.xml
2.41.0
Product/Event Model: Collateral Eligibility
What is being released
Eligible Collateral model refactoring focusing on attribute cardinality to allow the eligibility criteria to be specified.
Review Directions
In the Textual Browser, review the following:
- Type
EligibleCollateralCriteria
,IssuerCriteria
andProductCriteria
.
Product/Event Model: Collateral Documentation
What is being released
ISDA Create schemas and sample files added for Security Agreement documents: Euroclear SA 2019 Belgium Law, ISDA SA IM 2019 English Law and ISDA SA IM 2019 New York Law.
2.40.5
Product/Event Model: Stock Split Function
What is being released
Updated the StockSplit func and associated type naming and definitions.
Review Directions
In the Textual Browser, review the following:
- Business event func
StockSplit
. - Type
StockSplitInstruction
. - Qualification func
StockSplitEvent
.
2.40.4
CDM Model: IM CSA New York Law 2018 Modelling
What is being released
IM CSA New York Law 2018 document modelled and synonyms added to map to ISDA Create negotiation data.
CSA document model refactored to better support combination of 2016 and 2018 IM documents.
Review Directions
In the Ingestion Panel, try samples in folder:
isda-create > im-csd-ny-law-2018
2.40.3
CDM Model: CSA Initial Margin 2018 (Paragraph 3 & 5) Calculations
What is being released
Further modelling of the calculations described in CSA Initial Margin 2018 paragraphs 3 and 5.
These functions are still under active development and have been released so they can be more easily shared with a wider audience.
Review Directions
In the Textual Browser, review the following:
- Functions:
DeliveryAmount
,ReturnAmount
,CreditSupportAmount
,UndisputedAdjustedPostedCreditSupportAmount
,SumPostedCreditSupportItemAmounts
,PostedCreditSupportItemAmount
- Types:
PostedCreditSupportItem
2.40.2
CDM Model: Equity Stock Split Function
What is being released
Function added to create a split stock business event based on a SplitStockInstruction
. The SplitStockInstruction.adjustmentRatio
is applied to the number of securities and cash price resulting in the a QuantityChangePrimitive
and TermsChangePrimitive
respectively.
Review Directions
In the Textual Browser, review the following:
- Business event func
SplitStock
. - Type
StockSplitInstruction
. - Qualification func
StockSplit
.
2.40.1
Infrastructure: ISDA Create Projection
What is being released
Infrastructure changes related to the projection of ISDA Create documents.
2.40.0
CDM Model: IM CSD English Law 2018 Modelling
What is being released
IM CSD English Law 2018 document modelled and synonyms added to map to ISDA Create negotiation data.
Review Directions
In the Ingestion Panel, try the following sample:
isda-create > im-csd-eng-law-2018 > sample1.json
2.39.1
Model Optimisation: Externalise the DTCC Synonyms into its own namespace
What is being released
The DTCC synonyms have been moved to a seperate namespace cdm.synonyms.dtcc
allowing both DTCC_9 and DTCC_11 to inherit from the FPML synonym. This removes a lot of duplication of mapping logic within the CDM.
synonym source DTCC_BASE extends FpML_5_10
: All common synomyms forDTCC
that inherit fromFpML_5_10
synonym source DTCC_9_0 extends DTCC_BASE
: Synonyms that only apply toDTCC_9_0
synonym source DTCC_11_0 extends DTCC_BASE
: Synonyms that only apply toDTCC_11_0
Review Directions
In the Textual Browser, search (use control-f) for the text synonym source DTCC_BASE
and see all of the synonym mapping.
Observe that there are no longer any DTCC synonyms defined within the types (i.e. attributes of type Contract
do not have any DTCC
synonyms.
2.38.0
Infrastructure: ISDA Create
What is being released
Infrastructure changes to support ingestion of ISDA Create IM CSD English Law 2018 documents.
Review Directions
In the Ingestion Panel, try the following sample:
isda-create > im-csd-eng-law-2018 > sample1.json
2.37.0
Model Optimisation: Price Refactor
What is being released
Following the recent price refactor, migrate synonyms to the new model for all products including rates, equity, FX, credit and repo, and also all other event, DTCC and CME synonyms.
Remove synonyms from model attributes from InterestRatePayout.rateSpecification
:
fixedRate.initialValue
floatingRate.initialRate
floatingRate.spreadSchedule.initialValue
floatingRate.capRateSchedule.initialValue
floatingRate.floorRateSchedule.initialValue
Add synonyms to refactored PriceNotation
attributes:
price.fixedInterestRate.rate
price.interestRateSpread.rate
price.interestRateSpread.capRate
price.interestRateSpread.floorRate
assetIdentifier.currency
assetIdentifier.rateOption.floatingRateIndex
assetIdentifier.rateOption.indexTenor
The RateSpecification
type on InterestRatePayout
now has three attributes of type FixedRateSpecification
, FloatingRateSpecification
and InflationRateSpecification
. These all extend super type RateSpecificationBase
which has an attribute assetIdentifier
that corresponds to the PriceNotation.assetIdentifier
.
Review Directions
In the Textual Browser, review the following types:
PriceNotation
,Price
,FixedInterestRate
andInterestRateSpread
.RateSpecification
,FixedRateSpecification
,FloatingRateSpecification
andInflationRateSpecification
.
In the Ingestion Panel, try one of the following samples:
products > credit
products > equity
products > FX
products > rates
products > repo
CDM Model: Equity Dividend Cash Settlement Amount Calculation
What is being released
Function added to calculate the Dividend Cash Settlement Amount for Equities as defined in the SES1 legal document.
Review Directions
In the Textual Browser, review func DividendCashSettlementAmount
.
2.36.1
CDM Model: Collateral Eligibility Schedules
What is being released
Further changes to Eligible Collateral model focusing on defining the issuer and instrument type.
Review Directions
In the Textual Browser, review the following:
- types:
CollateralIssuerTypeClassification
andCollateralProductType
. CollateralIssuerTypeClassification
related enums:IssuerTypeClassificationEnum
,QuasiGovernmentIssuerTypeClassificationEnum
,RegionalGovernmentIssuerTypeClassificationEnum
andSupraNationalIssuerTypeClassificationEnum
.CollateralProductType
related enums:CollateralProductTypeEnum
,SecurityTypeEnum
,BondTypeEnum
andEquityTypeEnum
.
2.36.0
Namespaces: Initial roll-out (Base Package)
What is being released
The Model is being refactored into namespaces to make it more modular. This will enable the users of CDM to import only
the part of the model they are interested in.
This refactoring is structural ONLY, and does not change the functionality of the Model in any way.
This refactor is the first of many incremental changes that will transform the CDM into hierarchical namespace tree. The first refactor is
for the base.cdm.* package.
This package contain basic components used across the CDM for date, time, math and also static data (party, asset, identifier).
Review Directions
In the CDM Portal, navigate to the Downloads tile, review the generated Java source to see the new cdm.base.* package.
2.35.6
CDM Model: Collateral Eligibility Schedules
What is being released
Further changes to the collateral eligibility schedules following feedback from the Working Group.
Review Directions
In the Textual Browser, review the following:
- types:
EligibleCollateral
andCollateralIssueInformation
. - enums:
IssuerTypeClassificationEnum
andProductTypeEnum
.
CDM Model: Inception Function
What is being released
CDM function to create the Inception Business Event.
Annotations to help identify the usages of CDM functions.
Review Directions
In the Textual Browser, review the following:
- func:
Inception
2.35.4
Code Generation: TypeScript
What is being released
Added a new TypeScript CDM Distribution in CDM Portal.
Review Directions
In Portal, navigate to the downloads page. You should see the new TypeScript download tile.
2.35.3
Infrastructure: Test Configuration
What is being released
Added configuration to run ISDA Create
integration tests in Rosetta Core.
Review Directions
In the Rosetta Core, open ingestion panel and run integration tests. ISDA Create samples will now be included.
2.35.0
CDM Model: Price Model Refactor Preparation
What is being released
As preparation for the upcoming model price work, refactor Contract
and Execution
to represent product, quantity and price consistently, which also enables a significant consolidation and simplification of synonyms.
Contract
and Execution
refactored to introduce type TradableProduct
which groups together Product
, QuantityNotation
and PriceNotation
, and remove the following deprecated types and attributes:
- Removed type
ExecutionPrice
and related attributesContract.executionPrice
andExecution.price
. - Removed type
ExecutionQuantity
and related attributesContract.contractualQuantity
andExecution.executionQuantity
. - Removed attributes
Contract.contractualProduct
andExecution.product
. - Added
Contract
data ruleContractualProductExists
.
Review Directions
In the Textual Browser, review type TradableProduct
.
2.34.2
CDM Model: CSA Initial Margin 2018 (Paragraph 3) Calculations
What is being released
Added calculations related to CSA Initial Margin 2018 documents, paragraph 3. These functions are still under active development and have been released so they can be more easily shared with a wider audience.
Review Directions
In the Textual Browser, review the following functions:
PostedCreditSupportAmount_IM
CreditSupportAmount_IM
DeliveryAmount_IM
ReturnAmount_IM
2.34.1
CDM Model: AllocationBreakdown and DividendDateReferenceEnum
What is being released
Added new enum options for
DividendDateReferenceEnum
:CumulativeEquityExDivBeforeReset
CumulativeEquityPaidBeforeReset
CumulativeEquityPaidInclReset
CumulativeLiborPaid
renamed asCumulativeInterestPaid
, including for ExDiv type.CumulativeInterestPaidInclReset
CumulativeInterestPaidBeforeReset
UnwindOrEquityExDiv
UnwindOrEquityPaid
UnwindOrInterestExDiv
UnwindOrInterestPaid
UnwindExDiv
UnwindPaid
Updated
AllocationBreakdown
to have a quantity of typeQuantityNotation
wherease previously it wasNonNegativeQuantity
Added additional details to
AllocationBreakdown
including account, collateral and allocationTradeId in order to ensure that AllocationBreakdown is more consistent with its FpML specification - https://www.fpml.org/spec/fpml-5-10-5-rec-1/html/confirmation/schemaDocumentation/schemas/fpml-doc-5-10_xsd/complexTypes/Allocations/allocation.html
Review Directions
In the Textual Browser, review the following:
AllocationBreakdown
DividendDateReferenceEnum
Model Optimisation: Clearing Instructions
What is being released
- The
ClearingInstruction
now has a reference to the alpha contract that is being cleared. - Folded
WorkflowStepInstruction
andBusinessEventInstruction
into new typeInstruction
as they served the same purpose.
Review Directions
In the Textual Browser, review the following:
ClearingInstruction
Instruction
Model Optimisation: Primitive Event lineage
What is being released
Lineage in the CDM has been rationalised for PrimitiveEvent
. Each event has been updated to have a reference
to the before
state allowing the events to be chained together.
The following states are now annotated with key
allowing them to be used as references.
ContractState
ExecutionState
Trade
The following states are now annotated with metadata reference
allowing them to be used as references.
ExecutionPrimitive
ContractFormationPrimitive
AllocationPrimitive
ExercisePrimitive
InceptionPrimitive
QuantityChangePrimitive
ResetPrimitive
TermsChangePrimitive
Review Directions
In the Textual Browser, review the following the above types.
Repo Model: Open Repo Handling
What is being released
Following initial workshop with ICMA focusing on the open repo use-case, the CDM has been updated to handle the Call
feature of open repos, using the same callable/extendible provision component as for Swaps.
The CallableProvision
and ExtendibleProvision
have been factored into a common OptionProvision
component, existing FpML synonyms
have been updated and the corresponding Call
component in FpML for open repo has been mapped.
Review Directions
In the Textual / Graphical Browser, see: EconomicTerms
> OptionProvision
.
In the Ingestion Panel, see Product > Repo > "repo-ex02-repo-open-fixed-rate"
2.34.0
CDM Model: AllocationBreakdown and DividendDateReferenceEnum
What is being released
Added new enum options for
DividendDateReferenceEnum
:CumulativeEquityExDivBeforeReset
CumulativeEquityPaidBeforeReset
CumulativeEquityPaidInclReset
CumulativeLiborPaid
renamed asCumulativeInterestPaid
, including for ExDiv type.CumulativeInterestPaidInclReset
CumulativeInterestPaidBeforeReset
UnwindOrEquityExDiv
UnwindOrEquityPaid
UnwindOrInterestExDiv
UnwindOrInterestPaid
UnwindExDiv
UnwindPaid
Updated
AllocationBreakdown
to have a quantity of typeQuantityNotation
wherease previously it wasNonNegativeQuantity
Added additional details to
AllocationBreakdown
including account, collateral and allocationTradeId in order to ensure that AllocationBreakdown is more consistent with its FpML specification - https://www.fpml.org/spec/fpml-5-10-5-rec-1/html/confirmation/schemaDocumentation/schemas/fpml-doc-5-10_xsd/complexTypes/Allocations/allocation.html
Review Directions
In the Textual Browser, review the following:
AllocationBreakdown
DividendDateReferenceEnum
Model Optimisation: Clearing Instructions
What is being released
- The
ClearingInstruction
now has a reference to the alpha contract that is being cleared. - Folded
WorkflowStepInstruction
andBusinessEventInstruction
into new typeInstruction
as they served the same purpose.
Review Directions
In the Textual Browser, review the following:
ClearingInstruction
Instruction
Model Optimisation: Primitive Event lineage
What is being released
Lineage in the CDM has been rationalised for PrimitiveEvent
. Each event has been updated to have a reference
to the before
state allowing the events to be chained together.
The following states are now annotated with key
allowing them to be used as references.
ContractState
ExecutionState
Trade
The following states are now annotated with metadata reference
allowing them to be used as references.
ExecutionPrimitive
ContractFormationPrimitive
AllocationPrimitive
ExercisePrimitive
InceptionPrimitive
QuantityChangePrimitive
ResetPrimitive
TermsChangePrimitive
Review Directions
In the Textual Browser, review the following the above types.
Repo Model: Open Repo Handling
What is being released
Following initial workshop with ICMA focusing on the open repo use-case, the CDM has been updated to handle the Call
feature of open repos, using the same callable/extendible provision component as for Swaps.
The CallableProvision
and ExtendibleProvision
have been factored into a common OptionProvision
component, existing FpML synonyms
have been updated and the corresponding Call
component in FpML for open repo has been mapped.
Review Directions
In the Textual / Graphical Browser, see: EconomicTerms
> OptionProvision
.
In the Ingestion Panel, see Product > Repo > "repo-ex02-repo-open-fixed-rate"
2.33.0
Model Optimisation: Exchange Rate and Quantity Data Rule
What is being released
- Add data rule for FX products that checks triangulation between
ExchangeRate
and the payoutQuantity
for each currency. - A number of DSL fixes and stability improvements relating to code generation of conditional logic.
Review Directions
In the Textual Browser, review the following:
- Functions:
PriceQuantityTriangulation
,ExchangeRateQuantityTriangulation
- Data rules:
ContractPriceQuantityTriangulation
,ExecutionPriceQuantityTriangulation
In the Ingestion Panel, try one of the following samples:
products > fx > fx-ex01-fx-spot.xml
products > fx > fx-ex02-spot-cross-w-side-rates.xml
products > fx > fx-ex03-fx-fwd.xml
products > fx > fx-ex04-fx-fwd-w-settlement.xml
products > fx > fx-ex05-fx-fwd-w-ssi.xml
products > fx > fx-ex06-fx-fwd-w-splits.xml
products > fx > fx-ex07-non-deliverable-forward.xml
products > fx > fx-ex28-non-deliverable-w-disruption.xml
Model Optimisation: Increase readability of condition names and simply the path expressions
What is being released
- The names of all of the type conditions in the CDM have been renamed to increase readability.
- The paths defined in the conditions no longer need to start with the type of the condition. This greatly increases the readability of the conditions.
Review Directions
Navigate to the
Frequency
type and see the condition namedPositivePeriodMultiplier
. This was previously namedFrequency_periodMultiplier
.See that the path that the path is simpliefied:
- Before:
if Frequency -> period = PeriodExtendedEnum -> T then Frequency -> periodMultiplier = 1
- After:
if period = PeriodExtendedEnum -> T then periodMultiplier = 1
- Before:
All conditions throughout the CDM have been updatged in similar ways.
2.32.1
CDM Model: Collateral Eligibility Schedules
What is being released
Further changes to the collateral eligibility schedules following a workshop with Acadia.
- New enum values added to
CollateralIssuerTypeClassification
andCollateralType
, and new enumCollateralSubType
added. EligibleCollateral
attribute of typeUnderlyingCurrency
removed and replaced bydenominatedCurrency
.- Existing enum
ProductIdSourceEnum
valueICAD
has moved toTaxonomySourceEnum
. MultipleCreditNotations
has attributesmismatchResolution
andreferenceAgency
added to specify how to resolve mismatches between ratings.
The type EligibleCollateral
now has 5 attributes:
issueInformation CollateralIssueInformation (1..1) denominatedCurrency string (1..*) [metadata scheme] maturityRange MaturityRange (1..1) agencyRating AgencyRating (0..1) valuationPercentage CollateralValuationPercentage (1..1)
Review Directions
In the Textual Browser, review the following:
- types:
EligibleCollateral
,MultipleCreditNotations
,CollateralIssueInformation
,CollateralType
,AgencyRating
andCollateralValuationPercentage
. - enums:
CollateralIssuerTypeClassificationEnum
,CollateralTypeEnum
andCollateralSubTypeEnum
.
2.32.0
Infrastructure: Projection
What is being released
Changes to projection infrastructure following recent changes to allow data rules to call functions.
2.31.1
Model Optimisation: Price Refactor for Equity Swaps
What is being released
Following the recent price refactor, the synonyms, data rules and functions for Equity Swaps have been migrated to the new product-agnostic, generic price model.
Remove synonyms from deprecated model attributes:
Contract.contractualProduct.economicTerms.payout.equityPayout.priceReturnTerms.initialPrice
Execution.product.contractualProduct.economicTerms.payout.equityPayout.priceReturnTerms.initialPrice
Add synonyms to refactored model attributes:
Contract.contractualPrice.priceNotation.price.*
Execution.price.priceNotation.price.*
Remove deprecated attribute PriceReturnTerms.initialPrice
.
Add data rule that checks triangulation between Price
, Quantity
(no. of units) and Quantity
(notional) that applies to any applicable Contract
or Execution
(not just Equity Swaps).
Review Directions
In the Textual Browser, review the following:
- types:
PriceReturnTerms
,PriceNotation
- data rules:
Contract_cashPrice_quantity_noOfUnits_triangulation
,Execution_cashPrice_quantity_noOfUnits_triangulation
- functions:
CashPriceQuantityNoOfUnitsTriangulation
In the Ingestion Panel, try one of the following samples:
products > equity > eqs-ex01-single-underlyer-execution-long-form.xml
products > equity > eqs-ex10-short-form-interestLeg-driving-schedule-dates.xml
Event Model: Workflow Step Refactor for Clearing
What is being released
The Event model in the CDM has been adjusted to cater for the clearing usecase. The concept of WorkflowStep
has been introduced to model a step in a workflow that can either be in a state of propose
, accept
or reject
.
The WorkflowEvent
has been removed from the model and its properties have been re-organised into WorkflowStep
and BusinessEvent
.
BusinessEvent
now contains eventDate
, effectiveDate
, intent
and eventQualification
.
Updated the definitions for BusinessEvent
and PrimitiveEvent
.
All Event Qualifications now function on the BusinessEvent
rather then the WorkflowEvent
.
Introduced BusinessEventInstruction
which defines the instructions to execute a CDM function to contruct a BusinessEvent
.
The BusinessEventInstruction
can be one-of
ClearingInstruction
or AllocationInstructions
with the intention to add further types.
ContractFormation
can be created without a before state to allow fully formed Contract
created without an Execution
.
Review Directions
In the Textual Browser, review the following:
- types:
WorkflowStep
,BusinessEvent
,PrimitiveEvent
,BusinessEventInstruction
andClearingInstruction
.
2.22.8
CDM Model: Collateral Eligibility Schedules
What is being released
CDM model representation of data relevant for collateral eligibility schedules has been enhanced. This is found under EligibleCollateral
.
There are 6 key attributes relevant for this feature of collateral documentation:
- issueInformation
CollateralIssueInformation
- underlyingCurrency
UnderlyingCurrency
- maturityRange
MaturityRange
- issuerAgencyRating
IssuerAgencyRating
- issueAgencyRating
IssueAgencyRating
- haircut
CollateralHaircut
For reference purposes, the previous model have has been renamed to EligibleCollateralFpMLMapped
. This will be removed once the new model is complete.
Review Directions
- Review enhancements to
EligibleCollateral
and associated types and enums. - Review new values in enum ProductIdSourceEnum (added under "//added new").
- Review additional text to reference
EligibleCollateralFpMLMapped
.
2.22.5
CDM Model: Collateral Eligibility Schedules
What is being released
CDM model representation of data relevant for collateral eligibility schedules has been enhanced. This is found under EligibleCollateral
.
There are 6 key attributes relevant for this feature of collateral documentation:
- issueInformation
CollateralIssueInformation
- underlyingCurrency
UnderlyingCurrency
- maturityRange
MaturityRange
- issuerAgencyRating
IssuerAgencyRating
- issueAgencyRating
IssueAgencyRating
- haircut
CollateralHaircut
For reference purposes, the previous model have has been renamed to EligibleCollateralFpMLMapped
. This will be removed once the new model is complete.
Review Directions
- Review enhancements to
EligibleCollateral
and associated types and enums. - Review new values in enum ProductIdSourceEnum (added under "//added new").
- Review additional text to reference
EligibleCollateralFpMLMapped
.
2.22.4
CDM Code Generation: Scala
What is being released
New code generator that projects the CDM into Scala.
- Scala code generated for all CDM types and enums.
- JSON serializer / deserializer provided in Scala distribution.
- Interoperability with other generated CDM code - E.g. serialized CDM Scala artefacts are identical to serialized Java CDM artefacts.
- Injected into CDM build pipeline so all new CDM releases will include Scala code artefacts.
- Scala download tile added to the ISDA CDM Portal Downloads page.
Review Directions
- In the CDM Portal, go to Downloads section and download Scala distribution.
2.22.3
Model Optimisation: Quantity Refactor - Add Functions To Resolve Payout Quantity
What is being released
Following on from the recent migration to a product-agnostic quantity model, functions have now been added to resolve the payout quantity.
- func
ResolvePayoutQuantity
: for a givenResolvablePayoutQuantity
, the function resolves and returns the corresponding quantity from theQuantityNotations
by matching onAssetIdentifier
. - func
ResolveContractualProduct
: for a givenContractualProduct
, the function finds allResolvablePayoutQuantity
instances, then for each instance, resolves the quantity, populates thequantity
attribute onResolvablePayoutQuantity
, and finally returns the updatedContractualProduct
.
Note that only the function inputs and outputs are specified natively in the CDM, with the implementation in Java. Depending on WG feedback, further work could be undertaken to add the required syntax to support writing the implementation natively in the CDM.
Review Directions
- In the Textual Browser, review function specifications
ResolvePayoutQuantity
andResolveContractualProduct
. - In the downloaded CDM distributable, review corresponding Java implementations
ResolvePayoutQuantityImpl.java
andResolveContractualProductImpl.java
.
2.22.0
Rosetta Syntax Upgrade: Migrate isProduct, isEvent and alias to use the func syntax
What is being released
As part of on-going improvements, the Rosetta syntax has been upgraded to consolidate language features. This work aims to simplify the syntax needed when adding and editing the CDM.
The Event Qualification logic is now expressed using the
func
syntax.
TheisEvent
has now changed to use the standardfunc
syntax. To differentiate this kind of function from others, it is annotated with[qualification event]
and must always result in aboolean
.The Product Qualification logic is now expressed using the
func
syntax.
TheisProduct
has now changed to use the standardfunc
syntax. To differentiate this kind of function from others, it is annotated with[qualification product]
and must always result in aboolean
.The
alias
syntax was previously used in two different ways, within functions and as a top-level element designed to be used in theisEvent
andisProduct
logic. The latter has now been expressed as afunc
.
Review Directions
In the Textual Browser, review func InterestRate_IRSwap_Basis
for product qualification and Allocation
for event qualification.
The change for 'Allocation' expresses the same logic but defines the input and output types consistent with other parts of the model:
Previous syntax:
isEvent Allocation <"..."> WorkflowEvent -> businessEvent -> primitives count = 1 and WorkflowEvent -> businessEvent -> primitives -> allocation exists
Updated syntax:
func Allocation: <"..."> [qualification event] inputs: workflowEvent WorkflowEvent(1..1) output: is_event boolean (1..1) assign-output is_event: workflowEvent -> businessEvent -> primitives count = 1 and workflowEvent -> businessEvent -> primitives -> allocation exists
The change for InterestRate_IRSwap_Basis
expresses the same logic but defines the input and output types consistent with other parts of the model:
Previous syntax:
isProduct InterestRate_IRSwap_Basis [synonym ISDA_Taxonomy_v1 value "InterestRate_IRSwap_Basis"] EconomicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate count = 2 and EconomicTerms -> payout -> interestRatePayout -> rateSpecification -> fixedRate is absent and EconomicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate is absent and EconomicTerms -> payout -> interestRatePayout -> crossCurrencyTerms -> principalExchanges is absent and EconomicTerms -> payout -> optionPayout is absent
Updated syntax:
func InterestRate_IRSwap_Basis: [qualification product] inputs: economicTerms EconomicTerms (1..1) output: is_product boolean (1..1) [synonym ISDA_Taxonomy_v1 value "InterestRate_IRSwap_Basis"] assign-output is_product: economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate count = 2 and economicTerms -> payout -> interestRatePayout -> rateSpecification -> fixedRate is absent and economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate is absent and economicTerms -> payout -> interestRatePayout -> crossCurrencyTerms -> principalExchanges is absent and economicTerms -> payout -> optionPayout is absent
The change for forwardFX
alias also expresses the same logic but defines the input and output types consistent with other parts of the model:
Previous syntax:
alias forwardFX ForwardPayout -> underlier -> underlyingProduct -> foreignExchange
Updated syntax:
func ForwardFX: inputs: forwardPayout ForwardPayout(1..1) output: result ForeignExchange (1..1) assign-output result: forwardPayout -> underlier -> underlyingProduct -> foreignExchange
2.21.7
Model Optimisation: Quantity Rector - Remove Deprecated Types and Attributes
What is being released
- Remove deprecated attributes
Quantity.currency
as it now defined byResolvablePayoutQuantity.assetIdentifier.currency
as part of the new generic quantity model. - Refactor type
Underlier
so it contains attributeunderlyingProduct
, and remove deprecated typesSingleUnderlier
andBasket
.
Review Directions
In the Textual Browser, review types Quantity
, ResolvablePayoutQuantity
and Underlier
.
2.21.6
Model Optimisation: Remove Deprecated Type ContractualQuantity
What is being released
Following the recent quantity refactor, the synonyms and data rules for all products have been migrated to the new product-agnostic, generic quantity model.
The unused ContractualQuantity
type has been deleted as well as some associated sub-attributes. The quantityBeforeQuantityChange
and quantityAfterQuantityChange
logic has been reduced to use a single quantity attribute as found in the top-level QuantityNotation
object. This means that the logic for the QuantityChangePrimitive
is now completely transparent and contains no product-specific logic.
Review Directions
In the Textual Browser, search for quantityBeforeQuantityChange
and quantityAfterQuantityChange
aliases which have been compressed into one product-agnostic statement.
Model Optimisation: Quantity Refactor for CD Options, Swaptions and Bond Options
What is being released
Following the recent quantity refactor, migrate synonyms to the new model for products CD Options, Swaptions and Bond Options.
Remove synonyms from deprecated model attributes:
Contract.contractualProduct.economicTerms.payout.*.quantity
Execution.product.contractualProduct.economicTerms.payout.*.quantity
Add synonyms to refactored model attributes:
Contract.contractualProduct.economicTerms.payout.*.payoutQuantity.assetIdentifier.*
Contract.executionQuantity.quantityNotation.*
Execution.product.contractualProduct.economicTerms.payout.*.payoutQuantity.assetIdentifier.*
Execution.executionQuantity.quantityNotation.*
Review Directions
In the Ingestion Panel, try one of the following samples:
- products > credit > cd-swaption-usi.xml
- products > credit > cd-swaption-uti.xml
- products > credit > cdx-index-option-uti.xml
- products > credit > itraxx-index-option-uti.xml
- products > rates > bond-option-uti.xml
- bundles > transfer-physical-exercise-bundle.xml
2.21.5
Root Type annotation
What is being released
A new annotation of "rootType" that will be used to drive behaviour of ingestion, validation, projection etc
Review Directions
A few initial classes have already been annotated as root types - WorkflowEvent, Contract, LegalAgreement
2.21.3
Model Optimisation: Quantity Refactor for Resetting Xccy Swaps, Repo and BRL CDI Swaps
What is being released
Following the recent quantity refactor, migrate synonyms to the new model for products Resetting Xccy Swaps, Repo and BRL CDI Swaps.
Remove synonyms from deprecated model attributes:
Contract.contractualProduct.economicTerms.payout.*.quantity
Execution.product.contractualProduct.economicTerms.payout.*.quantity
Add synonyms to refactored model attributes:
Contract.contractualProduct.economicTerms.payout.*.payoutQuantity.assetIdentifier.*
Contract.executionQuantity.quantityNotation.*
Execution.product.contractualProduct.economicTerms.payout.*.payoutQuantity.assetIdentifier.*
Execution.executionQuantity.quantityNotation.*
Remove deprecated model types, attributes and aliases: ContractualQuantity.quantity
, ContractualQuantity.notionalSchedule
, ContractualQuantity.fxLinkedNotional
, ContractualQuantity.futureValueNotional
, NotionalSchedule
, NotionalStepRule
, StepRelativeToEnum
, NonNegativeAmountSchedule
, NonNegativeSchedule
, quantityAfterQuantityChange
and quantityBeforeQuantityChange
.
Review Directions
In the Ingestion Panel, try one of the following samples:
Resetting Xccy Swaps:
products > rates > ird-ex25-fxnotional-swap-usi-uti.xml
products > rates > cdm-xccy-swap-before-usi-uti.xml
products > rates > cdm-xccy-swap-after-usi-uti.xml
Repo:
products > repo > repo-ex01-repo-fixed-rate.xml
products > repo > repo-ex02-repo-open-fixed-rate.xml
products > repo > repo-ex03-repo-fixed-rate.xml
products > repo > repo-ex04-repo-floating-rate.xml
products > repo > repo-ex05-repo-fixed-rate.xml
products > repo > repo-ex06-repo-fixed-rate.xml
events > inception-repo.xml
BRL CDI Swaps:
products > rates > ird-ex33-BRL-CDI-swap-versioned.xml
cme-cleared-confirm-1-17 > IRD_EX33_BRL_CDI_SWAP.xml
2.21.1
Infrastructure changes: Ingestion Error Handler
What is being released
Infrastructure changes to add more error details for ingestion.
2.21.0
Model Optimisation: Quantity Refactor for FRAs
What is being released
Following the recent quantity refactor, migrate FRA producs synonyms to the new model.
Migrate synonyms from:
Contract.contractualProduct.economicTerms.payout.*.quantity
Execution.product.contractualProduct.economicTerms.payout.*.quantity
To:
Contract.contractualProduct.economicTerms.payout.*.payoutQuantity.assetIdentifier.*
andContract.executionQuantity.quantityNotation.*
Execution.product.contractualProduct.economicTerms.payout.*.payoutQuantity.assetIdentifier.*
Execution.executionQuantity.quantityNotation.*
Review Directions
In the Ingestion Panel, try one of the following samples:
- products > rates >
ird-ex08-fra.xml
andird-ex08-fra-no-discounting.xml
- products > equity >
eqs-ex01-single-underlyer-execution-long-form.xml
andeqs-ex10-short-form-interestLeg-driving-schedule-dates.xml
- cme-cleared-confirm-1-17 >
FRA_New_Trade.xml
andUSD_FRA_ClearingConfirm.xml
- cme-submission-irs-1-0 >
USD_FRA_Submission.xml
2.20.9
Infrastructure / Regression Test Improvements
What is being released
Regression test changes to allow more granular model validation test assertions.
Instance Viewer Changes
What is being released
- Fixed bug where some edges where self referencing so they would leave empty arrows on the nodes in the graph.
- Switched to a unified approach to word wrapping inside each node in the graph.
- Implemented a change that will pass the node ancestry on to the UI thereby allowing us to populate edges with parent access fields such as ‘before’ and ‘after’.
2.20.8
CDM Instance Viewer and Projection Tiles
What is being released
CDM Instance Viewer and Projection Tiles are now available in the CDM Portal.
The CDM Instance Viewer Tile visually represents CDM Event and CDM Event Sequences. Users drag-and-drop CDM JSON documents in to the UI, which generates the corresponding visual representation. The visualisation displays relationships between Events in a sequence and key CDM objects within each Event.
Projection Tile translates CDM Documents into FpML 5.10. Users again drag-and-drop CDM JSON documents in to the UI, which generates the FpML document.
Review Directions
Users are invited to navigate to the CDM Portal where the above Tiles are available.
2.20.7
Clear and Terminate Functions
What is being released
Added
Terminate
function spec to the CDM. TheTerminate
function takes aContract
as an input and return aContract
with a0
quantity
an the closed state enum set toTerminated
.Added a
Clear
function to replicate the agency clear model that will create anEvent
with 5 primitives:QuantityChange
to terminate the alpha, anExecution
andContractFormation
for the creation of the beta and anExecution
andContractFormation
for the creation of the gamma. This is fully implemented in the CDM and code generated inJava
.
Review Directions
In the Textual Browser, see:
Terminate
function defClear
function def
In the Instance Viewer, open the IRS CLEARING
example and see the visualisation of the execution of the Clear
function.
2.20.4
ISDA Create Ingestion Mappings
What is being released
- Added
ISDA Create
synonym mappings forLegalAgreementBase.partyInformation
and conditional mapping forcsdInitialMargin2016EnglishLaw
,csaInitialMargin2016JapaneseLaw
andcsaInitialMargin2016NewYorkLaw
attributes ensure only 2016 agreements are mapped (e.g. not 2018 agreements).
Review Directions
In the Ingestion Panel, see:
- ISDA-Create > any file, following ingestion see that
partyInformation
andcsdInitialMargin2016EnglishLaw
/csaInitialMargin2016JapaneseLaw
/csaInitialMargin2016NewYorkLaw
are now mapped correctly.
2.20.3
ISDA Create Ingestion Mappings
What is being released
- Further updates related to
ISDA Create
document structure. - Added
ISDA Create
synonyms forLegalAgreement.identifier
andCsa.documentationIdentification.masterAgreement.masterAgreementDate
.
Review Directions
In the Ingestion Panel, see:
- ISDA-Create > any file, following ingestion see that
identifier
andmasterAgreementDate
are now mapped.
2.20.2
ISDA Create Document Structure
What is being released
- Update
ISDA Create
synonyms and ingestion to use their latest document structure. - Bug fix for
ISDA Create
synonyms mapping ofMinimumTransferAmount
andThreshold
.
Review Directions
In the Ingestion Panel, see:
- ISDA-Create > any file, and see that the new document structure is now mapped into the CDM.
- ISDA-Create > any file, following ingestion see that
MinimumTransferAmount
andThreshold
are now correctly mapped.
2.20.1
ISDA Create Document Structure
What is being released
- Bug fix for
ISDA Create
synonyms mapping ofMinimumTransferAmount
andThreshold
.
Review Directions
In the Ingestion Panel, see:
- ISDA-Create > any file, following ingestion see that
MinimumTransferAmount
andThreshold
are now correctly mapped.
2.19.2
ISDA Create Projection
What is being released
- Bug Fix - small bug related to the Projection mapping of CDM type
CustodyArrangements
forCsaInitialMargin2016NewYorkLaw
documents.
Review Directions
In the Projection Panel in Rosetta Core, see:
- Drag and drop any ISDA Create Initial Margin 2016 NY Law CDM document and will now be projected into JSON.
2.19.1
ISDA Create Ingestion
What is being released
ISDA_Create_1_0
synonyms added to increase the Ingestion mapping coverage of CDM typesMinimumTransferAmount
,Threshold
andPartyInformation
.
Review Directions
In the Ingestion Panel, see:
- ISDA-Create > any file, and see that the
MinimumTransferAmount
,Threshold
andPartyInformation
fields are now mapped.
ISDA Create Projection
What is being released
- Projection mapping coverage added for CDM types
MinimumTransferAmount
,Threshold
PartyInformation
andCsaInitialMargin2016NewYorkLaw
.
Review Directions
In the Projection Panel, see:
- Drag and drop any ISDA Create Initial Margin 2016 NY Law CDM document and will now be projected into JSON.
2.18.0
Quantity and Price Refactoring - Initial Use Case: FX
What is being released
This is a follow-on from the quantity refactoring stream, which is now supplemented by a refactoring of the price concept too. In essence both the quantity and price are abstracted away from the contractual product definition, and positioned alongside it in either the contract and execution.
The refactoring is driven from the initial use case of representing FX products, starting with simple FX (spot and forward).
The changes aim at introducing the new price concept as well as furthering the clean-up of the quantity concept, following feedbacks received in the WG:
- Introducing the
PriceNotation
type, similar toQuantityNotation
, which is a generic type designed to capture different styles of prices. At this point only theCashPrice
andExchangeRate
price styles have been represented, with a view to augment that list over time. - Introducing the
AssetIdentifier
type, which is both used inQuantityNotation
andPriceNotation
to uniquely identify the asset being quantified or priced. - Removing the
QuantityTypeEnum
andPriceTypeEnum
types and correspondingquantityNotationTag
attribute, which are now redundant since the type can be inferred from theassetIdentifier
attribute. - Mapping of
assetIdentifier
attribute for currency and equity types, both outside the product (in theQuantityNotation
) and inside the product (in theResolvablePayoutQuantity
). This allows, for instance, to uniquely identify where to position quantities in the legs of a XC Swap or in the underlyer of an Equity Swap. - Mapping of
exchangeRate
attribute in thePriceNotation
object for (simple) FX products. The price attributes have now been extracted away from the FX product definition. - Mapping of options premium and other cash payment components as part of the
cashPrice
for contractual products. - Positioning of the
price
andcontractualPrice
attributes under theExecution
/Contract
objects, and unification of theprice
attribute in the former for both cash and contractual products, with the specialisation handled by thePriceNotation
. - Plus some clean-up related to those changes.
This is only an initial implementation of the price refactoring and further work will be required to solidify the implementation for simple FX products scope first, then tackle more complex FX product (like options), and then move on to other product types.
Review Directions
In the textual Browser in the CDM Portal, see:
QuantityNotation
andPriceNotation
types and their use of theassetIdentifier
attributeContract
now shows all threecontractualProduct
,contractualQuantity
andcontractualPrice
positioned side by side.Execution
shows theprice
andproduct
attributes, generically across product types. Note that thequantity
andexecutionQuantity
still need to be unified.
In the Ingestion Panel, see:
- Products > Rates > any XC Swap, and see that the currency has been kept as
assetIdentifier
as part of the quantity at the individual leg level - Products > Equity, and see that the asset identifier is now positioned in the
contractualQuantity
- Products > Rates > any Swaption, and see that the premium is now positioned as part of the
contractualPrice
.
Further synonym syntax consistency - hint, meta and mapper
- Following restructuring of the synonym syntax to use quoted elements for both path and value, other synonym components such as hint, meta and mapper have been migrated to be quoted for consistency.
Review Directions
- All synonyms now have consistent syntax. An example of the change is in the synonyms in the type
BusinessEvent
.
2.17.1
What is being released
- Infrastructure change to support ingestion of
ISDA Create
in Rosetta Core - Bug fix of mapped internal paths for ingested JSON files.
2.16.0
Addition of WorkflowEventState and new ClearedTrade event qualification
What is being released
The isEvent ClearedTrade
definition has been update as part of the Clearing process in the CDM. It is now defined by the termination of a contract (alpha) and an execution and contract formation of the beta and gamma with a party role of ClearingOrganisation
.
The new WorkflowEventState
type is where the status of the clearing process will be held (i.e. Accepted, Rejected). The type EventWorkflow
has been renamed to WorkflowEventState
so that it is not confused with the EventWorkflow
type.
Review direction
Search for isEvent ClearedTrade
to see the definition of ClearedTrade
.
Navigate to WorkflowEvent
and see the last attribute to see the usage of WorkflowEventState
.
2.15.0
CDM to ISDA Create Projection
What is being released
Infrastructure work to support the projection from CDM into ISDA Create JSON documents. Initial projection service implementation and a simple mapping class support the projection of 'LegalAgreement
CDM objects for English Law. Further mapping classes will be added soon.
Bug Fix This is a fix that will prevent incomplete sequence sample files from being generated. These files are generated for use within Rosetta Core Instance Viewer for seeding the visualisation with sample data.
Review direction
The projection functionality will be made available in Rosetta Core, and linked from CDM Portal, where users can drag and drop CDM JSON files in, which will be projected into ISDA Create documents and displayed as JSON.
2.14.1
Introduce the concept of Workflow Event
What is being released
WorkflowEvent
is a higher-level concept on top of BusinessEvent
(and contains it), to be used by implementors to build their own workflow rule-book that eventually leads to a state-transition (as expressed in the BusinessEvent
).
- Renamed the type
Event
toWorkflowEvent
- Positioned the
BusinessEvent
type to be an attribute of the newWorkflowEvent
- Renamed the
Rosetta_Workbench
synonym toWorkflow_Event
Event Sequence Sample Testing
event sequence sample files are located in the CDM codebse and used to generate visualisations in CDM Portal. These files will now be automatically tested to ensure that they are valid sueqences at the CDM Portal build time. This will ensure that they will allways be compatible with any model changes that are made.
Review direction
Visit the ISDA CDM Portal and navigatge to WorkflowEvent`.
2.13.3
CDM Portal - Introductory Video
What is being released
As part of on-going improvement, visual material is added to facilitate understanding of ISDA CDM and its supporting infrastructure. In this release an introductory video is added to the Home Page of the CDM Portal that explains the main features in the ISDA CDM and how to make use of them.
Additionally, the DerivHack 2019 Tile has been removed.
Review direction
Visit the ISDA CDM Portal to find the video on the Home Page.
2.13.2
Syntax Upgrade - Consistency across Synonym syntax
What is being released
As part of on-going improvements, the Rosetta syntax has been upgraded to consolidate language features. This work aims to simplify the syntax needed when contributing to the CDM. This will become increasingly important as the number of CDM contributors increase and as CDM contributions starting coming from a variety of sources.
This is the fifth release in a series of that will cover the scope described in the Rosetta Syntax Upgrade Wiki[1].
In this release, the Synonym syntax used on type
s and enum
s have been consolidated to bring consistency. All Synonym syntax now follow a single set of grammar rules and are represented by a single meta-model (Ecore) for each of code generation. An enumeration of changes below:
- Synonym Values, Synonym Path Values should both be inside double-quotes
" ... "
- All model paths are represented with the arrow syntax
->
. This applies to:- CDM model attribute paths i.e.
Event -> party -> assignedIdentifier
; - Enumeration values i.e.
PartyRoleEnum -> Seller
; - Synonym path values i.e.
[synonym DTCC_11_0 value "OTC_RM" path "Header", "OTC_Matching" path "Body" set when "Header->OTC_RM->Manifest->TradeMsg->TransType" = "Trade”]
- CDM model attribute paths i.e.
For readability, auto-formatting feature was added to the new Syntax such that all CDM files and future contributions will have a consistent style in terms of white space i.e. new-lines, spaces and indentation.
This release also includes the following, related Bug Fix. Support was added to the as-key
keyword such that it can operate on attributes with multiple cardinality. CDM will be updated to make use of this bug fix in the following releases.
Review direction
Make use of the Textual Browser Tile to inspect the new model syntax.
[1] https://github.com/REGnosys/rosetta-dsl/wiki/Rosetta-Syntax-Upgrade
2.12.1
What is being released
- Added new type called BusinessEvent to capture just the collection of Primitive Events.
- Changed the cardinality of BusinessEvent.primative from 1..1 to 1..*.
- Changed the cardinality of all attributes of PrimitiveEvent from 0..* to 0..1 and introduced a one-of constraint.
- Moved all primitive types to their own file for ease of navigating the model files.
- Renamed primitives to have consistent naming convention (e.g. Inception changed to InceptionPrimitive)
- Updated all qualifications to work with the primitives cardinality change.
Review direction
View the BusinessEvent type and PrimitiveEvent type in the CDM Portal to see the changes.
2.11.1
What is being released
Added tiles to the CDM Portal to allow users to directly link to functionality in Rosetta Core. The following links have been added:
- CDM Instance Viewer - drag and drop CDM JSON events which will be displayed visually.
- Projection - drag and drop CDM JSON files which will be projected into FpML 5.10 and displayed as XML.
Review direction
Clicking on either CDM Portal link will log the user into Rosetta Core and open the relevent panel.
2.10.0
CDM to FpML Projection
What is being released
Infrastructure work to support the projection from CDM into FpML 5.10 documents. Initial projection service implementation and mapping classes support the projection of products that qualify as InterestRate_IRSwap_FixedFloat
.
Review direction
The projection functionality will be made available in Rosetta Core, where users can drag and drop CDM JSON files in, which will be projected into FpML 5.10 and displayed as XML.
2.9.1
DerivHack Feedback - Support Assignment of References
What is being released
From Barclays DerivHack 2019 event feedback, users requested the Function Syntax to support assigning references in addition to assigning values. This is necessary when specifying how the Lineage object should be populated, in the Function Syntax’s assign-output
statements.
The Function Syntax now supports the as-key
keyword within the context of an assign-output
statement that effectively communicates to the reader (and to the underlying generated code) that it is the reference that will be assigned and not the value itself.
For example, in the below code snippet, we assign the global key of the Execution Event to the appropriate element on the Lineage object.
assign-output allocationEvent -> lineage -> eventReference: executionEvent as-key
Review direction
In the Textual Browser, see the Execute, Allocate and Settle Functions where examples of where the new keyword is being used. The change has also been affected in the generated java code which can be used by CDM adopters.
2.8.0
Rosetta Syntax Upgrade - Data Types
What is being released
As part of on-going improvements, the Rosetta syntax has been upgraded to consolidate language features. This work aims to simplify the syntax needed when contributing to the CDM. This will become increasingly important as the number of CDM contributors increase and as CDM contributions starting coming from a variety of sources.
This is the fourth release in a series of that will cover the scope described in the Rosetta Syntax Upgrade Wiki[1].
In this release, the representation of data types were upgraded to bring greater readability of data types in the model and greater consistency of syntax between data types and functions.
The new syntax focuses on the essence of a data type definition and moves related extra details into annotations, such as the metadata attributes scheme and reference. These annotations can then be flexibly hidden from view for easier consumption of the model in textual or graphical form (to come in future releases). Technical symbols such as semi-colons and curly-braces were removed to bring further consistency between data types and functions.
Validation logic concerning a data type is now represented directly on the type to more closely associate these model facets. Data Rules, Choice Rules and One Of (rules) are now all represented within the ‘condition’ block on the data type. This eliminates the need to explicitly associate validation rules to data types, which also removes the need for the inconsistent syntax that was in use previous between the Data and Choice Rules.
The new syntax that represents data types is characterised by the type
keyword, moving away from the class
keyword, which can draw erroneous and confusing comparisons to Java classes. The Rosetta Type is different in that Rosetta Types represent data structures and data validation only - no further functionality is allowed on the type.
Review direction
To see the new syntax, make use of the Textual Browser in the CDM Portal. See especially the Interest Rate Payout object (line 8360) which gives a good representation of the changes.
The key
keyword has been moved into an annotation under the type
’s name as it is not critical to the data definition itself. The semi-colons at the end of each attribute has also been eliminated, along with the curly-braces. All validation logic associates with the Interest Rate Payout are now defined directly on the Interest Rate Payout type.
[1] https://github.com/REGnosys/rosetta-dsl/wiki/Rosetta-Syntax-Upgrade)
2.7.3
Event Qualification for Execution and ContractFormation Event Types
As part of the work relating to equity swaps and the refactoring of the Inception event, we are adding associated qualifiers for the recently introduced (Execution and ContractFormation) events, which fully realises the visual representation of the Equity Swap Reset workflow with all nodes and edges labelled correctly.
What is being released
- Execution Qualifier - The qualification of an execution event from the fact that the only component is an execution.
- Contract Formation Qualifier - The qualification of a contractFormation event from the fact that the only component is a contractFormation.
Review direction
- The equity swap in the functions UI will now correctly qualify with the correct event types.
- The new execution qualifier can be found on line 7622 of the textual browser.
- The new contract formation qualifier can be found on line 7625 of the textual browser.
2.6.2
Quantity Refactoring: Credit Products Migrated
As presented in the 30-Jul-2019 CDM WG meeting, the essence of the restructuring is to abstract away the quantity from the contractual product definition, such that a contractual product is defined as a "unit" of that product, similar to how non-contractual products (e.g. securities) work. The actual quantity is handled as part of a separate QuantityNotation
object, while the product uses the ResolvablePayoutQuantity
type to implement the quantity mechanics in the various Payout
legs of the product.
What is being released
Credit products (CDS, CD Index etc.) have been migrated to the new quantity representation.
As part of this release, the quantity referencing mechanism has been augmented with an additional attribute, to distinguish between different assets which quantities are being specified. So ResolvablePayoutQuantity
now uses both Tag
and Asset
as identifiers to build its quantity reference. This is applicable in the XC Swap case, where the currency will be used as the Asset
identifier.
Review direction
In the Ingestion Panel of the CDM Portal:
- Look at Products / Credit and search for keyword
quantity
in the output, to see where respective elements are now positioned.
2.6.1
Quantity Refactoring: Credit Products Migrated
As presented in the 30-Jul-2019 CDM WG meeting, the essence of the restructuring is to abstract away the quantity from the contractual product definition, such that a contractual product is defined as a "unit" of that product, similar to how non-contractual products (e.g. securities) work. The actual quantity is handled as part of a separate QuantityNotation
object, while the product uses the ResolvablePayoutQuantity
type to implement the quantity mechanics in the various Payout
legs of the product.
What is being released
Credit products (CDS, CD Index etc.) have been migrated to the new quantity representation.
As part of this release, the quantity referencing mechanism has been augmented with an additional attribute, to distinguish between different assets which quantities are being specified. So ResolvablePayoutQuantity
now uses both Tag
and Asset
as identifiers to build its quantity reference. This is applicable in the XC Swap case, where the currency will be used as the Asset
identifier.
Review direction
In the Ingestion Panel of the CDM Portal:
- Look at Products / Credit and search for keyword
quantity
in the output, to see where respective elements are now positioned.
2.5.19
What is being released
- Infrastructure and documentation changes
2.5.17
What is being released
- Fix Allocate and Settle sample function implementations
- Add sample functions and test to the ISDA examples distribution
2.5.16
What is being released
- Fix Allocate and Settle sample function implementations
- Add sample functions and test to the ISDA examples distribution
2.5.15
What is being released
- Update DerivHack 2019 Tile to point to CDM version 2.5.11
2.5.14
What is being released
- Add additional resources to CDM Portal
2.5.11
What is being released
- Enable CDM Portal to Rosetta Core link button for all users
2.5.10
What is being released
- New tiles in the CDM Portal to support the up comming Barclays DerivHack 2019 event
2.5.8
What is being released
- Patch: Add support for bulk adding users to CDM Portal and Rosetta Core
- Patch: Fixes to the Equity Reset event model and associated generated code (no data changes)
2.5.4
What is being released
Proposed model changes as part of an on-going effort to augment the product coverage with securities
- Added
Event
parameter toAllocate
andSettle
functions to allow the previous event to be assigned to the output eventLineage
.
Review Directions
- In the CDM Textual Browser review functions
Allocate
andSettle
.
2.5.3
Re-releasing 2.5.2 with updated release notes.
Rosetta Syntax Upgrade
What is being released
As part of on-going improvements, the Rosetta syntax has been upgraded to consolidate language features. This work aims to simplify the syntax needed when adding to, and editing the CDM. This will become increasingly important as the number of CDM contributors increase and as CDM contributions starting coming from a variety of sources.
This is the third release in a series of that will cover the scope described in the Rosetta Syntax Upgrade Wiki[1].
In this release, usability features were added to support contributing to the CDM. Content Assist features make suggestions as you edit the CDM. Validation features check for correct use of types and cardinality of model elements when making model references, which is especially important when specifying Functions.
Generated Java code has also been consolidated such that all Functions generate Java code in the same structure. This makes reuse of the internal meta-model and will make external code generators easier to create and make the generated Java code easier for users to understand.
Review Directions
For the usability features, look out for the announcement of the soon to be released Rosetta Core Community Edition application that will allow users to edit and contribute directly to the CDM.
For the generated Java artefacts: in the CDM Distribution Pack (accessible via the Downloads UI of the Portal), inspect the generated Java code
[1] https://github.com/REGnosys/rosetta-dsl/wiki/Rosetta-Syntax-Upgrade)
Proposed model changes as part of an on-going effort to augment the product coverage with securities
What is being released
- Added sample implementation of existing function
Settle
which focuses on the securities use case.
Review Directions
- In the downloaded CDM Distribution review sample function implementation
SettleImpl.java
andSettleTest.java
.
2.5.2
Rosetta Syntax Upgrade
What is being released
As part of on-going improvements, the Rosetta syntax has been upgraded to consolidate language features. This work aims to simplify the syntax needed when adding to, and editing the CDM. This will become increasingly important as the number of CDM contributors increase and as CDM contributions starting coming from a variety of sources.
This is the third release in a series of that will cover the scope described in the Rosetta Syntax Upgrade Wiki[1].
In this release, usability features were added to support contributing to the CDM. Content Assist features make suggestions as you edit the CDM. Validation features check for correct use of types and cardinality of model elements when making model references, which is especially important when specifying Functions.
Generated Java code has also been consolidated such that all Functions generate Java code in the same structure. This makes reuse of the internal meta-model and will make external code generators easier to create and make the generated Java code easier for users to understand.
Review Directions
For the usability features, look out for the announcement of the soon to be released Rosetta Core Community Edition application that will allow users to edit and contribute directly to the CDM.
For the generated Java artefacts: in the CDM Distribution Pack (accessible via the Downloads UI of the Portal), inspect the generated Java code
[1] https://github.com/REGnosys/rosetta-dsl/wiki/Rosetta-Syntax-Upgrade)
Proposed model changes as part of an on-going effort to augment the product coverage with securities
What is being released
- Added sample implementation of existing function
Settle
which focuses on the securities use case.
Review Directions
- In the downloaded CDM Distribution review sample function implementation
SettleImpl.java
andSettleTest.java
.
2.4.14
What is being released
Proposed model changes as part of an on-going effort to augment the product coverage with securities
- Added sample implementation of existing functions
NewTransferPrimitive
which focuses on the securities use case. - Refactor function spec
Settle
to use new syntax featureassign-output
.
Review direction
- In the CDM Textual Browser review function
Settle
. - In the downloaded CDM Distribution review sample function implementation
NewTransferPrimitiveImpl.java
.
2.4.11
What is being released
Reset Model Improvements - Phase 2
This release implements the proposals to improve the Reset Model such that the Reset Primitive is consistent with other Primitive Events (i.e. that it contains both the “before” and “after” states). The before and after states are represented by the Contract State object, which is to be use to hold a history of reset values to be used in calculations which depend on multiple values. The subsequent cash flow that results from a Reset Event is now captured in a separate Cash Transfer Event.
At this stage, the full history of Resets have not been captured in the Contract State object, however it will do so in a future iteration.
In addition to changes to the data model, new Functions were introduced to specify how CDM users should transition a Contract through a a Reset and Payment Event.
New Functions to specify the Reset Event: Reset
, NewResetPrimitive
, ResolveUpdatedContract
, ResolveEquityContract
.
New Functions to specify the Cash Transfer Event: TransferCash
, NewCashTransferPrimitive
, ResolveCashflow
, EquityCashSettlementAmount
Contract Creation Model Improvements
Additionally in this release, new Functions are added to specify how Executions and Contracts should be created. This reflects the previously approved proposal to split the Inception Primitive into Execution and ContractFormation Primitives and adds support for the Allocation use case.
New Functions to specify the Execution and Contract Formation: Execute
, NewExecutionPrimitive
, FormContract
, NewContractFormationPrimitive
Review direction
Equity Reset Model
To review the above changes, we make use of the Equity Reset use case as context. In the Functions UI, the equity-swap Event Sequence now describes the steps involved in creating an Equity Swap Execution which results in an Equity Swap Contract, then a subsequent Reset and Payment Event.
The visualisation showcases the outputs of each Function as it is executed as well as how the output of one function is used in the inputs to the next. The output JSON represent the results of example implementations of the Functions specified in the CDM and thus the JSON objects will not have satisfied all cardinality and data constraints.
2.4.9
What is being released
Proposed model changes as part of an on-going effort to augment the product coverage with securities
- Added sample implementations of existing functions
Allocate
andNewAllocationPrimitive
which focuses on the securities use case. - On
Execution
, mark the attributeParty
as a reference. This is allows theExecution.party
to be specified as a value (e.g. for a standaloneExecution
instance) or as a reference (e.g. when theExecution
is part of anEvent
, where theExecution.party
can be a reference toEvent.party
). - On
Position
, add attributecashBalance
to allow the cash settlement amounts to be aggregated. - On
Lineage
, add attributetransferReference
so any previous transfers can be conveniently linked.
Review direction
- In the CDM Textual Browser:
- Review classes
Execution
,Position
andLineage
. - Review functions
Allocate
andNewAllocationPrimitive
.
- Review classes
- In the downloaded CDM Distribution, review sample function implementations
AllocateImpl.java
andNewAllocationPrimitiveImpl.java
and corresponding testsAllocateTest.java
.
2.4.7
What is being released
Proposed model changes as part of an on-going effort to augment the product coverage with securities
Added function EvaluatePortfolioState
which takes Portfolio
as an input and calculates the PortfolioState
, including a list of Position
based on the given AggregationParameters
.
Review direction
- In the CDM Textual Browser, review function
EvaluatePortfolioState
. - In the downloaded CDM Distribution, review sample function implementation
EvaluatePortfolioStateImpl.java
and testEvaluatePortfolioStateTest.java
.
2.4.4
What is being released
Proposed model changes related to Confirmation
and Affirmation
classes as part of an on-going effort to augment the product coverage with securities
- Add
lineage
andstatus
attributes. - Fix minimum
Party
andPartyRole
cardinality.
Review direction
In the CDM Textual Browser:
- Review classes
Confirmation
andAffirmation
.
2.4.2
What is being released
Proposed model changes as part of an on-going effort to augment the product coverage with securities
- Add
executionReference
attribute toLineage
class. - Add post-condition to
Settle
function to assert that theexecutionReference
has been set.
Review direction
In the CDM Textual Browser:
- Review class
Lineage
and functionSettle
.
2.4.1
Quantity Refactoring: several IR product types migrated
As presented in the 30-Jul-2019 CDM WG meeting, the essence of the restructuring is to abstract away the quantity from the contractual product definition, such that a contractual product is defined as a "unit" of that product, similar to how non-contractual products (e.g. securities) work. The actual quantity is handled as part of a separate QuantityNotation
object, while the product uses the ResolvablePayoutQuantity
type to implement the quantity mechanics in the various Payout
legs of the product.
What is being released
Following previous (initial) release on Equity Swaps, several Interest Rates product types have been migrated to the new quantity mechanism: Swap (through Swap Stream), Swaption, CapFloor, Xccy Swap and Variable Notional. The Bond Option case has yet to be handled.
For Equity Swaps, a bug where the equity notional amount was not captured in the QuantityNotation
has been fixed.
At the moment the mapping to existing FpML documents is being done "as-is". E.g. where the notional is represented 2x in each leg of a swap , we will have 2 quantityNotation
attributes with the same value. Whereas in a xccy swap, they have different values but are also associated with different currencies. In "native" CDM objects, this attribute should either be unique, or have an associated data rule to verify that multiple instances do not have conflicting values.
The migration will carry-on gradually to encompass more product types, with credit derivatives as likely next candidate.
Review direction
In the Ingestion Panel of the CDM Portal:
- Look at products / rates for the above product type examples, and search for keyword
quantity
in the output, to see where respective elements are now positioned.
Tutorials Page
What is being released
To aid users of CDM, a Tutorials page has been created, in which video tutorials will demonstrate the various ways to make use of CDM’s generated code artefacts. Initially, we have created a simple “Getting Started” video that shows how to access the ISDA CDM's generated code artefacts and setup the Maven project correctly in order to download all project dependencies.
More tutorials will be uploaded in the coming weeks and as always, all feedback is welcome, please share them via the usual channels.
Review direction
In the CDM Portal:
- Look for the new Tutorial tile
2.3.0
What is being released
Move the DAML code generator into the external generators project where it can be maintained as an open source project
- Remove the hard coded DAML generator from the DSL project
- Create the DAML gnerator as a new project in the code generators repository
- Create a class to configure the build of CDM to run the DAML generation
Generate function specs for DAML
Review direction
In the CDM Textual Browser:
- View download of CDM sources. Most files have only minor changes but there is a new Functions.daml
2.2.9
What is being released
Proposed model changes as part of an on-going effort to augment the product coverage with securities
Affirmation
specifies the information required when affirming a trade.- Add post-trade processing states
Confirmed
andAffirmed
toWorkflowStatusEnum
. - During trade post-processing, confirmation and affirmation can occur in any order. Change
EventWorkflow
to store allworkflowStatus
so all previous states can be checked. E.g. it can be checked whetherworkflowStatus
contains bothConfirmed
andAffirmed
. - The
TransferSettlementEnum
(e.g.DeliveryVsPayment
etc) is known at execution time, therefore it can be specified as part of theSettlementTerms
. - Proposals for
Settle
andNewTransferPrimitive
funcs, initially supporting the use case of security settlement viaDeliveryVsPayment
method.
Review direction
In the CDM Textual Browser:
- Review classes
Affirmation
,EventWorkflow
andWorkflowStatusEnum
,SettlementTerms
. - Review functions
Settle
andNewTransferPrimitive
.
2.2.6
What is being released
Further bug fix related Date
serialization which affected reg reporting functionality in Rosetta Core.
2.2.5
What is being released
Rosetta Syntax Upgrade
As part of on-going improvements, the Rosetta syntax has been upgraded to consolidate language features. This work aims to simplify the syntax needed when adding to, and editing the CDM. This will become increasingly important as the number of CDM contributors increase and as CDM contributions starting coming from a variety of sources.
This is the second release in a series of that will cover the scope described in the Rosetta Syntax Upgrade Wiki[1].
In this release, the func
syntax and supporting infrastructure were upgraded to support all remaining use-cases of spec
, function
and calculation
. This consolidation of syntax simplifies the writing of Functions in the model and forces syntactic consistency across the model.
Other Changes
Fixed bug related Date
serialization which affected reg reporting functionality in Rosetta Core, and caused failures in the testing infrastructure.
Review directions
From the CDM Portal, make use of the Textual Browser to inspect syntax changes in the model. Download the CDM Distribution Pack to inspect the change to generated Java code artefacts.
[1] https://github.com/REGnosys/rosetta-dsl/wiki/Rosetta-Syntax-Upgrade)
2.2.1
Initial quantity refactoring: Equity Swap
What is being released
As part of an on-going effort to restructure the handling of "quantity" in the CDM, this initial release implements the new structure in the model and applies it for Equity Swap products. Other product types will be migrated to this new structure over time (likely starting with Interest Rate Swap products).
As was presented in the 30-Jul-2019 CDM WG meeting, the essence of the restructuring is to abstract away the quantity from the contractual product definition, such that a contractual product is defined as a "unit" of that product, similar to how non-contractual products (e.g. securities) work.
To this end, 2 new main types are being introduced: QuantityNotation
and ResolvablePayoutQuantity
, that both leverage the existing Quantity
type:
QuantityNotation
specifies the actual transacted quantity of a given product. It is meant to be specified alongside but separate from theContractualProduct
, as an additional attribute in anExecution
or aContract
. The reason for the "notation" qualifier is that this object characterises the type of quantity being specified with a tag, taken from an enumeration value calledQuantityNotationEnum
. The types of quantities that can be specified include:Notional
,NumberOfSecurities
and the list is expected to grow over time as more product types get migrated. MultiplequantityNotation
attributes can be specified for the same product: e.g. for Equity Swaps, both the number of securities and the notional can be specified (and a validation logic will need to be implemented to verify consistency as notional = no. securities x initial price).ResolvablePayoutQuantity
, as its name suggests, is a resolvable quantity concept that applies to each of the underlyingPayout
legs through thepayoutQuantity
attribute. The principle is that a resolvable quantity can always be resolved into one number, based on: (i) thequantityNotationTag
attribute that must be specified alongside thecontractualProduct
description, and (ii) a given date, where a schedule is applicable.
For instance: an EquityPayout
leg may specify Notional
as the tag for its payoutQuantity
, in which case the notional will have to be fetched from the corresponding Notional
quantity notation, which must be provided upon execution, to resolve the product. In addition to the base case where quantity is specified either directly as a number or indirectly through this quantity notation mechanism, the use-cases for ResolvablePayoutQuantity
are:
- Quantity based on some pre-defined schedule: e.g. amortising notional
- Quantity based on some pre-defined events: e.g. resetting cross-currency notional
- Quantity set as reference to another quantity: e.g. equity notional as no. securities x price
In practice, the Contract
object has a contractualQuantity
attribute containing the (potentially multiple) quantityNotation
attributes, plus other information such as whether there is a pre-agreed mechanism to amend such quantity in future. synonym
s have been implemented for the QuantityNotation
and ResolvablePayoutQuantity
classes for the Equity Swaps use-case only. Other product types have been left untouched. For technical reasons a (new but temporary placeholder) type called ExecutionQuantity
is used for the contractualQuantity
attribute, until such time when it will be renamed as, and supersede, the existing ContractualQuantity
type which will be progressively "emptied-out".
Review direction
In the CDM Textual Browser:
- Review the
Contract
type with the additionalcontractualQuantity
attribute and its underlyingquantityNotation
attribute. - Review the
InterestRatePayout
andEquityPayout
types, that implement the newPayoutBase
containing thepayoutQuantity
attribute.
In the CDM Ingestion panel:
- Test the products/equity use-cases, and see the structure of the newly ingested CDM. The actual quantity numbers (number of securities and notional) have been extracted away and replaced by tags in the product description. The actual numbers now sit under the
contractualQuantity
attribute that is part of theContract
object.
2.1.0
Rosetta Syntax Upgrade
As part of on-going improvements, the Rosetta syntax has been upgraded to consolidate language features. This work aims to simplify the syntax needed when adding to, and editing the CDM. This will become increasingly important as the number of CDM contributors increase and as CDM contributions starting coming from a variety of sources.
This release marks the first in a series of that will cover the scope described in this wiki. We start by focusing on the migration from calculation
, function
and spec
to func
as these objects provide the largest benefit from consolidation.
func
offers a consistent syntax that can be used to express all 3 language features:
function
s that represents only the inputs and outputs. A function’s implementation is to be provided by the implementorspec
s that define the inputs, outputs and a set of condition that must be valid for a function to have been correctly implementedcalculations
that are concrete and full implementations of functions.
Examples showing the before and after of this change in relation to the above language features (and otrhers) are also available on the wiki.
alias
will also migrate to func
, but will be addressed in a following release.
The code generators have also been simplified as a result of migrating to func, which makes contributions to the open sourced code generators easier, also.
See the Textual Browser for changes to the syntax and the Download Pack for changes to generated Java code.
2.0.136
Introduced function specs to build an Allocation Event
and an AllocationPrimitive
, and associated classes required to specify the allocation instructions.
2.0.128
Introduced
Confirmation
as an initial proposal to model a trade confirmation e.g. the document which parties to a derivativesor securities transaction use to acknowledge the details of the transaction.Based on feedback in 30 Jul Design WG meeting, the clean price has been modelled as part of
Price
. As an initial implementation, the attributecleanNetPrice
has been added, consistent with the approach used in FpML.
2.0.127
A bug fix for CDM portal function example event-sequences/equity-swap
.
Review directions
On the CDM portal Functions page, select file event-sequences > equity-swap and invoke function # 1.
2.0.126
Following model changes in 2.0.123, corresponding changes have been made to the AggregationParameters
to support Event
filtering for securities.
2.0.125
New aggregated documentation site
There is now a dedicated site for all the documentation: https://docs.rosetta-technology.io/
This will eventually host all relevant documentation.
The 'ISDA CDM' documentation link in the portal is now pointing at this site.
2.0.124
Initial instalment of the reset primitive refactoring
As part of the reset primitive refactoring effort introduced at the 30 Jul Design WG meeting, the ResetPrimitive
class is being upgraded to work with before
and after
attributes, in line with other primitive events.
Those attributes are of (existing) ContractState
type, which class is also being upgraded to reflect the contract lifecycle mechanism. The state contains both a reference to the original contract and a contract with reset (updated) values, both of type Contract
. This is further completed by a resolution function: ResolveContractState
which, given a contract state, returns a contract object that knows how to calculate future events (like cashflows) based on the populated reset values.
Further developments (not part of this release) will consolidate the mechanism by which the CDM cleanly delineates the original contract reference and the reset values (as a schedule), that are meant to be passed as inputs to the contract state resolution function. This will ensure that the CDM is designed to accommodate implementations that can optimise memory footprint. Note for instance that at present, the original contract is not passed as a reference but as the entire object, due to a technical limitation that will be lifted in a later release.
Due to the fundamental change in handling of reset as a before/after, existing reset mechanism as previously demonstrated in the CDM Portal (e.g. ingestion of a reset event) has been disabled, to be replaced by a reset event process demonstration.
Review directions
Look a ResetPrimitive
, ContractState
and the ResolveContractState
function spec.
2.0.123
- Upgrade DAML code generation to use latest version.
- Model changes to augment the CDM product coverage for securities
Additional attributes added to Execution
:
Quantity
- used to specify the transacted amount and units.Price
– used to specify the price, accrued interest and traded currency. This initial implementation models the transacted dirty price as thenetPrice
attribute, and models the difference between the clean and dirty prices as theaccruedInterest
attribute.SettlementTerms
– used to specify the settlement amount and currency.
Data rules added to validate the Execution
object for security transactions:
- Validate
partyRole
contains party references for bothPartyRoleEnum.Buyer
andPartyRoleEnum.Seller
. - Validate
partyRole
contains party references for bothPartyRoleEnum.ExecutingEntity
andPartyRoleEnum.Counterparty
. - Validate
Quantity
,Price
andSettlementTerms
exists.
2.0.119
- Two additional ISDA Create NY Law documents were added to the ingestion/isda_create menu
- Fix the display of portal apps based on the user’s role.
2.0.116
Further Documentation Update
Following the documentation overhaul in previous release 2.0.115
, some further upgrade has been implemented, notably:
Expanded explanation about the
key
implementation in the Rosetta DSL documentation. JSON snippet has been provided to illustrate implementation of the ‘internal’ and ‘external’ cross-referencing mechanism, whilst making it clear that this is part of the default Rosetta implementation but not part of the model itself (i.e. implementors can choose to do it differently and may choose to discard the ‘external’ references for instance).Refactored the CDM ‘Product Model’ section to enhance explanation about the model composability.
Review directions
Go to the Documentation / ISDA CDM tile in the CDM Portal, also directly accessible here:
https://portal.cdm.rosetta-technology.io/modeldoc/index.html
2.0.115
Updated Documentation
CDM Documentation as available on the portal has been entirely revisited. Notable changes and additions are:
- Clean separation of the documentation for the “Rosetta DSL”, which is now attached to the Rosetta DSL repo (https://github.com/REGnosys/rosetta-dsl). This follows the recent open-sourcing of the Rosetta DSL, which requires an associated (and stand-alone) documentation.
- Update to reflect recent work on Function Specification, both in terms of the syntax in the Rosetta DSL documentation, and usage as part of the CDM documentation, in particular for event specifications. Function specifications have been folded as part of a broader Function category in the CDM documentation, which also comprises the
calculation
components, so that the two can be compared and contrasted. - Updated components diagram at the top of the documentation, aligned onto the structure of the various GitHub repos. The naming of model artefacts presented as CDM components in the diagram has been aligned onto the CDM artefacts presented in the documentation.
- Significantly improved readability through a combination of form and content work. Documentation has been re-designed to flow more easily by re-thinking some of the ordering and indexing and a better use of bullet points. A number of explanations have been altered or plainly re-written and some examples have been adjusted.
- Updated examples following recent alterations in the model, in particular regarding the
calculation
syntax. - Small update to reflect recent work on Equity Swap, with examples.
- Notes provided where some re-assessment or refactoring or current status-quo should be considered.
Note: The Rosetta DSL documentation is referred by a link in the CDM documentation. This links takes the user to a GitHub page where documentation is displayed in a different theme than the one on the portal. More work will be required so that both the CDM and Rosetta DSL documentations can be merged and displayed under the same page and theme in the portal.
Review directions
Go to the Documentation / ISDA CDM tile in the CDM Portal, also directly accessible here:
https://portal.cdm.rosetta-technology.io/modeldoc/index.html
2.0.113
Functions UI
To better demonstrate Function Specifications or specs
a new UI was built to demonstrate an example sequence of events that includes making use of specs
.
The Functions UI starts by loading data into a “database”, which is done by converting a set of XML or FpML documents into CDM objects. Objects in that “database” are then used to invoke spec implementations which in turn produces further CDM objects as output. Specs implementations can be invoked one after another to form a chain of invocations.
The results of the initial data loading as well as subsequent spec invocations can be graphically visualised in a diagram that shows (in blue arcs) the Event Lineage and (in grey arrows) the essence of what each CDM object contains within it.
This UI replaces the Lineage UI.
Review directions
In the Portal, see the Functions UI, in the drop-down select the equity-swap
example. In the section labelled Sequence Data are the external FpML Equity Swaps Confirmation message, its corresponding CDM Contract object (in JSON format) and all the associated CDM objects that were extracted from that Contract.
Below that, in the Invoke Function section, see the spec
inputs and output. In parenthesis are the Global Keys of the objects being used in the function invocation. Those Global Keys will correspond to those found in the tab headings of the Sequence Data section.
Invoking a function will display the result of that invocation, which will be a CDM object in JSON format. The Lineage visualisation also updates as a result, reflecting creation of new CDM objects.
Spec Implementation
Each spec
requires an implementation and for the purposes of producing the equity-swap
example in the Functions UI, a number of example implementations were created to demonstrate how a CDM user could choose to proceed. It highlights what logic needs to be implemented versus what is provided by the spec
itself.
Review Directions
In the CDM Distribution pack, unzip the cdm-sources Java Archive and see folder src/main/java/org/isda/cdm/functions/example
for examples of Spec Implementations. NewContractEvent.java
and NewExecutionFromProduct.java
are good examples to start with. Note: take care to inspect RosettaFunctionExamples.java
on how dependency injection is managed.
2.0.111
Rosetta Grammar and Code Generator support for Function Specifications.
Continuing from previous work that added support for Function Specifications or specs
for short, the Rosetta Grammar was upgraded to support all the expressions required to define the specs
released from version 2.0.88 and onwards.
Specifically, grammatical rules for exists
, is absent
, contains
, if
statements and references to other specs
were added, making re-use of infrastructure that was in place for data rules
.
Java Code Generation support was added for specs
. For each spec
a corresponding abstract Java class will be generated which defines the inputs, outputs, pre-conditions and post-conditions of a function. It also asks implementors to provide a concrete implementation of an “enrichment” function that should deal aspects of CDM object construction that are not captured by the spec
itself.
Logic inside the generated Java classes reside mainly in the pre and post conditions, where code generation now supports in Java the full set of operators available in the grammar.
Review directions
In the Textual Browser, where sections of specs
were disabled with TODO:
s marking instances where upgrades to grammar and code generation were required.
In the CDM Distribution pack, unzip the cdm-sources Java Archive and see folder /src/generated/java/org/isda/cdm/functions
for examples of generated Java code. NewContractEvent.java
and QuantityChange.java
are good examples of where to start looking.
2.0.106
Rosetta DSL and code generators are now public
We have made the following github repositories open source under the Apache 2.0 licence and publicly available:
https://github.com/REGnosys/rosetta-code-generators
https://github.com/REGnosys/rosetta-dsl
2.0.105
Calculation Bug-Fix
Fix for the interest rate calculation page in the CDM Portal, which had recently been broken as a side-effect of other changes to the model.
Review directions
Visit the “Calculation” page in the CDM Portal and try some calculations.
2.0.104
1. Underlier Refactoring
Usage of the Underlier
is being refactored to be consistent across all pay-out types that make reference to it, namely:
EquityPayout
(whereUnderlier
was being uniquely used before)OptionPayout
(which was usingProduct
before)ForwardPayout
(which directly specified the types of underlying products which could be used before)
As part of this refactoring, the settlementTerms
attribute has also been rationalised within the ForwardPayout
class, which now works in the same way as the OptionPayout
class. The previous settlementDate
attribute has been deprecated and moved to the broader settlementTerms
one.
Note: a valueDate
attribute of type date
needed to be added within settlementTerms
in order to make this work with ForeignExchange
pay-outs because date is specified in hard, not adjustable. This should be fixed and merged with the existing settlementDate
attribute, once the usage of various types of dates (absolute, adjustable or relative) is being refactored.
Review directions
See OptionPayout
and ForwardPayout
, and the “Ingestion” page on the CDM Portal for option and fx products.
2. DAML Download Disabled
Compiler has changed on DAML side, such that DAML code generated from CDM no longer builds. This will have to be looked as part of a subsequent release.