From 6eaf7ae0ac58e488852608da04c7a3b4db656c45 Mon Sep 17 00:00:00 2001 From: Hugo Hills Date: Tue, 10 Oct 2023 16:17:29 +0000 Subject: [PATCH] Auto-format all rosetta files Auto-format all rosetta files --- .../base-datetime-daycount-enum.rosetta | 32 +- .../base-datetime-daycount-func.rosetta | 283 +- .../main/rosetta/base-datetime-enum.rosetta | 825 +++-- .../main/rosetta/base-datetime-func.rosetta | 342 +- .../main/rosetta/base-datetime-type.rosetta | 337 +- .../src/main/rosetta/base-desc.rosetta | 11 +- .../src/main/rosetta/base-math-enum.rosetta | 52 +- .../src/main/rosetta/base-math-func.rosetta | 174 +- .../src/main/rosetta/base-math-type.rosetta | 120 +- .../base-staticdata-asset-common-enum.rosetta | 852 +++-- .../base-staticdata-asset-common-type.rosetta | 74 +- .../base-staticdata-asset-credit-enum.rosetta | 12 +- .../base-staticdata-asset-credit-type.rosetta | 57 +- .../base-staticdata-asset-rates-enum.rosetta | 1434 ++++---- .../main/rosetta/base-staticdata-desc.rosetta | 2 +- .../base-staticdata-identifier-enum.rosetta | 2 +- .../base-staticdata-identifier-type.rosetta | 40 +- .../base-staticdata-party-enum.rosetta | 214 +- .../base-staticdata-party-func.rosetta | 62 +- .../base-staticdata-party-type.rosetta | 253 +- .../main/rosetta/event-common-enum.rosetta | 196 +- .../main/rosetta/event-common-func.rosetta | 3137 +++++++++-------- .../main/rosetta/event-common-type.rosetta | 974 +++-- .../main/rosetta/event-position-enum.rosetta | 10 +- .../main/rosetta/event-position-func.rosetta | 62 +- .../main/rosetta/event-position-type.rosetta | 49 +- .../rosetta/event-qualification-func.rosetta | 839 ++--- .../main/rosetta/event-workflow-enum.rosetta | 70 +- .../main/rosetta/event-workflow-func.rosetta | 314 +- .../main/rosetta/event-workflow-type.rosetta | 180 +- .../legaldocumentation-common-enum.rosetta | 465 ++- .../legaldocumentation-common-func.rosetta | 1 - .../legaldocumentation-common-type.rosetta | 243 +- .../legaldocumentation-contract-type.rosetta | 13 +- .../rosetta/legaldocumentation-desc.rosetta | 2 - .../legaldocumentation-master-enum.rosetta | 783 ++-- .../legaldocumentation-master-type.rosetta | 26 +- .../main/rosetta/mapping-cme-synonym.rosetta | 334 +- .../rosetta/mapping-config-synonym.rosetta | 4 + .../main/rosetta/mapping-dtcc-synonym.rosetta | 283 +- .../main/rosetta/mapping-fis-synonym.rosetta | 9 +- ...-confirmation-workflowstep-synonym.rosetta | 52 +- .../main/rosetta/mapping-ore-synonym.rosetta | 217 +- ...servable-asset-calculatedrate-func.rosetta | 596 ++-- .../rosetta/observable-asset-enum.rosetta | 525 ++- .../rosetta/observable-asset-fro-enum.rosetta | 30 +- .../rosetta/observable-asset-fro-type.rosetta | 19 +- .../rosetta/observable-asset-type.rosetta | 527 +-- .../rosetta/observable-common-func.rosetta | 49 +- .../rosetta/observable-event-enum.rosetta | 54 +- .../rosetta/observable-event-func.rosetta | 72 +- .../rosetta/observable-event-type.rosetta | 172 +- .../product-asset-calculation-func.rosetta | 313 +- .../main/rosetta/product-asset-enum.rosetta | 170 +- .../product-asset-floatingrate-enum.rosetta | 12 +- .../product-asset-floatingrate-func.rosetta | 687 ++-- .../product-asset-floatingrate-type.rosetta | 49 +- .../main/rosetta/product-asset-func.rosetta | 156 +- .../rosetta/product-collateral-func.rosetta | 7 +- .../product-common-schedule-enum.rosetta | 28 +- .../product-common-schedule-func.rosetta | 45 +- .../product-common-settlement-enum.rosetta | 84 +- .../product-common-settlement-type.rosetta | 548 +-- .../main/rosetta/product-common-type.rosetta | 1 - .../product-qualification-func.rosetta | 2377 +++++++------ .../rosetta/product-template-enum.rosetta | 60 +- .../rosetta/product-template-func.rosetta | 164 +- .../rosetta/product-template-type.rosetta | 1192 ++++--- .../src/main/rosetta/regulation-type.rosetta | 252 +- 69 files changed, 11034 insertions(+), 10596 deletions(-) diff --git a/rosetta-source/src/main/rosetta/base-datetime-daycount-enum.rosetta b/rosetta-source/src/main/rosetta/base-datetime-daycount-enum.rosetta index 0fed9c919f..e94ca7d3ba 100644 --- a/rosetta-source/src/main/rosetta/base-datetime-daycount-enum.rosetta +++ b/rosetta-source/src/main/rosetta/base-datetime-daycount-enum.rosetta @@ -2,19 +2,19 @@ namespace cdm.base.datetime.daycount: <"Day count concepts: Day count fraction, version "${project.version}" enum DayCountFractionEnum: <"The enumerated values to specify the day count fraction."> - ACT_360 displayName "ACT/360" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (v), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (e) or Annex to the 2000 ISDA Definitions (June 2000 Version), Section 4.16. Day Count Fraction, paragraph (d)."> - ACT_365L displayName "ACT/365L" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (ix), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (i)."> - ACT_364 displayName "ACT/364" <"Per CFTC definitions."> - ACT_365_FIXED displayName "ACT/365.FIXED" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (iv), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (d) or Annex to the 2000 ISDA Definitions (June 2000 Version), Section 4.16. Day Count Fraction, paragraph (c)."> - ACT_ACT_AFB displayName "ACT/ACT.AFB" <"The Fixed/Floating Amount will be calculated in accordance with the 'BASE EXACT/EXACT' day count fraction, as defined in the 'Definitions Communes plusieurs Additifs Techniques' published by the Association Francaise des Banques in September 1994."> - ACT_ACT_ICMA displayName "ACT/ACT.ICMA" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (iii), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (c). This day count fraction code is applicable for transactions booked under the 2021 ISDA Definitions and the 2006 ISDA Definitions. Transactions under the 2000 ISDA Definitions should use the ACT/ACT.ISMA code instead."> - ACT_ACT_ISDA displayName "ACT/ACT.ISDA" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (ii), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (b) or Annex to the 2000 ISDA Definitions (June 2000 Version), Section 4.16. Day Count Fraction, paragraph (b). Note that going from FpML 2.0 Recommendation to the FpML 3.0 Trial Recommendation the code in FpML 2.0 'ACT/365.ISDA' became 'ACT/ACT.ISDA'."> - ACT_ACT_ISMA displayName "ACT/ACT.ISMA" <"The Fixed/Floating Amount will be calculated in accordance with Rule 251 of the statutes, by-laws, rules and recommendations of the International Securities Market Association, as published in April 1999, as applied to straight and convertible bonds issued after December 31, 1998, as though the Fixed/Floating Amount were the interest coupon on such a bond. This day count fraction code is applicable for transactions booked under the 2000 ISDA Definitions. Transactions under the 2021 ISDA Definitions and the 2006 ISDA Definitions should use the ACT/ACT.ICMA code instead."> - CAL_252 displayName "CAL/252" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (x). Supercedes BUS/252, the number of Business Days in the Calculation Period or Compounding Period in respect of which payment is being made divided by 252."> - _1_1 displayName "1/1" <"Per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (a) or Annex to the 2000 ISDA Definitions (June 2000 Version), Section 4.16. Day Count Fraction, paragraph (a)."> - _30E_360 displayName "30E/360" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (vii), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (g) or Annex to the 2000 ISDA Definitions (June 2000 Version), Section 4.16. Day Count Fraction, paragraph (f). Note that the algorithm defined for this day count fraction has changed between the 2000 ISDA Definitions and 2006 ISDA Definitions. See Introduction to the 2006 ISDA Definitions for further information relating to this change."> - _30E_360_ISDA displayName "30E/360.ISDA" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (viii), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (h). Note the algorithm for this day count fraction under the 2006 ISDA Definitions is designed to yield the same results in practice as the version of the 30E/360 day count fraction defined in the 2000 ISDA Definitions. See Introduction to the 2006 ISDA Definitions for further information relating to this change."> - _30_360 displayName "30/360" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (vi), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (f) or Annex to the 2000 ISDA Definitions (June 2000 Version), Section 4.16. Day Count Fraction, paragraph (e)."> - RBA_BOND_BASIS_QUARTER displayName "RBA Bond Basis (quarter)" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (xi)(a), if Calculation Periods for the Transaction are three months in length (excluding any shorter or longer first and last Calculation Period), 0.25, except that if the first Calculation Period or the final Calculation Period is less than three months, Actual/Actual (ISDA) shall apply to that Calculation Period.' 'per 2006 ISDA Definitions Supplement number 43, Day Count Fraction, if 'RBA Bond Basis (quarter)' is specified, 0.25. However, Actual/Actual (ISDA) applies to each of the first Calculation Period and the final Calculation Period if such Calculation Period is less than three months'"> - RBA_BOND_BASIS_SEMI_ANNUAL displayName "RBA Bond Basis (semi-annual)" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (xi)(b), if Calculation Periods for the Transaction are six months in length (excluding any shorter or longer first and last Calculation Period), 0.5, except that if the first Calculation Period or the final Calculation Period is less than six months, Actual/Actual (ISDA) shall apply to that Calculation Period' 'per 2006 ISDA Definitions Supplement number 43, Day Count Fraction, if 'RBA Bond Basis (semi-annual)' is specified, 0.5. However, Actual/Actual (ISDA) applies to each of the first Calculation Period and the final Calculation Period if such Calculation Period is less than six months'"> - RBA_BOND_BASIS_ANNUAL displayName "RBA Bond Basis (annual)" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (xi)(c), if Calculation Periods for the Transaction are twelve months in length (excluding any shorter or longer first and last Calculation Period), 1, except that if the first Calculation Period or the final Calculation Period is less than twelve months, Actual/Actual (ISDA) shall apply to that Calculation Period' 'per 2006 ISDA Definitions Supplement number 43, Day Count Fraction, (k) if 'RBA Bond Basis (semi-annual)' is specified, 0.5. However, Actual/Actual (ISDA) applies to each of the first Calculation Period and the final Calculation Period if such Calculation Period is less than six months'"> + ACT_360 displayName "ACT/360" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (v), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (e) or Annex to the 2000 ISDA Definitions (June 2000 Version), Section 4.16. Day Count Fraction, paragraph (d)."> + ACT_365L displayName "ACT/365L" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (ix), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (i)."> + ACT_364 displayName "ACT/364" <"Per CFTC definitions."> + ACT_365_FIXED displayName "ACT/365.FIXED" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (iv), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (d) or Annex to the 2000 ISDA Definitions (June 2000 Version), Section 4.16. Day Count Fraction, paragraph (c)."> + ACT_ACT_AFB displayName "ACT/ACT.AFB" <"The Fixed/Floating Amount will be calculated in accordance with the 'BASE EXACT/EXACT' day count fraction, as defined in the 'Definitions Communes plusieurs Additifs Techniques' published by the Association Francaise des Banques in September 1994."> + ACT_ACT_ICMA displayName "ACT/ACT.ICMA" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (iii), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (c). This day count fraction code is applicable for transactions booked under the 2021 ISDA Definitions and the 2006 ISDA Definitions. Transactions under the 2000 ISDA Definitions should use the ACT/ACT.ISMA code instead."> + ACT_ACT_ISDA displayName "ACT/ACT.ISDA" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (ii), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (b) or Annex to the 2000 ISDA Definitions (June 2000 Version), Section 4.16. Day Count Fraction, paragraph (b). Note that going from FpML 2.0 Recommendation to the FpML 3.0 Trial Recommendation the code in FpML 2.0 'ACT/365.ISDA' became 'ACT/ACT.ISDA'."> + ACT_ACT_ISMA displayName "ACT/ACT.ISMA" <"The Fixed/Floating Amount will be calculated in accordance with Rule 251 of the statutes, by-laws, rules and recommendations of the International Securities Market Association, as published in April 1999, as applied to straight and convertible bonds issued after December 31, 1998, as though the Fixed/Floating Amount were the interest coupon on such a bond. This day count fraction code is applicable for transactions booked under the 2000 ISDA Definitions. Transactions under the 2021 ISDA Definitions and the 2006 ISDA Definitions should use the ACT/ACT.ICMA code instead."> + CAL_252 displayName "CAL/252" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (x). Supercedes BUS/252, the number of Business Days in the Calculation Period or Compounding Period in respect of which payment is being made divided by 252."> + _1_1 displayName "1/1" <"Per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (a) or Annex to the 2000 ISDA Definitions (June 2000 Version), Section 4.16. Day Count Fraction, paragraph (a)."> + _30E_360 displayName "30E/360" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (vii), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (g) or Annex to the 2000 ISDA Definitions (June 2000 Version), Section 4.16. Day Count Fraction, paragraph (f). Note that the algorithm defined for this day count fraction has changed between the 2000 ISDA Definitions and 2006 ISDA Definitions. See Introduction to the 2006 ISDA Definitions for further information relating to this change."> + _30E_360_ISDA displayName "30E/360.ISDA" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (viii), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (h). Note the algorithm for this day count fraction under the 2006 ISDA Definitions is designed to yield the same results in practice as the version of the 30E/360 day count fraction defined in the 2000 ISDA Definitions. See Introduction to the 2006 ISDA Definitions for further information relating to this change."> + _30_360 displayName "30/360" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (vi), per 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (f) or Annex to the 2000 ISDA Definitions (June 2000 Version), Section 4.16. Day Count Fraction, paragraph (e)."> + RBA_BOND_BASIS_QUARTER displayName "RBA Bond Basis (quarter)" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (xi)(a), if Calculation Periods for the Transaction are three months in length (excluding any shorter or longer first and last Calculation Period), 0.25, except that if the first Calculation Period or the final Calculation Period is less than three months, Actual/Actual (ISDA) shall apply to that Calculation Period.' 'per 2006 ISDA Definitions Supplement number 43, Day Count Fraction, if 'RBA Bond Basis (quarter)' is specified, 0.25. However, Actual/Actual (ISDA) applies to each of the first Calculation Period and the final Calculation Period if such Calculation Period is less than three months'"> + RBA_BOND_BASIS_SEMI_ANNUAL displayName "RBA Bond Basis (semi-annual)" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (xi)(b), if Calculation Periods for the Transaction are six months in length (excluding any shorter or longer first and last Calculation Period), 0.5, except that if the first Calculation Period or the final Calculation Period is less than six months, Actual/Actual (ISDA) shall apply to that Calculation Period' 'per 2006 ISDA Definitions Supplement number 43, Day Count Fraction, if 'RBA Bond Basis (semi-annual)' is specified, 0.5. However, Actual/Actual (ISDA) applies to each of the first Calculation Period and the final Calculation Period if such Calculation Period is less than six months'"> + RBA_BOND_BASIS_ANNUAL displayName "RBA Bond Basis (annual)" <"Per 2021 ISDA Definitions, Section 4.6.1 Day Count Fraction, paragraph (xi)(c), if Calculation Periods for the Transaction are twelve months in length (excluding any shorter or longer first and last Calculation Period), 1, except that if the first Calculation Period or the final Calculation Period is less than twelve months, Actual/Actual (ISDA) shall apply to that Calculation Period' 'per 2006 ISDA Definitions Supplement number 43, Day Count Fraction, (k) if 'RBA Bond Basis (semi-annual)' is specified, 0.5. However, Actual/Actual (ISDA) applies to each of the first Calculation Period and the final Calculation Period if such Calculation Period is less than six months'"> diff --git a/rosetta-source/src/main/rosetta/base-datetime-daycount-func.rosetta b/rosetta-source/src/main/rosetta/base-datetime-daycount-func.rosetta index 96f54600ca..7730a47d16 100644 --- a/rosetta-source/src/main/rosetta/base-datetime-daycount-func.rosetta +++ b/rosetta-source/src/main/rosetta/base-datetime-daycount-func.rosetta @@ -4,202 +4,197 @@ version "${project.version}" import cdm.base.datetime.* // ** following is the new year fraction calculation logic, which is independent of the calculation period generation logic - func YearFraction: <"The fraction of a year represented by a date range"> - [calculation] - inputs: - dayCountFractionEnum DayCountFractionEnum (1..1) <"The day count fraction to use"> - startDate date (1..1) <"The start date of the range for which the year fraction is required"> - endDate date (1..1) <"The end date of the range for which the year fraction is required"> - terminationDate date (0..1) <"The termination date of the payout; this is needed for some day count fractions"> - periodsInYear int (0..1) <"The number of periods in a year in the payout; this is needed for some day count fractions"> - output: - result number (1..1) <"The fraction of a year represented by period from the startDate to the endDate"> + [calculation] + inputs: + dayCountFractionEnum DayCountFractionEnum (1..1) <"The day count fraction to use"> + startDate date (1..1) <"The start date of the range for which the year fraction is required"> + endDate date (1..1) <"The end date of the range for which the year fraction is required"> + terminationDate date (0..1) <"The termination date of the payout; this is needed for some day count fractions"> + periodsInYear int (0..1) <"The number of periods in a year in the payout; this is needed for some day count fractions"> + output: + result number (1..1) <"The fraction of a year represented by period from the startDate to the endDate"> func YearFraction(dayCountFractionEnum: DayCountFractionEnum -> _1_1): <"2006 ISDA Definition Article 4 section 4.16(a): if '1/1' is specified, 1;."> - [calculation] - set result: 1.0 + [calculation] + set result: 1.0 func YearFraction(dayCountFractionEnum: DayCountFractionEnum -> ACT_ACT_ISDA): <"'2021 ISDA Definitions Section 4.6.1(ii): if 'Actual/Actual', 'Actual/Actual(ISDA)', 'Act/Act' or 'Act/Act(ISDA)' is specified, the actual number of days in the Calculation Period or Compounding Period in respect of which the calculation is being made divided by 365 (or, if any portion of that Calculation Period or Compounding Period falls in a leap year, the sum of (1) the actual number of days in that portion of the Calculation Period or Compounding Period falling in a leap year divided by 366 and (2) the actual number of days in that portion of the Calculation Period or Compounding Period falling a non-leap year divided by 365), calculated as follows: (daysInNonLeapPeriod/365)+(daysInLeapYearPeriod/366)' '2006 ISDA Definition Article 4 section 4.16(b): if 'Actual/Actual', 'Actual/Actual(ISDA)', 'Act/Act' or 'Act/Act(ISDA)' is specified, the actual number of days in the Calculation Period or Compounding Period in respect of which the calculation is being made divided by 365 (or, if any portion of that Calculation Period or Compounding Period falls in a leap year, the sum of (1) the actual number of days in that portion of the Calculation Period or Compounding Period falling in a leap year divided by 366 and (2) the actual number of days in that portion of the Calculation Period or Compounding Period falling a non-leap year divided by 365).'"> - [calculation] - alias daysInPeriod: DateDifference(startDate, endDate) - alias daysInLeapYearPeriod: <"the actual number of days in that portion of the Calculation Period or Compounding Period falling in a leap year."> - LeapYearDateDifference(startDate, endDate) - alias daysInNonLeapPeriod: <"the actual number of days in that portion of the Calculation Period or Compounding Period falling in a non-leap year, equal to the difference between (a) the total days in the period and (b) the days in leap year period."> - daysInPeriod - daysInLeapYearPeriod - set result: - (daysInNonLeapPeriod / 365) + (daysInLeapYearPeriod / 366) + [calculation] + alias daysInPeriod: DateDifference(startDate, endDate) + alias daysInLeapYearPeriod: <"the actual number of days in that portion of the Calculation Period or Compounding Period falling in a leap year."> + LeapYearDateDifference(startDate, endDate) + alias daysInNonLeapPeriod: <"the actual number of days in that portion of the Calculation Period or Compounding Period falling in a non-leap year, equal to the difference between (a) the total days in the period and (b) the days in leap year period."> + daysInPeriod - daysInLeapYearPeriod + set result: (daysInNonLeapPeriod / 365) + (daysInLeapYearPeriod / 366) func YearFraction(dayCountFractionEnum: DayCountFractionEnum -> ACT_ACT_ICMA): <"'2021 ISDA Definitions Section 4.6.1(iii): if 'Actual/Actual(ICMA)' or 'Act/Act(ICMA)'' is specified, a fraction calculated in accordance with Rule 251 of the statutes, by-laws, rules and recommendations of the International Capital Market Association (or any successor thereto), as applied to non-U.S. Dollar denominated straight and convertible bonds issued after December 31, 1998, as though the interest coupon on a bond were being calculated for a coupon period corresponding to the relevant Calculation Period or Compounding Period.' '2006 ISDA Definition Article 4 section 4.16(c): (c) if 'Actual/Actual (ICMA)' or 'Act/Act (ICMA)' is specified, a fraction equal to 'number of days accrued/number of days in year', as such terms are used in Rule 251 of the statutes, by-laws, rules and recommendations of the International Capital Market Association (the 'ICMA Rule Book'), calculated in accordance with Rule 251 of the ICMA Rule Book as applied to non US dollar denominated straight and convertible bonds issued after December 31, 1998, as though the interest coupon on a bond were being calculated for a coupon period corresponding to the Calculation Period or Compounding Period in respect of which payment is being made;."> - [calculation] - alias daysInPeriod: DateDifference(startDate, endDate) - set result: - daysInPeriod / (daysInPeriod * periodsInYear) + [calculation] + alias daysInPeriod: DateDifference(startDate, endDate) + set result: daysInPeriod / (daysInPeriod * periodsInYear) func YearFraction(dayCountFractionEnum: DayCountFractionEnum -> ACT_365_FIXED): <"'2021 ISDA Definitions Section 4.6.1(iv): if 'Actual/365(Fixed)', 'Act/365(Fixed)', 'A/365(Fixed)'or 'A/365F' is specified, the actual number of days in the relevant Calculation Period or Compounding Period divided by 365, calculated as follows: (daysInPeriod/365)' '2006 ISDA Definition Article 4 section 4.16(d): If 'Actual/365 (Fixed)', 'Act/365 (Fixed)', 'A/365 (Fixed)' or 'A/365F' is specified, the actual number of days in the Calculation Period or Compounding Period in respect of which payment is being made divided by 365."> - [calculation] - alias daysInPeriod: DateDifference(startDate, endDate) - set result: - daysInPeriod / 365 + [calculation] + alias daysInPeriod: DateDifference(startDate, endDate) + set result: daysInPeriod / 365 func YearFraction(dayCountFractionEnum: DayCountFractionEnum -> ACT_360): <"'2021 ISDA Definitions Section 4.6.1(v): if 'Actual/360', 'Act/360' or 'A/360' is specified, the actual number of days in the relevant Calculation Period or Compounding Period divided by 360, calculated as follows: (daysInPeriod/360)' '2006 ISDA Definition Article 4 section 4.16(e): if 'Actual/360', 'Act/360' or 'A/360' is specified, the actual number of days in the Calculation Period or Compounding Period in respect of which payment is being made divided by 360.'"> - [calculation] - alias daysInPeriod: DateDifference(startDate, endDate) - set result: - daysInPeriod / 360 + [calculation] + alias daysInPeriod: DateDifference(startDate, endDate) + set result: daysInPeriod / 360 func YearFraction(dayCountFractionEnum: DayCountFractionEnum -> _30_360): <"'2021 ISDA Definitions Section 4.6.1(vi): if '30/360', '360/360' or 'Bond Basis' is specified, the number of days in the relevant Calculation Period or Compounding Period divided by 360, calculated as follows: [360 x (Y2 - Y1)] + [30 x (M2 - M1)] + (D2 - D1)]/360' '2006 ISDA Definition Article 4 section 4.16(f): if '30/360', '360/360' or 'Bond Basis' is specified, the number of days in the Calculation Period or Compounding Period in respect of which payment is being made divided by 360, calculated on a formula basis as follows:[[360 x (Y2 - Y1)] + [30 x (M2 - M1)] + (D2 - D1)]/360.''"> - [calculation] + [calculation] - alias startYear: <"The year, expressed as a number, in which the first day of the Calculation Period or Compounding Period falls."> - startDate -> year + alias startYear: <"The year, expressed as a number, in which the first day of the Calculation Period or Compounding Period falls."> + startDate -> year - alias endYear: <"The year, expressed as a number, in which the day immediately following the last day included in the Calculation Period or Compounding Period falls."> - endDate -> year + alias endYear: <"The year, expressed as a number, in which the day immediately following the last day included in the Calculation Period or Compounding Period falls."> + endDate -> year - alias startMonth: <"The calendar month, expressed as a number, in which the first day of the Calculation Period or Compounding Period falls."> - startDate -> month + alias startMonth: <"The calendar month, expressed as a number, in which the first day of the Calculation Period or Compounding Period falls."> + startDate -> month - alias endMonth: <"The calendar month, expressed as number, in which the day immediately following the last day included in the Calculation Period or Compounding Period falls."> - endDate -> month + alias endMonth: <"The calendar month, expressed as number, in which the day immediately following the last day included in the Calculation Period or Compounding Period falls."> + endDate -> month - alias endDay: <"The calendar day, expressed as a number, immediately following the last day included in the Calculation Period or Compounding Period, unless such number would be 31 and D1, is greater than 29, in which case D2 will be 30."> - if startDate -> day > 29 then Min(endDate -> day, 30) else endDate -> day + alias endDay: <"The calendar day, expressed as a number, immediately following the last day included in the Calculation Period or Compounding Period, unless such number would be 31 and D1, is greater than 29, in which case D2 will be 30."> + if startDate -> day > 29 + then Min(endDate -> day, 30) + else endDate -> day - alias startDay: <"The first calendar day, expressed as a number, of the Calculation Period or Compounding Period, unless such number would be 31, in which case, will be 30."> - Min(startDate -> day, 30) - set result: - (360 * (endYear - startYear) + 30 * (endMonth - startMonth) + (endDay - startDay)) / 360 + alias startDay: <"The first calendar day, expressed as a number, of the Calculation Period or Compounding Period, unless such number would be 31, in which case, will be 30."> + Min(startDate -> day, 30) + set result: + (360 * (endYear - startYear) + 30 * (endMonth - startMonth) + (endDay - startDay)) / 360 func YearFraction(dayCountFractionEnum: DayCountFractionEnum -> _30E_360): <"'2021 ISDA Definitions Section 4.6.1(vii): if '30E/360' or 'Eurobond Basis' is specified, the number of days in the relevant Calculation Period or Compounding Period divided by 360, calculated as follows: [[360 x (Y2 - Y1)] + [30 x (M2 - M1)] + (D2 - D1)]/360' '2006 ISDA Definition Article 4 section 4.16(e): if 'Actual/360', 'Act/360' or 'A/360' is specified, the actual number of days in the Calculation Period or Compounding Period in respect of which payment is being made divided by 360 calculated on a formula basis as follows:[[360 x (Y2 - Y1)] + [30 x (M2 - M1)] + (D2 - D1)]/360.'"> - [calculation] + [calculation] - alias startYear: <"The year, expressed as a number, in which the first day of the Calculation Period or Compounding Period falls."> - startDate -> year + alias startYear: <"The year, expressed as a number, in which the first day of the Calculation Period or Compounding Period falls."> + startDate -> year - alias endYear: <"The year, expressed as a number, in which the day immediately following the last day included in the Calculation Period or Compounding Period falls."> - endDate -> year + alias endYear: <"The year, expressed as a number, in which the day immediately following the last day included in the Calculation Period or Compounding Period falls."> + endDate -> year - alias startMonth: <"The calendar month, expressed as a number, in which the first day of the Calculation Period or Compounding Period falls."> - startDate -> month + alias startMonth: <"The calendar month, expressed as a number, in which the first day of the Calculation Period or Compounding Period falls."> + startDate -> month - alias endMonth: <"The calendar month, expressed as a number, in which the day immediately following the last day included in the Calculation Period or Compounding Period falls."> - endDate -> month + alias endMonth: <"The calendar month, expressed as a number, in which the day immediately following the last day included in the Calculation Period or Compounding Period falls."> + endDate -> month - alias endDay: <"The first calendar day, expressed as a number, of the Calculation Period or Compounding Period, unless such number would be 31, in which case will be 30."> - Min(endDate -> day, 30) + alias endDay: <"The first calendar day, expressed as a number, of the Calculation Period or Compounding Period, unless such number would be 31, in which case will be 30."> + Min(endDate -> day, 30) - alias startDay: <"The calendar day, expressed as a number, immediately following the last day included in the Calculation Period or Compounding Period, unless such number would be 31, in which case will be 30."> - Min(startDate -> day, 30) - set result: - (360 * (endYear - startYear) + 30 * (endMonth - startMonth) + (endDay - startDay)) / 360 + alias startDay: <"The calendar day, expressed as a number, immediately following the last day included in the Calculation Period or Compounding Period, unless such number would be 31, in which case will be 30."> + Min(startDate -> day, 30) + set result: + (360 * (endYear - startYear) + 30 * (endMonth - startMonth) + (endDay - startDay)) / 360 func YearFraction(dayCountFractionEnum: DayCountFractionEnum -> _30E_360_ISDA): <"2006 ISDA Definition Article 4 section 4.16(h): if '30E/360 (ISDA)' is specified, the number of days in the Calculation Period or Compounding Period in respect of which payment is being made divided by 360, calculated on a formula basis as follows: [[360 × (Y2 - Y1)]+[30 × (M2 - M1)] +(D2 - D1)]/360 ."> - [calculation] - - alias startDateIsInLeapYear: - IsLeapYear(startDate -> year) - - alias endDateIsInLeapYear: - IsLeapYear(endDate -> year) - - alias startYear: <"The year, expressed as a number, in which the first day of the Calculation Period or Compounding Period falls."> - startDate -> year - - alias endYear: <"The year, expressed as a number, in which the day immediately following the last day included in the Calculation Period or Compounding Period falls."> - endDate -> year - - alias startMonth: <"The calendar month, expressed as a number, in which the first day of the Calculation Period or Compounding Period falls."> - startDate -> month - - alias endMonth: <"The calendar month, expressed as a number, in which the day immediately following the last day included in the Calculation Period or Compounding Period falls."> - endDate -> month - - alias startDay: - if startDateIsInLeapYear = False and startDate -> month = 2 and startDate -> day = 28 - or startDateIsInLeapYear = True and startDate -> month = 2 and startDate -> day = 29 - or startDate -> day = 31 - then 30 else endDate -> day - - alias endDay: - if endDateIsInLeapYear = False and endDate -> month = 2 and endDate -> day = 28 - or endDateIsInLeapYear = True and endDate -> month = 2 and endDate -> day = 29 - or endDate -> day = 31 - or endDate = terminationDate - then 30 else endDate -> day - set result: - (360 * (endYear - startYear) + 30 * (endMonth - startMonth) + (endDay - startDay)) / 360 - + [calculation] + + alias startDateIsInLeapYear: IsLeapYear(startDate -> year) + + alias endDateIsInLeapYear: IsLeapYear(endDate -> year) + + alias startYear: <"The year, expressed as a number, in which the first day of the Calculation Period or Compounding Period falls."> + startDate -> year + + alias endYear: <"The year, expressed as a number, in which the day immediately following the last day included in the Calculation Period or Compounding Period falls."> + endDate -> year + + alias startMonth: <"The calendar month, expressed as a number, in which the first day of the Calculation Period or Compounding Period falls."> + startDate -> month + + alias endMonth: <"The calendar month, expressed as a number, in which the day immediately following the last day included in the Calculation Period or Compounding Period falls."> + endDate -> month + + alias startDay: + if startDateIsInLeapYear = False + and startDate -> month = 2 + and startDate -> day = 28 + or startDateIsInLeapYear = True + and startDate -> month = 2 + and startDate -> day = 29 + or startDate -> day = 31 + then 30 + else endDate -> day + + alias endDay: + if endDateIsInLeapYear = False and endDate -> month = 2 and endDate -> day = 28 + or endDateIsInLeapYear = True + and endDate -> month = 2 + and endDate -> day = 29 + or endDate -> day = 31 + or endDate = terminationDate + then 30 + else endDate -> day + set result: + (360 * (endYear - startYear) + 30 * (endMonth - startMonth) + (endDay - startDay)) / 360 func YearFraction(dayCountFractionEnum: DayCountFractionEnum -> ACT_364): <"the actual number of days in the Calculation Period or Compounding Period in respect of which payment is being made divided by 364."> - [calculation] - alias daysInPeriod: DateDifference(startDate, endDate) - set result: - daysInPeriod / 364 + [calculation] + alias daysInPeriod: DateDifference(startDate, endDate) + set result: daysInPeriod / 364 func YearFraction(dayCountFractionEnum: DayCountFractionEnum -> ACT_365L): <"'2021 ISDA Definitions Section 4.6.1(ix): if 'Act/365L' is specified, the actual number of days in the relevant Calculation Period or Compounding Period divided by 365 (or, if the later Period End Date of the Calculation Period or Compounding Date of the Compounding Period falls in a leap year, divided by 366)' 'The actual number of days in the Calculation Period or Compounding Period in respect of which payment is being made divided by 365 (or, if the later Period End Date of the Calculation Period or Compounding Period falls in a leap year, divided by 366).'"> - [calculation] + [calculation] - alias endDateIsInLeapYear: - IsLeapYear(endDate -> year) + alias endDateIsInLeapYear: IsLeapYear(endDate -> year) - alias daysInPeriod: DateDifference(startDate, endDate) + alias daysInPeriod: DateDifference(startDate, endDate) - alias daysInYear: <"365 or, if the later Period End Date of the Calculation Period or Compounding Period falls in a leap year, divided by 366."> - if (endDateIsInLeapYear = True) then 366 else 365 + alias daysInYear: <"365 or, if the later Period End Date of the Calculation Period or Compounding Period falls in a leap year, divided by 366."> + if (endDateIsInLeapYear = True) then 366 else 365 - set result: - daysInPeriod / daysInYear + set result: daysInPeriod / daysInYear func YearFraction(dayCountFractionEnum: DayCountFractionEnum -> CAL_252): <"'2021 ISDA Definitions Section 4.6.1(x): if 'Calculation/252' is specified, the actual number of Calculation Days in the relevant Calculation Period or Compounding Period divided by 252, calculated as follows: [daysInPeriod/252], where 'daysInPeriod' is, unless otherwise specified in the Confirmation, in respect of the relevant Floating Amount or Fixed Amount to which this Day Count Fraction applies, the Business Days in the relevant Calculation Period or Compounding Period determined by reference to the Business Day and Business Day Convention applicable to the determination of such Floating Amount or Fixed Amount, as applicable."> + [calculation] + alias daysInPeriod: DateDifference(startDate, endDate) + set result: daysInPeriod / 252 - [calculation] - alias daysInPeriod: DateDifference(startDate, endDate) - set result: - daysInPeriod / 252 - func 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."> - [calculation] - inputs: - dcf DayCountFractionEnum (1..1) <"Supplied Day count fraction."> - output: - yearFrac number (1..1) <"Corresponding year fraction."> - // calculate and return the value from the DayCountBasis - set yearFrac: 1 / DayCountBasis(dcf) - + [calculation] + inputs: + dcf DayCountFractionEnum (1..1) <"Supplied Day count fraction."> + output: + yearFrac number (1..1) <"Corresponding year fraction."> + // calculate and return the value from the DayCountBasis + set yearFrac: 1 / DayCountBasis(dcf) func DayCountBasis: <"Return the day count basis (the denominator of the day count fraction) for the day count fraction."> - [calculation] - inputs: - dcf DayCountFractionEnum (1..1) <"Day count fraction."> - output: - basis int (1..1) <"The corresponding basis, typically 360 or 365."> + [calculation] + inputs: + dcf DayCountFractionEnum (1..1) <"Day count fraction."> + output: + basis int (1..1) <"The corresponding basis, typically 360 or 365."> func DayCountBasis(dcf: DayCountFractionEnum -> ACT_360): - set basis: 360 + set basis: 360 -func DayCountBasis(dcf: DayCountFractionEnum ->_30_360): - set basis: 360 +func DayCountBasis(dcf: DayCountFractionEnum -> _30_360): + set basis: 360 -func DayCountBasis(dcf: DayCountFractionEnum ->_30E_360): - set basis: 360 +func DayCountBasis(dcf: DayCountFractionEnum -> _30E_360): + set basis: 360 func DayCountBasis(dcf: DayCountFractionEnum -> ACT_365L): - set basis: 365 + set basis: 365 -func DayCountBasis(dcf: DayCountFractionEnum ->ACT_365_FIXED): - set basis: 365 +func DayCountBasis(dcf: DayCountFractionEnum -> ACT_365_FIXED): + set basis: 365 // the following day count bases are under review by ISDA Legal and may be updated in a future version of CDM +func DayCountBasis(dcf: DayCountFractionEnum -> ACT_ACT_AFB): + set basis: 365 // Should this support 366 in leap years? requires passing in the actual dates -func DayCountBasis(dcf: DayCountFractionEnum ->ACT_ACT_AFB): - set basis: 365 // Should this support 366 in leap years? requires passing in the actual dates - -func DayCountBasis(dcf: DayCountFractionEnum ->ACT_ACT_ISDA): - set basis: 365 // Should this support 366 in leap years? requires passing in the actual dates +func DayCountBasis(dcf: DayCountFractionEnum -> ACT_ACT_ISDA): + set basis: 365 // Should this support 366 in leap years? requires passing in the actual dates -func DayCountBasis(dcf: DayCountFractionEnum ->ACT_ACT_ICMA): - set basis: 365 // Should this support 366 in leap years? requires passing in the actual dates +func DayCountBasis(dcf: DayCountFractionEnum -> ACT_ACT_ICMA): + set basis: 365 // Should this support 366 in leap years? requires passing in the actual dates -func DayCountBasis(dcf: DayCountFractionEnum ->CAL_252): - set basis: 252 +func DayCountBasis(dcf: DayCountFractionEnum -> CAL_252): + set basis: 252 diff --git a/rosetta-source/src/main/rosetta/base-datetime-enum.rosetta b/rosetta-source/src/main/rosetta/base-datetime-enum.rosetta index ae50e4818f..aa07e4814f 100755 --- a/rosetta-source/src/main/rosetta/base-datetime-enum.rosetta +++ b/rosetta-source/src/main/rosetta/base-datetime-enum.rosetta @@ -6,438 +6,437 @@ import cdm.base.* enum BusinessCenterEnum: <"The enumerated values to specify the business centers."> [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/business-center"] - AEAB <"Abu Dhabi, Business Day (as defined in 2021 ISDA Definitions Section 2.1.9 (ii))"> - AEAD <"Abu Dhabi, Settlement Day (as defined in 2021 ISDA Definitions Section 2.1.9 (i))"> - AEDU <"Dubai, United Arab Emirates"> - AMYE <"Yerevan, Armenia"> - AOLU <"Luanda, Angola"> - ARBA <"Buenos Aires, Argentina"> - ATVI <"Vienna, Austria"> - AUAD <"Adelaide, Australia"> - AUBR <"Brisbane, Australia"> - AUCA <"Canberra, Australia"> - AUDA <"Darwin, Australia"> - AUME <"Melbourne, Australia"> - AUPE <"Perth, Australia"> - AUSY <"Sydney, Australia"> - AZBA <"Baku, Azerbaijan"> - BBBR <"Bridgetown, Barbados"> - BDDH <"Dhaka, Bangladesh"> - BEBR <"Brussels, Belgium"> - BGSO <"Sofia, Bulgaria"> - BHMA <"Manama, Bahrain"> - BMHA <"Hamilton, Bermuda"> - BNBS <"Bandar Seri Begawan, Brunei"> - BOLP <"La Paz, Bolivia"> - BRBD <"Brazil Business Day."> - BRBR <"Brasilia, Brazil."> - BRRJ <"Rio de Janeiro, Brazil."> - BRSP <"Sao Paulo, Brazil."> - BSNA <"Nassau, Bahamas"> - BWGA <"Gaborone, Botswana"> - BYMI <"Minsk, Belarus"> - CACL <"Calgary, Canada"> - CAFR <"Fredericton, Canada."> - CAMO <"Montreal, Canada"> - CAOT <"Ottawa, Canada"> - CATO <"Toronto, Canada"> - CAVA <"Vancouver, Canada"> - CAWI <"Winnipeg, Canada"> - CHBA <"Basel, Switzerland"> - CHGE <"Geneva, Switzerland"> - CHZU <"Zurich, Switzerland"> - CIAB <"Abidjan, Cote d'Ivoire"> - CLSA <"Santiago, Chile"> - CMYA <"Yaounde, Cameroon"> - CNBE <"Beijing, China"> - CNSH <"Shanghai, China"> - COBO <"Bogota, Colombia"> - CRSJ <"San Jose, Costa Rica"> - CWWI <"Willemstad, Curacao"> - CYNI <"Nicosia, Cyprus"> - CZPR <"Prague, Czech Republic"> - DECO <"Cologne, Germany"> - DEDU <"Dusseldorf, Germany"> - DEFR <"Frankfurt, Germany"> - DEHA <"Hannover, Germany"> - DEHH <"Hamburg, Germany"> - DELE <"Leipzig, Germany"> - DEMA <"Mainz, Germany"> - DEMU <"Munich, Germany"> - DEST <"Stuttgart, Germany"> - DKCO <"Copenhagen, Denmark"> - DOSD <"Santo Domingo, Dominican Republic"> - DZAL <"Algiers, Algeria"> - ECGU <"Guayaquil, Ecuador"> - EETA <"Tallinn, Estonia"> - EGCA <"Cairo, Egypt"> - ESAS <"ESAS Settlement Day (as defined in 2006 ISDA Definitions Section 7.1 and Supplement Number 15 to the 2000 ISDA Definitions)"> - ESBA <"Barcelona, Spain"> - ESMA <"Madrid, Spain"> - ESSS <"San Sebastian, Spain"> - ETAA <"Addis Ababa, Ethiopia"> - EUR_ICESWAP displayName "EUR-ICESWAP" <"Publication dates for ICE Swap rates based on EUR-EURIBOR rates"> - EUTA <"TARGET Settlement Day"> - FIHE <"Helsinki, Finland"> - FRPA <"Paris, France"> - GBED <"Edinburgh, Scotland"> - GBLO <"London, United Kingdom"> - GBP_ICESWAP displayName "GBP-ICESWAP" <"Publication dates for GBP ICE Swap rates"> - GETB <"Tbilisi, Georgia"> - GGSP <"Saint Peter Port, Guernsey"> - GHAC <"Accra, Ghana"> - GMBA <"Banjul, Gambia"> - GNCO <"Conakry, Guinea"> - GRAT <"Athens, Greece"> - GUGC <"Guatemala City, Guatemala"> - HKHK <"Hong Kong, Hong Kong"> - HNTE <"Tegucigalpa, Honduras"> - HRZA <"Zagreb, Republic of Croatia"> - HUBU <"Budapest, Hungary"> - IDJA <"Jakarta, Indonesia"> - IEDU <"Dublin, Ireland"> - ILJE <"Jerusalem, Israel"> - ILS_TELBOR displayName "ILS-TELBOR" <"Publication dates of the ILS-TELBOR index."> - ILTA <"Tel Aviv, Israel"> - INAH <"Ahmedabad, India"> - INBA <"Bangalore, India"> - INCH <"Chennai, India"> - INHY <"Hyderabad, India"> - INKO <"Kolkata, India"> - INMU <"Mumbai, India"> - INND <"New Delhi, India"> - IQBA <"Baghdad, Iraq"> - IRTE <"Teheran, Iran"> - ISRE <"Reykjavik, Iceland"> - ITMI <"Milan, Italy"> - ITRO <"Rome, Italy"> - ITTU <"Turin, Italy"> - JESH <"St. Helier, Channel Islands, Jersey"> - JMKI <"Kingston, Jamaica"> - JOAM <"Amman, Jordan"> - JPTO <"Tokyo, Japan"> - KENA <"Nairobi, Kenya"> - KHPP <"Phnom Penh, Cambodia"> - KRSE <"Seoul, Republic of Korea"> - KWKC <"Kuwait City, Kuwait"> - KYGE <"George Town, Cayman Islands"> - KZAL <"Almaty, Kazakhstan"> - LAVI <"Vientiane, Laos"> - LBBE <"Beirut, Lebanon"> - LKCO <"Colombo, Sri Lanka"> - LULU <"Luxembourg, Luxembourg"> - LVRI <"Riga, Latvia"> - MACA <"Casablanca, Morocco"> - MARA <"Rabat, Morocco"> - MCMO <"Monaco, Monaco"> - MNUB <"Ulan Bator, Mongolia"> - MOMA <"Macau, Macao"> - MTVA <"Valletta, Malta"> - MUPL <"Port Louis, Mauritius"> - MVMA <"Male, Maldives"> - MWLI <"Lilongwe, Malawi"> - MXMC <"Mexico City, Mexico"> - MYKL <"Kuala Lumpur, Malaysia"> - MYLA <"Labuan, Malaysia"> - MZMA <"Maputo, Mozambique"> - NAWI <"Windhoek, Namibia"> - NGAB <"Abuja, Nigeria"> - NGLA <"Lagos, Nigeria"> - NLAM <"Amsterdam, Netherlands"> - NLRO <"Rotterdam, Netherlands"> - NOOS <"Oslo, Norway"> - NPKA <"Kathmandu, Nepal"> - NYFD <"New York Fed Business Day (as defined in 2006 ISDA Definitions Section 1.9 and 2000 ISDA Definitions Section 1.9)"> - NYSE <"New York Stock Exchange Business Day (as defined in 2006 ISDA Definitions Section 1.10 and 2000 ISDA Definitions Section 1.10)"> - NZAU <"Auckland, New Zealand"> - NZWE <"Wellington, New Zealand"> - OMMU <"Muscat, Oman"> - PAPC <"Panama City, Panama"> - PELI <"Lima, Peru"> - PHMA <"Manila, Philippines"> - PHMK <"Makati, Philippines"> - PKKA <"Karachi, Pakistan"> - PLWA <"Warsaw, Poland"> - PRSJ <"San Juan, Puerto Rico"> - PTLI <"Lisbon, Portugal"> - QADO <"Doha, Qatar"> - ROBU <"Bucharest, Romania"> - RSBE <"Belgrade, Serbia"> - RUMO <"Moscow, Russian Federation"> - SAAB <"Abha, Saudi Arabia"> - SAJE <"Jeddah, Saudi Arabia"> - SARI <"Riyadh, Saudi Arabia"> - SEST <"Stockholm, Sweden"> - SGSI <"Singapore, Singapore"> - SILJ <"Ljubljana, Slovenia"> - SKBR <"Bratislava, Slovakia"> - SLFR <"Freetown, Sierra Leone"> - SNDA <"Dakar, Senegal"> - SVSS <"San Salvador, El Salvador"> - THBA <"Bangkok, Thailand"> - TNTU <"Tunis, Tunisia"> - TRAN <"Ankara, Turkey"> - TRIS <"Istanbul, Turkey"> - TTPS <"Port of Spain, Trinidad and Tobago"> - TWTA <"Taipei, Taiwan"> - TZDA <"Dar es Salaam, Tanzania"> - TZDO <"Dodoma, Tanzania"> - UAKI <"Kiev, Ukraine"> - UGKA <"Kampala, Uganda"> - USBO <"Boston, Massachusetts, United States"> - USCH <"Chicago, United States"> - USCR <"Charlotte, North Carolina, United States"> - USDC <"Washington, District of Columbia, United States"> - USD_ICESWAP displayName "USD-ICESWAP" <"Publication dates for ICE Swap rates based on USD-LIBOR rates"> - USD_MUNI displayName "USD-MUNI" <"Publication dates for the USD-Municipal Swap Index"> - USDN <"Denver, United States"> - USDT <"Detroit, Michigan, United States"> - USGS <"U.S. Government Securities Business Day (as defined in 2006 ISDA Definitions Section 1.11 and 2000 ISDA Definitions Section 1.11)"> - USHL <"Honolulu, Hawaii, United States"> - USHO <"Houston, United States"> - USLA <"Los Angeles, United States"> - USMB <"Mobile, Alabama, United States"> - USMN <"Minneapolis, United States"> - USNY <"New York, United States"> - USPO <"Portland, Oregon, United States"> - USSA <"Sacramento, California, United States"> - USSE <"Seattle, United States"> - USSF <"San Francisco, United States"> - USWT <"Wichita, United States"> - UYMO <"Montevideo, Uruguay"> - UZTA <"Tashkent, Uzbekistan"> - VECA <"Caracas, Venezuela"> - VGRT <"Road Town, Virgin Islands (British)"> - VNHA <"Hanoi, Vietnam"> - VNHC <"Ho Chi Minh (formerly Saigon), Vietnam"> - YEAD <"Aden, Yemen"> - ZAJO <"Johannesburg, South Africa"> - ZMLU <"Lusaka, Zambia"> - ZWHA <"Harare, Zimbabwe"> + AEAB <"Abu Dhabi, Business Day (as defined in 2021 ISDA Definitions Section 2.1.9 (ii))"> + AEAD <"Abu Dhabi, Settlement Day (as defined in 2021 ISDA Definitions Section 2.1.9 (i))"> + AEDU <"Dubai, United Arab Emirates"> + AMYE <"Yerevan, Armenia"> + AOLU <"Luanda, Angola"> + ARBA <"Buenos Aires, Argentina"> + ATVI <"Vienna, Austria"> + AUAD <"Adelaide, Australia"> + AUBR <"Brisbane, Australia"> + AUCA <"Canberra, Australia"> + AUDA <"Darwin, Australia"> + AUME <"Melbourne, Australia"> + AUPE <"Perth, Australia"> + AUSY <"Sydney, Australia"> + AZBA <"Baku, Azerbaijan"> + BBBR <"Bridgetown, Barbados"> + BDDH <"Dhaka, Bangladesh"> + BEBR <"Brussels, Belgium"> + BGSO <"Sofia, Bulgaria"> + BHMA <"Manama, Bahrain"> + BMHA <"Hamilton, Bermuda"> + BNBS <"Bandar Seri Begawan, Brunei"> + BOLP <"La Paz, Bolivia"> + BRBD <"Brazil Business Day."> + BRBR <"Brasilia, Brazil."> + BRRJ <"Rio de Janeiro, Brazil."> + BRSP <"Sao Paulo, Brazil."> + BSNA <"Nassau, Bahamas"> + BWGA <"Gaborone, Botswana"> + BYMI <"Minsk, Belarus"> + CACL <"Calgary, Canada"> + CAFR <"Fredericton, Canada."> + CAMO <"Montreal, Canada"> + CAOT <"Ottawa, Canada"> + CATO <"Toronto, Canada"> + CAVA <"Vancouver, Canada"> + CAWI <"Winnipeg, Canada"> + CHBA <"Basel, Switzerland"> + CHGE <"Geneva, Switzerland"> + CHZU <"Zurich, Switzerland"> + CIAB <"Abidjan, Cote d'Ivoire"> + CLSA <"Santiago, Chile"> + CMYA <"Yaounde, Cameroon"> + CNBE <"Beijing, China"> + CNSH <"Shanghai, China"> + COBO <"Bogota, Colombia"> + CRSJ <"San Jose, Costa Rica"> + CWWI <"Willemstad, Curacao"> + CYNI <"Nicosia, Cyprus"> + CZPR <"Prague, Czech Republic"> + DECO <"Cologne, Germany"> + DEDU <"Dusseldorf, Germany"> + DEFR <"Frankfurt, Germany"> + DEHA <"Hannover, Germany"> + DEHH <"Hamburg, Germany"> + DELE <"Leipzig, Germany"> + DEMA <"Mainz, Germany"> + DEMU <"Munich, Germany"> + DEST <"Stuttgart, Germany"> + DKCO <"Copenhagen, Denmark"> + DOSD <"Santo Domingo, Dominican Republic"> + DZAL <"Algiers, Algeria"> + ECGU <"Guayaquil, Ecuador"> + EETA <"Tallinn, Estonia"> + EGCA <"Cairo, Egypt"> + ESAS <"ESAS Settlement Day (as defined in 2006 ISDA Definitions Section 7.1 and Supplement Number 15 to the 2000 ISDA Definitions)"> + ESBA <"Barcelona, Spain"> + ESMA <"Madrid, Spain"> + ESSS <"San Sebastian, Spain"> + ETAA <"Addis Ababa, Ethiopia"> + EUR_ICESWAP displayName "EUR-ICESWAP" <"Publication dates for ICE Swap rates based on EUR-EURIBOR rates"> + EUTA <"TARGET Settlement Day"> + FIHE <"Helsinki, Finland"> + FRPA <"Paris, France"> + GBED <"Edinburgh, Scotland"> + GBLO <"London, United Kingdom"> + GBP_ICESWAP displayName "GBP-ICESWAP" <"Publication dates for GBP ICE Swap rates"> + GETB <"Tbilisi, Georgia"> + GGSP <"Saint Peter Port, Guernsey"> + GHAC <"Accra, Ghana"> + GMBA <"Banjul, Gambia"> + GNCO <"Conakry, Guinea"> + GRAT <"Athens, Greece"> + GUGC <"Guatemala City, Guatemala"> + HKHK <"Hong Kong, Hong Kong"> + HNTE <"Tegucigalpa, Honduras"> + HRZA <"Zagreb, Republic of Croatia"> + HUBU <"Budapest, Hungary"> + IDJA <"Jakarta, Indonesia"> + IEDU <"Dublin, Ireland"> + ILJE <"Jerusalem, Israel"> + ILS_TELBOR displayName "ILS-TELBOR" <"Publication dates of the ILS-TELBOR index."> + ILTA <"Tel Aviv, Israel"> + INAH <"Ahmedabad, India"> + INBA <"Bangalore, India"> + INCH <"Chennai, India"> + INHY <"Hyderabad, India"> + INKO <"Kolkata, India"> + INMU <"Mumbai, India"> + INND <"New Delhi, India"> + IQBA <"Baghdad, Iraq"> + IRTE <"Teheran, Iran"> + ISRE <"Reykjavik, Iceland"> + ITMI <"Milan, Italy"> + ITRO <"Rome, Italy"> + ITTU <"Turin, Italy"> + JESH <"St. Helier, Channel Islands, Jersey"> + JMKI <"Kingston, Jamaica"> + JOAM <"Amman, Jordan"> + JPTO <"Tokyo, Japan"> + KENA <"Nairobi, Kenya"> + KHPP <"Phnom Penh, Cambodia"> + KRSE <"Seoul, Republic of Korea"> + KWKC <"Kuwait City, Kuwait"> + KYGE <"George Town, Cayman Islands"> + KZAL <"Almaty, Kazakhstan"> + LAVI <"Vientiane, Laos"> + LBBE <"Beirut, Lebanon"> + LKCO <"Colombo, Sri Lanka"> + LULU <"Luxembourg, Luxembourg"> + LVRI <"Riga, Latvia"> + MACA <"Casablanca, Morocco"> + MARA <"Rabat, Morocco"> + MCMO <"Monaco, Monaco"> + MNUB <"Ulan Bator, Mongolia"> + MOMA <"Macau, Macao"> + MTVA <"Valletta, Malta"> + MUPL <"Port Louis, Mauritius"> + MVMA <"Male, Maldives"> + MWLI <"Lilongwe, Malawi"> + MXMC <"Mexico City, Mexico"> + MYKL <"Kuala Lumpur, Malaysia"> + MYLA <"Labuan, Malaysia"> + MZMA <"Maputo, Mozambique"> + NAWI <"Windhoek, Namibia"> + NGAB <"Abuja, Nigeria"> + NGLA <"Lagos, Nigeria"> + NLAM <"Amsterdam, Netherlands"> + NLRO <"Rotterdam, Netherlands"> + NOOS <"Oslo, Norway"> + NPKA <"Kathmandu, Nepal"> + NYFD <"New York Fed Business Day (as defined in 2006 ISDA Definitions Section 1.9 and 2000 ISDA Definitions Section 1.9)"> + NYSE <"New York Stock Exchange Business Day (as defined in 2006 ISDA Definitions Section 1.10 and 2000 ISDA Definitions Section 1.10)"> + NZAU <"Auckland, New Zealand"> + NZWE <"Wellington, New Zealand"> + OMMU <"Muscat, Oman"> + PAPC <"Panama City, Panama"> + PELI <"Lima, Peru"> + PHMA <"Manila, Philippines"> + PHMK <"Makati, Philippines"> + PKKA <"Karachi, Pakistan"> + PLWA <"Warsaw, Poland"> + PRSJ <"San Juan, Puerto Rico"> + PTLI <"Lisbon, Portugal"> + QADO <"Doha, Qatar"> + ROBU <"Bucharest, Romania"> + RSBE <"Belgrade, Serbia"> + RUMO <"Moscow, Russian Federation"> + SAAB <"Abha, Saudi Arabia"> + SAJE <"Jeddah, Saudi Arabia"> + SARI <"Riyadh, Saudi Arabia"> + SEST <"Stockholm, Sweden"> + SGSI <"Singapore, Singapore"> + SILJ <"Ljubljana, Slovenia"> + SKBR <"Bratislava, Slovakia"> + SLFR <"Freetown, Sierra Leone"> + SNDA <"Dakar, Senegal"> + SVSS <"San Salvador, El Salvador"> + THBA <"Bangkok, Thailand"> + TNTU <"Tunis, Tunisia"> + TRAN <"Ankara, Turkey"> + TRIS <"Istanbul, Turkey"> + TTPS <"Port of Spain, Trinidad and Tobago"> + TWTA <"Taipei, Taiwan"> + TZDA <"Dar es Salaam, Tanzania"> + TZDO <"Dodoma, Tanzania"> + UAKI <"Kiev, Ukraine"> + UGKA <"Kampala, Uganda"> + USBO <"Boston, Massachusetts, United States"> + USCH <"Chicago, United States"> + USCR <"Charlotte, North Carolina, United States"> + USDC <"Washington, District of Columbia, United States"> + USD_ICESWAP displayName "USD-ICESWAP" <"Publication dates for ICE Swap rates based on USD-LIBOR rates"> + USD_MUNI displayName "USD-MUNI" <"Publication dates for the USD-Municipal Swap Index"> + USDN <"Denver, United States"> + USDT <"Detroit, Michigan, United States"> + USGS <"U.S. Government Securities Business Day (as defined in 2006 ISDA Definitions Section 1.11 and 2000 ISDA Definitions Section 1.11)"> + USHL <"Honolulu, Hawaii, United States"> + USHO <"Houston, United States"> + USLA <"Los Angeles, United States"> + USMB <"Mobile, Alabama, United States"> + USMN <"Minneapolis, United States"> + USNY <"New York, United States"> + USPO <"Portland, Oregon, United States"> + USSA <"Sacramento, California, United States"> + USSE <"Seattle, United States"> + USSF <"San Francisco, United States"> + USWT <"Wichita, United States"> + UYMO <"Montevideo, Uruguay"> + UZTA <"Tashkent, Uzbekistan"> + VECA <"Caracas, Venezuela"> + VGRT <"Road Town, Virgin Islands (British)"> + VNHA <"Hanoi, Vietnam"> + VNHC <"Ho Chi Minh (formerly Saigon), Vietnam"> + YEAD <"Aden, Yemen"> + ZAJO <"Johannesburg, South Africa"> + ZMLU <"Lusaka, Zambia"> + ZWHA <"Harare, Zimbabwe"> enum CommodityBusinessCalendarEnum: [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/commodity-business-calendar"] - ADSM <"Abu Dhabi Securities Exchange https://www.adx.ae/"> - AGRUS_FMB displayName "AGRUS-FMB" <"Argus Media Fertilizer Reports. http://www.argusmedia.com/Fertilizer"> - APPI <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - ARGUS_CRUDE displayName "ARGUS-CRUDE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - ARGUS_EUROPEAN_GAS displayName "ARGUS-EUROPEAN-GAS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - ARGUS_EUROPEAN_PRODUCTS displayName "ARGUS-EUROPEAN-PRODUCTS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - ARGUS_INTERNATIONAL_LPG displayName "ARGUS-INTERNATIONAL-LPG" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - ARGUS_MCCLOSKEYS_COAL_REPORT displayName "ARGUS-MCCLOSKEYS-COAL-REPORT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - ARGUS_US_PRODUCTS displayName "ARGUS-US-PRODUCTS" <"The Argus US Products report. http://www.argusmedia.com/Petroleum/Petroleum-Products/Argus-US-Products"> - ASX <"Australian Securities Exchange http://www.asx.com.au/"> - AWB <"Australian Wheat Board. www.awb.com.au"> - AWEX <"Australian Wool Exchange. http://www.awex.com.au/home.html"> - BALTIC_EXCHANGE displayName "BALTIC-EXCHANGE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - BANK_NEGARA_MALAYSIA_POLICY_COMMITTEE displayName "BANK-NEGARA-MALAYSIA-POLICY-COMMITTEE" <"The business calendar of the Bank Negara Malaysia Policy Committee."> - BELPEX <"The business calendar for the Belpex power exchange (www.belpex.be)."> - BLUENEXT <"BlueNext Power Market."> - BM_F displayName "BM&F" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - BURSA_MALAYSIA_SETTLEMENT displayName "BURSA-MALAYSIA-SETTLEMENT" <"The settlement business calendar for Bursa Malaysia."> - BURSA_MALAYSIA_TRADING displayName "BURSA-MALAYSIA-TRADING" <"The trading business calendar for Bursa Malaysia."> - CANADIAN_GAS_PRICE_REPORTER displayName "CANADIAN-GAS-PRICE-REPORTER" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - CBOT_SOFT displayName "CBOT-SOFT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - CMAI_AROMATICS_MARKET_REPORT displayName "CMAI-AROMATICS-MARKET-REPORT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - CMAI_GLOBAL_PLASTICS_AND_POLYMERS_MARKET_REPORT displayName "CMAI-GLOBAL-PLASTICS-AND-POLYMERS-MARKET-REPORT" <"CMAI Global Plastics and Polymers Market Report. http://www.ihs.com/products/chemical/index.aspx?pu=1&rd=cmai"> - CMAI_METHANOL_MARKET_REPORT displayName "CMAI-METHANOL-MARKET-REPORT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - CMAI_MONOMERS_MARKET_REPORT displayName "CMAI-MONOMERS-MARKET-REPORT" <"CMAI Monomers Market Report. http://www.ihs.com/products/chemical/index.aspx?pu=1&rd=cmai"> - CME_DAIRY displayName "CME-DAIRY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - CME_NON_DAIRY_SOFT displayName "CME-NON-DAIRY-SOFT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - COMEX <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - CRU <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - CRU_LONG displayName "CRU-LONG" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - DEPARTMENT_OF_ENERGY displayName "DEPARTMENT-OF-ENERGY" <"The business calendar for statistical publications by the by the United States Department of Energy (DOE)."> - DEWITT_BENZENE_DERIVATIVES displayName "DEWITT-BENZENE-DERIVATIVES" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - DME <"Dubai Mercantile Exchange. http://www.dubaimerc.com/"> - DOW_JONES displayName "DOW-JONES" <"Dow Jones US Calendar. http://www.dowjones.com/"> - DOW_JONES_ENERGY_SERVICE displayName "DOW-JONES-ENERGY-SERVICE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - DowJonesPower <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - EEX_COAL displayName "EEX-COAL" <"European Energy Exchange-Coal"> - EEX_EMISSIONS displayName "EEX-EMISSIONS" <"European Energy Exchange-Emissions Rights"> - EEX_GAS displayName "EEX-GAS" <"European Energy Exchange-Gas"> - EEX_POWER displayName "EEX-POWER" <"European Energy Exchange-Power"> - EURONEX_MATIF displayName "EURONEX-MATIF" <"TBD."> - FERTECON <"FERTECON Limited Information Services. http://fertecon.com/current_information_services.asp"> - FERTILIZER_WEEK displayName "FERTILIZER-WEEK" <"Fertilizer Week. http://www.crugroup.com/market-analysis/products/fertilizerweek"> - GAS_DAILY displayName "GAS-DAILY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - GAS_DAILY_PRICE_GUIDE displayName "GAS-DAILY-PRICE-GUIDE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - GLOBALCOAL <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - HEREN_REPORT displayName "HEREN-REPORT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - ICE_10X_DAILY displayName "ICE/10X-DAILY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - ICE_10X_MONTHLY displayName "ICE/10X-MONTHLY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - ICE_CANADA displayName "ICE-CANADA" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - ICE_ECX displayName "ICE-ECX" <"European Climate Exchange."> - ICE_GAS displayName "ICE-GAS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - ICE_OIL displayName "ICE-OIL" <"The business calendar oil and refined product contracts on ICE Futures Europe."> - ICE_US_AGRICULTURAL displayName "ICE-US-AGRICULTURAL" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - ICIS_PRICING_BENZENE__EUROPE_ displayName "ICIS-PRICING-BENZENE-(EUROPE)" <"The business calendar for publication of ICIS Benzene (Europe) data."> - ICIS_PRICING_ETHYLENE__EUROPE_ displayName "ICIS-PRICING-ETHYLENE-(EUROPE)" <"The business calendar for publication of ICIS Ethylene (Europe) data."> - ICIS_PRICING_POLYPROPYLENE__EUROPE_ displayName "ICIS-PRICING-POLYPROPYLENE-(EUROPE)" <"The business calendar for publication of ICIS Polyproylene (Europe) data."> - INSIDE_FERC displayName "INSIDE-FERC" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - JAPAN_MOF_TSRR displayName "JAPAN-MOF-TSRR" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - KCBOT <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - KUALA_LUMPUR_BANK displayName "KUALA-LUMPUR-BANK" <"The banking business calendar in Kuala Lumpur."> - LABUAN_BANK displayName "LABUAN-BANK" <"The business calendar for the Labuan Bank (Malaysia)."> - LIFFE_LONDON_SOFT displayName "LIFFE-LONDON-SOFT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - LME <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - LONDON_BULLION_MARKET displayName "LONDON-BULLION-MARKET" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - LONDON_BULLION_MARKET_GOLD_A_M_ONLY displayName "LONDON-BULLION-MARKET-GOLD-A.M-ONLY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - LONDON_PLATINUM_PALLADIUM_MARKET displayName "LONDON-PLATINUM-PALLADIUM-MARKET" <"The London Platinum and Palladium Market in London on which members quote prices for the buying and selling of Platinum and Palladium."> - MGEX <"Minneapolis Grain Exchange http://www.mgex.com/"> - N2EX <"The business calendar for the N2EX UK power exchange (https://www.n2ex.com/aboutn2ex)."> - NASDAQ_OMX displayName "NASDAQ-OMX" <"NASDAQ-OMX (Formerly known as Nordpool). http://www.nasdaqomx.com/commodities"> - NATURAL_GAS_WEEK displayName "NATURAL-GAS-WEEK" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - NERC <"Per 2005 ISDA Commodity Definitions, Article XIV."> - NGI <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - NGX <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - NUCLEAR_MARKET_REVIEW displayName "NUCLEAR-MARKET-REVIEW" <"The Nuclear Market Review report as published by Trade tech. http://www.uranium.info/nuclear_market_review.php"> - NYMEX_ELECTRICITY displayName "NYMEX-ELECTRICITY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - NYMEX_GAS displayName "NYMEX-GAS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - NYMEX_NATURAL_GAS displayName "NYMEX-NATURAL-GAS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - NYMEX_OIL displayName "NYMEX-OIL" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - OFFICIAL_BOARD_MARKETS displayName "OFFICIAL-BOARD-MARKETS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - OPIS_LP_GAS displayName "OPIS-LP-GAS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - OPIS_PROPANE displayName "OPIS-PROPANE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PAPER_PACKAGING_MONITOR displayName "PAPER-PACKAGING-MONITOR" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PAPER_TRADER displayName "PAPER-TRADER" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PERTAMINA <"Pertamina-Indonesia. http://www.pertamina.com/"> - PETROCHEMWIRE <"PetroChemWire Publication Calendar. http://www.petrochemwire.com/"> - PIX_PULP_BENCHMARK_INDICES displayName "PIX-PULP-BENCHMARK-INDICES" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PLATTS_APAG_MARKETSCAN displayName "PLATTS-APAG-MARKETSCAN" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PLATTS_BUNKERWIRE displayName "PLATTS-BUNKERWIRE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PLATTS_CLEAN_TANKERWIRE displayName "PLATTS-CLEAN-TANKERWIRE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PLATTS_CRUDE_OIL_MARKETWIRE displayName "PLATTS-CRUDE-OIL-MARKETWIRE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PLATTS_DIRTY_TANKERWIRE displayName "PLATTS-DIRTY-TANKERWIRE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PLATTS_EUROPEAN_GAS displayName "PLATTS-EUROPEAN-GAS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PLATTS_EUROPEAN_MARKETSCAN displayName "PLATTS-EUROPEAN-MARKETSCAN" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PLATTS_METALS_ALERT displayName "PLATTS-METALS-ALERT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PLATTS_OILGRAM displayName "PLATTS-OILGRAM" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PLATTS_TSI_IRON_ORE displayName "PLATTS-TSI-IRON-ORE" <"The Steel Index Iron Ore Service. http://www.thesteelindex.com/en/iron-ore"> - PLATTS_TSI_SCRAP displayName "PLATTS-TSI-SCRAP" <"The Steel Index Scrap Reference Prices. http://www.thesteelindex.com/en/scrapprices"> - PLATTS_TSI_STEEL displayName "PLATTS-TSI-STEEL" <"The Steel Index. http://www.thesteelindex.com/en/price-specifications"> - PLATTS_US_MARKETSCAN displayName "PLATTS-US-MARKETSCAN" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PULP_AND_PAPER_INTERNATIONAL displayName "PULP-AND-PAPER-INTERNATIONAL" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - PULP_AND_PAPER_WEEK displayName "PULP-AND-PAPER-WEEK" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - RIM_PRODUCTS_INTELLIGENCE_DAILY displayName "RIM-PRODUCTS-INTELLIGENCE-DAILY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - SAFEX_SOFT displayName "SAFEX-SOFT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - SFE_SOFT displayName "SFE-SOFT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - SGX <"Singapore Exchange. www.sgx.com"> - SICOM <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - SP_GSCI displayName "SP-GSCI" <"Standard and Poor's GSCI. http://us.spindices.com/index-family/commodities/sp-gsci"> - STATISTICHES_BUNDESAMT displayName "STATISTICHES-BUNDESAMT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - TGE <"Tokyo Grain Exchange. www.tge.or.jp"> - TOCOM_OIL displayName "TOCOM-OIL" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - TOCOM_PRECIOUS displayName "TOCOM-PRECIOUS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - TOCOM_SOFT displayName "TOCOM-SOFT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> - UX_WEEKLY displayName "UX-WEEKLY" <"The Ux Consulting Company. http://www.uxc.com/products/uxw_overview.aspx"> - WORLD_PULP_MONTHLY displayName "WORLD-PULP-MONTHLY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ADSM <"Abu Dhabi Securities Exchange https://www.adx.ae/"> + AGRUS_FMB displayName "AGRUS-FMB" <"Argus Media Fertilizer Reports. http://www.argusmedia.com/Fertilizer"> + APPI <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ARGUS_CRUDE displayName "ARGUS-CRUDE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ARGUS_EUROPEAN_GAS displayName "ARGUS-EUROPEAN-GAS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ARGUS_EUROPEAN_PRODUCTS displayName "ARGUS-EUROPEAN-PRODUCTS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ARGUS_INTERNATIONAL_LPG displayName "ARGUS-INTERNATIONAL-LPG" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ARGUS_MCCLOSKEYS_COAL_REPORT displayName "ARGUS-MCCLOSKEYS-COAL-REPORT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ARGUS_US_PRODUCTS displayName "ARGUS-US-PRODUCTS" <"The Argus US Products report. http://www.argusmedia.com/Petroleum/Petroleum-Products/Argus-US-Products"> + ASX <"Australian Securities Exchange http://www.asx.com.au/"> + AWB <"Australian Wheat Board. www.awb.com.au"> + AWEX <"Australian Wool Exchange. http://www.awex.com.au/home.html"> + BALTIC_EXCHANGE displayName "BALTIC-EXCHANGE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + BANK_NEGARA_MALAYSIA_POLICY_COMMITTEE displayName "BANK-NEGARA-MALAYSIA-POLICY-COMMITTEE" <"The business calendar of the Bank Negara Malaysia Policy Committee."> + BELPEX <"The business calendar for the Belpex power exchange (www.belpex.be)."> + BLUENEXT <"BlueNext Power Market."> + BM_F displayName "BM&F" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + BURSA_MALAYSIA_SETTLEMENT displayName "BURSA-MALAYSIA-SETTLEMENT" <"The settlement business calendar for Bursa Malaysia."> + BURSA_MALAYSIA_TRADING displayName "BURSA-MALAYSIA-TRADING" <"The trading business calendar for Bursa Malaysia."> + CANADIAN_GAS_PRICE_REPORTER displayName "CANADIAN-GAS-PRICE-REPORTER" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + CBOT_SOFT displayName "CBOT-SOFT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + CMAI_AROMATICS_MARKET_REPORT displayName "CMAI-AROMATICS-MARKET-REPORT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + CMAI_GLOBAL_PLASTICS_AND_POLYMERS_MARKET_REPORT displayName "CMAI-GLOBAL-PLASTICS-AND-POLYMERS-MARKET-REPORT" <"CMAI Global Plastics and Polymers Market Report. http://www.ihs.com/products/chemical/index.aspx?pu=1&rd=cmai"> + CMAI_METHANOL_MARKET_REPORT displayName "CMAI-METHANOL-MARKET-REPORT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + CMAI_MONOMERS_MARKET_REPORT displayName "CMAI-MONOMERS-MARKET-REPORT" <"CMAI Monomers Market Report. http://www.ihs.com/products/chemical/index.aspx?pu=1&rd=cmai"> + CME_DAIRY displayName "CME-DAIRY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + CME_NON_DAIRY_SOFT displayName "CME-NON-DAIRY-SOFT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + COMEX <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + CRU <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + CRU_LONG displayName "CRU-LONG" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + DEPARTMENT_OF_ENERGY displayName "DEPARTMENT-OF-ENERGY" <"The business calendar for statistical publications by the by the United States Department of Energy (DOE)."> + DEWITT_BENZENE_DERIVATIVES displayName "DEWITT-BENZENE-DERIVATIVES" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + DME <"Dubai Mercantile Exchange. http://www.dubaimerc.com/"> + DOW_JONES displayName "DOW-JONES" <"Dow Jones US Calendar. http://www.dowjones.com/"> + DOW_JONES_ENERGY_SERVICE displayName "DOW-JONES-ENERGY-SERVICE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + DowJonesPower <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + EEX_COAL displayName "EEX-COAL" <"European Energy Exchange-Coal"> + EEX_EMISSIONS displayName "EEX-EMISSIONS" <"European Energy Exchange-Emissions Rights"> + EEX_GAS displayName "EEX-GAS" <"European Energy Exchange-Gas"> + EEX_POWER displayName "EEX-POWER" <"European Energy Exchange-Power"> + EURONEX_MATIF displayName "EURONEX-MATIF" <"TBD."> + FERTECON <"FERTECON Limited Information Services. http://fertecon.com/current_information_services.asp"> + FERTILIZER_WEEK displayName "FERTILIZER-WEEK" <"Fertilizer Week. http://www.crugroup.com/market-analysis/products/fertilizerweek"> + GAS_DAILY displayName "GAS-DAILY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + GAS_DAILY_PRICE_GUIDE displayName "GAS-DAILY-PRICE-GUIDE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + GLOBALCOAL <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + HEREN_REPORT displayName "HEREN-REPORT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ICE_10X_DAILY displayName "ICE/10X-DAILY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ICE_10X_MONTHLY displayName "ICE/10X-MONTHLY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ICE_CANADA displayName "ICE-CANADA" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ICE_ECX displayName "ICE-ECX" <"European Climate Exchange."> + ICE_GAS displayName "ICE-GAS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ICE_OIL displayName "ICE-OIL" <"The business calendar oil and refined product contracts on ICE Futures Europe."> + ICE_US_AGRICULTURAL displayName "ICE-US-AGRICULTURAL" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + ICIS_PRICING_BENZENE__EUROPE_ displayName "ICIS-PRICING-BENZENE-(EUROPE)" <"The business calendar for publication of ICIS Benzene (Europe) data."> + ICIS_PRICING_ETHYLENE__EUROPE_ displayName "ICIS-PRICING-ETHYLENE-(EUROPE)" <"The business calendar for publication of ICIS Ethylene (Europe) data."> + ICIS_PRICING_POLYPROPYLENE__EUROPE_ displayName "ICIS-PRICING-POLYPROPYLENE-(EUROPE)" <"The business calendar for publication of ICIS Polyproylene (Europe) data."> + INSIDE_FERC displayName "INSIDE-FERC" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + JAPAN_MOF_TSRR displayName "JAPAN-MOF-TSRR" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + KCBOT <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + KUALA_LUMPUR_BANK displayName "KUALA-LUMPUR-BANK" <"The banking business calendar in Kuala Lumpur."> + LABUAN_BANK displayName "LABUAN-BANK" <"The business calendar for the Labuan Bank (Malaysia)."> + LIFFE_LONDON_SOFT displayName "LIFFE-LONDON-SOFT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + LME <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + LONDON_BULLION_MARKET displayName "LONDON-BULLION-MARKET" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + LONDON_BULLION_MARKET_GOLD_A_M_ONLY displayName "LONDON-BULLION-MARKET-GOLD-A.M-ONLY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + LONDON_PLATINUM_PALLADIUM_MARKET displayName "LONDON-PLATINUM-PALLADIUM-MARKET" <"The London Platinum and Palladium Market in London on which members quote prices for the buying and selling of Platinum and Palladium."> + MGEX <"Minneapolis Grain Exchange http://www.mgex.com/"> + N2EX <"The business calendar for the N2EX UK power exchange (https://www.n2ex.com/aboutn2ex)."> + NASDAQ_OMX displayName "NASDAQ-OMX" <"NASDAQ-OMX (Formerly known as Nordpool). http://www.nasdaqomx.com/commodities"> + NATURAL_GAS_WEEK displayName "NATURAL-GAS-WEEK" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + NERC <"Per 2005 ISDA Commodity Definitions, Article XIV."> + NGI <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + NGX <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + NUCLEAR_MARKET_REVIEW displayName "NUCLEAR-MARKET-REVIEW" <"The Nuclear Market Review report as published by Trade tech. http://www.uranium.info/nuclear_market_review.php"> + NYMEX_ELECTRICITY displayName "NYMEX-ELECTRICITY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + NYMEX_GAS displayName "NYMEX-GAS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + NYMEX_NATURAL_GAS displayName "NYMEX-NATURAL-GAS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + NYMEX_OIL displayName "NYMEX-OIL" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + OFFICIAL_BOARD_MARKETS displayName "OFFICIAL-BOARD-MARKETS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + OPIS_LP_GAS displayName "OPIS-LP-GAS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + OPIS_PROPANE displayName "OPIS-PROPANE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PAPER_PACKAGING_MONITOR displayName "PAPER-PACKAGING-MONITOR" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PAPER_TRADER displayName "PAPER-TRADER" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PERTAMINA <"Pertamina-Indonesia. http://www.pertamina.com/"> + PETROCHEMWIRE <"PetroChemWire Publication Calendar. http://www.petrochemwire.com/"> + PIX_PULP_BENCHMARK_INDICES displayName "PIX-PULP-BENCHMARK-INDICES" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PLATTS_APAG_MARKETSCAN displayName "PLATTS-APAG-MARKETSCAN" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PLATTS_BUNKERWIRE displayName "PLATTS-BUNKERWIRE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PLATTS_CLEAN_TANKERWIRE displayName "PLATTS-CLEAN-TANKERWIRE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PLATTS_CRUDE_OIL_MARKETWIRE displayName "PLATTS-CRUDE-OIL-MARKETWIRE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PLATTS_DIRTY_TANKERWIRE displayName "PLATTS-DIRTY-TANKERWIRE" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PLATTS_EUROPEAN_GAS displayName "PLATTS-EUROPEAN-GAS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PLATTS_EUROPEAN_MARKETSCAN displayName "PLATTS-EUROPEAN-MARKETSCAN" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PLATTS_METALS_ALERT displayName "PLATTS-METALS-ALERT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PLATTS_OILGRAM displayName "PLATTS-OILGRAM" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PLATTS_TSI_IRON_ORE displayName "PLATTS-TSI-IRON-ORE" <"The Steel Index Iron Ore Service. http://www.thesteelindex.com/en/iron-ore"> + PLATTS_TSI_SCRAP displayName "PLATTS-TSI-SCRAP" <"The Steel Index Scrap Reference Prices. http://www.thesteelindex.com/en/scrapprices"> + PLATTS_TSI_STEEL displayName "PLATTS-TSI-STEEL" <"The Steel Index. http://www.thesteelindex.com/en/price-specifications"> + PLATTS_US_MARKETSCAN displayName "PLATTS-US-MARKETSCAN" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PULP_AND_PAPER_INTERNATIONAL displayName "PULP-AND-PAPER-INTERNATIONAL" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + PULP_AND_PAPER_WEEK displayName "PULP-AND-PAPER-WEEK" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + RIM_PRODUCTS_INTELLIGENCE_DAILY displayName "RIM-PRODUCTS-INTELLIGENCE-DAILY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + SAFEX_SOFT displayName "SAFEX-SOFT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + SFE_SOFT displayName "SFE-SOFT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + SGX <"Singapore Exchange. www.sgx.com"> + SICOM <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + SP_GSCI displayName "SP-GSCI" <"Standard and Poor's GSCI. http://us.spindices.com/index-family/commodities/sp-gsci"> + STATISTICHES_BUNDESAMT displayName "STATISTICHES-BUNDESAMT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + TGE <"Tokyo Grain Exchange. www.tge.or.jp"> + TOCOM_OIL displayName "TOCOM-OIL" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + TOCOM_PRECIOUS displayName "TOCOM-PRECIOUS" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + TOCOM_SOFT displayName "TOCOM-SOFT" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> + UX_WEEKLY displayName "UX-WEEKLY" <"The Ux Consulting Company. http://www.uxc.com/products/uxw_overview.aspx"> + WORLD_PULP_MONTHLY displayName "WORLD-PULP-MONTHLY" <"Per 2005 ISDA Commodity Definitions, Section 7.2 Certain Definitions Relating To Commodity Reference Prices."> enum BusinessDayConventionEnum: <"The enumerated values to specify the convention for adjusting any relevant date if it would otherwise fall on a day that is not a valid business day."> - FOLLOWING <"The non-business date will be adjusted to the first following day that is a business day"> - FRN <"Per 2000 ISDA Definitions, Section 4.11. FRN Convention; Eurodollar Convention. FRN is included here as a type of business day convention although it does not strictly fall within ISDA's definition of a Business Day Convention and does not conform to the simple definition given above."> - MODFOLLOWING <"The non-business date will be adjusted to the first following day that is a business day unless that day falls in the next calendar month, in which case that date will be the first preceding day that is a business day."> - PRECEDING <"The non-business day will be adjusted to the first preceding day that is a business day."> - MODPRECEDING <"The non-business date will be adjusted to the first preceding day that is a business day unless that day falls in the previous calendar month, in which case that date will be the first following day that us a business day."> - NEAREST <"The non-business date will be adjusted to the nearest day that is a business day - i.e. if the non-business day falls on any day other than a Sunday or a Monday, it will be the first preceding day that is a business day, and will be the first following business day if it falls on a Sunday or a Monday."> - NONE <"The date will not be adjusted if it falls on a day that is not a business day."> - NotApplicable <"The date adjustments conventions are defined elsewhere, so it is not required to specify them here."> + FOLLOWING <"The non-business date will be adjusted to the first following day that is a business day"> + FRN <"Per 2000 ISDA Definitions, Section 4.11. FRN Convention; Eurodollar Convention. FRN is included here as a type of business day convention although it does not strictly fall within ISDA's definition of a Business Day Convention and does not conform to the simple definition given above."> + MODFOLLOWING <"The non-business date will be adjusted to the first following day that is a business day unless that day falls in the next calendar month, in which case that date will be the first preceding day that is a business day."> + PRECEDING <"The non-business day will be adjusted to the first preceding day that is a business day."> + MODPRECEDING <"The non-business date will be adjusted to the first preceding day that is a business day unless that day falls in the previous calendar month, in which case that date will be the first following day that us a business day."> + NEAREST <"The non-business date will be adjusted to the nearest day that is a business day - i.e. if the non-business day falls on any day other than a Sunday or a Monday, it will be the first preceding day that is a business day, and will be the first following business day if it falls on a Sunday or a Monday."> + NONE <"The date will not be adjusted if it falls on a day that is not a business day."> + NotApplicable <"The date adjustments conventions are defined elsewhere, so it is not required to specify them here."> enum DayOfWeekEnum: <"The enumerated values to specify a day of the seven-day week."> - MON <"Monday"> - TUE <"Tuesday"> - WED <"Wednesday"> - THU <"Thursday"> - FRI <"Friday"> - SAT <"Saturday"> - SUN <"Sunday"> + MON <"Monday"> + TUE <"Tuesday"> + WED <"Wednesday"> + THU <"Thursday"> + FRI <"Friday"> + SAT <"Saturday"> + SUN <"Sunday"> enum DayTypeEnum: <"Lists the enumerated values to specify the day type classification used in counting the number of days between two dates."> - Business <"Applies when calculating the number of days between two dates the count includes only business days."> - Calendar <"Applies when calculating the number of days between two dates the count includes all calendar days."> - CurrencyBusiness <"Applies when calculating the number of days between two dates the count includes only currency business days."> - ExchangeBusiness <"Applies when calculating the number of days between two dates the count includes only stock exchange business days."> - ScheduledTradingDay <"Applies when calculating the number of days between two dates the count includes only scheduled trading days."> + Business <"Applies when calculating the number of days between two dates the count includes only business days."> + Calendar <"Applies when calculating the number of days between two dates the count includes all calendar days."> + CurrencyBusiness <"Applies when calculating the number of days between two dates the count includes only currency business days."> + ExchangeBusiness <"Applies when calculating the number of days between two dates the count includes only stock exchange business days."> + ScheduledTradingDay <"Applies when calculating the number of days between two dates the count includes only scheduled trading days."> enum PeriodEnum: <"The enumerated values to specify the period, e.g. day, week."> - D <"Day"> - W <"Week"> - M <"Month"> - Y <"Year"> + D <"Day"> + W <"Week"> + M <"Month"> + Y <"Year"> enum PeriodExtendedEnum /*extends PeriodEnum*/ : <"The enumerated values to specify a time period containing the additional value of Term."> - H <"Hour"> - D <"Day"> - W <"Week"> - M <"Month"> - Y <"Year"> - T <"Term. The period commencing on the effective date and ending on the termination date. The T period always appears in association with periodMultiplier = 1, and the notation is intended for use in contexts where the interval thus qualified (e.g. accrual period, payment period, reset period, ...) spans the entire term of the trade."> - C <"CalculationPeriod - the period corresponds to the calculation period For example, used in the Commodity Markets to indicate that a reference contract is the one that corresponds to the period of the calculation period."> + H <"Hour"> + D <"Day"> + W <"Week"> + M <"Month"> + Y <"Year"> + T <"Term. The period commencing on the effective date and ending on the termination date. The T period always appears in association with periodMultiplier = 1, and the notation is intended for use in contexts where the interval thus qualified (e.g. accrual period, payment period, reset period, ...) spans the entire term of the trade."> + C <"CalculationPeriod - the period corresponds to the calculation period For example, used in the Commodity Markets to indicate that a reference contract is the one that corresponds to the period of the calculation period."> // The next two should be rationalised with PeriodEnum into a single enum - enum PeriodTimeEnum: <"The enumeration values to specify a time period containing additional values such as Term."> - Hour <"Period measured in hours."> - Minute <"Period measured in minutes."> - Second <"Period measured in seconds."> + Hour <"Period measured in hours."> + Minute <"Period measured in minutes."> + Second <"Period measured in seconds."> enum TimeUnitEnum: <"The enumeration values to qualify the allowed units of time."> - Second <"Second"> - Minute <"Minute"> - Hour <"Hour"> - Day <"Day"> - Week <"Week"> - Month <"Month"> - Year <"Year"> - + Second <"Second"> + Minute <"Minute"> + Hour <"Hour"> + Day <"Day"> + Week <"Week"> + Month <"Month"> + Year <"Year"> + enum RollConventionEnum: <"The enumerated values to specify the period term as part of a periodic schedule, i.e. the calculation period end date within the regular part of the calculation period. The value could be a rule, e.g. IMM Settlement Dates, which is the 3rd Wednesday of the month, or it could be a specific day of the month, such as the first day of the applicable month."> - EOM <"Rolls on month end dates irrespective of the length of the month and the previous roll day."> - FRN <"Roll days are determined according to the FRN Convention or Euro-dollar Convention as described in ISDA 2000 definitions."> - IMM <"IMM Settlement Dates. The third Wednesday of the (delivery) month."> - IMMCAD <"The last trading day/expiration day of the Canadian Derivatives Exchange (Bourse de Montreal Inc) Three-month Canadian Bankers' Acceptance Futures (Ticker Symbol BAX). The second London banking day prior to the third Wednesday of the contract month. If the determined day is a Bourse or bank holiday in Montreal or Toronto, the last trading day shall be the previous bank business day. Per Canadian Derivatives Exchange BAX contract specification."> - IMMAUD <"The last trading day of the Sydney Futures Exchange 90 Day Bank Accepted Bills Futures contract (see http://www.sfe.com.au/content/sfe/trading/con_specs.pdf). One Sydney business day preceding the second Friday of the relevant settlement."> - IMMNZD <"The last trading day of the Sydney Futures Exchange NZ 90 Day Bank Bill Futures contract (see http://www.sfe.com.au/content/sfe/trading/con_specs.pdf). The first Wednesday after the ninth day of the relevant settlement month."> - SFE <"Sydney Futures Exchange 90-Day Bank Accepted Bill Futures Settlement Dates. The second Friday of the (delivery) month"> - NONE <"The roll convention is not required. For example, in the case of a daily calculation frequency."> - TBILL <"13-week and 26-week U.S. Treasury Bill Auction Dates. Each Monday except for U.S. (New York) holidays when it will occur on a Tuesday."> - _1 displayName "1" <"Rolls on the 1st day of the month."> - _2 displayName "2" <"Rolls on the 2nd day of the month."> - _3 displayName "3" <"Rolls on the 3rd day of the month."> - _4 displayName "4" <"Rolls on the 4th day of the month."> - _5 displayName "5" <"Rolls on the 5th day of the month."> - _6 displayName "6" <"Rolls on the 6th day of the month."> - _7 displayName "7" <"Rolls on the 7th day of the month."> - _8 displayName "8" <"Rolls on the 8th day of the month."> - _9 displayName "9" <"Rolls on the 9th day of the month."> - _10 displayName "10" <"Rolls on the 10th day of the month."> - _11 displayName "11" <"Rolls on the 11th day of the month."> - _12 displayName "12" <"Rolls on the 12th day of the month."> - _13 displayName "13" <"Rolls on the 13th day of the month."> - _14 displayName "14" <"Rolls on the 14th day of the month."> - _15 displayName "15" <"Rolls on the 15th day of the month."> - _16 displayName "16" <"Rolls on the 16th day of the month."> - _17 displayName "17" <"Rolls on the 17th day of the month."> - _18 displayName "18" <"Rolls on the 18th day of the month."> - _19 displayName "19" <"Rolls on the 19th day of the month."> - _20 displayName "20" <"Rolls on the 20th day of the month."> - _21 displayName "21" <"Rolls on the 21st day of the month."> - _22 displayName "22" <"Rolls on the 22nd day of the month."> - _23 displayName "23" <"Rolls on the 23rd day of the month."> - _24 displayName "24" <"Rolls on the 24th day of the month."> - _25 displayName "25" <"Rolls on the 25th day of the month."> - _26 displayName "26" <"Rolls on the 26th day of the month."> - _27 displayName "27" <"Rolls on the 27th day of the month."> - _28 displayName "28" <"Rolls on the 28th day of the month."> - _29 displayName "29" <"Rolls on the 29th day of the month."> - _30 displayName "30" <"Rolls on the 30th day of the month."> - MON <"Rolling weekly on a Monday."> - TUE <"Rolling weekly on a Tuesday"> - WED <"Rolling weekly on a Wednesday"> - THU <"Rolling weekly on a Thursday"> - FRI <"Rolling weekly on a Friday"> - SAT <"Rolling weekly on a Saturday"> - SUN <"Rolling weekly on a Sunday"> + EOM <"Rolls on month end dates irrespective of the length of the month and the previous roll day."> + FRN <"Roll days are determined according to the FRN Convention or Euro-dollar Convention as described in ISDA 2000 definitions."> + IMM <"IMM Settlement Dates. The third Wednesday of the (delivery) month."> + IMMCAD <"The last trading day/expiration day of the Canadian Derivatives Exchange (Bourse de Montreal Inc) Three-month Canadian Bankers' Acceptance Futures (Ticker Symbol BAX). The second London banking day prior to the third Wednesday of the contract month. If the determined day is a Bourse or bank holiday in Montreal or Toronto, the last trading day shall be the previous bank business day. Per Canadian Derivatives Exchange BAX contract specification."> + IMMAUD <"The last trading day of the Sydney Futures Exchange 90 Day Bank Accepted Bills Futures contract (see http://www.sfe.com.au/content/sfe/trading/con_specs.pdf). One Sydney business day preceding the second Friday of the relevant settlement."> + IMMNZD <"The last trading day of the Sydney Futures Exchange NZ 90 Day Bank Bill Futures contract (see http://www.sfe.com.au/content/sfe/trading/con_specs.pdf). The first Wednesday after the ninth day of the relevant settlement month."> + SFE <"Sydney Futures Exchange 90-Day Bank Accepted Bill Futures Settlement Dates. The second Friday of the (delivery) month"> + NONE <"The roll convention is not required. For example, in the case of a daily calculation frequency."> + TBILL <"13-week and 26-week U.S. Treasury Bill Auction Dates. Each Monday except for U.S. (New York) holidays when it will occur on a Tuesday."> + _1 displayName "1" <"Rolls on the 1st day of the month."> + _2 displayName "2" <"Rolls on the 2nd day of the month."> + _3 displayName "3" <"Rolls on the 3rd day of the month."> + _4 displayName "4" <"Rolls on the 4th day of the month."> + _5 displayName "5" <"Rolls on the 5th day of the month."> + _6 displayName "6" <"Rolls on the 6th day of the month."> + _7 displayName "7" <"Rolls on the 7th day of the month."> + _8 displayName "8" <"Rolls on the 8th day of the month."> + _9 displayName "9" <"Rolls on the 9th day of the month."> + _10 displayName "10" <"Rolls on the 10th day of the month."> + _11 displayName "11" <"Rolls on the 11th day of the month."> + _12 displayName "12" <"Rolls on the 12th day of the month."> + _13 displayName "13" <"Rolls on the 13th day of the month."> + _14 displayName "14" <"Rolls on the 14th day of the month."> + _15 displayName "15" <"Rolls on the 15th day of the month."> + _16 displayName "16" <"Rolls on the 16th day of the month."> + _17 displayName "17" <"Rolls on the 17th day of the month."> + _18 displayName "18" <"Rolls on the 18th day of the month."> + _19 displayName "19" <"Rolls on the 19th day of the month."> + _20 displayName "20" <"Rolls on the 20th day of the month."> + _21 displayName "21" <"Rolls on the 21st day of the month."> + _22 displayName "22" <"Rolls on the 22nd day of the month."> + _23 displayName "23" <"Rolls on the 23rd day of the month."> + _24 displayName "24" <"Rolls on the 24th day of the month."> + _25 displayName "25" <"Rolls on the 25th day of the month."> + _26 displayName "26" <"Rolls on the 26th day of the month."> + _27 displayName "27" <"Rolls on the 27th day of the month."> + _28 displayName "28" <"Rolls on the 28th day of the month."> + _29 displayName "29" <"Rolls on the 29th day of the month."> + _30 displayName "30" <"Rolls on the 30th day of the month."> + MON <"Rolling weekly on a Monday."> + TUE <"Rolling weekly on a Tuesday"> + WED <"Rolling weekly on a Wednesday"> + THU <"Rolling weekly on a Thursday"> + FRI <"Rolling weekly on a Friday"> + SAT <"Rolling weekly on a Saturday"> + SUN <"Rolling weekly on a Sunday"> enum CompoundingTypeEnum: <"The enumerated values to specify how the compounding calculation is done"> None <"Compounding is not applicable"> @@ -447,5 +446,3 @@ enum CompoundingTypeEnum: <"The enumerated values to specify how the compounding enum RoundingFrequencyEnum: <"How often is rounding performed"> Daily <"Rounding is done on each day"> PeriodEnd <"Rounding is done only at the end of the period"> - - diff --git a/rosetta-source/src/main/rosetta/base-datetime-func.rosetta b/rosetta-source/src/main/rosetta/base-datetime-func.rosetta index 3afbfc76f7..7dbcb5118f 100755 --- a/rosetta-source/src/main/rosetta/base-datetime-func.rosetta +++ b/rosetta-source/src/main/rosetta/base-datetime-func.rosetta @@ -2,132 +2,140 @@ namespace cdm.base.datetime: <"Basic date and time concepts: relative date, date version "${project.version}" func TimeZoneFromBusinessCenterTime: <"Function to resolve a time passed as BusinessCenterTime into a TimeZone time."> - inputs: time BusinessCenterTime (1..1) - output: result TimeZone (1..1) + inputs: + time BusinessCenterTime (1..1) + output: + result TimeZone (1..1) func ResolveAdjustableDate: - inputs: adjustableOrRelativeDate AdjustableOrRelativeDate (1..1) - output: adjustedDate date (0..1) + inputs: + adjustableOrRelativeDate AdjustableOrRelativeDate (1..1) + output: + adjustedDate date (0..1) func ResolveAdjustableDates: - inputs: adjustableRelativeOrPeriodicDates AdjustableRelativeOrPeriodicDates (1..1) - output: adjustedDates date (0..*) + inputs: + adjustableRelativeOrPeriodicDates AdjustableRelativeOrPeriodicDates (1..1) + output: + adjustedDates date (0..*) func ToDateTime: - inputs: date date (1..1) - output: datetime zonedDateTime (1..1) + inputs: + date date (1..1) + output: + datetime zonedDateTime (1..1) func ConvertToAdjustableOrRelativeDate: <"Utility function to convert from AdjustableOrAdjustedOrRelativeDate to AdjustableOrRelativeDate"> - inputs: - adjustableOrAdjustedOrRelativeDate AdjustableOrAdjustedOrRelativeDate (0..1) - - output: - adjustableOrRelativeDate AdjustableOrRelativeDate (0..1) + inputs: + adjustableOrAdjustedOrRelativeDate AdjustableOrAdjustedOrRelativeDate (0..1) + output: + adjustableOrRelativeDate AdjustableOrRelativeDate (0..1) - alias relativeDate: - adjustableOrAdjustedOrRelativeDate -> relativeDate + alias relativeDate: adjustableOrAdjustedOrRelativeDate -> relativeDate - set adjustableOrRelativeDate -> adjustableDate -> adjustedDate: - adjustableOrAdjustedOrRelativeDate -> adjustedDate + set adjustableOrRelativeDate -> adjustableDate -> adjustedDate: + adjustableOrAdjustedOrRelativeDate -> adjustedDate - set adjustableOrRelativeDate -> adjustableDate -> unadjustedDate: - adjustableOrAdjustedOrRelativeDate -> unadjustedDate + set adjustableOrRelativeDate -> adjustableDate -> unadjustedDate: + adjustableOrAdjustedOrRelativeDate -> unadjustedDate - set adjustableOrRelativeDate -> adjustableDate -> dateAdjustments: - adjustableOrAdjustedOrRelativeDate -> dateAdjustments + set adjustableOrRelativeDate -> adjustableDate -> dateAdjustments: + adjustableOrAdjustedOrRelativeDate -> dateAdjustments - set adjustableOrRelativeDate -> relativeDate -> adjustedDate: - if relativeDate exists then relativeDate -> adjustedDate + set adjustableOrRelativeDate -> relativeDate -> adjustedDate: + if relativeDate exists then relativeDate -> adjustedDate - set adjustableOrRelativeDate -> relativeDate -> businessCenters: - if relativeDate exists then relativeDate -> businessCenters + set adjustableOrRelativeDate -> relativeDate -> businessCenters: + if relativeDate exists then relativeDate -> businessCenters - set adjustableOrRelativeDate -> relativeDate -> businessDayConvention: - if relativeDate exists then relativeDate -> businessDayConvention + set adjustableOrRelativeDate -> relativeDate -> businessDayConvention: + if relativeDate exists + then relativeDate -> businessDayConvention - set adjustableOrRelativeDate -> relativeDate -> dateRelativeTo: - if relativeDate exists then relativeDate -> dateRelativeTo + set adjustableOrRelativeDate -> relativeDate -> dateRelativeTo: + if relativeDate exists then relativeDate -> dateRelativeTo - set adjustableOrRelativeDate -> relativeDate -> dayType: - if relativeDate exists then relativeDate -> dayType + set adjustableOrRelativeDate -> relativeDate -> dayType: + if relativeDate exists then relativeDate -> dayType - set adjustableOrRelativeDate -> relativeDate -> period: - if relativeDate exists then relativeDate -> period + set adjustableOrRelativeDate -> relativeDate -> period: + if relativeDate exists then relativeDate -> period - set adjustableOrRelativeDate -> relativeDate -> periodMultiplier: - if relativeDate exists then relativeDate -> periodMultiplier + set adjustableOrRelativeDate -> relativeDate -> periodMultiplier: + if relativeDate exists then relativeDate -> periodMultiplier func ConvertToAdjustableOrAdjustedOrRelativeDate: <"Utility function to convert from AdjustableOrAdjustedOrRelativeDate to AdjustableOrAdjustedOrRelativeDate"> inputs: adjustableOrRelativeDate AdjustableOrRelativeDate (0..1) - output: adjustableOrAdjustedOrRelativeDate AdjustableOrAdjustedOrRelativeDate (0..1) - alias relativeDate: - adjustableOrRelativeDate -> relativeDate + alias relativeDate: adjustableOrRelativeDate -> relativeDate - set adjustableOrAdjustedOrRelativeDate -> adjustedDate: - adjustableOrRelativeDate -> adjustableDate -> adjustedDate + set adjustableOrAdjustedOrRelativeDate -> adjustedDate: + adjustableOrRelativeDate -> adjustableDate -> adjustedDate - set adjustableOrAdjustedOrRelativeDate -> unadjustedDate: - adjustableOrRelativeDate -> adjustableDate -> unadjustedDate + set adjustableOrAdjustedOrRelativeDate -> unadjustedDate: + adjustableOrRelativeDate -> adjustableDate -> unadjustedDate - set adjustableOrAdjustedOrRelativeDate -> dateAdjustments: - adjustableOrRelativeDate -> adjustableDate -> dateAdjustments + set adjustableOrAdjustedOrRelativeDate -> dateAdjustments: + adjustableOrRelativeDate -> adjustableDate -> dateAdjustments - set adjustableOrAdjustedOrRelativeDate -> relativeDate -> adjustedDate: - if relativeDate exists then relativeDate -> adjustedDate + set adjustableOrAdjustedOrRelativeDate -> relativeDate -> adjustedDate: + if relativeDate exists then relativeDate -> adjustedDate - set adjustableOrAdjustedOrRelativeDate -> relativeDate -> businessCenters: - if relativeDate exists then relativeDate -> businessCenters + set adjustableOrAdjustedOrRelativeDate -> relativeDate -> businessCenters: + if relativeDate exists then relativeDate -> businessCenters - set adjustableOrAdjustedOrRelativeDate -> relativeDate -> businessDayConvention: - if relativeDate exists then relativeDate -> businessDayConvention + set adjustableOrAdjustedOrRelativeDate -> relativeDate -> businessDayConvention: + if relativeDate exists + then relativeDate -> businessDayConvention - set adjustableOrAdjustedOrRelativeDate -> relativeDate -> dateRelativeTo: - if relativeDate exists then relativeDate -> dateRelativeTo + set adjustableOrAdjustedOrRelativeDate -> relativeDate -> dateRelativeTo: + if relativeDate exists then relativeDate -> dateRelativeTo - set adjustableOrAdjustedOrRelativeDate -> relativeDate -> dayType: - if relativeDate exists then relativeDate -> dayType + set adjustableOrAdjustedOrRelativeDate -> relativeDate -> dayType: + if relativeDate exists then relativeDate -> dayType - set adjustableOrAdjustedOrRelativeDate -> relativeDate -> period: - if relativeDate exists then relativeDate -> period + set adjustableOrAdjustedOrRelativeDate -> relativeDate -> period: + if relativeDate exists then relativeDate -> period - set adjustableOrAdjustedOrRelativeDate -> relativeDate -> periodMultiplier: - if relativeDate exists then relativeDate -> periodMultiplier + set adjustableOrAdjustedOrRelativeDate -> relativeDate -> periodMultiplier: + if relativeDate exists then relativeDate -> periodMultiplier func Now: <"Current date time."> - output: now zonedDateTime (1..1) + output: + now zonedDateTime (1..1) func Today: <"Current date."> - output: today date (1..1) + output: + today date (1..1) func GetAllBusinessCenters: <"Returns a merged list of BusinessCenterEnums for the supplied BusinessCenters."> - inputs: - businessCenters BusinessCenters (1..1) - output: - businessCenterEnums BusinessCenterEnum (0..*) + inputs: + businessCenters BusinessCenters (1..1) + output: + businessCenterEnums BusinessCenterEnum (0..*) add businessCenterEnums: <"Get list of BusinessCenterEnum."> businessCenters -> businessCenter add businessCenterEnums: <"Get list of BusinessCenterEnum from referenced BusinessCenters."> - if businessCenters -> businessCentersReference exists then - GetAllBusinessCenters( businessCenters -> businessCentersReference ) + if businessCenters -> businessCentersReference exists + then GetAllBusinessCenters(businessCenters -> businessCentersReference) set businessCenterEnums: <"Remove any duplicates from the list."> businessCenterEnums distinct func BusinessCenterHolidaysMultiple: <"Returns a merged list of holidays for the supplied business centers."> - inputs: - businessCenters BusinessCenterEnum (0..*) <"The business centers for which the holiday list is required."> - output: - holidayDates date (0..*) <"The combined list of holidays in all of the supplied business centers."> + inputs: + businessCenters BusinessCenterEnum (0..*) <"The business centers for which the holiday list is required."> + output: + holidayDates date (0..*) <"The combined list of holidays in all of the supplied business centers."> add holidayDates: businessCenters - extract BusinessCenterHolidays( item ) + extract BusinessCenterHolidays(item) then flatten then distinct then sort @@ -140,117 +148,127 @@ func BusinessCenterHolidays: holidayDates date (0..*) func DayOfWeek: <"Returns the day of week corresponding to the supplied date."> - inputs: - date date (1..1) <"The date for which the weekday is needed."> - output: - dayOfWeek DayOfWeekEnum (1..1) <"The day of the week as an enumerated value."> + inputs: + date date (1..1) <"The date for which the weekday is needed."> + output: + dayOfWeek DayOfWeekEnum (1..1) <"The day of the week as an enumerated value."> func AddDays: <"Adds the specified number of calendar days to the supplied date. A negative number will generate a date before the supplied date."> - inputs: - inputDate date (1..1) <"The base date for the calculation."> - numDays int (1..1) <"The number of days to add."> - output: - resultDate date (1..1) <"The date shifted by the specified number of days."> + inputs: + inputDate date (1..1) <"The base date for the calculation."> + numDays int (1..1) <"The number of days to add."> + output: + resultDate date (1..1) <"The date shifted by the specified number of days."> func DateDifference: <"Subtracts the two supplied dates to return the number of calendar days between them. A negative number implies first is after second."> - inputs: - firstDate date (1..1) <"The earlier date."> - secondDate date (1..1) <"The later date."> - output: - difference int (1..1) <"The number of calendar days second date is after firstDate. Negative means secondDate is before firstDate."> + inputs: + firstDate date (1..1) <"The earlier date."> + secondDate date (1..1) <"The later date."> + output: + difference int (1..1) <"The number of calendar days second date is after firstDate. Negative means secondDate is before firstDate."> func LeapYearDateDifference: <"Subtracts the two supplied dates to return the number of leap year calendar days between them. A negative number implies firstDate is after secondDate."> - inputs: - firstDate date (1..1) <"The left side of the subtraction."> - secondDate date (1..1) <"The right side of the subtraction."> - output: - difference int (1..1) <"The number of leap year calendar days secondDate is after firstDate. Negative means secondDate is before firstDate."> + inputs: + firstDate date (1..1) <"The left side of the subtraction."> + secondDate date (1..1) <"The right side of the subtraction."> + output: + difference int (1..1) <"The number of leap year calendar days secondDate is after firstDate. Negative means secondDate is before firstDate."> func AppendDateToList: <"Add a date to a list of dates."> - inputs: - origDates date (0..*) <"List of dates."> - newDate date (1..1) <"Date to add to the list."> - output: - newList date (0..*) <"The newly increased list."> + inputs: + origDates date (0..*) <"List of dates."> + newDate date (1..1) <"Date to add to the list."> + output: + newList date (0..*) <"The newly increased list."> - set newList: origDates - add newList: newDate + set newList: origDates + add newList: newDate func PopOffDateList: <"Remove last element from a list of dates."> - inputs: - dates date (0..*) <"List of dates."> - output: - newList date (0..*) <"The newly created list, omitting the last element of the original list."> + inputs: + dates date (0..*) <"List of dates."> + output: + newList date (0..*) <"The newly created list, omitting the last element of the original list."> func IsWeekend: <"returns whether the supplied date is a weekend. This 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."> - inputs: - date date (1..1) <"The date for which the weekday is needed"> - businessCenters BusinessCenterEnum (0..*) <"Not needed for the current implementation so ignored, but kept for future extensibility"> - output: - isWeekend boolean (1..1) + inputs: + date date (1..1) <"The date for which the weekday is needed"> + businessCenters BusinessCenterEnum (0..*) <"Not needed for the current implementation so ignored, but kept for future extensibility"> + output: + isWeekend boolean (1..1) - alias dayOfWeek: DayOfWeek(date) // determine the day of the week - // output whether the date is on a weekend by comparing against SAT or SUN - set isWeekend: dayOfWeek = DayOfWeekEnum -> SAT or dayOfWeek = DayOfWeekEnum -> SUN + alias dayOfWeek: DayOfWeek(date) // determine the day of the week + // output whether the date is on a weekend by comparing against SAT or SUN + set isWeekend: dayOfWeek = DayOfWeekEnum -> SAT or dayOfWeek = DayOfWeekEnum -> SUN func IsHoliday: <"Returns whether a day is a holiday for the specified business centers"> - inputs: - checkDate date (1..1) <"The date being tested"> - businessCenters BusinessCenterEnum (0..*) <"The business centers for which the test is required"> - output: - isHoliday boolean (1..1) <"true if the supplied date is a holiday"> - - // get the combined list of holidays for the supplied business centers - alias holidays: BusinessCenterHolidaysMultiple( businessCenters ) - - // check if the supplied date is contained in the holiday list - set isHoliday: holidays contains checkDate + inputs: + checkDate date (1..1) <"The date being tested"> + businessCenters BusinessCenterEnum (0..*) <"The business centers for which the test is required"> + output: + isHoliday boolean (1..1) <"true if the supplied date is a holiday"> + + // get the combined list of holidays for the supplied business centers + alias holidays: BusinessCenterHolidaysMultiple(businessCenters) + + // check if the supplied date is contained in the holiday list + set isHoliday: holidays contains checkDate func IsBusinessDay: <"returns an indicator of whether the supplied date is a good business date given the supplied business centers. True => good date, i.e. not a weekend or holiday. False means that it is either a weekend or a holiday"> - inputs: - date date (1..1) <"The date for which we want to determine whether it's a good business day"> - businessCenters BusinessCenterEnum (0..*) <"The list of business centers to use"> - output: - isGoodBusinessDay boolean (1..1) <"True if a good business day, false if a weekend or holiday"> - - // determine if a weekend or holiday - alias weekend: IsWeekend(date, businessCenters) - alias holiday: IsHoliday(date, businessCenters) - // return whether it's a good business day - set isGoodBusinessDay: if weekend then False else if holiday then False else True + inputs: + date date (1..1) <"The date for which we want to determine whether it's a good business day"> + businessCenters BusinessCenterEnum (0..*) <"The list of business centers to use"> + output: + isGoodBusinessDay boolean (1..1) <"True if a good business day, false if a weekend or holiday"> + + // determine if a weekend or holiday + alias weekend: IsWeekend(date, businessCenters) + alias holiday: IsHoliday(date, businessCenters) + // return whether it's a good business day + set isGoodBusinessDay: + if weekend then False else if holiday then False else True func AddBusinessDays: <"Returns a good business date that has been offset by the given number of business days given the supplied business centers. A negative value implies an earlier date (before the supplied originalDate), and a positive value a later date (after the supplied date)."> - inputs: - originalDate date (1..1) <"date to be shifted. If not a good business day, a supplied shift of 0 will shift it to the next business day"> - offsetBusinessDays int (1..1) <"number of business days to shift the original date"> - businessCenters BusinessCenterEnum (0..*) <"business centers to use in the shifting"> - output: - shiftedDate date (1..1) - - alias isGoodBusinessDay: IsBusinessDay(originalDate, businessCenters) // check if a good business day - alias shift: if offsetBusinessDays < 0 then -1 else 1 // determine the direction of shifting, earlier or later - // calculate the new offset: if we're at a good business day, reduce by one, else keep it - alias shiftedByOne: AddDays(originalDate, shift) // add/subtract one calendar day - alias isShiftedGood: IsBusinessDay(shiftedByOne, businessCenters) - alias newShift: if isShiftedGood then shift else 0 - alias newOffset: if offsetBusinessDays = 0 then 0 else offsetBusinessDays - newShift - alias done: offsetBusinessDays = 0 and isGoodBusinessDay = True // we're done if the offsetBusinessDays is 0 and it's a good business day - // calculate the shifted date: if we're done, return the supplied date, else recursively try after having shifted by one day (recursion because iteration isn't supported by the Rosetta DSL) - alias newDate: if done then originalDate else AddBusinessDays(shiftedByOne, newOffset, businessCenters) - set shiftedDate: newDate + inputs: + originalDate date (1..1) <"date to be shifted. If not a good business day, a supplied shift of 0 will shift it to the next business day"> + offsetBusinessDays int (1..1) <"number of business days to shift the original date"> + businessCenters BusinessCenterEnum (0..*) <"business centers to use in the shifting"> + output: + shiftedDate date (1..1) + + alias isGoodBusinessDay: IsBusinessDay(originalDate, businessCenters) // check if a good business day + alias shift: if offsetBusinessDays < 0 then -1 else 1 // determine the direction of shifting, earlier or later + // calculate the new offset: if we're at a good business day, reduce by one, else keep it + alias shiftedByOne: AddDays(originalDate, shift) // add/subtract one calendar day + alias isShiftedGood: IsBusinessDay(shiftedByOne, businessCenters) + alias newShift: if isShiftedGood then shift else 0 + alias newOffset: + if offsetBusinessDays = 0 + then 0 + else offsetBusinessDays - newShift + alias done: offsetBusinessDays = 0 and isGoodBusinessDay = True // we're done if the offsetBusinessDays is 0 and it's a good business day + // calculate the shifted date: if we're done, return the supplied date, else recursively try after having shifted by one day (recursion because iteration isn't supported by the Rosetta DSL) + alias newDate: + if done + then originalDate + else AddBusinessDays(shiftedByOne, newOffset, businessCenters) + set shiftedDate: newDate func 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 supplied business centers."> inputs: - startDate date (1..1) <"Start of the date range to be generated."> - endDate date (1..1) <"End of the date range to be generated"> - businessCenters BusinessCenterEnum (0..*) <"Business centers to be used to generate the list of good business days"> - output: - dateList date (0..*) <"Resulting list of good business days."> - - alias active: startDate <= endDate // do we have anything to do? Nothing to do if start date is after end date - alias isGoodBusinessDay: IsBusinessDay(endDate, businessCenters) // is endDate a good business day? - alias priorDate: AddBusinessDays (endDate, -1, businessCenters) // find the previous good business day before the endDate - alias priorList: GenerateDateList (startDate, priorDate, businessCenters) // recursively find the list of dates from the start to the prior business day - // add the current end date to the previous list if it is a good business day (the test handles the case when the first supplied end date is not a business day) - alias newList: if isGoodBusinessDay then AppendDateToList(priorList, endDate) else priorList - add dateList: if active then newList + startDate date (1..1) <"Start of the date range to be generated."> + endDate date (1..1) <"End of the date range to be generated"> + businessCenters BusinessCenterEnum (0..*) <"Business centers to be used to generate the list of good business days"> + output: + dateList date (0..*) <"Resulting list of good business days."> + + alias active: startDate <= endDate // do we have anything to do? Nothing to do if start date is after end date + alias isGoodBusinessDay: IsBusinessDay(endDate, businessCenters) // is endDate a good business day? + alias priorDate: AddBusinessDays(endDate, -1, businessCenters) // find the previous good business day before the endDate + alias priorList: GenerateDateList(startDate, priorDate, businessCenters) // recursively find the list of dates from the start to the prior business day + // add the current end date to the previous list if it is a good business day (the test handles the case when the first supplied end date is not a business day) + alias newList: + if isGoodBusinessDay + then AppendDateToList(priorList, endDate) + else priorList + add dateList: if active then newList diff --git a/rosetta-source/src/main/rosetta/base-datetime-type.rosetta b/rosetta-source/src/main/rosetta/base-datetime-type.rosetta index 3c2437b44d..3a8dfa6500 100755 --- a/rosetta-source/src/main/rosetta/base-datetime-type.rosetta +++ b/rosetta-source/src/main/rosetta/base-datetime-type.rosetta @@ -2,78 +2,77 @@ namespace cdm.base.datetime : <"Basic date and time concepts: relative date, dat version "${project.version}" type AdjustableDate: <"A class for defining a date that shall be subject to adjustment if it would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date."> - [metadata key] + [metadata key] - unadjustedDate date (0..1 ) <"A date subject to adjustment. While in FpML this date is required, this cardinality constraint has been relaxed as part of the CDM in order to support the FRA representation, which effective and termination dates are specified in FpML as adjusted dates."> - dateAdjustments BusinessDayAdjustments (0..1) <"The business day convention and financial business centers used for adjusting the date if it would otherwise fall on a day that is not a business date in the specified business centers."> - dateAdjustmentsReference BusinessDayAdjustments (0..1) <"A pointer style reference to date adjustments defined elsewhere in the document."> - [metadata reference] - adjustedDate date (0..1) <"The date once the adjustment has been performed. (Note that this date may change if the business center holidays change)."> - [metadata id] + unadjustedDate date (0..1) <"A date subject to adjustment. While in FpML this date is required, this cardinality constraint has been relaxed as part of the CDM in order to support the FRA representation, which effective and termination dates are specified in FpML as adjusted dates."> + dateAdjustments BusinessDayAdjustments (0..1) <"The business day convention and financial business centers used for adjusting the date if it would otherwise fall on a day that is not a business date in the specified business centers."> + dateAdjustmentsReference BusinessDayAdjustments (0..1) <"A pointer style reference to date adjustments defined elsewhere in the document."> + [metadata reference] + adjustedDate date (0..1) <"The date once the adjustment has been performed. (Note that this date may change if the business center holidays change)."> + [metadata id] - condition AdjustableDateChoice: <"Choice rule to represent an FpML choice construct."> - optional choice dateAdjustments, dateAdjustmentsReference + condition AdjustableDateChoice: <"Choice rule to represent an FpML choice construct."> + optional choice dateAdjustments, dateAdjustmentsReference type AdjustableDates: <"A class for defining a series of dates that shall be subject to adjustment if they would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the dates."> - [metadata key] - - unadjustedDate date (0..*) <"A date subject to adjustment."> - dateAdjustments BusinessDayAdjustments (0..1) <"The business day convention and financial business centers used for adjusting the date if it would otherwise fall on a day that is not a business date in the specified business centers."> - adjustedDate date (0..*) <"The date(s) once the adjustment has been performed. (Note that this date may change if the business center holidays change)."> - [metadata id] + [metadata key] - condition AdjustedDate: <"FpML specifies a choice between adjustedDate and [unadjustedDate (required), dateAdjutsments (required), adjustedDate (optional)]."> - if adjustedDate is absent then - unadjustedDate exists and dateAdjustments exists + unadjustedDate date (0..*) <"A date subject to adjustment."> + dateAdjustments BusinessDayAdjustments (0..1) <"The business day convention and financial business centers used for adjusting the date if it would otherwise fall on a day that is not a business date in the specified business centers."> + adjustedDate date (0..*) <"The date(s) once the adjustment has been performed. (Note that this date may change if the business center holidays change)."> + [metadata id] + condition AdjustedDate: <"FpML specifies a choice between adjustedDate and [unadjustedDate (required), dateAdjutsments (required), adjustedDate (optional)]."> + if adjustedDate is absent + then unadjustedDate exists and dateAdjustments exists type AdjustableOrAdjustedDate: <"A class for defining a date that shall be subject to adjustment if it would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date."> - [metadata key] + [metadata key] - unadjustedDate date (0..1 ) <"A date subject to adjustment."> - dateAdjustments BusinessDayAdjustments (0..1) <"The business day convention and financial business centers used for adjusting the date if it would otherwise fall on a day that is not a business date in the specified business centers."> - adjustedDate date (0..1) <"The date once the adjustment has been performed. (Note that this date may change if the business center holidays change)."> - [metadata id] + unadjustedDate date (0..1) <"A date subject to adjustment."> + dateAdjustments BusinessDayAdjustments (0..1) <"The business day convention and financial business centers used for adjusting the date if it would otherwise fall on a day that is not a business date in the specified business centers."> + adjustedDate date (0..1) <"The date once the adjustment has been performed. (Note that this date may change if the business center holidays change)."> + [metadata id] - condition AdjustedDate: <"FpML specifies a choice between adjustedDate and [unadjustedDate (required), dateAdjutsments (required), adjustedDate (optional)]."> - if adjustedDate is absent then - unadjustedDate exists and dateAdjustments exists + condition AdjustedDate: <"FpML specifies a choice between adjustedDate and [unadjustedDate (required), dateAdjutsments (required), adjustedDate (optional)]."> + if adjustedDate is absent + then unadjustedDate exists and dateAdjustments exists type AdjustableOrAdjustedOrRelativeDate: <"This Rosetta class specifies the date as either an unadjusted, adjusted or relative date. It supplements the features of the AdjustableOrAdjustedDate to support the credit default swap option premium, which uses the relative date construct."> - unadjustedDate date (0..1 ) <"A date subject to adjustment."> - dateAdjustments BusinessDayAdjustments (0..1) <"The business day convention and financial business centers used for adjusting the date if it would otherwise fall on a day that is not a business date in the specified business centers."> - adjustedDate date (0..1) <"The date once the adjustment has been performed. (Note that this date may change if the business center holidays change)."> - [metadata id] - relativeDate RelativeDateOffset (0..1) <"A date specified as some offset to another date (the anchor date)."> + unadjustedDate date (0..1) <"A date subject to adjustment."> + dateAdjustments BusinessDayAdjustments (0..1) <"The business day convention and financial business centers used for adjusting the date if it would otherwise fall on a day that is not a business date in the specified business centers."> + adjustedDate date (0..1) <"The date once the adjustment has been performed. (Note that this date may change if the business center holidays change)."> + [metadata id] + relativeDate RelativeDateOffset (0..1) <"A date specified as some offset to another date (the anchor date)."> - condition AdjustedDate: <"This data rule extends the data rule AdjustableOrAdjustedDate_adjustedDate by specifying logic applicable to the relative date."> - adjustedDate exists - or relativeDate exists - or unadjustedDate exists - or (unadjustedDate exists and dateAdjustments exists and adjustedDate is absent) + condition AdjustedDate: <"This data rule extends the data rule AdjustableOrAdjustedDate_adjustedDate by specifying logic applicable to the relative date."> + adjustedDate exists + or relativeDate exists + or unadjustedDate exists + or (unadjustedDate exists and dateAdjustments exists and adjustedDate is absent) type AdjustableOrRelativeDate: <"A class giving the choice between defining a date as an explicit date together with applicable adjustments or as relative to some other (anchor) date."> - [metadata key] + [metadata key] - adjustableDate AdjustableDate (0..1) <"A date that shall be subject to adjustment if it would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date."> - relativeDate AdjustedRelativeDateOffset (0..1) <"A date specified as some offset to another date (the anchor date)."> + adjustableDate AdjustableDate (0..1) <"A date that shall be subject to adjustment if it would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date."> + relativeDate AdjustedRelativeDateOffset (0..1) <"A date specified as some offset to another date (the anchor date)."> - condition AdjustableOrRelativeDateChoice: <"Choice rule to represent an FpML choice construct."> - required choice adjustableDate, relativeDate + condition AdjustableOrRelativeDateChoice: <"Choice rule to represent an FpML choice construct."> + required choice adjustableDate, relativeDate type AdjustableOrRelativeDates: <"A class giving the choice between defining a series of dates as an explicit list of dates together with applicable adjustments or as relative to some other series of (anchor) dates."> - [metadata key] + [metadata key] - adjustableDates AdjustableDates (0..1) <"A series of dates that shall be subject to adjustment if they would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date."> - relativeDates RelativeDates (0..1) <"A series of dates specified as some offset to another series of dates (the anchor dates)."> + adjustableDates AdjustableDates (0..1) <"A series of dates that shall be subject to adjustment if they would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date."> + relativeDates RelativeDates (0..1) <"A series of dates specified as some offset to another series of dates (the anchor dates)."> - condition AdjustableOrRelativeDatesChoice: <"Choice rule to represent an FpML choice construct."> - required choice adjustableDates, relativeDates + condition AdjustableOrRelativeDatesChoice: <"Choice rule to represent an FpML choice construct."> + required choice adjustableDates, relativeDates type AdjustedRelativeDateOffset extends RelativeDateOffset: <"A type defining a date (referred to as the derived date) as a relative offset from another date (referred to as the anchor date) plus optional date adjustments."> - relativeDateAdjustments BusinessDayAdjustments (0..1) <"The business day convention and financial business centers used for adjusting the relative date if it would otherwise fall on a day that is not a business date in the specified business centers."> + relativeDateAdjustments BusinessDayAdjustments (0..1) <"The business day convention and financial business centers used for adjusting the relative date if it would otherwise fall on a day that is not a business date in the specified business centers."> type BusinessCenters: <"A class for specifying the business day calendar location used in determining whether a day is a business day or not, either by specifying this business center by reference to an enumerated list that is maintained by the FpML standard, or by reference to such specification when it exists elsewhere as part of the instance document. This class corresponds to the FpML BusinessCentersOrReference.model."> [metadata key] @@ -90,178 +89,188 @@ type BusinessCenters: <"A class for specifying the business day calendar locatio type BusinessCenterTime: <"A class for defining a time with respect to a business day calendar location. For example, 11:00:00 GBLO."> - hourMinuteTime time (1..1) <"A time specified in hh:mm:ss format where the second component must be '00', e.g. 11am would be represented as 11:00:00."> - businessCenter BusinessCenterEnum (1..1) <"A code identifying a business day calendar location. A business day calendar location is drawn from the list identified by the business day calendar location enumeration."> - [metadata scheme] + hourMinuteTime time (1..1) <"A time specified in hh:mm:ss format where the second component must be '00', e.g. 11am would be represented as 11:00:00."> + businessCenter BusinessCenterEnum (1..1) <"A code identifying a business day calendar location. A business day calendar location is drawn from the list identified by the business day calendar location enumeration."> + [metadata scheme] type BusinessDateRange extends DateRange: <"A class defining a range of contiguous business days by defining an unadjusted first date, an unadjusted last date and a business day convention and business centers for adjusting the first and last dates if they would otherwise fall on a non business day in the specified business centers. The days between the first and last date must also be good business days in the specified centers to be counted in the range."> - businessDayConvention BusinessDayConventionEnum (1..1) <"The convention for adjusting a date if it would otherwise fall on a day that is not a business day, as specified by an ISDA convention (e.g. Following, Precedent)."> - businessCenters BusinessCenters (0..1) <"The business center(s), specified either explicitly or by reference to those specified somewhere else in the instance document."> + businessDayConvention BusinessDayConventionEnum (1..1) <"The convention for adjusting a date if it would otherwise fall on a day that is not a business day, as specified by an ISDA convention (e.g. Following, Precedent)."> + businessCenters BusinessCenters (0..1) <"The business center(s), specified either explicitly or by reference to those specified somewhere else in the instance document."> type BusinessDayAdjustments: <"A class defining the business day convention and financial business centers used for adjusting any relevant date if it would otherwise fall on a day that is not a business day in the specified business center."> - [metadata key] + [metadata key] - businessDayConvention BusinessDayConventionEnum (1..1) <"The convention for adjusting a date if it would otherwise fall on a day that is not a business day."> - businessCenters BusinessCenters (0..1) <"The business center(s), specified either explicitly or by reference to those specified somewhere else in the instance document."> + businessDayConvention BusinessDayConventionEnum (1..1) <"The convention for adjusting a date if it would otherwise fall on a day that is not a business day."> + businessCenters BusinessCenters (0..1) <"The business center(s), specified either explicitly or by reference to those specified somewhere else in the instance document."> type DateRange: <"A class defining a contiguous series of calendar dates. The date range is defined as all the dates between and including the start and the end date. The start date must fall on or before the end date."> - startDate date (1..1) <"The first date of a date range."> - endDate date (1..1) <"The last date of a date range."> + startDate date (1..1) <"The first date of a date range."> + endDate date (1..1) <"The last date of a date range."> - condition DatesOrdered: <"The start date must fall on or before the end date (a date range of only one date is allowed)."> - startDate <= endDate + condition DatesOrdered: <"The start date must fall on or before the end date (a date range of only one date is allowed)."> + startDate <= endDate type DateList: <"List of dates."> - date date (1..*) + date date (1..*) type DateTimeList: <"List of dateTimes."> - dateTime zonedDateTime (1..*) <"The CDM specifies that the zoned date time is to be expressed in accordance with ISO 8601, either as UTC as an offset to UTC."> + dateTime zonedDateTime (1..*) <"The CDM specifies that the zoned date time is to be expressed in accordance with ISO 8601, either as UTC as an offset to UTC."> type Frequency: <"A class for defining a date frequency, e.g. one day, three months, through the combination of an integer value and a standardized period value that is specified as part of an enumeration."> - [metadata key] + [metadata key] + + periodMultiplier int (1..1) <"A time period multiplier, e.g. 1, 2, or 3. If the period value is T (Term) then period multiplier must contain the value 1."> + period PeriodExtendedEnum (1..1) <"A time period, e.g. a day, week, month, year or term of the stream."> - periodMultiplier int (1..1) <"A time period multiplier, e.g. 1, 2, or 3. If the period value is T (Term) then period multiplier must contain the value 1."> - period PeriodExtendedEnum (1..1) <"A time period, e.g. a day, week, month, year or term of the stream."> - - condition TermPeriod: <"FpML specifies that if period value is T (Term) then periodMultiplier must contain the value 1."> - if period = PeriodExtendedEnum -> T - then periodMultiplier = 1 + condition TermPeriod: <"FpML specifies that if period value is T (Term) then periodMultiplier must contain the value 1."> + if period = PeriodExtendedEnum -> T then periodMultiplier = 1 - condition PositivePeriodMultiplier: <"FpML specifies periodMultiplier as a positive integer."> - periodMultiplier > 0 + condition PositivePeriodMultiplier: <"FpML specifies periodMultiplier as a positive integer."> + periodMultiplier > 0 type Offset extends Period: <"A class defining an offset used in calculating a new date relative to a reference date, e.g. calendar days, business days, commodity Business days, etc."> - dayType DayTypeEnum (0..1) <"In the case of an offset specified as a number of days, this element defines whether consideration is given as to whether a day is a good business day or not. If a day type of business days is specified then non-business days are ignored when calculating the offset. The financial business centers to use for determination of business days are implied by the context in which this element is used. This element must only be included when the offset is specified as a number of days. If the offset is zero days then the dayType element should not be included."> - condition DayType: <"FpML specifies that the dayType must only be included when the offset is specified as a number of days, while should not be included if the offset is zero days."> - if period <> PeriodEnum -> D - or periodMultiplier = 0 - then dayType is absent + dayType DayTypeEnum (0..1) <"In the case of an offset specified as a number of days, this element defines whether consideration is given as to whether a day is a good business day or not. If a day type of business days is specified then non-business days are ignored when calculating the offset. The financial business centers to use for determination of business days are implied by the context in which this element is used. This element must only be included when the offset is specified as a number of days. If the offset is zero days then the dayType element should not be included."> + condition DayType: <"FpML specifies that the dayType must only be included when the offset is specified as a number of days, while should not be included if the offset is zero days."> + if period <> PeriodEnum -> D or periodMultiplier = 0 + then dayType is absent type CustomisableOffset: <"A class to specify an offset either as a normalized [multiplier, period, dayType] or as a custom provision of type string."> - offset Offset (0..1) - customProvision string (0..1) + offset Offset (0..1) + customProvision string (0..1) type Period: <"A class to define recurring periods or time offsets."> - [metadata key] + [metadata key] - periodMultiplier int (1..1) <"A time period multiplier, e.g. 1, 2 or 3 etc. A negative value can be used when specifying an offset relative to another date, e.g. -2 days."> - period PeriodEnum (1..1) <"A time period, e.g. a day, week, month or year of the stream. If the periodMultiplier value is 0 (zero) then period must contain the value D (day)."> + periodMultiplier int (1..1) <"A time period multiplier, e.g. 1, 2 or 3 etc. A negative value can be used when specifying an offset relative to another date, e.g. -2 days."> + period PeriodEnum (1..1) <"A time period, e.g. a day, week, month or year of the stream. If the periodMultiplier value is 0 (zero) then period must contain the value D (day)."> - condition DayPeriod: <"FpML specifies that if the periodMultiplier value is 0 (zero) then period must contain the value D (day)."> - if periodMultiplier = 0 - then period = PeriodEnum -> D + condition DayPeriod: <"FpML specifies that if the periodMultiplier value is 0 (zero) then period must contain the value D (day)."> + if periodMultiplier = 0 then period = PeriodEnum -> D type RelativeDates extends RelativeDateOffset: <"A class describing a set of dates defined as relative to another set of dates."> - periodSkip int (0..1) <"The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1."> - scheduleBounds DateRange (0..1) <"The first and last dates of a schedule. This can be used to restrict the range of values in a reference series of dates."> + periodSkip int (0..1) <"The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1."> + scheduleBounds DateRange (0..1) <"The first and last dates of a schedule. This can be used to restrict the range of values in a reference series of dates."> - condition PeriodSkipGreaterThanOne: <"FpML specifies that, if present, the period skip should have a value greater than 1."> - if periodSkip exists - then periodSkip > 1 + condition PeriodSkipGreaterThanOne: <"FpML specifies that, if present, the period skip should have a value greater than 1."> + if periodSkip exists then periodSkip > 1 type RelativeDateOffset extends Offset: <"A class defining a date (referred to as the derived date) as a relative offset from another date (referred to as the anchor date). If the anchor date is itself an adjustable date then the offset is assumed to be calculated from the adjusted anchor date. A number of different scenarios can be supported, namely; 1) the derived date may simply be a number of calendar periods (days, weeks, months or years) preceding or following the anchor date; 2) the unadjusted derived date may be a number of calendar periods (days, weeks, months or years) preceding or following the anchor date with the resulting unadjusted derived date subject to adjustment in accordance with a specified business day convention, i.e. the derived date must fall on a good business day; 3) the derived date may be a number of business days preceding or following the anchor date. Note that the businessDayConvention specifies any required adjustment to the unadjusted derived date. A negative or positive value in the periodMultiplier indicates whether the unadjusted derived precedes or follows the anchor date. The businessDayConvention should contain a value NONE if the day type element contains a value of Business (since specifying a negative or positive business days offset would already guarantee that the derived date would fall on a good business day in the specified business centers)."> - businessDayConvention BusinessDayConventionEnum (1..1) <"The convention for adjusting a date if it would otherwise fall on a day that is not a business day, as specified by an ISDA convention (e.g. Following, Precedent)."> - businessCenters BusinessCenters (0..1) - businessCentersReference BusinessCenters (0..1) <"A pointer style reference to a set of financial business centers defined elsewhere in the document. This set of business centers is used to determine whether a particular day is a business day or not."> - [metadata reference] - dateRelativeTo date (0..1) <"Specifies the anchor as an href attribute. The href attribute value is a pointer style reference to the element or component elsewhere in the document where the anchor date is defined."> - [metadata reference] - adjustedDate date (0..1) <"The date once the adjustment has been performed. (Note that this date may change if the business center holidays change)."> + businessDayConvention BusinessDayConventionEnum (1..1) <"The convention for adjusting a date if it would otherwise fall on a day that is not a business day, as specified by an ISDA convention (e.g. Following, Precedent)."> + businessCenters BusinessCenters (0..1) + businessCentersReference BusinessCenters (0..1) <"A pointer style reference to a set of financial business centers defined elsewhere in the document. This set of business centers is used to determine whether a particular day is a business day or not."> + [metadata reference] + dateRelativeTo date (0..1) <"Specifies the anchor as an href attribute. The href attribute value is a pointer style reference to the element or component elsewhere in the document where the anchor date is defined."> + [metadata reference] + adjustedDate date (0..1) <"The date once the adjustment has been performed. (Note that this date may change if the business center holidays change)."> type TimeZone: <"The time alongside with the timezone location information. This class makes use of the FpML TimezoneLocation construct."> - time time (1..1) <"The observation time."> - location string (0..1) <"FpML specifies the timezoneLocationScheme by reference to the Time Zone Database (a.k.a. tz database) maintained by IANA, the Internet Assigned Numbers Authority."> - [metadata scheme] + time time (1..1) <"The observation time."> + location string (0..1) <"FpML specifies the timezoneLocationScheme by reference to the Time Zone Database (a.k.a. tz database) maintained by IANA, the Internet Assigned Numbers Authority."> + [metadata scheme] type PeriodRange: <"Indicates The period range defined as either a lower and upper period bound, or both."> - lowerBound PeriodBound (0..1) <"Specifies the lower bound of a period range, e.g. greater than or equal to 5Y."> - upperBound PeriodBound (0..1) <"Specifies the upper bound of a period range, e.g. less than to 10Y."> + lowerBound PeriodBound (0..1) <"Specifies the lower bound of a period range, e.g. greater than or equal to 5Y."> + upperBound PeriodBound (0..1) <"Specifies the upper bound of a period range, e.g. less than to 10Y."> - condition AtLeastOneOf: lowerBound exists or upperBound exists + condition AtLeastOneOf: + lowerBound exists or upperBound exists type PeriodBound: <"Indicator to specify if the period bound is defined as a period and whether the bound is inclusive."> - period Period (1..1) <"Specifies the period is to be used as the bound, e.g. 5Y."> - inclusive boolean (1..1) <"Specifies whether the period bound is inclusive, e.g. for a lower bound, false would indicate greater than, whereas true would indicate greater than or equal to."> + period Period (1..1) <"Specifies the period is to be used as the bound, e.g. 5Y."> + inclusive boolean (1..1) <"Specifies whether the period bound is inclusive, e.g. for a lower bound, false would indicate greater than, whereas true would indicate greater than or equal to."> type AveragingSchedule: <"Class to representing a method for generating a series of dates."> - startDate date (1..1) <"Date on which this period begins."> - endDate date (1..1) <"Date on which this period ends."> - averagingPeriodFrequency CalculationPeriodFrequency (1..1) <"The frequency at which averaging period occurs with the regular part of the valuation schedule and their roll date convention."> + startDate date (1..1) <"Date on which this period begins."> + endDate date (1..1) <"Date on which this period ends."> + averagingPeriodFrequency CalculationPeriodFrequency (1..1) <"The frequency at which averaging period occurs with the regular part of the valuation schedule and their roll date convention."> type AdjustableRelativeOrPeriodicDates: <"A class giving the choice between defining a series of dates as an explicit list of dates together with applicable adjustments or as relative to some other series of (anchor) dates, or as a calculation period schedule."> - [metadata key] + [metadata key] - adjustableDates AdjustableDates (0..1) <"A series of dates that shall be subject to adjustment if they would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date."> - relativeDates RelativeDates (0..1) <"A series of dates specified as some offset to another series of dates (the anchor dates)."> - periodicDates PeriodicDates (0..1) <"A calculation period schedule."> + adjustableDates AdjustableDates (0..1) <"A series of dates that shall be subject to adjustment if they would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date."> + relativeDates RelativeDates (0..1) <"A series of dates specified as some offset to another series of dates (the anchor dates)."> + periodicDates PeriodicDates (0..1) <"A calculation period schedule."> - condition AdjustableRelativeOrPeriodicDatesChoice: <"Choice rule to represent an FpML choice construct."> - required choice adjustableDates, relativeDates, periodicDates + condition AdjustableRelativeOrPeriodicDatesChoice: <"Choice rule to represent an FpML choice construct."> + required choice adjustableDates, relativeDates, periodicDates type PeriodicDates: <"A class for specifying a calculation period schedule."> - startDate AdjustableOrRelativeDate (0..1) <"The start date of the calculation period. FpML specifies that for interest rate swaps this date must only be specified if it is not equal to the effective date. It is always specified in the case of equity swaps and credit default swaps with periodic payments. This date may be subject to adjustment in accordance with a business day convention."> - endDate AdjustableOrRelativeDate (0..1) <"The end date of the calculation period. FpML specifies that for interest rate swaps this date must only be specified if it is not equal to the termination date. It is always specified in the case of equity swaps with periodic payments. This date may be subject to adjustment in accordance with a business day convention."> - periodFrequency CalculationPeriodFrequency (0..1) <"The frequency at which calculation period end dates occur with the regular part of the calculation period schedule and their roll date convention."> - periodDatesAdjustments BusinessDayAdjustments (0..1) <"The specification of the business day convention and financial business centers used for adjusting any calculation period date if it would otherwise fall on a day that is not a business day in the specified business center."> - dayType DayTypeEnum (0..1) <"Denotes the enumerated values to specify the day type classification used in counting the number of days between two dates."> + startDate AdjustableOrRelativeDate (0..1) <"The start date of the calculation period. FpML specifies that for interest rate swaps this date must only be specified if it is not equal to the effective date. It is always specified in the case of equity swaps and credit default swaps with periodic payments. This date may be subject to adjustment in accordance with a business day convention."> + endDate AdjustableOrRelativeDate (0..1) <"The end date of the calculation period. FpML specifies that for interest rate swaps this date must only be specified if it is not equal to the termination date. It is always specified in the case of equity swaps with periodic payments. This date may be subject to adjustment in accordance with a business day convention."> + periodFrequency CalculationPeriodFrequency (0..1) <"The frequency at which calculation period end dates occur with the regular part of the calculation period schedule and their roll date convention."> + periodDatesAdjustments BusinessDayAdjustments (0..1) <"The specification of the business day convention and financial business centers used for adjusting any calculation period date if it would otherwise fall on a day that is not a business day in the specified business center."> + dayType DayTypeEnum (0..1) <"Denotes the enumerated values to specify the day type classification used in counting the number of days between two dates."> type CalculationPeriodFrequency extends Frequency: <"A class to specify the frequency at which calculation period end dates occur within the regular part of the calculation period schedule and their roll date convention."> - rollConvention RollConventionEnum (1..1) <"The roll convention specifies the period term as part of a periodic schedule, i.e. the calculation period end date within the regular part of the calculation period. The value could be a rule, e.g. IMM Settlement Dates, which is the 3rd Wednesday of the month, or it could be a specific day of the month, such as the first day of the applicable month. It is used in conjunction with a frequency and the regular period start date of a calculation period."> - balanceOfFirstPeriod boolean (0..1) <"Indicates, when true, that that the first Calculation Period should run from the Effective Date to the end of the calendar period in which the Effective Date falls, e.g. Jan 15 - Jan 31 if the calculation periods are one month long and Effective Date is Jan 15. If false, the first Calculation Period should run from the Effective Date for one whole period, e.g. Jan 15 to Feb 14 if the calculation periods are one month long and Effective Date is Jan 15. Mostly used in Commmodity Swaps."> - - condition FpML_ird_57: <"FpML validation rule ird-57 - Context: CalculationPeriodFrequency. [period eq ('M', 'Y')] not(rollConvention = ('NONE', 'SFE', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT','SUN'))."> - if period = PeriodExtendedEnum -> M or period = PeriodExtendedEnum -> Y - then rollConvention <> RollConventionEnum -> NONE - and rollConvention <> RollConventionEnum -> SFE - and rollConvention <> RollConventionEnum -> MON - and rollConvention <> RollConventionEnum -> TUE - and rollConvention <> RollConventionEnum -> WED - and rollConvention <> RollConventionEnum -> THU - and rollConvention <> RollConventionEnum -> FRI - and rollConvention <> RollConventionEnum -> SAT - and rollConvention <> RollConventionEnum -> SUN - - condition FpML_ird_58: <"FpML validation rule ird-58 - Context: CalculationPeriodFrequency. When the period is 'W', the rollConvention must be a week day, 'SFE' or 'NONE'."> - if period = PeriodExtendedEnum -> W - then rollConvention = RollConventionEnum -> NONE - or rollConvention = RollConventionEnum -> SFE - or rollConvention = RollConventionEnum -> MON - or rollConvention = RollConventionEnum -> TUE - or rollConvention = RollConventionEnum -> WED - or rollConvention = RollConventionEnum -> THU - or rollConvention = RollConventionEnum -> FRI - or rollConvention = RollConventionEnum -> SAT - or rollConvention = RollConventionEnum -> SUN - - condition FpML_ird_60: <"FpML validation rule ird-60 - Context: CalculationPeriodFrequency. When the period is 'T', the rollConvention must be 'NONE'."> - if period = PeriodExtendedEnum -> T - then rollConvention = RollConventionEnum -> NONE + rollConvention RollConventionEnum (1..1) <"The roll convention specifies the period term as part of a periodic schedule, i.e. the calculation period end date within the regular part of the calculation period. The value could be a rule, e.g. IMM Settlement Dates, which is the 3rd Wednesday of the month, or it could be a specific day of the month, such as the first day of the applicable month. It is used in conjunction with a frequency and the regular period start date of a calculation period."> + balanceOfFirstPeriod boolean (0..1) <"Indicates, when true, that that the first Calculation Period should run from the Effective Date to the end of the calendar period in which the Effective Date falls, e.g. Jan 15 - Jan 31 if the calculation periods are one month long and Effective Date is Jan 15. If false, the first Calculation Period should run from the Effective Date for one whole period, e.g. Jan 15 to Feb 14 if the calculation periods are one month long and Effective Date is Jan 15. Mostly used in Commmodity Swaps."> + + condition FpML_ird_57: <"FpML validation rule ird-57 - Context: CalculationPeriodFrequency. [period eq ('M', 'Y')] not(rollConvention = ('NONE', 'SFE', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT','SUN'))."> + if period = PeriodExtendedEnum -> M or period = PeriodExtendedEnum -> Y + then rollConvention <> RollConventionEnum -> NONE + and rollConvention <> RollConventionEnum -> SFE + and rollConvention <> RollConventionEnum -> MON + and rollConvention <> RollConventionEnum -> TUE + and rollConvention <> RollConventionEnum -> WED + and rollConvention <> RollConventionEnum -> THU + and rollConvention <> RollConventionEnum -> FRI + and rollConvention <> RollConventionEnum -> SAT + and rollConvention <> RollConventionEnum -> SUN + + condition FpML_ird_58: <"FpML validation rule ird-58 - Context: CalculationPeriodFrequency. When the period is 'W', the rollConvention must be a week day, 'SFE' or 'NONE'."> + if period = PeriodExtendedEnum -> W + then rollConvention = RollConventionEnum -> NONE + or rollConvention = RollConventionEnum -> SFE + or rollConvention = RollConventionEnum -> MON + or rollConvention = RollConventionEnum -> TUE + or rollConvention = RollConventionEnum -> WED + or rollConvention = RollConventionEnum -> THU + or rollConvention = RollConventionEnum -> FRI + or rollConvention = RollConventionEnum -> SAT + or rollConvention = RollConventionEnum -> SUN + + condition FpML_ird_60: <"FpML validation rule ird-60 - Context: CalculationPeriodFrequency. When the period is 'T', the rollConvention must be 'NONE'."> + if period = PeriodExtendedEnum -> T + then rollConvention = RollConventionEnum -> NONE type CalculationFrequency: <"Represents the parameters for describing how often something (such as collateral interest) is to be calculated."> - period Period(1..1) <"Specifies the time period at which calculation is performed, e.g. 1 month."> - monthOfYear number(0..1) <"Specifies the month of the year if used."> - dayOfMonth number(0..1) <"Specifies the day of the month if used."> - dayOfWeek DayOfWeekEnum(0..1) <"Specifies the day of the week if used."> - weekOfMonth number(0..1) <"Specifies the week of the month if used."> - offsetDays number(1..1) <"Specifies how many days from the trigger event should the payment occur."> - dateLocation BusinessCenterTime(1..1) <"Specifies where is the time measured."> - businessCenter BusinessCenterEnum(0..*) <"Specifies the business center for adjustment of calculation period."> - - condition Moy : if monthOfYear exists then monthOfYear <= 12 - condition Dom : if dayOfMonth exists then dayOfMonth <= 31 - condition Wom : if weekOfMonth exists then weekOfMonth <= 5 - - condition MoyTerm : if monthOfYear exists then (period->period = PeriodEnum->Y) - condition DomTerm : if dayOfMonth exists then (period->period = PeriodEnum->M) - condition DowTerm : if dayOfWeek exists then (period->period = PeriodEnum->W) - condition WomTerm : if weekOfMonth exists then (period->period = PeriodEnum->M) + period Period (1..1) <"Specifies the time period at which calculation is performed, e.g. 1 month."> + monthOfYear number (0..1) <"Specifies the month of the year if used."> + dayOfMonth number (0..1) <"Specifies the day of the month if used."> + dayOfWeek DayOfWeekEnum (0..1) <"Specifies the day of the week if used."> + weekOfMonth number (0..1) <"Specifies the week of the month if used."> + offsetDays number (1..1) <"Specifies how many days from the trigger event should the payment occur."> + dateLocation BusinessCenterTime (1..1) <"Specifies where is the time measured."> + businessCenter BusinessCenterEnum (0..*) <"Specifies the business center for adjustment of calculation period."> + + condition Moy: + if monthOfYear exists then monthOfYear <= 12 + + condition Dom: + if dayOfMonth exists then dayOfMonth <= 31 + + condition Wom: + if weekOfMonth exists then weekOfMonth <= 5 + + condition MoyTerm: + if monthOfYear exists + then (period -> period = PeriodEnum -> Y) + + condition DomTerm: + if dayOfMonth exists then (period -> period = PeriodEnum -> M) + + condition DowTerm: + if dayOfWeek exists then (period -> period = PeriodEnum -> W) + condition WomTerm: + if weekOfMonth exists + then (period -> period = PeriodEnum -> M) diff --git a/rosetta-source/src/main/rosetta/base-desc.rosetta b/rosetta-source/src/main/rosetta/base-desc.rosetta index 88b681467d..4115e56511 100644 --- a/rosetta-source/src/main/rosetta/base-desc.rosetta +++ b/rosetta-source/src/main/rosetta/base-desc.rosetta @@ -7,16 +7,13 @@ metaType reference string metaType scheme string body Organisation ISDA -body Organisation ICMA - <"ICMA promotes well-functioning cross-border capital markets, which are essential to fund sustainable economic growth. It is a not-for-profit membership association with offices in Zurich, London, Paris, Brussels and Hong Kong, serving over 600 member firms in 65 jurisdictions. Among its members are private and official sector issuers, banks, broker-dealers, asset managers, pension funds, insurance companies, market infrastructure providers, central banks and law firms. It provides industry-driven standards and recommendations, prioritising four core fixed income market areas: primary, secondary, repo and collateral and sustainable finance. ICMA works with regulatory and governmental authorities, helping to ensure that financial regulation supports stable and efficient capital markets. www.icmagroup.org"> +body Organisation ICMA <"ICMA promotes well-functioning cross-border capital markets, which are essential to fund sustainable economic growth. It is a not-for-profit membership association with offices in Zurich, London, Paris, Brussels and Hong Kong, serving over 600 member firms in 65 jurisdictions. Among its members are private and official sector issuers, banks, broker-dealers, asset managers, pension funds, insurance companies, market infrastructure providers, central banks and law firms. It provides industry-driven standards and recommendations, prioritising four core fixed income market areas: primary, secondary, repo and collateral and sustainable finance. ICMA works with regulatory and governmental authorities, helping to ensure that financial regulation supports stable and efficient capital markets. www.icmagroup.org"> body Organisation ISO -corpus MasterAgreement "Global Master Repurchase Agreement GMRA 2011" GMRA - <"The Global Master Repurchase Agreement (GMRA) is a model legal agreement designed for parties transacting repos and is published by the International Capital Market Association (ICMA)."> -corpus Guidance "ERCC Guide to Best Practice in the European Repo Market ERCC Guide to Best Practice in the European Repo Market" ERCCBestPractice - <"The ERCC Guide to Best Practice in the European Repo Market is published by ICMAs European Repo and Collateral Council (ERCC). Its purpose is to help foster a fair and efficient European repo market by recommending practices which market experience suggests can help avoid uncertainty or disagreement about transactions, and consequent delay or disruption to repo trading and settlement. With the same purpose in mind, the Guide also codifies market conventions, where this has been thought to be helpful, usually in response to queries from market participants."> +corpus MasterAgreement "Global Master Repurchase Agreement GMRA 2011" GMRA <"The Global Master Repurchase Agreement (GMRA) is a model legal agreement designed for parties transacting repos and is published by the International Capital Market Association (ICMA)."> +corpus Guidance "ERCC Guide to Best Practice in the European Repo Market ERCC Guide to Best Practice in the European Repo Market" ERCCBestPractice <"The ERCC Guide to Best Practice in the European Repo Market is published by ICMAs European Repo and Collateral Council (ERCC). Its purpose is to help foster a fair and efficient European repo market by recommending practices which market experience suggests can help avoid uncertainty or disagreement about transactions, and consequent delay or disruption to repo trading and settlement. With the same purpose in mind, the Guide also codifies market conventions, where this has been thought to be helpful, usually in response to queries from market participants."> corpus Scheme FpML_Coding_Scheme corpus Scheme ISO_4217_Currency_Scheme segment schemeLocation -segment namingConvention \ No newline at end of file +segment namingConvention diff --git a/rosetta-source/src/main/rosetta/base-math-enum.rosetta b/rosetta-source/src/main/rosetta/base-math-enum.rosetta index 11ef801dc1..f3f86a38b0 100755 --- a/rosetta-source/src/main/rosetta/base-math-enum.rosetta +++ b/rosetta-source/src/main/rosetta/base-math-enum.rosetta @@ -2,26 +2,26 @@ namespace cdm.base.math : <"Basic maths concepts: quantity and unit, rounding, c version "${project.version}" enum AveragingWeightingMethodEnum: <"The enumerated values to specify the method of calculation to be used when averaging rates. Per ISDA 2000 Definitions, Section 6.2. Certain Definitions Relating to Floating Amounts."> - Unweighted <"The arithmetic mean of the relevant rates for each reset date."> - Weighted <"The arithmetic mean of the relevant rates in effect for each day in a calculation period calculated by multiplying each relevant rate by the number of days such relevant rate is in effect, determining the sum of such products and dividing such sum by the number of days in the calculation period."> + Unweighted <"The arithmetic mean of the relevant rates for each reset date."> + Weighted <"The arithmetic mean of the relevant rates in effect for each day in a calculation period calculated by multiplying each relevant rate by the number of days such relevant rate is in effect, determining the sum of such products and dividing such sum by the number of days in the calculation period."> enum AveragingCalculationMethodEnum: <"Specifies enumerations for the type of averaging calculation."> - Arithmetic <"Refers to the calculation of an average by taking the sum of observations divided by the count of observations."> - Geometric <"Refers to the calculation of an average by taking the nth root of the product of n observations."> - Harmonic <"Refers to the calculation of an average by taking the reciprocal of the arithmetic mean of the reciprocals of the observations."> + Arithmetic <"Refers to the calculation of an average by taking the sum of observations divided by the count of observations."> + Geometric <"Refers to the calculation of an average by taking the nth root of the product of n observations."> + Harmonic <"Refers to the calculation of an average by taking the reciprocal of the arithmetic mean of the reciprocals of the observations."> enum RoundingDirectionEnum: <"The enumerated values to specify the rounding direction and precision to be used in the rounding of a rate."> - Up <"A fractional number will be rounded up to the specified number of decimal places (the precision). For example, 5.21 and 5.25 rounded up to 1 decimal place are 5.3 and 5.3 respectively."> - Down <"A fractional number will be rounded down to the specified number of decimal places (the precision). For example, 5.29 and 5.25 rounded down to 1 decimal place are 5.2 and 5.2 respectively."> - Nearest <"A fractional number will be rounded either up or down to the specified number of decimal places (the precision) depending on its value. For example, 5.24 would be rounded down to 5.2 and 5.25 would be rounded up to 5.3 if a precision of 1 decimal place were specified."> + Up <"A fractional number will be rounded up to the specified number of decimal places (the precision). For example, 5.21 and 5.25 rounded up to 1 decimal place are 5.3 and 5.3 respectively."> + Down <"A fractional number will be rounded down to the specified number of decimal places (the precision). For example, 5.29 and 5.25 rounded down to 1 decimal place are 5.2 and 5.2 respectively."> + Nearest <"A fractional number will be rounded either up or down to the specified number of decimal places (the precision) depending on its value. For example, 5.24 would be rounded down to 5.2 and 5.25 would be rounded up to 5.3 if a precision of 1 decimal place were specified."> enum RoundingModeEnum: - Down - Up + Down + Up enum QuantifierEnum: <"Represents the enumerated values to specify a logical quantification, i.e. either All or Any."> - All <"Specifies that the condition in the scope of the quantifier is true of every member of the domain i.e. every one of the elements in scope."> - Any <"Specifies that the condition in the scope of the quantifier is true of at least one member of the domain i.e. one or more of the elements in scope."> + All <"Specifies that the condition in the scope of the quantifier is true of every member of the domain i.e. every one of the elements in scope."> + Any <"Specifies that the condition in the scope of the quantifier is true of at least one member of the domain i.e. one or more of the elements in scope."> enum CompareOp: GreaterThan @@ -98,19 +98,19 @@ enum CapacityUnitEnum: <"Provides enumerated values for capacity units, generall USTHM <"Denotes a US Thermal Unit as a standard unit."> enum WeatherUnitEnum: <"Provides enumerated values for weather units, generally used in the context of defining quantities for commodities."> - CDD <"Denotes Cooling Degree Days as a standard unit."> - CPD <"Denotes Critical Precipitation Day as a standard unit."> - HDD <"Heating Degree Day as a standard unit."> + CDD <"Denotes Cooling Degree Days as a standard unit."> + CPD <"Denotes Critical Precipitation Day as a standard unit."> + HDD <"Heating Degree Day as a standard unit."> enum FinancialUnitEnum: <"Provides enumerated values for financial units, generally used in the context of defining quantities for securities."> - Contract <"Denotes financial contracts, such as listed futures and options."> - ContractualProduct <"Denotes a Contractual Product as defined in the CDM. This unit type would be used when the price applies to the whole product, for example, in the case of a premium expressed as a cash amount."> - IndexUnit <"Denotes a price expressed in index points, e.g. for a stock index."> - LogNormalVolatility <"Denotes a log normal volatility, expressed in %/month, where the percentage is represented as a decimal. For example, 0.15 means a log-normal volatility of 15% per month."> - Share <"Denotes the number of units of financial stock shares."> - ValuePerDay <"Denotes a value (expressed in currency units) for a one day change in a valuation date, which is typically used for expressing sensitivity to the passage of time, also known as theta risk, or carry, or other names."> - ValuePerPercent <"Denotes a value (expressed in currency units) per percent change in the underlying rate which is typically used for expressing sensitivity to volatility changes, also known as vega risk."> - Weight <"Denotes a quantity (expressed as a decimal value) represented the weight of a component in a basket."> + Contract <"Denotes financial contracts, such as listed futures and options."> + ContractualProduct <"Denotes a Contractual Product as defined in the CDM. This unit type would be used when the price applies to the whole product, for example, in the case of a premium expressed as a cash amount."> + IndexUnit <"Denotes a price expressed in index points, e.g. for a stock index."> + LogNormalVolatility <"Denotes a log normal volatility, expressed in %/month, where the percentage is represented as a decimal. For example, 0.15 means a log-normal volatility of 15% per month."> + Share <"Denotes the number of units of financial stock shares."> + ValuePerDay <"Denotes a value (expressed in currency units) for a one day change in a valuation date, which is typically used for expressing sensitivity to the passage of time, also known as theta risk, or carry, or other names."> + ValuePerPercent <"Denotes a value (expressed in currency units) per percent change in the underlying rate which is typically used for expressing sensitivity to volatility changes, also known as vega risk."> + Weight <"Denotes a quantity (expressed as a decimal value) represented the weight of a component in a basket."> enum ArithmeticOperationEnum: <"An arithmetic operator that can be passed to a function"> Add <"Addition of 2 values"> @@ -121,6 +121,6 @@ enum ArithmeticOperationEnum: <"An arithmetic operator that can be passed to a f Min <"Minimum of 2 values"> enum QuantityChangeDirectionEnum: <"Specifies whether a quantity change is an increase, a decrease or a replacement, whereby the quantity is always specified as a positive number."> - Increase <"When the quantity should go up by the specified amount."> - Decrease <"When the quantity should go down by the specified amount."> - Replace <"When the quantity should be replaced by the specified amount."> + Increase <"When the quantity should go up by the specified amount."> + Decrease <"When the quantity should go down by the specified amount."> + Replace <"When the quantity should be replaced by the specified amount."> diff --git a/rosetta-source/src/main/rosetta/base-math-func.rosetta b/rosetta-source/src/main/rosetta/base-math-func.rosetta index b2470314c9..c4391ec644 100755 --- a/rosetta-source/src/main/rosetta/base-math-func.rosetta +++ b/rosetta-source/src/main/rosetta/base-math-func.rosetta @@ -2,14 +2,14 @@ namespace cdm.base.math : <"Basic maths concepts: quantity and unit, rounding, c version "${project.version}" func CompareNumbers: - inputs: + inputs: n1 number (1..1) op CompareOp (1..1) n2 number (1..1) - output: + output: result boolean (1..1) - set result: + set result: if op = CompareOp -> GreaterThan then n1 > n2 = True else if op = CompareOp -> GreaterThanOrEquals @@ -23,50 +23,47 @@ func CompareNumbers: else False func Abs: <"Returns the absolute value of a number. If the argument is not negative, the argument is returned. If the argument is negative, the negation of the argument is returned."> - inputs: - arg number (1..1) - output: - result number (1..1) - set result: - if arg < 0 then -1 * arg else arg + inputs: + arg number (1..1) + output: + result number (1..1) + set result: if arg < 0 then -1 * arg else arg func Max: <"Returns the greater number of two supplied numbers."> - inputs: - a number (1..1) - b number (1..1) - output: - result number (1..1) - set result: - if a > b then a else b + inputs: + a number (1..1) + b number (1..1) + output: + result number (1..1) + set result: if a > b then a else b func Min: <"Returns the lesser number of two supplied numbers."> - inputs: - a number (1..1) - b number (1..1) - output: - result number (1..1) - set result: - if a > b then b else a + inputs: + a number (1..1) + b number (1..1) + output: + result number (1..1) + set result: if a > b then b else a func RoundToNearest: - inputs: - value number (1..1) - nearest number (1..1) - roundingMode RoundingModeEnum (1..1) - output: - roundedValue number (1..1) - condition PositiveNearest: - nearest > 0 + inputs: + value number (1..1) + nearest number (1..1) + roundingMode RoundingModeEnum (1..1) + output: + roundedValue number (1..1) + condition PositiveNearest: + nearest > 0 func RoundToPrecision: <"Round a rate to the supplied precision, using the supplied rounding direction"> - inputs: - value number (1..1) <"The original (unrounded) number."> - precision int (1..1) <"The number of decimal digits of precision."> - roundingMode RoundingDirectionEnum (1..1) <"The method of rounding (up/down/nearest)."> - output: - roundedValue number (1..1) <"The value to the desired precision"> - condition NonNegativePrecision: - precision >= 0 + inputs: + value number (1..1) <"The original (unrounded) number."> + precision int (1..1) <"The number of decimal digits of precision."> + roundingMode RoundingDirectionEnum (1..1) <"The method of rounding (up/down/nearest)."> + output: + roundedValue number (1..1) <"The value to the desired precision"> + condition NonNegativePrecision: + precision >= 0 func CompareQuantityByUnitOfAmount: inputs: @@ -78,12 +75,12 @@ func CompareQuantityByUnitOfAmount: result boolean (1..1) set result: - FilterQuantity( quantity1, unitOfAmount ) + FilterQuantity(quantity1, unitOfAmount) extract q1 [ - FilterQuantity( quantity2, unitOfAmount ) - extract q2 [ CompareNumbers( q1 -> value, op, q2 -> value ) ] - ] then flatten - all = True + FilterQuantity(quantity2, unitOfAmount) + extract q2 [ CompareNumbers(q1 -> value, op, q2 -> value) ] + ] + then flatten all = True func FilterQuantity: <"Filter list of quantities based on unit type."> inputs: @@ -92,9 +89,7 @@ func FilterQuantity: <"Filter list of quantities based on unit type."> output: filteredQuantities Quantity (0..*) - add filteredQuantities: - quantities - filter item -> unit = unit + add filteredQuantities: quantities filter item -> unit = unit func FilterQuantityByCurrency: <"Filter list of quantities based on unit type."> inputs: @@ -103,9 +98,7 @@ func FilterQuantityByCurrency: <"Filter list of quantities based on unit type."> output: filteredQuantities QuantitySchedule (0..*) - add filteredQuantities: - quantities - filter item -> unit -> currency = currency + add filteredQuantities: quantities filter item -> unit -> currency = currency func FilterQuantityByCurrencyExists: <"Filter list of quantities based on unit type."> inputs: @@ -113,9 +106,7 @@ func FilterQuantityByCurrencyExists: <"Filter list of quantities based on unit t output: filteredQuantities QuantitySchedule (0..*) - add filteredQuantities: - quantities - filter item -> unit -> currency exists + add filteredQuantities: quantities filter item -> unit -> currency exists func FilterQuantityByFinancialUnit: <"Filter list of quantities based on unit type."> inputs: @@ -124,14 +115,12 @@ func FilterQuantityByFinancialUnit: <"Filter list of quantities based on unit ty output: filteredQuantities QuantitySchedule (0..*) - add filteredQuantities: - quantities - filter item -> unit -> financialUnit = financialUnit + add filteredQuantities: quantities filter item -> unit -> financialUnit = financialUnit func AppendToVector: <"Append a single value to a vector (list of numbers)."> inputs: - vector number (0..*) <"Input vector."> - value number (1..1) <"Value to add to the vector."> + vector number (0..*) <"Input vector."> + value number (1..1) <"Value to add to the vector."> output: resultVector number (0..*) <"Resulting vector."> @@ -140,54 +129,49 @@ func AppendToVector: <"Append a single value to a vector (list of numbers)."> func VectorOperation: <"Generates a result vector by applying the supplied arithmetic operation to each element of the supplied left and right vectors in turn. i.e. result[n] = left[n] right[n], where is the arithmetic operation defined by ArithmeticOperationEnum."> inputs: - arithmeticOp ArithmeticOperationEnum (1..1) <"Vector operator."> - left number (0..*) <"Left vector."> - right number (0..*) <"Right vector."> - output: - result number (0..*) <"Result vector."> + arithmeticOp ArithmeticOperationEnum (1..1) <"Vector operator."> + left number (0..*) <"Left vector."> + right number (0..*) <"Right vector."> + output: + result number (0..*) <"Result vector."> func VectorScalarOperation: <"Generates a result vector by applying the supplied arithmetic operation and scalar right value to each element of the supplied left vector in turn. i.e. result[n] = left[n] right, where is the arithmetic operation defined by ArithmeticOperationEnum."> - inputs: - arithmeticOp ArithmeticOperationEnum (1..1) <"Arithmetic operator to be applied."> - left number (0..*) <"Left vector."> - right number (0..1) <"Scalar number - a single value to be applied to all elements of vector."> - output: - result number (0..*) <"Result vector."> - - alias rightOrDefault: - if right exists then - right - else 0.0 - - add result: - left - extract ArithmeticOperation(item, arithmeticOp, rightOrDefault) + inputs: + arithmeticOp ArithmeticOperationEnum (1..1) <"Arithmetic operator to be applied."> + left number (0..*) <"Left vector."> + right number (0..1) <"Scalar number - a single value to be applied to all elements of vector."> + output: + result number (0..*) <"Result vector."> + + alias rightOrDefault: if right exists then right else 0.0 + + add result: left extract ArithmeticOperation(item, arithmeticOp, rightOrDefault) func VectorGrowthOperation: <"Generates a result vector by starting with the supplied base value (typically 1), and then multiplying it in turn by each growth factor, which is typically a number just above 1. For instance, a growth factor of 1.1 reprsents a 10% increase, and 0.9 a 10% decrease. The results will show the successive results of applying the successive growth factors, with the first value of the list being the supplied baseValue, and final value of the results list being the product of all of the supplied values. i.e. result[1] = baseValue * factor[1], result[n] = result[n-1] * factor[n]. The resulting list will have the one more element than the supplied list of factors."> inputs: - baseValue number (1..1) <"Original value, typically 1.0."> - factor number (0..*) <"Vector of growth factors, which are all typically slightly greater than 1.0."> + baseValue number (1..1) <"Original value, typically 1.0."> + factor number (0..*) <"Vector of growth factors, which are all typically slightly greater than 1.0."> output: result number (0..*) <"Result vector, showing all of the interim growth values"> func ArithmeticOperation: - inputs: + inputs: n1 number (1..1) op ArithmeticOperationEnum (1..1) n2 number (1..1) - output: + output: result number (1..1) - set result: - if op = ArithmeticOperationEnum -> Add then - n1 + n2 - else if op = ArithmeticOperationEnum -> Subtract then - n1 - n2 - else if op = ArithmeticOperationEnum -> Multiply then - n1 * n2 - else if op = ArithmeticOperationEnum -> Divide then - n1 / n2 - else if op = ArithmeticOperationEnum -> Max then - Max( n1, n2 ) - else if op = ArithmeticOperationEnum -> Min then - Min( n1, n2 ) + set result: + if op = ArithmeticOperationEnum -> Add + then n1 + n2 + else if op = ArithmeticOperationEnum -> Subtract + then n1 - n2 + else if op = ArithmeticOperationEnum -> Multiply + then n1 * n2 + else if op = ArithmeticOperationEnum -> Divide + then n1 / n2 + else if op = ArithmeticOperationEnum -> Max + then Max(n1, n2) + else if op = ArithmeticOperationEnum -> Min + then Min(n1, n2) diff --git a/rosetta-source/src/main/rosetta/base-math-type.rosetta b/rosetta-source/src/main/rosetta/base-math-type.rosetta index b551c4e734..d9c93795ac 100755 --- a/rosetta-source/src/main/rosetta/base-math-type.rosetta +++ b/rosetta-source/src/main/rosetta/base-math-type.rosetta @@ -5,110 +5,110 @@ import cdm.observable.asset.* import cdm.base.datetime.* type UnitType: <"Defines the unit to be used for price, quantity, or other purposes"> - capacityUnit CapacityUnitEnum (0..1) <"Provides an enumerated value for a capacity unit, generally used in the context of defining quantities for commodities."> - weatherUnit WeatherUnitEnum (0..1) <"Provides an enumerated values for a weather unit, generally used in the context of defining quantities for commodities."> - financialUnit FinancialUnitEnum (0..1) <"Provides an enumerated value for financial units, generally used in the context of defining quantities for securities."> - currency string (0..1) <"Defines the currency to be used as a unit for a price, quantity, or other purpose."> - [metadata scheme] + capacityUnit CapacityUnitEnum (0..1) <"Provides an enumerated value for a capacity unit, generally used in the context of defining quantities for commodities."> + weatherUnit WeatherUnitEnum (0..1) <"Provides an enumerated values for a weather unit, generally used in the context of defining quantities for commodities."> + financialUnit FinancialUnitEnum (0..1) <"Provides an enumerated value for financial units, generally used in the context of defining quantities for securities."> + currency string (0..1) <"Defines the currency to be used as a unit for a price, quantity, or other purpose."> + [metadata scheme] - condition UnitType: <"Requires that a unit type must be set."> - one-of + condition UnitType: <"Requires that a unit type must be set."> + one-of type MeasureBase: <"Provides an abstract type to define a measure as a number associated to a unit. This type is abstract because all its attributes are optional. The types that extend it can specify further existence constraints."> - - value number (0..1) <"Specifies the value of the measure as a number. Optional because in a measure vector or schedule, this single value may be omitted."> - unit UnitType (0..1) <"Qualifies the unit by which the amount is measured. Optional because a measure may be unit-less (e.g. when representing a ratio between amounts in the same unit)."> + + value number (0..1) <"Specifies the value of the measure as a number. Optional because in a measure vector or schedule, this single value may be omitted."> + unit UnitType (0..1) <"Qualifies the unit by which the amount is measured. Optional because a measure may be unit-less (e.g. when representing a ratio between amounts in the same unit)."> type Measure extends MeasureBase: <"Defines a concrete measure as a number associated to a unit. It extends MeasureBase by requiring the value attribute to be present. A measure may be unit-less so the unit attribute is still optional."> - condition ValueExists: <"The value attribute must be present in a concrete measure."> - value exists + condition ValueExists: <"The value attribute must be present in a concrete measure."> + value exists type MeasureSchedule extends MeasureBase: <"A set of measures, all in the same unit, where the values are defined through a schedule of steps. The initial value may be defined either as part of the steps, or using the single amount attribute."> - datedValue DatedValue (0..*) <"A schedule of step date and value pairs. On each step date the associated step value becomes effective. The step dates are used to order the steps by ascending order. This attribute is optional so the data type may be used to define a schedule with a single value."> + datedValue DatedValue (0..*) <"A schedule of step date and value pairs. On each step date the associated step value becomes effective. The step dates are used to order the steps by ascending order. This attribute is optional so the data type may be used to define a schedule with a single value."> - condition ValueExists: <"A schedule may be specified as a single value or as a set of date-value pairs. Both attributes may be specified, in which case the single amount number is the initial value."> - value exists or datedValue exists + condition ValueExists: <"A schedule may be specified as a single value or as a set of date-value pairs. Both attributes may be specified, in which case the single amount number is the initial value."> + value exists or datedValue exists type QuantitySchedule extends MeasureSchedule: <"Specifies a quantity schedule to be associated to a financial product to represent a trade amount. This data type extends MeasureSchedule with several unit or multiplier attributes that are used to define financial quantities. This data type is generically based on a schedule and can also be used to represent a quantity as a single value."> - multiplier Measure (0..1) <"Defines an optional number that the quantity should be multiplied by to derive a total quantity. This number is associated to a unit. For example in the case of the Coal (API2) CIF ARA (ARGUS-McCloskey) Futures Contract on the CME, where the unit would be contracts, the multiplier value would 1,000 and the mulitiplier unit would be 1,000 MT (Metric Tons)."> - frequency Frequency (0..1) <"Defines the frequency to be used when defining a quantity. For example a quantity may be specified as a number of barrels of oil per day, which needs multiplying by the number of days in the relevant period to get the total quantity as a number of barrels."> + multiplier Measure (0..1) <"Defines an optional number that the quantity should be multiplied by to derive a total quantity. This number is associated to a unit. For example in the case of the Coal (API2) CIF ARA (ARGUS-McCloskey) Futures Contract on the CME, where the unit would be contracts, the multiplier value would 1,000 and the mulitiplier unit would be 1,000 MT (Metric Tons)."> + frequency Frequency (0..1) <"Defines the frequency to be used when defining a quantity. For example a quantity may be specified as a number of barrels of oil per day, which needs multiplying by the number of days in the relevant period to get the total quantity as a number of barrels."> + + condition Quantity_multiplier: <"Requires that the multiplier must be positive."> + if multiplier exists then multiplier -> value >= 0.0 - condition Quantity_multiplier: <"Requires that the multiplier must be positive."> - if multiplier exists then multiplier -> value >= 0.0 - condition UnitOfAmountExists: <"Requires that a unit of amount must be specified for any quantity."> - unit exists + condition UnitOfAmountExists: <"Requires that a unit of amount must be specified for any quantity."> + unit exists type Quantity extends QuantitySchedule: <"Specifies a quantity as a single value to be associated to a financial product, for example a transfer amount resulting from a trade. This data type extends QuantitySchedule and requires that only the single amount value exists."> - - condition AmountOnlyExists: <"The amount must exist when the quantity represents a single value, and the steps must be absent."> - value exists and datedValue is absent - + + condition AmountOnlyExists: <"The amount must exist when the quantity represents a single value, and the steps must be absent."> + value exists and datedValue is absent + type NonNegativeQuantity extends Quantity: <"Specifies a quantity as a non-negative number, which condition is enforced through a data rule that only applies to the extending class."> - - condition NonNegativeQuantity_amount: <"For a non-negative quantity, the amount attribute must be positive."> - value >= 0.0 + + condition NonNegativeQuantity_amount: <"For a non-negative quantity, the amount attribute must be positive."> + value >= 0.0 type NonNegativeStep: <"A class defining a step date and non-negative step value pair. This step definitions are used to define varying rate or amount schedules, e.g. a notional amortisation or a step-up coupon schedule."> - [metadata key] + [metadata key] - stepDate date (1..1) <"The date on which the associated stepValue becomes effective. This day may be subject to adjustment in accordance with a business day convention."> - stepValue number (1..1) <"The non-negative rate or amount which becomes effective on the associated stepDate. A rate of 5% would be represented as 0.05."> + stepDate date (1..1) <"The date on which the associated stepValue becomes effective. This day may be subject to adjustment in accordance with a business day convention."> + stepValue number (1..1) <"The non-negative rate or amount which becomes effective on the associated stepDate. A rate of 5% would be represented as 0.05."> - condition StepValue: <"FpML specified stepValue as a NonNegativeDecimal."> - stepValue >= 0.0 + condition StepValue: <"FpML specified stepValue as a NonNegativeDecimal."> + stepValue >= 0.0 type NonNegativeQuantitySchedule extends QuantitySchedule: - - condition NonNegativeQuantity_amount: <"For a non-negative quantity, all amount attribute must be positive."> - if value exists then value >= 0.0 and - if datedValue exists then datedValue -> value all >= 0.0 + + condition NonNegativeQuantity_amount: <"For a non-negative quantity, all amount attribute must be positive."> + if value exists + then value >= 0.0 and if datedValue exists + then datedValue -> value all >= 0.0 type Rounding: <"Defines rounding rules and precision to be used in the rounding of a number."> - roundingDirection RoundingDirectionEnum (1..1) <"Specifies the rounding rounding rule as up, down, or nearest."> - precision int (0..1) <"Specifies the rounding precision in terms of a number of decimal places when the number is evaluated in decimal form (not percentage), e.g. 0.09876543 rounded to the nearest 5 decimal places is 0.0987654."> + roundingDirection RoundingDirectionEnum (1..1) <"Specifies the rounding rounding rule as up, down, or nearest."> + precision int (0..1) <"Specifies the rounding precision in terms of a number of decimal places when the number is evaluated in decimal form (not percentage), e.g. 0.09876543 rounded to the nearest 5 decimal places is 0.0987654."> type Schedule: <"A class defining a schedule of rates or amounts in terms of an initial value and then a series of step date and value pairs. On each step date the rate or amount changes to the new step value. The series of step date and value pairs are optional. If not specified, this implies that the initial value remains unchanged over time."> - value number (1..1) <"The initial rate or amount, as the case may be. An initial rate of 5% would be represented as 0.05."> - datedValue DatedValue (0..*) <"The schedule of step date and value pairs. On each step date the associated step value becomes effective. A list of steps may be ordered in the document by ascending step date. An FpML document containing an unordered list of steps is still regarded as a conformant document."> + value number (1..1) <"The initial rate or amount, as the case may be. An initial rate of 5% would be represented as 0.05."> + datedValue DatedValue (0..*) <"The schedule of step date and value pairs. On each step date the associated step value becomes effective. A list of steps may be ordered in the document by ascending step date. An FpML document containing an unordered list of steps is still regarded as a conformant document."> type DatedValue: <"Defines a date and value pair. This definition is used for varying rate or amount schedules, e.g. a notional amortisation or a step-up coupon schedule."> - [metadata key] + [metadata key] - date date (1..1) <"The date on which the associated step value becomes effective. This day may be subject to adjustment in accordance with a business day convention."> - value number (1..1) <"The rate of amount which becomes effective on the associated step date. A rate of 5% would be represented as 0.05."> + date date (1..1) <"The date on which the associated step value becomes effective. This day may be subject to adjustment in accordance with a business day convention."> + value number (1..1) <"The rate of amount which becomes effective on the associated step date. A rate of 5% would be represented as 0.05."> type NumberRange: <"The number range defined as either a lower and upper number bound, or both."> - lowerBound NumberBound (0..1) <"The lower bound of a number range, e.g. greater than or equal to 5."> - upperBound NumberBound (0..1) <"The upper bound of a number range, e.g. less than 10."> + lowerBound NumberBound (0..1) <"The lower bound of a number range, e.g. greater than or equal to 5."> + upperBound NumberBound (0..1) <"The upper bound of a number range, e.g. less than 10."> - condition AtLeastOneOf: - lowerBound exists or upperBound exists + condition AtLeastOneOf: + lowerBound exists or upperBound exists type NumberBound: <"The number bound is defined as a number and whether the bound is inclusive."> - number number (1..1) <"The number to be used as the bound, e.g. 5."> - inclusive boolean (1..1) <"Whether the number bound is inclusive, e.g. for a lower bound, false would indicate greater than, whereas true would indicate greater than or equal to."> + number number (1..1) <"The number to be used as the bound, e.g. 5."> + inclusive boolean (1..1) <"Whether the number bound is inclusive, e.g. for a lower bound, false would indicate greater than, whereas true would indicate greater than or equal to."> type MoneyRange: <"The money range defined as either a lower and upper money bound, or both."> - lowerBound MoneyBound (0..1) <"The lower bound of a money range, e.g. greater than or equal to 1,000 USD."> - upperBound MoneyBound (0..1) <"The upper bound of a money range, e.g. less than 10,000 USD."> + lowerBound MoneyBound (0..1) <"The lower bound of a money range, e.g. greater than or equal to 1,000 USD."> + upperBound MoneyBound (0..1) <"The upper bound of a money range, e.g. less than 10,000 USD."> - condition AtLeastOneOf: - lowerBound exists or upperBound exists + condition AtLeastOneOf: + lowerBound exists or upperBound exists type MoneyBound: <"The money bound is defined as a money amount and whether the bound is inclusive."> - money Money (1..1) <"The money amount to be used as the bound, e.g. 1,000 USD."> - inclusive boolean (1..1) <"Whether the money amount bound is inclusive, e.g. for a lower bound, false would indicate greater than, whereas true would indicate greater than or equal to."> + money Money (1..1) <"The money amount to be used as the bound, e.g. 1,000 USD."> + inclusive boolean (1..1) <"Whether the money amount bound is inclusive, e.g. for a lower bound, false would indicate greater than, whereas true would indicate greater than or equal to."> type AveragingCalculationMethod: <"Defines the ways in which multiple values can be aggregated into a single value."> - isWeighted boolean (1..1) <"Identifies whether the average values will be weighted or unweighted."> - calculationMethod AveragingCalculationMethodEnum (1..1) <"Identifies which of the Pythagorean means is being used to compute an average value."> - - + isWeighted boolean (1..1) <"Identifies whether the average values will be weighted or unweighted."> + calculationMethod AveragingCalculationMethodEnum (1..1) <"Identifies which of the Pythagorean means is being used to compute an average value."> diff --git a/rosetta-source/src/main/rosetta/base-staticdata-asset-common-enum.rosetta b/rosetta-source/src/main/rosetta/base-staticdata-asset-common-enum.rosetta index f9ac326c4b..fe286a0e69 100755 --- a/rosetta-source/src/main/rosetta/base-staticdata-asset-common-enum.rosetta +++ b/rosetta-source/src/main/rosetta/base-staticdata-asset-common-enum.rosetta @@ -4,28 +4,26 @@ version "${project.version}" import cdm.base.* enum AssetClassEnum: <"The enumerated values to specify the FpML asset class categorization."> - Commodity <"Commodity."> - Credit <"Credit."> - Equity <"Equity."> - ForeignExchange <"ForeignExchange."> - InterestRate <"InterestRate."> - MoneyMarket <"Money Market Assets like CP and CD."> - + Commodity <"Commodity."> + Credit <"Credit."> + Equity <"Equity."> + ForeignExchange <"ForeignExchange."> + InterestRate <"InterestRate."> + MoneyMarket <"Money Market Assets like CP and CD."> // enum MortgageSectorEnum: <"The enumerated values to specify a mortgage typology."> // ABS <"Asset Backed Security."> // CDO <"Collateralized Debt Obligation."> // CMBS <"Commercial Mortgage Backed Security."> // RMBS <"Residential Mortgage Backed Security."> - enum ProductIdTypeEnum: <"Provides the enumerated values to specify the product identifier source."> BBGID <"Published by Bloomberg, the BBGID is a 12-digit alphanumeric randomly generated ID covering active and non-active securities."> BBGTICKER <"Published by Bloomberg as a short code to identify publicly trades shares of a particular stock on a specific exchange."> CUSIP <"Derived from the Committee on Uniform Security Identification Procedures, CUSIPs are 9-character identifiers that capture an issue’s important differentiating characteristics for issuers and their financial instruments in the U.S. and Canada."> FIGI <"Issued under the guidelines of the Object Management Group, the Financial Instrument Global Identifier (FIGI) is a 12 character, alphanumeric, randomly generated ID covering hundreds of millions of active and inactive instruments. The identifier acts as a Uniform Resource Identifier (URI) to link to a set of metadata that uniquely and clearly describes the instrument."> - ISDACRP <"Issued by the International Swaps Dealers Association as a string representing a Commodity Reference Price used for purposes of determining a relevant price for an underlying commodity in an OTC derivatives contract."> + ISDACRP <"Issued by the International Swaps Dealers Association as a string representing a Commodity Reference Price used for purposes of determining a relevant price for an underlying commodity in an OTC derivatives contract."> ISIN <"Issued by The International Securities Identification Number (ISIN) Organization, the ISIN is a 12-character alpha-numerical code used to uniformly identify a security for trading and settlement purposes. Securities with which ISINs can be used include debt securities, such as notes or bonds as well shares, such as common stock or shares of a fund, options, derivatives, and futures. The ISIN structure is defined in ISO 6166."> - Name <"The name of the product."> + Name <"The name of the product."> RIC <"Issued by Refinitiv (formerly Reuters), the Reuters Instrument Codes(RIC) uniquely identifies financial instruments, including where they are traded."> Other <"Used when the source is not otherwise in this enumerated list because it is internal or other reasons. The source can be identified in the scheme which is part of the identifier attribute."> Sicovam <"Issued by the French Société Interprofessionnelle pour la Compensation des Valeurs Mobilières (SICOVAM) to identify French securities listed on French stock exchanges."> @@ -34,465 +32,465 @@ enum ProductIdTypeEnum: <"Provides the enumerated values to specify the product Wertpapier <"Issued by the Institute for the Issuance and Administration of Securities in Germany (Securities Information), the Wertpapierkennnummer (WKN, WPKN, WPK or simply Wert) consists of six digits or capital letters (excluding I and O), and no check digit. It is used to identify German securities."> enum TaxonomySourceEnum: <"Represents the enumerated values to specify taxonomy sources."> - CFI <"Represents the ISO 10962 Classification of Financial Instruments code."> - ISDA <"Represents the ISDA product taxonomy."> - ICAD <"Represents the ISDA Collateral Asset Definition Idenifier code."> - EMIR <"Represents the EMIR Article 9 Asset Definition Identifier code."> - EU_EMIR_EligibleCollateralAssetClass <"Identifies European Union Eligible Collateral Assets classification categories based on EMIR Uncleared Margin Rules."> - UK_EMIR_EligibleCollateralAssetClass <"Identifies United Kingdom Eligible Collateral Assets classification categories based on UK Onshored EMIR Uncleared Margin Rules Eligible Collateral asset classes for both initial margin (IM) and variation margin (VM) posted and collected between specified entities.Please note: UK EMIR regulation will detail which eligible collateral assets classes apply to each type of entity pairing (counterparty) and which apply to posting of IM and VM."> - US_CFTC_PR_EligibleCollateralAssetClass <"Identifies US Eligible Collateral Assets classification categories based on Uncleared Margin Rules published by the CFTC and the US Prudential Regulator. Note: While the same basic categories exist in the CFTC and US Prudential Regulators margin rules, the precise definitions or application of those rules could differ between the two rules."> - Other <"Denotes a user-specific scheme or taxonomy or other external sources not listed here."> + CFI <"Represents the ISO 10962 Classification of Financial Instruments code."> + ISDA <"Represents the ISDA product taxonomy."> + ICAD <"Represents the ISDA Collateral Asset Definition Idenifier code."> + EMIR <"Represents the EMIR Article 9 Asset Definition Identifier code."> + EU_EMIR_EligibleCollateralAssetClass <"Identifies European Union Eligible Collateral Assets classification categories based on EMIR Uncleared Margin Rules."> + UK_EMIR_EligibleCollateralAssetClass <"Identifies United Kingdom Eligible Collateral Assets classification categories based on UK Onshored EMIR Uncleared Margin Rules Eligible Collateral asset classes for both initial margin (IM) and variation margin (VM) posted and collected between specified entities.Please note: UK EMIR regulation will detail which eligible collateral assets classes apply to each type of entity pairing (counterparty) and which apply to posting of IM and VM."> + US_CFTC_PR_EligibleCollateralAssetClass <"Identifies US Eligible Collateral Assets classification categories based on Uncleared Margin Rules published by the CFTC and the US Prudential Regulator. Note: While the same basic categories exist in the CFTC and US Prudential Regulators margin rules, the precise definitions or application of those rules could differ between the two rules."> + Other <"Denotes a user-specific scheme or taxonomy or other external sources not listed here."> enum ISOCurrencyCodeEnum: <"The enumerated values to specify standard currency codes according to the International Standards Organization (ISO). The set of codes in this enumerated list is sourced from ISO Standard 4217 (https://www.currency-iso.org/en/home/tables/table-a1.html), as of 29-Aug-18."> - [docReference ISO ISO_4217_Currency_Scheme schemeLocation "https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml"] + [docReference ISO ISO_4217_Currency_Scheme schemeLocation "https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml"] - AED <"UAE Dirham"> - AFN <"Afghani"> - ALL <"Lek"> - AMD <"Armenian Dram"> - ANG <"Netherlands Antillean Guilder"> - AOA <"Kwanza"> - ARS <"Argentine Peso"> - AUD <"Australian Dollar"> - AWG <"Aruban Florin"> - AZN <"Azerbaijan Manat"> - BAM <"Convertible Mark"> - BBD <"Barbados Dollar"> - BDT <"Taka"> - BGN <"Bulgarian Lev"> - BHD <"Bahraini Dinar"> - BIF <"Burundi Franc"> - BMD <"Bermudian Dollar"> - BND <"Brunei Dollar"> - BOB <"Boliviano"> - BOV <"Mvdol"> - BRL <"Brazilian Real"> - BSD <"Bahamian Dollar"> - BTN <"Ngultrum"> - BWP <"Pula"> - BYN <"Belarusian Ruble"> - BZD <"Belize Dollar"> - CAD <"Canadian Dollar"> - CDF <"Congolese Franc"> - CHE <"WIR Euro"> - CHF <"Swiss Franc"> - CHW <"WIR Franc"> - CLF <"Unidad de Fomento"> - CLP <"Chilean Peso"> - CNY <"Yuan Renminbi"> - COP <"Colombian Peso"> - COU <"Unidad de Valor Real"> - CRC <"Costa Rican Colon"> - CUC <"Peso Convertible"> - CUP <"Cuban Peso"> - CVE <"Cabo Verde Escudo"> - CZK <"Czech Koruna"> - DJF <"Djibouti Franc"> - DKK <"Danish Krone"> - DOP <"Dominican Peso"> - DZD <"Algerian Dinar"> - EGP <"Egyptian Pound"> - ERN <"Nakfa"> - ETB <"Ethiopian Birr"> - EUR <"Euro"> - FJD <"Fiji Dollar"> - FKP <"Falkland Islands Pound"> - GBP <"Pound Sterling"> - GEL <"Lari"> - GHS <"Ghana Cedi"> - GIP <"Gibraltar Pound"> - GMD <"Dalasi"> - GNF <"Guinean Franc"> - GTQ <"Quetzal"> - GYD <"Guyana Dollar"> - HKD <"Hong Kong Dollar"> - HNL <"Lempira"> - HTG <"Gourde"> - HUF <"Forint"> - IDR <"Rupiah"> - ILS <"New Israeli Sheqel"> - INR <"Indian Rupee"> - IQD <"Iraqi Dinar"> - IRR <"Iranian Rial"> - ISK <"Iceland Krona"> - JMD <"Jamaican Dollar"> - JOD <"Jordanian Dinar"> - JPY <"Yen"> - KES <"Kenyan Shilling"> - KGS <"Som"> - KHR <"Riel"> - KMF <"Comorian Franc "> - KPW <"North Korean Won"> - KRW <"Won"> - KWD <"Kuwaiti Dinar"> - KYD <"Cayman Islands Dollar"> - KZT <"Tenge"> - LAK <"Lao Kip"> - LBP <"Lebanese Pound"> - LKR <"Sri Lanka Rupee"> - LRD <"Liberian Dollar"> - LSL <"Loti"> - LYD <"Libyan Dinar"> - MAD <"Moroccan Dirham"> - MDL <"Moldovan Leu"> - MGA <"Malagasy Ariary"> - MKD <"Denar"> - MMK <"Kyat"> - MNT <"Tugrik"> - MOP <"Pataca"> - MRU <"Ouguiya"> - MUR <"Mauritius Rupee"> - MVR <"Rufiyaa"> - MWK <"Malawi Kwacha"> - MXN <"Mexican Peso"> - MXV <"Mexican Unidad de Inversion (UDI)"> - MYR <"Malaysian Ringgit"> - MZN <"Mozambique Metical"> - NAD <"Namibia Dollar"> - NGN <"Naira"> - NIO <"Cordoba Oro"> - NOK <"Norwegian Krone"> - NPR <"Nepalese Rupee"> - NZD <"New Zealand Dollar"> - OMR <"Rial Omani"> - PAB <"Balboa"> - PEN <"Sol"> - PGK <"Kina"> - PHP <"Philippine Peso"> - PKR <"Pakistan Rupee"> - PLN <"Zloty"> - PYG <"Guarani"> - QAR <"Qatari Rial"> - RON <"Romanian Leu"> - RSD <"Serbian Dinar"> - RUB <"Russian Ruble"> - RWF <"Rwanda Franc"> - SAR <"Saudi Riyal"> - SBD <"Solomon Islands Dollar"> - SCR <"Seychelles Rupee"> - SDG <"Sudanese Pound"> - SEK <"Swedish Krona"> - SGD <"Singapore Dollar"> - SHP <"Saint Helena Pound"> - SLE <"Leone"> - SLL <"Leone"> - SOS <"Somali Shilling"> - SRD <"Surinam Dollar"> - SSP <"South Sudanese Pound"> - STN <"Dobra"> - SVC <"El Salvador Colon"> - SYP <"Syrian Pound"> - SZL <"Lilangeni"> - THB <"Baht"> - TJS <"Somoni"> - TMT <"Turkmenistan New Manat"> - TND <"Tunisian Dinar"> - TOP <"Pa’anga"> - TRY <"Turkish Lira"> - TTD <"Trinidad and Tobago Dollar"> - TWD <"New Taiwan Dollar"> - TZS <"Tanzanian Shilling"> - UAH <"Hryvnia"> - UGX <"Uganda Shilling"> - USD <"US Dollar"> - USN <"US Dollar (Next day)"> - UYI <"Uruguay Peso en Unidades Indexadas (UI)"> - UYU <"Peso Uruguayo"> - UYW <"Unidad Previsional"> - UZS <"Uzbekistan Sum"> - VED <"Bolívar Soberano"> - VES <"Bolívar Soberano"> - VND <"Dong"> - VUV <"Vatu"> - WST <"Tala"> - XAF <"CFA Franc BEAC"> - XAG <"Silver"> - XAU <"Gold"> - XBA <"Bond Markets Unit European Composite Unit (EURCO)"> - XBB <"Bond Markets Unit European Monetary Unit (E.M.U.-6)"> - XBC <"Bond Markets Unit European Unit of Account 9 (E.U.A.-9)"> - XBD <"Bond Markets Unit European Unit of Account 17 (E.U.A.-17)"> - XCD <"East Caribbean Dollar"> - XDR <"SDR (Special Drawing Right)"> - XOF <"CFA Franc BCEAO"> - XPD <"Palladium"> - XPF <"CFP Franc"> - XPT <"Platinum"> - XSU <"Sucre"> - XTS <"Codes specifically reserved for testing purposes"> - XUA <"ADB Unit of Account"> - XXX <"The codes assigned for transactions where no currency is involved"> - YER <"Yemeni Rial"> - ZAR <"Rand"> - ZMW <"Zambian Kwacha"> - ZWL <"Zimbabwe Dollar"> + AED <"UAE Dirham"> + AFN <"Afghani"> + ALL <"Lek"> + AMD <"Armenian Dram"> + ANG <"Netherlands Antillean Guilder"> + AOA <"Kwanza"> + ARS <"Argentine Peso"> + AUD <"Australian Dollar"> + AWG <"Aruban Florin"> + AZN <"Azerbaijan Manat"> + BAM <"Convertible Mark"> + BBD <"Barbados Dollar"> + BDT <"Taka"> + BGN <"Bulgarian Lev"> + BHD <"Bahraini Dinar"> + BIF <"Burundi Franc"> + BMD <"Bermudian Dollar"> + BND <"Brunei Dollar"> + BOB <"Boliviano"> + BOV <"Mvdol"> + BRL <"Brazilian Real"> + BSD <"Bahamian Dollar"> + BTN <"Ngultrum"> + BWP <"Pula"> + BYN <"Belarusian Ruble"> + BZD <"Belize Dollar"> + CAD <"Canadian Dollar"> + CDF <"Congolese Franc"> + CHE <"WIR Euro"> + CHF <"Swiss Franc"> + CHW <"WIR Franc"> + CLF <"Unidad de Fomento"> + CLP <"Chilean Peso"> + CNY <"Yuan Renminbi"> + COP <"Colombian Peso"> + COU <"Unidad de Valor Real"> + CRC <"Costa Rican Colon"> + CUC <"Peso Convertible"> + CUP <"Cuban Peso"> + CVE <"Cabo Verde Escudo"> + CZK <"Czech Koruna"> + DJF <"Djibouti Franc"> + DKK <"Danish Krone"> + DOP <"Dominican Peso"> + DZD <"Algerian Dinar"> + EGP <"Egyptian Pound"> + ERN <"Nakfa"> + ETB <"Ethiopian Birr"> + EUR <"Euro"> + FJD <"Fiji Dollar"> + FKP <"Falkland Islands Pound"> + GBP <"Pound Sterling"> + GEL <"Lari"> + GHS <"Ghana Cedi"> + GIP <"Gibraltar Pound"> + GMD <"Dalasi"> + GNF <"Guinean Franc"> + GTQ <"Quetzal"> + GYD <"Guyana Dollar"> + HKD <"Hong Kong Dollar"> + HNL <"Lempira"> + HTG <"Gourde"> + HUF <"Forint"> + IDR <"Rupiah"> + ILS <"New Israeli Sheqel"> + INR <"Indian Rupee"> + IQD <"Iraqi Dinar"> + IRR <"Iranian Rial"> + ISK <"Iceland Krona"> + JMD <"Jamaican Dollar"> + JOD <"Jordanian Dinar"> + JPY <"Yen"> + KES <"Kenyan Shilling"> + KGS <"Som"> + KHR <"Riel"> + KMF <"Comorian Franc "> + KPW <"North Korean Won"> + KRW <"Won"> + KWD <"Kuwaiti Dinar"> + KYD <"Cayman Islands Dollar"> + KZT <"Tenge"> + LAK <"Lao Kip"> + LBP <"Lebanese Pound"> + LKR <"Sri Lanka Rupee"> + LRD <"Liberian Dollar"> + LSL <"Loti"> + LYD <"Libyan Dinar"> + MAD <"Moroccan Dirham"> + MDL <"Moldovan Leu"> + MGA <"Malagasy Ariary"> + MKD <"Denar"> + MMK <"Kyat"> + MNT <"Tugrik"> + MOP <"Pataca"> + MRU <"Ouguiya"> + MUR <"Mauritius Rupee"> + MVR <"Rufiyaa"> + MWK <"Malawi Kwacha"> + MXN <"Mexican Peso"> + MXV <"Mexican Unidad de Inversion (UDI)"> + MYR <"Malaysian Ringgit"> + MZN <"Mozambique Metical"> + NAD <"Namibia Dollar"> + NGN <"Naira"> + NIO <"Cordoba Oro"> + NOK <"Norwegian Krone"> + NPR <"Nepalese Rupee"> + NZD <"New Zealand Dollar"> + OMR <"Rial Omani"> + PAB <"Balboa"> + PEN <"Sol"> + PGK <"Kina"> + PHP <"Philippine Peso"> + PKR <"Pakistan Rupee"> + PLN <"Zloty"> + PYG <"Guarani"> + QAR <"Qatari Rial"> + RON <"Romanian Leu"> + RSD <"Serbian Dinar"> + RUB <"Russian Ruble"> + RWF <"Rwanda Franc"> + SAR <"Saudi Riyal"> + SBD <"Solomon Islands Dollar"> + SCR <"Seychelles Rupee"> + SDG <"Sudanese Pound"> + SEK <"Swedish Krona"> + SGD <"Singapore Dollar"> + SHP <"Saint Helena Pound"> + SLE <"Leone"> + SLL <"Leone"> + SOS <"Somali Shilling"> + SRD <"Surinam Dollar"> + SSP <"South Sudanese Pound"> + STN <"Dobra"> + SVC <"El Salvador Colon"> + SYP <"Syrian Pound"> + SZL <"Lilangeni"> + THB <"Baht"> + TJS <"Somoni"> + TMT <"Turkmenistan New Manat"> + TND <"Tunisian Dinar"> + TOP <"Pa’anga"> + TRY <"Turkish Lira"> + TTD <"Trinidad and Tobago Dollar"> + TWD <"New Taiwan Dollar"> + TZS <"Tanzanian Shilling"> + UAH <"Hryvnia"> + UGX <"Uganda Shilling"> + USD <"US Dollar"> + USN <"US Dollar (Next day)"> + UYI <"Uruguay Peso en Unidades Indexadas (UI)"> + UYU <"Peso Uruguayo"> + UYW <"Unidad Previsional"> + UZS <"Uzbekistan Sum"> + VED <"Bolívar Soberano"> + VES <"Bolívar Soberano"> + VND <"Dong"> + VUV <"Vatu"> + WST <"Tala"> + XAF <"CFA Franc BEAC"> + XAG <"Silver"> + XAU <"Gold"> + XBA <"Bond Markets Unit European Composite Unit (EURCO)"> + XBB <"Bond Markets Unit European Monetary Unit (E.M.U.-6)"> + XBC <"Bond Markets Unit European Unit of Account 9 (E.U.A.-9)"> + XBD <"Bond Markets Unit European Unit of Account 17 (E.U.A.-17)"> + XCD <"East Caribbean Dollar"> + XDR <"SDR (Special Drawing Right)"> + XOF <"CFA Franc BCEAO"> + XPD <"Palladium"> + XPF <"CFP Franc"> + XPT <"Platinum"> + XSU <"Sucre"> + XTS <"Codes specifically reserved for testing purposes"> + XUA <"ADB Unit of Account"> + XXX <"The codes assigned for transactions where no currency is involved"> + YER <"Yemeni Rial"> + ZAR <"Rand"> + ZMW <"Zambian Kwacha"> + ZWL <"Zimbabwe Dollar"> enum CurrencyCodeEnum extends ISOCurrencyCodeEnum: <"Union of the enumerated values defined by the International Standards Organization (ISO) and the FpML nonISOCurrencyScheme which consists of offshore and historical currencies (https://www.fpml.org/coding-scheme/non-iso-currency), as of 28-Oct-2016."> - CNH <"Offshore Chinese Yuan traded in Hong Kong."> - CNT <"Offshore Chinese Yuan traded in Taiwan."> - GGP <"Guernsey Pound."> - IMP <"Isle of Man Pound."> - JEP <"Jersey Pound."> - KID <"Tuvaluan Dollar."> - MCF <"Monegasque Franc."> - SML <"Sammarinese Lira."> - VAL <"Vatican Lira."> - + CNH <"Offshore Chinese Yuan traded in Hong Kong."> + CNT <"Offshore Chinese Yuan traded in Taiwan."> + GGP <"Guernsey Pound."> + IMP <"Isle of Man Pound."> + JEP <"Jersey Pound."> + KID <"Tuvaluan Dollar."> + MCF <"Monegasque Franc."> + SML <"Sammarinese Lira."> + VAL <"Vatican Lira."> + enum IssuerTypeEnum: <"Represents an enumeration list to identify the type of entity issuing the asset."> - SupraNational <"Specifies debt issued by international organisations and multilateral banks, entities constituted by treaties or with multiple sovereign members includes Multilateral development Banks."> - SovereignCentralBank <"Specifies Sovereign, Government Debt Securities including Central Banks."> - QuasiGovernment <"Specifies debt issues by institutions or bodies, typically constituted by statute, with a function mandated by the government and subject to government supervision inclusive of profit- and non-profit making bodies. Includes the US Agencies and GSEs and the EU concept of public sector entities. Excluding any entities which are also Regional Government."> - RegionalGovernment <"Specifies Regional Government Issued Debt including states within countries, local authorities and municipalities."> - Corporate <"Specifies debt issued Securities by corporate bodies including Banks."> - Fund <"Specifies a vehicle (with or without separate legal personality) designed for the purposes of collective investment towards a defined investment goal."> - SpecialPurposeVehicle <"Specifies a vehicle setup for the purpose of acquisition and financing of specific assets on a limited recourse basis. E.g. asset backed securities, including securitisations."> + SupraNational <"Specifies debt issued by international organisations and multilateral banks, entities constituted by treaties or with multiple sovereign members includes Multilateral development Banks."> + SovereignCentralBank <"Specifies Sovereign, Government Debt Securities including Central Banks."> + QuasiGovernment <"Specifies debt issues by institutions or bodies, typically constituted by statute, with a function mandated by the government and subject to government supervision inclusive of profit- and non-profit making bodies. Includes the US Agencies and GSEs and the EU concept of public sector entities. Excluding any entities which are also Regional Government."> + RegionalGovernment <"Specifies Regional Government Issued Debt including states within countries, local authorities and municipalities."> + Corporate <"Specifies debt issued Securities by corporate bodies including Banks."> + Fund <"Specifies a vehicle (with or without separate legal personality) designed for the purposes of collective investment towards a defined investment goal."> + SpecialPurposeVehicle <"Specifies a vehicle setup for the purpose of acquisition and financing of specific assets on a limited recourse basis. E.g. asset backed securities, including securitisations."> enum SupraNationalIssuerTypeEnum: <"Represents an enumeration list to identify the type of supranational entity issuing the asset."> - InternationalOrganisation <"Specifies International Financial Institution."> - MultilateralBank <"Specifies Multilateral Bank or Multilateral Development Bank."> + InternationalOrganisation <"Specifies International Financial Institution."> + MultilateralBank <"Specifies Multilateral Bank or Multilateral Development Bank."> enum CreditRiskEnum: <"Represents an enumeration list to identify tranched or untranched credit risk."> - TranchedCreditRisk <"Indicates tranched credit risk, including securitizations."> - UntranchedCreditRisk <"Indicates tranched credit risk, including repackagings."> + TranchedCreditRisk <"Indicates tranched credit risk, including securitizations."> + UntranchedCreditRisk <"Indicates tranched credit risk, including repackagings."> enum SecurityTypeEnum: <"Represetns an enumeration list to indentify the type of security."> - Debt <"Identifies a security as a fixed income instrument of debt issued and securitized as a tradable asset."> - Equity <"Identifies a security as an Equity value of holding of shares in listed company."> - Fund <"Identifies a security as an Instrument representing holding in an investment fund."> - Warrant <"Identifies a security as a Warrant that give the right, but not the obligation, to buy or sell a security — most commonly an equity — at a certain price before expiration, or to receive the cash equivalent."> - Certificate <"Identifies a security as one that that offers a derivative-based economic return which is not structured as a bond, an equity or a warrant. Note that this security type is not a Certificate of Deposit (aka CD)."> - LetterOfCredit <"Identifies a security as a letter of credit or documentary credit/ bankers commercial credit. A payment mechanism used in international trade to provide economic guarantee of payment by a creditworthy issuer for payment of exported goods."> + Debt <"Identifies a security as a fixed income instrument of debt issued and securitized as a tradable asset."> + Equity <"Identifies a security as an Equity value of holding of shares in listed company."> + Fund <"Identifies a security as an Instrument representing holding in an investment fund."> + Warrant <"Identifies a security as a Warrant that give the right, but not the obligation, to buy or sell a security — most commonly an equity — at a certain price before expiration, or to receive the cash equivalent."> + Certificate <"Identifies a security as one that that offers a derivative-based economic return which is not structured as a bond, an equity or a warrant. Note that this security type is not a Certificate of Deposit (aka CD)."> + LetterOfCredit <"Identifies a security as a letter of credit or documentary credit/ bankers commercial credit. A payment mechanism used in international trade to provide economic guarantee of payment by a creditworthy issuer for payment of exported goods."> ListedDerivative <"Identifies a security as a listed derivative on an exchange."> enum EquityTypeEnum: <"Represents an enumeration list to identify the type of Equity."> - Ordinary <"Identifies an Equity of Common stocks and shares."> - NonConvertiblePreference <"Identifies an Equity of Non-Convertible Preference, Shares which hold priority to receive capital return in event of issuer liquidation."> + Ordinary <"Identifies an Equity of Common stocks and shares."> + NonConvertiblePreference <"Identifies an Equity of Non-Convertible Preference, Shares which hold priority to receive capital return in event of issuer liquidation."> enum FundProductTypeEnum: <"Represents an enumeration list to identify the fund product type."> - MoneyMarketFund <"Denotes a fund that invests only in highly liquid near-term instruments such as cash, cash equivalent securities, and high credit rating debt instruments with a short-term maturity."> - ExchangeTradedFund <"Denotes an investment fund consisting of stocks, bonds, and/or other assets that is passively managed and traded on a stock exchange."> - MutualFund <"Denotes an investment fund consisting of stocks, bonds, and/or other assets that is actively managed and can only be purchased or sold through the investment manager."> - OtherFund <"Denotes a fund that is not an Exchange Traded Fund, Money Market Fund or Mutual Fund."> + MoneyMarketFund <"Denotes a fund that invests only in highly liquid near-term instruments such as cash, cash equivalent securities, and high credit rating debt instruments with a short-term maturity."> + ExchangeTradedFund <"Denotes an investment fund consisting of stocks, bonds, and/or other assets that is passively managed and traded on a stock exchange."> + MutualFund <"Denotes an investment fund consisting of stocks, bonds, and/or other assets that is actively managed and can only be purchased or sold through the investment manager."> + OtherFund <"Denotes a fund that is not an Exchange Traded Fund, Money Market Fund or Mutual Fund."> enum MaturityTypeEnum: <"Represents an enumeration list to identify the Maturity."> - RemainingMaturity <"Denotes a period from now until maturity date."> - OriginalMaturity <"Denotes a period from issuance until maturity date."> - FromIssuance <"Denotes a period from issuance date until now."> + RemainingMaturity <"Denotes a period from now until maturity date."> + OriginalMaturity <"Denotes a period from issuance until maturity date."> + FromIssuance <"Denotes a period from issuance date until now."> enum DebtClassEnum: <"Represents an enumeration list that identifies the type of debt."> - AssetBacked <"Identifies a debt instrument that has periodic income payments and value derived from or backed by a specified pool of underlying assets which could be mortgages or other obligations."> - Convertible <"Identifies a debt instrument that can be converted into common shares."> - RegCap <"Identifies a debt instrument as one issued by financial institutions to count towards regulatory capital, including term and perpetual subordinated debt, contingently convertible and others. Excludes preferred share capital."> - Structured <"Identifies a debt instrument athat has non-standard interest or principal features, with full recourse to the issuer."> - Vanilla <"Identifies a debt instrument that has a periodic coupon, a defined maturity, and is not backed by any specific asset. The seniority and the structure of the income and principal payments can optionally be defined in DebtType.DebtEconomics."> - HolderConvertible <"Identifies a debt instrument that can be converted primarily at the election of the holder into common shares of the Issuer."> - HolderExchangeable <"Identifies a debt instrument that can be converted primarily at the election of the holder into common shares of a party other than the Issuer."> - IssuerConvertible <"Identifies a debt instrument that can be converted at the election of the Issuer into common shares of the Issuer. Also known as reverse convertible."> - IssuerExchangeable <"Identifies a debt instrument that can be converted at the election of the Issuer into common shares of a party other than the Issuer. Also known as reverse exchangeable."> + AssetBacked <"Identifies a debt instrument that has periodic income payments and value derived from or backed by a specified pool of underlying assets which could be mortgages or other obligations."> + Convertible <"Identifies a debt instrument that can be converted into common shares."> + RegCap <"Identifies a debt instrument as one issued by financial institutions to count towards regulatory capital, including term and perpetual subordinated debt, contingently convertible and others. Excludes preferred share capital."> + Structured <"Identifies a debt instrument athat has non-standard interest or principal features, with full recourse to the issuer."> + Vanilla <"Identifies a debt instrument that has a periodic coupon, a defined maturity, and is not backed by any specific asset. The seniority and the structure of the income and principal payments can optionally be defined in DebtType.DebtEconomics."> + HolderConvertible <"Identifies a debt instrument that can be converted primarily at the election of the holder into common shares of the Issuer."> + HolderExchangeable <"Identifies a debt instrument that can be converted primarily at the election of the holder into common shares of a party other than the Issuer."> + IssuerConvertible <"Identifies a debt instrument that can be converted at the election of the Issuer into common shares of the Issuer. Also known as reverse convertible."> + IssuerExchangeable <"Identifies a debt instrument that can be converted at the election of the Issuer into common shares of a party other than the Issuer. Also known as reverse exchangeable."> enum DebtSeniorityEnum: <"Specifies the order of repayment in the event of a sale or bankruptcy of the issuer or a related party (eg guarantor)."> - Secured <"Denotes debt which is secured over assets of the issuer or a related party (eg guarantor)."> - Senior <"Denotes debt which ranks pari passu with all other unsecured creditors of the issuer."> - Subordinated <"Denotes debt owed to an unsecured creditor that in the event of a liquidation can only be paid after the claims of secured and senior creditors have been met."> + Secured <"Denotes debt which is secured over assets of the issuer or a related party (eg guarantor)."> + Senior <"Denotes debt which ranks pari passu with all other unsecured creditors of the issuer."> + Subordinated <"Denotes debt owed to an unsecured creditor that in the event of a liquidation can only be paid after the claims of secured and senior creditors have been met."> enum DebtInterestEnum: <"Represents an enumeration list that specifies the general rule for periodic interest rate payment."> - Fixed <"Denotes payment calculated with reference to a fixed interest rate."> - Floating <"Denotes payment calculated with reference to a floating interest rate."> - InflationLinked <"Denotes payment calculated with reference to one or more specified inflation rates."> - IndexLinked <"Denotes payment calculated with reference to one or more price or other indices (other than inflation rates)."> - InterestOnly <"Denotes a stripped bond representing only the interest component."> - OtherStructured <"Denotes payment calculated with reference to other underlyings (not being floating interest rates, inflation rates or indices) or with a non-linear relationship to floating interest rates, inflation rates or indices."> - InverseFloating <"Denotes payment calculated with reference to the inverse of a floating interest rate."> + Fixed <"Denotes payment calculated with reference to a fixed interest rate."> + Floating <"Denotes payment calculated with reference to a floating interest rate."> + InflationLinked <"Denotes payment calculated with reference to one or more specified inflation rates."> + IndexLinked <"Denotes payment calculated with reference to one or more price or other indices (other than inflation rates)."> + InterestOnly <"Denotes a stripped bond representing only the interest component."> + OtherStructured <"Denotes payment calculated with reference to other underlyings (not being floating interest rates, inflation rates or indices) or with a non-linear relationship to floating interest rates, inflation rates or indices."> + InverseFloating <"Denotes payment calculated with reference to the inverse of a floating interest rate."> ZeroCoupon <"Denotes a zero coupon bond that does not pay intetrest."> enum DebtPrincipalEnum: <"Represents an enumeration list that specifies the general rule for repayment of principal."> - Bullet <"Denotes that the principal is paid all at once on maturity of the debt insrument. Bullet debt instruments cannot be redeemed early by an issuer, which means they are non-callable."> - Callable <"Denotes that the principal on the debt can be repaid early, in whole or in part, at the option of the issuer."> - Puttable <"Denotes that the principal on the debt can be repaid early, in whole or in part, at the option of the holder."> - Amortising <"Denotes that the principal on the debt is paid down regularly, along with its interest expense over the life of the debt instrument. Includes amortising instruments with a bullet balance repayment at maturity."> - InflationLinked <"Denotes that the principal on the debt is calculated with reference to one or more specified inflation rates."> - IndexLinked <"Denotes that the principal on the debt is calculated with reference to one or more price or other indices (other than inflation rates)."> - OtherStructured <"Denotes that the principal on the debt is calculated with reference to other underlyings (not being floating interest rates, inflation rates or indices) or with a non-linear relationship to floating interest rates, inflation rates or indices."> - PrincipalOnly <"Denotes a stripped bond representing only the principal component."> + Bullet <"Denotes that the principal is paid all at once on maturity of the debt insrument. Bullet debt instruments cannot be redeemed early by an issuer, which means they are non-callable."> + Callable <"Denotes that the principal on the debt can be repaid early, in whole or in part, at the option of the issuer."> + Puttable <"Denotes that the principal on the debt can be repaid early, in whole or in part, at the option of the holder."> + Amortising <"Denotes that the principal on the debt is paid down regularly, along with its interest expense over the life of the debt instrument. Includes amortising instruments with a bullet balance repayment at maturity."> + InflationLinked <"Denotes that the principal on the debt is calculated with reference to one or more specified inflation rates."> + IndexLinked <"Denotes that the principal on the debt is calculated with reference to one or more price or other indices (other than inflation rates)."> + OtherStructured <"Denotes that the principal on the debt is calculated with reference to other underlyings (not being floating interest rates, inflation rates or indices) or with a non-linear relationship to floating interest rates, inflation rates or indices."> + PrincipalOnly <"Denotes a stripped bond representing only the principal component."> enum AssetTypeEnum: <"Represents an enumeration list to identify the asset type."> - Security <"Indentifies negotiable financial instrument of monetary value with an issue ownership position."> - Cash <"Indentifies cash in a currency form."> - Commodity <"Indentifies basic good used in commerce that is interchangeable with other goods of the same type."> - Other <"Indentifies other asset types."> + Security <"Indentifies negotiable financial instrument of monetary value with an issue ownership position."> + Cash <"Indentifies cash in a currency form."> + Commodity <"Indentifies basic good used in commerce that is interchangeable with other goods of the same type."> + Other <"Indentifies other asset types."> enum MoneyMarketTypeEnum: - CommercialPaper - CertificateOfDeposit + CommercialPaper + CertificateOfDeposit enum DeliveryNearbyTypeEnum: - CalculationPeriod <"Describes the reference contract as the one that pertains to the month-year of the calculation period. If used, the nearby count is expected to be 0."> - NearbyMonth <"Specifies that the reference delivery date of the underlying Commodity shall be the expiration date of the futures contract in the nth nearby month."> - NearbyWeek <"Specifies that the reference delivery date of the underlying Commodity shall be the expiration date of the futures contract in the nth nearby week."> + CalculationPeriod <"Describes the reference contract as the one that pertains to the month-year of the calculation period. If used, the nearby count is expected to be 0."> + NearbyMonth <"Specifies that the reference delivery date of the underlying Commodity shall be the expiration date of the futures contract in the nth nearby month."> + NearbyWeek <"Specifies that the reference delivery date of the underlying Commodity shall be the expiration date of the futures contract in the nth nearby week."> enum CommodityInformationPublisherEnum: <"Defines a publication in which the price can be found. (e.g Gas Daily, Platts Bloomberg."> - Argus - ArgusMcCloskeys - ArgusAmericasCrudeReport - ArgusBiofuelReport - ArgusCrudeReport - ArgusEuropeanProductsReport - ArgusFMB - ArgusInternationalLPGReport - ArgusLPG - ArgusNatGas - AssocBanksSingapore - BandD - BalticExchange - BankOfCanada - BankOfEngland - BankOfJapan - Bloomberg - BLUENEXT - CAISO - CanadianGasPriceReporter - CanadianGasReporter - ChemicalMarketsAssociation - CMAIAromaticsMarketReport - CMAIWeeklyMethanolMarketReport - CRUSteelLongProductMonitor - CRUSteelSheetProductsMonitor - DowJonesEnergyService - DowJonesEnergyServiceScreen - DowJonesNatGas - EEX - ERCOT - EuroCentralBank - EURONEXMATIF - FederalReserve - FERTECON - FertilizerWeek - FHLBSF - GasDaily - GasDailyPriceGuide - GlobalCoale - GME - HerenReport - ICE - ICE10XDailyNaturalGas - ICE10XDailyPower - ICE10XMonthly - ICEDayAheadIndex - ICEECX - ICIS - InsideFERC - IPE - ISDA - ISONewEngland - JAPANMOFTSRR - LEBA - LondonBullionMarketAssociation - LONDONPLATINUMPALLADIUMMARKET - MegawattDaily - MetalBulletin - MISO - NaturalGasWeek - NGIBidweekSurvey - NYISO - OBM - OMEL - OPIS - PaperTrader - PIX - PJM - PlattsAsiaPacific - PlattsAsiaPacificArabMarketscan - PlattsCleanTankerwire - PlattsCoalTrader - PlattsCrudeOilMarketwire - PlattsDirtyTakerwire - PlattsENGR - PlattsEuropean - PlattsEuropeanMarketscan - PlattsGasDaily - PlattsGasDailyPriceGuide - PlattsInsideFERC - PlattsLPG - PlattsMarketwire - PlattsMegawattDaily - PlattsMetalsAlert - PlattsOilgram - PlattsOilgramBunkerwire - PlattsPolymerscan - PlattsTSIIronOre - TSIScrap - TSISteel - PlattsUS - PlattsUSMarketscan - PPM - PPMEurope - PPW - ReserveBankAustralia - ReserveBankNewZealand - Reuters - ReutersScreen - RIMIntelligenceProducts - SeaPac - Telerate - TelerateScreen - UXWEEKLY - WorldCrudeReport - WorldPulpMonthly + Argus + ArgusMcCloskeys + ArgusAmericasCrudeReport + ArgusBiofuelReport + ArgusCrudeReport + ArgusEuropeanProductsReport + ArgusFMB + ArgusInternationalLPGReport + ArgusLPG + ArgusNatGas + AssocBanksSingapore + BandD + BalticExchange + BankOfCanada + BankOfEngland + BankOfJapan + Bloomberg + BLUENEXT + CAISO + CanadianGasPriceReporter + CanadianGasReporter + ChemicalMarketsAssociation + CMAIAromaticsMarketReport + CMAIWeeklyMethanolMarketReport + CRUSteelLongProductMonitor + CRUSteelSheetProductsMonitor + DowJonesEnergyService + DowJonesEnergyServiceScreen + DowJonesNatGas + EEX + ERCOT + EuroCentralBank + EURONEXMATIF + FederalReserve + FERTECON + FertilizerWeek + FHLBSF + GasDaily + GasDailyPriceGuide + GlobalCoale + GME + HerenReport + ICE + ICE10XDailyNaturalGas + ICE10XDailyPower + ICE10XMonthly + ICEDayAheadIndex + ICEECX + ICIS + InsideFERC + IPE + ISDA + ISONewEngland + JAPANMOFTSRR + LEBA + LondonBullionMarketAssociation + LONDONPLATINUMPALLADIUMMARKET + MegawattDaily + MetalBulletin + MISO + NaturalGasWeek + NGIBidweekSurvey + NYISO + OBM + OMEL + OPIS + PaperTrader + PIX + PJM + PlattsAsiaPacific + PlattsAsiaPacificArabMarketscan + PlattsCleanTankerwire + PlattsCoalTrader + PlattsCrudeOilMarketwire + PlattsDirtyTakerwire + PlattsENGR + PlattsEuropean + PlattsEuropeanMarketscan + PlattsGasDaily + PlattsGasDailyPriceGuide + PlattsInsideFERC + PlattsLPG + PlattsMarketwire + PlattsMegawattDaily + PlattsMetalsAlert + PlattsOilgram + PlattsOilgramBunkerwire + PlattsPolymerscan + PlattsTSIIronOre + TSIScrap + TSISteel + PlattsUS + PlattsUSMarketscan + PPM + PPMEurope + PPW + ReserveBankAustralia + ReserveBankNewZealand + Reuters + ReutersScreen + RIMIntelligenceProducts + SeaPac + Telerate + TelerateScreen + UXWEEKLY + WorldCrudeReport + WorldPulpMonthly enum EU_EMIR_EligibleCollateralEnum: <"Identifies European Union Eligible Collateral Assets classification categories based on EMIR Uncleared Margin Rules. Eligible Collateral asset classes for both initial margin (IM) and variation margin (VM) posted and collected between specified entities. Please note: EMIR regulation will detail which eligible collateral assets classes apply to each type of entity pairing (counterparty) and which apply to posting of IM and VM."> - EU_EMIRTypeA <"Denotes Cash in the form of money credited to an account in any currency, or similar claims for the repayment of money, such as money market deposits."> - EU_EMIRTypeB <" Denotes gold in the form of allocated pure gold bullion of recognised good delivery."> - EU_EMIRTypeC <" Denotes debt securities issued by Member States' central governments or central banks."> - EU_EMIRTypeD <" Denotes debt securities issued by Member States' regional governments or local authorities whose exposures are treated as exposures to the central government of that Member State in accordance with Article 115(2) of Regulation (EU) No 575/2013."> - EU_EMIRTypeE <" Denotes debt securities issued by Member States' public sector entities whose exposures are treated as exposures to the central government, regional government or local authority of that Member State in accordance with Article 116(4) of Regulation (EU) No 575/2013."> - EU_EMIRTypeF <" Denotes debt securities issued by Member States' regional governments or local authorities other than those referred to in (TypeD.)"> - EU_EMIRTypeG <" Denotes debt securities issued by Member States' public sector entities other than those referred to in (TypeE)."> - EU_EMIRTypeH <" Denotes debt securities issued by multilateral development banks listed in Article 117(2) of Regulation (EU) No 575/2013."> - EU_EMIRTypeI <" Denotes debt securities issued by the international organisations listed in Article 118 of Regulation (EU) No 575/2013."> - EU_EMIRTypeJ <" Denotes debt securities issued by third countries' governments or central banks."> - EU_EMIRTypeK <" Denotes debt securities issued by third countries' regional governments or local authorities that meet the requirements of (TypeD) and (TypeE)."> - EU_EMIRTypeL <" Denotes debt securities issued by third countries' regional governments or local authorities other than those referred to in (TypeD) and (TypeE)."> - EU_EMIRTypeM <" Denotes debt securities issued by credit institutions or investment firms including bonds referred to in Article 52(4) of Directive 2009/65/EC of the European Parliament and of the Council."> - EU_EMIRTypeN <" Denotes corporate bonds."> - EU_EMIRTypeO <" Denotes the most senior tranche of a securitisation, as defined in Article 4(61) of Regulation (EU) No 575/2013, that is not a re-securitisation as defined in Article 4(63) of that Regulation."> - EU_EMIRTypeP <" Denotes convertible bonds provided that they can be converted only into equities which are included in an index specified pursuant to point (a) of Article 197 (8) of Regulation (EU) No 575/2013."> - EU_EMIRTypeQ <" Denotes equities included in an index specified pursuant to point (a) of Article 197(8) of Regulation (EU) No 575/2013."> - EU_EMIRTypeR <" Denotes shares or units in undertakings for collective investments in transferable securities (UCITS), provided that the conditions set out in Article 5 of EU Regulation 2016/2251 are met."> + EU_EMIRTypeA <"Denotes Cash in the form of money credited to an account in any currency, or similar claims for the repayment of money, such as money market deposits."> + EU_EMIRTypeB <" Denotes gold in the form of allocated pure gold bullion of recognised good delivery."> + EU_EMIRTypeC <" Denotes debt securities issued by Member States' central governments or central banks."> + EU_EMIRTypeD <" Denotes debt securities issued by Member States' regional governments or local authorities whose exposures are treated as exposures to the central government of that Member State in accordance with Article 115(2) of Regulation (EU) No 575/2013."> + EU_EMIRTypeE <" Denotes debt securities issued by Member States' public sector entities whose exposures are treated as exposures to the central government, regional government or local authority of that Member State in accordance with Article 116(4) of Regulation (EU) No 575/2013."> + EU_EMIRTypeF <" Denotes debt securities issued by Member States' regional governments or local authorities other than those referred to in (TypeD.)"> + EU_EMIRTypeG <" Denotes debt securities issued by Member States' public sector entities other than those referred to in (TypeE)."> + EU_EMIRTypeH <" Denotes debt securities issued by multilateral development banks listed in Article 117(2) of Regulation (EU) No 575/2013."> + EU_EMIRTypeI <" Denotes debt securities issued by the international organisations listed in Article 118 of Regulation (EU) No 575/2013."> + EU_EMIRTypeJ <" Denotes debt securities issued by third countries' governments or central banks."> + EU_EMIRTypeK <" Denotes debt securities issued by third countries' regional governments or local authorities that meet the requirements of (TypeD) and (TypeE)."> + EU_EMIRTypeL <" Denotes debt securities issued by third countries' regional governments or local authorities other than those referred to in (TypeD) and (TypeE)."> + EU_EMIRTypeM <" Denotes debt securities issued by credit institutions or investment firms including bonds referred to in Article 52(4) of Directive 2009/65/EC of the European Parliament and of the Council."> + EU_EMIRTypeN <" Denotes corporate bonds."> + EU_EMIRTypeO <" Denotes the most senior tranche of a securitisation, as defined in Article 4(61) of Regulation (EU) No 575/2013, that is not a re-securitisation as defined in Article 4(63) of that Regulation."> + EU_EMIRTypeP <" Denotes convertible bonds provided that they can be converted only into equities which are included in an index specified pursuant to point (a) of Article 197 (8) of Regulation (EU) No 575/2013."> + EU_EMIRTypeQ <" Denotes equities included in an index specified pursuant to point (a) of Article 197(8) of Regulation (EU) No 575/2013."> + EU_EMIRTypeR <" Denotes shares or units in undertakings for collective investments in transferable securities (UCITS), provided that the conditions set out in Article 5 of EU Regulation 2016/2251 are met."> enum UK_EMIR_EligibleCollateralEnum: <"Identifies United Kingdom Eligible Collateral Assets classification categories based on UK Onshored EMIR Uncleared Margin Rules. Eligible Collateral asset classes for both initial margin (IM) and variation margin (VM) posted and collected between specified entities. Please note: UK EMIR regulation will detail which eligible collateral assets classes apply to each type of entity pairing (counterparty) and which apply to posting of IM and VM."> - UK_EMIRTypeA <"Denotes cash in the form of money credited to an account in any currency, or similar claims for the repayment of money, such as money market deposits."> - UK_EMIRTypeB <"Denotes gold in the form of allocated pure gold bullion of recognised good delivery."> - UK_EMIRTypeC <"Denotes debt securities issued by the central government of the United Kingdom or the Bank of England."> - UK_EMIRTypeD <"Denotes debt securities issued by United Kingdom regional governments or local authorities whose exposures are treated as exposures to the central government of the United Kingdom in accordance with Article 115(2) of Regulation (EU) No 575/2013."> - UK_EMIRTypeE <"Denotes debt securities issued by United Kingdom public sector entities whose exposures are treated as exposures to the central government, regional government or local authority of the United Kingdom in accordance with Article 116(4) of Regulation (EU) No 575/2013."> - UK_EMIRTypeF <"Denotes debt securities issued by United Kingdom regional governments or local authorities other than those referred to in (TypeD)."> - UK_EMIRTypeG <"Denotes debt securities issued by United Kingdom public sector entities other than those referred to in (TypeE)."> - UK_EMIRTypeH <"Denotes debt securities issued by multilateral development banks listed in Article 117(2) of Regulation (EU) No 575/2013."> - UK_EMIRTypeI <"Denotes debt securities issued by the international organisations listed in Article 118 of Regulation (EU) No 575/2013."> - UK_EMIRTypeJ <"Denotes debt securities issued by third countries' governments or central banks."> - UK_EMIRTypeK <"Denotes debt securities issued by third countries' regional governments or local authorities that meet the requirements of (TypeD) and (TypeE)."> - UK_EMIRTypeL <"Denotes debt securities issued by third countries' regional governments or local authorities other than those referred to in (TypeD) and (TypeE)."> - UK_EMIRTypeM <"Denotes debt securities issued by credit institutions or investment firms including bonds admitted to the register of regulated covered bonds maintained under Regulation 7(1)(b) of the Regulated Covered Bonds Regulations 2008 (SI 2008/346)."> - UK_EMIRTypeN <"Denotes corporate bonds."> - UK_EMIRTypeO <"Denotes the most senior tranche of a securitisation, as defined in Article 4(61) of Regulation (EU) No 575/2013, that is not a re-securitisation as defined in Article 4(63) of that Regulation."> - UK_EMIRTypeP <"Denotes convertible bonds provided that they can be converted only into equities which are included in an index specified pursuant to point (a) of Article 197 (8) of Regulation (EU) No 575/2013."> - UK_EMIRTypeQ <"Denotes equities included in an index specified pursuant to point (a) of Article 197(8) of Regulation (EU) No 575/2013."> - UK_EMIRTypeR <"Denotes shares or units in undertakings for UK UCITS, provided that the conditions set out in Article 5 of EU Regulation 2016/2251 (as modified by the Technical Standards (European Market Infrastructure) (EU Exit) (No. 3) Instrument 2019) are met."> + UK_EMIRTypeA <"Denotes cash in the form of money credited to an account in any currency, or similar claims for the repayment of money, such as money market deposits."> + UK_EMIRTypeB <"Denotes gold in the form of allocated pure gold bullion of recognised good delivery."> + UK_EMIRTypeC <"Denotes debt securities issued by the central government of the United Kingdom or the Bank of England."> + UK_EMIRTypeD <"Denotes debt securities issued by United Kingdom regional governments or local authorities whose exposures are treated as exposures to the central government of the United Kingdom in accordance with Article 115(2) of Regulation (EU) No 575/2013."> + UK_EMIRTypeE <"Denotes debt securities issued by United Kingdom public sector entities whose exposures are treated as exposures to the central government, regional government or local authority of the United Kingdom in accordance with Article 116(4) of Regulation (EU) No 575/2013."> + UK_EMIRTypeF <"Denotes debt securities issued by United Kingdom regional governments or local authorities other than those referred to in (TypeD)."> + UK_EMIRTypeG <"Denotes debt securities issued by United Kingdom public sector entities other than those referred to in (TypeE)."> + UK_EMIRTypeH <"Denotes debt securities issued by multilateral development banks listed in Article 117(2) of Regulation (EU) No 575/2013."> + UK_EMIRTypeI <"Denotes debt securities issued by the international organisations listed in Article 118 of Regulation (EU) No 575/2013."> + UK_EMIRTypeJ <"Denotes debt securities issued by third countries' governments or central banks."> + UK_EMIRTypeK <"Denotes debt securities issued by third countries' regional governments or local authorities that meet the requirements of (TypeD) and (TypeE)."> + UK_EMIRTypeL <"Denotes debt securities issued by third countries' regional governments or local authorities other than those referred to in (TypeD) and (TypeE)."> + UK_EMIRTypeM <"Denotes debt securities issued by credit institutions or investment firms including bonds admitted to the register of regulated covered bonds maintained under Regulation 7(1)(b) of the Regulated Covered Bonds Regulations 2008 (SI 2008/346)."> + UK_EMIRTypeN <"Denotes corporate bonds."> + UK_EMIRTypeO <"Denotes the most senior tranche of a securitisation, as defined in Article 4(61) of Regulation (EU) No 575/2013, that is not a re-securitisation as defined in Article 4(63) of that Regulation."> + UK_EMIRTypeP <"Denotes convertible bonds provided that they can be converted only into equities which are included in an index specified pursuant to point (a) of Article 197 (8) of Regulation (EU) No 575/2013."> + UK_EMIRTypeQ <"Denotes equities included in an index specified pursuant to point (a) of Article 197(8) of Regulation (EU) No 575/2013."> + UK_EMIRTypeR <"Denotes shares or units in undertakings for UK UCITS, provided that the conditions set out in Article 5 of EU Regulation 2016/2251 (as modified by the Technical Standards (European Market Infrastructure) (EU Exit) (No. 3) Instrument 2019) are met."> enum US_CFTC_PR_EligibleCollateralEnum: <"Identifies US Eligible Collateral Assets classification categories based on Uncleared Margin Rules published by the CFTC and the US Prudential Regulator. Note: While the same basic categories exist in the CFTC and US Prudential Regulators margin rules, the precise definitions or application of those rules could differ between the two rules."> - US_CFTC_PRType1 <"Denotes immediately available cash funds denominated in USD, a major currency, a currency of settlement for the uncleared swap."> - US_CFTC_PRType2 <"Denotes a security that is issued by, or unconditionally guaranteed as to the timely payment of principal and interest by, the U.S. Department of the Treasury."> - US_CFTC_PRType3 <"Denotes a security that is issued by, or unconditionally guaranteed as to the timely payment of principal and interest by, a U.S. government agency (other than the U.S. Department of Treasury) whose obligations are fully guaranteed by the full faith and credit of the United States government."> - US_CFTC_PRType4 <"Denotes a security that is issued by, or fully guaranteed as to the payment of principal and interest by, the European Central Bank or a sovereign entity that is assigned no higher than a 20 percent risk weight under the capital rules applicable to swap dealers subject to regulation by a prudential regulator."> - US_CFTC_PRType5A <"Denotes a publicly traded debt security issued by, or an asset-backed security fully guaranteed as to the timely payment of principal and interest by, a U.S. Government-sponsored enterprise that is operating with capital support or another form of direct financial assistance received from the U.S. government that enables the repayments of the U.S. Government-sponsored enterprise's eligible securities."> - US_CFTC_PRType5B <"Denotes a publicly traded debt security, but not an asset backed security, that is investment grade and issued by a U.S. Government-sponsored enterprise that is not operating with capital support or another form of direct financial assistance received from the U.S. government."> - US_CFTC_PRType6 <"Denotes a security that is issued by, or fully guaranteed as to the payment of principal and interest by, the Bank for International Settlements, the International Monetary Fund, or a multilateral development bank."> - US_CFTC_PRType7 <"Denotes publicly-traded debt, but not an asset backed security, that is investment grade and is not a debt security issued by a U.S. Government-sponsored enterprise. This category excludes a security issued by a non-bank financial institution supervised by the board of governors of the Federal Reserve System under Title I of the Dodd-Frank Wall Street Reform and Consumer Protection Act. This category also excludes a security issued by any of the following entities, by a company that would be any of the following entities if it were the organized under the laws of the United States or any State, or in either case by an affiliate of such an entity: the party posting the collateral, a bank holding company, a savings and loan holding company, a U.S. intermediate holding company, a foreign bank, a depositary institution, a securities holding company, a broker, a dealer, a futures commission merchant, a swap dealer, or a security-based swap dealer."> - US_CFTC_PRType8A <"Denotes a publicly traded common equity security that is included in the Standard & Poor's Composite 500 Index or related indexes. This category excludes a security issued by a non-bank financial institution supervised by the board of governors of the Federal Reserve System under Title I of the Dodd-Frank Wall Street Reform and Consumer Protection Act. This category also excludes a security issued by any of the following entities, by a company that would be any of the following entities if it were the organized under the laws of the United States or any State, or in either case by an affiliate of such an entity: the party posting the collateral, a bank holding company, a savings and loan holding company, a U.S. intermediate holding company, a foreign bank, a depositary institution, a securities holding company, a broker, a dealer, a futures commission merchant, a swap dealer, or a security-based swap dealer."> - US_CFTC_PRType8B <" Denotes a publicly traded common equity security that is included in the Standard & Poor's Composite 1500 Index or related indexes. This category excludes a security issued by a non-bank financial institution supervised by the board of governors of the Federal Reserve System under Title I of the Dodd-Frank Wall Street Reform and Consumer Protection Act. This category also excludes a security issued by any of the following entities, by a company that would be any of the following entities if it were the organized under the laws of the United States or any State, or in either case by an affiliate of such an entity: the party posting the collateral, a bank holding company, a savings and loan holding company, a U.S. intermediate holding company, a foreign bank, a depositary institution, a securities holding company, a broker, a dealer, a futures commission merchant, a swap dealer, or a security-based swap dealer."> - US_CFTC_PRType8C <"Denotes a publicly traded common equity security that is included in an index that a regulated swap entity's supervisor in a foreign jurisdiction recognizes for purposes of including publicly traded common equity as initial margin under applicable regulatory policy, if held in that foreign jurisdiction. This category excludes a security issued by a non-bank financial institution supervised by the board of governors of the Federal Reserve System under Title I of the Dodd-Frank Wall Street Reform and Consumer Protection Act. This category also excludes a security issued by any of the following entities, by a company that would be any of the following entities if it were the organized under the laws of the United States or any State, or in either case by an affiliate of such an entity: the party posting the collateral, a bank holding company, a savings and loan holding company, a U.S. intermediate holding company, a foreign bank, a depositary institution, a securities holding company, a broker, a dealer, a futures commission merchant, a swap dealer, or a security-based swap dealer."> - US_CFTC_PRType9<"Denotes securities in the form of redeemable securities in a pooled investment fund representing the security-holder's proportional interest in the fund's net assets and that are issued and redeemed only on the basis of the market value of the fund's net assets prepared each business day after the security-holder makes its investment commitment or redemption request to the fund, if the fund's investments are limited to the following: (A) securities that are issued by, or unconditionally guaranteed as to the timely payment of principal and interest by, the U.S. Department of the Treasury, and immediately-available cash funds denominated in U.S. dollars; or (B) securities denominated in a common currency and issued by, or fully guaranteed as to the payment of principal and interest by, the European Central Bank or a sovereign entity that is assigned no higher than a 20 percent risk weight under the capital rules applicable to swap dealers subject to regulation by a prudential regulator, and immediately-available cash funds denominated in the same currency; and (C) assets of the fund may not be transferred through securities lending, securities borrowing, repurchase agreements, reverse repurchase agreements, or other means that involve the fund having rights to acquire the same or similar assets from the transferee."> - US_CTFC_PRType10 <"Denotes Gold."> + US_CFTC_PRType1 <"Denotes immediately available cash funds denominated in USD, a major currency, a currency of settlement for the uncleared swap."> + US_CFTC_PRType2 <"Denotes a security that is issued by, or unconditionally guaranteed as to the timely payment of principal and interest by, the U.S. Department of the Treasury."> + US_CFTC_PRType3 <"Denotes a security that is issued by, or unconditionally guaranteed as to the timely payment of principal and interest by, a U.S. government agency (other than the U.S. Department of Treasury) whose obligations are fully guaranteed by the full faith and credit of the United States government."> + US_CFTC_PRType4 <"Denotes a security that is issued by, or fully guaranteed as to the payment of principal and interest by, the European Central Bank or a sovereign entity that is assigned no higher than a 20 percent risk weight under the capital rules applicable to swap dealers subject to regulation by a prudential regulator."> + US_CFTC_PRType5A <"Denotes a publicly traded debt security issued by, or an asset-backed security fully guaranteed as to the timely payment of principal and interest by, a U.S. Government-sponsored enterprise that is operating with capital support or another form of direct financial assistance received from the U.S. government that enables the repayments of the U.S. Government-sponsored enterprise's eligible securities."> + US_CFTC_PRType5B <"Denotes a publicly traded debt security, but not an asset backed security, that is investment grade and issued by a U.S. Government-sponsored enterprise that is not operating with capital support or another form of direct financial assistance received from the U.S. government."> + US_CFTC_PRType6 <"Denotes a security that is issued by, or fully guaranteed as to the payment of principal and interest by, the Bank for International Settlements, the International Monetary Fund, or a multilateral development bank."> + US_CFTC_PRType7 <"Denotes publicly-traded debt, but not an asset backed security, that is investment grade and is not a debt security issued by a U.S. Government-sponsored enterprise. This category excludes a security issued by a non-bank financial institution supervised by the board of governors of the Federal Reserve System under Title I of the Dodd-Frank Wall Street Reform and Consumer Protection Act. This category also excludes a security issued by any of the following entities, by a company that would be any of the following entities if it were the organized under the laws of the United States or any State, or in either case by an affiliate of such an entity: the party posting the collateral, a bank holding company, a savings and loan holding company, a U.S. intermediate holding company, a foreign bank, a depositary institution, a securities holding company, a broker, a dealer, a futures commission merchant, a swap dealer, or a security-based swap dealer."> + US_CFTC_PRType8A <"Denotes a publicly traded common equity security that is included in the Standard & Poor's Composite 500 Index or related indexes. This category excludes a security issued by a non-bank financial institution supervised by the board of governors of the Federal Reserve System under Title I of the Dodd-Frank Wall Street Reform and Consumer Protection Act. This category also excludes a security issued by any of the following entities, by a company that would be any of the following entities if it were the organized under the laws of the United States or any State, or in either case by an affiliate of such an entity: the party posting the collateral, a bank holding company, a savings and loan holding company, a U.S. intermediate holding company, a foreign bank, a depositary institution, a securities holding company, a broker, a dealer, a futures commission merchant, a swap dealer, or a security-based swap dealer."> + US_CFTC_PRType8B <" Denotes a publicly traded common equity security that is included in the Standard & Poor's Composite 1500 Index or related indexes. This category excludes a security issued by a non-bank financial institution supervised by the board of governors of the Federal Reserve System under Title I of the Dodd-Frank Wall Street Reform and Consumer Protection Act. This category also excludes a security issued by any of the following entities, by a company that would be any of the following entities if it were the organized under the laws of the United States or any State, or in either case by an affiliate of such an entity: the party posting the collateral, a bank holding company, a savings and loan holding company, a U.S. intermediate holding company, a foreign bank, a depositary institution, a securities holding company, a broker, a dealer, a futures commission merchant, a swap dealer, or a security-based swap dealer."> + US_CFTC_PRType8C <"Denotes a publicly traded common equity security that is included in an index that a regulated swap entity's supervisor in a foreign jurisdiction recognizes for purposes of including publicly traded common equity as initial margin under applicable regulatory policy, if held in that foreign jurisdiction. This category excludes a security issued by a non-bank financial institution supervised by the board of governors of the Federal Reserve System under Title I of the Dodd-Frank Wall Street Reform and Consumer Protection Act. This category also excludes a security issued by any of the following entities, by a company that would be any of the following entities if it were the organized under the laws of the United States or any State, or in either case by an affiliate of such an entity: the party posting the collateral, a bank holding company, a savings and loan holding company, a U.S. intermediate holding company, a foreign bank, a depositary institution, a securities holding company, a broker, a dealer, a futures commission merchant, a swap dealer, or a security-based swap dealer."> + US_CFTC_PRType9 <"Denotes securities in the form of redeemable securities in a pooled investment fund representing the security-holder's proportional interest in the fund's net assets and that are issued and redeemed only on the basis of the market value of the fund's net assets prepared each business day after the security-holder makes its investment commitment or redemption request to the fund, if the fund's investments are limited to the following: (A) securities that are issued by, or unconditionally guaranteed as to the timely payment of principal and interest by, the U.S. Department of the Treasury, and immediately-available cash funds denominated in U.S. dollars; or (B) securities denominated in a common currency and issued by, or fully guaranteed as to the payment of principal and interest by, the European Central Bank or a sovereign entity that is assigned no higher than a 20 percent risk weight under the capital rules applicable to swap dealers subject to regulation by a prudential regulator, and immediately-available cash funds denominated in the same currency; and (C) assets of the fund may not be transferred through securities lending, securities borrowing, repurchase agreements, reverse repurchase agreements, or other means that involve the fund having rights to acquire the same or similar assets from the transferee."> + US_CTFC_PRType10 <"Denotes Gold."> diff --git a/rosetta-source/src/main/rosetta/base-staticdata-asset-common-type.rosetta b/rosetta-source/src/main/rosetta/base-staticdata-asset-common-type.rosetta index ebc19e3297..9ce48a0074 100755 --- a/rosetta-source/src/main/rosetta/base-staticdata-asset-common-type.rosetta +++ b/rosetta-source/src/main/rosetta/base-staticdata-asset-common-type.rosetta @@ -15,9 +15,8 @@ type AssetPool: <"Characterizes the asset pool behind an asset backed bond."> initialFactor number (1..1) <"The part of the mortgage that is outstanding on trade inception, i.e. has not been repaid yet as principal. It is expressed as a multiplier factor to the mortgage: 1 means that the whole mortgage amount is outstanding, 0.8 means that 20% has been repaid."> currentFactor number (0..1) <"The part of the mortgage that is currently outstanding. It is expressed similarly to the initial factor, as factor multiplier to the mortgage. This term is formally defined as part of the 'ISDA Standard Terms Supplement for use with credit derivatives transactions on mortgage-backed security with pas-as-you-go or physical settlement'."> - condition EffectiveDate: <"FpML specifies that it is possible to specify a version effective date when a versionId is supplied."> - if version is absent - then effectiveDate is absent + condition EffectiveDate: <"FpML specifies that it is possible to specify a version effective date when a versionId is supplied."> + if version is absent then effectiveDate is absent type Bond extends IdentifiedProduct: <"A class to specify a bond as having a product identifier. As a difference versus the FpML standard, the CDM structure of this class only includes the productIdentifier class, which consists of an identifier, productTaxonomy, and source of the identifier. The reason for this approach is to avoid the potential for conflicting information between the information associated with the contractual product and the reference information maintained by the relevant service provider."> [deprecated] @@ -55,8 +54,8 @@ type Taxonomy: <"Defines the taxonomy of an object by combining a taxonomy sourc source TaxonomySourceEnum (0..1) <"The source of the taxonomy that defines the rules for classifying the object. The taxonomy source is taken from a enumerated list of taxonomy names. Optional as the taxonomy source may not be provided."> value TaxonomyValue (0..1) <"The value according to that taxonomy. Optional as it may not be possible to classify the object in that taxonomy."> - condition DifferentOrdinals: <"Prevents several identical ordinals from being specified in the same commodity classification, since classification values for each classification layer are mutually exclusive (i.e.: only a value can exist for each layer)."> - if value -> classification -> ordinal exists + condition DifferentOrdinals: <"Prevents several identical ordinals from being specified in the same commodity classification, since classification values for each classification layer are mutually exclusive (i.e.: only a value can exist for each layer)."> + if value -> classification -> ordinal exists then DifferentOrdinalsCondition // This is a work around for the following bug in the code generators https://github.com/REGnosys/rosetta-code-generators/issues/246 @@ -65,8 +64,10 @@ func DifferentOrdinalsCondition: taxonomy Taxonomy (1..1) output: result boolean (1..1) - set result: (taxonomy -> value - extract [ classification -> ordinal = classification -> ordinal distinct ] = True) + set result: + (taxonomy -> value + extract [ classification -> ordinal = classification -> ordinal distinct ] + = True) type ProductTaxonomy extends Taxonomy: <"Specifies the product taxonomy, which is composed of a taxonomy value and a taxonomy source."> primaryAssetClass AssetClassEnum (0..1) <"Classifies the most important risk class of the trade."> @@ -79,24 +80,25 @@ type ProductTaxonomy extends Taxonomy: <"Specifies the product taxonomy, which i required choice source, primaryAssetClass, secondaryAssetClass condition TaxonomySource: <"A taxonomy source can only be associated with a taxonomy value or productQualifier"> - if source exists then ( value exists or productQualifier exists ) + if source exists + then (value exists or productQualifier exists) condition TaxonomyValue: <"A taxonomy value and product qualifier are mutually exclusive. Choice is optional as it only applies when source exists."> optional choice value, productQualifier type IndexReferenceInformation: <"A class defining information related to Index"> - indexName string (0..1) <"The name of the index expressed as a free format string with an associated scheme."> - [metadata scheme] - indexId string (0..*) <"An index identifier (e.g. RED pair code)."> - [metadata scheme] + indexName string (0..1) <"The name of the index expressed as a free format string with an associated scheme."> + [metadata scheme] + indexId string (0..*) <"An index identifier (e.g. RED pair code)."> + [metadata scheme] condition IndexAttributes: <"A required choice condition for either a floating rate or inflation rate index."> - indexName exists or indexId exists - + indexName exists or indexId exists + type Index extends ProductBase: <"Identifies an index by referencing a product identifier."> type Commodity extends ProductBase: <"Identifies a specific commodity by referencing a product identifier or by a product definition."> - commodityProductDefinition CommodityProductDefinition (0..1) <"Specifies the commodity underlier in the event that no ISDA Commodity Reference Benchmark exists."> + commodityProductDefinition CommodityProductDefinition (0..1) <"Specifies the commodity underlier in the event that no ISDA Commodity Reference Benchmark exists."> priceQuoteType QuotationSideEnum (1..1) <"Describes the required quote type of the underlying price that will be observed. Example values include 'Bid, 'Ask', 'Settlement' (for a futures contract) and 'WeightedAverage' (for some published prices and indices)."> deliveryDateReference DeliveryDateParameters (0..1) <"Specifies the parameters for identifying the relevant contract date when the commodity reference price is a futures contract."> description string (0..1) <"Provides additional information about the commodity underlier."> @@ -105,8 +107,8 @@ type Commodity extends ProductBase: <"Identifies a specific commodity by referen if productTaxonomy -> value -> classification count > 1 then productTaxonomy -> value -> classification -> ordinal exists - condition ValueSource:<"Requires that value and source are present when product taxonomy is present"> - if productTaxonomy exists + condition ValueSource: <"Requires that value and source are present when product taxonomy is present"> + if productTaxonomy exists then (productTaxonomy -> source exists and productTaxonomy -> value exists) type CommodityProductDefinition: <"Specifies the commodity underlier in the event that no ISDA Commodity Reference Price exists."> @@ -124,7 +126,7 @@ type DeliveryDateParameters: <"Specifies a specific date or the parameters for i deliveryNearby cdm.base.datetime.Offset (0..1) <"Provides a container for the parametric representation that specifies which nearby contract date would be used as a refrence for a price."> deliveryDate cdm.base.datetime.AdjustableDate (0..1) <"Specifies the specific contract date for the contract that should be referenced for a price."> deliveryDateRollConvention cdm.base.datetime.Offset (0..1) <"Specifies, for a Commodity Transaction that references a listed future, the day on which the specified future will roll to the next nearby month prior to the expiration of the referenced future. If the future will not roll at all - i.e. the price will be taken from the expiring contract, 0 days should be specified here. If the future will roll to the next nearby on the last trading day - i.e. the price will be taken from the next nearby on the last trading day, then 1 business day should be specified and so on."> - deliveryDateExpirationConvention cdm.base.datetime.Offset (0..1)<"Specifies, for a Commodity Transaction that references a listed future, the day on which the specified future will expire ahead of the actual expiration of the referenced future. For example: Z21 Contract expires on 19Nov21, with an adjust of 2D the 'expire' will be 16Nov21. DeliveryDateRollConvention takes precedence. Example: Pricing on the Z21 Contract with NearbyContractDay and a deliveryDateRoll of 10D, Sampling of the F22 Contract will occur on 8Nov21 through the last Date of the Z21 Contract. With an ExpConvention of 5D, the last sampling date on the F22 contract will be 12Nov21."> + deliveryDateExpirationConvention cdm.base.datetime.Offset (0..1) <"Specifies, for a Commodity Transaction that references a listed future, the day on which the specified future will expire ahead of the actual expiration of the referenced future. For example: Z21 Contract expires on 19Nov21, with an adjust of 2D the 'expire' will be 16Nov21. DeliveryDateRollConvention takes precedence. Example: Pricing on the Z21 Contract with NearbyContractDay and a deliveryDateRoll of 10D, Sampling of the F22 Contract will occur on 8Nov21 through the last Date of the Z21 Contract. With an ExpConvention of 5D, the last sampling date on the F22 contract will be 12Nov21."> condition DeliveryDateParametersChoice: <"Requires definition of a delivery date or delieryNearby parameters."> optional choice deliveryNearby, deliveryDate @@ -157,14 +159,14 @@ type CollateralTaxonomy: <"Specifies the collateral taxonomy, which is composed if taxonomySource = TaxonomySourceEnum -> EU_EMIR_EligibleCollateralAssetClass then taxonomyValue -> eu_EMIR_EligibleCollateral exists - condition UkEligibleCollateralTaxonomy: <"If the Taxonomy Source is specified as UK EMIR Eligible Collateral then the enumeration must be UK EMIR Eligible Collateral."> - if taxonomySource = TaxonomySourceEnum-> UK_EMIR_EligibleCollateralAssetClass - then taxonomyValue -> uk_EMIR_EligibleCollateral exists - - condition UsEligibleCollateralTaxonomy: <"If the Taxonomy Source is specified as US CFTCPR Eligbile Collateral then the enumeration must be US CFTCPR Eligible Collateral."> - if taxonomySource = TaxonomySourceEnum-> US_CFTC_PR_EligibleCollateralAssetClass - then taxonomyValue -> us_CFTC_PR_EligibleCollateral exists - + condition UkEligibleCollateralTaxonomy: <"If the Taxonomy Source is specified as UK EMIR Eligible Collateral then the enumeration must be UK EMIR Eligible Collateral."> + if taxonomySource = TaxonomySourceEnum -> UK_EMIR_EligibleCollateralAssetClass + then taxonomyValue -> uk_EMIR_EligibleCollateral exists + + condition UsEligibleCollateralTaxonomy: <"If the Taxonomy Source is specified as US CFTCPR Eligbile Collateral then the enumeration must be US CFTCPR Eligible Collateral."> + if taxonomySource = TaxonomySourceEnum -> US_CFTC_PR_EligibleCollateralAssetClass + then taxonomyValue -> us_CFTC_PR_EligibleCollateral exists + condition TaxonomyValue: <"If the Taxonomy Value is specified as a string then the taxonomy Source cannot be either EU Eligible Collateral or Uk Eligible Collateral or US Eligible Collateral."> if taxonomyValue -> nonEnumeratedTaxonomyValue exists then taxonomySource <> TaxonomySourceEnum -> EU_EMIR_EligibleCollateralAssetClass @@ -178,7 +180,8 @@ type CollateralTaxonomyValue: <"Specifies the collateral taxonomy value, either nonEnumeratedTaxonomyValue string (0..*) <"Identifies the taxonomy value when not specified as an enumeration."> [metadata scheme] - condition: one-of + condition: + one-of type Security extends ProductBase: <"Identifies a security by referencing a product identifier and by specifying the sector."> [docReference ICMA GMRA namingConvention "Purchased Security" @@ -201,9 +204,9 @@ type Security extends ProductBase: <"Identifies a security by referencing a prod if securityType <> SecurityTypeEnum -> Fund then fundType is absent - condition BondEconomicTerms: - if economicTerms exists then - securityType = SecurityTypeEnum -> Debt + condition BondEconomicTerms: + if economicTerms exists + then securityType = SecurityTypeEnum -> Debt type DebtType: <"Specifies the type of debt instrument."> debtClass DebtClassEnum (0..1) <"Specifies the characteristics of a debt instrument."> @@ -269,7 +272,10 @@ type AssetType: <"Represents a class to allow specification of the asset product condition SecuritySubType: if assetType <> AssetTypeEnum -> Security - then securityType is absent and debtType is absent and equityType is absent and fundType is absent + then securityType is absent + and debtType is absent + and equityType is absent + and fundType is absent condition BondSubType: if securityType <> SecurityTypeEnum -> Debt @@ -294,7 +300,5 @@ type PriceSource: <"Specifies a publication that provides the commodity price, i priceSourceHeading string (0..1) <"Specifies the heading or field name for the price on a given page or screen, where applicable."> priceSourceTime time (0..1) <"Specifies the time at which the price should be observed."> - condition PriceSourceHeading: <"Requires that if a priceSourceHeading is specified, then a priceSourceLocation must be speficified"> - if priceSourceHeading exists - then priceSourceLocation exists - + condition PriceSourceHeading: <"Requires that if a priceSourceHeading is specified, then a priceSourceLocation must be speficified"> + if priceSourceHeading exists then priceSourceLocation exists diff --git a/rosetta-source/src/main/rosetta/base-staticdata-asset-credit-enum.rosetta b/rosetta-source/src/main/rosetta/base-staticdata-asset-credit-enum.rosetta index b02b8b8d38..2dbbd08413 100755 --- a/rosetta-source/src/main/rosetta/base-staticdata-asset-credit-enum.rosetta +++ b/rosetta-source/src/main/rosetta/base-staticdata-asset-credit-enum.rosetta @@ -2,9 +2,9 @@ namespace cdm.base.staticdata.asset.credit version "${project.version}" enum ObligationCategoryEnum: <"The enumerated values used in both the obligations and deliverable obligations of the credit default swap to represent a class or type of securities which apply."> - Payment <"ISDA term 'Payment'."> - BorrowedMoney <"ISDA term 'Borrowed Money'."> - ReferenceObligationsOnly <"ISDA term 'Reference Obligations Only'."> - Bond <"ISDA term 'Bond'."> - Loan <"ISDA term 'Loan'."> - BondOrLoan <"ISDA term 'Bond or Loan'."> + Payment <"ISDA term 'Payment'."> + BorrowedMoney <"ISDA term 'Borrowed Money'."> + ReferenceObligationsOnly <"ISDA term 'Reference Obligations Only'."> + Bond <"ISDA term 'Bond'."> + Loan <"ISDA term 'Loan'."> + BondOrLoan <"ISDA term 'Bond or Loan'."> diff --git a/rosetta-source/src/main/rosetta/base-staticdata-asset-credit-type.rosetta b/rosetta-source/src/main/rosetta/base-staticdata-asset-credit-type.rosetta index ebc0df212e..8b9a8c310b 100755 --- a/rosetta-source/src/main/rosetta/base-staticdata-asset-credit-type.rosetta +++ b/rosetta-source/src/main/rosetta/base-staticdata-asset-credit-type.rosetta @@ -3,38 +3,37 @@ version "${project.version}" type NotDomesticCurrency: <"A class to specify the ISDA 2003 Term: Not Domestic Currency."> - applicable boolean (1..1) <"Indicates whether the Not Domestic Currency provision is applicable."> - currency string (0..1) <"An explicit specification of the domestic currency. The list of valid currencies is not presently positioned as an enumeration as part of the CDM because that scope is limited to the values specified by ISDA and FpML. As a result, implementers have to make reference to the relevant standard, such as the ISO 4217 standard for currency codes."> - [metadata scheme] + applicable boolean (1..1) <"Indicates whether the Not Domestic Currency provision is applicable."> + currency string (0..1) <"An explicit specification of the domestic currency. The list of valid currencies is not presently positioned as an enumeration as part of the CDM because that scope is limited to the values specified by ISDA and FpML. As a result, implementers have to make reference to the relevant standard, such as the ISO 4217 standard for currency codes."> + [metadata scheme] type Obligations: <"A class to specify the underlying obligations of the reference entity on which protection is purchased or sold through the Credit Default Swap."> - category ObligationCategoryEnum (1..1) <"Used in both obligations and deliverable obligations to represent a class or type of securities which apply. ISDA 2003 Term: Obligation Category/Deliverable Obligation Category."> - notSubordinated boolean (0..1) <"An obligation and deliverable obligation characteristic. An obligation that ranks at least equal with the most senior Reference Obligation in priority of payment or, if no Reference Obligation is specified in the related Confirmation, the obligations of the Reference Entity that are senior. ISDA 2003 Term: Not Subordinated."> - specifiedCurrency SpecifiedCurrency (0..1) <"An obligation and deliverable obligation characteristic. The currency or currencies in which an obligation or deliverable obligation must be payable. ISDA 2003 Term: Specified Currency."> - notSovereignLender boolean (0..1) <"An obligation and deliverable obligation characteristic. Any obligation that is not primarily (majority) owed to a Sovereign or Supranational Organisation. ISDA 2003 Term: Not Sovereign Lender."> - notDomesticCurrency NotDomesticCurrency (0..1) <"An obligation and deliverable obligation characteristic. Any obligation that is payable in any currency other than the domestic currency. Domestic currency is either the currency so specified or, if no currency is specified, the currency of (a) the reference entity, if the reference entity is a sovereign, or (b) the jurisdiction in which the relevant reference entity is organised, if the reference entity is not a sovereign. ISDA 2003 Term: Not Domestic Currency."> - notDomesticLaw boolean (0..1) <"An obligation and deliverable obligation characteristic. If the reference entity is a Sovereign, this means any obligation that is not subject to the laws of the reference entity. If the reference entity is not a sovereign, this means any obligation that is not subject to the laws of the jurisdiction of the reference entity. ISDA 2003 Term: Not Domestic Law."> - listed boolean (0..1) <"An obligation and deliverable obligation characteristic. Indicates whether or not the obligation is quoted, listed or ordinarily purchased and sold on an exchange. ISDA 2003 Term: Listed."> - notDomesticIssuance boolean (0..1) <"An obligation and deliverable obligation characteristic. Any obligation other than an obligation that was intended to be offered for sale primarily in the domestic market of the relevant Reference Entity. This specifies that the obligation must be an internationally recognised bond. ISDA 2003 Term: Not Domestic Issuance."> - fullFaithAndCreditObLiability boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published additional provisions for U.S. Municipal as Reference Entity. ISDA 2003 Term: Full Faith and Credit Obligation Liability."> - generalFundObligationLiability boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published additional provisions for U.S. Municipal as Reference Entity. ISDA 2003 Term: General Fund Obligation Liability."> - revenueObligationLiability boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published additional provisions for U.S. Municipal as Reference Entity. ISDA 2003 Term: Revenue Obligation Liability."> - notContingent boolean (0..1) <"OTE: Only allowed as an obligation characteristic under ISDA Credit 1999. In essence Not Contingent means the repayment of principal cannot be dependent on a formula/index, i.e. to prevent the risk of being delivered an instrument that may never pay any element of principal, and to ensure that the obligation is interest bearing (on a regular schedule). ISDA 2003 Term: Not Contingent."> - excluded string (0..1) <"A free format string to specify any excluded obligations or deliverable obligations, as the case may be, of the reference entity or excluded types of obligations or deliverable obligations. ISDA 2003 Term: Excluded Obligations/Excluded Deliverable Obligations."> - othReferenceEntityObligations string (0..1) <"This element is used to specify any other obligations of a reference entity in both obligations and deliverable obligations. The obligations can be specified free-form. ISDA 2003 Term: Other Obligations of a Reference Entity."> - designatedPriority string (0..1) <"Applies to Loan CDS, to indicate what lien level is appropriate for a deliverable obligation. Applies to European Loan CDS, to indicate the Ranking of the obligation. Example: a 2nd lien Loan CDS would imply that the deliverable obligations are 1st or 2nd lien loans."> - [metadata scheme] - cashSettlementOnly boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published Standard Terms Supplement for use with CDS Transactions on Leveraged Loans. ISDA 2003 Term: Cash Settlement Only."> - deliveryOfCommitments boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published Standard Terms Supplement for use with CDS Transactions on Leveraged Loans. ISDA 2003 Term: Delivery of Commitments."> - continuity boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published Standard Terms Supplement for use with CDS Transactions on Leveraged Loans. ISDA 2003 Term: Continuity."> - - condition ObligationsChoice: <"Choice rule to represent an FpML choice construct."> - optional choice fullFaithAndCreditObLiability, generalFundObligationLiability, revenueObligationLiability + category ObligationCategoryEnum (1..1) <"Used in both obligations and deliverable obligations to represent a class or type of securities which apply. ISDA 2003 Term: Obligation Category/Deliverable Obligation Category."> + notSubordinated boolean (0..1) <"An obligation and deliverable obligation characteristic. An obligation that ranks at least equal with the most senior Reference Obligation in priority of payment or, if no Reference Obligation is specified in the related Confirmation, the obligations of the Reference Entity that are senior. ISDA 2003 Term: Not Subordinated."> + specifiedCurrency SpecifiedCurrency (0..1) <"An obligation and deliverable obligation characteristic. The currency or currencies in which an obligation or deliverable obligation must be payable. ISDA 2003 Term: Specified Currency."> + notSovereignLender boolean (0..1) <"An obligation and deliverable obligation characteristic. Any obligation that is not primarily (majority) owed to a Sovereign or Supranational Organisation. ISDA 2003 Term: Not Sovereign Lender."> + notDomesticCurrency NotDomesticCurrency (0..1) <"An obligation and deliverable obligation characteristic. Any obligation that is payable in any currency other than the domestic currency. Domestic currency is either the currency so specified or, if no currency is specified, the currency of (a) the reference entity, if the reference entity is a sovereign, or (b) the jurisdiction in which the relevant reference entity is organised, if the reference entity is not a sovereign. ISDA 2003 Term: Not Domestic Currency."> + notDomesticLaw boolean (0..1) <"An obligation and deliverable obligation characteristic. If the reference entity is a Sovereign, this means any obligation that is not subject to the laws of the reference entity. If the reference entity is not a sovereign, this means any obligation that is not subject to the laws of the jurisdiction of the reference entity. ISDA 2003 Term: Not Domestic Law."> + listed boolean (0..1) <"An obligation and deliverable obligation characteristic. Indicates whether or not the obligation is quoted, listed or ordinarily purchased and sold on an exchange. ISDA 2003 Term: Listed."> + notDomesticIssuance boolean (0..1) <"An obligation and deliverable obligation characteristic. Any obligation other than an obligation that was intended to be offered for sale primarily in the domestic market of the relevant Reference Entity. This specifies that the obligation must be an internationally recognised bond. ISDA 2003 Term: Not Domestic Issuance."> + fullFaithAndCreditObLiability boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published additional provisions for U.S. Municipal as Reference Entity. ISDA 2003 Term: Full Faith and Credit Obligation Liability."> + generalFundObligationLiability boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published additional provisions for U.S. Municipal as Reference Entity. ISDA 2003 Term: General Fund Obligation Liability."> + revenueObligationLiability boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published additional provisions for U.S. Municipal as Reference Entity. ISDA 2003 Term: Revenue Obligation Liability."> + notContingent boolean (0..1) <"OTE: Only allowed as an obligation characteristic under ISDA Credit 1999. In essence Not Contingent means the repayment of principal cannot be dependent on a formula/index, i.e. to prevent the risk of being delivered an instrument that may never pay any element of principal, and to ensure that the obligation is interest bearing (on a regular schedule). ISDA 2003 Term: Not Contingent."> + excluded string (0..1) <"A free format string to specify any excluded obligations or deliverable obligations, as the case may be, of the reference entity or excluded types of obligations or deliverable obligations. ISDA 2003 Term: Excluded Obligations/Excluded Deliverable Obligations."> + othReferenceEntityObligations string (0..1) <"This element is used to specify any other obligations of a reference entity in both obligations and deliverable obligations. The obligations can be specified free-form. ISDA 2003 Term: Other Obligations of a Reference Entity."> + designatedPriority string (0..1) <"Applies to Loan CDS, to indicate what lien level is appropriate for a deliverable obligation. Applies to European Loan CDS, to indicate the Ranking of the obligation. Example: a 2nd lien Loan CDS would imply that the deliverable obligations are 1st or 2nd lien loans."> + [metadata scheme] + cashSettlementOnly boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published Standard Terms Supplement for use with CDS Transactions on Leveraged Loans. ISDA 2003 Term: Cash Settlement Only."> + deliveryOfCommitments boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published Standard Terms Supplement for use with CDS Transactions on Leveraged Loans. ISDA 2003 Term: Delivery of Commitments."> + continuity boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published Standard Terms Supplement for use with CDS Transactions on Leveraged Loans. ISDA 2003 Term: Continuity."> + + condition ObligationsChoice: <"Choice rule to represent an FpML choice construct."> + optional choice fullFaithAndCreditObLiability, generalFundObligationLiability, revenueObligationLiability type SpecifiedCurrency: - applicable boolean (1..1) <"Indicates whether the specified currency provision is applicable."> - currency string (0..1) <"The currency in which the specified currency is denominated. The list of valid currencies is not presently positioned as an enumeration as part of the CDM because that scope is limited to the values specified by ISDA and FpML. As a result, implementers have to make reference to the relevant standard, such as the ISO 4217 standard for currency codes."> - [metadata scheme] - + applicable boolean (1..1) <"Indicates whether the specified currency provision is applicable."> + currency string (0..1) <"The currency in which the specified currency is denominated. The list of valid currencies is not presently positioned as an enumeration as part of the CDM because that scope is limited to the values specified by ISDA and FpML. As a result, implementers have to make reference to the relevant standard, such as the ISO 4217 standard for currency codes."> + [metadata scheme] diff --git a/rosetta-source/src/main/rosetta/base-staticdata-asset-rates-enum.rosetta b/rosetta-source/src/main/rosetta/base-staticdata-asset-rates-enum.rosetta index 0b6aaa0129..c602acf17a 100755 --- a/rosetta-source/src/main/rosetta/base-staticdata-asset-rates-enum.rosetta +++ b/rosetta-source/src/main/rosetta/base-staticdata-asset-rates-enum.rosetta @@ -6,724 +6,724 @@ import cdm.base.* enum FloatingRateIndexEnum: <"The enumerated values to specify the list of floating rate index."> [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/floating-rate-index"] - AED_EBOR_Reuters displayName "AED-EBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AED_EIBOR displayName "AED-EIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - AUD_AONIA displayName "AUD-AONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_AONIA_OIS_Compound_1 displayName "AUD-AONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - AUD_AONIA_OIS_COMPOUND displayName "AUD-AONIA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_AONIA_OIS_COMPOUND_SwapMarker displayName "AUD-AONIA-OIS-COMPOUND-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_BBR_AUBBSW displayName "AUD-BBR-AUBBSW" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_BBR_BBSW displayName "AUD-BBR-BBSW" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_BBR_BBSW_Bloomberg displayName "AUD-BBR-BBSW-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_BBR_BBSY__BID_ displayName "AUD-BBR-BBSY (BID)" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_BBR_ISDC displayName "AUD-BBR-ISDC" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_BBSW displayName "AUD-BBSW" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - AUD_BBSW_Quarterly_Swap_Rate_ICAP displayName "AUD-BBSW Quarterly Swap Rate ICAP" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - AUD_BBSW_Semi_Annual_Swap_Rate_ICAP displayName "AUD-BBSW Semi Annual Swap Rate ICAP" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - AUD_BBSY_Bid displayName "AUD-BBSY Bid" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - AUD_LIBOR_BBA displayName "AUD-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_LIBOR_BBA_Bloomberg displayName "AUD-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_LIBOR_Reference_Banks displayName "AUD-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_Quarterly_Swap_Rate_ICAP displayName "AUD-Quarterly Swap Rate-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_Quarterly_Swap_Rate_ICAP_Reference_Banks displayName "AUD-Quarterly Swap Rate-ICAP-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "AUD-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_Semi_Annual_Swap_Rate_BGCANTOR_Reference_Banks displayName "AUD-Semi-Annual Swap Rate-BGCANTOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_Semi_annual_Swap_Rate_ICAP displayName "AUD-Semi-annual Swap Rate-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_Semi_Annual_Swap_Rate_ICAP_Reference_Banks displayName "AUD-Semi-Annual Swap Rate-ICAP-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - AUD_Swap_Rate_Reuters displayName "AUD-Swap Rate-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - BRL_CDI displayName "BRL-CDI" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CAD_BA_CDOR displayName "CAD-BA-CDOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_BA_CDOR_Bloomberg displayName "CAD-BA-CDOR-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_BA_ISDD displayName "CAD-BA-ISDD" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_BA_Reference_Banks displayName "CAD-BA-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_BA_Reuters displayName "CAD-BA-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_BA_Telerate displayName "CAD-BA-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_CDOR displayName "CAD-CDOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CAD_CORRA displayName "CAD-CORRA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_CORRA_OIS_Compound_1 displayName "CAD-CORRA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CAD_CORRA_OIS_COMPOUND displayName "CAD-CORRA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_ISDA_Swap_Rate displayName "CAD-ISDA-Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_LIBOR_BBA displayName "CAD-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_LIBOR_BBA_Bloomberg displayName "CAD-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_LIBOR_BBA_SwapMarker displayName "CAD-LIBOR-BBA-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_LIBOR_Reference_Banks displayName "CAD-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_REPO_CORRA displayName "CAD-REPO-CORRA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_TBILL_ISDD displayName "CAD-TBILL-ISDD" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_TBILL_Reference_Banks displayName "CAD-TBILL-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_TBILL_Reuters displayName "CAD-TBILL-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CAD_TBILL_Telerate displayName "CAD-TBILL-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_3M_LIBOR_SWAP_CME_vs_LCH_ICAP displayName "CHF-3M LIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_3M_LIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg displayName "CHF-3M LIBOR SWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_3M_LIBOR_SWAP_EUREX_vs_LCH_ICAP displayName "CHF-3M LIBOR SWAP-EUREX vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_3M_LIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg displayName "CHF-3M LIBOR SWAP-EUREX vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_6M_LIBOR_SWAP_CME_vs_LCH_ICAP displayName "CHF-6M LIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_6M_LIBORSWAP_CME_vs_LCH_ICAP_Bloomberg displayName "CHF-6M LIBORSWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_6M_LIBOR_SWAP_EUREX_vs_LCH_ICAP displayName "CHF-6M LIBOR SWAP-EUREX vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_6M_LIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg displayName "CHF-6M LIBOR SWAP-EUREX vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_Annual_Swap_Rate displayName "CHF-Annual Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_Annual_Swap_Rate_11_00_ICAP displayName "CHF-Annual Swap Rate-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_Annual_Swap_Rate_Reference_Banks displayName "CHF-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_Basis_Swap_3m_vs_6m_LIBOR_11_00_ICAP displayName "CHF-Basis Swap-3m vs 6m-LIBOR-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_ISDAFIX_Swap_Rate displayName "CHF-ISDAFIX-Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_LIBOR displayName "CHF-LIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CHF_LIBOR_BBA displayName "CHF-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_LIBOR_BBA_Bloomberg displayName "CHF-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_LIBOR_ISDA displayName "CHF-LIBOR-ISDA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_LIBOR_Reference_Banks displayName "CHF-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_OIS_11_00_ICAP displayName "CHF-OIS-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_SARON displayName "CHF-SARON" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_SARON_Average_12M displayName "CHF-SARON Average 12M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CHF_SARON_Average_1M displayName "CHF-SARON Average 1M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CHF_SARON_Average_1W displayName "CHF-SARON Average 1W" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CHF_SARON_Average_2M displayName "CHF-SARON Average 2M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CHF_SARON_Average_3M displayName "CHF-SARON Average 3M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CHF_SARON_Average_6M displayName "CHF-SARON Average 6M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CHF_SARON_Average_9M displayName "CHF-SARON Average 9M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CHF_SARON_Compounded_Index displayName "CHF-SARON Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CHF_SARON_OIS_Compound_1 displayName "CHF-SARON-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CHF_SARON_OIS_COMPOUND displayName "CHF-SARON-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_TOIS_OIS_COMPOUND displayName "CHF-TOIS-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CHF_USD_Basis_Swaps_11_00_ICAP displayName "CHF USD-Basis Swaps-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CL_CLICP_Bloomberg displayName "CL-CLICP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CLP_ICP displayName "CLP-ICP" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CLP_TNA displayName "CLP-TNA" <"Refers to the Indice Camara Promedio ('ICP') rate for Chilean Pesos which, for a Reset Date, is determined and published by the Asociacion de Bancos e Instituciones Financieras de Chile A.G. ('ABIF') in accordance with the 'Reglamento Indice de Camara Promedio' of the ABIF as published in the Diario Oficial de la Republica de Chile (the 'ICP Rules') and which is reported on the ABIF website by not later than 10:00 a.m., Santiago time, on that Reset Date."> - CNH_HIBOR displayName "CNH-HIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CNH_HIBOR_Reference_Banks displayName "CNH-HIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CNH_HIBOR_TMA displayName "CNH-HIBOR-TMA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CNY_7_Repo_Compounding_Date displayName "CNY 7-Repo Compounding Date" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CNY_CNREPOFIX_CFXS_Reuters displayName "CNY-CNREPOFIX=CFXS-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CNY_Deposit_Rate displayName "CNY-Deposit Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CNY_Fixing_Repo_Rate displayName "CNY-Fixing Repo Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CNY_LPR displayName "CNY-LPR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CNY_PBOCB_Reuters displayName "CNY-PBOCB-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CNY_Quarterly_7_day_Repo_Non_Deliverable_Swap_Rate_TRADITION displayName "CNY-Quarterly 7 day Repo Non Deliverable Swap Rate-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CNY_Quarterly_7_day_Repo_Non_Deliverable_Swap_Rate_TRADITION_Reference_Banks displayName "CNY-Quarterly 7 day Repo Non Deliverable Swap Rate-TRADITION-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CNY_Quarterly_7D_Repo_NDS_Rate_Tradition displayName "CNY-Quarterly 7D Repo NDS Rate Tradition" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CNY_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "CNY-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CNY_Semi_Annual_Swap_Rate_Reference_Banks displayName "CNY-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CNY_SHIBOR displayName "CNY-SHIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CNY_SHIBOR_OIS_Compound displayName "CNY-SHIBOR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CNY_Shibor_OIS_Compounding displayName "CNY-Shibor-OIS-Compounding" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CNY_SHIBOR_Reuters displayName "CNY-SHIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction.."> - COP_IBR_OIS_Compound_1 displayName "COP-IBR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - COP_IBR_OIS_COMPOUND displayName "COP-IBR-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CZK_Annual_Swap_Rate_11_00_BGCANTOR displayName "CZK-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CZK_Annual_Swap_Rate_Reference_Banks displayName "CZK-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CZK_CZEONIA displayName "CZK-CZEONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CZK_CZEONIA_OIS_Compound displayName "CZK-CZEONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CZK_PRIBOR displayName "CZK-PRIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - CZK_PRIBOR_PRBO displayName "CZK-PRIBOR-PRBO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - CZK_PRIBOR_Reference_Banks displayName "CZK-PRIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - DKK_CIBOR displayName "DKK-CIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - DKK_CIBOR2 displayName "DKK-CIBOR2" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - DKK_CIBOR2_Bloomberg displayName "DKK-CIBOR2-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - DKK_CIBOR2_DKNA13 displayName "DKK-CIBOR2-DKNA13" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - DKK_CIBOR_DKNA13 displayName "DKK-CIBOR-DKNA13" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - DKK_CIBOR_DKNA13_Bloomberg displayName "DKK-CIBOR-DKNA13-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - DKK_CIBOR_Reference_Banks displayName "DKK-CIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - DKK_CITA displayName "DKK-CITA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - DKK_CITA_DKNA14_COMPOUND displayName "DKK-CITA-DKNA14-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - DKK_DESTR displayName "DKK-DESTR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - DKK_DESTR_Compounded_Index displayName "DKK-DESTR Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - DKK_DESTR_OIS_Compound displayName "DKK-DESTR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - DKK_DKKOIS_OIS_COMPOUND displayName "DKK-DKKOIS-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - DKK_Tom_Next_OIS_Compound displayName "DKK-Tom Next-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - EUR_3M_EURIBOR_SWAP_CME_vs_LCH_ICAP displayName "EUR-3M EURIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_3M_EURIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg displayName "EUR-3M EURIBOR SWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_3M_EURIBOR_SWAP_EUREX_vs_LCH_ICAP displayName "EUR-3M EURIBOR SWAP-EUREX vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_3M_EURIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg displayName "EUR-3M EURIBOR SWAP-EUREX vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_6M_EURIBOR_SWAP_CME_vs_LCH_ICAP displayName "EUR-6M EURIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_6M_EURIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg displayName "EUR-6M EURIBOR SWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_6M_EURIBOR_SWAP_EUREX_vs_LCH_ICAP displayName "EUR-6M EURIBOR SWAP-EUREX vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_6M_EURIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg displayName "EUR-6M EURIBOR SWAP-EUREX vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_10_00 displayName "EUR-Annual Swap Rate-10:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_10_00_BGCANTOR displayName "EUR-Annual Swap Rate-10:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_10_00_Bloomberg displayName "EUR-Annual Swap Rate-10:00-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_10_00_ICAP displayName "EUR-Annual Swap Rate-10:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_10_00_SwapMarker displayName "EUR-Annual Swap Rate-10:00-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_10_00_TRADITION displayName "EUR-Annual Swap Rate-10:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_11_00 displayName "EUR-Annual Swap Rate-11:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_11_00_Bloomberg displayName "EUR-Annual Swap Rate-11:00-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_11_00_ICAP displayName "EUR-Annual Swap Rate-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_11_00_SwapMarker displayName "EUR-Annual Swap Rate-11:00-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_3_Month displayName "EUR-Annual Swap Rate-3 Month" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_3_Month_SwapMarker displayName "EUR-Annual Swap Rate-3 Month-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_4_15_TRADITION displayName "EUR-Annual Swap Rate-4:15-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Annual_Swap_Rate_Reference_Banks displayName "EUR-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_Basis_Swap_EONIA_vs_3m_EUR_IBOR_Swap_Rates_A_360_10_00_ICAP displayName "EUR Basis Swap-EONIA vs 3m EUR+IBOR Swap Rates-A/360-10:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_CNO_TEC10 displayName "EUR-CNO TEC10" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - EUR_EONIA displayName "EUR-EONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - EUR_EONIA_AVERAGE_1 displayName "EUR-EONIA-AVERAGE" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EONIA_Average displayName "EUR-EONIA-Average" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - EUR_EONIA_OIS_10_00_BGCANTOR displayName "EUR-EONIA-OIS-10:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EONIA_OIS_10_00_ICAP displayName "EUR-EONIA-OIS-10:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EONIA_OIS_10_00_TRADITION displayName "EUR-EONIA-OIS-10:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EONIA_OIS_11_00_ICAP displayName "EUR-EONIA-OIS-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EONIA_OIS_4_15_TRADITION displayName "EUR-EONIA-OIS-4:15-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EONIA_OIS_Compound_1 displayName "EUR-EONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - EUR_EONIA_OIS_COMPOUND displayName "EUR-EONIA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EONIA_OIS_COMPOUND_Bloomberg displayName "EUR-EONIA-OIS-COMPOUND-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EONIA_Swap_Index displayName "EUR-EONIA-Swap-Index" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EURIBOR displayName "EUR-EURIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - EUR_EURIBOR_Act_365 displayName "EUR-EURIBOR-Act/365" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EURIBOR_Act_365_Bloomberg displayName "EUR-EURIBOR-Act/365-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EURIBOR_Annual_Bond_Swap_vs_1m_11_00_ICAP displayName "EUR EURIBOR-Annual Bond Swap vs 1m-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EURIBOR_Basis_Swap_1m_vs_3m_Euribor_11_00_ICAP displayName "EUR EURIBOR-Basis Swap-1m vs 3m-Euribor-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EURIBOR_Basis_Swap_3m_vs_6m_11_00_ICAP displayName "EUR EURIBOR-Basis Swap-3m vs 6m-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EURIBOR_ICE_Swap_Rate_11_00 displayName "EUR-EURIBOR ICE Swap Rate-11:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - EUR_EURIBOR_ICE_Swap_Rate_12_00 displayName "EUR-EURIBOR ICE Swap Rate-12:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - EUR_EURIBOR_Reference_Banks displayName "EUR-EURIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EURIBOR_Reuters displayName "EUR-EURIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EURIBOR_Telerate displayName "EUR-EURIBOR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EURONIA_OIS_Compound_1 displayName "EUR-EURONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - EUR_EURONIA_OIS_COMPOUND displayName "EUR-EURONIA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR displayName "EUR-EuroSTR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_Average_12M displayName "EUR-EuroSTR Average 12M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_Average_1M displayName "EUR-EuroSTR Average 1M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_Average_1W displayName "EUR-EuroSTR Average 1W" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_Average_3M displayName "EUR-EuroSTR Average 3M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_Average_6M displayName "EUR-EuroSTR Average 6M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_COMPOUND displayName "EUR-EuroSTR-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_Compounded_Index displayName "EUR-EuroSTR Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_ICE_Compounded_Index displayName "EUR-EuroSTR ICE Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_ICE_Compounded_Index_0_Floor displayName "EUR-EuroSTR ICE Compounded Index 0 Floor" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_ICE_Compounded_Index_0_Floor_2D_Lag displayName "EUR-EuroSTR ICE Compounded Index 0 Floor 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_ICE_Compounded_Index_0_Floor_5D_Lag displayName "EUR-EuroSTR ICE Compounded Index 0 Floor 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_ICE_Compounded_Index_2D_Lag displayName "EUR-EuroSTR ICE Compounded Index 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_ICE_Compounded_Index_5D_Lag displayName "EUR-EuroSTR ICE Compounded Index 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_OIS_Compound displayName "EUR-EuroSTR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - EUR_EuroSTR_Term displayName "EUR-EuroSTR Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - EUR_ISDA_EURIBOR_Swap_Rate_11_00 displayName "EUR-ISDA-EURIBOR Swap Rate-11:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_ISDA_EURIBOR_Swap_Rate_12_00 displayName "EUR-ISDA-EURIBOR Swap Rate-12:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_ISDA_LIBOR_Swap_Rate_10_00 displayName "EUR-ISDA-LIBOR Swap Rate-10:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_ISDA_LIBOR_Swap_Rate_11_00 displayName "EUR-ISDA-LIBOR Swap Rate-11:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_LIBOR displayName "EUR-LIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - EUR_LIBOR_BBA displayName "EUR-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_LIBOR_BBA_Bloomberg displayName "EUR-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_LIBOR_Reference_Banks displayName "EUR-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_TAM_CDC displayName "EUR-TAM-CDC" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_TEC10_CNO displayName "EUR-TEC10-CNO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_TEC10_CNO_SwapMarker displayName "EUR-TEC10-CNO-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_TEC10_Reference_Banks displayName "EUR-TEC10-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_TEC5_CNO displayName "EUR-TEC5-CNO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_TEC5_CNO_SwapMarker displayName "EUR-TEC5-CNO-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_TEC5_Reference_Banks displayName "EUR-TEC5-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_TMM_CDC_COMPOUND displayName "EUR-TMM-CDC-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - EUR_USD_Basis_Swaps_11_00_ICAP displayName "EUR USD-Basis Swaps-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_6M_LIBOR_SWAP_CME_vs_LCH_ICAP displayName "GBP-6M LIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_6M_LIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg displayName "GBP-6M LIBOR SWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_6M_LIBOR_SWAP_EUREX_vs_LCH_ICAP displayName "GBP-6M LIBOR SWAP-EUREX vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_6M_LIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg displayName "GBP-6M LIBOR SWAP-EUREX vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_ISDA_Swap_Rate displayName "GBP-ISDA-Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_LIBOR displayName "GBP-LIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - GBP_LIBOR_BBA displayName "GBP-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_LIBOR_BBA_Bloomberg displayName "GBP-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_LIBOR_ICE_Swap_Rate displayName "GBP-LIBOR ICE Swap Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - GBP_LIBOR_ISDA displayName "GBP-LIBOR-ISDA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_LIBOR_Reference_Banks displayName "GBP-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_RONIA displayName "GBP-RONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - GBP_RONIA_OIS_Compound displayName "GBP-RONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - GBP_Semi_Annual_Swap_Rate displayName "GBP-Semi-Annual Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_Semi_Annual_Swap_Rate_11_00_ICAP displayName "GBP-Semi-Annual Swap Rate-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_Semi_Annual_Swap_Rate_11_00_TRADITION displayName "GBP-Semi Annual Swap Rate-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_Semi_Annual_Swap_Rate_4_15_TRADITION displayName "GBP-Semi Annual Swap Rate-4:15-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_Semi_Annual_Swap_Rate_Reference_Banks displayName "GBP-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_Semi_Annual_Swap_Rate_SwapMarker26 displayName "GBP-Semi-Annual Swap Rate-SwapMarker26" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA displayName "GBP-SONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_COMPOUND displayName "GBP-SONIA-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_Compounded_Index displayName "GBP-SONIA Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_ICE_Compounded_Index displayName "GBP-SONIA ICE Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_ICE_Compounded_Index_0_Floor displayName "GBP-SONIA ICE Compounded Index 0 Floor" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_ICE_Compounded_Index_0_Floor_2D_Lag displayName "GBP-SONIA ICE Compounded Index 0 Floor 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_ICE_Compounded_Index_0_Floor_5D_Lag displayName "GBP-SONIA ICE Compounded Index 0 Floor 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_ICE_Compounded_Index_2D_Lag displayName "GBP-SONIA ICE Compounded Index 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_ICE_Compounded_Index_5D_Lag displayName "GBP-SONIA ICE Compounded Index 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_ICE_Swap_Rate displayName "GBP-SONIA ICE Swap Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - GBP_SONIA_ICE_Term displayName "GBP-SONIA ICE Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_OIS_11_00_ICAP displayName "GBP-SONIA-OIS-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_OIS_11_00_TRADITION displayName "GBP-SONIA-OIS-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_OIS_4_15_TRADITION displayName "GBP-SONIA-OIS-4:15-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_OIS_Compound displayName "GBP-SONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - GBP_SONIA_Refinitiv_Term displayName "GBP-SONIA Refinitiv Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_SONIA_Swap_Rate displayName "GBP-SONIA Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_UK_Base_Rate displayName "GBP-UK Base Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - GBP_USD_Basis_Swaps_11_00_ICAP displayName "GBP USD-Basis Swaps-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_WMBA_RONIA_COMPOUND displayName "GBP-WMBA-RONIA-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GBP_WMBA_SONIA_COMPOUND displayName "GBP-WMBA-SONIA-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GRD_ATHIBOR_ATHIBOR displayName "GRD-ATHIBOR-ATHIBOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GRD_ATHIBOR_Reference_Banks displayName "GRD-ATHIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GRD_ATHIBOR_Telerate displayName "GRD-ATHIBOR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GRD_ATHIMID_Reference_Banks displayName "GRD-ATHIMID-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - GRD_ATHIMID_Reuters displayName "GRD-ATHIMID-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_HIBOR displayName "HKD-HIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - HKD_HIBOR_HIBOR_ displayName "HKD-HIBOR-HIBOR=" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_HIBOR_HIBOR_Bloomberg displayName "HKD-HIBOR-HIBOR-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_HIBOR_HKAB displayName "HKD-HIBOR-HKAB" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_HIBOR_HKAB_Bloomberg displayName "HKD-HIBOR-HKAB-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_HIBOR_ISDC displayName "HKD-HIBOR-ISDC" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_HIBOR_Reference_Banks displayName "HKD-HIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_HONIA displayName "HKD-HONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_HONIA_OIS_Compound displayName "HKD-HONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - HKD_HONIX_OIS_COMPOUND displayName "HKD-HONIX-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_ISDA_Swap_Rate_11_00 displayName "HKD-ISDA-Swap Rate-11:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_ISDA_Swap_Rate_4_00 displayName "HKD-ISDA-Swap Rate-4:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_Quarterly_Annual_Swap_Rate_11_00_BGCANTOR displayName "HKD-Quarterly-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_Quarterly_Annual_Swap_Rate_11_00_TRADITION displayName "HKD-Quarterly-Annual Swap Rate-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_Quarterly_Annual_Swap_Rate_4_00_BGCANTOR displayName "HKD-Quarterly-Annual Swap Rate-4:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_Quarterly_Annual_Swap_Rate_Reference_Banks displayName "HKD-Quarterly-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_Quarterly_Quarterly_Swap_Rate_11_00_ICAP displayName "HKD-Quarterly-Quarterly Swap Rate-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_Quarterly_Quarterly_Swap_Rate_4_00_ICAP displayName "HKD-Quarterly-Quarterly Swap Rate-4:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HKD_Quarterly_Quarterly_Swap_Rate_Reference_Banks displayName "HKD-Quarterly-Quarterly Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HUF_BUBOR displayName "HUF-BUBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - HUF_BUBOR_Reference_Banks displayName "HUF-BUBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HUF_BUBOR_Reuters displayName "HUF-BUBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - HUF_HUFONIA displayName "HUF-HUFONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - HUF_HUFONIA_OIS_Compound displayName "HUF-HUFONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - IDR_IDMA_Bloomberg displayName "IDR-IDMA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - IDR_IDRFIX displayName "IDR-IDRFIX" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - IDR_JIBOR displayName "IDR-JIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - IDR_JIBOR_Reuters displayName "IDR-JIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - IDR_SBI_Reuters displayName "IDR-SBI-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - IDR_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "IDR-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - IDR_Semi_Annual_Swap_Rate_Non_deliverable_16_00_Tullett_Prebon displayName "IDR-Semi Annual Swap Rate-Non-deliverable-16:00-Tullett Prebon" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - IDR_Semi_Annual_Swap_Rate_Reference_Banks displayName "IDR-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - IDR_SOR_Reference_Banks displayName "IDR-SOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - IDR_SOR_Reuters displayName "IDR-SOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - IDR_SOR_Telerate displayName "IDR-SOR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ILS_SHIR displayName "ILS-SHIR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - ILS_SHIR_OIS_Compound displayName "ILS-SHIR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - ILS_TELBOR displayName "ILS-TELBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - ILS_TELBOR01_Reuters displayName "ILS-TELBOR01-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ILS_TELBOR_Reference_Banks displayName "ILS-TELBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_BMK displayName "INR-BMK" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_CMT displayName "INR-CMT" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_FBIL_MIBOR_OIS_COMPOUND displayName "INR-FBIL-MIBOR-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_INBMK_REUTERS displayName "INR-INBMK-REUTERS" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_MIBOR_OIS displayName "INR-MIBOR OIS" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - INR_MIBOR_OIS_Compound_1 displayName "INR-MIBOR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - INR_MIBOR_OIS_COMPOUND displayName "INR-MIBOR-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_MIFOR displayName "INR-MIFOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_MIOIS displayName "INR-MIOIS" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_MITOR_OIS_COMPOUND displayName "INR-MITOR-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_Modified_MIFOR displayName "INR-Modified MIFOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_Reference_Banks displayName "INR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_Semi_Annual_Swap_Rate_11_30_BGCANTOR displayName "INR-Semi-Annual Swap Rate-11:30-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_Semi_Annual_Swap_Rate_Non_deliverable_16_00_Tullett_Prebon displayName "INR-Semi Annual Swap Rate-Non-deliverable-16:00-Tullett Prebon" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - INR_Semi_Annual_Swap_Rate_Reference_Banks displayName "INR-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ISK_REIBOR displayName "ISK-REIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - ISK_REIBOR_Reference_Banks displayName "ISK-REIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ISK_REIBOR_Reuters displayName "ISK-REIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_Annual_Swap_Rate_11_00_TRADITION displayName "JPY-Annual Swap Rate-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_Annual_Swap_Rate_3_00_TRADITION displayName "JPY-Annual Swap Rate-3:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_BBSF_Bloomberg_10_00 displayName "JPY-BBSF-Bloomberg-10:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_BBSF_Bloomberg_15_00 displayName "JPY-BBSF-Bloomberg-15:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_Euroyen_TIBOR displayName "JPY-Euroyen TIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - JPY_ISDA_Swap_Rate_10_00 displayName "JPY-ISDA-Swap Rate-10:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_ISDA_Swap_Rate_15_00 displayName "JPY-ISDA-Swap Rate-15:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_LIBOR displayName "JPY-LIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - JPY_LIBOR_BBA displayName "JPY-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_LIBOR_BBA_Bloomberg displayName "JPY-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_LIBOR_FRASETT displayName "JPY-LIBOR-FRASETT" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_LIBOR_ISDA displayName "JPY-LIBOR-ISDA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_LIBOR_Reference_Banks displayName "JPY-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_LIBOR_TSR_10_00 displayName "JPY-LIBOR TSR-10:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - JPY_LIBOR_TSR_15_00 displayName "JPY-LIBOR TSR-15:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - JPY_LTPR_MHBK displayName "JPY-LTPR MHBK" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - JPY_LTPR_MHCB displayName "JPY-LTPR-MHCB" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_LTPR_TBC displayName "JPY-LTPR-TBC" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_MUTANCALL_TONAR displayName "JPY-MUTANCALL-TONAR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_OIS_11_00_ICAP displayName "JPY-OIS-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_OIS_11_00_TRADITION displayName "JPY-OIS-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_OIS_3_00_TRADITION displayName "JPY-OIS-3:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_Quoting_Banks_LIBOR displayName "JPY-Quoting Banks-LIBOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_STPR_Quoting_Banks displayName "JPY-STPR-Quoting Banks" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TIBOR displayName "JPY-TIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - JPY_TIBOR_17096 displayName "JPY-TIBOR-17096" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TIBOR_17097 displayName "JPY-TIBOR-17097" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TIBOR_DTIBOR01 displayName "JPY-TIBOR-DTIBOR01" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TIBOR_TIBM displayName "JPY-TIBOR-TIBM" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TIBOR_TIBM__10_Banks_ displayName "JPY-TIBOR-TIBM (10 Banks)" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TIBOR_TIBM__5_Banks_ displayName "JPY-TIBOR-TIBM (5 Banks)" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TIBOR_TIBM__All_Banks_ displayName "JPY-TIBOR-TIBM (All Banks)" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TIBOR_TIBM__All_Banks__Bloomberg displayName "JPY-TIBOR-TIBM (All Banks)-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TIBOR_TIBM_Reference_Banks displayName "JPY-TIBOR-TIBM-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TIBOR_ZTIBOR displayName "JPY-TIBOR-ZTIBOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA displayName "JPY-TONA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_Average_180D displayName "JPY-TONA Average 180D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_Average_30D displayName "JPY-TONA Average 30D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_Average_90D displayName "JPY-TONA Average 90D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_Compounded_Index displayName "JPY-TONA Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_ICE_Compounded_Index displayName "JPY-TONA ICE Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_ICE_Compounded_Index_0_Floor displayName "JPY-TONA ICE Compounded Index 0 Floor" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_ICE_Compounded_Index_0_Floor_2D_Lag displayName "JPY-TONA ICE Compounded Index 0 Floor 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_ICE_Compounded_Index_0_Floor_5D_Lag displayName "JPY-TONA ICE Compounded Index 0 Floor 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_ICE_Compounded_Index_2D_Lag displayName "JPY-TONA ICE Compounded Index 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_ICE_Compounded_Index_5D_Lag displayName "JPY-TONA ICE Compounded Index 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_OIS_Compound_1 displayName "JPY-TONA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - JPY_TONA_OIS_COMPOUND displayName "JPY-TONA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_TSR_10_00 displayName "JPY-TONA TSR-10:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TONA_TSR_15_00 displayName "JPY-TONA TSR-15:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TORF_QUICK displayName "JPY-TORF QUICK" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TSR_Reference_Banks displayName "JPY-TSR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TSR_Reuters_10_00 displayName "JPY-TSR-Reuters-10:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TSR_Reuters_15_00 displayName "JPY-TSR-Reuters-15:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TSR_Telerate_10_00 displayName "JPY-TSR-Telerate-10:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_TSR_Telerate_15_00 displayName "JPY-TSR-Telerate-15:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - JPY_USD_Basis_Swaps_11_00_ICAP displayName "JPY USD-Basis Swaps-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - KRW_Bond_3222 displayName "KRW-Bond-3222" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - KRW_CD_3220 displayName "KRW-CD-3220" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - KRW_CD_91D displayName "KRW-CD 91D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - KRW_CD_KSDA_Bloomberg displayName "KRW-CD-KSDA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - KRW_KOFR displayName "KRW-KOFR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - KRW_KOFR_OIS_Compound displayName "KRW-KOFR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - KRW_Quarterly_Annual_Swap_Rate_3_30_ICAP displayName "KRW-Quarterly Annual Swap Rate-3:30-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - MXN_TIIE displayName "MXN-TIIE" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - MXN_TIIE_Banxico displayName "MXN-TIIE-Banxico" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - MXN_TIIE_Banxico_Bloomberg displayName "MXN-TIIE-Banxico-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - MXN_TIIE_Banxico_Reference_Banks displayName "MXN-TIIE-Banxico-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - MXN_TIIE_ON displayName "MXN-TIIE ON" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - MXN_TIIE_ON_OIS_Compound displayName "MXN-TIIE ON-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - MXN_TIIE_Reference_Banks displayName "MXN-TIIE-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - MYR_KLIBOR displayName "MYR-KLIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - MYR_KLIBOR_BNM displayName "MYR-KLIBOR-BNM" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - MYR_KLIBOR_Reference_Banks displayName "MYR-KLIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - MYR_MYOR displayName "MYR-MYOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - MYR_MYOR_OIS_Compound displayName "MYR-MYOR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - MYR_Quarterly_Swap_Rate_11_00_TRADITION displayName "MYR-Quarterly Swap Rate-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - MYR_Quarterly_Swap_Rate_TRADITION_Reference_Banks displayName "MYR-Quarterly Swap Rate-TRADITION-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NOK_NIBOR displayName "NOK-NIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - NOK_NIBOR_NIBR displayName "NOK-NIBOR-NIBR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NOK_NIBOR_NIBR_Bloomberg displayName "NOK-NIBOR-NIBR-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NOK_NIBOR_NIBR_Reference_Banks displayName "NOK-NIBOR-NIBR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NOK_NIBOR_OIBOR displayName "NOK-NIBOR-OIBOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NOK_NIBOR_Reference_Banks displayName "NOK-NIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NOK_NOWA displayName "NOK-NOWA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NOK_NOWA_OIS_Compound displayName "NOK-NOWA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - NZD_BBR_BID displayName "NZD-BBR-BID" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NZD_BBR_FRA displayName "NZD-BBR-FRA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NZD_BBR_ISDC displayName "NZD-BBR-ISDC" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NZD_BBR_Reference_Banks displayName "NZD-BBR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NZD_BBR_Telerate displayName "NZD-BBR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NZD_BKBM_Bid displayName "NZD-BKBM Bid" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - NZD_BKBM_FRA displayName "NZD-BKBM FRA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - NZD_BKBM_FRA_Swap_Rate_ICAP displayName "NZD-BKBM FRA Swap Rate ICAP" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - NZD_NZIONA displayName "NZD-NZIONA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NZD_NZIONA_OIS_Compound_1 displayName "NZD-NZIONA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - NZD_NZIONA_OIS_COMPOUND displayName "NZD-NZIONA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NZD_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "NZD-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NZD_Semi_Annual_Swap_Rate_BGCANTOR_Reference_Banks displayName "NZD-Semi-Annual Swap Rate-BGCANTOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NZD_Swap_Rate_ICAP displayName "NZD-Swap Rate-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - NZD_Swap_Rate_ICAP_Reference_Banks displayName "NZD-Swap Rate-ICAP-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - PHP_PHIREF displayName "PHP-PHIREF" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - PHP_PHIREF_BAP displayName "PHP-PHIREF-BAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - PHP_PHIREF_Bloomberg displayName "PHP-PHIREF-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - PHP_PHIREF_Reference_Banks displayName "PHP-PHIREF-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - PHP_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "PHP-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - PHP_Semi_Annual_Swap_Rate_Reference_Banks displayName "PHP-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - PLN_POLONIA displayName "PLN-POLONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - PLN_POLONIA_OIS_Compound_1 displayName "PLN-POLONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - PLN_POLONIA_OIS_COMPOUND displayName "PLN-POLONIA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - PLN_WIBID displayName "PLN-WIBID" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - PLN_WIBOR displayName "PLN-WIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - PLN_WIBOR_Reference_Banks displayName "PLN-WIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - PLN_WIBOR_WIBO displayName "PLN-WIBOR-WIBO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - PLN_WIRON displayName "PLN-WIRON" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - PLN_WIRON_OIS_Compound displayName "PLN-WIRON-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - PLZ_WIBOR_Reference_Banks displayName "PLZ-WIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - PLZ_WIBOR_WIBO displayName "PLZ-WIBOR-WIBO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - REPOFUNDS_RATE_FRANCE_OIS_COMPOUND displayName "REPOFUNDS RATE-FRANCE-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - REPOFUNDS_RATE_GERMANY_OIS_COMPOUND displayName "REPOFUNDS RATE-GERMANY-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - REPOFUNDS_RATE_ITALY_OIS_COMPOUND displayName "REPOFUNDS RATE-ITALY-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - RON_Annual_Swap_Rate_11_00_BGCANTOR displayName "RON-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - RON_Annual_Swap_Rate_Reference_Banks displayName "RON-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - RON_RBOR_Reuters displayName "RON-RBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - RON_ROBID displayName "RON-ROBID" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - RON_ROBOR displayName "RON-ROBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - RUB_Annual_Swap_Rate_11_00_BGCANTOR displayName "RUB-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - RUB_Annual_Swap_Rate_12_45_TRADITION displayName "RUB-Annual Swap Rate-12:45-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - RUB_Annual_Swap_Rate_4_15_TRADITION displayName "RUB-Annual Swap Rate-4:15-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - RUB_Annual_Swap_Rate_Reference_Banks displayName "RUB-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - RUB_Annual_Swap_Rate_TRADITION_Reference_Banks displayName "RUB-Annual Swap Rate-TRADITION-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - RUB_Key_Rate_CBRF displayName "RUB-Key Rate CBRF" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - RUB_MosPrime displayName "RUB-MosPrime" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - RUB_MOSPRIME_NFEA displayName "RUB-MOSPRIME-NFEA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - RUB_MOSPRIME_Reference_Banks displayName "RUB-MOSPRIME-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - RUB_RUONIA displayName "RUB-RUONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - RUB_RUONIA_OIS_Compound_1 displayName "RUB-RUONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - RUB_RUONIA_OIS_COMPOUND displayName "RUB-RUONIA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SAR_SAIBOR displayName "SAR-SAIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - SAR_SRIOR_Reference_Banks displayName "SAR-SRIOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SAR_SRIOR_SUAA displayName "SAR-SRIOR-SUAA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_Annual_Swap_Rate displayName "SEK-Annual Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_Annual_Swap_Rate_SESWFI displayName "SEK-Annual Swap Rate-SESWFI" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_SIOR_OIS_COMPOUND displayName "SEK-SIOR-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_STIBOR displayName "SEK-STIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - SEK_STIBOR_Bloomberg displayName "SEK-STIBOR-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_STIBOR_OIS_Compound displayName "SEK-STIBOR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - SEK_STIBOR_Reference_Banks displayName "SEK-STIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_STIBOR_SIDE displayName "SEK-STIBOR-SIDE" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_SWESTR displayName "SEK-SWESTR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_SWESTR_Average_1M displayName "SEK-SWESTR Average 1M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_SWESTR_Average_1W displayName "SEK-SWESTR Average 1W" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_SWESTR_Average_2M displayName "SEK-SWESTR Average 2M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_SWESTR_Average_3M displayName "SEK-SWESTR Average 3M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_SWESTR_Average_6M displayName "SEK-SWESTR Average 6M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_SWESTR_Compounded_Index displayName "SEK-SWESTR Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SEK_SWESTR_OIS_Compound displayName "SEK-SWESTR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_Semi_Annual_Currency_Basis_Swap_Rate_11_00_Tullett_Prebon displayName "SGD-Semi-Annual Currency Basis Swap Rate-11:00-Tullett Prebon" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_Semi_Annual_Currency_Basis_Swap_Rate_16_00_Tullett_Prebon displayName "SGD-Semi-Annual Currency Basis Swap Rate-16:00-Tullett Prebon" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "SGD-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_Semi_Annual_Swap_Rate_11_00_Tullett_Prebon displayName "SGD-Semi-Annual Swap Rate-11:00-Tullett Prebon" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_Semi_Annual_Swap_Rate_11_00_TRADITION displayName "SGD-Semi-Annual Swap Rate-11.00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_Semi_Annual_Swap_Rate_16_00_Tullett_Prebon displayName "SGD-Semi-Annual Swap Rate-16:00-Tullett Prebon" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_Semi_Annual_Swap_Rate_ICAP displayName "SGD-Semi-Annual Swap Rate-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_Semi_Annual_Swap_Rate_ICAP_Reference_Banks displayName "SGD-Semi-Annual Swap Rate-ICAP-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_Semi_Annual_Swap_Rate_Reference_Banks displayName "SGD-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_Semi_Annual_Swap_Rate_TRADITION_Reference_Banks displayName "SGD-Semi-Annual Swap Rate-TRADITION-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_SIBOR displayName "SGD-SIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - SGD_SIBOR_Reference_Banks displayName "SGD-SIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_SIBOR_Reuters displayName "SGD-SIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_SIBOR_Telerate displayName "SGD-SIBOR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_SONAR_OIS_COMPOUND displayName "SGD-SONAR-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_SONAR_OIS_VWAP_COMPOUND displayName "SGD-SONAR-OIS-VWAP-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_SOR displayName "SGD-SOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - SGD_SORA displayName "SGD-SORA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_SORA_COMPOUND displayName "SGD-SORA-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_SORA_OIS_Compound displayName "SGD-SORA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - SGD_SOR_Reference_Banks displayName "SGD-SOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_SOR_Reuters displayName "SGD-SOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_SOR_Telerate displayName "SGD-SOR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_SOR_VWAP displayName "SGD-SOR-VWAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SGD_SOR_VWAP_Reference_Banks displayName "SGD-SOR-VWAP-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SKK_BRIBOR_Bloomberg displayName "SKK-BRIBOR-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SKK_BRIBOR_BRBO displayName "SKK-BRIBOR-BRBO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SKK_BRIBOR_NBSK07 displayName "SKK-BRIBOR-NBSK07" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - SKK_BRIBOR_Reference_Banks displayName "SKK-BRIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - THB_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "THB-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - THB_Semi_Annual_Swap_Rate_Reference_Banks displayName "THB-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - THB_SOR_Reference_Banks displayName "THB-SOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - THB_SOR_Reuters displayName "THB-SOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - THB_SOR_Telerate displayName "THB-SOR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - THB_THBFIX displayName "THB-THBFIX" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - THB_THBFIX_Reference_Banks displayName "THB-THBFIX-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - THB_THBFIX_Reuters displayName "THB-THBFIX-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - THB_THOR displayName "THB-THOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - THB_THOR_COMPOUND displayName "THB-THOR-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - THB_THOR_OIS_Compound displayName "THB-THOR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - TRY_Annual_Swap_Rate_11_00_TRADITION displayName "TRY Annual Swap Rate-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TRY_Annual_Swap_Rate_11_15_BGCANTOR displayName "TRY-Annual Swap Rate-11:15-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TRY_Annual_Swap_Rate_Reference_Banks displayName "TRY-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TRY_Semi_Annual_Swap_Rate_TRADITION_Reference_Banks displayName "TRY-Semi-Annual Swap Rate-TRADITION-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TRY_TLREF displayName "TRY-TLREF" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - TRY_TLREF_OIS_Compound_1 displayName "TRY-TLREF-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - TRY_TLREF_OIS_COMPOUND displayName "TRY-TLREF-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TRY_TRLIBOR displayName "TRY-TRLIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - TRY_TRYIBOR_Reference_Banks displayName "TRY-TRYIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TRY_TRYIBOR_Reuters displayName "TRY-TRYIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TWD_Quarterly_Annual_Swap_Rate_11_00_BGCANTOR displayName "TWD-Quarterly-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TWD_Quarterly_Annual_Swap_Rate_Reference_Banks displayName "TWD-Quarterly-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TWD_Reference_Dealers displayName "TWD-Reference Dealers" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TWD_Reuters_6165 displayName "TWD-Reuters-6165" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TWD_TAIBIR01 displayName "TWD-TAIBIR01" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TWD_TAIBIR02 displayName "TWD-TAIBIR02" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TWD_TAIBOR displayName "TWD-TAIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - TWD_TAIBOR_Bloomberg displayName "TWD-TAIBOR-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TWD_TAIBOR_Reuters displayName "TWD-TAIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TWD_Telerate_6165 displayName "TWD-Telerate-6165" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - TWD_TWCPBA displayName "TWD-TWCPBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - UK_Base_Rate displayName "UK Base Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_3M_LIBOR_SWAP_CME_vs_LCH_ICAP displayName "USD-3M LIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_3M_LIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg displayName "USD-3M LIBOR SWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_6M_LIBOR_SWAP_CME_vs_LCH_ICAP displayName "USD-6M LIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_6M_LIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg displayName "USD-6M LIBOR SWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_AMERIBOR displayName "USD-AMERIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_AMERIBOR_Average_30D displayName "USD-AMERIBOR Average 30D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_AMERIBOR_Average_90D displayName "USD-AMERIBOR Average 90D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_AMERIBOR_Term displayName "USD-AMERIBOR Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_AMERIBOR_Term_Structure displayName "USD-AMERIBOR Term Structure" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Annual_Swap_Rate_11_00_BGCANTOR displayName "USD-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Annual_Swap_Rate_11_00_TRADITION displayName "USD-Annual Swap Rate-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Annual_Swap_Rate_4_00_TRADITION displayName "USD-Annual Swap Rate-4:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_AXI_Term displayName "USD-AXI Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_BA_H_15 displayName "USD-BA-H.15" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_BA_Reference_Dealers displayName "USD-BA-Reference Dealers" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_BMA_Municipal_Swap_Index displayName "USD-BMA Municipal Swap Index" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_BSBY displayName "USD-BSBY" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_CD_H_15 displayName "USD-CD-H.15" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_CD_Reference_Dealers displayName "USD-CD-Reference Dealers" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_CMS_Reference_Banks displayName "USD-CMS-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_CMS_Reference_Banks_ICAP_SwapPX displayName "USD-CMS-Reference Banks-ICAP SwapPX" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_CMS_Reuters displayName "USD-CMS-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_CMS_Telerate displayName "USD-CMS-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_CMT displayName "USD-CMT" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_CMT_Average_1W displayName "USD-CMT Average 1W" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_CMT_T7051 displayName "USD-CMT-T7051" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_CMT_T7052 displayName "USD-CMT-T7052" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_COF11_FHLBSF displayName "USD-COF11-FHLBSF" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_COF11_Reuters displayName "USD-COF11-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_COF11_Telerate displayName "USD-COF11-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_COFI displayName "USD-COFI" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_CP_H_15 displayName "USD-CP-H.15" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_CP_Money_Market_Yield displayName "USD-CP-Money Market Yield" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_CP_Reference_Dealers displayName "USD-CP-Reference Dealers" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_CRITR displayName "USD-CRITR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Federal_Funds displayName "USD-Federal Funds" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_Federal_Funds_H_15 displayName "USD-Federal Funds-H.15" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Federal_Funds_H_15_Bloomberg displayName "USD-Federal Funds-H.15-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Federal_Funds_H_15_OIS_COMPOUND displayName "USD-Federal Funds-H.15-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Federal_Funds_OIS_Compound displayName "USD-Federal Funds-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_Federal_Funds_Reference_Dealers displayName "USD-Federal Funds-Reference Dealers" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_FFCB_DISCO displayName "USD-FFCB-DISCO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_FXI_Term displayName "USD-FXI Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_ISDAFIX3_Swap_Rate displayName "USD-ISDAFIX3-Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_ISDAFIX3_Swap_Rate_3_00 displayName "USD-ISDAFIX3-Swap Rate-3:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_ISDA_Swap_Rate displayName "USD-ISDA-Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_ISDA_Swap_Rate_3_00 displayName "USD-ISDA-Swap Rate-3:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_LIBOR displayName "USD-LIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_LIBOR_BBA displayName "USD-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_LIBOR_BBA_Bloomberg displayName "USD-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_LIBOR_ICE_Swap_Rate_11_00 displayName "USD-LIBOR ICE Swap Rate-11:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_LIBOR_ICE_Swap_Rate_15_00 displayName "USD-LIBOR ICE Swap Rate-15:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_LIBOR_ISDA displayName "USD-LIBOR-ISDA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_LIBOR_LIBO displayName "USD-LIBOR-LIBO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_LIBOR_Reference_Banks displayName "USD-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Municipal_Swap_Index displayName "USD-Municipal Swap Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_Municipal_Swap_Libor_Ratio_11_00_ICAP displayName "USD-Municipal Swap Libor Ratio-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Municipal_Swap_Rate_11_00_ICAP displayName "USD-Municipal Swap Rate-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_OIS_11_00_BGCANTOR displayName "USD-OIS-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_OIS_11_00_LON_ICAP displayName "USD-OIS-11:00-LON-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_OIS_11_00_NY_ICAP displayName "USD-OIS-11:00-NY-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_OIS_11_00_TRADITION displayName "USD-OIS-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_OIS_3_00_BGCANTOR displayName "USD-OIS-3:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_OIS_3_00_NY_ICAP displayName "USD-OIS-3:00-NY-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_OIS_4_00_TRADITION displayName "USD-OIS-4:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Overnight_Bank_Funding_Rate displayName "USD-Overnight Bank Funding Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Prime displayName "USD-Prime" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_Prime_H_15 displayName "USD-Prime-H.15" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Prime_Reference_Banks displayName "USD-Prime-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_S_P_Index_High_Grade displayName "USD-S&P Index-High Grade" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SandP_Index_High_Grade displayName "USD-SandP Index High Grade" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_SIBOR_Reference_Banks displayName "USD-SIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SIBOR_SIBO displayName "USD-SIBOR-SIBO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SIFMA_Municipal_Swap_Index displayName "USD-SIFMA Municipal Swap Index" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR displayName "USD-SOFR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_Average_180D displayName "USD-SOFR Average 180D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_Average_30D displayName "USD-SOFR Average 30D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_Average_90D displayName "USD-SOFR Average 90D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_CME_Term displayName "USD-SOFR CME Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_COMPOUND displayName "USD-SOFR-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_Compounded_Index displayName "USD-SOFR Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_ICE_Compounded_Index displayName "USD-SOFR ICE Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_ICE_Compounded_Index_0_Floor displayName "USD-SOFR ICE Compounded Index 0 Floor" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_ICE_Compounded_Index_0_Floor_2D_Lag displayName "USD-SOFR ICE Compounded Index 0 Floor 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_ICE_Compounded_Index_0_Floor_5D_Lag displayName "USD-SOFR ICE Compounded Index 0 Floor 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_ICE_Compounded_Index_2D_Lag displayName "USD-SOFR ICE Compounded Index 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_ICE_Compounded_Index_5D_Lag displayName "USD-SOFR ICE Compounded Index 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_ICE_Swap_Rate displayName "USD-SOFR ICE Swap Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_SOFR_ICE_Term displayName "USD-SOFR ICE Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_SOFR_OIS_Compound displayName "USD-SOFR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_Swap_Rate_BCMP1 displayName "USD Swap Rate-BCMP1" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_TBILL_H_15 displayName "USD-TBILL-H.15" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_TBILL_H_15_Bloomberg displayName "USD-TBILL-H.15-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_TBILL_Secondary_Market displayName "USD-TBILL-Secondary Market" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_TBILL_Secondary_Market_Bond_Equivalent_Yield displayName "USD-TBILL Secondary Market-Bond Equivalent Yield" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - USD_TIBOR_ISDC displayName "USD-TIBOR-ISDC" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_TIBOR_Reference_Banks displayName "USD-TIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Treasury_19901_3_00_ICAP displayName "USD-Treasury-19901-3:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Treasury_Rate_BCMP1 displayName "USD Treasury Rate-BCMP1" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Treasury_Rate_ICAP_BrokerTec displayName "USD-Treasury Rate-ICAP BrokerTec" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Treasury_Rate_SwapMarker100 displayName "USD-Treasury Rate-SwapMarker100" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Treasury_Rate_SwapMarker99 displayName "USD-Treasury Rate-SwapMarker99" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Treasury_Rate_T19901 displayName "USD-Treasury Rate-T19901" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - USD_Treasury_Rate_T500 displayName "USD-Treasury Rate-T500" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - VND_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "VND-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - VND_Semi_Annual_Swap_Rate_Reference_Banks displayName "VND-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ZAR_DEPOSIT_Reference_Banks displayName "ZAR-DEPOSIT-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ZAR_DEPOSIT_SAFEX displayName "ZAR-DEPOSIT-SAFEX" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ZAR_JIBAR displayName "ZAR-JIBAR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - ZAR_JIBAR_Reference_Banks displayName "ZAR-JIBAR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ZAR_JIBAR_SAFEX displayName "ZAR-JIBAR-SAFEX" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ZAR_Prime_Average_1 displayName "ZAR-Prime Average" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - ZAR_PRIME_AVERAGE displayName "ZAR-PRIME-AVERAGE" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ZAR_PRIME_AVERAGE_Reference_Banks displayName "ZAR-PRIME-AVERAGE-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ZAR_Quarterly_Swap_Rate_1_00_TRADITION displayName "ZAR-Quarterly Swap Rate-1:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ZAR_Quarterly_Swap_Rate_5_30_TRADITION displayName "ZAR-Quarterly Swap Rate-5:30-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ZAR_Quarterly_Swap_Rate_TRADITION_Reference_Banks displayName "ZAR-Quarterly Swap Rate-TRADITION-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> - ZAR_ZARONIA displayName "ZAR-ZARONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> - ZAR_ZARONIA_OIS_Compound displayName "ZAR-ZARONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + AED_EBOR_Reuters displayName "AED-EBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AED_EIBOR displayName "AED-EIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + AUD_AONIA displayName "AUD-AONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_AONIA_OIS_Compound_1 displayName "AUD-AONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + AUD_AONIA_OIS_COMPOUND displayName "AUD-AONIA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_AONIA_OIS_COMPOUND_SwapMarker displayName "AUD-AONIA-OIS-COMPOUND-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_BBR_AUBBSW displayName "AUD-BBR-AUBBSW" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_BBR_BBSW displayName "AUD-BBR-BBSW" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_BBR_BBSW_Bloomberg displayName "AUD-BBR-BBSW-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_BBR_BBSY__BID_ displayName "AUD-BBR-BBSY (BID)" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_BBR_ISDC displayName "AUD-BBR-ISDC" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_BBSW displayName "AUD-BBSW" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + AUD_BBSW_Quarterly_Swap_Rate_ICAP displayName "AUD-BBSW Quarterly Swap Rate ICAP" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + AUD_BBSW_Semi_Annual_Swap_Rate_ICAP displayName "AUD-BBSW Semi Annual Swap Rate ICAP" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + AUD_BBSY_Bid displayName "AUD-BBSY Bid" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + AUD_LIBOR_BBA displayName "AUD-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_LIBOR_BBA_Bloomberg displayName "AUD-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_LIBOR_Reference_Banks displayName "AUD-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_Quarterly_Swap_Rate_ICAP displayName "AUD-Quarterly Swap Rate-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_Quarterly_Swap_Rate_ICAP_Reference_Banks displayName "AUD-Quarterly Swap Rate-ICAP-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "AUD-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_Semi_Annual_Swap_Rate_BGCANTOR_Reference_Banks displayName "AUD-Semi-Annual Swap Rate-BGCANTOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_Semi_annual_Swap_Rate_ICAP displayName "AUD-Semi-annual Swap Rate-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_Semi_Annual_Swap_Rate_ICAP_Reference_Banks displayName "AUD-Semi-Annual Swap Rate-ICAP-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + AUD_Swap_Rate_Reuters displayName "AUD-Swap Rate-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + BRL_CDI displayName "BRL-CDI" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CAD_BA_CDOR displayName "CAD-BA-CDOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_BA_CDOR_Bloomberg displayName "CAD-BA-CDOR-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_BA_ISDD displayName "CAD-BA-ISDD" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_BA_Reference_Banks displayName "CAD-BA-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_BA_Reuters displayName "CAD-BA-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_BA_Telerate displayName "CAD-BA-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_CDOR displayName "CAD-CDOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CAD_CORRA displayName "CAD-CORRA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_CORRA_OIS_Compound_1 displayName "CAD-CORRA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CAD_CORRA_OIS_COMPOUND displayName "CAD-CORRA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_ISDA_Swap_Rate displayName "CAD-ISDA-Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_LIBOR_BBA displayName "CAD-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_LIBOR_BBA_Bloomberg displayName "CAD-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_LIBOR_BBA_SwapMarker displayName "CAD-LIBOR-BBA-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_LIBOR_Reference_Banks displayName "CAD-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_REPO_CORRA displayName "CAD-REPO-CORRA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_TBILL_ISDD displayName "CAD-TBILL-ISDD" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_TBILL_Reference_Banks displayName "CAD-TBILL-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_TBILL_Reuters displayName "CAD-TBILL-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CAD_TBILL_Telerate displayName "CAD-TBILL-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_3M_LIBOR_SWAP_CME_vs_LCH_ICAP displayName "CHF-3M LIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_3M_LIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg displayName "CHF-3M LIBOR SWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_3M_LIBOR_SWAP_EUREX_vs_LCH_ICAP displayName "CHF-3M LIBOR SWAP-EUREX vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_3M_LIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg displayName "CHF-3M LIBOR SWAP-EUREX vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_6M_LIBOR_SWAP_CME_vs_LCH_ICAP displayName "CHF-6M LIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_6M_LIBORSWAP_CME_vs_LCH_ICAP_Bloomberg displayName "CHF-6M LIBORSWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_6M_LIBOR_SWAP_EUREX_vs_LCH_ICAP displayName "CHF-6M LIBOR SWAP-EUREX vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_6M_LIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg displayName "CHF-6M LIBOR SWAP-EUREX vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_Annual_Swap_Rate displayName "CHF-Annual Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_Annual_Swap_Rate_11_00_ICAP displayName "CHF-Annual Swap Rate-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_Annual_Swap_Rate_Reference_Banks displayName "CHF-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_Basis_Swap_3m_vs_6m_LIBOR_11_00_ICAP displayName "CHF-Basis Swap-3m vs 6m-LIBOR-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_ISDAFIX_Swap_Rate displayName "CHF-ISDAFIX-Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_LIBOR displayName "CHF-LIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CHF_LIBOR_BBA displayName "CHF-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_LIBOR_BBA_Bloomberg displayName "CHF-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_LIBOR_ISDA displayName "CHF-LIBOR-ISDA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_LIBOR_Reference_Banks displayName "CHF-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_OIS_11_00_ICAP displayName "CHF-OIS-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_SARON displayName "CHF-SARON" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_SARON_Average_12M displayName "CHF-SARON Average 12M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CHF_SARON_Average_1M displayName "CHF-SARON Average 1M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CHF_SARON_Average_1W displayName "CHF-SARON Average 1W" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CHF_SARON_Average_2M displayName "CHF-SARON Average 2M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CHF_SARON_Average_3M displayName "CHF-SARON Average 3M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CHF_SARON_Average_6M displayName "CHF-SARON Average 6M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CHF_SARON_Average_9M displayName "CHF-SARON Average 9M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CHF_SARON_Compounded_Index displayName "CHF-SARON Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CHF_SARON_OIS_Compound_1 displayName "CHF-SARON-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CHF_SARON_OIS_COMPOUND displayName "CHF-SARON-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_TOIS_OIS_COMPOUND displayName "CHF-TOIS-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CHF_USD_Basis_Swaps_11_00_ICAP displayName "CHF USD-Basis Swaps-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CL_CLICP_Bloomberg displayName "CL-CLICP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CLP_ICP displayName "CLP-ICP" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CLP_TNA displayName "CLP-TNA" <"Refers to the Indice Camara Promedio ('ICP') rate for Chilean Pesos which, for a Reset Date, is determined and published by the Asociacion de Bancos e Instituciones Financieras de Chile A.G. ('ABIF') in accordance with the 'Reglamento Indice de Camara Promedio' of the ABIF as published in the Diario Oficial de la Republica de Chile (the 'ICP Rules') and which is reported on the ABIF website by not later than 10:00 a.m., Santiago time, on that Reset Date."> + CNH_HIBOR displayName "CNH-HIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CNH_HIBOR_Reference_Banks displayName "CNH-HIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CNH_HIBOR_TMA displayName "CNH-HIBOR-TMA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CNY_7_Repo_Compounding_Date displayName "CNY 7-Repo Compounding Date" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CNY_CNREPOFIX_CFXS_Reuters displayName "CNY-CNREPOFIX=CFXS-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CNY_Deposit_Rate displayName "CNY-Deposit Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CNY_Fixing_Repo_Rate displayName "CNY-Fixing Repo Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CNY_LPR displayName "CNY-LPR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CNY_PBOCB_Reuters displayName "CNY-PBOCB-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CNY_Quarterly_7_day_Repo_Non_Deliverable_Swap_Rate_TRADITION displayName "CNY-Quarterly 7 day Repo Non Deliverable Swap Rate-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CNY_Quarterly_7_day_Repo_Non_Deliverable_Swap_Rate_TRADITION_Reference_Banks displayName "CNY-Quarterly 7 day Repo Non Deliverable Swap Rate-TRADITION-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CNY_Quarterly_7D_Repo_NDS_Rate_Tradition displayName "CNY-Quarterly 7D Repo NDS Rate Tradition" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CNY_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "CNY-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CNY_Semi_Annual_Swap_Rate_Reference_Banks displayName "CNY-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CNY_SHIBOR displayName "CNY-SHIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CNY_SHIBOR_OIS_Compound displayName "CNY-SHIBOR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CNY_Shibor_OIS_Compounding displayName "CNY-Shibor-OIS-Compounding" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CNY_SHIBOR_Reuters displayName "CNY-SHIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction.."> + COP_IBR_OIS_Compound_1 displayName "COP-IBR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + COP_IBR_OIS_COMPOUND displayName "COP-IBR-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CZK_Annual_Swap_Rate_11_00_BGCANTOR displayName "CZK-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CZK_Annual_Swap_Rate_Reference_Banks displayName "CZK-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CZK_CZEONIA displayName "CZK-CZEONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CZK_CZEONIA_OIS_Compound displayName "CZK-CZEONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CZK_PRIBOR displayName "CZK-PRIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + CZK_PRIBOR_PRBO displayName "CZK-PRIBOR-PRBO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + CZK_PRIBOR_Reference_Banks displayName "CZK-PRIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + DKK_CIBOR displayName "DKK-CIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + DKK_CIBOR2 displayName "DKK-CIBOR2" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + DKK_CIBOR2_Bloomberg displayName "DKK-CIBOR2-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + DKK_CIBOR2_DKNA13 displayName "DKK-CIBOR2-DKNA13" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + DKK_CIBOR_DKNA13 displayName "DKK-CIBOR-DKNA13" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + DKK_CIBOR_DKNA13_Bloomberg displayName "DKK-CIBOR-DKNA13-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + DKK_CIBOR_Reference_Banks displayName "DKK-CIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + DKK_CITA displayName "DKK-CITA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + DKK_CITA_DKNA14_COMPOUND displayName "DKK-CITA-DKNA14-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + DKK_DESTR displayName "DKK-DESTR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + DKK_DESTR_Compounded_Index displayName "DKK-DESTR Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + DKK_DESTR_OIS_Compound displayName "DKK-DESTR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + DKK_DKKOIS_OIS_COMPOUND displayName "DKK-DKKOIS-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + DKK_Tom_Next_OIS_Compound displayName "DKK-Tom Next-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + EUR_3M_EURIBOR_SWAP_CME_vs_LCH_ICAP displayName "EUR-3M EURIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_3M_EURIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg displayName "EUR-3M EURIBOR SWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_3M_EURIBOR_SWAP_EUREX_vs_LCH_ICAP displayName "EUR-3M EURIBOR SWAP-EUREX vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_3M_EURIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg displayName "EUR-3M EURIBOR SWAP-EUREX vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_6M_EURIBOR_SWAP_CME_vs_LCH_ICAP displayName "EUR-6M EURIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_6M_EURIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg displayName "EUR-6M EURIBOR SWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_6M_EURIBOR_SWAP_EUREX_vs_LCH_ICAP displayName "EUR-6M EURIBOR SWAP-EUREX vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_6M_EURIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg displayName "EUR-6M EURIBOR SWAP-EUREX vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_10_00 displayName "EUR-Annual Swap Rate-10:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_10_00_BGCANTOR displayName "EUR-Annual Swap Rate-10:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_10_00_Bloomberg displayName "EUR-Annual Swap Rate-10:00-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_10_00_ICAP displayName "EUR-Annual Swap Rate-10:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_10_00_SwapMarker displayName "EUR-Annual Swap Rate-10:00-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_10_00_TRADITION displayName "EUR-Annual Swap Rate-10:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_11_00 displayName "EUR-Annual Swap Rate-11:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_11_00_Bloomberg displayName "EUR-Annual Swap Rate-11:00-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_11_00_ICAP displayName "EUR-Annual Swap Rate-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_11_00_SwapMarker displayName "EUR-Annual Swap Rate-11:00-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_3_Month displayName "EUR-Annual Swap Rate-3 Month" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_3_Month_SwapMarker displayName "EUR-Annual Swap Rate-3 Month-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_4_15_TRADITION displayName "EUR-Annual Swap Rate-4:15-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Annual_Swap_Rate_Reference_Banks displayName "EUR-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_Basis_Swap_EONIA_vs_3m_EUR_IBOR_Swap_Rates_A_360_10_00_ICAP displayName "EUR Basis Swap-EONIA vs 3m EUR+IBOR Swap Rates-A/360-10:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_CNO_TEC10 displayName "EUR-CNO TEC10" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + EUR_EONIA displayName "EUR-EONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + EUR_EONIA_AVERAGE_1 displayName "EUR-EONIA-AVERAGE" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EONIA_Average displayName "EUR-EONIA-Average" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + EUR_EONIA_OIS_10_00_BGCANTOR displayName "EUR-EONIA-OIS-10:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EONIA_OIS_10_00_ICAP displayName "EUR-EONIA-OIS-10:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EONIA_OIS_10_00_TRADITION displayName "EUR-EONIA-OIS-10:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EONIA_OIS_11_00_ICAP displayName "EUR-EONIA-OIS-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EONIA_OIS_4_15_TRADITION displayName "EUR-EONIA-OIS-4:15-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EONIA_OIS_Compound_1 displayName "EUR-EONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + EUR_EONIA_OIS_COMPOUND displayName "EUR-EONIA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EONIA_OIS_COMPOUND_Bloomberg displayName "EUR-EONIA-OIS-COMPOUND-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EONIA_Swap_Index displayName "EUR-EONIA-Swap-Index" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EURIBOR displayName "EUR-EURIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + EUR_EURIBOR_Act_365 displayName "EUR-EURIBOR-Act/365" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EURIBOR_Act_365_Bloomberg displayName "EUR-EURIBOR-Act/365-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EURIBOR_Annual_Bond_Swap_vs_1m_11_00_ICAP displayName "EUR EURIBOR-Annual Bond Swap vs 1m-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EURIBOR_Basis_Swap_1m_vs_3m_Euribor_11_00_ICAP displayName "EUR EURIBOR-Basis Swap-1m vs 3m-Euribor-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EURIBOR_Basis_Swap_3m_vs_6m_11_00_ICAP displayName "EUR EURIBOR-Basis Swap-3m vs 6m-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EURIBOR_ICE_Swap_Rate_11_00 displayName "EUR-EURIBOR ICE Swap Rate-11:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + EUR_EURIBOR_ICE_Swap_Rate_12_00 displayName "EUR-EURIBOR ICE Swap Rate-12:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + EUR_EURIBOR_Reference_Banks displayName "EUR-EURIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EURIBOR_Reuters displayName "EUR-EURIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EURIBOR_Telerate displayName "EUR-EURIBOR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EURONIA_OIS_Compound_1 displayName "EUR-EURONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + EUR_EURONIA_OIS_COMPOUND displayName "EUR-EURONIA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR displayName "EUR-EuroSTR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_Average_12M displayName "EUR-EuroSTR Average 12M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_Average_1M displayName "EUR-EuroSTR Average 1M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_Average_1W displayName "EUR-EuroSTR Average 1W" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_Average_3M displayName "EUR-EuroSTR Average 3M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_Average_6M displayName "EUR-EuroSTR Average 6M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_COMPOUND displayName "EUR-EuroSTR-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_Compounded_Index displayName "EUR-EuroSTR Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_ICE_Compounded_Index displayName "EUR-EuroSTR ICE Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_ICE_Compounded_Index_0_Floor displayName "EUR-EuroSTR ICE Compounded Index 0 Floor" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_ICE_Compounded_Index_0_Floor_2D_Lag displayName "EUR-EuroSTR ICE Compounded Index 0 Floor 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_ICE_Compounded_Index_0_Floor_5D_Lag displayName "EUR-EuroSTR ICE Compounded Index 0 Floor 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_ICE_Compounded_Index_2D_Lag displayName "EUR-EuroSTR ICE Compounded Index 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_ICE_Compounded_Index_5D_Lag displayName "EUR-EuroSTR ICE Compounded Index 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_OIS_Compound displayName "EUR-EuroSTR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + EUR_EuroSTR_Term displayName "EUR-EuroSTR Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + EUR_ISDA_EURIBOR_Swap_Rate_11_00 displayName "EUR-ISDA-EURIBOR Swap Rate-11:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_ISDA_EURIBOR_Swap_Rate_12_00 displayName "EUR-ISDA-EURIBOR Swap Rate-12:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_ISDA_LIBOR_Swap_Rate_10_00 displayName "EUR-ISDA-LIBOR Swap Rate-10:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_ISDA_LIBOR_Swap_Rate_11_00 displayName "EUR-ISDA-LIBOR Swap Rate-11:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_LIBOR displayName "EUR-LIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + EUR_LIBOR_BBA displayName "EUR-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_LIBOR_BBA_Bloomberg displayName "EUR-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_LIBOR_Reference_Banks displayName "EUR-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_TAM_CDC displayName "EUR-TAM-CDC" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_TEC10_CNO displayName "EUR-TEC10-CNO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_TEC10_CNO_SwapMarker displayName "EUR-TEC10-CNO-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_TEC10_Reference_Banks displayName "EUR-TEC10-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_TEC5_CNO displayName "EUR-TEC5-CNO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_TEC5_CNO_SwapMarker displayName "EUR-TEC5-CNO-SwapMarker" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_TEC5_Reference_Banks displayName "EUR-TEC5-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_TMM_CDC_COMPOUND displayName "EUR-TMM-CDC-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + EUR_USD_Basis_Swaps_11_00_ICAP displayName "EUR USD-Basis Swaps-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_6M_LIBOR_SWAP_CME_vs_LCH_ICAP displayName "GBP-6M LIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_6M_LIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg displayName "GBP-6M LIBOR SWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_6M_LIBOR_SWAP_EUREX_vs_LCH_ICAP displayName "GBP-6M LIBOR SWAP-EUREX vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_6M_LIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg displayName "GBP-6M LIBOR SWAP-EUREX vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_ISDA_Swap_Rate displayName "GBP-ISDA-Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_LIBOR displayName "GBP-LIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + GBP_LIBOR_BBA displayName "GBP-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_LIBOR_BBA_Bloomberg displayName "GBP-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_LIBOR_ICE_Swap_Rate displayName "GBP-LIBOR ICE Swap Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + GBP_LIBOR_ISDA displayName "GBP-LIBOR-ISDA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_LIBOR_Reference_Banks displayName "GBP-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_RONIA displayName "GBP-RONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + GBP_RONIA_OIS_Compound displayName "GBP-RONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + GBP_Semi_Annual_Swap_Rate displayName "GBP-Semi-Annual Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_Semi_Annual_Swap_Rate_11_00_ICAP displayName "GBP-Semi-Annual Swap Rate-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_Semi_Annual_Swap_Rate_11_00_TRADITION displayName "GBP-Semi Annual Swap Rate-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_Semi_Annual_Swap_Rate_4_15_TRADITION displayName "GBP-Semi Annual Swap Rate-4:15-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_Semi_Annual_Swap_Rate_Reference_Banks displayName "GBP-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_Semi_Annual_Swap_Rate_SwapMarker26 displayName "GBP-Semi-Annual Swap Rate-SwapMarker26" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA displayName "GBP-SONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_COMPOUND displayName "GBP-SONIA-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_Compounded_Index displayName "GBP-SONIA Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_ICE_Compounded_Index displayName "GBP-SONIA ICE Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_ICE_Compounded_Index_0_Floor displayName "GBP-SONIA ICE Compounded Index 0 Floor" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_ICE_Compounded_Index_0_Floor_2D_Lag displayName "GBP-SONIA ICE Compounded Index 0 Floor 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_ICE_Compounded_Index_0_Floor_5D_Lag displayName "GBP-SONIA ICE Compounded Index 0 Floor 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_ICE_Compounded_Index_2D_Lag displayName "GBP-SONIA ICE Compounded Index 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_ICE_Compounded_Index_5D_Lag displayName "GBP-SONIA ICE Compounded Index 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_ICE_Swap_Rate displayName "GBP-SONIA ICE Swap Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + GBP_SONIA_ICE_Term displayName "GBP-SONIA ICE Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_OIS_11_00_ICAP displayName "GBP-SONIA-OIS-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_OIS_11_00_TRADITION displayName "GBP-SONIA-OIS-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_OIS_4_15_TRADITION displayName "GBP-SONIA-OIS-4:15-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_OIS_Compound displayName "GBP-SONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + GBP_SONIA_Refinitiv_Term displayName "GBP-SONIA Refinitiv Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_SONIA_Swap_Rate displayName "GBP-SONIA Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_UK_Base_Rate displayName "GBP-UK Base Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + GBP_USD_Basis_Swaps_11_00_ICAP displayName "GBP USD-Basis Swaps-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_WMBA_RONIA_COMPOUND displayName "GBP-WMBA-RONIA-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GBP_WMBA_SONIA_COMPOUND displayName "GBP-WMBA-SONIA-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GRD_ATHIBOR_ATHIBOR displayName "GRD-ATHIBOR-ATHIBOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GRD_ATHIBOR_Reference_Banks displayName "GRD-ATHIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GRD_ATHIBOR_Telerate displayName "GRD-ATHIBOR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GRD_ATHIMID_Reference_Banks displayName "GRD-ATHIMID-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + GRD_ATHIMID_Reuters displayName "GRD-ATHIMID-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_HIBOR displayName "HKD-HIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + HKD_HIBOR_HIBOR_ displayName "HKD-HIBOR-HIBOR=" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_HIBOR_HIBOR_Bloomberg displayName "HKD-HIBOR-HIBOR-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_HIBOR_HKAB displayName "HKD-HIBOR-HKAB" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_HIBOR_HKAB_Bloomberg displayName "HKD-HIBOR-HKAB-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_HIBOR_ISDC displayName "HKD-HIBOR-ISDC" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_HIBOR_Reference_Banks displayName "HKD-HIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_HONIA displayName "HKD-HONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_HONIA_OIS_Compound displayName "HKD-HONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + HKD_HONIX_OIS_COMPOUND displayName "HKD-HONIX-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_ISDA_Swap_Rate_11_00 displayName "HKD-ISDA-Swap Rate-11:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_ISDA_Swap_Rate_4_00 displayName "HKD-ISDA-Swap Rate-4:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_Quarterly_Annual_Swap_Rate_11_00_BGCANTOR displayName "HKD-Quarterly-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_Quarterly_Annual_Swap_Rate_11_00_TRADITION displayName "HKD-Quarterly-Annual Swap Rate-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_Quarterly_Annual_Swap_Rate_4_00_BGCANTOR displayName "HKD-Quarterly-Annual Swap Rate-4:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_Quarterly_Annual_Swap_Rate_Reference_Banks displayName "HKD-Quarterly-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_Quarterly_Quarterly_Swap_Rate_11_00_ICAP displayName "HKD-Quarterly-Quarterly Swap Rate-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_Quarterly_Quarterly_Swap_Rate_4_00_ICAP displayName "HKD-Quarterly-Quarterly Swap Rate-4:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HKD_Quarterly_Quarterly_Swap_Rate_Reference_Banks displayName "HKD-Quarterly-Quarterly Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HUF_BUBOR displayName "HUF-BUBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + HUF_BUBOR_Reference_Banks displayName "HUF-BUBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HUF_BUBOR_Reuters displayName "HUF-BUBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + HUF_HUFONIA displayName "HUF-HUFONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + HUF_HUFONIA_OIS_Compound displayName "HUF-HUFONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + IDR_IDMA_Bloomberg displayName "IDR-IDMA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + IDR_IDRFIX displayName "IDR-IDRFIX" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + IDR_JIBOR displayName "IDR-JIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + IDR_JIBOR_Reuters displayName "IDR-JIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + IDR_SBI_Reuters displayName "IDR-SBI-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + IDR_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "IDR-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + IDR_Semi_Annual_Swap_Rate_Non_deliverable_16_00_Tullett_Prebon displayName "IDR-Semi Annual Swap Rate-Non-deliverable-16:00-Tullett Prebon" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + IDR_Semi_Annual_Swap_Rate_Reference_Banks displayName "IDR-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + IDR_SOR_Reference_Banks displayName "IDR-SOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + IDR_SOR_Reuters displayName "IDR-SOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + IDR_SOR_Telerate displayName "IDR-SOR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ILS_SHIR displayName "ILS-SHIR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + ILS_SHIR_OIS_Compound displayName "ILS-SHIR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + ILS_TELBOR displayName "ILS-TELBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + ILS_TELBOR01_Reuters displayName "ILS-TELBOR01-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ILS_TELBOR_Reference_Banks displayName "ILS-TELBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_BMK displayName "INR-BMK" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_CMT displayName "INR-CMT" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_FBIL_MIBOR_OIS_COMPOUND displayName "INR-FBIL-MIBOR-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_INBMK_REUTERS displayName "INR-INBMK-REUTERS" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_MIBOR_OIS displayName "INR-MIBOR OIS" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + INR_MIBOR_OIS_Compound_1 displayName "INR-MIBOR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + INR_MIBOR_OIS_COMPOUND displayName "INR-MIBOR-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_MIFOR displayName "INR-MIFOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_MIOIS displayName "INR-MIOIS" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_MITOR_OIS_COMPOUND displayName "INR-MITOR-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_Modified_MIFOR displayName "INR-Modified MIFOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_Reference_Banks displayName "INR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_Semi_Annual_Swap_Rate_11_30_BGCANTOR displayName "INR-Semi-Annual Swap Rate-11:30-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_Semi_Annual_Swap_Rate_Non_deliverable_16_00_Tullett_Prebon displayName "INR-Semi Annual Swap Rate-Non-deliverable-16:00-Tullett Prebon" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + INR_Semi_Annual_Swap_Rate_Reference_Banks displayName "INR-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ISK_REIBOR displayName "ISK-REIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + ISK_REIBOR_Reference_Banks displayName "ISK-REIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ISK_REIBOR_Reuters displayName "ISK-REIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_Annual_Swap_Rate_11_00_TRADITION displayName "JPY-Annual Swap Rate-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_Annual_Swap_Rate_3_00_TRADITION displayName "JPY-Annual Swap Rate-3:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_BBSF_Bloomberg_10_00 displayName "JPY-BBSF-Bloomberg-10:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_BBSF_Bloomberg_15_00 displayName "JPY-BBSF-Bloomberg-15:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_Euroyen_TIBOR displayName "JPY-Euroyen TIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + JPY_ISDA_Swap_Rate_10_00 displayName "JPY-ISDA-Swap Rate-10:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_ISDA_Swap_Rate_15_00 displayName "JPY-ISDA-Swap Rate-15:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_LIBOR displayName "JPY-LIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + JPY_LIBOR_BBA displayName "JPY-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_LIBOR_BBA_Bloomberg displayName "JPY-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_LIBOR_FRASETT displayName "JPY-LIBOR-FRASETT" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_LIBOR_ISDA displayName "JPY-LIBOR-ISDA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_LIBOR_Reference_Banks displayName "JPY-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_LIBOR_TSR_10_00 displayName "JPY-LIBOR TSR-10:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + JPY_LIBOR_TSR_15_00 displayName "JPY-LIBOR TSR-15:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + JPY_LTPR_MHBK displayName "JPY-LTPR MHBK" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + JPY_LTPR_MHCB displayName "JPY-LTPR-MHCB" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_LTPR_TBC displayName "JPY-LTPR-TBC" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_MUTANCALL_TONAR displayName "JPY-MUTANCALL-TONAR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_OIS_11_00_ICAP displayName "JPY-OIS-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_OIS_11_00_TRADITION displayName "JPY-OIS-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_OIS_3_00_TRADITION displayName "JPY-OIS-3:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_Quoting_Banks_LIBOR displayName "JPY-Quoting Banks-LIBOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_STPR_Quoting_Banks displayName "JPY-STPR-Quoting Banks" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TIBOR displayName "JPY-TIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + JPY_TIBOR_17096 displayName "JPY-TIBOR-17096" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TIBOR_17097 displayName "JPY-TIBOR-17097" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TIBOR_DTIBOR01 displayName "JPY-TIBOR-DTIBOR01" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TIBOR_TIBM displayName "JPY-TIBOR-TIBM" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TIBOR_TIBM__10_Banks_ displayName "JPY-TIBOR-TIBM (10 Banks)" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TIBOR_TIBM__5_Banks_ displayName "JPY-TIBOR-TIBM (5 Banks)" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TIBOR_TIBM__All_Banks_ displayName "JPY-TIBOR-TIBM (All Banks)" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TIBOR_TIBM__All_Banks__Bloomberg displayName "JPY-TIBOR-TIBM (All Banks)-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TIBOR_TIBM_Reference_Banks displayName "JPY-TIBOR-TIBM-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TIBOR_ZTIBOR displayName "JPY-TIBOR-ZTIBOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA displayName "JPY-TONA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_Average_180D displayName "JPY-TONA Average 180D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_Average_30D displayName "JPY-TONA Average 30D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_Average_90D displayName "JPY-TONA Average 90D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_Compounded_Index displayName "JPY-TONA Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_ICE_Compounded_Index displayName "JPY-TONA ICE Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_ICE_Compounded_Index_0_Floor displayName "JPY-TONA ICE Compounded Index 0 Floor" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_ICE_Compounded_Index_0_Floor_2D_Lag displayName "JPY-TONA ICE Compounded Index 0 Floor 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_ICE_Compounded_Index_0_Floor_5D_Lag displayName "JPY-TONA ICE Compounded Index 0 Floor 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_ICE_Compounded_Index_2D_Lag displayName "JPY-TONA ICE Compounded Index 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_ICE_Compounded_Index_5D_Lag displayName "JPY-TONA ICE Compounded Index 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_OIS_Compound_1 displayName "JPY-TONA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + JPY_TONA_OIS_COMPOUND displayName "JPY-TONA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_TSR_10_00 displayName "JPY-TONA TSR-10:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TONA_TSR_15_00 displayName "JPY-TONA TSR-15:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TORF_QUICK displayName "JPY-TORF QUICK" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TSR_Reference_Banks displayName "JPY-TSR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TSR_Reuters_10_00 displayName "JPY-TSR-Reuters-10:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TSR_Reuters_15_00 displayName "JPY-TSR-Reuters-15:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TSR_Telerate_10_00 displayName "JPY-TSR-Telerate-10:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_TSR_Telerate_15_00 displayName "JPY-TSR-Telerate-15:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + JPY_USD_Basis_Swaps_11_00_ICAP displayName "JPY USD-Basis Swaps-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + KRW_Bond_3222 displayName "KRW-Bond-3222" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + KRW_CD_3220 displayName "KRW-CD-3220" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + KRW_CD_91D displayName "KRW-CD 91D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + KRW_CD_KSDA_Bloomberg displayName "KRW-CD-KSDA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + KRW_KOFR displayName "KRW-KOFR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + KRW_KOFR_OIS_Compound displayName "KRW-KOFR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + KRW_Quarterly_Annual_Swap_Rate_3_30_ICAP displayName "KRW-Quarterly Annual Swap Rate-3:30-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + MXN_TIIE displayName "MXN-TIIE" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + MXN_TIIE_Banxico displayName "MXN-TIIE-Banxico" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + MXN_TIIE_Banxico_Bloomberg displayName "MXN-TIIE-Banxico-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + MXN_TIIE_Banxico_Reference_Banks displayName "MXN-TIIE-Banxico-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + MXN_TIIE_ON displayName "MXN-TIIE ON" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + MXN_TIIE_ON_OIS_Compound displayName "MXN-TIIE ON-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + MXN_TIIE_Reference_Banks displayName "MXN-TIIE-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + MYR_KLIBOR displayName "MYR-KLIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + MYR_KLIBOR_BNM displayName "MYR-KLIBOR-BNM" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + MYR_KLIBOR_Reference_Banks displayName "MYR-KLIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + MYR_MYOR displayName "MYR-MYOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + MYR_MYOR_OIS_Compound displayName "MYR-MYOR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + MYR_Quarterly_Swap_Rate_11_00_TRADITION displayName "MYR-Quarterly Swap Rate-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + MYR_Quarterly_Swap_Rate_TRADITION_Reference_Banks displayName "MYR-Quarterly Swap Rate-TRADITION-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NOK_NIBOR displayName "NOK-NIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + NOK_NIBOR_NIBR displayName "NOK-NIBOR-NIBR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NOK_NIBOR_NIBR_Bloomberg displayName "NOK-NIBOR-NIBR-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NOK_NIBOR_NIBR_Reference_Banks displayName "NOK-NIBOR-NIBR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NOK_NIBOR_OIBOR displayName "NOK-NIBOR-OIBOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NOK_NIBOR_Reference_Banks displayName "NOK-NIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NOK_NOWA displayName "NOK-NOWA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NOK_NOWA_OIS_Compound displayName "NOK-NOWA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + NZD_BBR_BID displayName "NZD-BBR-BID" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NZD_BBR_FRA displayName "NZD-BBR-FRA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NZD_BBR_ISDC displayName "NZD-BBR-ISDC" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NZD_BBR_Reference_Banks displayName "NZD-BBR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NZD_BBR_Telerate displayName "NZD-BBR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NZD_BKBM_Bid displayName "NZD-BKBM Bid" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + NZD_BKBM_FRA displayName "NZD-BKBM FRA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + NZD_BKBM_FRA_Swap_Rate_ICAP displayName "NZD-BKBM FRA Swap Rate ICAP" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + NZD_NZIONA displayName "NZD-NZIONA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NZD_NZIONA_OIS_Compound_1 displayName "NZD-NZIONA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + NZD_NZIONA_OIS_COMPOUND displayName "NZD-NZIONA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NZD_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "NZD-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NZD_Semi_Annual_Swap_Rate_BGCANTOR_Reference_Banks displayName "NZD-Semi-Annual Swap Rate-BGCANTOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NZD_Swap_Rate_ICAP displayName "NZD-Swap Rate-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + NZD_Swap_Rate_ICAP_Reference_Banks displayName "NZD-Swap Rate-ICAP-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + PHP_PHIREF displayName "PHP-PHIREF" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + PHP_PHIREF_BAP displayName "PHP-PHIREF-BAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + PHP_PHIREF_Bloomberg displayName "PHP-PHIREF-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + PHP_PHIREF_Reference_Banks displayName "PHP-PHIREF-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + PHP_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "PHP-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + PHP_Semi_Annual_Swap_Rate_Reference_Banks displayName "PHP-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + PLN_POLONIA displayName "PLN-POLONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + PLN_POLONIA_OIS_Compound_1 displayName "PLN-POLONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + PLN_POLONIA_OIS_COMPOUND displayName "PLN-POLONIA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + PLN_WIBID displayName "PLN-WIBID" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + PLN_WIBOR displayName "PLN-WIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + PLN_WIBOR_Reference_Banks displayName "PLN-WIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + PLN_WIBOR_WIBO displayName "PLN-WIBOR-WIBO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + PLN_WIRON displayName "PLN-WIRON" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + PLN_WIRON_OIS_Compound displayName "PLN-WIRON-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + PLZ_WIBOR_Reference_Banks displayName "PLZ-WIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + PLZ_WIBOR_WIBO displayName "PLZ-WIBOR-WIBO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + REPOFUNDS_RATE_FRANCE_OIS_COMPOUND displayName "REPOFUNDS RATE-FRANCE-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + REPOFUNDS_RATE_GERMANY_OIS_COMPOUND displayName "REPOFUNDS RATE-GERMANY-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + REPOFUNDS_RATE_ITALY_OIS_COMPOUND displayName "REPOFUNDS RATE-ITALY-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + RON_Annual_Swap_Rate_11_00_BGCANTOR displayName "RON-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + RON_Annual_Swap_Rate_Reference_Banks displayName "RON-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + RON_RBOR_Reuters displayName "RON-RBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + RON_ROBID displayName "RON-ROBID" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + RON_ROBOR displayName "RON-ROBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + RUB_Annual_Swap_Rate_11_00_BGCANTOR displayName "RUB-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + RUB_Annual_Swap_Rate_12_45_TRADITION displayName "RUB-Annual Swap Rate-12:45-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + RUB_Annual_Swap_Rate_4_15_TRADITION displayName "RUB-Annual Swap Rate-4:15-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + RUB_Annual_Swap_Rate_Reference_Banks displayName "RUB-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + RUB_Annual_Swap_Rate_TRADITION_Reference_Banks displayName "RUB-Annual Swap Rate-TRADITION-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + RUB_Key_Rate_CBRF displayName "RUB-Key Rate CBRF" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + RUB_MosPrime displayName "RUB-MosPrime" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + RUB_MOSPRIME_NFEA displayName "RUB-MOSPRIME-NFEA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + RUB_MOSPRIME_Reference_Banks displayName "RUB-MOSPRIME-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + RUB_RUONIA displayName "RUB-RUONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + RUB_RUONIA_OIS_Compound_1 displayName "RUB-RUONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + RUB_RUONIA_OIS_COMPOUND displayName "RUB-RUONIA-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SAR_SAIBOR displayName "SAR-SAIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + SAR_SRIOR_Reference_Banks displayName "SAR-SRIOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SAR_SRIOR_SUAA displayName "SAR-SRIOR-SUAA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_Annual_Swap_Rate displayName "SEK-Annual Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_Annual_Swap_Rate_SESWFI displayName "SEK-Annual Swap Rate-SESWFI" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_SIOR_OIS_COMPOUND displayName "SEK-SIOR-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_STIBOR displayName "SEK-STIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + SEK_STIBOR_Bloomberg displayName "SEK-STIBOR-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_STIBOR_OIS_Compound displayName "SEK-STIBOR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + SEK_STIBOR_Reference_Banks displayName "SEK-STIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_STIBOR_SIDE displayName "SEK-STIBOR-SIDE" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_SWESTR displayName "SEK-SWESTR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_SWESTR_Average_1M displayName "SEK-SWESTR Average 1M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_SWESTR_Average_1W displayName "SEK-SWESTR Average 1W" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_SWESTR_Average_2M displayName "SEK-SWESTR Average 2M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_SWESTR_Average_3M displayName "SEK-SWESTR Average 3M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_SWESTR_Average_6M displayName "SEK-SWESTR Average 6M" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_SWESTR_Compounded_Index displayName "SEK-SWESTR Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SEK_SWESTR_OIS_Compound displayName "SEK-SWESTR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_Semi_Annual_Currency_Basis_Swap_Rate_11_00_Tullett_Prebon displayName "SGD-Semi-Annual Currency Basis Swap Rate-11:00-Tullett Prebon" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_Semi_Annual_Currency_Basis_Swap_Rate_16_00_Tullett_Prebon displayName "SGD-Semi-Annual Currency Basis Swap Rate-16:00-Tullett Prebon" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "SGD-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_Semi_Annual_Swap_Rate_11_00_Tullett_Prebon displayName "SGD-Semi-Annual Swap Rate-11:00-Tullett Prebon" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_Semi_Annual_Swap_Rate_11_00_TRADITION displayName "SGD-Semi-Annual Swap Rate-11.00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_Semi_Annual_Swap_Rate_16_00_Tullett_Prebon displayName "SGD-Semi-Annual Swap Rate-16:00-Tullett Prebon" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_Semi_Annual_Swap_Rate_ICAP displayName "SGD-Semi-Annual Swap Rate-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_Semi_Annual_Swap_Rate_ICAP_Reference_Banks displayName "SGD-Semi-Annual Swap Rate-ICAP-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_Semi_Annual_Swap_Rate_Reference_Banks displayName "SGD-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_Semi_Annual_Swap_Rate_TRADITION_Reference_Banks displayName "SGD-Semi-Annual Swap Rate-TRADITION-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_SIBOR displayName "SGD-SIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + SGD_SIBOR_Reference_Banks displayName "SGD-SIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_SIBOR_Reuters displayName "SGD-SIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_SIBOR_Telerate displayName "SGD-SIBOR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_SONAR_OIS_COMPOUND displayName "SGD-SONAR-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_SONAR_OIS_VWAP_COMPOUND displayName "SGD-SONAR-OIS-VWAP-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_SOR displayName "SGD-SOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + SGD_SORA displayName "SGD-SORA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_SORA_COMPOUND displayName "SGD-SORA-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_SORA_OIS_Compound displayName "SGD-SORA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + SGD_SOR_Reference_Banks displayName "SGD-SOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_SOR_Reuters displayName "SGD-SOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_SOR_Telerate displayName "SGD-SOR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_SOR_VWAP displayName "SGD-SOR-VWAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SGD_SOR_VWAP_Reference_Banks displayName "SGD-SOR-VWAP-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SKK_BRIBOR_Bloomberg displayName "SKK-BRIBOR-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SKK_BRIBOR_BRBO displayName "SKK-BRIBOR-BRBO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SKK_BRIBOR_NBSK07 displayName "SKK-BRIBOR-NBSK07" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + SKK_BRIBOR_Reference_Banks displayName "SKK-BRIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + THB_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "THB-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + THB_Semi_Annual_Swap_Rate_Reference_Banks displayName "THB-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + THB_SOR_Reference_Banks displayName "THB-SOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + THB_SOR_Reuters displayName "THB-SOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + THB_SOR_Telerate displayName "THB-SOR-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + THB_THBFIX displayName "THB-THBFIX" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + THB_THBFIX_Reference_Banks displayName "THB-THBFIX-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + THB_THBFIX_Reuters displayName "THB-THBFIX-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + THB_THOR displayName "THB-THOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + THB_THOR_COMPOUND displayName "THB-THOR-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + THB_THOR_OIS_Compound displayName "THB-THOR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + TRY_Annual_Swap_Rate_11_00_TRADITION displayName "TRY Annual Swap Rate-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TRY_Annual_Swap_Rate_11_15_BGCANTOR displayName "TRY-Annual Swap Rate-11:15-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TRY_Annual_Swap_Rate_Reference_Banks displayName "TRY-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TRY_Semi_Annual_Swap_Rate_TRADITION_Reference_Banks displayName "TRY-Semi-Annual Swap Rate-TRADITION-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TRY_TLREF displayName "TRY-TLREF" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + TRY_TLREF_OIS_Compound_1 displayName "TRY-TLREF-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + TRY_TLREF_OIS_COMPOUND displayName "TRY-TLREF-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TRY_TRLIBOR displayName "TRY-TRLIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + TRY_TRYIBOR_Reference_Banks displayName "TRY-TRYIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TRY_TRYIBOR_Reuters displayName "TRY-TRYIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TWD_Quarterly_Annual_Swap_Rate_11_00_BGCANTOR displayName "TWD-Quarterly-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TWD_Quarterly_Annual_Swap_Rate_Reference_Banks displayName "TWD-Quarterly-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TWD_Reference_Dealers displayName "TWD-Reference Dealers" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TWD_Reuters_6165 displayName "TWD-Reuters-6165" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TWD_TAIBIR01 displayName "TWD-TAIBIR01" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TWD_TAIBIR02 displayName "TWD-TAIBIR02" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TWD_TAIBOR displayName "TWD-TAIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + TWD_TAIBOR_Bloomberg displayName "TWD-TAIBOR-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TWD_TAIBOR_Reuters displayName "TWD-TAIBOR-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TWD_Telerate_6165 displayName "TWD-Telerate-6165" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + TWD_TWCPBA displayName "TWD-TWCPBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + UK_Base_Rate displayName "UK Base Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_3M_LIBOR_SWAP_CME_vs_LCH_ICAP displayName "USD-3M LIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_3M_LIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg displayName "USD-3M LIBOR SWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_6M_LIBOR_SWAP_CME_vs_LCH_ICAP displayName "USD-6M LIBOR SWAP-CME vs LCH-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_6M_LIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg displayName "USD-6M LIBOR SWAP-CME vs LCH-ICAP-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_AMERIBOR displayName "USD-AMERIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_AMERIBOR_Average_30D displayName "USD-AMERIBOR Average 30D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_AMERIBOR_Average_90D displayName "USD-AMERIBOR Average 90D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_AMERIBOR_Term displayName "USD-AMERIBOR Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_AMERIBOR_Term_Structure displayName "USD-AMERIBOR Term Structure" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Annual_Swap_Rate_11_00_BGCANTOR displayName "USD-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Annual_Swap_Rate_11_00_TRADITION displayName "USD-Annual Swap Rate-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Annual_Swap_Rate_4_00_TRADITION displayName "USD-Annual Swap Rate-4:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_AXI_Term displayName "USD-AXI Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_BA_H_15 displayName "USD-BA-H.15" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_BA_Reference_Dealers displayName "USD-BA-Reference Dealers" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_BMA_Municipal_Swap_Index displayName "USD-BMA Municipal Swap Index" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_BSBY displayName "USD-BSBY" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_CD_H_15 displayName "USD-CD-H.15" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_CD_Reference_Dealers displayName "USD-CD-Reference Dealers" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_CMS_Reference_Banks displayName "USD-CMS-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_CMS_Reference_Banks_ICAP_SwapPX displayName "USD-CMS-Reference Banks-ICAP SwapPX" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_CMS_Reuters displayName "USD-CMS-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_CMS_Telerate displayName "USD-CMS-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_CMT displayName "USD-CMT" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_CMT_Average_1W displayName "USD-CMT Average 1W" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_CMT_T7051 displayName "USD-CMT-T7051" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_CMT_T7052 displayName "USD-CMT-T7052" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_COF11_FHLBSF displayName "USD-COF11-FHLBSF" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_COF11_Reuters displayName "USD-COF11-Reuters" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_COF11_Telerate displayName "USD-COF11-Telerate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_COFI displayName "USD-COFI" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_CP_H_15 displayName "USD-CP-H.15" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_CP_Money_Market_Yield displayName "USD-CP-Money Market Yield" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_CP_Reference_Dealers displayName "USD-CP-Reference Dealers" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_CRITR displayName "USD-CRITR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Federal_Funds displayName "USD-Federal Funds" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_Federal_Funds_H_15 displayName "USD-Federal Funds-H.15" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Federal_Funds_H_15_Bloomberg displayName "USD-Federal Funds-H.15-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Federal_Funds_H_15_OIS_COMPOUND displayName "USD-Federal Funds-H.15-OIS-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Federal_Funds_OIS_Compound displayName "USD-Federal Funds-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_Federal_Funds_Reference_Dealers displayName "USD-Federal Funds-Reference Dealers" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_FFCB_DISCO displayName "USD-FFCB-DISCO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_FXI_Term displayName "USD-FXI Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_ISDAFIX3_Swap_Rate displayName "USD-ISDAFIX3-Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_ISDAFIX3_Swap_Rate_3_00 displayName "USD-ISDAFIX3-Swap Rate-3:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_ISDA_Swap_Rate displayName "USD-ISDA-Swap Rate" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_ISDA_Swap_Rate_3_00 displayName "USD-ISDA-Swap Rate-3:00" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_LIBOR displayName "USD-LIBOR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_LIBOR_BBA displayName "USD-LIBOR-BBA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_LIBOR_BBA_Bloomberg displayName "USD-LIBOR-BBA-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_LIBOR_ICE_Swap_Rate_11_00 displayName "USD-LIBOR ICE Swap Rate-11:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_LIBOR_ICE_Swap_Rate_15_00 displayName "USD-LIBOR ICE Swap Rate-15:00" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_LIBOR_ISDA displayName "USD-LIBOR-ISDA" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_LIBOR_LIBO displayName "USD-LIBOR-LIBO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_LIBOR_Reference_Banks displayName "USD-LIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Municipal_Swap_Index displayName "USD-Municipal Swap Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_Municipal_Swap_Libor_Ratio_11_00_ICAP displayName "USD-Municipal Swap Libor Ratio-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Municipal_Swap_Rate_11_00_ICAP displayName "USD-Municipal Swap Rate-11:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_OIS_11_00_BGCANTOR displayName "USD-OIS-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_OIS_11_00_LON_ICAP displayName "USD-OIS-11:00-LON-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_OIS_11_00_NY_ICAP displayName "USD-OIS-11:00-NY-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_OIS_11_00_TRADITION displayName "USD-OIS-11:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_OIS_3_00_BGCANTOR displayName "USD-OIS-3:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_OIS_3_00_NY_ICAP displayName "USD-OIS-3:00-NY-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_OIS_4_00_TRADITION displayName "USD-OIS-4:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Overnight_Bank_Funding_Rate displayName "USD-Overnight Bank Funding Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Prime displayName "USD-Prime" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_Prime_H_15 displayName "USD-Prime-H.15" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Prime_Reference_Banks displayName "USD-Prime-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_S_P_Index_High_Grade displayName "USD-S&P Index-High Grade" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SandP_Index_High_Grade displayName "USD-SandP Index High Grade" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_SIBOR_Reference_Banks displayName "USD-SIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SIBOR_SIBO displayName "USD-SIBOR-SIBO" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SIFMA_Municipal_Swap_Index displayName "USD-SIFMA Municipal Swap Index" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR displayName "USD-SOFR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_Average_180D displayName "USD-SOFR Average 180D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_Average_30D displayName "USD-SOFR Average 30D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_Average_90D displayName "USD-SOFR Average 90D" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_CME_Term displayName "USD-SOFR CME Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_COMPOUND displayName "USD-SOFR-COMPOUND" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_Compounded_Index displayName "USD-SOFR Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_ICE_Compounded_Index displayName "USD-SOFR ICE Compounded Index" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_ICE_Compounded_Index_0_Floor displayName "USD-SOFR ICE Compounded Index 0 Floor" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_ICE_Compounded_Index_0_Floor_2D_Lag displayName "USD-SOFR ICE Compounded Index 0 Floor 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_ICE_Compounded_Index_0_Floor_5D_Lag displayName "USD-SOFR ICE Compounded Index 0 Floor 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_ICE_Compounded_Index_2D_Lag displayName "USD-SOFR ICE Compounded Index 2D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_ICE_Compounded_Index_5D_Lag displayName "USD-SOFR ICE Compounded Index 5D Lag" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_ICE_Swap_Rate displayName "USD-SOFR ICE Swap Rate" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix and 2006 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_SOFR_ICE_Term displayName "USD-SOFR ICE Term" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_SOFR_OIS_Compound displayName "USD-SOFR-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_Swap_Rate_BCMP1 displayName "USD Swap Rate-BCMP1" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_TBILL_H_15 displayName "USD-TBILL-H.15" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_TBILL_H_15_Bloomberg displayName "USD-TBILL-H.15-Bloomberg" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_TBILL_Secondary_Market displayName "USD-TBILL-Secondary Market" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_TBILL_Secondary_Market_Bond_Equivalent_Yield displayName "USD-TBILL Secondary Market-Bond Equivalent Yield" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + USD_TIBOR_ISDC displayName "USD-TIBOR-ISDC" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_TIBOR_Reference_Banks displayName "USD-TIBOR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Treasury_19901_3_00_ICAP displayName "USD-Treasury-19901-3:00-ICAP" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Treasury_Rate_BCMP1 displayName "USD Treasury Rate-BCMP1" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Treasury_Rate_ICAP_BrokerTec displayName "USD-Treasury Rate-ICAP BrokerTec" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Treasury_Rate_SwapMarker100 displayName "USD-Treasury Rate-SwapMarker100" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Treasury_Rate_SwapMarker99 displayName "USD-Treasury Rate-SwapMarker99" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Treasury_Rate_T19901 displayName "USD-Treasury Rate-T19901" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + USD_Treasury_Rate_T500 displayName "USD-Treasury Rate-T500" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + VND_Semi_Annual_Swap_Rate_11_00_BGCANTOR displayName "VND-Semi-Annual Swap Rate-11:00-BGCANTOR" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + VND_Semi_Annual_Swap_Rate_Reference_Banks displayName "VND-Semi-Annual Swap Rate-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ZAR_DEPOSIT_Reference_Banks displayName "ZAR-DEPOSIT-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ZAR_DEPOSIT_SAFEX displayName "ZAR-DEPOSIT-SAFEX" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ZAR_JIBAR displayName "ZAR-JIBAR" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + ZAR_JIBAR_Reference_Banks displayName "ZAR-JIBAR-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ZAR_JIBAR_SAFEX displayName "ZAR-JIBAR-SAFEX" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ZAR_Prime_Average_1 displayName "ZAR-Prime Average" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + ZAR_PRIME_AVERAGE displayName "ZAR-PRIME-AVERAGE" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ZAR_PRIME_AVERAGE_Reference_Banks displayName "ZAR-PRIME-AVERAGE-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ZAR_Quarterly_Swap_Rate_1_00_TRADITION displayName "ZAR-Quarterly Swap Rate-1:00-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ZAR_Quarterly_Swap_Rate_5_30_TRADITION displayName "ZAR-Quarterly Swap Rate-5:30-TRADITION" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ZAR_Quarterly_Swap_Rate_TRADITION_Reference_Banks displayName "ZAR-Quarterly Swap Rate-TRADITION-Reference Banks" <"Per 2006 ISDA Definitions or Annex to the 2000 ISDA Definitions, Section 7.1 Rate Options, as amended and supplemented through the date on which parties enter into the relevant transaction."> + ZAR_ZARONIA displayName "ZAR-ZARONIA" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> + ZAR_ZARONIA_OIS_Compound displayName "ZAR-ZARONIA-OIS Compound" <"Per 2021 ISDA Interest Rate Derivatives Definitions Floating Rate Matrix, as amended through the date on which parties enter into the relevant transaction."> enum InflationRateIndexEnum: <"The enumerated values to specify the list of inflation rate indices."> [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/inflation-index-description"] - AUD_CPI displayName "AUD-CPI" <"Australia: AUD - Non-revised Consumer Price Index (CPI)"> - AUS_CPI displayName "AUS-CPI" <"Austria: AUS - Non-revised Consumer Price Index (CPI)"> - AUS_HICP displayName "AUS-HICP" <"Austria: AUS - Non-revised Harmonised Indices of Consumer Prices (HICP)"> - BLG_CPI_GI displayName "BLG-CPI-GI" <"Belgium: BLG - Non-revised Consumer Price Index - General Index (CPI)"> - BLG_CPI_HI displayName "BLG-CPI-HI" <"Belgium: BLG - Non-revised Consumer Price Index - Health Index (CPI)"> - BLG_HICP displayName "BLG-HICP" <"Belgium: BLG - Non-revised Harmonised Consumer Price Index (HICP)"> - BRL_IGPM displayName "BRL-IGPM" <"Brazil: BRL - Non-revised Price Index (IGP-M)"> - BRL_IPCA displayName "BRL-IPCA" <"Brazil: BRL - Non-revised Consumer Price Index (IPCA)"> - CAD_CPI displayName "CAD-CPI" <"Canada: CAD - Non-revised Consumer Price Index (CPI)"> - CLP_CPI displayName "CLP-CPI" <"Chile: CLP - Non-revised Consumer Price Index (CPI)"> - CNY_CPI displayName "CNY-CPI" <"China: CNY - Non-revised Consumer Price Index (CPI)"> - CZK_CPI displayName "CZK-CPI" <"Czech Republic: CZK - Non-revised Consumer Price Index (CPI)"> - DEK_CPI displayName "DEK-CPI" <"Denmark: DEK - Non-revised Consumer Price Index (CPI)"> - DEK_HICP displayName "DEK-HICP" <"Denmark: DEK - Non-revised Harmonised Consumer Price Index (HICP)"> - DEM_CPI displayName "DEM-CPI" <"Germany: DEM - Non-revised Consumer Price Index (CPI)"> - DEM_CPI_NRW displayName "DEM-CPI-NRW" <"Germany: DEM - Non-revised Consumer Price Index for North Rhine-Westphalia"> - DEM_HICP displayName "DEM-HICP" <"Germany: DEM - Non-revised Harmonised Consumer Price Index (HICP)"> - ESP_CPI displayName "ESP-CPI" <"Spain: ESP - National-Non-revised Consumer Price Index (CPI)"> - ESP_HICP displayName "ESP-HICP" <"Spain: ESP - Harmonised-Non-revised Consumer Price Index (HICP)"> - ESP_R_CPI displayName "ESP-R-CPI" <"Spain: ESP - National-Revised Consumer Price Index (CPI)."> - ESP_R_HICP displayName "ESP-R-HICP" <"Spain: ESP - Harmonised-Revised Consumer Price Index (HICP)"> - EUR_AI_CPI displayName "EUR-AI-CPI" <"European Union: EUR - All Items-Non-revised Consumer Price Index"> - EUR_AI_R_CPI displayName "EUR-AI-R-CPI" <"European Union: EUR - All Items-Revised Consumer Price Index"> - EUR_EXT_CPI displayName "EUR-EXT-CPI" <"European Union: EUR - Excluding Tobacco-Non-revised Consumer Price Index"> - EUR_EXT_R_CPI displayName "EUR-EXT-R-CPI" <"European Union: EUR - Excluding Tobacco-Revised Consumer Price Index"> - FIN_CPI displayName "FIN-CPI" <"Finland: FIN - Non-revised Consumer Price Index (CPI)"> - FIN_HICP displayName "FIN-HICP" <"Finland: FIN - Harmonised-Non-revised Consumer Price Index (HICP)"> - FRC_EXT_CPI displayName "FRC-EXT-CPI" <"France: FRC - Excluding Tobacco-Non-Revised Consumer Price Index"> - FRC_HICP displayName "FRC-HICP" <"France: FRC - Harmonised-Non-revised Consumer Price Index (HICP)"> - GRD_CPI displayName "GRD-CPI" <"Greece: GRD - Non-revised Consumer Price Index (CPI)"> - GRD_HICP displayName "GRD-HICP" <"Greece: GRD - Harmonised-Non-revised Consumer Price Index (HICP)"> - HKD_CPI displayName "HKD-CPI" <"Hong Kong: HKD - Non-revised Consumer Price Index (CPI)"> - HUF_CPI displayName "HUF-CPI" <"Hungary: HUF - Non-revised Consumer Price Index (CPI)"> - IDR_CPI displayName "IDR-CPI" <"Indonesia: IDR - Non-revised Consumer Price Index (CPI)"> - ILS_CPI displayName "ILS-CPI" <"Israel: ILS - Non-revised Consumer Price Index (CPI)"> - IRL_CPI displayName "IRL-CPI" <"Ireland: IRL - Non-revised Consumer Price Index (CPI)"> - IRL_HICP displayName "IRL-HICP" <"Ireland: IRL - Harmonised-Non-revised Consumer Price Index (HICP)"> - ISK_CPI displayName "ISK-CPI" <"Iceland: ISK - Non-revised Consumer Price Index (CPI)"> - ISK_HICP displayName "ISK-HICP" <"Iceland: ISK - Harmonised Consumer Price Index (HICP)"> - ITL_BC_EXT_CPI displayName "ITL-BC-EXT-CPI" <"Italy: ITL - Inflation for Blue Collar Workers and Employees-Excluding Tobacco Consumer Price Index"> - ITL_BC_INT_CPI displayName "ITL-BC-INT-CPI" <"Italy: ITL - Inflation for Blue Collar Workers and Employees-Including Tobacco Consumer Price Index"> - ITL_HICP displayName "ITL-HICP" <"Italy: ITL - Non-revised Harmonised Consumer Price Index (HICP)"> - ITL_WC_EXT_CPI displayName "ITL-WC-EXT-CPI" <"Italy: ITL - Whole Community - Excluding Tobacco Consumer Price Index"> - ITL_WC_INT_CPI displayName "ITL-WC-INT-CPI" <"Italy: ITL - Whole Community - Including Tobacco Consumer Price Index"> - JPY_CPI_EXF displayName "JPY-CPI-EXF" <"Japan: JPY - Non-revised Consumer Price Index Nationwide General Excluding Fresh Food (CPI)"> - KRW_CPI displayName "KRW-CPI" <"South Korea: KRW - Non-revised Consumer Price Index (CPI)"> - LUX_CPI displayName "LUX-CPI" <"Luxembourg: LUX - Non-revised Consumer Price Index (CPI)"> - LUX_HICP displayName "LUX-HICP" <"Luxembourg: LUX - Harmonised-Non-revised Consumer Price Index (HICP)"> - MXN_CPI displayName "MXN-CPI" <"Mexico: MXN - Non-revised Consumer Price Index (CPI)"> - MXN_UDI displayName "MXN-UDI" <"Mexico: MXN - Unidad de Inversion Index (UDI)"> - MYR_CPI displayName "MYR-CPI" <"Malaysia: MYR - Non-revised Consumer Price Index (CPI)"> - NLG_CPI displayName "NLG-CPI" <"Netherlands: NLG - Non-revised Consumer Price Index (CPI)"> - NLG_HICP displayName "NLG-HICP" <"Netherlands: NLG - Harmonised-Non-revised Consumer Price Index (HICP)"> - NOK_CPI displayName "NOK-CPI" <"Norway: NOK - Non-revised Consumer Price Index (CPI)"> - NZD_CPI displayName "NZD-CPI" <"New Zealand: NZD - Non-revised Consumer Price Index (CPI)"> - PER_CPI displayName "PER-CPI" <"Peru: PER - Non-revised Consumer Price Index (CPI)"> - PLN_CPI displayName "PLN-CPI" <"Poland: PLN - Non-Revised Consumer Price Index (CPI)"> - POR_CPI displayName "POR-CPI" <"Portugal: POR - Non-revised Consumer Price Index (CPI)"> - POR_HICP displayName "POR-HICP" <"Portugal: POR - Harmonised-Non-revised Consumer Price Index (HICP)"> - RUB_CPI displayName "RUB-CPI" <"Russia: RUB - Non-revised Consumer Price Index (CPI)"> - SEK_CPI displayName "SEK-CPI" <"Sweden: SEK - Non-revised Consumer Price Index (CPI)"> - SGD_CPI displayName "SGD-CPI" <"Singapore: SGD - Non-revised Consumer Price Index (CPI)"> - SWF_CPI displayName "SWF-CPI" <"Switzerland: SWF - Non-revised Consumer Price Index (CPI)"> - TRY_CPI displayName "TRY-CPI" <"Turkey: TRY - Non-revised Consumer Price Index (CPI)"> - TWD_CPI displayName "TWD-CPI" <"Taiwan: TWD - Non-revised Consumer Price Index (CPI)"> - UK_CPIH displayName "UK-CPIH" <"United Kingdom: GBP - Non-revised Consumer Prices Index including Housing (UKCPIH)"> - UK_HICP displayName "UK-HICP" <"United Kingdom: GBP - Harmonised-Non-revised Consumer Price Index (HICP)"> - UK_RPI displayName "UK-RPI" <"United Kingdom: GBP - Non-revised Retail Price Index (UKRPI)"> - UK_RPIX displayName "UK-RPIX" <"United Kingdom: GBP - Non-revised Retail Price Index Excluding Mortgage Interest Payments (UKRPIX)"> - USA_CPI_U displayName "USA-CPI-U" <"United States: USA - Non-revised Consumer Price Index - Urban (CPI-U)"> - ZAR_CPI displayName "ZAR-CPI" <"South Africa: ZAR - Non-revised Consumer Price Index (CPI)"> - ZAR_CPIX displayName "ZAR-CPIX" <"South Africa: ZAR - Non-revised Consumer Price Index Excluding Mortgages (CPIX)"> + AUD_CPI displayName "AUD-CPI" <"Australia: AUD - Non-revised Consumer Price Index (CPI)"> + AUS_CPI displayName "AUS-CPI" <"Austria: AUS - Non-revised Consumer Price Index (CPI)"> + AUS_HICP displayName "AUS-HICP" <"Austria: AUS - Non-revised Harmonised Indices of Consumer Prices (HICP)"> + BLG_CPI_GI displayName "BLG-CPI-GI" <"Belgium: BLG - Non-revised Consumer Price Index - General Index (CPI)"> + BLG_CPI_HI displayName "BLG-CPI-HI" <"Belgium: BLG - Non-revised Consumer Price Index - Health Index (CPI)"> + BLG_HICP displayName "BLG-HICP" <"Belgium: BLG - Non-revised Harmonised Consumer Price Index (HICP)"> + BRL_IGPM displayName "BRL-IGPM" <"Brazil: BRL - Non-revised Price Index (IGP-M)"> + BRL_IPCA displayName "BRL-IPCA" <"Brazil: BRL - Non-revised Consumer Price Index (IPCA)"> + CAD_CPI displayName "CAD-CPI" <"Canada: CAD - Non-revised Consumer Price Index (CPI)"> + CLP_CPI displayName "CLP-CPI" <"Chile: CLP - Non-revised Consumer Price Index (CPI)"> + CNY_CPI displayName "CNY-CPI" <"China: CNY - Non-revised Consumer Price Index (CPI)"> + CZK_CPI displayName "CZK-CPI" <"Czech Republic: CZK - Non-revised Consumer Price Index (CPI)"> + DEK_CPI displayName "DEK-CPI" <"Denmark: DEK - Non-revised Consumer Price Index (CPI)"> + DEK_HICP displayName "DEK-HICP" <"Denmark: DEK - Non-revised Harmonised Consumer Price Index (HICP)"> + DEM_CPI displayName "DEM-CPI" <"Germany: DEM - Non-revised Consumer Price Index (CPI)"> + DEM_CPI_NRW displayName "DEM-CPI-NRW" <"Germany: DEM - Non-revised Consumer Price Index for North Rhine-Westphalia"> + DEM_HICP displayName "DEM-HICP" <"Germany: DEM - Non-revised Harmonised Consumer Price Index (HICP)"> + ESP_CPI displayName "ESP-CPI" <"Spain: ESP - National-Non-revised Consumer Price Index (CPI)"> + ESP_HICP displayName "ESP-HICP" <"Spain: ESP - Harmonised-Non-revised Consumer Price Index (HICP)"> + ESP_R_CPI displayName "ESP-R-CPI" <"Spain: ESP - National-Revised Consumer Price Index (CPI)."> + ESP_R_HICP displayName "ESP-R-HICP" <"Spain: ESP - Harmonised-Revised Consumer Price Index (HICP)"> + EUR_AI_CPI displayName "EUR-AI-CPI" <"European Union: EUR - All Items-Non-revised Consumer Price Index"> + EUR_AI_R_CPI displayName "EUR-AI-R-CPI" <"European Union: EUR - All Items-Revised Consumer Price Index"> + EUR_EXT_CPI displayName "EUR-EXT-CPI" <"European Union: EUR - Excluding Tobacco-Non-revised Consumer Price Index"> + EUR_EXT_R_CPI displayName "EUR-EXT-R-CPI" <"European Union: EUR - Excluding Tobacco-Revised Consumer Price Index"> + FIN_CPI displayName "FIN-CPI" <"Finland: FIN - Non-revised Consumer Price Index (CPI)"> + FIN_HICP displayName "FIN-HICP" <"Finland: FIN - Harmonised-Non-revised Consumer Price Index (HICP)"> + FRC_EXT_CPI displayName "FRC-EXT-CPI" <"France: FRC - Excluding Tobacco-Non-Revised Consumer Price Index"> + FRC_HICP displayName "FRC-HICP" <"France: FRC - Harmonised-Non-revised Consumer Price Index (HICP)"> + GRD_CPI displayName "GRD-CPI" <"Greece: GRD - Non-revised Consumer Price Index (CPI)"> + GRD_HICP displayName "GRD-HICP" <"Greece: GRD - Harmonised-Non-revised Consumer Price Index (HICP)"> + HKD_CPI displayName "HKD-CPI" <"Hong Kong: HKD - Non-revised Consumer Price Index (CPI)"> + HUF_CPI displayName "HUF-CPI" <"Hungary: HUF - Non-revised Consumer Price Index (CPI)"> + IDR_CPI displayName "IDR-CPI" <"Indonesia: IDR - Non-revised Consumer Price Index (CPI)"> + ILS_CPI displayName "ILS-CPI" <"Israel: ILS - Non-revised Consumer Price Index (CPI)"> + IRL_CPI displayName "IRL-CPI" <"Ireland: IRL - Non-revised Consumer Price Index (CPI)"> + IRL_HICP displayName "IRL-HICP" <"Ireland: IRL - Harmonised-Non-revised Consumer Price Index (HICP)"> + ISK_CPI displayName "ISK-CPI" <"Iceland: ISK - Non-revised Consumer Price Index (CPI)"> + ISK_HICP displayName "ISK-HICP" <"Iceland: ISK - Harmonised Consumer Price Index (HICP)"> + ITL_BC_EXT_CPI displayName "ITL-BC-EXT-CPI" <"Italy: ITL - Inflation for Blue Collar Workers and Employees-Excluding Tobacco Consumer Price Index"> + ITL_BC_INT_CPI displayName "ITL-BC-INT-CPI" <"Italy: ITL - Inflation for Blue Collar Workers and Employees-Including Tobacco Consumer Price Index"> + ITL_HICP displayName "ITL-HICP" <"Italy: ITL - Non-revised Harmonised Consumer Price Index (HICP)"> + ITL_WC_EXT_CPI displayName "ITL-WC-EXT-CPI" <"Italy: ITL - Whole Community - Excluding Tobacco Consumer Price Index"> + ITL_WC_INT_CPI displayName "ITL-WC-INT-CPI" <"Italy: ITL - Whole Community - Including Tobacco Consumer Price Index"> + JPY_CPI_EXF displayName "JPY-CPI-EXF" <"Japan: JPY - Non-revised Consumer Price Index Nationwide General Excluding Fresh Food (CPI)"> + KRW_CPI displayName "KRW-CPI" <"South Korea: KRW - Non-revised Consumer Price Index (CPI)"> + LUX_CPI displayName "LUX-CPI" <"Luxembourg: LUX - Non-revised Consumer Price Index (CPI)"> + LUX_HICP displayName "LUX-HICP" <"Luxembourg: LUX - Harmonised-Non-revised Consumer Price Index (HICP)"> + MXN_CPI displayName "MXN-CPI" <"Mexico: MXN - Non-revised Consumer Price Index (CPI)"> + MXN_UDI displayName "MXN-UDI" <"Mexico: MXN - Unidad de Inversion Index (UDI)"> + MYR_CPI displayName "MYR-CPI" <"Malaysia: MYR - Non-revised Consumer Price Index (CPI)"> + NLG_CPI displayName "NLG-CPI" <"Netherlands: NLG - Non-revised Consumer Price Index (CPI)"> + NLG_HICP displayName "NLG-HICP" <"Netherlands: NLG - Harmonised-Non-revised Consumer Price Index (HICP)"> + NOK_CPI displayName "NOK-CPI" <"Norway: NOK - Non-revised Consumer Price Index (CPI)"> + NZD_CPI displayName "NZD-CPI" <"New Zealand: NZD - Non-revised Consumer Price Index (CPI)"> + PER_CPI displayName "PER-CPI" <"Peru: PER - Non-revised Consumer Price Index (CPI)"> + PLN_CPI displayName "PLN-CPI" <"Poland: PLN - Non-Revised Consumer Price Index (CPI)"> + POR_CPI displayName "POR-CPI" <"Portugal: POR - Non-revised Consumer Price Index (CPI)"> + POR_HICP displayName "POR-HICP" <"Portugal: POR - Harmonised-Non-revised Consumer Price Index (HICP)"> + RUB_CPI displayName "RUB-CPI" <"Russia: RUB - Non-revised Consumer Price Index (CPI)"> + SEK_CPI displayName "SEK-CPI" <"Sweden: SEK - Non-revised Consumer Price Index (CPI)"> + SGD_CPI displayName "SGD-CPI" <"Singapore: SGD - Non-revised Consumer Price Index (CPI)"> + SWF_CPI displayName "SWF-CPI" <"Switzerland: SWF - Non-revised Consumer Price Index (CPI)"> + TRY_CPI displayName "TRY-CPI" <"Turkey: TRY - Non-revised Consumer Price Index (CPI)"> + TWD_CPI displayName "TWD-CPI" <"Taiwan: TWD - Non-revised Consumer Price Index (CPI)"> + UK_CPIH displayName "UK-CPIH" <"United Kingdom: GBP - Non-revised Consumer Prices Index including Housing (UKCPIH)"> + UK_HICP displayName "UK-HICP" <"United Kingdom: GBP - Harmonised-Non-revised Consumer Price Index (HICP)"> + UK_RPI displayName "UK-RPI" <"United Kingdom: GBP - Non-revised Retail Price Index (UKRPI)"> + UK_RPIX displayName "UK-RPIX" <"United Kingdom: GBP - Non-revised Retail Price Index Excluding Mortgage Interest Payments (UKRPIX)"> + USA_CPI_U displayName "USA-CPI-U" <"United States: USA - Non-revised Consumer Price Index - Urban (CPI-U)"> + ZAR_CPI displayName "ZAR-CPI" <"South Africa: ZAR - Non-revised Consumer Price Index (CPI)"> + ZAR_CPIX displayName "ZAR-CPIX" <"South Africa: ZAR - Non-revised Consumer Price Index Excluding Mortgages (CPIX)"> diff --git a/rosetta-source/src/main/rosetta/base-staticdata-desc.rosetta b/rosetta-source/src/main/rosetta/base-staticdata-desc.rosetta index bff3b5b97d..6d01008bc2 100644 --- a/rosetta-source/src/main/rosetta/base-staticdata-desc.rosetta +++ b/rosetta-source/src/main/rosetta/base-staticdata-desc.rosetta @@ -1,2 +1,2 @@ namespace cdm.base.staticdata : <"Basic static data concepts: e.g. party, asset identifiers etc."> -version "${project.version}" \ No newline at end of file +version "${project.version}" diff --git a/rosetta-source/src/main/rosetta/base-staticdata-identifier-enum.rosetta b/rosetta-source/src/main/rosetta/base-staticdata-identifier-enum.rosetta index 51220fd145..e21ab49f16 100755 --- a/rosetta-source/src/main/rosetta/base-staticdata-identifier-enum.rosetta +++ b/rosetta-source/src/main/rosetta/base-staticdata-identifier-enum.rosetta @@ -13,4 +13,4 @@ enum CommodityLocationIdentifierTypeEnum: <"Defines the enumerated values to spe enum TradeIdentifierTypeEnum: <"Defines the enumerated values to specify the nature of a trade identifier."> UniqueTransactionIdentifier - UniqueSwapIdentifier \ No newline at end of file + UniqueSwapIdentifier diff --git a/rosetta-source/src/main/rosetta/base-staticdata-identifier-type.rosetta b/rosetta-source/src/main/rosetta/base-staticdata-identifier-type.rosetta index db13a5ed3e..6f9042cc91 100755 --- a/rosetta-source/src/main/rosetta/base-staticdata-identifier-type.rosetta +++ b/rosetta-source/src/main/rosetta/base-staticdata-identifier-type.rosetta @@ -7,35 +7,35 @@ import cdm.observable.asset.* type AssignedIdentifier: <"A class to specify the identifier value and its associated version."> - identifier string (1..1) <"The identifier value."> - [metadata scheme] - version int (0..1) <"The identifier version, which is specified as an integer and is meant to be incremented each time the transaction terms (whether contract or event) change. This version is made option to support the use case where the identifier is referenced without the version. The constraint that a contract and a lifecycle event need to have an associated version is enforced through data rules."> + identifier string (1..1) <"The identifier value."> + [metadata scheme] + version int (0..1) <"The identifier version, which is specified as an integer and is meant to be incremented each time the transaction terms (whether contract or event) change. This version is made option to support the use case where the identifier is referenced without the version. The constraint that a contract and a lifecycle event need to have an associated version is enforced through data rules."> type Identifier: <"A class to specify a generic identifier, applicable to CDM artefacts such as executions, contracts, lifecycle events and legal documents. An issuer can be associated with the actual identifier value as a way to properly qualify it."> - [metadata key] + [metadata key] [docReference ICMA GMRA namingConvention "Identifier" provision "As referenced in GMRA paragraph 3(b) Securities may be identified using identifying numbers such as CUSIP or ISIN"] - issuerReference Party (0..1) <"The identifier issuer, when specified by reference to a party specified as part of the transaction."> - [metadata reference] - issuer string (0..1) <"The identifier issuer, when specified explicitly alongside the identifier value (instead of being specified by reference to a party)."> - [metadata scheme] - assignedIdentifier AssignedIdentifier (1..*) <"The identifier value. This level of indirection between the issuer and the identifier and its version provides the ability to associate multiple identifiers to one issuer, consistently with the FpML PartyTradeIdentifier."> + issuerReference Party (0..1) <"The identifier issuer, when specified by reference to a party specified as part of the transaction."> + [metadata reference] + issuer string (0..1) <"The identifier issuer, when specified explicitly alongside the identifier value (instead of being specified by reference to a party)."> + [metadata scheme] + assignedIdentifier AssignedIdentifier (1..*) <"The identifier value. This level of indirection between the issuer and the identifier and its version provides the ability to associate multiple identifiers to one issuer, consistently with the FpML PartyTradeIdentifier."> - condition IssuerChoice: <"The identifier issuer is specified either explicitly or by reference to one of the parties."> - required choice issuerReference, issuer + condition IssuerChoice: <"The identifier issuer is specified either explicitly or by reference to one of the parties."> + required choice issuerReference, issuer type IdentifiedList: <"Attaches an identifier to a collection of objects, when those objects themselves can each be represented by an identifier. One use case is the representation of package transactions, where each component is a separate trade with its own identifier, and those trades are linked together as a package with its own identifier. The data type has been named generically rather than referring to 'packages' as it may have a number of other uses."> - [metadata key] + [metadata key] - listId Identifier (1..1) <"The identifier for the list. In the case of a package transaction, this would be the package identifier. This attribute is mandatory to allow the list itself to be identified."> - componentId Identifier (2..*) <"Identifiers for each component of the list. Since the data type is used to link multiple identified objects together, at least 2 components are required in the list. Creating an identified list with only 1 identified component has been deemed unnecessary, because it would just create a redundant identifier."> - price Price (0..1) <"The price of the package."> + listId Identifier (1..1) <"The identifier for the list. In the case of a package transaction, this would be the package identifier. This attribute is mandatory to allow the list itself to be identified."> + componentId Identifier (2..*) <"Identifiers for each component of the list. Since the data type is used to link multiple identified objects together, at least 2 components are required in the list. Creating an identified list with only 1 identified component has been deemed unnecessary, because it would just create a redundant identifier."> + price Price (0..1) <"The price of the package."> - type LocationIdentifier extends Identifier: <"Specifies a location identifier. An issuer and an identifier type can be associated with the actual identifier value as a way to properly qualify it."> +type LocationIdentifier extends Identifier: <"Specifies a location identifier. An issuer and an identifier type can be associated with the actual identifier value as a way to properly qualify it."> -locationIdentifierType CommodityLocationIdentifierTypeEnum (0..1) <"Specifies the nature of a location identifier."> - -condition IdentifierType: <"The element specifying the nature of a location identifier can only be applied to a single identifier."> - if locationIdentifierType exists then assignedIdentifier count = 1 + locationIdentifierType CommodityLocationIdentifierTypeEnum (0..1) <"Specifies the nature of a location identifier."> + condition IdentifierType: <"The element specifying the nature of a location identifier can only be applied to a single identifier."> + if locationIdentifierType exists + then assignedIdentifier count = 1 diff --git a/rosetta-source/src/main/rosetta/base-staticdata-party-enum.rosetta b/rosetta-source/src/main/rosetta/base-staticdata-party-enum.rosetta index 995f763487..31bbdcce7c 100755 --- a/rosetta-source/src/main/rosetta/base-staticdata-party-enum.rosetta +++ b/rosetta-source/src/main/rosetta/base-staticdata-party-enum.rosetta @@ -4,136 +4,136 @@ version "${project.version}" import cdm.mapping.config.* enum CounterpartyRoleEnum: <"Defines the enumerated values to specify the two counterparties to the transaction."> - Party1 - Party2 + Party1 + Party2 enum EntityTypeEnum: <"The enumerated values to specify the reference entity types corresponding to a list of types defined in the ISDA First to Default documentation."> - Asian <"Entity Type of Asian."> - AustralianAndNewZealand <"Entity Type of Australian and New Zealand."> - EuropeanEmergingMarkets <"Entity Type of European Emerging Markets."> - Japanese <"Entity Type of Japanese."> - NorthAmericanHighYield <"Entity Type of North American High Yield."> - NorthAmericanInsurance <"Entity Type of North American Insurance."> - NorthAmericanInvestmentGrade <"Entity Type of North American Investment Grade."> - Singaporean <"Entity Type of Singaporean."> - WesternEuropean <"Entity Type of Western European."> - WesternEuropeanInsurance <"Entity Type of Western European Insurance."> + Asian <"Entity Type of Asian."> + AustralianAndNewZealand <"Entity Type of Australian and New Zealand."> + EuropeanEmergingMarkets <"Entity Type of European Emerging Markets."> + Japanese <"Entity Type of Japanese."> + NorthAmericanHighYield <"Entity Type of North American High Yield."> + NorthAmericanInsurance <"Entity Type of North American Insurance."> + NorthAmericanInvestmentGrade <"Entity Type of North American Investment Grade."> + Singaporean <"Entity Type of Singaporean."> + WesternEuropean <"Entity Type of Western European."> + WesternEuropeanInsurance <"Entity Type of Western European Insurance."> enum PayerReceiverEnum: <"The enumerated values to specify an interest rate stream payer or receiver party."> - Payer <"The party identified as the stream payer."> - Receiver <"The party identified as the stream receiver."> + Payer <"The party identified as the stream payer."> + Receiver <"The party identified as the stream receiver."> enum AccountTypeEnum: <"The enumeration values to qualify the type of account."> - AggregateClient <"Aggregate client account, as defined under ESMA MiFIR."> - Client <"The account contains trading activity or positions that belong to a client of the firm that opened the account."> - House <"The account contains proprietary trading activity or positions, belonging to the firm that is the owner of the account."> + AggregateClient <"Aggregate client account, as defined under ESMA MiFIR."> + Client <"The account contains trading activity or positions that belong to a client of the firm that opened the account."> + House <"The account contains proprietary trading activity or positions, belonging to the firm that is the owner of the account."> enum NaturalPersonRoleEnum: <"The enumerated values for the natural person's role."> - Broker <"The person who arranged with a client to execute the trade."> - Buyer <"Acquirer of the legal title to the financial instrument."> - DecisionMaker <"The party or person with legal responsibility for authorization of the execution of the transaction."> - ExecutionWithinFirm <"Person within the firm who is responsible for execution of the transaction."> - InvestmentDecisionMaker <"Person who is responsible for making the investment decision."> - Seller <"Seller of the legal title to the financial instrument."> - Trader <"The person who executed the trade."> + Broker <"The person who arranged with a client to execute the trade."> + Buyer <"Acquirer of the legal title to the financial instrument."> + DecisionMaker <"The party or person with legal responsibility for authorization of the execution of the transaction."> + ExecutionWithinFirm <"Person within the firm who is responsible for execution of the transaction."> + InvestmentDecisionMaker <"Person who is responsible for making the investment decision."> + Seller <"Seller of the legal title to the financial instrument."> + Trader <"The person who executed the trade."> enum PersonIdentifierTypeEnum: <"The enumeration values associated with person identifier sources."> - ARNU <"Alien Registration Number, number assigned by a social security agency to identify a non-resident person."> - [synonym ISO20022 value "ARNU"] - CCPT <"Passport Number, number assigned by an authority to identify the passport number of a person."> - [synonym ISO20022 value "CCPT"] - CUST <"Customer Identification Number, number assigned by an issuer to identify a customer."> - [synonym ISO20022 value "CUST"] - DRLC <"Drivers License Number, number assigned by an authority to identify a driver's license."> - [synonym ISO20022 value "DRLC"] - EMPL <"Employee Identification Number, number assigned by a registration authority to an employee."> - [synonym ISO20022 value "EMPL"] - NIDN <"National Identity Number, number assigned by an authority to identify the national identity number of a person.."> - [synonym ISO20022 value "NIDN"] - SOSE <"Social Security Number, number assigned by an authority to identify the social security number of a person."> - [synonym ISO20022 value "SOSE"] - TXID <"Tax Identification Number, number assigned by a tax authority to identify a person."> - [synonym ISO20022 value "TXID"] - NPID <"Natural Person Identifier. To identify the person who is acting as private individual, not as business entity. Used for regulatory reporting."> - PLID <"Privacy Law Identifier. It refers to the DMO Letter No. 17-16, http://www.cftc.gov/idc/groups/public/@lrlettergeneral/documents/letter/17-16.pdf"> + ARNU <"Alien Registration Number, number assigned by a social security agency to identify a non-resident person."> + [synonym ISO20022 value "ARNU"] + CCPT <"Passport Number, number assigned by an authority to identify the passport number of a person."> + [synonym ISO20022 value "CCPT"] + CUST <"Customer Identification Number, number assigned by an issuer to identify a customer."> + [synonym ISO20022 value "CUST"] + DRLC <"Drivers License Number, number assigned by an authority to identify a driver's license."> + [synonym ISO20022 value "DRLC"] + EMPL <"Employee Identification Number, number assigned by a registration authority to an employee."> + [synonym ISO20022 value "EMPL"] + NIDN <"National Identity Number, number assigned by an authority to identify the national identity number of a person.."> + [synonym ISO20022 value "NIDN"] + SOSE <"Social Security Number, number assigned by an authority to identify the social security number of a person."> + [synonym ISO20022 value "SOSE"] + TXID <"Tax Identification Number, number assigned by a tax authority to identify a person."> + [synonym ISO20022 value "TXID"] + NPID <"Natural Person Identifier. To identify the person who is acting as private individual, not as business entity. Used for regulatory reporting."> + PLID <"Privacy Law Identifier. It refers to the DMO Letter No. 17-16, http://www.cftc.gov/idc/groups/public/@lrlettergeneral/documents/letter/17-16.pdf"> enum PartyIdentifierTypeEnum: <"The enumeration values associated with party identifier sources."> - BIC <"The Bank Identifier Code."> - LEI <"The ISO 17442:2012 Legal Entity Identifier."> - MIC <"The ISO 10383 Market Identifier Code (MIC)."> + BIC <"The Bank Identifier Code."> + LEI <"The ISO 17442:2012 Legal Entity Identifier."> + MIC <"The ISO 10383 Market Identifier Code (MIC)."> enum PartyRoleEnum: <"The enumerated values for the party role. The enumerated values go beyond the FpML partyRoleScheme as they also include elements that are part of the FpML Trade, such as the Barrier Determination Agent and the Hedging Party."> - Accountant <"Organization responsible for preparing the accounting for the trade."> - AgentLender <"An agent who lends securities of its principals under stock lending arrangements."> - AllocationAgent <"The organization responsible for supplying the allocations for a trade to be allocated to multiple accounts/organizations."> - ArrangingBroker <"The organization that arranged the trade, i.e. brought together the counterparties. Synonyms/Alternatives: Inter-dealer broker, agent."> - BarrierDeterminationAgent <"The party specified in the related confirmation as Barrier Determination Agent."> + Accountant <"Organization responsible for preparing the accounting for the trade."> + AgentLender <"An agent who lends securities of its principals under stock lending arrangements."> + AllocationAgent <"The organization responsible for supplying the allocations for a trade to be allocated to multiple accounts/organizations."> + ArrangingBroker <"The organization that arranged the trade, i.e. brought together the counterparties. Synonyms/Alternatives: Inter-dealer broker, agent."> + BarrierDeterminationAgent <"The party specified in the related confirmation as Barrier Determination Agent."> BeneficialOwner <"The party that lends out securities under stock lending arrangements via an Agent Lender."> - Beneficiary <"Organization that suffers the economic benefit of the trade. The beneficiary may be distinct from the principal/counterparty - an example occurs when a hedge fund trades via a prime broker; in this case the principal is the prime broker, but the beneficiary is the hedge fund. This can be represented as a payer/receiver account in the name of the hedge fund, but it is also possible to add the party role of 'Beneficiary' at the partyTradeInformation level."> - BookingParty <"The entity for which the organization supporting the trade's processing has booked/recorded the trade. This is used in non-reporting workflows situations in which the trade doesn\'t need to be reported but a firm still wants to specify their own side."> + Beneficiary <"Organization that suffers the economic benefit of the trade. The beneficiary may be distinct from the principal/counterparty - an example occurs when a hedge fund trades via a prime broker; in this case the principal is the prime broker, but the beneficiary is the hedge fund. This can be represented as a payer/receiver account in the name of the hedge fund, but it is also possible to add the party role of 'Beneficiary' at the partyTradeInformation level."> + BookingParty <"The entity for which the organization supporting the trade's processing has booked/recorded the trade. This is used in non-reporting workflows situations in which the trade doesn\'t need to be reported but a firm still wants to specify their own side."> Borrower <"The party that borrows securities under stock lending arrangements."> - Buyer <"Acquirer of the legal title to the financial instrument. In the case of an option, the buyer is the holder of the option. In the case of a swap or forward, the buyer will be determined by industry best practice. This does not refer to an investor or investment manager or other organization on what is typically called the 'Buy side'; for that, see the 'Client' role. Corresponds to 'Buyer' as defined in certain regulations such as ESMA MiFID II/MIFIR RTS 22 field 9."> - BuyerDecisionMaker <"The party or person who, having legal authority to act on behalf of the trade counterparty acting as Buyer as defined in this coding scheme, made the decision to acquire the financial instrument. Corresponds to 'buyer decision maker' as defined in ESMA\'s MIFIR RTS 23 report. This does not refer to the decision maker for what is traditionally called the 'Buy side'; for that, see the 'Client Decision Maker' role."> - Chargor <"The party that provides credit support under English Law."> - ClearingClient <"An organization that clears trades through a clearing house, via a clearing broker (member of the clearing house) who acts as an agent on its behalf. The term 'client' refers to the organization\'s role in the clearing process in relation to its clearing broker, and not whether it is a price maker or taker in the execution process."> - ClearingExceptionParty <"A party to the trade that claims a clearing exception, such as an end-user exception under Dodd-Frank Act provisions."> - ClearingFirm <"Organization that submits the trade to a clearing house on behalf of the principal. Synonyms/alternates: Futures Commission Merchant (FCM), Clearing Broker, Clearing Member Firm. Some implementations use 'Clearing Broker' as synonym."> - ClearingOrganization <"The organization that acts as a central counterparty to clear a derivatives contract. This is used to represent the role of Central Counterparties (CCPs) or Derivative Clearing Organizations (DCOs). Sometimes called 'ClearingService'. Some implementations also use the term 'Clearer'."> - Client <"Client as defined under ESMA MIFIR. This is generally the investor or other client of an investment firm, and is synonymous with the Beneficiary in many circumstances."> - ClientDecisionMaker <"The party or person who, having legal authority to act on behalf of a trade counterparty, made the decision to acquire or sell the financial instrument."> + Buyer <"Acquirer of the legal title to the financial instrument. In the case of an option, the buyer is the holder of the option. In the case of a swap or forward, the buyer will be determined by industry best practice. This does not refer to an investor or investment manager or other organization on what is typically called the 'Buy side'; for that, see the 'Client' role. Corresponds to 'Buyer' as defined in certain regulations such as ESMA MiFID II/MIFIR RTS 22 field 9."> + BuyerDecisionMaker <"The party or person who, having legal authority to act on behalf of the trade counterparty acting as Buyer as defined in this coding scheme, made the decision to acquire the financial instrument. Corresponds to 'buyer decision maker' as defined in ESMA\'s MIFIR RTS 23 report. This does not refer to the decision maker for what is traditionally called the 'Buy side'; for that, see the 'Client Decision Maker' role."> + Chargor <"The party that provides credit support under English Law."> + ClearingClient <"An organization that clears trades through a clearing house, via a clearing broker (member of the clearing house) who acts as an agent on its behalf. The term 'client' refers to the organization\'s role in the clearing process in relation to its clearing broker, and not whether it is a price maker or taker in the execution process."> + ClearingExceptionParty <"A party to the trade that claims a clearing exception, such as an end-user exception under Dodd-Frank Act provisions."> + ClearingFirm <"Organization that submits the trade to a clearing house on behalf of the principal. Synonyms/alternates: Futures Commission Merchant (FCM), Clearing Broker, Clearing Member Firm. Some implementations use 'Clearing Broker' as synonym."> + ClearingOrganization <"The organization that acts as a central counterparty to clear a derivatives contract. This is used to represent the role of Central Counterparties (CCPs) or Derivative Clearing Organizations (DCOs). Sometimes called 'ClearingService'. Some implementations also use the term 'Clearer'."> + Client <"Client as defined under ESMA MIFIR. This is generally the investor or other client of an investment firm, and is synonymous with the Beneficiary in many circumstances."> + ClientDecisionMaker <"The party or person who, having legal authority to act on behalf of a trade counterparty, made the decision to acquire or sell the financial instrument."> CompressionServiceProvider <"The party that acts as a compression service provider, by compressing existing portfolios of trades to reduce notional amount outstanding, the number of transactions or otherwise harmonise the terms, by combining or offsetting trades and commonly to replace the terminated derivatives with new replacement trades."> - ConfirmationPlatform <"Organization serving as a financial intermediary for the purposes of electronic confirmation or providing services for post-processing of transactional data."> - ContractualParty <"A party to a contractual document. If the intended usage relates to the context of the trade lifecycle, more specific annotations have been defined which might be more appropriate."> - CounterPartyAffiliate <"Organization officially attached to the counterparty. e.g. partner, branch, subsidiary."> - CounterPartyUltimateParent <"The topmost entity or organization, within the corporate hierarchy, responsible for the reporting party."> - Counterparty <"An economic counterparty to the trade. Synonym: principal."> - CreditSupportProvider <"Organization that enhances the credit of another organization (similar to guarantor, but may not fully guarantee the obligation)."> - Custodian <"Organization that maintains custody of the asset represented by the trade on behalf of the owner/principal."> - DataSubmitter <"Entity submitting the transaction report to the competent authority."> - DeterminingParty <"The party referenced is specified in the contract confirmation as Determination Party."> - DisputingParty <"Organization that is disputing the trade or transaction."> - DocumentRepository <"A marketplace organization which purpose is to maintain document records. If the intended usage relates to the context of the trade lifecycle, more specific annotations have been defined which might be more appropriate."> - ExecutingBroker <"The (generally sell-side) organization that executed the trade; the price-making party."> - ExecutingEntity <"Entity executing the transaction. If the transaction is executed directly by the reporting party, it will be the reporting party. If it is executed by an execution agent or an affiliated party on behalf of the reporting party, it will be that affiliate or agent."> - ExecutionAgent <"The (generally buy-side) organization that acts to execute trades on behalf of an investor. Typically this is an investment manager or asset manager, and also makes the investment decisions for the investor. If required, a separate InvestmentDecision role can be specified to distinguish that the party making the investment decision is different."> - ExecutionFacility <"The facility, exchange, or market where the trade was executed. Synonym: Swap Execution Facility, Designated Contract Market, Execution Venue."> - Guarantor <"Organization that backs (guarantees) the credit risk of the trade."> - HedgingParty <"The ISDA Hedging Party that is specified in the related confirmation as Hedging, or if no Hedging Party is specified, either party to the contract."> + ConfirmationPlatform <"Organization serving as a financial intermediary for the purposes of electronic confirmation or providing services for post-processing of transactional data."> + ContractualParty <"A party to a contractual document. If the intended usage relates to the context of the trade lifecycle, more specific annotations have been defined which might be more appropriate."> + CounterPartyAffiliate <"Organization officially attached to the counterparty. e.g. partner, branch, subsidiary."> + CounterPartyUltimateParent <"The topmost entity or organization, within the corporate hierarchy, responsible for the reporting party."> + Counterparty <"An economic counterparty to the trade. Synonym: principal."> + CreditSupportProvider <"Organization that enhances the credit of another organization (similar to guarantor, but may not fully guarantee the obligation)."> + Custodian <"Organization that maintains custody of the asset represented by the trade on behalf of the owner/principal."> + DataSubmitter <"Entity submitting the transaction report to the competent authority."> + DeterminingParty <"The party referenced is specified in the contract confirmation as Determination Party."> + DisputingParty <"Organization that is disputing the trade or transaction."> + DocumentRepository <"A marketplace organization which purpose is to maintain document records. If the intended usage relates to the context of the trade lifecycle, more specific annotations have been defined which might be more appropriate."> + ExecutingBroker <"The (generally sell-side) organization that executed the trade; the price-making party."> + ExecutingEntity <"Entity executing the transaction. If the transaction is executed directly by the reporting party, it will be the reporting party. If it is executed by an execution agent or an affiliated party on behalf of the reporting party, it will be that affiliate or agent."> + ExecutionAgent <"The (generally buy-side) organization that acts to execute trades on behalf of an investor. Typically this is an investment manager or asset manager, and also makes the investment decisions for the investor. If required, a separate InvestmentDecision role can be specified to distinguish that the party making the investment decision is different."> + ExecutionFacility <"The facility, exchange, or market where the trade was executed. Synonym: Swap Execution Facility, Designated Contract Market, Execution Venue."> + Guarantor <"Organization that backs (guarantees) the credit risk of the trade."> + HedgingParty <"The ISDA Hedging Party that is specified in the related confirmation as Hedging, or if no Hedging Party is specified, either party to the contract."> Lender <"The party that lends out securities under stock lending arrangements as principal."> - OrderTransmitter <"The entity transmitting the order to the reporting firm. Synonym: Transmitting Firm."> - Pledgor <"The party that provides credit support under New York Law."> - PrimeBroker <"The organization that takes on or took on the credit risk for this trade by stepping in between the two economic parties (without a central counterparty clearing mechanism)."> - PriorTradeRepository <"The trade repository at which the trade was reported previous to the current trade repository."> - PublicationVenue <"The reporting service (whether trade repository, market data service, or exchange/facility/venue data distribution service) that published the report of this trade."> - ReportingParty <"The party with the regulatory responsibility to report this trade."> - ReportingPartyAffiliate <"Organization officially attached to the reporting party e.g. partner, branch, subsidiary."> - ReportingPartyUltimateParent <"The topmost entity or organization, within the corporate hierarchy, responsible for the reporting party."> - Seller <"A counterparty in a trade, which performs in one of the following capacities: 1) it transfers or agrees to transfer in the future an instrument or title to that instrument in exchange for payment, 2) it writes a derivatives instrument such as an option or a swap in which it provides risk protection to the buyer. This does not refer to the broker/dealer or other organization on what is typically called the 'Sell side'; for that, see the 'Executing Broker' role. Corresponds to 'Seller' as defined in certain regulations such as ESMA MiFID II/MIFIR RTS 22 field 16."> - SellerDecisionMaker <"The party or person who, having legal authority to act on behalf of the trade counterparty acting as Seller as defined in this coding scheme, made the decision to sell the financial instrument. Corresponds to 'seller decision maker' as defined in ESMA\'s MIFIR RTS 23 report. This does not refer to the decision maker for what is traditionally called the 'Sell side'; for that, see the 'Trader' person role."> - SecuredParty <"The party that receives credit support under New York or English Law."> - SettlementAgent <"The organization that makes or receives payments on behalf of the given principal party."> - TradeRepository <"An organization that maintains records of the trade for regulatory reporting purposes."> - TradeSource <"The organization that originally supplied the record of the trade. In the context of regulatory reporting, it is the submitter of the trade record to a regulator or TR."> - TradingManager <"The entity responsible for managing the assets/investments of this party. Synonym: Asset Manager, Investment Manager, Trading Advisory."> - TradingPartner <"An entity with which this party trades from time to time, ie. with which it acts as a counterparty on some transactions. This role is used for static reference data, not individual transactions."> - TripartyAgent <"A third party entity that acts as an intermediary and provides automated clearing, settlement, allocation, valuation and reporting services."> - ThirdPartyCustodian <"A third-party providing custody, settlement, segregation and reporting services."> + OrderTransmitter <"The entity transmitting the order to the reporting firm. Synonym: Transmitting Firm."> + Pledgor <"The party that provides credit support under New York Law."> + PrimeBroker <"The organization that takes on or took on the credit risk for this trade by stepping in between the two economic parties (without a central counterparty clearing mechanism)."> + PriorTradeRepository <"The trade repository at which the trade was reported previous to the current trade repository."> + PublicationVenue <"The reporting service (whether trade repository, market data service, or exchange/facility/venue data distribution service) that published the report of this trade."> + ReportingParty <"The party with the regulatory responsibility to report this trade."> + ReportingPartyAffiliate <"Organization officially attached to the reporting party e.g. partner, branch, subsidiary."> + ReportingPartyUltimateParent <"The topmost entity or organization, within the corporate hierarchy, responsible for the reporting party."> + Seller <"A counterparty in a trade, which performs in one of the following capacities: 1) it transfers or agrees to transfer in the future an instrument or title to that instrument in exchange for payment, 2) it writes a derivatives instrument such as an option or a swap in which it provides risk protection to the buyer. This does not refer to the broker/dealer or other organization on what is typically called the 'Sell side'; for that, see the 'Executing Broker' role. Corresponds to 'Seller' as defined in certain regulations such as ESMA MiFID II/MIFIR RTS 22 field 16."> + SellerDecisionMaker <"The party or person who, having legal authority to act on behalf of the trade counterparty acting as Seller as defined in this coding scheme, made the decision to sell the financial instrument. Corresponds to 'seller decision maker' as defined in ESMA\'s MIFIR RTS 23 report. This does not refer to the decision maker for what is traditionally called the 'Sell side'; for that, see the 'Trader' person role."> + SecuredParty <"The party that receives credit support under New York or English Law."> + SettlementAgent <"The organization that makes or receives payments on behalf of the given principal party."> + TradeRepository <"An organization that maintains records of the trade for regulatory reporting purposes."> + TradeSource <"The organization that originally supplied the record of the trade. In the context of regulatory reporting, it is the submitter of the trade record to a regulator or TR."> + TradingManager <"The entity responsible for managing the assets/investments of this party. Synonym: Asset Manager, Investment Manager, Trading Advisory."> + TradingPartner <"An entity with which this party trades from time to time, ie. with which it acts as a counterparty on some transactions. This role is used for static reference data, not individual transactions."> + TripartyAgent <"A third party entity that acts as an intermediary and provides automated clearing, settlement, allocation, valuation and reporting services."> + ThirdPartyCustodian <"A third-party providing custody, settlement, segregation and reporting services."> enum AncillaryRoleEnum: <"Defines the enumerated values to specify the ancillary roles to the transaction. The product is agnostic to the actual parties involved in the transaction, with the party references abstracted away from the product definition and replaced by the AncillaryRoleEnum. The AncillaryRoleEnum can then be positioned in the product and the AncillaryParty type, which is positioned outside of the product definition, allows the AncillaryRoleEnum to be associated with an actual party reference."> - DisruptionEventsDeterminingParty <"Specifies the party which determines additional disruption events."> - ExtraordinaryDividendsParty <"Specifies the party which determines if dividends are extraordinary in relation to normal levels."> - PredeterminedClearingOrganizationParty <"Specifies the clearing organization (CCP, DCO) which the trade should be cleared."> - ExerciseNoticeReceiverPartyManual <"Specifies the party to which notice of a manual exercise should be given."> - ExerciseNoticeReceiverPartyOptionalEarlyTermination <"Specifies the party to which notice of a optional early termination exercise should be given."> - ExerciseNoticeReceiverPartyCancelableProvision <"Specifies the party to which notice of a cancelable provision exercise should be given."> - ExerciseNoticeReceiverPartyExtendibleProvision <"Specifies the party to which notice of a extendible provision exercise should be given."> + DisruptionEventsDeterminingParty <"Specifies the party which determines additional disruption events."> + ExtraordinaryDividendsParty <"Specifies the party which determines if dividends are extraordinary in relation to normal levels."> + PredeterminedClearingOrganizationParty <"Specifies the clearing organization (CCP, DCO) which the trade should be cleared."> + ExerciseNoticeReceiverPartyManual <"Specifies the party to which notice of a manual exercise should be given."> + ExerciseNoticeReceiverPartyOptionalEarlyTermination <"Specifies the party to which notice of a optional early termination exercise should be given."> + ExerciseNoticeReceiverPartyCancelableProvision <"Specifies the party to which notice of a cancelable provision exercise should be given."> + ExerciseNoticeReceiverPartyExtendibleProvision <"Specifies the party to which notice of a extendible provision exercise should be given."> CalculationAgentIndependent <"Specifies the party responsible for performing calculation agent duties as defined in the applicable product definition."> CalculationAgentOptionalEarlyTermination <"Specifies the party responsible for performing calculation agent duties associated with an optional early termination."> CalculationAgentMandatoryEarlyTermination <"Specifies the party responsible for performing calculation agent duties associated with an mandatory early termination."> CalculationAgentFallback <"Specifies the party responsible for deciding the fallback rate."> enum TelephoneTypeEnum: <"The enumerated values to specify the type of telephone number, e.g. work vs. mobile."> - Work <"A number used primarily for work-related calls. Includes home office numbers used primarily for work purposes."> - Mobile <"A number on a mobile telephone that is often or usually used for work-related calls. This type of number can be used for urgent work related business when a work number is not sufficient to contact the person or firm."> - Fax <"A number used primarily for work-related facsimile transmissions."> - Personal <"A number used primarily for non work-related calls. (Normally this type of number would be used only as an emergency backup number, not as a regular course of business)."> + Work <"A number used primarily for work-related calls. Includes home office numbers used primarily for work purposes."> + Mobile <"A number on a mobile telephone that is often or usually used for work-related calls. This type of number can be used for urgent work related business when a work number is not sufficient to contact the person or firm."> + Fax <"A number used primarily for work-related facsimile transmissions."> + Personal <"A number used primarily for non work-related calls. (Normally this type of number would be used only as an emergency backup number, not as a regular course of business)."> diff --git a/rosetta-source/src/main/rosetta/base-staticdata-party-func.rosetta b/rosetta-source/src/main/rosetta/base-staticdata-party-func.rosetta index 38b09fb92b..e52f777179 100755 --- a/rosetta-source/src/main/rosetta/base-staticdata-party-func.rosetta +++ b/rosetta-source/src/main/rosetta/base-staticdata-party-func.rosetta @@ -2,11 +2,11 @@ namespace cdm.base.staticdata.party : <"Basic party concepts: legal entity, natu version "${project.version}" func ExtractCounterpartyByRole: <"Extracts from a list of Counterparty data types, the Counterparty that corresponds to the role i.e. Party1 or Party2."> - inputs: - counterparties Counterparty (1..*) <"The list of counterparties to filter."> - roleEnumToExtract CounterpartyRoleEnum (1..1) <"The counterparty role enum to filter by."> - output: - counterparty Counterparty (0..1) <"The counterparty with specified counterparty role."> + inputs: + counterparties Counterparty (1..*) <"The list of counterparties to filter."> + roleEnumToExtract CounterpartyRoleEnum (1..1) <"The counterparty role enum to filter by."> + output: + counterparty Counterparty (0..1) <"The counterparty with specified counterparty role."> set counterparty: counterparties @@ -14,11 +14,11 @@ func ExtractCounterpartyByRole: <"Extracts from a list of Counterparty data type then only-element func ExtractAncillaryPartyByRole: <"Extracts from a list of AncillaryParty data types, the AncillaryParty that corresponds to the AncillaryRoleEnum."> - inputs: - ancillaryParties AncillaryParty (1..*) <"The list of ancillary parties to filter."> - roleEnumToExtract AncillaryRoleEnum (1..1) <"The ancillary role enum to filter by."> - output: - ancillaryParty AncillaryParty (0..1) <"The ancillary party with specified ancillary role."> + inputs: + ancillaryParties AncillaryParty (1..*) <"The list of ancillary parties to filter."> + roleEnumToExtract AncillaryRoleEnum (1..1) <"The ancillary role enum to filter by."> + output: + ancillaryParty AncillaryParty (0..1) <"The ancillary party with specified ancillary role."> set ancillaryParty: ancillaryParties @@ -26,12 +26,12 @@ func ExtractAncillaryPartyByRole: <"Extracts from a list of AncillaryParty data then only-element func ReplaceParty: <"Removes the old party, and adds the new party."> - inputs: - parties Party (0..*) <"Specifies the list of parties to update."> - oldParty Party (1..1) <"Specifies the party to be removed."> - newParty Party (1..1) <"Specifies the party to be added."> - output: - updatedParties Party (0..*) <"The updated list of parties."> + inputs: + parties Party (0..*) <"Specifies the list of parties to update."> + oldParty Party (1..1) <"Specifies the party to be removed."> + newParty Party (1..1) <"Specifies the party to be added."> + output: + updatedParties Party (0..*) <"The updated list of parties."> add updatedParties: parties @@ -39,23 +39,19 @@ func ReplaceParty: <"Removes the old party, and adds the new party."> then distinct func FilterPartyRole: <"Filters the list of partyRoles based on the provided partyRoleEnum."> - inputs: - partyRoles PartyRole (0..*) - partyRoleEnum PartyRoleEnum (1..1) - output: - filteredPartyRoles PartyRole (0..*) + inputs: + partyRoles PartyRole (0..*) + partyRoleEnum PartyRoleEnum (1..1) + output: + filteredPartyRoles PartyRole (0..*) - add filteredPartyRoles: - partyRoles - filter role = partyRoleEnum + add filteredPartyRoles: partyRoles filter role = partyRoleEnum func FilterRelatedPartyByRole: <"Filters the list of RelatedParty based on the provided partyRoleEnum."> - inputs: - relatedParties RelatedParty (0..*) - partyRoleEnum PartyRoleEnum (1..1) - output: - filteredRelatedParties RelatedParty (0..*) - - add filteredRelatedParties: - relatedParties - filter role = partyRoleEnum + inputs: + relatedParties RelatedParty (0..*) + partyRoleEnum PartyRoleEnum (1..1) + output: + filteredRelatedParties RelatedParty (0..*) + + add filteredRelatedParties: relatedParties filter role = partyRoleEnum diff --git a/rosetta-source/src/main/rosetta/base-staticdata-party-type.rosetta b/rosetta-source/src/main/rosetta/base-staticdata-party-type.rosetta index d1a09e842a..14da627422 100644 --- a/rosetta-source/src/main/rosetta/base-staticdata-party-type.rosetta +++ b/rosetta-source/src/main/rosetta/base-staticdata-party-type.rosetta @@ -6,193 +6,190 @@ import cdm.base.staticdata.identifier.* type Counterparty: <"Defines a counterparty enumerated value, e.g. Party1 or Party2, with an associated party reference. The product is agnostic to the actual parties to the transaction, with the party references abstracted away from the product definition and replaced by the CounterpartyEnum (e.g. values Party1 or Party2). The CounterpartyEnum can then be positioned in the product (e.g. to specify which counterparty is the payer, receiver etc) and this Counterparty type, which is positioned outside of the product definition, allows the CounterpartyEnum to be associated with an actual party reference."> - role CounterpartyRoleEnum (1..1) <"Specifies the CounterpartyEnum, e.g. either Party1 or Party2, that is associated to the partyReference."> - partyReference Party (1..1) <"Specifies the party that is associated to the counterparty."> - [metadata reference] + role CounterpartyRoleEnum (1..1) <"Specifies the CounterpartyEnum, e.g. either Party1 or Party2, that is associated to the partyReference."> + partyReference Party (1..1) <"Specifies the party that is associated to the counterparty."> + [metadata reference] type AncillaryParty: <"Defines an ancillary role enumerated value with an associated party reference. The product is agnostic to the actual parties involved in the transaction, with the party references abstracted away from the product definition and replaced by the AncillaryRoleEnum. The AncillaryRoleEnum can then be positioned in the product and this AncillaryParty type, which is positioned outside of the product definition, allows the AncillaryRoleEnum to be associated with an actual party reference."> - role AncillaryRoleEnum (1..1) <"Specifies the AncillaryRoleEnum that is associated to the party reference. An ancillary party is any involved party that is not one of the two principal parties to the transaction."> - partyReference Party (1..*) <"Specifies the party, or parties, associated to the ancillary role."> - [metadata reference] - onBehalfOf CounterpartyRoleEnum (0..1) <"Optionally specifies the counterparty that the ancillary party is acting on behalf of."> + role AncillaryRoleEnum (1..1) <"Specifies the AncillaryRoleEnum that is associated to the party reference. An ancillary party is any involved party that is not one of the two principal parties to the transaction."> + partyReference Party (1..*) <"Specifies the party, or parties, associated to the ancillary role."> + [metadata reference] + onBehalfOf CounterpartyRoleEnum (0..1) <"Optionally specifies the counterparty that the ancillary party is acting on behalf of."> type BuyerSeller: <"This class corresponds to the FpML BuyerSeller.model construct."> - buyer CounterpartyRoleEnum (1..1) <"Buyer party that can be resolved as one of the two principal parties to the transaction. The party that buys this instrument, i.e. pays for this instrument and receives the rights defined by it. ISDA 2002 Equity Definitions section 1.18: `Buyer` means the party specified as such in the related Confirmation. | ISDA 2006 Definitions article 12.1 (b)(i) relating to a Swaption: 'Buyer' means the party that will, on each Premium Payment Date, pay to Seller the Premium | ISDA 2006 Definitions article 12.1 (b)(ii) relating to Swap Transactions with applicable Early Termination: the party specified as such in the related Confirmation, or the Exercising Party if neither party is specified | ISDA 2006 Definitions article 12.1 (b)(iii) relating to any other Option Transaction: the party specified as such in the related Confirmation. | ISDA 2014 Credit Definition article 1.4: `Buyer` means the Fixed Rate Payer."> - seller CounterpartyRoleEnum (1..1) <"Seller party that can be resolved as one of the two principal parties to the transaction. The party that sells ('writes') this instrument, i.e. that grants the rights defined by this instrument and in return receives a payment for it. ISDA 2002 Equity Definitions section 1.19: `Seller` means the party specified as such in the related Confirmation. | ISDA 2006 Definitions article 12.1 (a)(i) relating to a Swaption: 'Seller' means the party the party specified as such or as writer in the related Confirmation | ISDA 2006 Definitions article 12.1 (a)(ii) relating to Swap Transactions with applicable Early Termination: the party specified as such or as writer in the related Confirmation or, if neither party is specified as such, the Non-exercising Party | ISDA 2006 Definitions article 12.1 (a)(iii) relating to any other Option Transaction: the party specified as such in the related Confirmation. | ISDA 2014 Credit Definition article 1.4: `Seller` means the Floating Rate Payer."> + buyer CounterpartyRoleEnum (1..1) <"Buyer party that can be resolved as one of the two principal parties to the transaction. The party that buys this instrument, i.e. pays for this instrument and receives the rights defined by it. ISDA 2002 Equity Definitions section 1.18: `Buyer` means the party specified as such in the related Confirmation. | ISDA 2006 Definitions article 12.1 (b)(i) relating to a Swaption: 'Buyer' means the party that will, on each Premium Payment Date, pay to Seller the Premium | ISDA 2006 Definitions article 12.1 (b)(ii) relating to Swap Transactions with applicable Early Termination: the party specified as such in the related Confirmation, or the Exercising Party if neither party is specified | ISDA 2006 Definitions article 12.1 (b)(iii) relating to any other Option Transaction: the party specified as such in the related Confirmation. | ISDA 2014 Credit Definition article 1.4: `Buyer` means the Fixed Rate Payer."> + seller CounterpartyRoleEnum (1..1) <"Seller party that can be resolved as one of the two principal parties to the transaction. The party that sells ('writes') this instrument, i.e. that grants the rights defined by this instrument and in return receives a payment for it. ISDA 2002 Equity Definitions section 1.19: `Seller` means the party specified as such in the related Confirmation. | ISDA 2006 Definitions article 12.1 (a)(i) relating to a Swaption: 'Seller' means the party the party specified as such or as writer in the related Confirmation | ISDA 2006 Definitions article 12.1 (a)(ii) relating to Swap Transactions with applicable Early Termination: the party specified as such or as writer in the related Confirmation or, if neither party is specified as such, the Non-exercising Party | ISDA 2006 Definitions article 12.1 (a)(iii) relating to any other Option Transaction: the party specified as such in the related Confirmation. | ISDA 2014 Credit Definition article 1.4: `Seller` means the Floating Rate Payer."> type PayerReceiver: <"Specifies the parties responsible for making and receiving payments defined by this structure."> - payer CounterpartyRoleEnum (1..1) <"Specifies the counterparty responsible for making the payments defined by this structure. The party is one of the two principal parties to the transaction."> - [docReference ICMA GMRA namingConvention "Seller" - provision "As defined in the GMRA, paragraph 1(a). The Seller transfers Securities in exchange for the Purchase Price on the Purchase Date and agrees to buy Equivalent Securities from the Buyer in exchange for the Repurchase Price on the Repurchase Date."] - [docReference ICMA ERCCBestPractice - namingConvention "Seller" - provision "ERCC Guide: Annex II Glossary of repo terminology. The party to a repo who sells collateral for cash in the form of the Purchase Price on the Purchase Date and commits to buy back the same quantity of equivalent collateral on the Repurchase Date --- which will be a fixed maturity date or, in the case of open repo, on demand --- at an agreed or calculable Repurchase Price. The Seller is effectively borrowing cash. Cf Buyer."] + payer CounterpartyRoleEnum (1..1) <"Specifies the counterparty responsible for making the payments defined by this structure. The party is one of the two principal parties to the transaction."> + [docReference ICMA GMRA namingConvention "Seller" + provision "As defined in the GMRA, paragraph 1(a). The Seller transfers Securities in exchange for the Purchase Price on the Purchase Date and agrees to buy Equivalent Securities from the Buyer in exchange for the Repurchase Price on the Repurchase Date."] + [docReference ICMA ERCCBestPractice namingConvention "Seller" + provision "ERCC Guide: Annex II Glossary of repo terminology. The party to a repo who sells collateral for cash in the form of the Purchase Price on the Purchase Date and commits to buy back the same quantity of equivalent collateral on the Repurchase Date --- which will be a fixed maturity date or, in the case of open repo, on demand --- at an agreed or calculable Repurchase Price. The Seller is effectively borrowing cash. Cf Buyer."] receiver CounterpartyRoleEnum (1..1) <"Specifies the party that receives the payments corresponding to this structure. The party is one of the two counterparties to the transaction."> - [docReference ICMA GMRA namingConvention "Buyer" - provision "As defined in the GMRA, paragraph 1(a). The Buyer purchases Securities at the Purchase Price on the Purchase Date and agrees to sell Equivalent Securities to the Seller in exchange for the Repurchase Price on the Repurchase Date."] - [docReference ICMA ERCCBestPractice namingConvention "Buyer" - provision "ERCC Guide: Annex II Glossary of repo terminology. The party to a repo who buys collateral at the Purchase Price on the Purchase Date and commits to sell back the same quantity of equivalent collateral on the Repurchase Date --- which will be a fixed maturity date or, in the case of open repo, on demand --- at an agreed or calculable Repurchase Price. The Buyer is effectively a lender of cash and is said to be doing a reverse repo."] + [docReference ICMA GMRA namingConvention "Buyer" + provision "As defined in the GMRA, paragraph 1(a). The Buyer purchases Securities at the Purchase Price on the Purchase Date and agrees to sell Equivalent Securities to the Seller in exchange for the Repurchase Price on the Repurchase Date."] + [docReference ICMA ERCCBestPractice namingConvention "Buyer" + provision "ERCC Guide: Annex II Glossary of repo terminology. The party to a repo who buys collateral at the Purchase Price on the Purchase Date and commits to sell back the same quantity of equivalent collateral on the Repurchase Date --- which will be a fixed maturity date or, in the case of open repo, on demand --- at an agreed or calculable Repurchase Price. The Buyer is effectively a lender of cash and is said to be doing a reverse repo."] type PartyReferencePayerReceiver: <"Specifies the parties responsible for making and receiving payments defined by this structure."> - payerPartyReference Party (1..1) <"The party responsible for making the payments defined by this structure."> - [metadata reference] - payerAccountReference Account (0..1) <"A reference to the account responsible for making the payments defined by this structure."> - [metadata reference] - receiverPartyReference Party (1..1) <"The party that receives the payments corresponding to this structure."> - [metadata reference] - receiverAccountReference Account (0..1) <"A reference to the account that receives the payments corresponding to this structure."> - [metadata reference] + payerPartyReference Party (1..1) <"The party responsible for making the payments defined by this structure."> + [metadata reference] + payerAccountReference Account (0..1) <"A reference to the account responsible for making the payments defined by this structure."> + [metadata reference] + receiverPartyReference Party (1..1) <"The party that receives the payments corresponding to this structure."> + [metadata reference] + receiverAccountReference Account (0..1) <"A reference to the account that receives the payments corresponding to this structure."> + [metadata reference] type ReferenceBank: <"A class to describe an institution (party) identified by means of a coding scheme and an optional name."> - referenceBankId string (1..1) <"An institution (party) identifier, e.g. a bank identifier code (BIC). FpML specifies a referenceBankIdScheme."> - [metadata scheme] - referenceBankName string (0..1) <"The name of the institution (party). A free format string. FpML does not define usage rules for the element."> + referenceBankId string (1..1) <"An institution (party) identifier, e.g. a bank identifier code (BIC). FpML specifies a referenceBankIdScheme."> + [metadata scheme] + referenceBankName string (0..1) <"The name of the institution (party). A free format string. FpML does not define usage rules for the element."> type ReferenceBanks: <"A class defining the list of reference institutions polled for relevant rates or prices when determining the cash settlement amount for a product where cash settlement is applicable."> - referenceBank ReferenceBank (1..*) <"An institution (party) identified by means of a coding scheme and an optional name."> + referenceBank ReferenceBank (1..*) <"An institution (party) identified by means of a coding scheme and an optional name."> type RelatedParty: - partyReference Party (1..1) <"Reference to a party."> - [metadata reference] - accountReference Account (0..1) <"Reference to an account."> - [metadata reference] - role PartyRoleEnum (1..1) <"The category of the relationship. The related party performs the role specified in this field for the base party. For example, if the role is ,Guarantor, the related party acts as a guarantor for the base party."> + partyReference Party (1..1) <"Reference to a party."> + [metadata reference] + accountReference Account (0..1) <"Reference to an account."> + [metadata reference] + role PartyRoleEnum (1..1) <"The category of the relationship. The related party performs the role specified in this field for the base party. For example, if the role is ,Guarantor, the related party acts as a guarantor for the base party."> type Account: <"A class to specify an account as an account number alongside, optionally. an account name, an account type, an account beneficiary and a servicing party."> - [metadata key] - - partyReference Party (0..1) <"A reference to the party to which the account refers to."> - [metadata reference] - accountNumber string (1..1) <"The account number."> - [metadata scheme] - - accountName string (0..1) <"The name by which the account is known."> - [metadata scheme] - - accountType AccountTypeEnum (0..1) <"The type of account, e.g. client, house."> - [metadata scheme] - accountBeneficiary Party (0..1) <"A reference to the party beneficiary of the account."> - [metadata reference] - servicingParty Party (0..1) <"The reference to the legal entity that services the account, i.e. in the books of which the account is held."> - [metadata reference] + [metadata key] + + partyReference Party (0..1) <"A reference to the party to which the account refers to."> + [metadata reference] + accountNumber string (1..1) <"The account number."> + [metadata scheme] + accountName string (0..1) <"The name by which the account is known."> + [metadata scheme] + accountType AccountTypeEnum (0..1) <"The type of account, e.g. client, house."> + [metadata scheme] + accountBeneficiary Party (0..1) <"A reference to the party beneficiary of the account."> + [metadata reference] + servicingParty Party (0..1) <"The reference to the legal entity that services the account, i.e. in the books of which the account is held."> + [metadata reference] type Address: <"A class to specify a post or street address."> - street string (1..*) <"The set of street and building number information that identifies a postal address within a city."> - city string (0..1) <"The city component of the postal address."> - state string (0..1) <"A country subdivision used in postal addresses in some countries. For example, US states, Canadian provinces, Swiss cantons, ..."> - country string (0..1) <"The ISO 3166 standard code for the country within which the postal address is located."> - [metadata scheme] - postalCode string (0..1) <"The code, required for computerized mail sorting systems, that is allocated to a physical address by a national postal authority."> + street string (1..*) <"The set of street and building number information that identifies a postal address within a city."> + city string (0..1) <"The city component of the postal address."> + state string (0..1) <"A country subdivision used in postal addresses in some countries. For example, US states, Canadian provinces, Swiss cantons, ..."> + country string (0..1) <"The ISO 3166 standard code for the country within which the postal address is located."> + [metadata scheme] + postalCode string (0..1) <"The code, required for computerized mail sorting systems, that is allocated to a physical address by a national postal authority."> type BusinessUnit: <"A class to specify an organizational unit."> - [metadata key] + [metadata key] - name string (1..1) <"A name used to describe the organizational unit"> - identifier Identifier (0..1) <"An identifier used to uniquely identify the organizational unit"> - contactInformation ContactInformation (0..1) <"The contact information for such business unit, when different from the contact information associated with the party."> + name string (1..1) <"A name used to describe the organizational unit"> + identifier Identifier (0..1) <"An identifier used to uniquely identify the organizational unit"> + contactInformation ContactInformation (0..1) <"The contact information for such business unit, when different from the contact information associated with the party."> type ContactInformation: <"A class to specify contact information associated with a party: telephone, postal/street address, email and web page."> - telephone TelephoneNumber (0..*) <"The telephone number."> - address Address (0..*) <"The street/postal address."> - email string (0..*) <"The email address."> - webPage string (0..*) <"The web page. This attribute is not specified as part of the FpML ContactInformation complex type."> + telephone TelephoneNumber (0..*) <"The telephone number."> + address Address (0..*) <"The street/postal address."> + email string (0..*) <"The email address."> + webPage string (0..*) <"The web page. This attribute is not specified as part of the FpML ContactInformation complex type."> type LegalEntity: <"A class to specify a legal entity, with a required name and an optional entity identifier (such as the LEI)."> - [metadata key] + [metadata key] - entityId string (0..*) <"A legal entity identifier (e.g. RED entity code)."> - [metadata scheme] - name string (1..1) <"The legal entity name."> - [metadata scheme] + entityId string (0..*) <"A legal entity identifier (e.g. RED entity code)."> + [metadata scheme] + name string (1..1) <"The legal entity name."> + [metadata scheme] type NaturalPerson: <"A class to represent the attributes that are specific to a natural person."> - [metadata key] - - personId PersonIdentifier (0..*) <"The identifier associated with a person, e.g. the internal identification code."> - [metadata scheme] - honorific string (0..1) <"An honorific title, such as Mr., Ms., Dr. etc."> - firstName string (0..1) <"The natural person's first name. It is optional in FpML."> - middleName string (0..*) <"The natural person's middle name(s). If a middle name is provided then an initial should be absent."> - initial string (0..*) <"The natural person's middle initial(s). If a middle initial is provided then a name should be absent."> - surname string (0..1) <"The natural person's surname."> - suffix string (0..1) <"Name suffix, such as Jr., III, etc."> - dateOfBirth date (0..1) <"The natural person's date of birth."> - contactInformation ContactInformation (0..1) <"The contact information for such person, when different from the contact information associated with the party."> - personRole NaturalPersonRole (0..*) <"The role of the person(s) "> - - - condition NameOrIdChoice: + [metadata key] + + personId PersonIdentifier (0..*) <"The identifier associated with a person, e.g. the internal identification code."> + [metadata scheme] + honorific string (0..1) <"An honorific title, such as Mr., Ms., Dr. etc."> + firstName string (0..1) <"The natural person's first name. It is optional in FpML."> + middleName string (0..*) <"The natural person's middle name(s). If a middle name is provided then an initial should be absent."> + initial string (0..*) <"The natural person's middle initial(s). If a middle initial is provided then a name should be absent."> + surname string (0..1) <"The natural person's surname."> + suffix string (0..1) <"Name suffix, such as Jr., III, etc."> + dateOfBirth date (0..1) <"The natural person's date of birth."> + contactInformation ContactInformation (0..1) <"The contact information for such person, when different from the contact information associated with the party."> + personRole NaturalPersonRole (0..*) <"The role of the person(s) "> + + condition NameOrIdChoice: (firstName exists and surname exists) or personId exists - condition NaturalPersonChoice: <"Choice rule to represent an FpML choice construct."> - optional choice middleName, initial + condition NaturalPersonChoice: <"Choice rule to represent an FpML choice construct."> + optional choice middleName, initial type NaturalPersonRole: <"A class to specify the role(s) that natural person(s) may have in relation to the contract."> - personReference NaturalPerson (1..1) <"A reference to the natural person to whom the role refers to."> - [metadata reference] - role NaturalPersonRoleEnum (0..*) <"FpML specifies a person role that is distinct from the party role."> - [metadata scheme] + personReference NaturalPerson (1..1) <"A reference to the natural person to whom the role refers to."> + [metadata reference] + role NaturalPersonRoleEnum (0..*) <"FpML specifies a person role that is distinct from the party role."> + [metadata scheme] type Party: <"A class to specify a party, without a qualification as to whether this party is a legal entity or a natural person, although the model provides the ability to associate a person (or set of persons) to a party, which use case would imply that such party would be a legal entity (even if not formally specified as such). "> - [metadata key] + [metadata key] - partyId PartyIdentifier (1..*) <"The identifier associated with a party, e.g. the 20 digits LEI code."> - name string (0..1) <"The party name."> - [metadata scheme] - businessUnit BusinessUnit (0..*) <"Optional organization unit information used to describe the organization units (e.g. trading desks) involved in a transaction or business process, incl. the contact information (when relevant)."> - person NaturalPerson (0..*) <"The person(s) who might be associated with the party as part of the execution, contract or legal document."> - personRole NaturalPersonRole (0..*) <"The role of the person(s) "> - account Account (0..1) <"The account that might be associated with the party. At most one account can be specified, as it is expected that this information is used in the context of a contract or legal document where only one account per party can be associated with such object."> - contactInformation ContactInformation (0..1) <"The postal/street address, telephone number, email address and/or web page. If the contact information is specific to the associated business unit(s) or person (s), it should be associated with those."> + partyId PartyIdentifier (1..*) <"The identifier associated with a party, e.g. the 20 digits LEI code."> + name string (0..1) <"The party name."> + [metadata scheme] + businessUnit BusinessUnit (0..*) <"Optional organization unit information used to describe the organization units (e.g. trading desks) involved in a transaction or business process, incl. the contact information (when relevant)."> + person NaturalPerson (0..*) <"The person(s) who might be associated with the party as part of the execution, contract or legal document."> + personRole NaturalPersonRole (0..*) <"The role of the person(s) "> + account Account (0..1) <"The account that might be associated with the party. At most one account can be specified, as it is expected that this information is used in the context of a contract or legal document where only one account per party can be associated with such object."> + contactInformation ContactInformation (0..1) <"The postal/street address, telephone number, email address and/or web page. If the contact information is specific to the associated business unit(s) or person (s), it should be associated with those."> type PartyIdentifier: <"Comprises an identifier and a source. The associated metadata key denotes the ability to associate a hash value to the PartyIdentifier instantiations for the purpose of model cross-referencing, in support of functionality such as the event effect and the lineage."> - [metadata key] - identifier string (1..1) <"Provides an identifier associated with a party. The identifier is unique within the public source specified in the source attribute."> - [metadata scheme] - identifierType PartyIdentifierTypeEnum (0..1) <"Defines the source of the identifier."> + [metadata key] + identifier string (1..1) <"Provides an identifier associated with a party. The identifier is unique within the public source specified in the source attribute."> + [metadata scheme] + identifierType PartyIdentifierTypeEnum (0..1) <"Defines the source of the identifier."> type PersonIdentifier: <"Comprises an identifier and a source. The associated metadata key denotes the ability to associate a hash value to the PersonIdentifier instantiations for the purpose of model cross-referencing, in support of functionality such as the event effect and the lineage."> - [metadata key] - identifier string (1..1) <"Provides an identifier associated with a person. The identifier is unique within the public source specified in the source attribute."> - [metadata scheme] - identifierType PersonIdentifierTypeEnum (0..1) <"Defines the source of the identifier."> - country string (0..1) <"The ISO 3166 standard code for the country issuing the identifier."> - [metadata scheme] + [metadata key] + identifier string (1..1) <"Provides an identifier associated with a person. The identifier is unique within the public source specified in the source attribute."> + [metadata scheme] + identifierType PersonIdentifierTypeEnum (0..1) <"Defines the source of the identifier."> + country string (0..1) <"The ISO 3166 standard code for the country issuing the identifier."> + [metadata scheme] type PartyContactInformation: <"A class to specify contact information within a party: address and, optionally, associated business unit and person. This class also supports the ISDA CSA representation as a single string, through the address attribute."> - partyReference Party (0..1) <"The reference to the party to which the contact information refers to."> - [metadata reference] - contactInformation ContactInformation (0..1) <"The postal/street address, telephone number, email address and/or web page. If the contact information is specific to the associated business unit(s), it should be associated with those."> - businessUnit BusinessUnit (0..*) <"Optional organization unit information used to describe the organization units (e.g. trading desks) involved in a transaction or business process, incl. the contact information (when relevant)."> - person NaturalPerson (0..*) <"Optional information about people involved in a transaction or business process. (These are employees of the party.)"> - additionalInformation string (0..1) <"Specification of special instructions of the relevant party."> + partyReference Party (0..1) <"The reference to the party to which the contact information refers to."> + [metadata reference] + contactInformation ContactInformation (0..1) <"The postal/street address, telephone number, email address and/or web page. If the contact information is specific to the associated business unit(s), it should be associated with those."> + businessUnit BusinessUnit (0..*) <"Optional organization unit information used to describe the organization units (e.g. trading desks) involved in a transaction or business process, incl. the contact information (when relevant)."> + person NaturalPerson (0..*) <"Optional information about people involved in a transaction or business process. (These are employees of the party.)"> + additionalInformation string (0..1) <"Specification of special instructions of the relevant party."> type PartyRole: <"A class to specify the role(s) that party(ies) may have in relation to the execution, contract or other legal agreement."> - partyReference Party (1..1) <"A reference to the party to which the role refers to."> - [metadata reference] - role PartyRoleEnum (1..1) <"The party role."> - ownershipPartyReference Party (0..1) <"A reference to the party that has ownership of this party role information. FpML specifies that For shared trade information, this attribute will reference the originator of the data (for example, an execution facility or clearing house)."> - [metadata reference] + partyReference Party (1..1) <"A reference to the party to which the role refers to."> + [metadata reference] + role PartyRoleEnum (1..1) <"The party role."> + ownershipPartyReference Party (0..1) <"A reference to the party that has ownership of this party role information. FpML specifies that For shared trade information, this attribute will reference the originator of the data (for example, an execution facility or clearing house)."> + [metadata reference] type TelephoneNumber: <"A class to specify a telephone number as a type of phone number (e.g. work, personal, ...) alongside with the actual number."> - telephoneNumberType TelephoneTypeEnum (0..1) <"The type of telephone number, e.g. work, mobile."> - number string (1..1) <"The actual telephone number."> + telephoneNumberType TelephoneTypeEnum (0..1) <"The type of telephone number, e.g. work, mobile."> + number string (1..1) <"The actual telephone number."> type AncillaryEntity: <"Holds an identifier for an ancillary entity, either identified directly via its ancillary role or directly as a legal entity."> - ancillaryParty AncillaryRoleEnum (0..1) <"Identifies a party via its ancillary role on a transaction (e.g. CCP or DCO through which the trade should be cleared.)"> - legalEntity LegalEntity (0..1) + ancillaryParty AncillaryRoleEnum (0..1) <"Identifies a party via its ancillary role on a transaction (e.g. CCP or DCO through which the trade should be cleared.)"> + legalEntity LegalEntity (0..1) - condition: one-of + condition: + one-of diff --git a/rosetta-source/src/main/rosetta/event-common-enum.rosetta b/rosetta-source/src/main/rosetta/event-common-enum.rosetta index ac1d98be61..1077b73ed6 100644 --- a/rosetta-source/src/main/rosetta/event-common-enum.rosetta +++ b/rosetta-source/src/main/rosetta/event-common-enum.rosetta @@ -4,50 +4,50 @@ version "${project.version}" import cdm.base.* enum ConfirmationStatusEnum: <"Enumeration for the different types of confirmation status."> - Confirmed - Unconfirmed + Confirmed + Unconfirmed enum AffirmationStatusEnum: <"Enumeration for the different types of affirmation status."> - Affirmed - Unaffirmed - + Affirmed + Unaffirmed + enum ExecutionTypeEnum: <"The enumerated values to specify how a contract has been executed, e.g. electronically, verbally, ..."> - Electronic <"Execution via electronic execution facility, derivatives contract market, or other electronic message such as an instant message."> - OffFacility <"Bilateral execution between counterparties not pursuant to the rules of a SEF or DCM."> - //ICMA-P2 - OnVenue <"Execution via a platform that may or may not be covered by a regulatory defintion. OnVenue is intended to distinguish trades executed on a trading platform from those executed via phone, email or messaging apps. The role and details of the venue are included in the party attribute of the trade. The general rule is that if the parties utilitzed the services of the platform to execute the trade then it would be considered OnVenue."> - + Electronic <"Execution via electronic execution facility, derivatives contract market, or other electronic message such as an instant message."> + OffFacility <"Bilateral execution between counterparties not pursuant to the rules of a SEF or DCM."> + // ICMA-P2 + OnVenue <"Execution via a platform that may or may not be covered by a regulatory defintion. OnVenue is intended to distinguish trades executed on a trading platform from those executed via phone, email or messaging apps. The role and details of the venue are included in the party attribute of the trade. The general rule is that if the parties utilitzed the services of the platform to execute the trade then it would be considered OnVenue."> + enum ActionEnum: <"The enumeration values to specify the actions associated with transactions."> - New <"A new instance of a transaction event, which is also characterized by the fact that the eventIdentifier has an associated version 1."> - Correct <"A correction of a prior instance of the transaction event. The eventIdentifier has an associated version greater than 1."> - Cancel <"A cancellation of a prior instance of the transaction event. The eventIdentifier has an associated version greater than 1."> + New <"A new instance of a transaction event, which is also characterized by the fact that the eventIdentifier has an associated version 1."> + Correct <"A correction of a prior instance of the transaction event. The eventIdentifier has an associated version greater than 1."> + Cancel <"A cancellation of a prior instance of the transaction event. The eventIdentifier has an associated version greater than 1."> enum AssetTransferTypeEnum: <"The qualification of the type of asset transfer."> - FreeOfPayment <"The transfer of assets takes place without a corresponding exchange of payment."> + FreeOfPayment <"The transfer of assets takes place without a corresponding exchange of payment."> enum EventIntentEnum: <"The enumeration values to qualify the intent associated with a transaction event."> - Allocation <"The intent is to allocate one or more trades as part of an allocated block trade."> - CashFlow <"The intent is to designate a stand-alone cash transfer as a result of Trade contracual terms e.g. incurred by payout for instance a Performance Amount or a Floating Rate Amount. The particular CashFlow at stake shall be further specified in priceTransferEnum or transferTypeEnum. For clarity, such intentEnum value shall not be used whenever a cash transfer is not stand-alone but is instead embedded in another Event as part of the composable modelling e.g. Decrease with Fees, Cross-Currency Notional Reset, etc. or any other Event whenever including a cash transfer with other features. For clarity, a principal payment related to a Principal Exhange is excluded as well, because a dedicated intentEnum value exists for this event i.e. PrincipalExchange value."> - Clearing <"The intent is to clear the contract."> - Compression <"The intent is to compress multiple trades as part of a netting or compression event."> - ContractFormation <"The intent is to form a contract from an execution."> - ContractTermsAmendment <"The intent is to amend the terms of the contract through renegotiation."> - CorporateActionAdjustment <"The intent is to take into effect the occurrence of a Corporate Action and the particular Corporate Action at stake shall be further specified in CorporateActionTypeEnum."> - CreditEvent <"The intent is to take into effect the occurrence of a Credit Event."> - Decrease <"The intent is to Decrease the quantity or notional of the contract."> + Allocation <"The intent is to allocate one or more trades as part of an allocated block trade."> + CashFlow <"The intent is to designate a stand-alone cash transfer as a result of Trade contracual terms e.g. incurred by payout for instance a Performance Amount or a Floating Rate Amount. The particular CashFlow at stake shall be further specified in priceTransferEnum or transferTypeEnum. For clarity, such intentEnum value shall not be used whenever a cash transfer is not stand-alone but is instead embedded in another Event as part of the composable modelling e.g. Decrease with Fees, Cross-Currency Notional Reset, etc. or any other Event whenever including a cash transfer with other features. For clarity, a principal payment related to a Principal Exhange is excluded as well, because a dedicated intentEnum value exists for this event i.e. PrincipalExchange value."> + Clearing <"The intent is to clear the contract."> + Compression <"The intent is to compress multiple trades as part of a netting or compression event."> + ContractFormation <"The intent is to form a contract from an execution."> + ContractTermsAmendment <"The intent is to amend the terms of the contract through renegotiation."> + CorporateActionAdjustment <"The intent is to take into effect the occurrence of a Corporate Action and the particular Corporate Action at stake shall be further specified in CorporateActionTypeEnum."> + CreditEvent <"The intent is to take into effect the occurrence of a Credit Event."> + Decrease <"The intent is to Decrease the quantity or notional of the contract."> EarlyTerminationProvision <"The intent is to fully unwind the Trade, as a result of the application of Trade contractual terms (e.g. an obligation to do so before Termination Date as part of any kind of Early Termination terms) as defined within the CDM EarlyTerminationProvision data type. Accordingly, increase and decrease of positions which result from negotiation by the parties shall not be designated by such intentEnum. For clarity, partial exercise of an option before its expiration date is excluded as well, though related to Trade contract terms, because a dedicated intentEnum value exists for this event i.e. OptionExercise value."> - Increase <"The intent is to Increase the quantity or notional of the contract."> - IndexTransition <"The intent is to replace an interest rate index by another one during the life of a trade and add a transition spread on top of this index (and on top of the spreads already defined in the trade, if any). "> + Increase <"The intent is to Increase the quantity or notional of the contract."> + IndexTransition <"The intent is to replace an interest rate index by another one during the life of a trade and add a transition spread on top of this index (and on top of the spreads already defined in the trade, if any). "> NotionalReset <"The intent is to increase or to decrease the notional of the Trade, in accordance with Notional Reset features e.g. could apply for Cross Currency Swaps, Equity Performance Swaps, etc."> - NotionalStep <"The intent is to increase or to decrease the notional of the Trade, in accordance with Step features attached to a Payout Quantity."> - Novation <"The intent is to novate the contract."> - ObservationRecord <"The intent is to record any kind of stand-alone obervervations e.g. internal data recording, usage of CDM for recording and/or exchanging data as part of pricing 'consensus' processing, etc. For clarity, such intentEnum value shall not be used whenever an observation is not stand-alone but is instead embedded in another Event as part of the composable modelling e.g. CashFlow to which an observation of prices is associated, etc."> + NotionalStep <"The intent is to increase or to decrease the notional of the Trade, in accordance with Step features attached to a Payout Quantity."> + Novation <"The intent is to novate the contract."> + ObservationRecord <"The intent is to record any kind of stand-alone obervervations e.g. internal data recording, usage of CDM for recording and/or exchanging data as part of pricing 'consensus' processing, etc. For clarity, such intentEnum value shall not be used whenever an observation is not stand-alone but is instead embedded in another Event as part of the composable modelling e.g. CashFlow to which an observation of prices is associated, etc."> OptionExercise <"The intent is to Exercise a contract that is made of one or several option payout legs. For clarity, such intentEnum value shall not be used whenever an optional right is exercised in relation with a Trade which composition includes other types of payout legs e.g. right to call or to cancel before Termination Date as part of any kind of Early Termination terms other than genuine bermuda or american style features described in option payout. "> - OptionalExtension <"The intent is to extend the trade through exercise of an optional right as defined within the CDM OptionProvision data type."> - OptionalCancellation <"The intent is to cancel the trade through exercise of an optional right as defined within the CDM OptionProvision data type."> - PrincipalExchange <"The intent is to pay or to receive a cash transfer, in accordance with Principal Exchange features."> - Reallocation <"The intent is to reallocate one or more trades as part of an allocated block trade."> - Repurchase <"The intent is to close a repo transaction through repurchase."> + OptionalExtension <"The intent is to extend the trade through exercise of an optional right as defined within the CDM OptionProvision data type."> + OptionalCancellation <"The intent is to cancel the trade through exercise of an optional right as defined within the CDM OptionProvision data type."> + PrincipalExchange <"The intent is to pay or to receive a cash transfer, in accordance with Principal Exchange features."> + Reallocation <"The intent is to reallocate one or more trades as part of an allocated block trade."> + Repurchase <"The intent is to close a repo transaction through repurchase."> enum RecordAmountTypeEnum: <"The enumeration of the account level for the billing summary."> AccountTotal @@ -55,94 +55,94 @@ enum RecordAmountTypeEnum: <"The enumeration of the account level for the billin ParentTotal enum TransferStatusEnum: <"The enumeration values to specify the transfer status."> - Disputed <"The transfer is disputed."> - Instructed <"The transfer has been instructed."> - Pending <"The transfer is pending instruction."> - Settled <"The transfer has been settled."> - Netted <"The transfer has been netted into a separate Transfer."> + Disputed <"The transfer is disputed."> + Instructed <"The transfer has been instructed."> + Pending <"The transfer is pending instruction."> + Settled <"The transfer has been settled."> + Netted <"The transfer has been netted into a separate Transfer."> enum InstructionFunctionEnum: <"The enumeration values indicating the BusinessEvent function associated input instructions."> - Execution - ContractFormation - QuantityChange - Renegotiation - Compression + Execution + ContractFormation + QuantityChange + Renegotiation + Compression enum 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."> - MarginCall <"Identifies an actionable Margin Call."> - Notification <"Identifies a notification of a Margin Call for legal obligation to notify other party to initiate a margin call when notifying party is calculation or valuation agent."> - ExpectedCall <"Identifies an expected Margin Call instruction for either party to notify the other or their service provider of an expected margin call movement."> - + MarginCall <"Identifies an actionable Margin Call."> + Notification <"Identifies a notification of a Margin Call for legal obligation to notify other party to initiate a margin call when notifying party is calculation or valuation agent."> + ExpectedCall <"Identifies an expected Margin Call instruction for either party to notify the other or their service provider of an expected margin call movement."> + enum MarginCallActionEnum: <"Represents the enumeration values to identify the collateral action instruction."> - Delivery <"Indicates an instruction of a new collateral asset delivery."> - Return <"Indicates an instruction for a return of a principals collateral asset delivery."> + Delivery <"Indicates an instruction of a new collateral asset delivery."> + Return <"Indicates an instruction for a return of a principals collateral asset delivery."> enum CollateralStatusEnum: <"Represents the enumeration list to identify the settlement status of the collateral."> - FullAmount <"Indicates the collateral balance amount in full, inclusive of any pre-agreed collateral positions in transit for settlement."> - SettledAmount <"Indicates the collateral is settled and not an in transit pre-agreed collateral amount/s."> - InTransitAmount <"Indicates collateral amount in transit settlement cycle only, excluding settled collateral amount/s."> + FullAmount <"Indicates the collateral balance amount in full, inclusive of any pre-agreed collateral positions in transit for settlement."> + SettledAmount <"Indicates the collateral is settled and not an in transit pre-agreed collateral amount/s."> + InTransitAmount <"Indicates collateral amount in transit settlement cycle only, excluding settled collateral amount/s."> enum MarginCallResponseTypeEnum: <"Represents the enumeration values to define the response type to a margin call."> - AgreeinFull <"Specifies a 'Full Agreement' to Margin Call."> - PartiallyAgree <"Specifies a 'Partial agreement' to Margin Call."> - Dispute <"Specifies a 'Full Dispute' to a Margin call."> + AgreeinFull <"Specifies a 'Full Agreement' to Margin Call."> + PartiallyAgree <"Specifies a 'Partial agreement' to Margin Call."> + Dispute <"Specifies a 'Full Dispute' to a Margin call."> enum RegMarginTypeEnum: <"Represents the enumeration values to specify the margin type in relation to bilateral or regulatory obligation."> - VM <"Indicates Variation Margin"> - RegIM <"Indicates Regulatory Initial Margin"> - NonRegIM <"Indicates Non Regulatory Initial margin or independent amount"> + VM <"Indicates Variation Margin"> + RegIM <"Indicates Regulatory Initial Margin"> + NonRegIM <"Indicates Non Regulatory Initial margin or independent amount"> enum RegIMRoleEnum: <"Represents the enumeration values to specify the role of the party in relation to a regulatory initial margin call."> - Pledgor <"Indicates 'Pledgor' party of initial margin call."> - Secured <"Indicates 'Secured' party of initial margin call."> + Pledgor <"Indicates 'Pledgor' party of initial margin call."> + Secured <"Indicates 'Secured' party of initial margin call."> enum HaircutIndicatorEnum: <"Represents the enumeration indicators to specify if an asset or group of assets valuation is based on any valuation treatment haircut."> - PreHaircut <"Indicates Pre haircut value"> - PostHaircut <"Indicates Post haircut value"> + PreHaircut <"Indicates Pre haircut value"> + PostHaircut <"Indicates Post haircut value"> enum PerformanceTransferTypeEnum: <"The enumerated values to specify the origin of a performance transfer"> - Commodity - Correlation - Dividend - Equity - Interest - Volatility - Variance + Commodity + Correlation + Dividend + Equity + Interest + Volatility + Variance enum CorporateActionTypeEnum: <"The enumerated values to specify the origin of a corporate action transfer."> - CashDividend <"Corporate action triggered by the distribution of a cash dividend."> - StockDividend <"Corporate action triggered by the distribution of a stock dividend."> - StockSplit <"Corporate action triggered by a stock split. A stock split or stock divide increases the number of shares in a public company. The price is adjusted such that the before and after market capitalization of the company remains the same and dilutiondoes not occur. The value maps closely to the ISO code (SPLF) defined as a distribution of subsidiary stock to the shareholders of the parent company without a surrender of shares."> - ReverseStockSplit <"Corporate action triggered by a reverse split. A reverse stock split or reverse split is a process by a company of issuing to each shareholder in that company a smaller number of new shares in proportion to that shareholder's original shares that are subsequently canceled. A reverse stock split is also called a stock merge. The reduction in the number of issued shares is accompanied by a proportional increase in the share price. The value maps closely to the ISO code (SPLR) defined as a decrease in a company's number of outstanding equities without any change in the shareholder's equity or the aggregate market value at the time of the split. Equity price and nominal value are increased accordingly."> - SpinOff <"Corporate action triggered by a spin Off. A spin-out, also known as a spin-off or a starburst, refers to a type of corporate action where a company splits off sections of itself as a separate business. The value maps closely to the ISO code (SOFF) defined as a a distribution of subsidiary stock to the shareholders of the parent company without a surrender of shares. Spin-off represents a form of divestiture usually resulting in an independent company or in an existing company. For example, demerger, distribution, unbundling."> - Merger <"Corporate action triggered by a merger. Mergers and acquisitions (abbreviated M&A) is an aspect of corporate strategy, corporate finance and management dealing with the buying, selling, dividing and combining of different companies and similar entities that can help an enterprise grow rapidly in its sector or location of origin, or a new field or new location, without creating a subsidiary, other child entity or using a joint venture. The distinction between a merger and an acquisition has become increasingly blurred in various respects (particularly in terms of the ultimate economic outcome), although it has not completely disappeared in all situations. The value maps closely to the ISO code (MRGR) defined as an offer made to shareholders, normally by a third party, requesting them to sell (tender) or exchange their equities."> - Delisting <"Corporate action triggered by the removal of a security from a stock exchange."> - StockNameChange <"Corporate action triggered by a change in the name used to trade the security."> - StockIdentifierChange <"Corporate action triggered by a change in the code used to trade the security."> - RightsIssue <"Corporate action triggered by an issuance to shareholders of rights to purchase additional shares at a discount."> - Takeover <"Corporate action triggered by a takeover. A takeover is the purchase of onecompany (the target) by another (the acquirer, or bidder). The value maps to the ISO code (TEND) but is finer grained than TEND which emcompasses Tender/Acquisition/Takeover/Purchase Offer/Buyback. ISO defines the TEND code as an offer made to shareholders, normally by a third party, requesting them to sell (tender) or exchange their equities."> - StockReclassification <"Corporate action triggered by a Stock Reclassification."> - BonusIssue <"Corporate action triggered by a bonus issue. A bonus issue or bonus share is a free share of stock given to current shareholders in a company, based upon the number of shares that the shareholder already owns. While the issue of bonus shares increases the total number of shares issued and owned, it does not change the value of the company. The value maps closely to the ISO code (BONU) defined as a bonus, scrip or capitalisation issue. Security holders receive additional assets free of payment from the issuer, in proportion to their holding."> - ClassAction <"Corporate action triggered by a Class Action. An action where an individual represents a group in a court claim. The judgment from the suit is for all the members of the group (class). The value maps closely to the ISO code (CLSA) defined as the situation where interested parties seek restitution for financial loss. The security holder may be offered the opportunity to join a class action proceeding and would need to respond with an instruction."> - EarlyRedemption <"Corporate action triggered by an early redemption. The value maps closely to the ISO code (MCAL) defined as the redemption of an entire issue outstanding of securities, for example, bonds, preferred equity, funds, by the issuer or its agent, for example, asset manager, before final maturity."> - Liquidation <"Corporate action triggered by a liquidation. When a business or firm is terminated or bankrupt, its assets are sold (liquidated) and the proceeds pay creditors. Any leftovers are distributed to shareholders. The value maps closely to the ISO code (LIQU) defined as a distribution of cash, assets or both. Debt may be paid in order of priority based on preferred claims to assets specified by the security."> + CashDividend <"Corporate action triggered by the distribution of a cash dividend."> + StockDividend <"Corporate action triggered by the distribution of a stock dividend."> + StockSplit <"Corporate action triggered by a stock split. A stock split or stock divide increases the number of shares in a public company. The price is adjusted such that the before and after market capitalization of the company remains the same and dilutiondoes not occur. The value maps closely to the ISO code (SPLF) defined as a distribution of subsidiary stock to the shareholders of the parent company without a surrender of shares."> + ReverseStockSplit <"Corporate action triggered by a reverse split. A reverse stock split or reverse split is a process by a company of issuing to each shareholder in that company a smaller number of new shares in proportion to that shareholder's original shares that are subsequently canceled. A reverse stock split is also called a stock merge. The reduction in the number of issued shares is accompanied by a proportional increase in the share price. The value maps closely to the ISO code (SPLR) defined as a decrease in a company's number of outstanding equities without any change in the shareholder's equity or the aggregate market value at the time of the split. Equity price and nominal value are increased accordingly."> + SpinOff <"Corporate action triggered by a spin Off. A spin-out, also known as a spin-off or a starburst, refers to a type of corporate action where a company splits off sections of itself as a separate business. The value maps closely to the ISO code (SOFF) defined as a a distribution of subsidiary stock to the shareholders of the parent company without a surrender of shares. Spin-off represents a form of divestiture usually resulting in an independent company or in an existing company. For example, demerger, distribution, unbundling."> + Merger <"Corporate action triggered by a merger. Mergers and acquisitions (abbreviated M&A) is an aspect of corporate strategy, corporate finance and management dealing with the buying, selling, dividing and combining of different companies and similar entities that can help an enterprise grow rapidly in its sector or location of origin, or a new field or new location, without creating a subsidiary, other child entity or using a joint venture. The distinction between a merger and an acquisition has become increasingly blurred in various respects (particularly in terms of the ultimate economic outcome), although it has not completely disappeared in all situations. The value maps closely to the ISO code (MRGR) defined as an offer made to shareholders, normally by a third party, requesting them to sell (tender) or exchange their equities."> + Delisting <"Corporate action triggered by the removal of a security from a stock exchange."> + StockNameChange <"Corporate action triggered by a change in the name used to trade the security."> + StockIdentifierChange <"Corporate action triggered by a change in the code used to trade the security."> + RightsIssue <"Corporate action triggered by an issuance to shareholders of rights to purchase additional shares at a discount."> + Takeover <"Corporate action triggered by a takeover. A takeover is the purchase of onecompany (the target) by another (the acquirer, or bidder). The value maps to the ISO code (TEND) but is finer grained than TEND which emcompasses Tender/Acquisition/Takeover/Purchase Offer/Buyback. ISO defines the TEND code as an offer made to shareholders, normally by a third party, requesting them to sell (tender) or exchange their equities."> + StockReclassification <"Corporate action triggered by a Stock Reclassification."> + BonusIssue <"Corporate action triggered by a bonus issue. A bonus issue or bonus share is a free share of stock given to current shareholders in a company, based upon the number of shares that the shareholder already owns. While the issue of bonus shares increases the total number of shares issued and owned, it does not change the value of the company. The value maps closely to the ISO code (BONU) defined as a bonus, scrip or capitalisation issue. Security holders receive additional assets free of payment from the issuer, in proportion to their holding."> + ClassAction <"Corporate action triggered by a Class Action. An action where an individual represents a group in a court claim. The judgment from the suit is for all the members of the group (class). The value maps closely to the ISO code (CLSA) defined as the situation where interested parties seek restitution for financial loss. The security holder may be offered the opportunity to join a class action proceeding and would need to respond with an instruction."> + EarlyRedemption <"Corporate action triggered by an early redemption. The value maps closely to the ISO code (MCAL) defined as the redemption of an entire issue outstanding of securities, for example, bonds, preferred equity, funds, by the issuer or its agent, for example, asset manager, before final maturity."> + Liquidation <"Corporate action triggered by a liquidation. When a business or firm is terminated or bankrupt, its assets are sold (liquidated) and the proceeds pay creditors. Any leftovers are distributed to shareholders. The value maps closely to the ISO code (LIQU) defined as a distribution of cash, assets or both. Debt may be paid in order of priority based on preferred claims to assets specified by the security."> enum CreditEventTypeEnum: <"Represents the enumerated values to specify a credit event type."> [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/credit-event-type"] - Bankruptcy <"The reference entity has been dissolved or has become insolvent. It also covers events that may be a precursor to insolvency such as instigation of bankruptcy or insolvency proceedings. Sovereign trades are not subject to Bankruptcy as 'technically' a Sovereign cannot become bankrupt. ISDA 2003 Term: Bankruptcy."> - DistressedRatingsDowngrade <"Results from the fact that the rating of the reference obligation is downgraded to a distressed rating level. From a usage standpoint, this credit event is typically not applicable in case of RMBS trades."> - FailureToPay <"This credit event triggers, after the expiration of any applicable grace period, if the reference entity fails to make due payments in an aggregrate amount of not less than the payment requirement on one or more obligations (e.g. a missed coupon payment). ISDA 2003 Term: Failure to Pay."> - FailureToPayInterest <"Corresponds to the failure by the Reference Entity to pay an expected interest amount or the payment of an actual interest amount that is less than the expected interest amount. ISDA 2003 Term: Failure to Pay Interest."> - FailureToPayPrincipal <"Corresponds to the failure by the Reference Entity to pay an expected principal amount or the payment of an actual principal amount that is less than the expected principal amount. ISDA 2003 Term: Failure to Pay Principal."> - GovernmentalIntervention <"A governmental intervention is an event resulting from an action by a governmental authority that materially impacts the reference entity's obligations, such as an interest rate reduction, principal reduction, deferral of interest or principal, change in priority ranking, or change in currency or composition of payment. ISDA 2014 Term: Governmental Intervention."> - ImpliedWritedown <"Results from the fact that losses occur to the underlying instruments that do not result in reductions of the outstanding principal of the reference obligation."> - MaturityExtension <"Results from the fact that the underlier fails to make principal payments as expected."> - ObligationAcceleration <"One or more of the obligations have been declared due and payable before they would otherwise have been due and payable as a result of, or on the basis of, the occurrence of a default, event of default or other similar condition or event other than failure to pay (preferred by the market over Obligation Default, because more definitive and encompasses the definition of Obligation Default - this is more favorable to the Seller). Subject to the default requirement amount. ISDA 2003 Term: Obligation Acceleration."> - ObligationDefault <"One or more of the obligations have become capable of being declared due and payable before they would otherwise have been due and payable as a result of, or on the basis of, the occurrence of a default, event of default or other similar condition or event other than failure to pay. ISDA 2003 Term: Obligation Default."> - RepudiationMoratorium <"The reference entity, or a governmental authority, either refuses to recognise or challenges the validity of one or more obligations of the reference entity, or imposes a moratorium thereby postponing payments on one or more of the obligations of the reference entity. Subject to the default requirement amount. ISDA 2003 Term: Repudiation/Moratorium."> - Restructuring <"A restructuring is an event that materially impacts the reference entity's obligations, such as an interest rate reduction, principal reduction, deferral of interest or principal, change in priority ranking, or change in currency or composition of payment. ISDA 2003 Term: Restructuring."> - Writedown <"Results from the fact that the underlier writes down its outstanding principal amount."> + Bankruptcy <"The reference entity has been dissolved or has become insolvent. It also covers events that may be a precursor to insolvency such as instigation of bankruptcy or insolvency proceedings. Sovereign trades are not subject to Bankruptcy as 'technically' a Sovereign cannot become bankrupt. ISDA 2003 Term: Bankruptcy."> + DistressedRatingsDowngrade <"Results from the fact that the rating of the reference obligation is downgraded to a distressed rating level. From a usage standpoint, this credit event is typically not applicable in case of RMBS trades."> + FailureToPay <"This credit event triggers, after the expiration of any applicable grace period, if the reference entity fails to make due payments in an aggregrate amount of not less than the payment requirement on one or more obligations (e.g. a missed coupon payment). ISDA 2003 Term: Failure to Pay."> + FailureToPayInterest <"Corresponds to the failure by the Reference Entity to pay an expected interest amount or the payment of an actual interest amount that is less than the expected interest amount. ISDA 2003 Term: Failure to Pay Interest."> + FailureToPayPrincipal <"Corresponds to the failure by the Reference Entity to pay an expected principal amount or the payment of an actual principal amount that is less than the expected principal amount. ISDA 2003 Term: Failure to Pay Principal."> + GovernmentalIntervention <"A governmental intervention is an event resulting from an action by a governmental authority that materially impacts the reference entity's obligations, such as an interest rate reduction, principal reduction, deferral of interest or principal, change in priority ranking, or change in currency or composition of payment. ISDA 2014 Term: Governmental Intervention."> + ImpliedWritedown <"Results from the fact that losses occur to the underlying instruments that do not result in reductions of the outstanding principal of the reference obligation."> + MaturityExtension <"Results from the fact that the underlier fails to make principal payments as expected."> + ObligationAcceleration <"One or more of the obligations have been declared due and payable before they would otherwise have been due and payable as a result of, or on the basis of, the occurrence of a default, event of default or other similar condition or event other than failure to pay (preferred by the market over Obligation Default, because more definitive and encompasses the definition of Obligation Default - this is more favorable to the Seller). Subject to the default requirement amount. ISDA 2003 Term: Obligation Acceleration."> + ObligationDefault <"One or more of the obligations have become capable of being declared due and payable before they would otherwise have been due and payable as a result of, or on the basis of, the occurrence of a default, event of default or other similar condition or event other than failure to pay. ISDA 2003 Term: Obligation Default."> + RepudiationMoratorium <"The reference entity, or a governmental authority, either refuses to recognise or challenges the validity of one or more obligations of the reference entity, or imposes a moratorium thereby postponing payments on one or more of the obligations of the reference entity. Subject to the default requirement amount. ISDA 2003 Term: Repudiation/Moratorium."> + Restructuring <"A restructuring is an event that materially impacts the reference entity's obligations, such as an interest rate reduction, principal reduction, deferral of interest or principal, change in priority ranking, or change in currency or composition of payment. ISDA 2003 Term: Restructuring."> + Writedown <"Results from the fact that the underlier writes down its outstanding principal amount."> enum ValuationTypeEnum: <"Method used for the valuation of the transaction by the valuation party."> MarkToMarket <"Mark-to-Market"> diff --git a/rosetta-source/src/main/rosetta/event-common-func.rosetta b/rosetta-source/src/main/rosetta/event-common-func.rosetta index bf984f5798..9a2cd438e1 100644 --- a/rosetta-source/src/main/rosetta/event-common-func.rosetta +++ b/rosetta-source/src/main/rosetta/event-common-func.rosetta @@ -23,356 +23,383 @@ import cdm.event.workflow.* import cdm.event.position.* func QuantityIncreased: - inputs: - before TradeState (1..1) - after TradeState (0..*) + inputs: + before TradeState (1..1) + after TradeState (0..*) output: result boolean (1..1) set result: <"Check each after (list item) is greater than before (func input)."> - after - extract [ CompareTradeLot( - item -> trade -> tradableProduct -> tradeLot only-element, - CompareOp -> GreaterThan, - before -> trade -> tradableProduct -> tradeLot only-element ) = True ] - all = True + after + extract [ + CompareTradeLot( + item -> trade -> tradableProduct -> tradeLot only-element, + CompareOp -> GreaterThan, + before -> trade -> tradableProduct -> tradeLot only-element + ) = True + ] all = True func QuantityDecreased: - inputs: - before TradeState (1..1) - after TradeState (0..*) - output: - result boolean (1..1) + inputs: + before TradeState (1..1) + after TradeState (0..*) + output: + result boolean (1..1) set result: - after + after extract [ // check each after (item) is less than before (input) CompareTradeLot( - item -> trade -> tradableProduct -> tradeLot only-element, - CompareOp -> LessThan, - before -> trade -> tradableProduct -> tradeLot only-element ) = True - and - // check each after (item) is greater than zero - CompareTradeLotToAmount( - item -> trade -> tradableProduct -> tradeLot only-element, - CompareOp -> GreaterThan, - 0.0 ) = True - ] - all = True + item -> trade -> tradableProduct -> tradeLot only-element, + CompareOp -> LessThan, + before -> trade -> tradableProduct -> tradeLot only-element + ) = True + and // check each after (item) is greater than zero + CompareTradeLotToAmount( + item -> trade -> tradableProduct -> tradeLot only-element, + CompareOp -> GreaterThan, + 0.0 + ) = True + ] all = True func QuantityDecreasedToZero: - inputs: - before TradeState (0..*) - after TradeState (0..*) - output: - result boolean (1..1) + inputs: + before TradeState (0..*) + after TradeState (0..*) + output: + result boolean (1..1) set result: - CompareTradeLotToAmount( before -> trade -> tradableProduct -> tradeLot only-element, CompareOp -> GreaterThanOrEquals, 0.0 ) = True - and CompareTradeStatesToAmount( after, CompareOp -> Equals, 0.0 ) = True + CompareTradeLotToAmount( + before -> trade -> tradableProduct -> tradeLot only-element, + CompareOp -> GreaterThanOrEquals, + 0.0 + ) = True + and CompareTradeStatesToAmount(after, CompareOp -> Equals, 0.0) = True func CompareTradeStatesToAmount: <"For each TradeState, compare the Quantity amounts in each TradeState to the given amount (regardless of unit of amount), based on the CompareOp enum."> - inputs: - tradeStates TradeState (0..*) <"List of TradeState to be compared."> - op CompareOp (1..1) <"Comparison operation to use."> - amount number (1..1) <"Quantity amount to use."> - output: - result boolean (1..1) - - set result: + inputs: + tradeStates TradeState (0..*) <"List of TradeState to be compared."> + op CompareOp (1..1) <"Comparison operation to use."> + amount number (1..1) <"Quantity amount to use."> + output: + result boolean (1..1) + + set result: tradeStates - extract [ CompareTradeLotToAmount( item -> trade -> tradableProduct -> tradeLot only-element, op, amount ) ] - all = True - + extract [ + CompareTradeLotToAmount( + item -> trade -> tradableProduct -> tradeLot only-element, + op, + amount + ) + ] all = True func TransfersForDate: - inputs: - transfers Transfer (0..*) - date date (1..1) - output: - transfersForDate Transfer (0..*) + inputs: + transfers Transfer (0..*) + date date (1..1) + output: + transfersForDate Transfer (0..*) - add transfersForDate: - transfers - filter settlementDate -> adjustedDate = date + add transfersForDate: transfers filter settlementDate -> adjustedDate = date func FilterCashTransfers: - inputs: - transfers Transfer (0..*) - output: - cashTransfers Transfer (0..*) + inputs: + transfers Transfer (0..*) + output: + cashTransfers Transfer (0..*) - add cashTransfers: - transfers - filter quantity -> unit -> currency exists + add cashTransfers: transfers filter quantity -> unit -> currency exists func FilterSecurityTransfers: - inputs: - transfers Transfer (0..*) - output: - securityTransfers Transfer (0..*) + inputs: + transfers Transfer (0..*) + output: + securityTransfers Transfer (0..*) - add securityTransfers: - transfers - filter observable -> productIdentifier exists + add securityTransfers: transfers filter observable -> productIdentifier exists func ResolveInterestRateObservationIdentifiers: <"Defines which attributes on the InterestRatePayout should be used to locate and resolve the underlier's price, for example for the reset process."> - inputs: - payout InterestRatePayout (1..1) - date date (1..1) - output: - identifiers ObservationIdentifier (1..1) + inputs: + payout InterestRatePayout (1..1) + date date (1..1) + output: + identifiers ObservationIdentifier (1..1) - set identifiers -> observable -> rateOption: - payout -> rateSpecification -> floatingRate -> rateOption - set identifiers -> observationDate: - date + set identifiers -> observable -> rateOption: + payout -> rateSpecification -> floatingRate -> rateOption + set identifiers -> observationDate: date // ResolveInterestRateReset is similar to ResolveEquityReset as they both only support the basic use cases for reset. Once support is added for stub periods and thus rate interpolation, the formula to derive the reset value will start to look different between the functions. - func ResolveInterestRateReset: <"Defines how to resolve the reset value for an InterestRatePayout."> - inputs: - payouts InterestRatePayout (1..*) - observation Observation (1..1) - resetDate date (1..1) - rateRecordDate date (0..1) - output: - reset Reset (1..1) - - set reset -> resetValue: <"Assigns the observed value to the reset value."> - observation -> observedValue - set reset -> resetDate: - resetDate - set reset -> rateRecordDate: - rateRecordDate - add reset -> observations: <"Assigns the observation required to compute the rest value as audit."> - observation + inputs: + payouts InterestRatePayout (1..*) + observation Observation (1..1) + resetDate date (1..1) + rateRecordDate date (0..1) + output: + reset Reset (1..1) + + set reset -> resetValue: <"Assigns the observed value to the reset value."> + observation -> observedValue + set reset -> resetDate: resetDate + set reset -> rateRecordDate: rateRecordDate + add reset -> observations: <"Assigns the observation required to compute the rest value as audit."> + observation func InterestCashSettlementAmount: <"Defines the performance calculations relevent for a fixed or floating rate payout."> - inputs: - tradeState TradeState (1..1) - interestRatePayout InterestRatePayout (1..1) - resets Reset (1..*) - date date (1..1) - output: - interestCashSettlementAmount Transfer (1..1) - - alias performance: - if interestRatePayout -> rateSpecification -> fixedRate exists - then FixedAmount( - interestRatePayout, - interestRatePayout -> priceQuantity -> quantitySchedule -> value, - date, - empty) - else if interestRatePayout -> rateSpecification -> floatingRate exists - then FloatingAmount( - interestRatePayout, - resets only-element -> resetValue -> value, - interestRatePayout -> priceQuantity -> quantitySchedule -> value, - date, - empty) - alias payer: - ExtractCounterpartyByRole( tradeState -> trade -> tradableProduct -> counterparty, interestRatePayout -> payerReceiver -> payer ) -> partyReference - alias receiver: - ExtractCounterpartyByRole( tradeState -> trade -> tradableProduct -> counterparty, interestRatePayout -> payerReceiver -> receiver ) -> partyReference - set interestCashSettlementAmount -> quantity -> value: - performance - set interestCashSettlementAmount -> quantity -> unit -> currency: - interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency - set interestCashSettlementAmount -> payerReceiver -> payerPartyReference: - if performance >= 0 then payer else receiver - set interestCashSettlementAmount -> payerReceiver -> receiverPartyReference: - if performance >= 0 then receiver else payer - - set interestCashSettlementAmount -> settlementDate -> adjustedDate: - date - - set interestCashSettlementAmount -> settlementOrigin -> interestRatePayout: - interestRatePayout as-key + inputs: + tradeState TradeState (1..1) + interestRatePayout InterestRatePayout (1..1) + resets Reset (1..*) + date date (1..1) + output: + interestCashSettlementAmount Transfer (1..1) + + alias performance: + if interestRatePayout -> rateSpecification -> fixedRate exists + then FixedAmount( + interestRatePayout, + interestRatePayout -> priceQuantity -> quantitySchedule -> value, + date, + empty + ) + else if interestRatePayout -> rateSpecification -> floatingRate exists + then FloatingAmount( + interestRatePayout, + resets only-element -> resetValue -> value, + interestRatePayout -> priceQuantity -> quantitySchedule -> value, + date, + empty + ) + alias payer: + ExtractCounterpartyByRole( + tradeState -> trade -> tradableProduct -> counterparty, + interestRatePayout -> payerReceiver -> payer + ) -> partyReference + alias receiver: + ExtractCounterpartyByRole( + tradeState -> trade -> tradableProduct -> counterparty, + interestRatePayout -> payerReceiver -> receiver + ) -> partyReference + set interestCashSettlementAmount -> quantity -> value: performance + set interestCashSettlementAmount -> quantity -> unit -> currency: + interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency + set interestCashSettlementAmount -> payerReceiver -> payerPartyReference: + if performance >= 0 then payer else receiver + set interestCashSettlementAmount -> payerReceiver -> receiverPartyReference: + if performance >= 0 then receiver else payer + + set interestCashSettlementAmount -> settlementDate -> adjustedDate: date + + set interestCashSettlementAmount -> settlementOrigin -> interestRatePayout: + interestRatePayout as-key func ResolveReset: <"Defines the interface for adopters to resolve a reset, given a trade state and a date."> - inputs: - tradeState TradeState (1..1) - date date (1..1) - output: - reset Reset (1..1) + inputs: + tradeState TradeState (1..1) + date date (1..1) + output: + reset Reset (1..1) func ResolvePerformanceObservationIdentifiers: <"Defines which attributes on the PerformancePayout should be used to locate and resolve the underlier's price, for example for the reset process."> - inputs: - payout PerformancePayout (1..1) - adjustedDate date (1..1) - output: - identifiers ObservationIdentifier (1..1) + inputs: + payout PerformancePayout (1..1) + adjustedDate date (1..1) + output: + identifiers ObservationIdentifier (1..1) alias adjustedFinalValuationDate: - ResolveAdjustableDate( payout -> valuationDates -> valuationDatesFinal -> valuationDate ) + ResolveAdjustableDate( + payout -> valuationDates -> valuationDatesFinal -> valuationDate + ) alias valuationDates: <"Determine which valuation date to get valuation time and type from."> - if adjustedDate < adjustedFinalValuationDate then - payout -> valuationDates -> valuationDatesInterim - else - payout -> valuationDates -> valuationDatesFinal - add identifiers -> observable -> productIdentifier: <"Represents the identifer for the equity underlier."> - payout -> underlier -> security -> productIdentifier - set identifiers -> observationDate: <"Specifies the date for which to retrieve the market data value(s). Selects the most recent valuation date."> - AdjustedValuationDates( payout -> valuationDates ) - filter item <= adjustedDate - then last - set identifiers -> observationTime: <"Specifies the time for which to retrieve the market data value(s)."> - ResolvePerformanceValuationTime(valuationDates -> valuationTime, - valuationDates -> valuationTimeType, - identifiers -> observable -> productIdentifier only-element, - valuationDates -> determinationMethod ) - set identifiers -> determinationMethodology -> determinationMethod: <"Identifies a more specific price should multiple prices for the underlier be available at the given date time, for example bid or ask prices."> - valuationDates -> determinationMethod + if adjustedDate < adjustedFinalValuationDate + then payout -> valuationDates -> valuationDatesInterim + else payout -> valuationDates -> valuationDatesFinal + add identifiers -> observable -> productIdentifier: <"Represents the identifer for the equity underlier."> + payout -> underlier -> security -> productIdentifier + set identifiers -> observationDate: <"Specifies the date for which to retrieve the market data value(s). Selects the most recent valuation date."> + AdjustedValuationDates(payout -> valuationDates) + filter item <= adjustedDate + then last + set identifiers -> observationTime: <"Specifies the time for which to retrieve the market data value(s)."> + ResolvePerformanceValuationTime( + valuationDates -> valuationTime, + valuationDates -> valuationTimeType, + identifiers -> observable -> productIdentifier only-element, + valuationDates -> determinationMethod + ) + set identifiers -> determinationMethodology -> determinationMethod: <"Identifies a more specific price should multiple prices for the underlier be available at the given date time, for example bid or ask prices."> + valuationDates -> determinationMethod func AdjustedValuationDates: - inputs: valuationDates ValuationDates (1..1) - output: adjustedValuationDates date (0..*) + inputs: + valuationDates ValuationDates (1..1) + output: + adjustedValuationDates date (0..*) set adjustedValuationDates: <"Build sorted list of adjusted valuation dates."> - [ ResolveAdjustableDates( valuationDates -> valuationDatesInterim -> valuationDates ), - ResolveAdjustableDate( valuationDates -> valuationDatesFinal -> valuationDate ) ] - sort + [ + ResolveAdjustableDates( + valuationDates -> valuationDatesInterim -> valuationDates + ), + ResolveAdjustableDate(valuationDates -> valuationDatesFinal -> valuationDate) + ] + sort func ResolvePerformanceValuationTime: <"Defines how to resolve the observation time from those specified in the Performance Valuation type."> - inputs: - valuationTime BusinessCenterTime (0..1) <"Represents the Equity Valuation terms from the Equity product definition."> - valuationTimeType TimeTypeEnum (0..1) <"The time of day at which the calculation agent values the underlying, for example the official closing time of the exchange."> - productIdentifier ProductIdentifier (1..1) <"Specifies the product identifier, along with the source, which should be used to determine the correct valuation time i.e. close times are different across exchanges."> - determinationMethod DeterminationMethodEnum (1..1) <"Specifies the method according to which an amount or a date is determined."> - output: - time TimeZone (1..1) - set time: - if valuationTime exists then TimeZoneFromBusinessCenterTime(valuationTime) - set time: - if valuationTimeType exists then ResolveTimeZoneFromTimeType(productIdentifier, valuationTimeType, determinationMethod) + inputs: + valuationTime BusinessCenterTime (0..1) <"Represents the Equity Valuation terms from the Equity product definition."> + valuationTimeType TimeTypeEnum (0..1) <"The time of day at which the calculation agent values the underlying, for example the official closing time of the exchange."> + productIdentifier ProductIdentifier (1..1) <"Specifies the product identifier, along with the source, which should be used to determine the correct valuation time i.e. close times are different across exchanges."> + determinationMethod DeterminationMethodEnum (1..1) <"Specifies the method according to which an amount or a date is determined."> + output: + time TimeZone (1..1) + set time: + if valuationTime exists + then TimeZoneFromBusinessCenterTime(valuationTime) + set time: + if valuationTimeType exists + then ResolveTimeZoneFromTimeType( + productIdentifier, + valuationTimeType, + determinationMethod + ) func ResolvePerformanceReset: <"Defines how to resolve the reset value for a performance payout."> - inputs: - performancePayout PerformancePayout (1..1) <"Represents the PerformancePayout to which the reset will apply."> - observation Observation (1..1) <"Represents the observation that will be used to compute the reset value."> - date date (1..1) <"Specifies the date of the reset."> - output: - reset Reset (1..1) - set reset -> resetValue: <"Assigns the observed value to the reset value."> - observation -> observedValue - set reset -> resetDate: - date - add reset -> observations: <"Assigns the observation required to compute the rest value as audit."> - observation + inputs: + performancePayout PerformancePayout (1..1) <"Represents the PerformancePayout to which the reset will apply."> + observation Observation (1..1) <"Represents the observation that will be used to compute the reset value."> + date date (1..1) <"Specifies the date of the reset."> + output: + reset Reset (1..1) + set reset -> resetValue: <"Assigns the observed value to the reset value."> + observation -> observedValue + set reset -> resetDate: date + add reset -> observations: <"Assigns the observation required to compute the rest value as audit."> + observation func EquityCashSettlementAmount: <"Represents Part 1 Section 12 of the 2018 ISDA CDM Equity Confirmation for Security Equity Swap, Para 72. 'Equity Cash Settlement Amount' means, in respect of an Equity Cash Settlement Date, an amount in the Settlement Currency determined by the Calculation Agent as of the Equity Valuation Date to which the Equity Cash Settlement Amount relates, pursuant to the following formula: Equity Cash Settlement Amount = ABS(Rate Of Return) * Equity Notional Amount."> - inputs: - tradeState TradeState (1..1) - date date (1..1) - output: - equityCashSettlementAmount Transfer (1..1) - - alias equityPerformancePayout: - tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> performancePayout only-element - alias equityPerformance: - EquityPerformance( tradeState -> trade, tradeState -> resetHistory only-element -> resetValue, date ) - alias payer: - ExtractCounterpartyByRole( tradeState -> trade -> tradableProduct -> counterparty, equityPerformancePayout -> payerReceiver -> payer ) -> partyReference - alias receiver: - ExtractCounterpartyByRole( tradeState -> trade -> tradableProduct -> counterparty, equityPerformancePayout -> payerReceiver -> receiver ) -> partyReference - - set equityCashSettlementAmount -> quantity -> value: <"Equity Cash Settlement Amount is defined here as Abs( Equity Performance ). Per the ISDA Definitions: Equity Performance = (Rate Of Return) Equity Notional Amount and Equity Cash Settlement Amount = ABS(Rate Of Return) Equity Notional Amount; so the calculation for Equity Cash Settlement Amount in the CDM is mathematically equivalent, with the added benefit that Rate of Return does not need to be recomputed, since it was already computed in the Reset Event."> - Abs(equityPerformance) - set equityCashSettlementAmount -> quantity -> unit-> currency: <"Does not handle the cross currency case. Only works in the case of a single trade lot."> + inputs: + tradeState TradeState (1..1) + date date (1..1) + output: + equityCashSettlementAmount Transfer (1..1) + + alias equityPerformancePayout: + tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> performancePayout only-element + alias equityPerformance: + EquityPerformance( + tradeState -> trade, + tradeState -> resetHistory only-element -> resetValue, + date + ) + alias payer: + ExtractCounterpartyByRole( + tradeState -> trade -> tradableProduct -> counterparty, + equityPerformancePayout -> payerReceiver -> payer + ) -> partyReference + alias receiver: + ExtractCounterpartyByRole( + tradeState -> trade -> tradableProduct -> counterparty, + equityPerformancePayout -> payerReceiver -> receiver + ) -> partyReference + + set equityCashSettlementAmount -> quantity -> value: <"Equity Cash Settlement Amount is defined here as Abs( Equity Performance ). Per the ISDA Definitions: Equity Performance = (Rate Of Return) Equity Notional Amount and Equity Cash Settlement Amount = ABS(Rate Of Return) Equity Notional Amount; so the calculation for Equity Cash Settlement Amount in the CDM is mathematically equivalent, with the added benefit that Rate of Return does not need to be recomputed, since it was already computed in the Reset Event."> + Abs(equityPerformance) + set equityCashSettlementAmount -> quantity -> unit -> currency: <"Does not handle the cross currency case. Only works in the case of a single trade lot."> ResolveEquityInitialPrice( - tradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> price - ) -> unit -> currency - set equityCashSettlementAmount -> payerReceiver -> payerPartyReference: - if equityPerformance >= 0 then payer else receiver - set equityCashSettlementAmount -> payerReceiver -> receiverPartyReference: - if equityPerformance >= 0 then receiver else payer + tradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> price + ) -> unit -> currency + set equityCashSettlementAmount -> payerReceiver -> payerPartyReference: + if equityPerformance >= 0 then payer else receiver + set equityCashSettlementAmount -> payerReceiver -> receiverPartyReference: + if equityPerformance >= 0 then receiver else payer set equityCashSettlementAmount -> settlementDate -> adjustedDate: ResolveCashSettlementDate(tradeState) - set equityCashSettlementAmount -> settlementOrigin -> performancePayout: - equityPerformancePayout as-key + set equityCashSettlementAmount -> settlementOrigin -> performancePayout: + equityPerformancePayout as-key func EquityPerformance: <"Part 1 Section 12 of the 2018 ISDA CDM Equity Confirmation for Security Equity Swap, Para 75. 'Equity Performance' means, in respect of an Equity Cash Settlement Date, an amount in the Settlement Currency determined by the Calculation Agent as of the Equity Valuation Date to which the Equity Cash Settlement Amount relates, pursuant to the following formula: Equity Performance = (Rate Of Return) Equity Notional Amount."> - inputs: - trade Trade (1..1) - observation Price (1..1) - date date (1..1) - output: - equityPerformance number (1..1) - - alias performancePayout: - trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> performancePayout only-element - alias periodStartPrice: <"Only works in the case of a single trade lot."> - ResolvePerformancePeriodStartPrice( - performancePayout, - trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> price, - trade -> tradableProduct -> tradeLot -> priceQuantity -> observable only-element, - date) - alias periodEndPrice: - observation - alias numberOfSecurities: - performancePayout -> priceQuantity -> quantitySchedule -> value / periodStartPrice -> value - alias rateOfReturn: - RateOfReturn(periodStartPrice, periodEndPrice) - alias notionalAmount: - EquityNotionalAmount(numberOfSecurities, periodEndPrice) - - condition PriceReturnTermsExists: - trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms exists - - set equityPerformance: - rateOfReturn * notionalAmount + inputs: + trade Trade (1..1) + observation Price (1..1) + date date (1..1) + output: + equityPerformance number (1..1) + + alias performancePayout: + trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> performancePayout only-element + alias periodStartPrice: <"Only works in the case of a single trade lot."> + ResolvePerformancePeriodStartPrice( + performancePayout, + trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> price, + trade -> tradableProduct -> tradeLot -> priceQuantity -> observable only-element, + date + ) + alias periodEndPrice: observation + alias numberOfSecurities: + performancePayout -> priceQuantity -> quantitySchedule -> value / periodStartPrice -> value + alias rateOfReturn: RateOfReturn(periodStartPrice, periodEndPrice) + alias notionalAmount: EquityNotionalAmount(numberOfSecurities, periodEndPrice) + + condition PriceReturnTermsExists: + trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms exists + + set equityPerformance: rateOfReturn * notionalAmount func RateOfReturn: <"Part 1 Section 12 of the 2018 ISDA CDM Equity Confirmation for Security Equity Swap, Para 139. 'Rate Of Return' means, in respect of any Equity Valuation Date, the amount determined pursuant to the following formula: Rate Of Return = (Final Price - Initial Price) / Initial Price."> - inputs: - initialPrice PriceSchedule (1..1) - finalPrice PriceSchedule (1..1) - output: - rateOfReturn number (1..1) - - alias initialPriceValue: - initialPrice->value - alias finalPriceValue: - finalPrice->value - set rateOfReturn: - if finalPriceValue exists and initialPriceValue exists and initialPriceValue > 0 then - (finalPriceValue - initialPriceValue) / initialPriceValue + inputs: + initialPrice PriceSchedule (1..1) + finalPrice PriceSchedule (1..1) + output: + rateOfReturn number (1..1) + + alias initialPriceValue: initialPrice -> value + alias finalPriceValue: finalPrice -> value + set rateOfReturn: + if finalPriceValue exists and initialPriceValue exists and initialPriceValue > 0 + then (finalPriceValue - initialPriceValue) / initialPriceValue func EquityNotionalAmount: <"Part 1 Section 12 of the 2018 ISDA CDM Equity Confirmation for Security Equity Swap, Para 74. 'Equity Notional Amount' means the Number Of Securities times the Initial Price, adjusted, if applicable, as provided in Part 1 Section 2.2, 'Equity Notional Reset'. If 'With Reset' is the Equity Notional Reset Election, then in respect of each Equity Cash Settlement Date: (i) the Equity Notional Amount applicable in respect of the first Equity Cash Settlement Date will be the amount specified as such in the definition of Equity Notional Amount; (ii) the Equity Notional Amount applicable in respect of each subsequent Equity Cash Settlement Date will be the sum of (a) the Equity Notional Amount in respect of the prior Equity Cash Settlement Date and (b) the Equity Performance, whether positive or negative, in respect of the prior Equity Cash Settlement Date; and (iii) the Floating Notional Amount will be adjusted as provided in sub-clauses (i) and (ii) above as though it were an Equity Notional Amount."> - inputs: - numberOfSecurities number (1..1) - price Price (1..1) - output: - equityNotionalAmount number (1..1) - alias priceValue: - price->value - set equityNotionalAmount: - numberOfSecurities * priceValue + inputs: + numberOfSecurities number (1..1) + price Price (1..1) + output: + equityNotionalAmount number (1..1) + alias priceValue: price -> value + set equityNotionalAmount: numberOfSecurities * priceValue func Create_StockSplit: <"Function specification to create the fully-formed business event which represents the impact of a stock split (or a reverse stock split) on an Equity Derivatives contract on a certain date."> - inputs: - stockSplitInstruction StockSplitInstruction (1..1) - before TradeState (1..1) + inputs: + stockSplitInstruction StockSplitInstruction (1..1) + before TradeState (1..1) output: - after TradeState (1..1) - - alias preSplitNumberOfShares: <"Only works in the case of a single trade lot."> - FilterQuantityByFinancialUnit( before -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> quantity, FinancialUnitEnum -> Share ) only-element -> value - alias postSplitNumberOfShares: <"The adjustment ratio is be multiplied by existing shares in an equity derivative contract or other positions to determine the post-split number of shares."> - NonNegativeQuantitySchedule { + after TradeState (1..1) + + alias preSplitNumberOfShares: <"Only works in the case of a single trade lot."> + FilterQuantityByFinancialUnit( + before -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> quantity, + FinancialUnitEnum -> Share + ) + only-element -> value + alias postSplitNumberOfShares: <"The adjustment ratio is be multiplied by existing shares in an equity derivative contract or other positions to determine the post-split number of shares."> + NonNegativeQuantitySchedule { value: preSplitNumberOfShares * stockSplitInstruction -> adjustmentRatio, unit: UnitType { - financialUnit: FinancialUnitEnum -> Share, - ... - }, + financialUnit: FinancialUnitEnum -> Share, + ... + }, ... } - alias preSplitPrice: - before -> trade -> tradableProduct -> tradeLot -> priceQuantity -> price - filter perUnitOf -> financialUnit = FinancialUnitEnum -> Share - then only-element - alias postSplitPrice: <"The pre-split price is divided by the adjustment ratio to determine the post-split price."> - Price { + alias preSplitPrice: + before -> trade -> tradableProduct -> tradeLot -> priceQuantity -> price + filter perUnitOf -> financialUnit = FinancialUnitEnum -> Share + then only-element + alias postSplitPrice: <"The pre-split price is divided by the adjustment ratio to determine the post-split price."> + Price { value: preSplitPrice -> value / stockSplitInstruction -> adjustmentRatio, unit: preSplitPrice -> unit, perUnitOf: preSplitPrice -> perUnitOf, @@ -383,8 +410,8 @@ func Create_StockSplit: <"Function specification to create the fully-formed busi cashPrice: preSplitPrice -> cashPrice, datedValue: empty } - alias postSplitPriceQuantity: - PriceQuantity { + alias postSplitPriceQuantity: + PriceQuantity { price: postSplitPrice, quantity: postSplitNumberOfShares, ... @@ -400,401 +427,470 @@ func Create_StockSplit: <"Function specification to create the fully-formed busi quantityChange: quantityChangeInstruction, ... } - set after: - Create_TradeState( primitiveInstruction, before ) + set after: Create_TradeState(primitiveInstruction, before) func Create_Execution: <"Specifies the function to compose an execution based on a minimum required set of inputs: product, quantity, parties, etc."> - inputs: - instruction ExecutionInstruction (1..1) <"Instructions to be used as an input to the function"> - output: - execution TradeState (1..1) <"Execution primitive event with absent before state and an after state containing the tradable product, parties, associated party roles and the known settlement terms."> - - set execution -> trade -> tradableProduct -> product: <"Assign the product input to the tradable product of the execution object."> - instruction -> product - add execution -> trade -> tradableProduct -> tradeLot -> priceQuantity: <"Assign the prices and quantities input to the tradable product of the execution object."> - instruction -> priceQuantity - add execution -> trade -> tradableProduct -> counterparty: <"Assign the counterparty input to the tradable product of the execution object."> - instruction -> counterparty - add execution -> trade -> tradableProduct -> ancillaryParty: <"Assign the ancillaryRole input to the tradable product of the execution object."> - instruction -> ancillaryParty - add execution -> trade -> party: <"Assign the parties input to the execution object."> - instruction -> parties - add execution -> trade -> partyRole: <"Assign the party roles input to the execution object."> - instruction -> partyRoles - set execution -> trade -> executionDetails: <"Assign the settlement terms input to the execution object."> - instruction -> executionDetails - set execution-> trade -> tradeDate: <"Assign the tradeDate input to the execution object."> - instruction -> tradeDate - add execution-> trade -> tradeIdentifier: <"Assign the identifier input to the execution object."> - instruction -> tradeIdentifier - set execution -> state -> positionState: <"Assign the position status to executed."> - PositionStatusEnum -> Executed - set execution -> trade -> collateral: <"Assign the anticpated collateral details to the tradable product of the excution object."> - instruction ->collateral + inputs: + instruction ExecutionInstruction (1..1) <"Instructions to be used as an input to the function"> + output: + execution TradeState (1..1) <"Execution primitive event with absent before state and an after state containing the tradable product, parties, associated party roles and the known settlement terms."> + + set execution -> trade -> tradableProduct -> product: <"Assign the product input to the tradable product of the execution object."> + instruction -> product + add execution -> trade -> tradableProduct -> tradeLot -> priceQuantity: <"Assign the prices and quantities input to the tradable product of the execution object."> + instruction -> priceQuantity + add execution -> trade -> tradableProduct -> counterparty: <"Assign the counterparty input to the tradable product of the execution object."> + instruction -> counterparty + add execution -> trade -> tradableProduct -> ancillaryParty: <"Assign the ancillaryRole input to the tradable product of the execution object."> + instruction -> ancillaryParty + add execution -> trade -> party: <"Assign the parties input to the execution object."> + instruction -> parties + add execution -> trade -> partyRole: <"Assign the party roles input to the execution object."> + instruction -> partyRoles + set execution -> trade -> executionDetails: <"Assign the settlement terms input to the execution object."> + instruction -> executionDetails + set execution -> trade -> tradeDate: <"Assign the tradeDate input to the execution object."> + instruction -> tradeDate + add execution -> trade -> tradeIdentifier: <"Assign the identifier input to the execution object."> + instruction -> tradeIdentifier + set execution -> state -> positionState: <"Assign the position status to executed."> + PositionStatusEnum -> Executed + set execution -> trade -> collateral: <"Assign the anticpated collateral details to the tradable product of the excution object."> + instruction -> collateral func Create_ContractFormationInstruction: inputs: legalAgreement LegalAgreement (0..*) output: instruction ContractFormationInstruction (1..1) - condition ExecutedAgreement: <"The full formation of a contract can only be completed with executed legal agreements if any."> - if legalAgreement exists then legalAgreement-> agreementDate exists + condition ExecutedAgreement: <"The full formation of a contract can only be completed with executed legal agreements if any."> + if legalAgreement exists + then legalAgreement -> agreementDate exists - add instruction -> legalAgreement: - legalAgreement + add instruction -> legalAgreement: legalAgreement func Create_ContractFormation: <"Function specification that represents an executed trade for a contractual product that has been affirmed (or confirmed) by the two parties. The formed contract can reference a legal agreement for instance a master agreement, by using the optional legalAgreement input."> - inputs: - instruction ContractFormationInstruction (1..1) <"Instructions to be used as an input to the function"> + inputs: + instruction ContractFormationInstruction (1..1) <"Instructions to be used as an input to the function"> execution TradeState (1..1) - output: - contractFormation TradeState (1..1) <"Primitive event containing the execution as its before state and the contract as the after state."> + output: + contractFormation TradeState (1..1) <"Primitive event containing the execution as its before state and the contract as the after state."> - set contractFormation : - execution - add contractFormation -> trade -> contractDetails -> documentation: <"Append any legal agreements from the instructions."> + set contractFormation: execution + add contractFormation -> trade -> contractDetails -> documentation: <"Append any legal agreements from the instructions."> instruction -> legalAgreement - set contractFormation -> state -> positionState: <"Assign the position status to formed."> + set contractFormation -> state -> positionState: <"Assign the position status to formed."> PositionStatusEnum -> Formed func Create_Exercise: <"Defines the process of putting into effect the rights specified in an options contract, such as to buy or sell a security. Once exercised the option contract is terminated."> + inputs: + exerciseInstruction ExerciseInstruction (1..1) <"Instruction containing the terms of the option exercise."> + originalTrade TradeState (1..1) <"The original trade to be split, which must be of single cardinality."> + output: + exercise TradeState (1..*) + + alias tradableProduct: <"Extracts the originally traded product."> + originalTrade -> trade -> tradableProduct + + alias optionPayout: <"Extracts the optionPayout from exerciseInstruction if provided or from the original trade if absent"> + if exerciseInstruction -> exerciseOption exists + then exerciseInstruction -> exerciseOption + else tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> optionPayout only-element + + alias underlier: <"Extracts the underlying financial product, upon which the option decision is contingent. Requires that the original contract contains an option payout."> + optionPayout -> underlier + + alias execution: <"Creates the execution primitive describing the exchange of the underlying product, either as a cash transfer or as the formation of a new contractual product between parties."> + Create_Execution( + ExecutionInstruction { + product: underlier, + priceQuantity: tradableProduct -> tradeLot only-element -> priceQuantity, + counterparty: tradableProduct -> counterparty, + ancillaryParty: tradableProduct -> ancillaryParty, + parties: originalTrade -> trade -> party, + partyRoles: originalTrade -> trade -> partyRole, + executionDetails: empty, + tradeDate: originalTrade -> trade -> tradeDate, + tradeIdentifier: exerciseInstruction -> replacementTradeIdentifier, + ... + } + ) - inputs: - exerciseInstruction ExerciseInstruction (1..1) <"Instruction containing the terms of the option exercise."> - originalTrade TradeState (1..1) <"The original trade to be split, which must be of single cardinality."> - output: - exercise TradeState (1..*) - - alias tradableProduct: <"Extracts the originally traded product."> - originalTrade -> trade -> tradableProduct - - alias optionPayout: <"Extracts the optionPayout from exerciseInstruction if provided or from the original trade if absent"> - if exerciseInstruction -> exerciseOption exists then exerciseInstruction -> exerciseOption - else tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> optionPayout only-element - - alias underlier: <"Extracts the underlying financial product, upon which the option decision is contingent. Requires that the original contract contains an option payout."> - optionPayout -> underlier - - alias execution: <"Creates the execution primitive describing the exchange of the underlying product, either as a cash transfer or as the formation of a new contractual product between parties."> - Create_Execution( - ExecutionInstruction { - product: underlier, - priceQuantity: tradableProduct -> tradeLot only-element -> priceQuantity, - counterparty: tradableProduct -> counterparty, - ancillaryParty: tradableProduct -> ancillaryParty, - parties: originalTrade -> trade -> party, - partyRoles: originalTrade -> trade -> partyRole, - executionDetails: empty, - tradeDate: originalTrade -> trade -> tradeDate, - tradeIdentifier: exerciseInstruction -> replacementTradeIdentifier, - ... - } - ) - - condition OptionPayoutExists: <"Requires that the original contract contains an option payout."> - optionPayout exists + condition OptionPayoutExists: <"Requires that the original contract contains an option payout."> + optionPayout exists - add exercise: <"Reduces notional / quantity of option by the amount exercised."> - Create_TradeState( exerciseInstruction->exerciseQuantity, originalTrade ) + add exercise: <"Reduces notional / quantity of option by the amount exercised."> + Create_TradeState(exerciseInstruction -> exerciseQuantity, originalTrade) - add exercise: <"Adds the replacement trade"> - execution + add exercise: <"Adds the replacement trade"> + execution func Create_Reset: <"Defines how a Reset should be constructed."> - inputs: - instruction ResetInstruction (1..1) <"Specifies the reset instructions."> - tradeState TradeState (1..1) <"Specifies the trade that is resetting."> - output: - reset TradeState (1..1) + inputs: + instruction ResetInstruction (1..1) <"Specifies the reset instructions."> + tradeState TradeState (1..1) <"Specifies the trade that is resetting."> + output: + reset TradeState (1..1) - alias payout: <"Specifies the payout that is resetting."> - instruction -> payout + alias payout: <"Specifies the payout that is resetting."> + instruction -> payout - alias observationDate: <"If the rateRecordDate is provided in the instructions, it should used as the observation date when determining the fixing rate for an interest rate payout."> - if instruction -> rateRecordDate exists - then instruction -> rateRecordDate - else instruction -> resetDate + alias observationDate: <"If the rateRecordDate is provided in the instructions, it should used as the observation date when determining the fixing rate for an interest rate payout."> + if instruction -> rateRecordDate exists + then instruction -> rateRecordDate + else instruction -> resetDate - alias observationIdentifiers: <"Resolves the ObservationIdentifier to be used to derive the single observation to be used in the reset calculation. Resolving the ObservationIdentifier is dependent on the type of payout in use."> - if payout -> performancePayout count = 1 then ResolvePerformanceObservationIdentifiers(payout -> performancePayout only-element, instruction -> resetDate) - else if payout -> interestRatePayout exists then ResolveInterestRateObservationIdentifiers(payout -> interestRatePayout only-element, observationDate) + alias observationIdentifiers: <"Resolves the ObservationIdentifier to be used to derive the single observation to be used in the reset calculation. Resolving the ObservationIdentifier is dependent on the type of payout in use."> + if payout -> performancePayout count = 1 + then ResolvePerformanceObservationIdentifiers( + payout -> performancePayout only-element, + instruction -> resetDate + ) + else if payout -> interestRatePayout exists + then ResolveInterestRateObservationIdentifiers( + payout -> interestRatePayout only-element, + observationDate + ) - alias observation: <"Represents the single observation that will be used to compute the reset value."> - ResolveObservation([observationIdentifiers], empty) + alias observation: <"Represents the single observation that will be used to compute the reset value."> + ResolveObservation([observationIdentifiers], empty) - set reset: - tradeState + set reset: tradeState - add reset -> resetHistory: <"To handle the various ways Contracts can change over time, "> - if payout -> performancePayout count = 1 then ResolvePerformanceReset(payout -> performancePayout only-element, observation, instruction -> resetDate) - else if payout -> interestRatePayout exists then ResolveInterestRateReset(payout -> interestRatePayout, observation, instruction -> resetDate, instruction -> rateRecordDate) + add reset -> resetHistory: <"To handle the various ways Contracts can change over time, "> + if payout -> performancePayout count = 1 + then ResolvePerformanceReset( + payout -> performancePayout only-element, + observation, + instruction -> resetDate + ) + else if payout -> interestRatePayout exists + then ResolveInterestRateReset( + payout -> interestRatePayout, + observation, + instruction -> resetDate, + instruction -> rateRecordDate + ) func CalculateTransfer: <"Function specification to calculate a transfer, e.g. following a reset on a contract"> - inputs: - instruction CalculateTransferInstruction (1..1) - output: - transfer Transfer (0..*) - - add transfer: <"Assigns the result of the Create_Transfer function to the transferHistory attribute."> - if instruction -> payout -> interestRatePayout exists or instruction -> payout -> performancePayout exists or instruction -> payout -> assetPayout exists then - Create_CashTransfer( instruction ) - - add transfer: <"Assigns the result of the Create_SecurityTransfer function to the transferHistory attribute."> - if instruction -> payout -> securityPayout exists then - Create_SecurityTransfer( instruction -> tradeState, instruction -> date, instruction->quantity ) + inputs: + instruction CalculateTransferInstruction (1..1) + output: + transfer Transfer (0..*) + + add transfer: <"Assigns the result of the Create_Transfer function to the transferHistory attribute."> + if instruction -> payout -> interestRatePayout exists + or instruction -> payout -> performancePayout exists + or instruction -> payout -> assetPayout exists + then Create_CashTransfer(instruction) + + add transfer: <"Assigns the result of the Create_SecurityTransfer function to the transferHistory attribute."> + if instruction -> payout -> securityPayout exists + then Create_SecurityTransfer( + instruction -> tradeState, + instruction -> date, + instruction -> quantity + ) add transfer: <"Assigns the result of the Create_AssetTransfer function to the transferHistory attribute."> - if instruction -> payout -> assetPayout exists then - Create_AssetTransfer( instruction ) - + if instruction -> payout -> assetPayout exists + then Create_AssetTransfer(instruction) + func Create_Transfer: <"Defines how a transfer should be constructed, when representing the exchange of cash between parties."> - [docReference ICMA GMRA namingConvention "Purchase Price" - provision "As defined in the GMRA, paragraph 2(nn) The Purchase Price is the price at which the Purchased Securities are sold or are to be sold by Seller to Buyer."] - [docReference ICMA ERCCBestPractice namingConvention "Purchase Price" - provision "ERCC Guide: Annex II Glossary of repo terminology. The term for the sum of money paid by the Buyer to the Seller on the Purchase Date of a repo. It is equal to the initial Market Value of the collateral less any haircut or initial margin (called Margin Ratio in the GMRA)."] - inputs: - instruction TransferInstruction (1..1) - tradeState TradeState (1..1) <"Represents the trade and associated state on which to construct the Transfer data type."> - output: - transfer TradeState (1..1) + [docReference ICMA GMRA namingConvention "Purchase Price" + provision "As defined in the GMRA, paragraph 2(nn) The Purchase Price is the price at which the Purchased Securities are sold or are to be sold by Seller to Buyer."] + [docReference ICMA ERCCBestPractice namingConvention "Purchase Price" + provision "ERCC Guide: Annex II Glossary of repo terminology. The term for the sum of money paid by the Buyer to the Seller on the Purchase Date of a repo. It is equal to the initial Market Value of the collateral less any haircut or initial margin (called Margin Ratio in the GMRA)."] + inputs: + instruction TransferInstruction (1..1) + tradeState TradeState (1..1) <"Represents the trade and associated state on which to construct the Transfer data type."> + output: + transfer TradeState (1..1) - set transfer : tradeState + set transfer: tradeState - add transfer -> transferHistory: <"Assigns the transfer contained in the transfer instruction to the transferHistory attribute."> - instruction -> transferState + add transfer -> transferHistory: <"Assigns the transfer contained in the transfer instruction to the transferHistory attribute."> + instruction -> transferState func Create_CashTransfer: <"Defines how Transfer that represents an exchange of cash, should be constructed."> - inputs: - instruction CalculateTransferInstruction (1..1) - output: - transfer Transfer (1..1) + inputs: + instruction CalculateTransferInstruction (1..1) + output: + transfer Transfer (1..1) - set transfer: <"Resolves the cashflow due to be transferred from the trade and associated state."> - ResolveTransfer( instruction ) + set transfer: <"Resolves the cashflow due to be transferred from the trade and associated state."> + ResolveTransfer(instruction) func Create_SecurityTransfer: <"Defines the creation of a Transfer, given a Trade State and date."> - inputs: - tradeState TradeState (1..1) - date date (1..1) - quantity Quantity (0..1) <"Specifies quantity amount returned if not the full amount from the TradeState, e.g. partial return"> - output: - transfer Transfer (1..1) - - post-condition UnitsAndObservable: - if tradeState -> trade -> tradableProduct -> product -> security exists - and tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> settlementTerms -> transferSettlementType only-element = TransferSettlementEnum -> DeliveryVersusPayment - then transfer -> quantity -> unit -> currency only exists - and transfer -> observable -> productIdentifier exists + inputs: + tradeState TradeState (1..1) + date date (1..1) + quantity Quantity (0..1) <"Specifies quantity amount returned if not the full amount from the TradeState, e.g. partial return"> + output: + transfer Transfer (1..1) + + post-condition UnitsAndObservable: + if tradeState -> trade -> tradableProduct -> product -> security exists + and tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> settlementTerms -> transferSettlementType only-element = TransferSettlementEnum -> DeliveryVersusPayment + then transfer -> quantity -> unit -> currency only exists + and transfer -> observable -> productIdentifier exists func Create_AssetTransfer: <"Defines how Transfer that represents an exchange of asset based on an asset payout, should be constructed."> - inputs: - instruction CalculateTransferInstruction (1..1) - output: - transfer Transfer (1..1) + inputs: + instruction CalculateTransferInstruction (1..1) + output: + transfer Transfer (1..1) - alias assetPayout: - instruction -> tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout only-element + alias assetPayout: + instruction -> tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout only-element - alias tradeQuantity: <"Security quantity obtained by filtering on the trade quantity"> - FilterQuantityByFinancialUnit(instruction -> tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> quantity, FinancialUnitEnum -> Share) only-element + alias tradeQuantity: <"Security quantity obtained by filtering on the trade quantity"> + FilterQuantityByFinancialUnit( + instruction -> tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> quantity, + FinancialUnitEnum -> Share + ) + only-element - alias securityQuantity: - if instruction -> quantity exists - then instruction -> quantity + alias securityQuantity: + if instruction -> quantity exists + then instruction -> quantity else NonNegativeQuantity { - value: tradeQuantity -> value, + value: tradeQuantity -> value, unit: tradeQuantity -> unit, ... } alias securityPrice: FilterPrice( - instruction -> tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> price, - PriceTypeEnum -> AssetPrice, - empty, - empty - ) - - condition ShareUnits: - if instruction -> quantity exists - then instruction -> quantity -> unit -> financialUnit = FinancialUnitEnum -> Share - - set transfer -> quantity: - NonNegativeQuantity { - value: securityQuantity -> value, + instruction -> tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> price, + PriceTypeEnum -> AssetPrice, + empty, + empty + ) + + condition ShareUnits: + if instruction -> quantity exists + then instruction -> quantity -> unit -> financialUnit = FinancialUnitEnum -> Share + + set transfer -> quantity: + NonNegativeQuantity { + value: securityQuantity -> value, unit: securityQuantity -> unit, ... } - add transfer -> observable -> productIdentifier: - assetPayout -> securityInformation -> security -> productIdentifier - - set transfer -> payerReceiver -> payerPartyReference: - if instruction -> payerReceiver -> payer exists then - ExtractCounterpartyByRole( instruction -> tradeState -> trade -> tradableProduct -> counterparty, instruction -> payerReceiver -> payer ) -> partyReference - else if assetPayout -> payerReceiver -> payer exists then - ExtractCounterpartyByRole( instruction -> tradeState -> trade -> tradableProduct -> counterparty, assetPayout -> payerReceiver -> payer ) -> partyReference - - set transfer -> payerReceiver -> receiverPartyReference: - if instruction -> payerReceiver -> payer exists then - ExtractCounterpartyByRole( instruction -> tradeState -> trade -> tradableProduct -> counterparty, instruction -> payerReceiver -> receiver ) -> partyReference - else if assetPayout -> payerReceiver -> receiver exists then - ExtractCounterpartyByRole( instruction -> tradeState -> trade -> tradableProduct -> counterparty, assetPayout -> payerReceiver -> receiver ) -> partyReference - - set transfer -> settlementDate -> adjustedDate: - instruction -> date + add transfer -> observable -> productIdentifier: + assetPayout -> securityInformation -> security -> productIdentifier + + set transfer -> payerReceiver -> payerPartyReference: + if instruction -> payerReceiver -> payer exists + then ExtractCounterpartyByRole( + instruction -> tradeState -> trade -> tradableProduct -> counterparty, + instruction -> payerReceiver -> payer + ) -> partyReference + else if assetPayout -> payerReceiver -> payer exists + then ExtractCounterpartyByRole( + instruction -> tradeState -> trade -> tradableProduct -> counterparty, + assetPayout -> payerReceiver -> payer + ) -> partyReference + + set transfer -> payerReceiver -> receiverPartyReference: + if instruction -> payerReceiver -> payer exists + then ExtractCounterpartyByRole( + instruction -> tradeState -> trade -> tradableProduct -> counterparty, + instruction -> payerReceiver -> receiver + ) -> partyReference + else if assetPayout -> payerReceiver -> receiver exists + then ExtractCounterpartyByRole( + instruction -> tradeState -> trade -> tradableProduct -> counterparty, + assetPayout -> payerReceiver -> receiver + ) -> partyReference + + set transfer -> settlementDate -> adjustedDate: instruction -> date set transfer -> settlementOrigin -> assetPayout: - if instruction -> tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout exists - then instruction -> tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout only-element - as-key + if instruction -> tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout exists + then instruction -> tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout only-element + as-key func ResolveTransfer: <"Defines how to calculate the amount due to be transferred after a Reset Event."> - inputs: - instruction CalculateTransferInstruction (1..1) - output: - transfer Transfer (1..1) - alias payout: - instruction -> payout - set transfer: - if payout -> assetPayout exists - then SecurityFinanceCashSettlementAmount(instruction -> tradeState, instruction -> date, instruction -> quantity, instruction -> payerReceiver) - else if payout -> performancePayout exists - then EquityCashSettlementAmount(instruction -> tradeState, instruction -> date) - else if payout -> interestRatePayout -> rateSpecification -> floatingRate exists - or payout -> interestRatePayout -> rateSpecification -> fixedRate exists - then InterestCashSettlementAmount(instruction -> tradeState, payout -> interestRatePayout only-element, instruction -> resets, instruction -> date) - set transfer -> settlementDate -> adjustedDate: - instruction -> date + inputs: + instruction CalculateTransferInstruction (1..1) + output: + transfer Transfer (1..1) + alias payout: instruction -> payout + set transfer: + if payout -> assetPayout exists + then SecurityFinanceCashSettlementAmount( + instruction -> tradeState, + instruction -> date, + instruction -> quantity, + instruction -> payerReceiver + ) + else if payout -> performancePayout exists + then EquityCashSettlementAmount(instruction -> tradeState, instruction -> date) + else if payout -> interestRatePayout -> rateSpecification -> floatingRate exists + or payout -> interestRatePayout -> rateSpecification -> fixedRate exists + then InterestCashSettlementAmount( + instruction -> tradeState, + payout -> interestRatePayout only-element, + instruction -> resets, + instruction -> date + ) + set transfer -> settlementDate -> adjustedDate: instruction -> date func ResolveCashSettlementDate: <"A product agnostic function that resolves the settlement date of the payout for the period in question"> - inputs: tradeState TradeState (1..1) - output: date date (1..1) + inputs: + tradeState TradeState (1..1) + output: + date date (1..1) func SecurityFinanceCashSettlementAmount: - [docReference ICMA GMRA namingConvention "Repurchase Price" - provision "As defined in GMRA paragraph 2(rr) The Repurchase Price is the sum of Purchase Price and Price Differential."] - [docReference ICMA ERCCBestPractice namingConvention "Repurchase Price" - provision "ERCC Guide: Annex II Glossary of repo terminology. The term for the sum of money to be paid by the Seller of a repo to the Buyer on the Repurchase Date to buy back equivalent collateral. It is equal to the Purchase Price plus repo interest. This term also applies to the value of the cash owed to the Buyer on any day during the term of a repo, that is, the Purchase Price plus repo interest accrued up to that particular date. In the case of Buy/Sell-Backs, the Repurchase Price is net of the amount of any coupon, dividend or other income on the collateral paid to the Buyer during the life of the transaction plus reinvestment income to compensate for the delayed payment."] - inputs: - tradeState TradeState (1..1) - date date (1..1) - quantity Quantity (0..1) <"Specifies quantity amount returned if not the full amount from the TradeState, e.g. partial return"> - payerReceiver PayerReceiver (0..1) - - output: - cashSettlementAmount Transfer (1..1) - - alias assetPayout: - tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout only-element - - alias collateral: - tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> collateral - - alias securityQuantity: <"Specifies the number of securities."> - if quantity exists - then quantity - else FilterQuantityByFinancialUnit( tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> quantity, FinancialUnitEnum -> Share) + [docReference ICMA GMRA namingConvention "Repurchase Price" + provision "As defined in GMRA paragraph 2(rr) The Repurchase Price is the sum of Purchase Price and Price Differential."] + [docReference ICMA ERCCBestPractice namingConvention "Repurchase Price" + provision "ERCC Guide: Annex II Glossary of repo terminology. The term for the sum of money to be paid by the Seller of a repo to the Buyer on the Repurchase Date to buy back equivalent collateral. It is equal to the Purchase Price plus repo interest. This term also applies to the value of the cash owed to the Buyer on any day during the term of a repo, that is, the Purchase Price plus repo interest accrued up to that particular date. In the case of Buy/Sell-Backs, the Repurchase Price is net of the amount of any coupon, dividend or other income on the collateral paid to the Buyer during the life of the transaction plus reinvestment income to compensate for the delayed payment."] + inputs: + tradeState TradeState (1..1) + date date (1..1) + quantity Quantity (0..1) <"Specifies quantity amount returned if not the full amount from the TradeState, e.g. partial return"> + payerReceiver PayerReceiver (0..1) + output: + cashSettlementAmount Transfer (1..1) + + alias assetPayout: + tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout only-element + + alias collateral: + tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> collateral + + alias securityQuantity: <"Specifies the number of securities."> + if quantity exists + then quantity + else FilterQuantityByFinancialUnit( + tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> quantity, + FinancialUnitEnum -> Share + ) alias securityPrice: <"Specifies the price per security."> FilterPrice( - tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> price, - PriceTypeEnum -> AssetPrice, - empty, - empty - ) - - alias marginRatio: - if collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> haircutPercentage exists - then 1/(1.0-collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> haircutPercentage) - else if collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> marginPercentage exists - then collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> marginPercentage - else 1.0 - - condition ShareUnitExists: - if quantity exists - then quantity -> unit -> financialUnit = FinancialUnitEnum -> Share + tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> price, + PriceTypeEnum -> AssetPrice, + empty, + empty + ) + + alias marginRatio: + if collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> haircutPercentage exists + then 1 / (1.0 - collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> haircutPercentage) + else if collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> marginPercentage exists + then collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> marginPercentage + else 1.0 + + condition ShareUnitExists: + if quantity exists + then quantity -> unit -> financialUnit = FinancialUnitEnum -> Share condition ProductIdentifiersMatch: tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> observable -> productIdentifier = assetPayout -> securityInformation -> security -> productIdentifier - set cashSettlementAmount -> quantity -> value: + set cashSettlementAmount -> quantity -> value: securityPrice -> value * securityQuantity -> value * marginRatio - set cashSettlementAmount -> quantity -> unit -> currency: - securityPrice -> unit -> currency - - set cashSettlementAmount -> payerReceiver -> payerPartyReference: - if payerReceiver exists then - ExtractCounterpartyByRole( tradeState -> trade -> tradableProduct -> counterparty, payerReceiver -> receiver ) -> partyReference - else if assetPayout -> payerReceiver -> receiver exists then - ExtractCounterpartyByRole( tradeState -> trade -> tradableProduct -> counterparty, assetPayout -> payerReceiver -> receiver ) -> partyReference - - set cashSettlementAmount -> payerReceiver -> receiverPartyReference: - if payerReceiver exists then - ExtractCounterpartyByRole( tradeState -> trade -> tradableProduct -> counterparty, payerReceiver -> payer ) -> partyReference - else if assetPayout -> payerReceiver -> payer exists then - ExtractCounterpartyByRole( tradeState -> trade -> tradableProduct -> counterparty, assetPayout -> payerReceiver -> payer ) -> partyReference - - set cashSettlementAmount -> settlementDate -> adjustedDate: - date - - set cashSettlementAmount -> settlementOrigin -> assetPayout: - assetPayout as-key + set cashSettlementAmount -> quantity -> unit -> currency: + securityPrice -> unit -> currency + + set cashSettlementAmount -> payerReceiver -> payerPartyReference: + if payerReceiver exists + then ExtractCounterpartyByRole( + tradeState -> trade -> tradableProduct -> counterparty, + payerReceiver -> receiver + ) -> partyReference + else if assetPayout -> payerReceiver -> receiver exists + then ExtractCounterpartyByRole( + tradeState -> trade -> tradableProduct -> counterparty, + assetPayout -> payerReceiver -> receiver + ) -> partyReference + + set cashSettlementAmount -> payerReceiver -> receiverPartyReference: + if payerReceiver exists + then ExtractCounterpartyByRole( + tradeState -> trade -> tradableProduct -> counterparty, + payerReceiver -> payer + ) -> partyReference + else if assetPayout -> payerReceiver -> payer exists + then ExtractCounterpartyByRole( + tradeState -> trade -> tradableProduct -> counterparty, + assetPayout -> payerReceiver -> payer + ) -> partyReference + + set cashSettlementAmount -> settlementDate -> adjustedDate: date + + set cashSettlementAmount -> settlementOrigin -> assetPayout: assetPayout as-key func Create_Split: <"Defines the logic for splitting a trade into separate copies. The split instruction contains a breakdown into N set of primitive instructions. Each set contains the primitive instructions to be applied to each post-split trade, eventually producing N trades. The split function underpins a number of business events such as clearing or allocation."> - inputs: - breakdown PrimitiveInstruction (1..*) <"Each primitive instruction contains the set of instructions to be applied to each post-split trade."> - originalTrade TradeState (1..1) <"The original trade to be split, which must be of single cardinality."> - output: - splitTrade TradeState (1..*) + inputs: + breakdown PrimitiveInstruction (1..*) <"Each primitive instruction contains the set of instructions to be applied to each post-split trade."> + originalTrade TradeState (1..1) <"The original trade to be split, which must be of single cardinality."> + output: + splitTrade TradeState (1..*) - add splitTrade: <"Iterate over each breakdown and apply the set of primitive instructions to each copy of the original trade."> - breakdown - extract Create_TradeState(item, originalTrade) + add splitTrade: <"Iterate over each breakdown and apply the set of primitive instructions to each copy of the original trade."> + breakdown extract Create_TradeState(item, originalTrade) func Create_PartyChange: <"Defines the logic for changing one of the counterparties on a trade. A new trade identifier must be specified as a change of party results in a new trade. An ancillary party can also be specified, for instance to refer to the original executing party on the new trade."> - inputs: - counterparty Counterparty (1..1) <"The counterparty to change and the role it plays in the transaction."> - ancillaryParty AncillaryParty (0..1) <"Optional ancillary party, which can be used to keep a reference to the original executing party, for instance."> - partyRole PartyRole (0..1) + inputs: + counterparty Counterparty (1..1) <"The counterparty to change and the role it plays in the transaction."> + ancillaryParty AncillaryParty (0..1) <"Optional ancillary party, which can be used to keep a reference to the original executing party, for instance."> + partyRole PartyRole (0..1) tradeId TradeIdentifier (1..*) <"A mandatory trade identifier must be specified, as the chnage of party results in a new trade."> - originalTrade TradeState (1..1) <"The original trade on which to update the counterparty. The original trade will be terminated."> - output: - newTrade TradeState (1..1) - - alias counterparty1: - if counterparty -> role = CounterpartyRoleEnum -> Party1 - then Counterparty { - partyReference: counterparty -> partyReference as-key, - role: counterparty -> role - } - else ExtractCounterpartyByRole( originalTrade -> trade -> tradableProduct -> counterparty, CounterpartyRoleEnum -> Party1 ) - alias counterparty2: - if counterparty -> role = CounterpartyRoleEnum -> Party2 - then Counterparty { - partyReference: counterparty -> partyReference as-key, - role: counterparty -> role - } - else ExtractCounterpartyByRole( originalTrade -> trade -> tradableProduct -> counterparty, CounterpartyRoleEnum -> Party2 ) - alias partyToRemove: - ExtractCounterpartyByRole( originalTrade -> trade -> tradableProduct -> counterparty, counterparty -> role ) -> partyReference - - set newTrade: <"Copy the original trade."> - originalTrade - set newTrade -> trade -> tradableProduct -> counterparty: <"Assigns the new counterparties."> - [counterparty1, counterparty2] - set newTrade -> trade -> party: <"Removes the existing party, and adds the new party."> - ReplaceParty( originalTrade -> trade -> party, - partyToRemove, - counterparty -> partyReference ) - set newTrade -> trade -> tradeIdentifier: <"Replaces the existing trade identifier with the new trade identifier"> - tradeId - add newTrade -> trade -> party: <"Add ancillary party as an additional party"> - ancillaryParty -> partyReference - add newTrade -> trade -> tradableProduct -> ancillaryParty: <"Add ancillary party role"> - ancillaryParty - add newTrade -> trade -> party: <"Add party role party reference as an additional party"> + originalTrade TradeState (1..1) <"The original trade on which to update the counterparty. The original trade will be terminated."> + output: + newTrade TradeState (1..1) + + alias counterparty1: + if counterparty -> role = CounterpartyRoleEnum -> Party1 + then Counterparty { + partyReference: counterparty -> partyReference as-key, + role: counterparty -> role + } + else ExtractCounterpartyByRole( + originalTrade -> trade -> tradableProduct -> counterparty, + CounterpartyRoleEnum -> Party1 + ) + alias counterparty2: + if counterparty -> role = CounterpartyRoleEnum -> Party2 + then Counterparty { + partyReference: counterparty -> partyReference as-key, + role: counterparty -> role + } + else ExtractCounterpartyByRole( + originalTrade -> trade -> tradableProduct -> counterparty, + CounterpartyRoleEnum -> Party2 + ) + alias partyToRemove: + ExtractCounterpartyByRole( + originalTrade -> trade -> tradableProduct -> counterparty, + counterparty -> role + ) -> partyReference + + set newTrade: <"Copy the original trade."> + originalTrade + set newTrade -> trade -> tradableProduct -> counterparty: <"Assigns the new counterparties."> + [counterparty1, counterparty2] + set newTrade -> trade -> party: <"Removes the existing party, and adds the new party."> + ReplaceParty( + originalTrade -> trade -> party, + partyToRemove, + counterparty -> partyReference + ) + set newTrade -> trade -> tradeIdentifier: <"Replaces the existing trade identifier with the new trade identifier"> + tradeId + add newTrade -> trade -> party: <"Add ancillary party as an additional party"> + ancillaryParty -> partyReference + add newTrade -> trade -> tradableProduct -> ancillaryParty: <"Add ancillary party role"> + ancillaryParty + add newTrade -> trade -> party: <"Add party role party reference as an additional party"> partyRole -> partyReference add newTrade -> trade -> partyRole: <"Add party role"> partyRole @@ -802,14 +898,15 @@ func Create_PartyChange: <"Defines the logic for changing one of the counterpart EmptyTransferHistory() func EmptyTransferHistory: - output: emptyTransferHistory TransferState (0..*) + output: + emptyTransferHistory TransferState (0..*) func Create_QuantityChange: <"A specification of the inputs, outputs and constraints when calculating the after state of a Quantity Change Primitive Event"> - inputs: - instruction QuantityChangeInstruction (1..1) - tradeState TradeState (1..1) - output: - quantityChange TradeState (1..1) + inputs: + instruction QuantityChangeInstruction (1..1) + tradeState TradeState (1..1) + output: + quantityChange TradeState (1..1) alias tradableProduct: <"TradableProduct from the input TradeState"> tradeState -> trade -> tradableProduct @@ -817,186 +914,206 @@ func Create_QuantityChange: <"A specification of the inputs, outputs and constra alias tradeLot: <"For direction Decrease or Replace, get the TradeLot to update."> if instruction -> direction <> QuantityChangeDirectionEnum -> Increase then if instruction -> lotIdentifier exists - then FilterTradeLot( tradableProduct -> tradeLot, instruction -> lotIdentifier ) only-element + then FilterTradeLot(tradableProduct -> tradeLot, instruction -> lotIdentifier) + only-element else tradableProduct -> tradeLot only-element alias newPriceQuantity: <"Update PriceQuantity based on change and direction inputs. For an Increase, the change PriceQuantity will be added to the list of TradeLots. For a Decrease or Replace, apply the changes to the existing PriceQuantity."> if instruction -> direction = QuantityChangeDirectionEnum -> Increase then instruction -> change - else UpdateAmountForEachMatchingQuantity( tradeLot -> priceQuantity, instruction -> change, instruction -> direction ) + else UpdateAmountForEachMatchingQuantity( + tradeLot -> priceQuantity, + instruction -> change, + instruction -> direction + ) alias newTradeLots: <"Add or merge updated TradeLot."> if instruction -> direction = QuantityChangeDirectionEnum -> Increase - then AddTradeLot( tradableProduct, TradeLot { lotIdentifier: instruction -> lotIdentifier, priceQuantity: newPriceQuantity } ) -> tradeLot - else MergeTradeLot( tradableProduct -> tradeLot, TradeLot { lotIdentifier: instruction -> lotIdentifier, priceQuantity: newPriceQuantity } ) - - condition CashPriceOnly: <"Only termination where the termination price is specified as a cash price is supported for now."> - if instruction -> direction = QuantityChangeDirectionEnum -> Decrease and instruction -> change -> price exists - then instruction -> change -> price -> priceType all = PriceTypeEnum -> CashPrice - - set quantityChange : tradeState - - set quantityChange -> trade -> tradableProduct: <"Update trade with new TradableProduct."> - TradableProduct { - product: tradableProduct -> product, - tradeLot: newTradeLots, - counterparty: tradableProduct -> counterparty, - ancillaryParty: tradableProduct -> ancillaryParty, - adjustment: tradableProduct -> adjustment + then AddTradeLot( + tradableProduct, + TradeLot { + lotIdentifier: instruction -> lotIdentifier, + priceQuantity: newPriceQuantity + } + ) -> tradeLot + else MergeTradeLot( + tradableProduct -> tradeLot, + TradeLot { + lotIdentifier: instruction -> lotIdentifier, + priceQuantity: newPriceQuantity + } + ) + + condition CashPriceOnly: <"Only termination where the termination price is specified as a cash price is supported for now."> + if instruction -> direction = QuantityChangeDirectionEnum -> Decrease + and instruction -> change -> price exists + then instruction -> change -> price -> priceType all = PriceTypeEnum -> CashPrice + + set quantityChange: tradeState + + set quantityChange -> trade -> tradableProduct: <"Update trade with new TradableProduct."> + TradableProduct { + product: tradableProduct -> product, + tradeLot: newTradeLots, + counterparty: tradableProduct -> counterparty, + ancillaryParty: tradableProduct -> ancillaryParty, + adjustment: tradableProduct -> adjustment } set quantityChange -> state -> positionState: - if newTradeLots-> priceQuantity -> quantity -> value all = 0 - then PositionStatusEnum -> Closed + if newTradeLots -> priceQuantity -> quantity -> value all = 0 + then PositionStatusEnum -> Closed func Create_TermsChange: <"A specification of the inputs, outputs and constraints when calculating the after tradeState based Terms Change Primitive Instruction."> - inputs: - termsChange TermsChangeInstruction (1..1) <"Instructions to be used as an input to the function"> - before TradeState (1..1) <"current trade to be ammended"> - - output: - tradeState TradeState (1..1) - - alias newProduct: - if termsChange -> product exists then termsChange -> product - else before -> trade -> tradableProduct -> product - - alias newAncillaryParty: - if termsChange -> ancillaryParty exists then termsChange -> ancillaryParty - else before -> trade -> tradableProduct -> ancillaryParty - - alias newAdjustment: - if termsChange -> adjustment exists then termsChange -> adjustment - else before -> trade -> tradableProduct -> adjustment - - set tradeState: before - - set tradeState -> trade -> tradableProduct: <"Contract to be updated based on the new terms change inputs."> - TradableProduct { - product: newProduct, - tradeLot: tradeState -> trade -> tradableProduct -> tradeLot, - counterparty: tradeState -> trade -> tradableProduct -> counterparty, - ancillaryParty: newAncillaryParty, - adjustment: newAdjustment + inputs: + termsChange TermsChangeInstruction (1..1) <"Instructions to be used as an input to the function"> + before TradeState (1..1) <"current trade to be ammended"> + output: + tradeState TradeState (1..1) + + alias newProduct: + if termsChange -> product exists + then termsChange -> product + else before -> trade -> tradableProduct -> product + + alias newAncillaryParty: + if termsChange -> ancillaryParty exists + then termsChange -> ancillaryParty + else before -> trade -> tradableProduct -> ancillaryParty + + alias newAdjustment: + if termsChange -> adjustment exists + then termsChange -> adjustment + else before -> trade -> tradableProduct -> adjustment + + set tradeState: before + + set tradeState -> trade -> tradableProduct: <"Contract to be updated based on the new terms change inputs."> + TradableProduct { + product: newProduct, + tradeLot: tradeState -> trade -> tradableProduct -> tradeLot, + counterparty: tradeState -> trade -> tradableProduct -> counterparty, + ancillaryParty: newAncillaryParty, + adjustment: newAdjustment } func FilterOpenTradeStates: <"Filter to only 'open' TradeState - where both the closedState and positionState are not set."> - inputs: - tradeStates TradeState (0..*) - output: - openTradeStates TradeState (0..*) + inputs: + tradeStates TradeState (0..*) + output: + openTradeStates TradeState (0..*) - add openTradeStates: - tradeStates - filter state -> closedState is absent + add openTradeStates: tradeStates filter state -> closedState is absent func FilterClosedTradeStates: <"Filter to only 'closed' TradeState - where either the closedState or positionState are set."> - inputs: - tradeStates TradeState (0..*) - output: - closedTradeStates TradeState (0..*) + inputs: + tradeStates TradeState (0..*) + output: + closedTradeStates TradeState (0..*) - add closedTradeStates: - tradeStates - filter state -> closedState exists + add closedTradeStates: tradeStates filter state -> closedState exists func NewEquitySwapProduct: <"Function specification to create an Equity Swap according to the 2018 ISDA CDM Equity Confirmation Template, based on a minimum set of inputs which can (optionally) include a Master Confirmation Agreement. The inputs represent the minimum set of inputs required to create an Equity Swap, either based on an existing Master Confirmation Agreement or as a stand-alone Equity Swap"> - inputs: - security Security (1..1) <"The underlying Equity asset for the swap."> - masterConfirmation EquitySwapMasterConfirmation2018 (0..1) <"An (optional) pointer to the Master Confirmation Agreement, if any, that holds further inputs to the Equity Swap"> - // performancePayout PerformancePayout (1..1) - output: - product Product (1..1) + inputs: + security Security (1..1) <"The underlying Equity asset for the swap."> + masterConfirmation EquitySwapMasterConfirmation2018 (0..1) <"An (optional) pointer to the Master Confirmation Agreement, if any, that holds further inputs to the Equity Swap"> + // performancePayout PerformancePayout (1..1) + output: + product Product (1..1) - alias payout: - product -> contractualProduct -> economicTerms -> payout + alias payout: product -> contractualProduct -> economicTerms -> payout // condition PriceReturnTermsOnlyExists: performancePayout -> returnTerms -> priceReturnTerms only exists - - condition EquitySecurityType: <"Security must be equity (single name)."> - security -> securityType = SecurityTypeEnum -> Equity - - add product -> contractualProduct -> economicTerms -> payout -> performancePayout: - NewSingleNameEquityPerformancePayout(security, masterConfirmation) - add product -> contractualProduct -> economicTerms -> payout -> interestRatePayout: <"Equity and interest rate payouts must be set-up according to their corresponding payout specifications"> - if masterConfirmation exists then NewFloatingPayout(masterConfirmation) - - post-condition PayoutType: <"Other payout types must be absent."> - if masterConfirmation is absent then payout -> interestRatePayout is absent - and payout -> cashflow is absent - and payout -> creditDefaultPayout is absent - and payout -> forwardPayout is absent - and payout -> fixedPricePayout is absent - and payout -> optionPayout is absent - - post-condition ContractualProductOnlyExists: <"Non-contractual product types must be absent."> - product -> contractualProduct only exists + condition EquitySecurityType: <"Security must be equity (single name)."> + security -> securityType = SecurityTypeEnum -> Equity + + add product -> contractualProduct -> economicTerms -> payout -> performancePayout: + NewSingleNameEquityPerformancePayout(security, masterConfirmation) + add product -> contractualProduct -> economicTerms -> payout -> interestRatePayout: <"Equity and interest rate payouts must be set-up according to their corresponding payout specifications"> + if masterConfirmation exists + then NewFloatingPayout(masterConfirmation) + + post-condition PayoutType: <"Other payout types must be absent."> + if masterConfirmation is absent + then payout -> interestRatePayout is absent + and payout -> cashflow is absent + and payout -> creditDefaultPayout is absent + and payout -> forwardPayout is absent + and payout -> fixedPricePayout is absent + and payout -> optionPayout is absent + + post-condition ContractualProductOnlyExists: <"Non-contractual product types must be absent."> + product -> contractualProduct only exists func NewSingleNameEquityPerformancePayout: <"Function specification to create the equity payout part of an Equity Swap according to the 2018 ISDA CDM Equity Confirmation template."> inputs: - security Security (1..1) - masterConfirmation EquitySwapMasterConfirmation2018 (0..1) - output: - performancePayout PerformancePayout (1..1) + security Security (1..1) + masterConfirmation EquitySwapMasterConfirmation2018 (0..1) + output: + performancePayout PerformancePayout (1..1) - condition EquitySecurityType: <"Security must be equity (single name)."> - security -> securityType = SecurityTypeEnum->Equity + condition EquitySecurityType: <"Security must be equity (single name)."> + security -> securityType = SecurityTypeEnum -> Equity - set performancePayout -> returnTerms -> priceReturnTerms -> returnType: <"Equity payout must inherit terms from the Master Confirmation Agreement."> - - //if masterConfirmation -> typeOfSwapElection -> Price exists - //or masterConfirmation -> typeOfSwapElection -> Total exists then - masterConfirmation -> typeOfSwapElection + set performancePayout -> returnTerms -> priceReturnTerms -> returnType: <"Equity payout must inherit terms from the Master Confirmation Agreement."> + // if masterConfirmation -> typeOfSwapElection -> Price exists + // or masterConfirmation -> typeOfSwapElection -> Total exists then + masterConfirmation -> typeOfSwapElection - set performancePayout -> valuationDates: <"Equity payout must inherit terms from the Master Confirmation Agreement."> - masterConfirmation -> valuationDates - set performancePayout -> paymentDates: <"Equity payout must inherit terms from the Master Confirmation Agreement."> - masterConfirmation -> equityCashSettlementDates - set performancePayout -> settlementTerms: <"Equity payout must inherit terms from the Master Confirmation Agreement."> - masterConfirmation -> settlementTerms + set performancePayout -> valuationDates: <"Equity payout must inherit terms from the Master Confirmation Agreement."> + masterConfirmation -> valuationDates + set performancePayout -> paymentDates: <"Equity payout must inherit terms from the Master Confirmation Agreement."> + masterConfirmation -> equityCashSettlementDates + set performancePayout -> settlementTerms: <"Equity payout must inherit terms from the Master Confirmation Agreement."> + masterConfirmation -> settlementTerms func NewFloatingPayout: <"Function specification to create the interest rate (floating) payout part of an Equity Swap according to the 2018 ISDA CDM Equity Confirmation template."> - inputs: masterConfirmation EquitySwapMasterConfirmation2018 (0..1) - output: interestRatePayout InterestRatePayout (1..1) + inputs: + masterConfirmation EquitySwapMasterConfirmation2018 (0..1) + output: + interestRatePayout InterestRatePayout (1..1) - post-condition InterestRatePayoutTerms: <"Interest rate payout must inherit terms from the Master Confirmation Agreement when it exists."> - if masterConfirmation exists then - //interestRatePayout -> calculationPeriodDates = masterConfirmation -> equityCalculationPeriod and - interestRatePayout -> paymentDates = masterConfirmation -> equityCashSettlementDates + post-condition InterestRatePayoutTerms: <"Interest rate payout must inherit terms from the Master Confirmation Agreement when it exists."> + if masterConfirmation exists + then // interestRatePayout -> calculationPeriodDates = masterConfirmation -> equityCalculationPeriod and + interestRatePayout -> paymentDates = masterConfirmation -> equityCashSettlementDates func Create_IndexTransitionTermsChange: <"Function specification to create a terms change that contains changes to the floating rate indexes and adds an adjustment spread to any existing spread."> - inputs: - instruction IndexTransitionInstruction (1..1) <"Specifies the instructions containing the floating rate index, spread adjustment for each leg to be updated, and the effective date."> - tradeState TradeState (1..1) <"Specifies the trade to be updated."> - output: - termsChange TradeState (1..1) <"Specifies the resulting term change."> + inputs: + instruction IndexTransitionInstruction (1..1) <"Specifies the instructions containing the floating rate index, spread adjustment for each leg to be updated, and the effective date."> + tradeState TradeState (1..1) <"Specifies the trade to be updated."> + output: + termsChange TradeState (1..1) <"Specifies the resulting term change."> - set termsChange : <"Updates the trade based on each instruction priceQuantity (e.g. one for each floating rate leg)."> - UpdateSpreadAdjustmentAndRateOptions( tradeState, instruction -> priceQuantity ) + set termsChange: <"Updates the trade based on each instruction priceQuantity (e.g. one for each floating rate leg)."> + UpdateSpreadAdjustmentAndRateOptions(tradeState, instruction -> priceQuantity) func Create_Observation: <"Function specification to create an observation that incorporates an observation event into the observation history of a given trade state."> -inputs: -instruction ObservationInstruction (1..1) -before TradeState (1..1) <"Specifies the trade to be updated."> - -output: -after TradeState (1..1) <"Specifies the resulting trade state incorporating the observation event in the observation history."> + inputs: + instruction ObservationInstruction (1..1) + before TradeState (1..1) <"Specifies the trade to be updated."> + output: + after TradeState (1..1) <"Specifies the resulting trade state incorporating the observation event in the observation history."> -set after : before -add after -> observationHistory : instruction -> observationEvent + set after: before + add after -> observationHistory: instruction -> observationEvent func UpdateSpreadAdjustmentAndRateOptions: <"For each of the trade state's price quantity, find a matching price quantity instruction, and call the update function."> - inputs: - tradeState TradeState (1..1) <"Specifies the trade to be updated."> - instructions PriceQuantity (1..*) <"List of PriceQuantity from the IndexTransitionInstruction (e.g. one for each floating rate leg)."> - output: - updatedTradeState TradeState (1..1) <"Specifies the updated trade."> + inputs: + tradeState TradeState (1..1) <"Specifies the trade to be updated."> + instructions PriceQuantity (1..*) <"List of PriceQuantity from the IndexTransitionInstruction (e.g. one for each floating rate leg)."> + output: + updatedTradeState TradeState (1..1) <"Specifies the updated trade."> set updatedTradeState: tradeState set updatedTradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity: tradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity - extract UpdateIndexTransitionPriceAndRateOption(item, FindMatchingIndexTransitionInstruction(instructions, item)) + extract + UpdateIndexTransitionPriceAndRateOption( + item, + FindMatchingIndexTransitionInstruction(instructions, item) + ) func UpdateIndexTransitionPriceAndRateOption: inputs: @@ -1008,16 +1125,14 @@ func UpdateIndexTransitionPriceAndRateOption: set updatedPriceQuantity: priceQuantity set updatedPriceQuantity -> price -> value: <"If instruction exists, sum the existing and instruction spread adjustments."> - if instruction exists then - priceQuantity -> price only-element -> value + instruction -> price only-element -> value - else - priceQuantity -> price only-element -> value + if instruction exists + then priceQuantity -> price only-element -> value + instruction -> price only-element -> value + else priceQuantity -> price only-element -> value set updatedPriceQuantity -> observable -> rateOption: <"If instruction exists, update the rate option."> - if instruction exists then - instruction -> observable -> rateOption - else - priceQuantity -> observable -> rateOption + if instruction exists + then instruction -> observable -> rateOption + else priceQuantity -> observable -> rateOption func FindMatchingIndexTransitionInstruction: inputs: @@ -1031,377 +1146,376 @@ func FindMatchingIndexTransitionInstruction: filter // indexTenor period matches observable -> rateOption -> indexTenor -> period = priceQuantity -> observable -> rateOption -> indexTenor -> period - // indexTenor periodMultiplier matches - and observable -> rateOption -> indexTenor -> periodMultiplier = priceQuantity -> observable -> rateOption -> indexTenor -> periodMultiplier - // quantity currency or price currency matches - and ( - quantity -> unit -> currency = priceQuantity -> quantity -> unit -> currency - or price -> unit -> currency = priceQuantity -> price -> unit -> currency - ) + // indexTenor periodMultiplier matches + and observable -> rateOption -> indexTenor -> periodMultiplier = priceQuantity -> observable -> rateOption -> indexTenor -> periodMultiplier + // quantity currency or price currency matches + and (quantity -> unit -> currency = priceQuantity -> quantity -> unit -> currency + or price -> unit -> currency = priceQuantity -> price -> unit -> currency) then first func Create_SecurityLendingInvoice: <"Defines the process of calculating and creating a Security Lending Invoice."> - inputs: - instruction BillingInstruction (1..1) <"Specifies the instructions for creation of a Security Lending billing invoice."> - - output: - invoice SecurityLendingInvoice (1..1) <"Produces the Security Lending Invoice"> + inputs: + instruction BillingInstruction (1..1) <"Specifies the instructions for creation of a Security Lending billing invoice."> + output: + invoice SecurityLendingInvoice (1..1) <"Produces the Security Lending Invoice"> - set invoice -> sendingParty: - instruction -> sendingParty + set invoice -> sendingParty: instruction -> sendingParty - set invoice -> receivingParty: - instruction -> receivingParty + set invoice -> receivingParty: instruction -> receivingParty - set invoice -> billingStartDate: - instruction -> billingStartDate + set invoice -> billingStartDate: instruction -> billingStartDate - set invoice -> billingEndDate: - instruction -> billingEndDate + set invoice -> billingEndDate: instruction -> billingEndDate - add invoice -> billingRecord: - Create_BillingRecords( instruction -> billingRecordInstruction ) + add invoice -> billingRecord: + Create_BillingRecords(instruction -> billingRecordInstruction) - add invoice -> billingSummary: - Create_BillingSummary( invoice -> billingRecord ) + add invoice -> billingSummary: Create_BillingSummary(invoice -> billingRecord) func Create_BillingRecords: <"Creates for each billing instruction an individual billing record to be included in a Security Lending Billing Invoice"> - inputs: - billingInstruction BillingRecordInstruction (1..*) <"Instruction for creating the billing records contained within the invoice"> - output: - billingRecord BillingRecord (1..*) + inputs: + billingInstruction BillingRecordInstruction (1..*) <"Instruction for creating the billing records contained within the invoice"> + output: + billingRecord BillingRecord (1..*) - add billingRecord: - billingInstruction - extract Create_BillingRecord(item) + add billingRecord: billingInstruction extract Create_BillingRecord(item) func Create_BillingRecord: <"Creates an individual billing record to be included in a Security Lending Billing Invoice"> - inputs: - billingInstruction BillingRecordInstruction (1..1) <"Instruction for creating the billing records contained within the invoice"> - output: - billingRecord BillingRecord (1..1) <"The billing record"> + inputs: + billingInstruction BillingRecordInstruction (1..1) <"Instruction for creating the billing records contained within the invoice"> + output: + billingRecord BillingRecord (1..1) <"The billing record"> - alias tradeState: <"Creates a trade state with observations attached."> - Create_AssetPayoutTradeStateWithObservations (billingInstruction) + alias tradeState: <"Creates a trade state with observations attached."> + Create_AssetPayoutTradeStateWithObservations(billingInstruction) - alias billingAmount: <"Resolves the billing amount for the individual trade record."> - ResolveSecurityFinanceBillingAmount (tradeState, tradeState -> resetHistory only-element, billingInstruction -> recordStartDate, billingInstruction -> recordEndDate, billingInstruction -> settlementDate) + alias billingAmount: <"Resolves the billing amount for the individual trade record."> + ResolveSecurityFinanceBillingAmount( + tradeState, + tradeState -> resetHistory only-element, + billingInstruction -> recordStartDate, + billingInstruction -> recordEndDate, + billingInstruction -> settlementDate + ) - set billingRecord -> recordStartDate: - billingInstruction -> recordStartDate + set billingRecord -> recordStartDate: billingInstruction -> recordStartDate - set billingRecord -> recordEndDate: - billingInstruction -> recordEndDate + set billingRecord -> recordEndDate: billingInstruction -> recordEndDate - set billingRecord -> tradeState: - tradeState + set billingRecord -> tradeState: tradeState - set billingRecord -> recordTransfer: - billingAmount + set billingRecord -> recordTransfer: billingAmount func ResolveSecurityFinanceBillingAmount: <"Calculates the billing amount for a Security Finance transaction."> - inputs: - tradeState TradeState (1..1) - reset Reset (1..1) - recordStartDate date (1..1) - recordEndDate date (1..1) - transferDate date (1..1) - - output: - transfer Transfer (1..1) - - alias securityQuantity: <"Specifies the number of securities."> - FilterQuantityByFinancialUnit( tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> quantity, FinancialUnitEnum -> Share) - -alias interestRatePayout: <"The interest payout that represents the lending fee."> - tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> interestRatePayout only-element - - alias assetPayout: <"The security finance payout that represents the securities lent."> - tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout only-element - - alias collateral: - tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> collateral - - - alias haircutPercentage: - (1.0-collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> haircutPercentage) - - alias valuationPercentage: - (1/haircutPercentage) - - alias marginRatio: - if collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> haircutPercentage exists - then valuationPercentage - else if collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> marginPercentage exists - then collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> marginPercentage - else 1.0 - - alias billingQuantity: - reset -> resetValue -> value * securityQuantity -> value * marginRatio - - alias calculationPeriodRange: CalculationPeriodRange(recordStartDate, recordEndDate, empty) - - alias performance: - if interestRatePayout -> rateSpecification -> fixedRate exists - then FixedAmount( - interestRatePayout, - billingQuantity, - recordEndDate, - calculationPeriodRange) - else if interestRatePayout -> rateSpecification -> floatingRate exists - then FloatingAmount( - interestRatePayout, - reset -> resetValue -> value, - billingQuantity, - recordEndDate, - calculationPeriodRange) + inputs: + tradeState TradeState (1..1) + reset Reset (1..1) + recordStartDate date (1..1) + recordEndDate date (1..1) + transferDate date (1..1) + output: + transfer Transfer (1..1) + + alias securityQuantity: <"Specifies the number of securities."> + FilterQuantityByFinancialUnit( + tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> quantity, + FinancialUnitEnum -> Share + ) + + alias interestRatePayout: <"The interest payout that represents the lending fee."> + tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> interestRatePayout only-element + + alias assetPayout: <"The security finance payout that represents the securities lent."> + tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout only-element + + alias collateral: + tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> collateral + + alias haircutPercentage: + (1.0 - collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> haircutPercentage) + + alias valuationPercentage: (1 / haircutPercentage) + + alias marginRatio: + if collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> haircutPercentage exists + then valuationPercentage + else if collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> marginPercentage exists + then collateral -> collateralProvisions -> eligibleCollateral -> criteria only-element -> treatment -> valuationTreatment -> marginPercentage + else 1.0 + + alias billingQuantity: + reset -> resetValue -> value * securityQuantity -> value * marginRatio + + alias calculationPeriodRange: + CalculationPeriodRange(recordStartDate, recordEndDate, empty) + + alias performance: + if interestRatePayout -> rateSpecification -> fixedRate exists + then FixedAmount( + interestRatePayout, + billingQuantity, + recordEndDate, + calculationPeriodRange + ) + else if interestRatePayout -> rateSpecification -> floatingRate exists + then FloatingAmount( + interestRatePayout, + reset -> resetValue -> value, + billingQuantity, + recordEndDate, + calculationPeriodRange + ) alias payerPartyReference: ExtractCounterpartyByRole( - tradeState -> trade -> tradableProduct -> counterparty, - interestRatePayout -> payerReceiver -> payer ) -> partyReference + tradeState -> trade -> tradableProduct -> counterparty, + interestRatePayout -> payerReceiver -> payer + ) -> partyReference alias receiverPartyReference: ExtractCounterpartyByRole( - tradeState -> trade -> tradableProduct -> counterparty, - interestRatePayout -> payerReceiver -> receiver ) -> partyReference + tradeState -> trade -> tradableProduct -> counterparty, + interestRatePayout -> payerReceiver -> receiver + ) -> partyReference - set transfer -> quantity -> value: - performance + set transfer -> quantity -> value: performance - set transfer -> quantity -> unit -> currency: + set transfer -> quantity -> unit -> currency: interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency - set transfer -> payerReceiver -> payerPartyReference: - if performance >= 0 then payerPartyReference else receiverPartyReference + set transfer -> payerReceiver -> payerPartyReference: + if performance >= 0 + then payerPartyReference + else receiverPartyReference - set transfer -> payerReceiver -> receiverPartyReference: - if performance >= 0 then receiverPartyReference else payerPartyReference + set transfer -> payerReceiver -> receiverPartyReference: + if performance >= 0 + then receiverPartyReference + else payerPartyReference - set transfer -> settlementDate -> adjustedDate: - transferDate + set transfer -> settlementDate -> adjustedDate: transferDate func ToMoney: - inputs: - quantity Quantity (1..1) - output: - money Money (1..1) + inputs: + quantity Quantity (1..1) + output: + money Money (1..1) - set money -> value: quantity -> value + set money -> value: quantity -> value set money -> unit -> currency: quantity -> unit -> currency func Create_BillingSummary: <"Creates a billing summary to be included in a Security Lending Billing Invoice."> - - inputs: - billingRecord BillingRecord (1..*) - - output: - billingSummary BillingSummary (1..1) + inputs: + billingRecord BillingRecord (1..*) + output: + billingSummary BillingSummary (1..1) //sums all billing records and assigns value to billing summary //sets enum to ParentTotal - func Create_Return: <"Defines the process of partially or fully returning a Security Lending Transaction."> - [creation BusinessEvent] - - inputs: - tradeState TradeState (1..1) <"Specifies a previously formed contractual product with a Security Finance payout. It is required that the description of the contractual product be contained within the previous business event, i.e. its lineage must contain the formation of a contractual product."> - returnInstruction ReturnInstruction (1..1) <"Specifies the information required to fully return the Stock Loan in accordance with the economic terms of the contractual product."> - returnDate date (1..1) <"Specifies the date of the full return."> - - output: - returnEvent BusinessEvent (1..1) <"Produces the business event composed of primitive events describing the transfer and termination, as a result of the input return instruction."> + [creation BusinessEvent] + inputs: + tradeState TradeState (1..1) <"Specifies a previously formed contractual product with a Security Finance payout. It is required that the description of the contractual product be contained within the previous business event, i.e. its lineage must contain the formation of a contractual product."> + returnInstruction ReturnInstruction (1..1) <"Specifies the information required to fully return the Stock Loan in accordance with the economic terms of the contractual product."> + returnDate date (1..1) <"Specifies the date of the full return."> + output: + returnEvent BusinessEvent (1..1) <"Produces the business event composed of primitive events describing the transfer and termination, as a result of the input return instruction."> - alias tradableProduct: - tradeState -> trade -> tradableProduct + alias tradableProduct: tradeState -> trade -> tradableProduct - alias quantitySchedule: - returnInstruction -> quantity - extract NonNegativeQuantitySchedule { - value: value, - unit: unit, - ... - } + alias quantitySchedule: + returnInstruction -> quantity + extract + NonNegativeQuantitySchedule { + value: value, + unit: unit, + ... + } - alias changePriceQuantity: - PriceQuantity { + alias changePriceQuantity: + PriceQuantity { quantity: quantitySchedule, ... } - add returnEvent -> after: <"Creates a new contract within the quantity change primitive's after state equivalent to the new notional on the partially returned original contract, assuming there's a single security finance transaction in the original financial contract that is part returned."> - Create_QuantityChange( QuantityChangeInstruction { - change: changePriceQuantity, - direction: QuantityChangeDirectionEnum -> Decrease, - lotIdentifier: empty - }, tradeState ) + add returnEvent -> after: <"Creates a new contract within the quantity change primitive's after state equivalent to the new notional on the partially returned original contract, assuming there's a single security finance transaction in the original financial contract that is part returned."> + Create_QuantityChange( + QuantityChangeInstruction { + change: changePriceQuantity, + direction: QuantityChangeDirectionEnum -> Decrease, + lotIdentifier: empty + }, + tradeState + ) - set returnEvent -> eventDate: - returnDate + set returnEvent -> eventDate: returnDate func Qualify_Repurchase: <"The qualification of a repurchase event from the fact that (i) a quantityChange instruction exists, (ii) an assetPayout exists, (iii) the remaining quantity = 0, (iv) the closedState of the contract is Terminated, and (v) the intent of the event is 'Repurchase'."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - set is_event: - businessEvent -> intent = EventIntentEnum -> Repurchase - and businessEvent -> after -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout exists - and (businessEvent -> instruction count = 1 - and (businessEvent -> instruction -> primitiveInstruction -> quantityChange, businessEvent -> instruction -> primitiveInstruction -> transfer) only exists) - and QuantityDecreasedToZero(businessEvent -> instruction -> before, businessEvent -> after) = True - and businessEvent -> after -> state -> closedState -> state all = ClosedStateEnum -> Terminated + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + set is_event: + businessEvent -> intent = EventIntentEnum -> Repurchase + and businessEvent -> after -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout exists + and (businessEvent -> instruction count = 1 + and (businessEvent -> instruction -> primitiveInstruction -> quantityChange, businessEvent -> instruction -> primitiveInstruction -> transfer) only exists) + and QuantityDecreasedToZero( + businessEvent -> instruction -> before, + businessEvent -> after + ) = True + and businessEvent -> after -> state -> closedState -> state all = ClosedStateEnum -> Terminated func ResolveRepurchaseTransferInstruction: <"Resolves an instruction for settlement of a Repurchase Event"> + inputs: + tradeState TradeState (1..1) + repurchaseDate date (1..1) + output: + repurchaseInstruction EventInstruction (1..1) + + alias changeQuantity: <"Create distinct list of Quantity with value set to zero."> + tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> quantity + extract + NonNegativeQuantitySchedule { + value: 0.0, + unit: unit, + ... + } + then distinct - inputs: - tradeState TradeState (1..1) - repurchaseDate date (1..1) - - output: - repurchaseInstruction EventInstruction (1..1) - - alias changeQuantity: <"Create distinct list of Quantity with value set to zero."> - tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> quantity - extract NonNegativeQuantitySchedule { - value: 0.0, - unit: unit, - ... - } - then distinct - - alias changePriceQuantity: <"Create change PriceQuantity for QuantityChangeInstruction."> - PriceQuantity { + alias changePriceQuantity: <"Create change PriceQuantity for QuantityChangeInstruction."> + PriceQuantity { quantity: changeQuantity, ... } - set repurchaseInstruction -> intent: - EventIntentEnum -> Repurchase - - set repurchaseInstruction -> instruction -> before: - tradeState + set repurchaseInstruction -> intent: EventIntentEnum -> Repurchase + + set repurchaseInstruction -> instruction -> before: tradeState - set repurchaseInstruction -> instruction -> primitiveInstruction -> quantityChange: - QuantityChangeInstruction { - change: changePriceQuantity, - direction: QuantityChangeDirectionEnum->Replace, + set repurchaseInstruction -> instruction -> primitiveInstruction -> quantityChange: + QuantityChangeInstruction { + change: changePriceQuantity, + direction: QuantityChangeDirectionEnum -> Replace, lotIdentifier: empty } - + func Create_RollPrimitiveInstruction: <"Creates the primitive instructions for a trade roll. A trade roll consists in closing an existing trade and entering into a new one which has the same characteristics as the old one, except with an extended termination date and (possibly) a different price."> - inputs: - tradeState TradeState (1..1) <"The original trade to be rolled."> - effectiveRollDate AdjustableOrRelativeDate (1..1) <"The date to close and open a new position."> - terminationDate AdjustableOrRelativeDate (1..1) <"The new termination date."> - priceQuantity PriceQuantity (1..*) <"The price and quantity of the trade to roll into."> - output: - instruction PrimitiveInstruction (1..1) - - condition ContractualProduct: <"Only a contractual product can be rolled."> - tradeState -> trade -> tradableProduct -> product -> contractualProduct exists - - set instruction -> split -> breakdown: <"Sets the first part of the split to be a termination instruction for the existing trade."> - [ Create_TerminationInstruction( tradeState ) ] - - add instruction -> split -> breakdown: <"Sets the second part of the split to be a new contract with the same details as the old one but with effective and termination dates changed (i.e. terms change instruction) and price / quantity changed."> - [ - PrimitiveInstruction { - quantityChange: QuantityChangeInstruction { - change: priceQuantity, - direction: QuantityChangeDirectionEnum -> Replace, - lotIdentifier: empty - }, - termsChange: Create_RollTermChangeInstruction( - tradeState -> trade -> tradableProduct -> product -> contractualProduct, - effectiveRollDate, - terminationDate - ), - ... - } - ] + inputs: + tradeState TradeState (1..1) <"The original trade to be rolled."> + effectiveRollDate AdjustableOrRelativeDate (1..1) <"The date to close and open a new position."> + terminationDate AdjustableOrRelativeDate (1..1) <"The new termination date."> + priceQuantity PriceQuantity (1..*) <"The price and quantity of the trade to roll into."> + output: + instruction PrimitiveInstruction (1..1) + + condition ContractualProduct: <"Only a contractual product can be rolled."> + tradeState -> trade -> tradableProduct -> product -> contractualProduct exists + + set instruction -> split -> breakdown: <"Sets the first part of the split to be a termination instruction for the existing trade."> + [Create_TerminationInstruction(tradeState)] + + add instruction -> split -> breakdown: <"Sets the second part of the split to be a new contract with the same details as the old one but with effective and termination dates changed (i.e. terms change instruction) and price / quantity changed."> + [ + PrimitiveInstruction { + quantityChange: QuantityChangeInstruction { + change: priceQuantity, + direction: QuantityChangeDirectionEnum -> Replace, + lotIdentifier: empty + }, + termsChange: Create_RollTermChangeInstruction( + tradeState -> trade -> tradableProduct -> product -> contractualProduct, + effectiveRollDate, + terminationDate + ), + ... + } + ] func Create_RollTermChangeInstruction: <"Creates the relevant terms change primitive instruction object for rolling a contractual product, which consists in the same terms as the original contractual product but with different effective and termination dates."> - inputs: - contractualProduct ContractualProduct (1..1) <"The original contractual product to be rolled."> - effectiveRollDate AdjustableOrRelativeDate (1..1) <"The date to close and open a new position."> - terminationDate AdjustableOrRelativeDate (1..1) <"The new termination date."> - output: - termsChangeInstruction TermsChangeInstruction (1..1) <"The relevant primitive instruction for the roll, which is a terms change."> - - set termsChangeInstruction -> product -> contractualProduct: - contractualProduct - set termsChangeInstruction -> product -> contractualProduct -> economicTerms -> effectiveDate: - effectiveRollDate - set termsChangeInstruction -> product -> contractualProduct -> economicTerms -> terminationDate: - terminationDate + inputs: + contractualProduct ContractualProduct (1..1) <"The original contractual product to be rolled."> + effectiveRollDate AdjustableOrRelativeDate (1..1) <"The date to close and open a new position."> + terminationDate AdjustableOrRelativeDate (1..1) <"The new termination date."> + output: + termsChangeInstruction TermsChangeInstruction (1..1) <"The relevant primitive instruction for the roll, which is a terms change."> + + set termsChangeInstruction -> product -> contractualProduct: contractualProduct + set termsChangeInstruction -> product -> contractualProduct -> economicTerms -> effectiveDate: + effectiveRollDate + set termsChangeInstruction -> product -> contractualProduct -> economicTerms -> terminationDate: + terminationDate func Qualify_Roll: <"Qualification of a roll event based on: (i) terminating a single existing trade, (ii) entering into a new trade with the same details as the old trade, except for the effective and termination date where the effective date. The roll qualification does not make any assumption on the resulting quantity which may change compared to the original trade (it may only be partially rolled). The price is also likely different as market conditions may have evolved."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - - alias beforeEconomicterms: businessEvent -> instruction only-element -> before -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms - alias openEconomicTerms: FilterOpenTradeStates( businessEvent -> after ) only-element -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms - alias closedTradeState: FilterClosedTradeStates( businessEvent -> after ) - - set is_event: - // The first 2 conditions imply that there is 1 and only 1 before and 1 open thanks to the "only-element" modifier - beforeEconomicterms exists and - openEconomicTerms exists and - closedTradeState count = 1 and - openEconomicTerms -> payout = beforeEconomicterms -> payout and - openEconomicTerms -> collateral = beforeEconomicterms -> collateral and - openEconomicTerms -> effectiveDate = beforeEconomicterms -> terminationDate and - openEconomicTerms -> terminationDate <> beforeEconomicterms -> terminationDate + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias beforeEconomicterms: + businessEvent -> instruction only-element -> before -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms + alias openEconomicTerms: + FilterOpenTradeStates(businessEvent -> after) only-element -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms + alias closedTradeState: FilterClosedTradeStates(businessEvent -> after) + + set is_event: + // The first 2 conditions imply that there is 1 and only 1 before and 1 open thanks to the "only-element" modifier + beforeEconomicterms exists + and openEconomicTerms exists + and closedTradeState count = 1 + and openEconomicTerms -> payout = beforeEconomicterms -> payout + and openEconomicTerms -> collateral = beforeEconomicterms -> collateral + and openEconomicTerms -> effectiveDate = beforeEconomicterms -> terminationDate + and openEconomicTerms -> terminationDate <> beforeEconomicterms -> terminationDate func Create_OnDemandRateChangePrimitiveInstruction: <"Creates a full primitive instruction for an on-demand rate change event. A rate change consists in closing the original trade and opening a new one with the same details as the original one, but with a new rate (price) and effective date. The business event logic checks that there is only 1 rate price in the original trade to be updated."> - inputs: - tradeState TradeState (1..1) <"The original trade to be modified with new rate."> - effectiveDate AdjustableOrRelativeDate (1..1) <"The date to close and open a new position."> - agreedRate number (1..1) <"The new rate agreed between the parties."> - output: - instruction PrimitiveInstruction (1..1) - - condition ContractualProduct: <"Only a contractual product can have a rate change."> - tradeState -> trade -> tradableProduct -> product -> contractualProduct exists - condition SingleTradeLot: <"Rate change only works for a trade with a single trade lot."> - tradeState -> trade -> tradableProduct -> tradeLot count = 1 - - set instruction -> split -> breakdown: <"Sets the first part of the split to be a termination instruction for the existing trade."> - [ Create_TerminationInstruction( tradeState ) ] - - add instruction -> split -> breakdown: <"Sets the second part of the split to be a new contract with the same details as the old one but with effective date and price (rate) changed."> - [ - PrimitiveInstruction { - quantityChange: Create_OnDemandRateChangePriceChangeInstruction( - tradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity, - agreedRate - ), - termsChange: Create_OnDemandRateChangeTermsChangeInstruction( - tradeState -> trade -> tradableProduct -> product -> contractualProduct, - effectiveDate - ), - ... - } - ] + inputs: + tradeState TradeState (1..1) <"The original trade to be modified with new rate."> + effectiveDate AdjustableOrRelativeDate (1..1) <"The date to close and open a new position."> + agreedRate number (1..1) <"The new rate agreed between the parties."> + output: + instruction PrimitiveInstruction (1..1) + + condition ContractualProduct: <"Only a contractual product can have a rate change."> + tradeState -> trade -> tradableProduct -> product -> contractualProduct exists + condition SingleTradeLot: <"Rate change only works for a trade with a single trade lot."> + tradeState -> trade -> tradableProduct -> tradeLot count = 1 + + set instruction -> split -> breakdown: <"Sets the first part of the split to be a termination instruction for the existing trade."> + [Create_TerminationInstruction(tradeState)] + + add instruction -> split -> breakdown: <"Sets the second part of the split to be a new contract with the same details as the old one but with effective date and price (rate) changed."> + [ + PrimitiveInstruction { + quantityChange: Create_OnDemandRateChangePriceChangeInstruction( + tradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity, + agreedRate + ), + termsChange: Create_OnDemandRateChangeTermsChangeInstruction( + tradeState -> trade -> tradableProduct -> product -> contractualProduct, + effectiveDate + ), + ... + } + ] func Create_OnDemandRateChangePriceChangeInstruction: <"Creates a price change instruction for an on-demand rate change, based on a new rate provided as a single number by matching it to a single rate price."> - inputs: - priceQuantity PriceQuantity (1..*) <"The original price / quantity to be modified with the new rate."> - newRate number (1..1) <"The new rate value, provided as a single number."> - output: - quantityChangeInstruction QuantityChangeInstruction (1..1) - - alias currentRatePrice: <"Filter interest rate price and make it into a single element"> - priceQuantity + inputs: + priceQuantity PriceQuantity (1..*) <"The original price / quantity to be modified with the new rate."> + newRate number (1..1) <"The new rate value, provided as a single number."> + output: + quantityChangeInstruction QuantityChangeInstruction (1..1) + + alias currentRatePrice: <"Filter interest rate price and make it into a single element"> + priceQuantity extract price then flatten then filter priceType = PriceTypeEnum -> InterestRate then only-element - alias newPrice: <"Create the new price object."> - Price { + alias newPrice: <"Create the new price object."> + Price { value: newRate, unit: currentRatePrice -> unit, perUnitOf: currentRatePrice -> perUnitOf, @@ -1412,501 +1526,512 @@ func Create_OnDemandRateChangePriceChangeInstruction: <"Creates a price change i cashPrice: currentRatePrice -> cashPrice, datedValue: empty } - alias newPriceQuantity: <"Create the new price quantity object."> - PriceQuantity { + alias newPriceQuantity: <"Create the new price quantity object."> + PriceQuantity { price: newPrice, ... } - condition OneRatePrice: <"There should be 1 and only 1 rate type price in the current price."> - currentRatePrice exists + condition OneRatePrice: <"There should be 1 and only 1 rate type price in the current price."> + currentRatePrice exists - set quantityChangeInstruction: - QuantityChangeInstruction { - change: newPriceQuantity, + set quantityChangeInstruction: + QuantityChangeInstruction { + change: newPriceQuantity, direction: QuantityChangeDirectionEnum -> Replace, lotIdentifier: empty } func Create_OnDemandRateChangeTermsChangeInstruction: <"Creates a terms change instruction for an on-demand rate change, based on a new rate provided as a single number. This instruction only updates the effective date but keeps other details of the trade unchanged."> - inputs: - contractualProduct ContractualProduct (1..1) <"The original contractual product whose rate is changed."> - effectiveDate AdjustableOrRelativeDate (1..1) <"The date to open the new position."> - output: - termsChangeInstruction TermsChangeInstruction (1..1) + inputs: + contractualProduct ContractualProduct (1..1) <"The original contractual product whose rate is changed."> + effectiveDate AdjustableOrRelativeDate (1..1) <"The date to open the new position."> + output: + termsChangeInstruction TermsChangeInstruction (1..1) - set termsChangeInstruction -> product -> contractualProduct: <"Keep the same contractual product as the original trade"> - contractualProduct - set termsChangeInstruction -> product -> contractualProduct -> economicTerms -> effectiveDate: <"Updates the contractual product's effective date to be the new effective date."> - effectiveDate + set termsChangeInstruction -> product -> contractualProduct: <"Keep the same contractual product as the original trade"> + contractualProduct + set termsChangeInstruction -> product -> contractualProduct -> economicTerms -> effectiveDate: <"Updates the contractual product's effective date to be the new effective date."> + effectiveDate func Qualify_OnDemandRateChange: <"The qualification of on an-demand rate change event from the fact that the only primitive is the reset."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - - alias beforeTradableProduct: - businessEvent -> instruction only-element -> before -> trade -> tradableProduct - alias beforeEconomicterms: beforeTradableProduct -> product -> contractualProduct -> economicTerms - alias openTradableProduct: - FilterOpenTradeStates( businessEvent -> after ) only-element -> trade -> tradableProduct - alias openEconomicTerms: openTradableProduct -> product -> contractualProduct -> economicTerms - alias closedTradeState: FilterClosedTradeStates( businessEvent -> after ) + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias beforeTradableProduct: + businessEvent -> instruction only-element -> before -> trade -> tradableProduct + alias beforeEconomicterms: + beforeTradableProduct -> product -> contractualProduct -> economicTerms + alias openTradableProduct: + FilterOpenTradeStates(businessEvent -> after) only-element -> trade -> tradableProduct + alias openEconomicTerms: + openTradableProduct -> product -> contractualProduct -> economicTerms + alias closedTradeState: FilterClosedTradeStates(businessEvent -> after) alias beforePriceQuantityRateOnly: <"The rate value before. There must be 1 and only 1."> - beforeTradableProduct -> tradeLot only-element -> priceQuantity + beforeTradableProduct -> tradeLot only-element -> priceQuantity extract price then flatten then filter priceType = PriceTypeEnum -> InterestRate then extract value - alias openPriceQuantityRateOnly: <"The rate value after. There must be 1 and only 1, and it must be different from the rate before."> - openTradableProduct -> tradeLot only-element -> priceQuantity + alias openPriceQuantityRateOnly: <"The rate value after. There must be 1 and only 1, and it must be different from the rate before."> + openTradableProduct -> tradeLot only-element -> priceQuantity extract price then flatten then filter priceType = PriceTypeEnum -> InterestRate then extract value - alias beforePriceQuantityNoRate: <"The price and quantity attributes before, excluding any rate price."> - beforeTradableProduct -> tradeLot only-element -> priceQuantity - extract - PriceQuantity { - price: price filter p [ p -> priceType <> PriceTypeEnum -> InterestRate ], - quantity: quantity, - observable: observable, - ... - } - - alias openPriceQuantityNoRate: <"The price and quantity attributes after, excluding any rate price. They must be equal to the price and quantity before, excluding any rate price"> - openTradableProduct -> tradeLot only-element -> priceQuantity - extract - PriceQuantity { - price: price filter p [ p -> priceType <> PriceTypeEnum -> InterestRate ], - quantity: quantity, - observable: observable, - ... - } + alias beforePriceQuantityNoRate: <"The price and quantity attributes before, excluding any rate price."> + beforeTradableProduct -> tradeLot only-element -> priceQuantity + extract + PriceQuantity { + price: price + filter p [ p -> priceType <> PriceTypeEnum -> InterestRate ], + quantity: quantity, + observable: observable, + ... + } - set is_event: + alias openPriceQuantityNoRate: <"The price and quantity attributes after, excluding any rate price. They must be equal to the price and quantity before, excluding any rate price"> + openTradableProduct -> tradeLot only-element -> priceQuantity + extract + PriceQuantity { + price: price + filter p [ p -> priceType <> PriceTypeEnum -> InterestRate ], + quantity: quantity, + observable: observable, + ... + } + + set is_event: // The first 2 conditions imply that there is 1 and only 1 before and 1 open thanks to the "only-element" modifier - beforeEconomicterms exists and - openEconomicTerms exists and - closedTradeState count = 1 and - // openEconomicTerms -> payout = beforeEconomicterms -> payout and - openEconomicTerms -> collateral = beforeEconomicterms -> collateral and - beforePriceQuantityRateOnly count = 1 and - openPriceQuantityRateOnly count = 1 and - beforePriceQuantityRateOnly only-element <> openPriceQuantityRateOnly only-element and - beforePriceQuantityNoRate = openPriceQuantityNoRate + beforeEconomicterms exists + and openEconomicTerms exists + and closedTradeState count = 1 + and // openEconomicTerms -> payout = beforeEconomicterms -> payout and + openEconomicTerms -> collateral = beforeEconomicterms -> collateral + and beforePriceQuantityRateOnly count = 1 + and openPriceQuantityRateOnly count = 1 + and beforePriceQuantityRateOnly only-element + <> openPriceQuantityRateOnly only-element + and beforePriceQuantityNoRate = openPriceQuantityNoRate func Create_CancellationPrimitiveInstruction: <"Creates a primitive instruction for early cancellation."> - inputs: - tradeState TradeState (1..1) <"The original trade to be rolled."> - newRepurchasePrice number (0..1) <"The new repurchase price after the new termination date is set."> - cancellationDate AdjustableOrRelativeDate (1..1) <"The new termination date."> - output: - instruction PrimitiveInstruction (1..1) - - condition ContractualProduct: <"If a contratual product can be cancelled."> - tradeState -> trade -> tradableProduct -> product -> contractualProduct exists - - set instruction -> split -> breakdown: <"Sets the first part of the split to be a termination instruction for the existing trade."> - [ Create_TerminationInstruction( tradeState ) ] - - add instruction -> split -> breakdown: <"Sets the second part of the split to be a new contract with the same details as the old one but with termination date changed and price / quantity changed (taking new repurchase price into account)."> - [ - PrimitiveInstruction { - quantityChange: QuantityChangeInstruction { - change: tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity, - direction: QuantityChangeDirectionEnum -> Replace, - lotIdentifier: empty - }, - termsChange: Create_CancellationTermChangeInstruction( - tradeState -> trade -> tradableProduct -> product -> contractualProduct, - cancellationDate - ), - ... - } - ] + inputs: + tradeState TradeState (1..1) <"The original trade to be rolled."> + newRepurchasePrice number (0..1) <"The new repurchase price after the new termination date is set."> + cancellationDate AdjustableOrRelativeDate (1..1) <"The new termination date."> + output: + instruction PrimitiveInstruction (1..1) + + condition ContractualProduct: <"If a contratual product can be cancelled."> + tradeState -> trade -> tradableProduct -> product -> contractualProduct exists + + set instruction -> split -> breakdown: <"Sets the first part of the split to be a termination instruction for the existing trade."> + [Create_TerminationInstruction(tradeState)] + + add instruction -> split -> breakdown: <"Sets the second part of the split to be a new contract with the same details as the old one but with termination date changed and price / quantity changed (taking new repurchase price into account)."> + [ + PrimitiveInstruction { + quantityChange: QuantityChangeInstruction { + change: tradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity, + direction: QuantityChangeDirectionEnum -> Replace, + lotIdentifier: empty + }, + termsChange: Create_CancellationTermChangeInstruction( + tradeState -> trade -> tradableProduct -> product -> contractualProduct, + cancellationDate + ), + ... + } + ] func Create_CancellationTermChangeInstruction: <"Create a terms change instruction for a cancellation that consists in bringing the termination date forward."> - inputs: - contractualProduct ContractualProduct (1..1) <"Contractual product of original trade"> - cancellationDate AdjustableOrRelativeDate (1..1) <"The new termination date."> - output: - termsChangeInstruction TermsChangeInstruction (1..1) + inputs: + contractualProduct ContractualProduct (1..1) <"Contractual product of original trade"> + cancellationDate AdjustableOrRelativeDate (1..1) <"The new termination date."> + output: + termsChangeInstruction TermsChangeInstruction (1..1) - set termsChangeInstruction -> product -> contractualProduct: - contractualProduct - set termsChangeInstruction -> product -> contractualProduct -> economicTerms -> terminationDate: - cancellationDate + set termsChangeInstruction -> product -> contractualProduct: contractualProduct + set termsChangeInstruction -> product -> contractualProduct -> economicTerms -> terminationDate: + cancellationDate func Qualify_Cancellation: <"Qualification of an cancellation event."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - - alias closedEconomicTerms: FilterClosedTradeStates( businessEvent -> after ) only-element -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms - alias openEconomicTerms: FilterOpenTradeStates( businessEvent -> after ) only-element -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms - - set is_event: - businessEvent -> instruction -> before count = 1 - and closedEconomicTerms exists - and openEconomicTerms exists - // and openEconomicTerms -> payout = closedEconomicTerms -> payout - // and openEconomicTerms -> collateral = closedEconomicTerms -> collateral - and ( - if openEconomicTerms -> terminationDate exists and closedEconomicTerms -> terminationDate exists - then openEconomicTerms -> terminationDate -> adjustableDate ->unadjustedDate < closedEconomicTerms -> terminationDate -> adjustableDate ->unadjustedDate - else - openEconomicTerms -> terminationDate exists - ) + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias closedEconomicTerms: + FilterClosedTradeStates(businessEvent -> after) only-element -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms + alias openEconomicTerms: + FilterOpenTradeStates(businessEvent -> after) only-element -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms + + set is_event: + businessEvent -> instruction -> before count = 1 + and closedEconomicTerms exists + and openEconomicTerms exists + // and openEconomicTerms -> payout = closedEconomicTerms -> payout + // and openEconomicTerms -> collateral = closedEconomicTerms -> collateral + and (if openEconomicTerms -> terminationDate exists + and closedEconomicTerms -> terminationDate exists + then openEconomicTerms -> terminationDate -> adjustableDate -> unadjustedDate < closedEconomicTerms -> terminationDate -> adjustableDate -> unadjustedDate + else openEconomicTerms -> terminationDate exists) func Create_PairOffInstruction: <"Creates a set of instructions to pair-off a set of trades based on a pair reference. A package component is created based on that pair reference and the list of identifiers for the underlying trades. That package component is then added onto the execution details of every underlying trade. The existing trades are not terminated."> - inputs: - tradeState TradeState (2..*) <"The trades to pair-off. There must be at least 2."> - pairReference Identifier (1..1) <"The reference ID of the paired trades."> - output: - instruction Instruction (1..*) - - alias componentId: <"Extract the trade identifier from each trade. This list will be used as the componentId attribute of the package."> - tradeState - extract trade -> tradeIdentifier only-element - - set instruction: <"Create a list of new execution instructions for each trade. The new execution instructions include new execution details, with the package component created using the pair reference and the componentId list."> - tradeState - extract - Instruction { - before: item, - primitiveInstruction: PrimitiveInstruction { - contractFormation: if item -> state -> positionState = PositionStatusEnum -> Formed then - Create_ContractFormationInstruction( item -> trade -> contractDetails -> documentation ), - execution: ExecutionInstruction { - product: item -> trade -> tradableProduct -> product, - priceQuantity: item -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity, - counterparty: item -> trade -> tradableProduct -> counterparty, - ancillaryParty: item -> trade -> tradableProduct -> ancillaryParty, - parties: item -> trade -> party, - partyRoles: item -> trade -> partyRole, - executionDetails: Create_PackageExecutionDetails( - item -> trade -> executionDetails, - pairReference, - componentId - ), - tradeDate: item -> trade -> tradeDate, - tradeIdentifier: item -> trade -> tradeIdentifier, - ... - }, - ... + inputs: + tradeState TradeState (2..*) <"The trades to pair-off. There must be at least 2."> + pairReference Identifier (1..1) <"The reference ID of the paired trades."> + output: + instruction Instruction (1..*) + + alias componentId: <"Extract the trade identifier from each trade. This list will be used as the componentId attribute of the package."> + tradeState extract trade -> tradeIdentifier only-element + + set instruction: <"Create a list of new execution instructions for each trade. The new execution instructions include new execution details, with the package component created using the pair reference and the componentId list."> + tradeState + extract + Instruction { + before: item, + primitiveInstruction: PrimitiveInstruction { + contractFormation: if item -> state -> positionState = PositionStatusEnum -> Formed + then Create_ContractFormationInstruction( + item -> trade -> contractDetails -> documentation + ), + execution: ExecutionInstruction { + product: item -> trade -> tradableProduct -> product, + priceQuantity: item -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity, + counterparty: item -> trade -> tradableProduct -> counterparty, + ancillaryParty: item -> trade -> tradableProduct -> ancillaryParty, + parties: item -> trade -> party, + partyRoles: item -> trade -> partyRole, + executionDetails: Create_PackageExecutionDetails( + item -> trade -> executionDetails, + pairReference, + componentId + ), + tradeDate: item -> trade -> tradeDate, + tradeIdentifier: item -> trade -> tradeIdentifier, + ... + }, + ... + } } - } func Qualify_PairOff: <"Qualifies an event as a pair-off when all the details of the existing trades are maintained, except for their execution details which are updated to include a package component. This package component must be unique across all trades."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - - alias openTradeState: FilterOpenTradeStates( businessEvent -> after ) - - alias newTradeInstruction: <"New trade instructions, that contain only an execution primitive and (optionally) a contract formation primitive."> - businessEvent -> instruction - filter NewTradeInstructionOnlyExists( item -> primitiveInstruction ) - - alias packageRef: <"Package details on the new trades."> - openTradeState -> trade -> executionDetails -> packageReference - - set is_event: - // The first condition asserts that there are only new executions - newTradeInstruction count = businessEvent -> instruction count - // All the trade details (except the execution instructions) are unchanged - // and openTradeNoExecutionDetails = beforeTradeNoExecutionDetails - and openTradeState -> trade -> tradableProduct = newTradeInstruction -> before -> trade -> tradableProduct - // All open trades are associated to a package, and that package is the same across all trades - and packageRef count = openTradeState count - and packageRef distinct count = 1 + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias openTradeState: FilterOpenTradeStates(businessEvent -> after) + + alias newTradeInstruction: <"New trade instructions, that contain only an execution primitive and (optionally) a contract formation primitive."> + businessEvent -> instruction + filter NewTradeInstructionOnlyExists(item -> primitiveInstruction) + + alias packageRef: <"Package details on the new trades."> + openTradeState -> trade -> executionDetails -> packageReference + + set is_event: + // The first condition asserts that there are only new executions + newTradeInstruction count = businessEvent -> instruction count + // All the trade details (except the execution instructions) are unchanged + // and openTradeNoExecutionDetails = beforeTradeNoExecutionDetails + and openTradeState -> trade -> tradableProduct = newTradeInstruction -> before -> trade -> tradableProduct + // All open trades are associated to a package, and that package is the same across all trades + and packageRef count = openTradeState count + and packageRef distinct count = 1 func Create_ShapingInstruction: <"Creates a set of instructions to shape a trade based on shaped quantities and a package ID. The original trade is closed and split into (smaller) shaped trades based on a set of trade lots containing the shaped quantities and an identifier for each shaped trade. A package component is created based on the package ID and the list of identifiers for the shaped trades. That package component is then added onto the execution details of every shaped trade."> - inputs: - tradeState TradeState (1..1) <"The original trade to be shaped."> - tradeLots TradeLot (2..*) <"The shaped quantities provided as full set of trade lots with price and quantity. Each trade lot also contains an identifier to associate to the corresponding shaped trade. Shaping must result in at least 2 shaped trades."> - shapeIdentifier Identifier (1..1) <"The package ID of the shaped trades."> - output: - instruction PrimitiveInstruction (1..1) - - alias componentId: <"Extract the trade identifier from each trade lot. This list will be used as the componentId attribute of the package."> - tradeLots - extract item -> lotIdentifier only-element - - set instruction -> split -> breakdown: <"Sets the first part of the split to be a termination instruction for the existing trade."> - [ Create_TerminationInstruction( tradeState ) ] - - add instruction -> split -> breakdown: <"The second part of the split consists in a quantity change and a new execution for each provided trade lot. The quantity change takes care of the shaping according to the provided quantities. The execution adds the required package component to the execution details."> - tradeLots + inputs: + tradeState TradeState (1..1) <"The original trade to be shaped."> + tradeLots TradeLot (2..*) <"The shaped quantities provided as full set of trade lots with price and quantity. Each trade lot also contains an identifier to associate to the corresponding shaped trade. Shaping must result in at least 2 shaped trades."> + shapeIdentifier Identifier (1..1) <"The package ID of the shaped trades."> + output: + instruction PrimitiveInstruction (1..1) + + alias componentId: <"Extract the trade identifier from each trade lot. This list will be used as the componentId attribute of the package."> + tradeLots extract item -> lotIdentifier only-element + + set instruction -> split -> breakdown: <"Sets the first part of the split to be a termination instruction for the existing trade."> + [Create_TerminationInstruction(tradeState)] + + add instruction -> split -> breakdown: <"The second part of the split consists in a quantity change and a new execution for each provided trade lot. The quantity change takes care of the shaping according to the provided quantities. The execution adds the required package component to the execution details."> + tradeLots extract priceQuantity then extract PrimitiveInstruction { - contractFormation: if tradeState -> state -> positionState = PositionStatusEnum -> Formed then - Create_ContractFormationInstruction( tradeState -> trade -> contractDetails -> documentation ), + contractFormation: if tradeState -> state -> positionState = PositionStatusEnum -> Formed + then Create_ContractFormationInstruction( + tradeState -> trade -> contractDetails -> documentation + ), execution: ExecutionInstruction { - product: tradeState-> trade -> tradableProduct -> product, - priceQuantity: tradeState-> trade -> tradableProduct -> tradeLot only-element -> priceQuantity, - counterparty: tradeState-> trade -> tradableProduct -> counterparty, - ancillaryParty: tradeState-> trade -> tradableProduct -> ancillaryParty, - parties: tradeState-> trade -> party, - partyRoles: tradeState-> trade -> partyRole, - executionDetails: Create_PackageExecutionDetails( - tradeState-> trade -> executionDetails, - shapeIdentifier, - componentId - ), - tradeDate: tradeState-> trade -> tradeDate, - tradeIdentifier: tradeState-> trade -> tradeIdentifier, - ... - }, + product: tradeState -> trade -> tradableProduct -> product, + priceQuantity: tradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity, + counterparty: tradeState -> trade -> tradableProduct -> counterparty, + ancillaryParty: tradeState -> trade -> tradableProduct -> ancillaryParty, + parties: tradeState -> trade -> party, + partyRoles: tradeState -> trade -> partyRole, + executionDetails: Create_PackageExecutionDetails( + tradeState -> trade -> executionDetails, + shapeIdentifier, + componentId + ), + tradeDate: tradeState -> trade -> tradeDate, + tradeIdentifier: tradeState -> trade -> tradeIdentifier, + ... + }, quantityChange: QuantityChangeInstruction { - change: item, - direction: QuantityChangeDirectionEnum->Replace, - lotIdentifier: empty - }, + change: item, + direction: QuantityChangeDirectionEnum -> Replace, + lotIdentifier: empty + }, ... } func Qualify_Shaping: <"The qualification of a shaping event from the fact that (i) the only primitive is a split where the original trade is closed, (ii) the parties before and after the split remain the same (by contrast with an allocation, for instance) and (iii) the split trades contain a package component in their execution details. This package ties together the resulting shapes trades' identifiers and must be the same across all shaped trades. Note that SplitPrimitive type has a condition to check that the post-split quantities sum to the pre-split quantity."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: - is_event boolean (1..1) - - alias beforeTradeState: businessEvent -> instruction -> before only-element - alias closedTradeState: FilterClosedTradeStates( businessEvent -> after ) only-element - alias openTradeStates: FilterOpenTradeStates( businessEvent -> after ) - - alias packageRef: <"Package details on the new trades."> - openTradeStates -> trade -> executionDetails -> packageReference - alias openTradeNoExecutionDetails: <"List of open trades with no execution details on, for comparison."> - openTradeStates - extract TradeNoExecutionDetails( item -> trade) - - set is_event: - // There is a single before trade with a split instruction, resulting in a single closed trade and multiple open trades - beforeTradeState exists - and closedTradeState exists - and openTradeStates count > 1 - and businessEvent -> instruction -> primitiveInstruction -> split only exists - // Open trade counterparties should match before trade counterparties - and openTradeStates - extract [ item -> trade -> tradableProduct -> counterparty -> partyReference = beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference ] - all = True - // All open trades are associated to a package, and that package is the same across all trades - and packageRef count = openTradeNoExecutionDetails count - and packageRef distinct count = 1 + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias beforeTradeState: businessEvent -> instruction -> before only-element + alias closedTradeState: FilterClosedTradeStates(businessEvent -> after) only-element + alias openTradeStates: FilterOpenTradeStates(businessEvent -> after) + + alias packageRef: <"Package details on the new trades."> + openTradeStates -> trade -> executionDetails -> packageReference + alias openTradeNoExecutionDetails: <"List of open trades with no execution details on, for comparison."> + openTradeStates extract TradeNoExecutionDetails(item -> trade) + + set is_event: + // There is a single before trade with a split instruction, resulting in a single closed trade and multiple open trades + beforeTradeState exists + and closedTradeState exists + and openTradeStates count > 1 + and businessEvent -> instruction -> primitiveInstruction -> split only exists + // Open trade counterparties should match before trade counterparties + and openTradeStates + extract [ + item -> trade -> tradableProduct -> counterparty -> partyReference = beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference + ] all = True + // All open trades are associated to a package, and that package is the same across all trades + and packageRef count = openTradeNoExecutionDetails count + and packageRef distinct count = 1 func Create_PackageExecutionDetails: <"Add a package component to an execution details object. This package component is constructed using an identifier for the package and the list of identifiers for its components."> - inputs: - executionDetails ExecutionDetails (0..1) <"The original execution details. These may be empty."> - listId Identifier (1..1) <"The identifier for the package."> - componentId Identifier (2..*) <"The list of identifiers for the package components. There must be at least 2."> - output: - newExecutionDetails ExecutionDetails (1..1) - - set newExecutionDetails -> executionType: executionDetails -> executionType - set newExecutionDetails -> executionVenue: executionDetails -> executionVenue - set newExecutionDetails -> packageReference -> listId: listId - set newExecutionDetails -> packageReference -> componentId: componentId + inputs: + executionDetails ExecutionDetails (0..1) <"The original execution details. These may be empty."> + listId Identifier (1..1) <"The identifier for the package."> + componentId Identifier (2..*) <"The list of identifiers for the package components. There must be at least 2."> + output: + newExecutionDetails ExecutionDetails (1..1) + + set newExecutionDetails -> executionType: executionDetails -> executionType + set newExecutionDetails -> executionVenue: executionDetails -> executionVenue + set newExecutionDetails -> packageReference -> listId: listId + set newExecutionDetails -> packageReference -> componentId: componentId func NewTradeInstructionOnlyExists: - inputs: - primitiveInstruction PrimitiveInstruction (1..1) - output: - result boolean (1..1) - set result: - primitiveInstruction -> execution only exists - or ( primitiveInstruction -> execution, primitiveInstruction -> contractFormation ) only exists + inputs: + primitiveInstruction PrimitiveInstruction (1..1) + output: + result boolean (1..1) + set result: + primitiveInstruction -> execution only exists + or (primitiveInstruction -> execution, primitiveInstruction -> contractFormation) only exists func TradeNoExecutionDetails: - inputs: - trade Trade (1..1) - output: - newTrade Trade (1..1) + inputs: + trade Trade (1..1) + output: + newTrade Trade (1..1) - set newTrade: trade - set newTrade -> executionDetails: EmptyExecutionDetails() + set newTrade: trade + set newTrade -> executionDetails: EmptyExecutionDetails() func EmptyExecutionDetails: - output: - executionDetails ExecutionDetails (0..1) + output: + executionDetails ExecutionDetails (0..1) func Create_OnDemandInterestPaymentPrimitiveInstruction: <"An instruction to make a interium interest payment by adding a payout leg to the deal."> inputs: - tradeState TradeState (1..1) <"The original trade to be modified."> - interestAmount Money (1..1) - settlementDate SettlementDate (1..1) + tradeState TradeState (1..1) <"The original trade to be modified."> + interestAmount Money (1..1) + settlementDate SettlementDate (1..1) output: instruction PrimitiveInstruction (1..1) <"Result is a Terms Change Instruction."> - alias interestRatePayout: - tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> interestRatePayout only-element - - alias cashflow: <"A fully structured CashFlow or the following need to be provided to create a cashflow."> - Create_Cashflow( - interestAmount -> value, - interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency, - settlementDate, - interestRatePayout -> payerReceiver, - CashflowType { - cashflowType: ScheduledTransferEnum -> NetInterest, - ... // TODO: set either cashPrice or priceExpression. - }, - empty - ) - - condition InterestRatePayoutExists: <"Only a contractual product with a single interest rate payout can have an on-demand interest payment."> - interestRatePayout exists - - condition Currency: <"The currency of the interest amount must match the currency of the original interest rate payout."> - interestAmount -> unit -> currency = interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency - - set instruction: - PrimitiveInstruction { - termsChange: Create_CashflowTermsChangeInstruction( - tradeState -> trade -> tradableProduct -> product -> contractualProduct, - cashflow - ), - ... + alias interestRatePayout: + tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> interestRatePayout only-element + + alias cashflow: <"A fully structured CashFlow or the following need to be provided to create a cashflow."> + Create_Cashflow( + interestAmount -> value, + interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency, + settlementDate, + interestRatePayout -> payerReceiver, + CashflowType { + cashflowType: ScheduledTransferEnum -> NetInterest, + ... // TODO: set either cashPrice or priceExpression. + }, + empty + ) + + condition InterestRatePayoutExists: <"Only a contractual product with a single interest rate payout can have an on-demand interest payment."> + interestRatePayout exists + + condition Currency: <"The currency of the interest amount must match the currency of the original interest rate payout."> + interestAmount -> unit -> currency = interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency + + set instruction: + PrimitiveInstruction { + termsChange: Create_CashflowTermsChangeInstruction( + tradeState -> trade -> tradableProduct -> product -> contractualProduct, + cashflow + ), + ... } func Qualify_OnDemandPayment: <"Qualification of a on-demand payment."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) - alias afterTradeStates: FilterOpenTradeStates( businessEvent -> after ) + alias afterTradeStates: FilterOpenTradeStates(businessEvent -> after) - alias beforeCashFlow: FilterClosedTradeStates( businessEvent -> after ) only-element -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms->payout->cashflow - alias afterCashFlow: FilterOpenTradeStates( businessEvent -> after ) only-element -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms->payout->cashflow + alias beforeCashFlow: + FilterClosedTradeStates(businessEvent -> after) only-element -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> cashflow + alias afterCashFlow: + FilterOpenTradeStates(businessEvent -> after) only-element -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> cashflow - set is_event: - businessEvent -> instruction -> before count = 1 - and businessEvent -> after count = 1 - and afterTradeStates count = 1 - and businessEvent -> instruction -> primitiveInstruction -> termsChange only exists - and afterCashFlow count > beforeCashFlow count //allows for adding multiple cashflows - and afterCashFlow -> cashflowType -> cashflowType all = ScheduledTransferEnum -> NetInterest + set is_event: + businessEvent -> instruction -> before count = 1 + and businessEvent -> after count = 1 + and afterTradeStates count = 1 + and businessEvent -> instruction -> primitiveInstruction -> termsChange only exists + and afterCashFlow count > beforeCashFlow count // allows for adding multiple cashflows + and afterCashFlow -> cashflowType -> cashflowType all = ScheduledTransferEnum -> NetInterest func Create_CashflowTermsChangeInstruction: - inputs: - contractualProduct ContractualProduct (1..1) - cashFlow Cashflow(1..1) - output: - termsChangeInstruction TermsChangeInstruction (1..1) + inputs: + contractualProduct ContractualProduct (1..1) + cashFlow Cashflow (1..1) + output: + termsChangeInstruction TermsChangeInstruction (1..1) - set termsChangeInstruction -> product -> contractualProduct: - contractualProduct - add termsChangeInstruction -> product -> contractualProduct->economicTerms->payout->cashflow: - cashFlow + set termsChangeInstruction -> product -> contractualProduct: contractualProduct + add termsChangeInstruction -> product -> contractualProduct -> economicTerms -> payout -> cashflow: + cashFlow func Create_Cashflow: - inputs: - amount number (1..1) - currency string (1..1) - [metadata scheme] - settlementDate SettlementDate (1..1) - payerReceiver PayerReceiver (1..1) - cashflowType CashflowType (1..1) - paymentDiscounting PaymentDiscounting (0..1) - output: - cashflow Cashflow (1..1) - - set cashflow -> settlementTerms -> settlementDate: settlementDate - set cashflow -> payerReceiver: payerReceiver - set cashflow -> cashflowType: cashflowType - set cashflow -> paymentDiscounting: paymentDiscounting - - set cashflow->priceQuantity: - ResolvablePriceQuantity { - quantitySchedule: NonNegativeQuantitySchedule { - value: amount, - unit: UnitType { - currency: currency, - ... - }, - ... - }, - ... + inputs: + amount number (1..1) + currency string (1..1) + [metadata scheme] + settlementDate SettlementDate (1..1) + payerReceiver PayerReceiver (1..1) + cashflowType CashflowType (1..1) + paymentDiscounting PaymentDiscounting (0..1) + output: + cashflow Cashflow (1..1) + + set cashflow -> settlementTerms -> settlementDate: settlementDate + set cashflow -> payerReceiver: payerReceiver + set cashflow -> cashflowType: cashflowType + set cashflow -> paymentDiscounting: paymentDiscounting + + set cashflow -> priceQuantity: + ResolvablePriceQuantity { + quantitySchedule: NonNegativeQuantitySchedule { + value: amount, + unit: UnitType { + currency: currency, + ... + }, + ... + }, + ... } func Create_TerminationInstruction: <"Creates the relevant primitive instruction for a termination, which consists in a quantity change to bring the quantity to zero."> - inputs: - tradeState TradeState (1..1) <"The original trade to be termintaed."> - output: - instruction PrimitiveInstruction (1..1) - - alias changeQuantity: <"Create distinct list of Quantity with value set to zero."> - tradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> quantity - extract NonNegativeQuantitySchedule { - value: 0.0, - unit: item -> unit, - ... - } - then distinct + inputs: + tradeState TradeState (1..1) <"The original trade to be termintaed."> + output: + instruction PrimitiveInstruction (1..1) + + alias changeQuantity: <"Create distinct list of Quantity with value set to zero."> + tradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> quantity + extract + NonNegativeQuantitySchedule { + value: 0.0, + unit: item -> unit, + ... + } + then distinct - alias changePriceQuantity: <"Create change PriceQuantity for QuantityChangeInstruction."> - PriceQuantity { + alias changePriceQuantity: <"Create change PriceQuantity for QuantityChangeInstruction."> + PriceQuantity { quantity: changeQuantity, ... } - set instruction -> quantityChange: <"Set primitive instruction to be only a quantity change instruction (with values set to zero)."> - QuantityChangeInstruction { + set instruction -> quantityChange: <"Set primitive instruction to be only a quantity change instruction (with values set to zero)."> + QuantityChangeInstruction { change: changePriceQuantity, - direction: QuantityChangeDirectionEnum->Replace, + direction: QuantityChangeDirectionEnum -> Replace, lotIdentifier: empty } // End of ICMA - Phase 2 Contribution - func Create_BusinessEvent: <"Creates a business event from instructions containing primitive instructions and optionally a trade state."> [creation BusinessEvent] - inputs: - instruction Instruction (1..*) - intent EventIntentEnum (0..1) - eventDate date (1..1) + inputs: + instruction Instruction (1..*) + intent EventIntentEnum (0..1) + eventDate date (1..1) effectiveDate date (1..1) - output: - businessEvent BusinessEvent (1..1) - - add businessEvent -> instruction: - instruction - - set businessEvent -> intent: - intent - - set businessEvent -> eventDate: - eventDate - - set businessEvent -> effectiveDate: - effectiveDate - - add businessEvent -> after: - instruction - extract - if item -> primitiveInstruction -> split exists then - Create_Split( item -> primitiveInstruction -> split -> breakdown, item -> before ) - else if item -> primitiveInstruction -> exercise exists then - Create_Exercise( item -> primitiveInstruction ->exercise, item -> before ) - else - [ Create_TradeState( item -> primitiveInstruction , item -> before ) ] + output: + businessEvent BusinessEvent (1..1) + + add businessEvent -> instruction: instruction + + set businessEvent -> intent: intent + + set businessEvent -> eventDate: eventDate + + set businessEvent -> effectiveDate: effectiveDate + + add businessEvent -> after: + instruction + extract + if item -> primitiveInstruction -> split exists + then Create_Split( + item -> primitiveInstruction -> split -> breakdown, + item -> before + ) + else if item -> primitiveInstruction -> exercise exists + then Create_Exercise( + item -> primitiveInstruction -> exercise, + item -> before + ) + else [Create_TradeState(item -> primitiveInstruction, item -> before)] then flatten - // TODO: we should have a condition to ensure that no trade is 'lost' between the before(s) and the after(s). - // This can be implemented by looking at the trade identifier attribute on the before state, and making sure it exists in the after state. - // So for instance where there is a party change (which results in a different trade with a different trade id), the original trade should be split first, and one of the copies should 'close' the trade. - +// TODO: we should have a condition to ensure that no trade is 'lost' between the before(s) and the after(s). +// This can be implemented by looking at the trade identifier attribute on the before state, and making sure it exists in the after state. +// So for instance where there is a party change (which results in a different trade with a different trade id), the original trade should be split first, and one of the copies should 'close' the trade. func Create_TradeState: <"Creates a single trade state by applying primitive instructions to an existing trade state (optional in case an execution instruction is included). The primitive instructions are applied in the following order: Always first: @@ -1917,68 +2042,84 @@ func Create_TradeState: <"Creates a single trade state by applying primitive ins - party change Always last: - contract formation, otherwise the contract could be invalid."> - inputs: - primitiveInstruction PrimitiveInstruction (0..1) <"The set of primitive instructions to apply to the trade."> - before TradeState (0..1) <"The original trade on which the primitive instructions are applied"> - - output: - after TradeState (1..1) <"The returned trade state must be of single cardinality. Where a different trade is created and the original trade must be persisted (for instance showing as 'closed'), it should be preceded by a split instruction."> - - alias execution: <"Create execution if instruction exists. If not, then before must exist."> - if primitiveInstruction -> execution is absent then before - else Create_Execution( primitiveInstruction -> execution ) - - alias quantityChange: <"Apply quantity change if instructions exist."> - if primitiveInstruction -> quantityChange is absent then execution - else Create_QuantityChange( primitiveInstruction -> quantityChange, execution) - - alias termsChange: <"Apply terms change if instructions exist."> - if primitiveInstruction -> termsChange is absent then quantityChange - else Create_TermsChange( primitiveInstruction -> termsChange, quantityChange) - - alias partyChange: <"Apply party change if instructions exist."> - if primitiveInstruction -> partyChange is absent then termsChange - else Create_PartyChange( - primitiveInstruction -> partyChange -> counterparty, - primitiveInstruction -> partyChange -> ancillaryParty, - primitiveInstruction -> partyChange -> partyRole, - primitiveInstruction -> partyChange -> tradeId, - termsChange /*after*/ - ) - - alias contractFormation: <"Create contract formation if instructions exist."> - if primitiveInstruction exists and primitiveInstruction -> contractFormation is absent then partyChange - else Create_ContractFormation( primitiveInstruction -> contractFormation, partyChange) - - alias transfer: - if primitiveInstruction -> transfer is absent then contractFormation - else Create_Transfer( primitiveInstruction -> transfer, contractFormation) - - alias reset: - if primitiveInstruction -> reset is absent then transfer - else Create_Reset( primitiveInstruction -> reset, transfer ) + inputs: + primitiveInstruction PrimitiveInstruction (0..1) <"The set of primitive instructions to apply to the trade."> + before TradeState (0..1) <"The original trade on which the primitive instructions are applied"> + output: + after TradeState (1..1) <"The returned trade state must be of single cardinality. Where a different trade is created and the original trade must be persisted (for instance showing as 'closed'), it should be preceded by a split instruction."> + + alias execution: <"Create execution if instruction exists. If not, then before must exist."> + if primitiveInstruction -> execution is absent + then before + else Create_Execution(primitiveInstruction -> execution) + + alias quantityChange: <"Apply quantity change if instructions exist."> + if primitiveInstruction -> quantityChange is absent + then execution + else Create_QuantityChange(primitiveInstruction -> quantityChange, execution) + + alias termsChange: <"Apply terms change if instructions exist."> + if primitiveInstruction -> termsChange is absent + then quantityChange + else Create_TermsChange(primitiveInstruction -> termsChange, quantityChange) + + alias partyChange: <"Apply party change if instructions exist."> + if primitiveInstruction -> partyChange is absent + then termsChange + else Create_PartyChange( + primitiveInstruction -> partyChange -> counterparty, + primitiveInstruction -> partyChange -> ancillaryParty, + primitiveInstruction -> partyChange -> partyRole, + primitiveInstruction -> partyChange -> tradeId, + termsChange /*after*/ + ) + + alias contractFormation: <"Create contract formation if instructions exist."> + if primitiveInstruction exists + and primitiveInstruction -> contractFormation is absent + then partyChange + else Create_ContractFormation( + primitiveInstruction -> contractFormation, + partyChange + ) + + alias transfer: + if primitiveInstruction -> transfer is absent + then contractFormation + else Create_Transfer(primitiveInstruction -> transfer, contractFormation) + + alias reset: + if primitiveInstruction -> reset is absent + then transfer + else Create_Reset(primitiveInstruction -> reset, transfer) alias indexTransition: - if primitiveInstruction -> indexTransition is absent then reset - else Create_IndexTransitionTermsChange( primitiveInstruction -> indexTransition, reset ) - - alias observation: - if primitiveInstruction -> observation is absent then indexTransition - else Create_Observation ( primitiveInstruction -> observation, indexTransition) + if primitiveInstruction -> indexTransition is absent + then reset + else Create_IndexTransitionTermsChange( + primitiveInstruction -> indexTransition, + reset + ) + + alias observation: + if primitiveInstruction -> observation is absent + then indexTransition + else Create_Observation(primitiveInstruction -> observation, indexTransition) alias stockSplit: - if primitiveInstruction -> stockSplit is absent then observation - else Create_StockSplit( primitiveInstruction -> stockSplit, observation ) + if primitiveInstruction -> stockSplit is absent + then observation + else Create_StockSplit(primitiveInstruction -> stockSplit, observation) - condition NoSplit: <"The primitive instruction cannot contain a split, as this function is designed to return a single trade state."> - primitiveInstruction -> split is absent + condition NoSplit: <"The primitive instruction cannot contain a split, as this function is designed to return a single trade state."> + primitiveInstruction -> split is absent - set after: <"Initiate applying primitive instructions."> - stockSplit + set after: <"Initiate applying primitive instructions."> + stockSplit - set after -> state -> closedState: - if contractFormation -> state -> positionState = PositionStatusEnum -> Closed then - ClosedState { + set after -> state -> closedState: + if contractFormation -> state -> positionState = PositionStatusEnum -> Closed + then ClosedState { state: ClosedStateEnum -> Terminated, activityDate: empty, // TODO: set this property ... diff --git a/rosetta-source/src/main/rosetta/event-common-type.rosetta b/rosetta-source/src/main/rosetta/event-common-type.rosetta index 738b650748..cf0f989186 100644 --- a/rosetta-source/src/main/rosetta/event-common-type.rosetta +++ b/rosetta-source/src/main/rosetta/event-common-type.rosetta @@ -26,232 +26,241 @@ import cdm.event.position.* type Confirmation: <"A class to specify a trade confirmation."> - identifier Identifier (1..*) <"The identifier(s) associated with the trade and resulting confirmation."> - party Party (1..*) <"The parties associated with the trade."> - partyRole PartyRole (1..*) <"The role(s) that party(ies) may have in relation to the trade"> - lineage Lineage (0..1) <"The lineage attribute provides a linkage to previous lifecycle events and associated data."> - status ConfirmationStatusEnum (1..1) + identifier Identifier (1..*) <"The identifier(s) associated with the trade and resulting confirmation."> + party Party (1..*) <"The parties associated with the trade."> + partyRole PartyRole (1..*) <"The role(s) that party(ies) may have in relation to the trade"> + lineage Lineage (0..1) <"The lineage attribute provides a linkage to previous lifecycle events and associated data."> + status ConfirmationStatusEnum (1..1) - condition BothBuyerAndSellerPartyRolesMustExist: <"For an security confirmation, both buyer and seller party roles must exist."> - if lineage -> tradeReference -> tradableProduct -> product -> security exists - then partyRole -> role contains PartyRoleEnum -> Buyer or partyRole -> role contains PartyRoleEnum -> Seller + condition BothBuyerAndSellerPartyRolesMustExist: <"For an security confirmation, both buyer and seller party roles must exist."> + if lineage -> tradeReference -> tradableProduct -> product -> security exists + then partyRole -> role contains PartyRoleEnum -> Buyer + or partyRole -> role contains PartyRoleEnum -> Seller type Affirmation: <"A class to specify a trade affirmation."> - identifier Identifier (1..*) <"The identifier(s) associated with the trade and resulting confirmation."> - party Party (1..*) <"The parties associated with the trade."> - partyRole PartyRole (1..*) <"The role(s) that party(ies) may have in relation to the trade"> - lineage Lineage (0..1) <"The lineage attribute provides a linkage to previous lifecycle events and associated data."> - status AffirmationStatusEnum (1..1) + identifier Identifier (1..*) <"The identifier(s) associated with the trade and resulting confirmation."> + party Party (1..*) <"The parties associated with the trade."> + partyRole PartyRole (1..*) <"The role(s) that party(ies) may have in relation to the trade"> + lineage Lineage (0..1) <"The lineage attribute provides a linkage to previous lifecycle events and associated data."> + status AffirmationStatusEnum (1..1) - condition BothBuyerAndSellerPartyRolesMustExist: <"For an security affirmation, both buyer and seller party roles must exist."> - if lineage -> tradeReference -> tradableProduct -> product -> security exists - then partyRole -> role contains PartyRoleEnum -> Buyer or partyRole -> role contains PartyRoleEnum -> Seller + condition BothBuyerAndSellerPartyRolesMustExist: <"For an security affirmation, both buyer and seller party roles must exist."> + if lineage -> tradeReference -> tradableProduct -> product -> security exists + then partyRole -> role contains PartyRoleEnum -> Buyer + or partyRole -> role contains PartyRoleEnum -> Seller type ContractFormationInstruction: <"Specifies instructions to create a fully formed contract, with optional legal agreements."> - legalAgreement LegalAgreement (0..*) <"Optional legal agreements associated to the contract being formed, for instance a master agreement."> - condition ExecutedAgreements: <"The full formation of a contract can only be completed with executed legal agreements."> - if legalAgreement exists then legalAgreement-> agreementDate exists + legalAgreement LegalAgreement (0..*) <"Optional legal agreements associated to the contract being formed, for instance a master agreement."> + condition ExecutedAgreements: <"The full formation of a contract can only be completed with executed legal agreements."> + if legalAgreement exists + then legalAgreement -> agreementDate exists type Instruction: <"Instruction to a function that will be used to perform a business event"> - [rootType] - primitiveInstruction PrimitiveInstruction (0..1) <"Specifies the primitive instructions that will be used to call primitive event functions."> - before TradeState (0..1) <"Specifies the trade state that will be acted on by the primitive event functions."> - [metadata reference] + [rootType] + primitiveInstruction PrimitiveInstruction (0..1) <"Specifies the primitive instructions that will be used to call primitive event functions."> + before TradeState (0..1) <"Specifies the trade state that will be acted on by the primitive event functions."> + [metadata reference] - condition ExclusiveSplitPrimitive: <"A split primitive is exclusive and cannot be combined with other primitives. Instead, the primitive instructions to be applied to each branch of the split must be specified as breakdowns in the split instruction itself."> - if primitiveInstruction -> split exists then primitiveInstruction -> split only exists + condition ExclusiveSplitPrimitive: <"A split primitive is exclusive and cannot be combined with other primitives. Instead, the primitive instructions to be applied to each branch of the split must be specified as breakdowns in the split instruction itself."> + if primitiveInstruction -> split exists + then primitiveInstruction -> split only exists - condition NewTrade: <"There must be no before trade state if the primitive instructions contain an execution, and vice versa. An instruction only handles 1 trade at a time."> - ( if primitiveInstruction -> execution exists then before is absent ) and - ( if before is absent then primitiveInstruction -> execution exists ) + condition NewTrade: <"There must be no before trade state if the primitive instructions contain an execution, and vice versa. An instruction only handles 1 trade at a time."> + (if primitiveInstruction -> execution exists then before is absent) + and (if before is absent then primitiveInstruction -> execution exists) type PrimitiveInstruction: <"A Primitive Instruction describes the inputs required to pass into the corresponding PrimitiveEvent function."> - contractFormation ContractFormationInstruction (0..1) <"Specifies instructions describing an contract formation primitive event."> - execution ExecutionInstruction (0..1) <"Specifies instructions describing an execution primitive event."> - exercise ExerciseInstruction (0..1) <"Specifies instructions describing an exercise primitive event."> - partyChange PartyChangeInstruction (0..1) <"Specifies instructions describing a party change primitive event."> - quantityChange QuantityChangeInstruction (0..1) <"Specifies instructions describing an quantity change primitive event."> - reset ResetInstruction (0..1) <"Specifies instructions describing a reset event."> - split SplitInstruction (0..1) <"Specifies instructions to split a trade into multiple branches."> - termsChange TermsChangeInstruction (0..1) <"Specifies instructions describing a terms change primitive event."> - transfer TransferInstruction (0..1) <"Specifies instructions describing a transfer primitive event."> + contractFormation ContractFormationInstruction (0..1) <"Specifies instructions describing an contract formation primitive event."> + execution ExecutionInstruction (0..1) <"Specifies instructions describing an execution primitive event."> + exercise ExerciseInstruction (0..1) <"Specifies instructions describing an exercise primitive event."> + partyChange PartyChangeInstruction (0..1) <"Specifies instructions describing a party change primitive event."> + quantityChange QuantityChangeInstruction (0..1) <"Specifies instructions describing an quantity change primitive event."> + reset ResetInstruction (0..1) <"Specifies instructions describing a reset event."> + split SplitInstruction (0..1) <"Specifies instructions to split a trade into multiple branches."> + termsChange TermsChangeInstruction (0..1) <"Specifies instructions describing a terms change primitive event."> + transfer TransferInstruction (0..1) <"Specifies instructions describing a transfer primitive event."> indexTransition IndexTransitionInstruction (0..1) <"Specifies inputs needed to process a Index Transition business event."> stockSplit StockSplitInstruction (0..1) <"Specifies inputs needed to process a Stock Split business event."> - observation ObservationInstruction (0..1) <"Specifies inputs needed to process an observation."> + observation ObservationInstruction (0..1) <"Specifies inputs needed to process an observation."> type BusinessEvent extends EventInstruction: <"A business event represents a life cycle event of a trade. The combination of the state changes results in a qualifiable life cycle event. An example of a Business Event is a PartialTermination which is a defined by a quantity change primitive event."> - [metadata key] - [rootType] - - eventQualifier string (0..1) <"The CDM event qualifier, which corresponds to the outcome of the isEvent qualification logic which qualifies the lifecycle event as a function of its features (e.g. PartialTermination, ClearingSubmission, Novation, ...)."> + [metadata key] + [rootType] + + eventQualifier string (0..1) <"The CDM event qualifier, which corresponds to the outcome of the isEvent qualification logic which qualifies the lifecycle event as a function of its features (e.g. PartialTermination, ClearingSubmission, Novation, ...)."> after TradeState (0..*) <"Specifies the after trade state(s) created."> condition EventDate: eventDate exists type ObservationInstruction: <"Specifies inputs needed to process an observation."> - observationEvent ObservationEvent (1..1) <"Contains all information related to an observation."> + observationEvent ObservationEvent (1..1) <"Contains all information related to an observation."> type ExecutionInstruction: <"Specifies instructions for execution of a transaction, consisting of a product, price, quantity, parties, trade identifier, execution details, and settlement terms."> - product Product (1..1) <"Defines the financial product to be executed and contract formed."> - priceQuantity PriceQuantity (1..*) <"Defines the prices (e.g. spread, equity price, FX rate), quantities (e.g. currency amount, no. shares) and settlement terms (e.g. initial fee, broker fee, up-front cds payment or option premium settlement) associated with the constituents of the transacted product."> - counterparty Counterparty (2..2) <"Maps two defined parties to counterparty enums for the transacted product."> - ancillaryParty AncillaryParty (0..*) <"Maps any ancillary parties, e.g. parties involved in the transaction that are not one of the two principal parties."> - parties Party (2..*) <"Defines all parties to that execution, including agents and brokers."> - partyRoles PartyRole (0..*) <"Defines the role(s) that party(ies) may have in relation to the execution."> - executionDetails ExecutionDetails (1..1) <"Specifies the type and venue of execution, e.g. via voice, or electronically."> - tradeDate date (1..1) <"Denotes the trade/execution date."> - [metadata id] - tradeTime TimeZone (0..1) <"Denotes the trade time and timezone as agreed by the parties to the trade."> + product Product (1..1) <"Defines the financial product to be executed and contract formed."> + priceQuantity PriceQuantity (1..*) <"Defines the prices (e.g. spread, equity price, FX rate), quantities (e.g. currency amount, no. shares) and settlement terms (e.g. initial fee, broker fee, up-front cds payment or option premium settlement) associated with the constituents of the transacted product."> + counterparty Counterparty (2..2) <"Maps two defined parties to counterparty enums for the transacted product."> + ancillaryParty AncillaryParty (0..*) <"Maps any ancillary parties, e.g. parties involved in the transaction that are not one of the two principal parties."> + parties Party (2..*) <"Defines all parties to that execution, including agents and brokers."> + partyRoles PartyRole (0..*) <"Defines the role(s) that party(ies) may have in relation to the execution."> + executionDetails ExecutionDetails (1..1) <"Specifies the type and venue of execution, e.g. via voice, or electronically."> + tradeDate date (1..1) <"Denotes the trade/execution date."> + [metadata id] + tradeTime TimeZone (0..1) <"Denotes the trade time and timezone as agreed by the parties to the trade."> [metadata id] - tradeIdentifier TradeIdentifier (1..*) <"Denotes one or more identifiers associated with the transaction."> - collateral Collateral (0..1) <"Detail the collateral requirement anticipated with the transaction."> + tradeIdentifier TradeIdentifier (1..*) <"Denotes one or more identifiers associated with the transaction."> + collateral Collateral (0..1) <"Detail the collateral requirement anticipated with the transaction."> type ExerciseInstruction: <"Specifies the information required to communicate the choices made by the exercising party, in a financial product endowing the party with at least one option."> - exerciseQuantity PrimitiveInstruction (1..1) <"Contains instructions for exercising the option including a quantity change, and optionally a transfer."> - exerciseOption OptionPayout (0..1) <"Specifies the Option Payout being exercised on the trade."> - [metadata reference] - exerciseDate AdjustableOrAdjustedDate (0..1) <"Specifies the date on which an option contained within the financial product would be exercised. The date may be omitted if the contractual product allows for only a single date of exercise (European exercise)."> - exerciseTime BusinessCenterTime (0..1) <"Specifies the time at which an option contained within the financial product woulld be exercised. The time may be omitted if the contractual product allows for only a single time of exercise (European exercise). "> - replacementTradeIdentifier TradeIdentifier (0..*) <"Specifies the trade identifier to apply to the replacement trade for physical exercise."> - + exerciseQuantity PrimitiveInstruction (1..1) <"Contains instructions for exercising the option including a quantity change, and optionally a transfer."> + exerciseOption OptionPayout (0..1) <"Specifies the Option Payout being exercised on the trade."> + [metadata reference] + exerciseDate AdjustableOrAdjustedDate (0..1) <"Specifies the date on which an option contained within the financial product would be exercised. The date may be omitted if the contractual product allows for only a single date of exercise (European exercise)."> + exerciseTime BusinessCenterTime (0..1) <"Specifies the time at which an option contained within the financial product woulld be exercised. The time may be omitted if the contractual product allows for only a single time of exercise (European exercise). "> + replacementTradeIdentifier TradeIdentifier (0..*) <"Specifies the trade identifier to apply to the replacement trade for physical exercise."> + type ResetInstruction: <"Defines the information needed to create a Reset Business Event. "> - payout Payout (1..1) - [metadata reference] - rateRecordDate date (0..1) <"Specifies the 'Rate Record Day' for a Fallback rate. Fallback rate fixing processes typically set the fixing rate in arrears, i.e., the Fallback Rate corresponding to a Rate Record Date is set at the end of the interest accural period. When this applies, Reset->resetDate occurs at the end of the interest period, and the Reset->rateRecordDate occurs near the start of the interest period. The Reset->rateRecordDate and Reset->observations->observationIdentifier->observationDate will differ if a Fallback rate is unavailable on the Rate Record Date, and the latest previous available rate is used as the observation."> - resetDate date (1..1) <"Specifies the date on which the reset is occuring."> + payout Payout (1..1) + [metadata reference] + rateRecordDate date (0..1) <"Specifies the 'Rate Record Day' for a Fallback rate. Fallback rate fixing processes typically set the fixing rate in arrears, i.e., the Fallback Rate corresponding to a Rate Record Date is set at the end of the interest accural period. When this applies, Reset->resetDate occurs at the end of the interest period, and the Reset->rateRecordDate occurs near the start of the interest period. The Reset->rateRecordDate and Reset->observations->observationIdentifier->observationDate will differ if a Fallback rate is unavailable on the Rate Record Date, and the latest previous available rate is used as the observation."> + resetDate date (1..1) <"Specifies the date on which the reset is occuring."> type CalculateTransferInstruction: <"Defines the tradeState or payout on which to create a Transfer along with all necessary resets."> - tradeState TradeState (1..1) - payout Payout (1..1) - [metadata reference] - resets Reset (0..*) - payerReceiver PayerReceiver (0..1) - quantity Quantity (0..1) <"Specifies quantity amount returned if not the full amount from the TradeState, e.g. partial return"> - date date (0..1) + tradeState TradeState (1..1) + payout Payout (1..1) + [metadata reference] + resets Reset (0..*) + payerReceiver PayerReceiver (0..1) + quantity Quantity (0..1) <"Specifies quantity amount returned if not the full amount from the TradeState, e.g. partial return"> + date date (0..1) type TransferInstruction: <"Defines the payout on which to create a Transfer along with all necessary resets."> - transferState TransferState (0..*) <"Specifies the terms and state of a transfers."> + transferState TransferState (0..*) <"Specifies the terms and state of a transfers."> type QuantityChangeInstruction: <"Instructions required to create a Quantity Change Primitive Event, which can be either an increase, a decrease or a replacement. An increase adds a new trade lot to the original trade, whereas a decrease subtracts from an existing trade lot's quantity. A replacement updates the quantity of an existing trade lot to the new value."> - change PriceQuantity (1..*) <"Quantity by which the trade is being increased, decreased or replaced, and the price at which such quantity change is agreed. The quantity change should always be specified as a positive number, with the direction (increase/decrease/replacement) being specified by the direction enumeration. A fee can also be associated to the quantity change by specifying a Price component of type CashPrice, including the corresponding settlement date and direction."> - direction QuantityChangeDirectionEnum (1..1) <"Direction of the quantity change specified as either an increase, decrease or replacement."> - lotIdentifier Identifier (0..*) <"Identifier for the new lot (in case of increase) or for the existing lot to be changed(in case of decrease or replacement). This optional attribute is mandatory in case of a decrease or replacement if the initial trade state contains multiple trade lots."> + change PriceQuantity (1..*) <"Quantity by which the trade is being increased, decreased or replaced, and the price at which such quantity change is agreed. The quantity change should always be specified as a positive number, with the direction (increase/decrease/replacement) being specified by the direction enumeration. A fee can also be associated to the quantity change by specifying a Price component of type CashPrice, including the corresponding settlement date and direction."> + direction QuantityChangeDirectionEnum (1..1) <"Direction of the quantity change specified as either an increase, decrease or replacement."> + lotIdentifier Identifier (0..*) <"Identifier for the new lot (in case of increase) or for the existing lot to be changed(in case of decrease or replacement). This optional attribute is mandatory in case of a decrease or replacement if the initial trade state contains multiple trade lots."> type IndexTransitionInstruction: <"Defines the information needed to create a Index Transition Business Event."> - priceQuantity PriceQuantity (1..*) <"Specifies both new floating rate index and spread adjustment for each leg to be updated. The spread adjustment accounts for the difference between the old floating rate index relative to the new one. This spread amount is added to the existing spread to determine the new spread, which is applied from the specified effective date forward. In the case of the IBOR Fallback Rate Adjustments, the adjustment spread (also known as the Fallback Adjustment) accounts for two distinctions: i) the fact that the replacement Risk-Free Rate is an overnight rate while IBORs have term structures (e.g., 1, 3, 6-month LIBOR); and (ii) the historical spread differential between IBORs and their term equivalent Overnight Risk-Free Rate compounded rates."> - effectiveDate date (1..1) <"Specifies the effective date of the index transition event. This is first date on which the floating rate calculation will use the new floating rate index and adjusted spread in the floating rate calculation."> - cashTransfer Transfer (0..1) <"Specifies the cash transfer that can optionally be tied to an index transition event."> + priceQuantity PriceQuantity (1..*) <"Specifies both new floating rate index and spread adjustment for each leg to be updated. The spread adjustment accounts for the difference between the old floating rate index relative to the new one. This spread amount is added to the existing spread to determine the new spread, which is applied from the specified effective date forward. In the case of the IBOR Fallback Rate Adjustments, the adjustment spread (also known as the Fallback Adjustment) accounts for two distinctions: i) the fact that the replacement Risk-Free Rate is an overnight rate while IBORs have term structures (e.g., 1, 3, 6-month LIBOR); and (ii) the historical spread differential between IBORs and their term equivalent Overnight Risk-Free Rate compounded rates."> + effectiveDate date (1..1) <"Specifies the effective date of the index transition event. This is first date on which the floating rate calculation will use the new floating rate index and adjusted spread in the floating rate calculation."> + cashTransfer Transfer (0..1) <"Specifies the cash transfer that can optionally be tied to an index transition event."> - condition PriceQuantity: - priceQuantity -> price -> priceType contains PriceTypeEnum -> InterestRate - and priceQuantity -> observable -> rateOption exists - and priceQuantity -> quantity is absent + condition PriceQuantity: + priceQuantity -> price -> priceType contains PriceTypeEnum -> InterestRate + and priceQuantity -> observable -> rateOption exists + and priceQuantity -> quantity is absent type TermsChangeInstruction: <"Specifies instructions for terms change consisting of the new transaction terms, and the renegotiation fee."> - product Product (0..1) <"product to be changed"> - ancillaryParty AncillaryParty (0..*) <"ancillary party to be changed"> - adjustment NotionalAdjustmentEnum (0..1) + product Product (0..1) <"product to be changed"> + ancillaryParty AncillaryParty (0..*) <"ancillary party to be changed"> + adjustment NotionalAdjustmentEnum (0..1) - condition AtLeastOneOf: (product exists or ancillaryParty exists or adjustment exists) + condition AtLeastOneOf: + (product exists or ancillaryParty exists or adjustment exists) type SplitInstruction: <"Specifies instructions for a split, consisting of a breakdown of instructions to be applied to each branch of the split. This instruction can be used to duplicate a trade, as in a clearing scenario, or to split a trade into smaller quantities (in which case each breakdown instruction needs to include a quantity change), as in an allocation."> - // Should cardinality be (2..*)? - breakdown PrimitiveInstruction (1..*) <"Each split breakdown specifies the set of primitive instructions to be applied to a single branch of that split. N split breakdowns result in N output trades, which include the original trade. Instructions for how to handle the original trade (e.g. if it must be closed) must be specified in one of the breakdowns."> + // Should cardinality be (2..*)? + breakdown PrimitiveInstruction (1..*) <"Each split breakdown specifies the set of primitive instructions to be applied to a single branch of that split. N split breakdowns result in N output trades, which include the original trade. Instructions for how to handle the original trade (e.g. if it must be closed) must be specified in one of the breakdowns."> type PartyChangeInstruction: <"Specifies instruction to change the party on a trade. This primitive instruction is used in a number of scenarios including: clearing, allocation and novation. The instrution must include a trade identifier, because a change of party effectively results in a different trade."> - counterparty Counterparty (1..1) <"The new counterparty who is stepping into the trade. The stepping out counterparty is inferred based on the counterparty role that is being updated."> - ancillaryParty AncillaryParty (0..1) <"Specifies an ancillary party to be added onto the new transaction, e.g. the original executing party in an allocation."> - partyRole PartyRole (0..1) <"Specifies an additional party roles to be added on to the new transaction."> + counterparty Counterparty (1..1) <"The new counterparty who is stepping into the trade. The stepping out counterparty is inferred based on the counterparty role that is being updated."> + ancillaryParty AncillaryParty (0..1) <"Specifies an ancillary party to be added onto the new transaction, e.g. the original executing party in an allocation."> + partyRole PartyRole (0..1) <"Specifies an additional party roles to be added on to the new transaction."> tradeId TradeIdentifier (1..*) <"The identifier to be assigned to the new trade post change of party."> type TradeState: <"Defines the fundamental financial information that can be changed by a Primitive Event and by extension any business or life-cycle event. Each TradeState specifies where a Trade is in its life-cycle. TradeState is a root type and as such, can be created independently to any other CDM data type, but can also be used as part of the CDM Event Model."> - [metadata key] - [rootType] - trade Trade (1..1) <"Represents the Trade that has been effected by a business or life-cycle event."> - state State (0..1) <"Represents the State of the Trade through its life-cycle."> - resetHistory Reset (0..*) <"Represents the updated Trade attributes which can change as the result of a reset event. Only the changed values are captured, leaving the remaining data attributes empty. See Create_Reset function for further details on how TradeState is used in the Reset event. The TradeState data type is used to maintain backwards compatibility with the current Reset mechanism."> - transferHistory TransferState (0..*) <"Represents the updated Trade attributes which can change as the result of a transfer event."> - observationHistory ObservationEvent (0..*) <"Represents the observed events related to a particular product or process, such as credit events or corporate actions."> + [metadata key] + [rootType] + trade Trade (1..1) <"Represents the Trade that has been effected by a business or life-cycle event."> + state State (0..1) <"Represents the State of the Trade through its life-cycle."> + resetHistory Reset (0..*) <"Represents the updated Trade attributes which can change as the result of a reset event. Only the changed values are captured, leaving the remaining data attributes empty. See Create_Reset function for further details on how TradeState is used in the Reset event. The TradeState data type is used to maintain backwards compatibility with the current Reset mechanism."> + transferHistory TransferState (0..*) <"Represents the updated Trade attributes which can change as the result of a transfer event."> + observationHistory ObservationEvent (0..*) <"Represents the observed events related to a particular product or process, such as credit events or corporate actions."> valuationHistory Valuation (0..*) type ObservationEvent: <"Specifies the necessary information to create any observation event."> - creditEvent CreditEvent (0..1) <"Specifies the necessary information to create a credit event."> - corporateAction CorporateAction (0..1) <"Specifies the necessary information to create a corporate action."> + creditEvent CreditEvent (0..1) <"Specifies the necessary information to create a credit event."> + corporateAction CorporateAction (0..1) <"Specifies the necessary information to create a corporate action."> - condition: one-of + condition: + one-of type Reset: <"Defines the reset value or fixing value produced in cashflow calculations, during the life-cycle of a financial instrument. The reset process defined in Create_Reset function joins product definition details with observations to compute the reset value."> - [metadata key] - resetValue Price (1..1) <"Specifies the reset or fixing value. The fixing value could be a cash price, interest rate, or other value."> - resetDate date (1..1) <"Specifies the date on which the reset occurred."> - rateRecordDate date (0..1) <"Specifies the 'Rate Record Day' for a Fallback rate. Fallback rate fixing processes typically set the fixing rate in arrears, i.e., the Fallback Rate corresponding to a Rate Record Date is set at the end of the interest accural period. When this applies, Reset->resetDate occurs at the end of the interest period, and the Reset->rateRecordDate occurs near the start of the interest period. The Reset->rateRecordDate and Reset->observations->observationIdentifier->observationDate will differ if a Fallback rate is unavailable on the Rate Record Date, and the latest previous available rate is used as the observation."> - observations Observation (1..*) <"Represents an audit of the observations used to produce the reset value. If multiple observations were necessary to produce the reset value, the aggregation method should be defined on the payout."> - [metadata reference] - averagingMethodology AveragingCalculation (0..1) <"Identifies the aggregation method to use in the case where multiple observations are used to compute the reset value and the method is not defined in a payout."> + [metadata key] + resetValue Price (1..1) <"Specifies the reset or fixing value. The fixing value could be a cash price, interest rate, or other value."> + resetDate date (1..1) <"Specifies the date on which the reset occurred."> + rateRecordDate date (0..1) <"Specifies the 'Rate Record Day' for a Fallback rate. Fallback rate fixing processes typically set the fixing rate in arrears, i.e., the Fallback Rate corresponding to a Rate Record Date is set at the end of the interest accural period. When this applies, Reset->resetDate occurs at the end of the interest period, and the Reset->rateRecordDate occurs near the start of the interest period. The Reset->rateRecordDate and Reset->observations->observationIdentifier->observationDate will differ if a Fallback rate is unavailable on the Rate Record Date, and the latest previous available rate is used as the observation."> + observations Observation (1..*) <"Represents an audit of the observations used to produce the reset value. If multiple observations were necessary to produce the reset value, the aggregation method should be defined on the payout."> + [metadata reference] + averagingMethodology AveragingCalculation (0..1) <"Identifies the aggregation method to use in the case where multiple observations are used to compute the reset value and the method is not defined in a payout."> - condition AveragingMethodologyExists: <"Ensures an averaging method is defined when more than one observation is used to compute the reset."> - if observations count > 1 then averagingMethodology exists + condition AveragingMethodologyExists: <"Ensures an averaging method is defined when more than one observation is used to compute the reset."> + if observations count > 1 then averagingMethodology exists type State: <"Defines the state of a trade at a point in the Trade's life cycle. Trades have many state dimensions, all of which are represented here. For example, states useful for position keeping are represented alongside those needed for regulatory reporting."> - closedState ClosedState (0..1) <"Represents the qualification of what led to the trade's closure alongside the dates on which this closure took effect."> - positionState PositionStatusEnum (0..1) <"Identifies the state of the position, to distinguish if just executed, formed, already settled, closed, etc."> + closedState ClosedState (0..1) <"Represents the qualification of what led to the trade's closure alongside the dates on which this closure took effect."> + positionState PositionStatusEnum (0..1) <"Identifies the state of the position, to distinguish if just executed, formed, already settled, closed, etc."> - condition ClosedStateExists: <"When the position state is identified as closed, the closed state must also be specified."> - if positionState = PositionStatusEnum -> Closed then - closedState exists + condition ClosedStateExists: <"When the position state is identified as closed, the closed state must also be specified."> + if positionState = PositionStatusEnum -> Closed + then closedState exists type TransferState: <"Defines the fundamental financial information associated with a Transfer event. Each TransferState specifies where a Transfer is in its life-cycle. TransferState is a root type and as such, can be created independently to any other CDM data type, but can also be used as part of the CDM Event Model."> - [metadata key] - [rootType] - transfer Transfer (1..1) <"Represents the Transfer that has been effected by a business or life-cycle event."> - transferStatus TransferStatusEnum (0..1) <"Represents the State of the Transfer through its life-cycle."> + [metadata key] + [rootType] + transfer Transfer (1..1) <"Represents the Transfer that has been effected by a business or life-cycle event."> + transferStatus TransferStatusEnum (0..1) <"Represents the State of the Transfer through its life-cycle."> type Transfer extends TransferBase: <"Defines the movement of cash, securities or commodities between two parties on a date."> - settlementOrigin SettlementOrigin (0..1) <"Represents the origin to the transfer as a reference for lineage purposes, whether it originated from trade level settlement terms or from payment terms on an economic payout."> - resetOrigin Reset (0..1) <"Represents the reset and observation values that were used to determine the transfer amount."> - transferExpression TransferExpression (1..1) <"Specifies a transfer expression (cash price, performance amount, scheduled payment amount, etc.) to define the nature of the transfer amount and its source."> + settlementOrigin SettlementOrigin (0..1) <"Represents the origin to the transfer as a reference for lineage purposes, whether it originated from trade level settlement terms or from payment terms on an economic payout."> + resetOrigin Reset (0..1) <"Represents the reset and observation values that were used to determine the transfer amount."> + transferExpression TransferExpression (1..1) <"Specifies a transfer expression (cash price, performance amount, scheduled payment amount, etc.) to define the nature of the transfer amount and its source."> type TransferExpression: <"Specifies a transfer expression (cash price, performance amount, scheduled payment amount, etc.) to define the nature of the transfer amount and its source."> - priceTransfer FeeTypeEnum (0..1) <"Specifies a transfer amount exchanged as a price or fee for entering into a Business Event, e.g. Premium, Termination fee, Novation fee."> - scheduledTransfer ScheduledTransfer (0..1) <"Specifies a transfer created from a scheduled or contingent event on a contract, e.g. Exercise, Performance, Credit Event"> + priceTransfer FeeTypeEnum (0..1) <"Specifies a transfer amount exchanged as a price or fee for entering into a Business Event, e.g. Premium, Termination fee, Novation fee."> + scheduledTransfer ScheduledTransfer (0..1) <"Specifies a transfer created from a scheduled or contingent event on a contract, e.g. Exercise, Performance, Credit Event"> - condition: one-of + condition: + one-of type ScheduledTransfer: - transferType ScheduledTransferEnum (1..1) <"Specifies a transfer created from a scheduled or contingent event on a contract, e.g. Exercise, Performance, Credit Event"> - corporateActionTransferType CorporateActionTypeEnum (0..1) + transferType ScheduledTransferEnum (1..1) <"Specifies a transfer created from a scheduled or contingent event on a contract, e.g. Exercise, Performance, Credit Event"> + corporateActionTransferType CorporateActionTypeEnum (0..1) - condition CorporateActionTransferTypeExists: <"When transfer type is Performance or Transfer then the type of event must be specified."> - if transferType = ScheduledTransferEnum -> CorporateAction then corporateActionTransferType exists + condition CorporateActionTransferTypeExists: <"When transfer type is Performance or Transfer then the type of event must be specified."> + if transferType = ScheduledTransferEnum -> CorporateAction + then corporateActionTransferType exists type SettlementOrigin: <"Defines the origin to the transfer as a reference for lineage purposes, whether it originated from trade level settlement terms or from payment terms on an economic payout."> - commodityPayout CommodityPayout (0..1) <"Represents a reference to an Commodity Payout."> - [metadata reference] - creditDefaultPayout CreditDefaultPayout (0..1) <"Represents a reference to a Credit Default Payout."> - [metadata reference] - forwardPayout ForwardPayout (0..1) <"Represents a reference to a Forward Payout."> - [metadata reference] - interestRatePayout InterestRatePayout (0..1) <"Represents a reference to an Interest Rate Payout."> - [metadata reference] - optionPayout OptionPayout (0..1) <"Represents a reference to an Option Payout."> - [metadata reference] - assetPayout AssetPayout (0..1) <"Represents a reference to an Asset Payout."> - [metadata reference] - settlementTerms SettlementTerms (0..1) <"Represents a reference to settlement terms, which may have been specified at execution."> - [metadata reference] - performancePayout PerformancePayout (0..1) <"Represents a reference to a Performance Payout."> - [metadata reference] - fixedPricePayout FixedPricePayout (0..1) <"Represents a reference to a Fixed Price Payout"> - [metadata reference] - - condition: one-of + commodityPayout CommodityPayout (0..1) <"Represents a reference to an Commodity Payout."> + [metadata reference] + creditDefaultPayout CreditDefaultPayout (0..1) <"Represents a reference to a Credit Default Payout."> + [metadata reference] + forwardPayout ForwardPayout (0..1) <"Represents a reference to a Forward Payout."> + [metadata reference] + interestRatePayout InterestRatePayout (0..1) <"Represents a reference to an Interest Rate Payout."> + [metadata reference] + optionPayout OptionPayout (0..1) <"Represents a reference to an Option Payout."> + [metadata reference] + assetPayout AssetPayout (0..1) <"Represents a reference to an Asset Payout."> + [metadata reference] + settlementTerms SettlementTerms (0..1) <"Represents a reference to settlement terms, which may have been specified at execution."> + [metadata reference] + performancePayout PerformancePayout (0..1) <"Represents a reference to a Performance Payout."> + [metadata reference] + fixedPricePayout FixedPricePayout (0..1) <"Represents a reference to a Fixed Price Payout"> + [metadata reference] + + condition: + one-of type TradeIdentifier extends Identifier: <"Defines a trade identifier as a special case of the generic identifier type, that also includes the trade identifier class."> - identifierType TradeIdentifierTypeEnum (0..1) <"The enumerated classification of the identifier. Optional as a trade identifier may be party-specific, in which case it may not correspond to any established classification."> + identifierType TradeIdentifierTypeEnum (0..1) <"The enumerated classification of the identifier. Optional as a trade identifier may be party-specific, in which case it may not correspond to any established classification."> type Valuation: <"Defines the value of an investment, asset, or security"> amount Money (1..1) <"Current value of the outstanding contract"> @@ -264,50 +273,50 @@ type Valuation: <"Defines the value of an investment, asset, or security"> required choice method, source type Trade: <"Defines the output of a financial transaction between parties - a Business Event. A Trade impacts the financial position (i.e. the balance sheet) of involved parties."> - [metadata key] + [metadata key] [docReference ICMA GMRA namingConvention "Transaction" provision "As defined in the GMRA, paragraph 1(a) and 1(b) Referring to the agreement between Buyer and Seller in which a Seller agrees to sell Securities against the payment of the purchase price by Buyer to Seller, with a simultaneous agreement by Buyer to sell to Seller Equivalent Securities at a future date. May be a Repurchase Transaction or Buy/Sell Back Transaction."] - tradeIdentifier TradeIdentifier (1..*) <"Represents the identifier(s) that uniquely identify a trade for an identity issuer. A trade can include multiple identifiers, for example a trade that is reportable to both the CFTC and ESMA, and then has an associated USI (Unique Swap Identifier) UTI (Unique Trade Identifier)."> - tradeDate date (1..1) <"Specifies the date which the trade was agreed."> + tradeIdentifier TradeIdentifier (1..*) <"Represents the identifier(s) that uniquely identify a trade for an identity issuer. A trade can include multiple identifiers, for example a trade that is reportable to both the CFTC and ESMA, and then has an associated USI (Unique Swap Identifier) UTI (Unique Trade Identifier)."> + tradeDate date (1..1) <"Specifies the date which the trade was agreed."> [metadata id] - tradeTime TimeZone (0..1) <"Denotes the trade time and timezone as agreed by the parties to the trade."> + tradeTime TimeZone (0..1) <"Denotes the trade time and timezone as agreed by the parties to the trade."> [metadata id] - tradableProduct TradableProduct (1..1) <"Represents the financial instrument The corresponding FpML construct is the product abstract element and the associated substitution group."> - party Party (0..*) <"Represents the parties to the trade. The cardinality is optional to address the case where the trade is defined within a BusinessEvent data type, in which case the party is specified in BusinessEvent."> - partyRole PartyRole (0..*) <"Represents the role each specified party takes in the trade. further to the principal roles, payer and receiver."> - executionDetails ExecutionDetails (0..1) <"Represents information specific to trades that arose from executions."> - contractDetails ContractDetails (0..1) <"Represents information specific to trades involving contractual products."> + tradableProduct TradableProduct (1..1) <"Represents the financial instrument The corresponding FpML construct is the product abstract element and the associated substitution group."> + party Party (0..*) <"Represents the parties to the trade. The cardinality is optional to address the case where the trade is defined within a BusinessEvent data type, in which case the party is specified in BusinessEvent."> + partyRole PartyRole (0..*) <"Represents the role each specified party takes in the trade. further to the principal roles, payer and receiver."> + executionDetails ExecutionDetails (0..1) <"Represents information specific to trades that arose from executions."> + contractDetails ContractDetails (0..1) <"Represents information specific to trades involving contractual products."> clearedDate date (0..1) <"Specifies the date on which a trade is cleared (novated) through a central counterparty clearing service."> [deprecated] collateral Collateral (0..1) <"Represents the collateral obligations of a party."> - account Account (0..*) <"Represents a party's granular account information, which may be used in subsequent internal processing."> - [deprecated] - - // condition SecurityPartyRole: <"When the executed product is a security, both ExecutingEntity and Counterparty party roles must exist."> - // if tradableProduct -> product -> security exists - // then partyRole -> role contains PartyRoleEnum -> ExecutingEntity and partyRole -> role contains PartyRoleEnum -> Counterparty - - condition SecurityPartyRoleBuyerSeller: <"When the executed product is a security, both buyer and seller party roles must exist."> - if tradableProduct -> product -> security exists - then partyRole -> role contains PartyRoleEnum -> Buyer and partyRole -> role contains PartyRoleEnum -> Seller - - condition SecurityPrice: <"When the executed product is a security, the price must be specified."> - if tradableProduct -> product -> security exists - then tradableProduct -> tradeLot -> priceQuantity -> price exists - - condition SettlementTerms: <"When the executed product is a security, the settlement terms must be specified."> - if tradableProduct -> product -> security exists - then tradableProduct -> tradeLot only-element -> priceQuantity -> settlementTerms exists - - condition PackageTrade: <"When the trade is part of a package as specified in the execution details, the trade identifier must be found as one of the package components."> - if executionDetails -> packageReference exists - then executionDetails -> packageReference -> componentId -> assignedIdentifier contains tradeIdentifier -> assignedIdentifier - - condition DeliverableObligationsPhysicalSettlementMatrix: <"The below set of credit deliverable obligation provisions are specified as optional boolean in FpML and the CDM because they would be specified as part of the Physical Settlement Matrix when such document governs the contract terms. As a result, this data rule specifies that those provisions cannot be omitted if the Credit Derivatives Physical Settlement Matrix doesn't governs the terms of the contract."> - if (contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix - or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType is absent) - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations exists - then (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notSubordinated exists + account Account (0..*) <"Represents a party's granular account information, which may be used in subsequent internal processing."> + [deprecated] + + // condition SecurityPartyRole: <"When the executed product is a security, both ExecutingEntity and Counterparty party roles must exist."> + // if tradableProduct -> product -> security exists + // then partyRole -> role contains PartyRoleEnum -> ExecutingEntity and partyRole -> role contains PartyRoleEnum -> Counterparty + condition SecurityPartyRoleBuyerSeller: <"When the executed product is a security, both buyer and seller party roles must exist."> + if tradableProduct -> product -> security exists + then partyRole -> role contains PartyRoleEnum -> Buyer + and partyRole -> role contains PartyRoleEnum -> Seller + + condition SecurityPrice: <"When the executed product is a security, the price must be specified."> + if tradableProduct -> product -> security exists + then tradableProduct -> tradeLot -> priceQuantity -> price exists + + condition SettlementTerms: <"When the executed product is a security, the settlement terms must be specified."> + if tradableProduct -> product -> security exists + then tradableProduct -> tradeLot only-element -> priceQuantity -> settlementTerms exists + + condition PackageTrade: <"When the trade is part of a package as specified in the execution details, the trade identifier must be found as one of the package components."> + if executionDetails -> packageReference exists + then executionDetails -> packageReference -> componentId -> assignedIdentifier contains tradeIdentifier -> assignedIdentifier + + condition DeliverableObligationsPhysicalSettlementMatrix: <"The below set of credit deliverable obligation provisions are specified as optional boolean in FpML and the CDM because they would be specified as part of the Physical Settlement Matrix when such document governs the contract terms. As a result, this data rule specifies that those provisions cannot be omitted if the Credit Derivatives Physical Settlement Matrix doesn't governs the terms of the contract."> + if (contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix + or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType is absent) + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations exists + then (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notSubordinated exists and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> specifiedCurrency exists and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notSovereignLender exists and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notDomesticCurrency exists @@ -318,260 +327,249 @@ type Trade: <"Defines the output of a financial transaction between parties - a and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> consentRequiredLoan exists and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> transferable exists and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> maximumMaturity exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notBearer exists - ) - and (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> fullFaithAndCreditObLiability exists - or tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> generalFundObligationLiability exists - or tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> revenueObligationLiability exists - ) - - condition ObligationsPhysicalSettlementMatrix: <"The below set of obligation of the reference entity are specified as optional boolean in FpML and the CDM because they would be specified as part of the Physical Settlement Matrix when such document governs the contract terms. As a result, this data rule specifies that those provisions cannot be omitted if the Physical Settlement Matrix governs the terms of the contract. This data rule also applies to cash settled contracts because those could still end-up being physically settled, in case the case where an auction could not take place because of, say, liquidity considerations."> - if (contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix - or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType is absent) - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations exists - then ( tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> notSubordinated exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notBearer exists) + and (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> fullFaithAndCreditObLiability exists + or tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> generalFundObligationLiability exists + or tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> revenueObligationLiability exists) + + condition ObligationsPhysicalSettlementMatrix: <"The below set of obligation of the reference entity are specified as optional boolean in FpML and the CDM because they would be specified as part of the Physical Settlement Matrix when such document governs the contract terms. As a result, this data rule specifies that those provisions cannot be omitted if the Physical Settlement Matrix governs the terms of the contract. This data rule also applies to cash settled contracts because those could still end-up being physically settled, in case the case where an auction could not take place because of, say, liquidity considerations."> + if (contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix + or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType is absent) + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations exists + then (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> notSubordinated exists and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> notSovereignLender exists and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> notDomesticLaw exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> notDomesticIssuance exists - ) - and ( tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> fullFaithAndCreditObLiability exists - or tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> generalFundObligationLiability exists - or tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> revenueObligationLiability exists - ) - - condition CreditEventsPhysicalSettlementMatrix: <"The below set of credit events are specified as optional boolean in FpML and the CDM because they would be specified as part of the Physical Settlement Matrix when such document governs the contract terms. As a result, this data rule specifies that those provisions can only be omitted if the Physical Settlement Matrix governs the terms of the contract. This data rule also applies to cash settled contracts because those could still end-up being physically settled, in the case where an auction could not take place because of, say, liquidity considerations."> - if (contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix - or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType is absent) - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents exists - then (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> bankruptcy exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> notDomesticIssuance exists) + and (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> fullFaithAndCreditObLiability exists + or tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> generalFundObligationLiability exists + or tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> revenueObligationLiability exists) + + condition CreditEventsPhysicalSettlementMatrix: <"The below set of credit events are specified as optional boolean in FpML and the CDM because they would be specified as part of the Physical Settlement Matrix when such document governs the contract terms. As a result, this data rule specifies that those provisions can only be omitted if the Physical Settlement Matrix governs the terms of the contract. This data rule also applies to cash settled contracts because those could still end-up being physically settled, in the case where an auction could not take place because of, say, liquidity considerations."> + if (contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix + or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType is absent) + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents exists + then (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> bankruptcy exists and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> obligationDefault exists and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> obligationAcceleration exists and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> repudiationMoratorium exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> governmentalIntervention exists - ) - - condition RestructuringPhysicalSettlementMatrix: <"The below multiple holder obligation restructuring provisions is specified as optional boolean in FpML and the CDM because they would be specified as part of the Physical Settlement Matrix when such document governs the contract terms. As a result, this data rule specifies that this provision can only be omitted if the Physical Settlement Matrix governs the terms of the contract. This data rule also applies to cash settled contracts because those could still end-up being physically settled, in the case where an auction could not take place because of, say, liquidity considerations."> - if (contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix - or contractDetails -> documentation -> legalAgreementIdentification-> agreementName -> contractualMatrix -> matrixType is absent) - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> restructuring exists - then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> restructuring -> multipleHolderObligation exists - - condition AdditionalFixedPaymentsMortgages: <"The below set of additional fixed payment provisions are specified as optional boolean in FpML and the CDM because they only apply to mortgage credit default swaps. As a result, this data rule specifies that those provisions are required if the contract corresponds to a mortgage credit default swap. The provision related to the existence of the Contractual Term Supplement is meant to address the case where the underlier is a mortgage index."> - if ( (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> securityType any = SecurityTypeEnum -> Debt - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> debtType -> debtClass any = DebtClassEnum -> AssetBacked) - or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum -> CDSonMBS) - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents exists - then (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents -> additionalFixedPayments -> interestShortfallReimbursement exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents -> additionalFixedPayments -> principalShortfallReimbursement exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents -> additionalFixedPayments -> writedownReimbursement exists - ) - - condition FloatingAmountEventsMortgages: <"The below set of floating amount events provisions are specified as optional boolean in FpML and the CDM because they only apply to mortgage credit default swaps. As a result, this data rule specifies that those provisions are required if the contract corresponds to a mortgage credit default swap. The provision related to the existence of the Contractual Term Supplement is meant to address the case where the underlier is a mortgage index."> - if ((tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> securityType any = SecurityTypeEnum -> Debt - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> debtType -> debtClass any = DebtClassEnum -> AssetBacked) - or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum -> CDSonMBS) - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents exists - then (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents -> failureToPayPrincipal exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents -> writedown exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents -> impliedWritedown exists - ) - - condition CreditEventsMortgages: <"The below set of credit events provisions are specified as optional boolean in FpML and the CDM because they only apply to mortgage credit default swaps. As a result, this data rule specifies that those provisions are required if the contract corresponds to a mortgage credit default swap. The provision related to the existence of the Contractual Term Supplement is meant to address the case where the underlier is a mortgage index."> - if ((tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> securityType any = SecurityTypeEnum -> Debt - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> debtType -> debtClass any = DebtClassEnum -> AssetBacked) - or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum -> CDSonMBS) - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents exists - then (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> failureToPayPrincipal exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> failureToPayInterest exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> distressedRatingsDowngrade exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> maturityExtension exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> writedown exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> impliedWritedown exists - ) - - condition HedgingParty: <"FpML specifies that there cannot be more than 2 hedging parties."> - if partyRole -> role contains PartyRoleEnum -> HedgingParty - then FilterPartyRole( partyRole, PartyRoleEnum -> HedgingParty ) count <= 2 - - condition DeterminingParty: <"FpML specifies that there cannot be more than 2 determining parties."> - if partyRole -> role contains PartyRoleEnum -> DeterminingParty - then FilterPartyRole( partyRole, PartyRoleEnum -> DeterminingParty ) count <= 2 - - condition BarrierDerterminationAgent: <"FpML specifies that there cannot be more than 1 barrier determination agent."> - if partyRole -> role contains PartyRoleEnum -> BarrierDeterminationAgent - then FilterPartyRole( partyRole, PartyRoleEnum -> BarrierDeterminationAgent ) count <= 1 - - condition ClearedDate: <"If the cleared date exists, it needs to be on or after the trade date."> - if clearedDate exists - then clearedDate >= tradeDate - - condition FpML_cd_1: <"FpML validation rule cd-1 - If referenceInformation exists, tradeDate must be before effectiveDate/unadjustedDate."> - if tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists - then tradeDate < tradableProduct -> product -> contractualProduct -> economicTerms -> effectiveDate -> adjustableDate -> unadjustedDate - or tradeDate < tradableProduct -> product -> contractualProduct -> economicTerms -> effectiveDate -> adjustableDate -> adjustedDate - - condition FpML_cd_7: <"FpML validation rule cd-7 - If condition LongForm is true, then effectiveDate/dateAdjustments exists."> - if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent - and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists - then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> interestRatePayout -> calculationPeriodDates -> effectiveDate -> adjustableDate -> dateAdjustments exists - or tradeDate < tradableProduct -> product -> contractualProduct -> economicTerms -> effectiveDate -> adjustableDate -> adjustedDate - - condition FpML_cd_8: <"FpML validation rule cd-8 - If condition LongForm is true, and if scheduledTerminationDate exists then scheduledTerminationDate/dateAdjustments exists."> - if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent - and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists - then tradableProduct -> product -> contractualProduct -> economicTerms -> terminationDate -> adjustableDate -> dateAdjustments exists - - condition FpML_cd_11: <"FpML validation rule cd-11 - If condition LongForm is true, and if condition ISDA2003 is true, then allGuarantees must exist."> - if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent - and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists - and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum -> ISDA2003CreditDerivatives - then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> allGuarantees exists - - condition FpML_cd_19: <"FpML validation rule cd-19 - If the condition ISDA1999Credit is true, then the following elements must not exist: protectionTerms/creditEvents/creditEventNotice/businessCenter, protectionTerms/creditEvents/restructuring/multipleHolderObligation, protectionTerms/creditEvents/restructuring/multipleCreditEventNotices, generalTerms/referenceInformation/allGuarantees, generalTerms/indexReferenceInformation, generalTerms/substitution, generalTerms/modifiedEquityDelivery."> - if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum -> ISDA1999CreditDerivatives - then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> creditEventNotice -> businessCenter is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> restructuring -> multipleHolderObligation is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> restructuring -> multipleCreditEventNotices is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> allGuarantees is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> indexReferenceInformation is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> substitution is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> modifiedEquityDelivery is absent - - condition FpML_cd_20: <"FpML validation rule cd-20 - If the condition ISDA2003 is true, then protectionTerms/obligations/notContingent must not exist."> - if contractDetails -> documentation -> legalAgreementIdentification-> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum -> ISDA2003CreditDerivatives - then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> notContingent is absent - - condition FpML_cd_23: <"FpML validation rule cd-23 - If the condition LongForm is true, then cashSettlementTerms or physicalSettlementTerms must exist."> - if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent - and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists - then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> cashSettlementTerms exists - or tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms exists - - condition FpML_cd_24: <"FpML validation rule cd-24 - If the condition LongForm is true, then the following elements must exist: protectionTerms/creditEvents/creditEventNotice, protectionTerms/obligations, generalTerms/referenceInformation/referencePrice."> - if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent - and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists - then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> creditEventNotice exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout ->generalTerms -> referenceInformation -> referencePrice exists - - condition FpML_cd_25: <"FpML validation rule cd-25 - If the condition LongForm is true, and if physicalSettlementTerms exists, then physicalSettlementTerms must contain settlementCurrency, physicalSettlementPeriod, escrow and deliverableObligations/accruedInterest."> - if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent - and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms exists - then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> settlementCurrency exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> physicalSettlementPeriod exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> escrow exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> accruedInterest exists - - condition FpML_cd_32: <"FpML validation rule cd-32 - If condition LongForm is true, and if fixedAmountCalculation/calculationAmount exists, then fixedAmountCalculation/dayCountFraction must exist."> - if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent - and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists - and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> interestRatePayout -> priceQuantity exists - and tradableProduct -> tradeLot -> priceQuantity -> quantity -> value exists - then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> interestRatePayout -> dayCountFraction exists - - condition FpML_ird_8: <"FpML validation rule ird-8 - If the same party is specified as the payer and receiver, then different accounts must be specified."> - if tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> interestRatePayout exists then - FpmlIrd8( tradableProduct, account ) = True + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> governmentalIntervention exists) + + condition RestructuringPhysicalSettlementMatrix: <"The below multiple holder obligation restructuring provisions is specified as optional boolean in FpML and the CDM because they would be specified as part of the Physical Settlement Matrix when such document governs the contract terms. As a result, this data rule specifies that this provision can only be omitted if the Physical Settlement Matrix governs the terms of the contract. This data rule also applies to cash settled contracts because those could still end-up being physically settled, in the case where an auction could not take place because of, say, liquidity considerations."> + if (contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix + or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType is absent) + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> restructuring exists + then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> restructuring -> multipleHolderObligation exists + + condition AdditionalFixedPaymentsMortgages: <"The below set of additional fixed payment provisions are specified as optional boolean in FpML and the CDM because they only apply to mortgage credit default swaps. As a result, this data rule specifies that those provisions are required if the contract corresponds to a mortgage credit default swap. The provision related to the existence of the Contractual Term Supplement is meant to address the case where the underlier is a mortgage index."> + if ((tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> securityType any = SecurityTypeEnum -> Debt + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> debtType -> debtClass any = DebtClassEnum -> AssetBacked) + or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum -> CDSonMBS) + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents exists + then (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents -> additionalFixedPayments -> interestShortfallReimbursement exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents -> additionalFixedPayments -> principalShortfallReimbursement exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents -> additionalFixedPayments -> writedownReimbursement exists) + + condition FloatingAmountEventsMortgages: <"The below set of floating amount events provisions are specified as optional boolean in FpML and the CDM because they only apply to mortgage credit default swaps. As a result, this data rule specifies that those provisions are required if the contract corresponds to a mortgage credit default swap. The provision related to the existence of the Contractual Term Supplement is meant to address the case where the underlier is a mortgage index."> + if ((tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> securityType any = SecurityTypeEnum -> Debt + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> debtType -> debtClass any = DebtClassEnum -> AssetBacked) + or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum -> CDSonMBS) + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents exists + then (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents -> failureToPayPrincipal exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents -> writedown exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> floatingAmountEvents -> impliedWritedown exists) + + condition CreditEventsMortgages: <"The below set of credit events provisions are specified as optional boolean in FpML and the CDM because they only apply to mortgage credit default swaps. As a result, this data rule specifies that those provisions are required if the contract corresponds to a mortgage credit default swap. The provision related to the existence of the Contractual Term Supplement is meant to address the case where the underlier is a mortgage index."> + if ((tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> securityType any = SecurityTypeEnum -> Debt + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> debtType -> debtClass any = DebtClassEnum -> AssetBacked) + or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum -> CDSonMBS) + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents exists + then (tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> failureToPayPrincipal exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> failureToPayInterest exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> distressedRatingsDowngrade exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> maturityExtension exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> writedown exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> impliedWritedown exists) + + condition HedgingParty: <"FpML specifies that there cannot be more than 2 hedging parties."> + if partyRole -> role contains PartyRoleEnum -> HedgingParty + then FilterPartyRole(partyRole, PartyRoleEnum -> HedgingParty) count <= 2 + + condition DeterminingParty: <"FpML specifies that there cannot be more than 2 determining parties."> + if partyRole -> role contains PartyRoleEnum -> DeterminingParty + then FilterPartyRole(partyRole, PartyRoleEnum -> DeterminingParty) count <= 2 + + condition BarrierDerterminationAgent: <"FpML specifies that there cannot be more than 1 barrier determination agent."> + if partyRole -> role contains PartyRoleEnum -> BarrierDeterminationAgent + then FilterPartyRole(partyRole, PartyRoleEnum -> BarrierDeterminationAgent) count <= 1 + + condition ClearedDate: <"If the cleared date exists, it needs to be on or after the trade date."> + if clearedDate exists then clearedDate >= tradeDate + + condition FpML_cd_1: <"FpML validation rule cd-1 - If referenceInformation exists, tradeDate must be before effectiveDate/unadjustedDate."> + if tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists + then tradeDate < tradableProduct -> product -> contractualProduct -> economicTerms -> effectiveDate -> adjustableDate -> unadjustedDate or tradeDate < tradableProduct -> product -> contractualProduct -> economicTerms -> effectiveDate -> adjustableDate -> adjustedDate + + condition FpML_cd_7: <"FpML validation rule cd-7 - If condition LongForm is true, then effectiveDate/dateAdjustments exists."> + if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent + and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists + then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> interestRatePayout -> calculationPeriodDates -> effectiveDate -> adjustableDate -> dateAdjustments exists or tradeDate < tradableProduct -> product -> contractualProduct -> economicTerms -> effectiveDate -> adjustableDate -> adjustedDate + + condition FpML_cd_8: <"FpML validation rule cd-8 - If condition LongForm is true, and if scheduledTerminationDate exists then scheduledTerminationDate/dateAdjustments exists."> + if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent + and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists + then tradableProduct -> product -> contractualProduct -> economicTerms -> terminationDate -> adjustableDate -> dateAdjustments exists + + condition FpML_cd_11: <"FpML validation rule cd-11 - If condition LongForm is true, and if condition ISDA2003 is true, then allGuarantees must exist."> + if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent + and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists + and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum -> ISDA2003CreditDerivatives + then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> allGuarantees exists + + condition FpML_cd_19: <"FpML validation rule cd-19 - If the condition ISDA1999Credit is true, then the following elements must not exist: protectionTerms/creditEvents/creditEventNotice/businessCenter, protectionTerms/creditEvents/restructuring/multipleHolderObligation, protectionTerms/creditEvents/restructuring/multipleCreditEventNotices, generalTerms/referenceInformation/allGuarantees, generalTerms/indexReferenceInformation, generalTerms/substitution, generalTerms/modifiedEquityDelivery."> + if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum -> ISDA1999CreditDerivatives + then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> creditEventNotice -> businessCenter is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> restructuring -> multipleHolderObligation is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> restructuring -> multipleCreditEventNotices is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> allGuarantees is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> indexReferenceInformation is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> substitution is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> modifiedEquityDelivery is absent + + condition FpML_cd_20: <"FpML validation rule cd-20 - If the condition ISDA2003 is true, then protectionTerms/obligations/notContingent must not exist."> + if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum -> ISDA2003CreditDerivatives + then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations -> notContingent is absent + + condition FpML_cd_23: <"FpML validation rule cd-23 - If the condition LongForm is true, then cashSettlementTerms or physicalSettlementTerms must exist."> + if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent + and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists + then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> cashSettlementTerms exists + or tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms exists + + condition FpML_cd_24: <"FpML validation rule cd-24 - If the condition LongForm is true, then the following elements must exist: protectionTerms/creditEvents/creditEventNotice, protectionTerms/obligations, generalTerms/referenceInformation/referencePrice."> + if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent + and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists + then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> creditEvents -> creditEventNotice exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> protectionTerms -> obligations exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referencePrice exists + + condition FpML_cd_25: <"FpML validation rule cd-25 - If the condition LongForm is true, and if physicalSettlementTerms exists, then physicalSettlementTerms must contain settlementCurrency, physicalSettlementPeriod, escrow and deliverableObligations/accruedInterest."> + if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent + and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms exists + then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> settlementCurrency exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> physicalSettlementPeriod exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> escrow exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> accruedInterest exists + + condition FpML_cd_32: <"FpML validation rule cd-32 - If condition LongForm is true, and if fixedAmountCalculation/calculationAmount exists, then fixedAmountCalculation/dayCountFraction must exist."> + if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent + and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists + and tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> interestRatePayout -> priceQuantity exists + and tradableProduct -> tradeLot -> priceQuantity -> quantity -> value exists + then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> interestRatePayout -> dayCountFraction exists + + condition FpML_ird_8: <"FpML validation rule ird-8 - If the same party is specified as the payer and receiver, then different accounts must be specified."> + if tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> interestRatePayout exists + then FpmlIrd8(tradableProduct, account) = True condition ExtraordinaryEvents: <"Extraordinary events provisions must be associated with an equity payout."> - if contractDetails->documentation->agreementTerms->agreement->transactionAdditionalTerms->equityAdditionalTerms->extraordinaryEvents exists then - tradableProduct->product ->contractualProduct->economicTerms->payout-> performancePayout -> returnTerms -> priceReturnTerms exists // and performancePayout underlier must be security - or tradableProduct->product ->contractualProduct->economicTerms->payout -> optionPayout -> underlier -> security exists + if contractDetails -> documentation -> agreementTerms -> agreement -> transactionAdditionalTerms -> equityAdditionalTerms -> extraordinaryEvents exists + then tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms exists // and performancePayout underlier must be security + or tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> optionPayout -> underlier -> security exists condition DisruptionEventsDeterminingParty: - if contractDetails->documentation->agreementTerms->agreement->transactionAdditionalTerms->equityAdditionalTerms->extraordinaryEvents -> additionalDisruptionEvents -> determiningParty exists - then tradableProduct->ancillaryParty -> role contains AncillaryRoleEnum -> DisruptionEventsDeterminingParty - and if tradableProduct->ancillaryParty -> role contains AncillaryRoleEnum -> DisruptionEventsDeterminingParty - then contractDetails->documentation->agreementTerms->agreement->transactionAdditionalTerms->equityAdditionalTerms-> extraordinaryEvents -> additionalDisruptionEvents -> determiningParty exists + if contractDetails -> documentation -> agreementTerms -> agreement -> transactionAdditionalTerms -> equityAdditionalTerms -> extraordinaryEvents -> additionalDisruptionEvents -> determiningParty exists + then tradableProduct -> ancillaryParty -> role contains AncillaryRoleEnum -> DisruptionEventsDeterminingParty + and if tradableProduct -> ancillaryParty -> role contains AncillaryRoleEnum -> DisruptionEventsDeterminingParty + then contractDetails -> documentation -> agreementTerms -> agreement -> transactionAdditionalTerms -> equityAdditionalTerms -> extraordinaryEvents -> additionalDisruptionEvents -> determiningParty exists type ExecutionDetails: <"Defines specific attributes that relate to trade executions."> - [metadata key] + [metadata key] - executionType ExecutionTypeEnum (1..1) <"Identifies the type of execution, e.g. via voice, electronically..."> - executionVenue LegalEntity (0..1) <"Represents the venue on which a trade was executed."> - packageReference IdentifiedList (0..1) <"A reference to the package linking the trade with other trades, in case the trade was executed as part of a package (hence this attribute is optional)."> - - condition ExecutionVenue: <"When the execution type is set to 'Electronically', the execution venue must be specified."> - if executionType = ExecutionTypeEnum -> Electronic - then executionVenue exists + executionType ExecutionTypeEnum (1..1) <"Identifies the type of execution, e.g. via voice, electronically..."> + executionVenue LegalEntity (0..1) <"Represents the venue on which a trade was executed."> + packageReference IdentifiedList (0..1) <"A reference to the package linking the trade with other trades, in case the trade was executed as part of a package (hence this attribute is optional)."> + + condition ExecutionVenue: <"When the execution type is set to 'Electronically', the execution venue must be specified."> + if executionType = ExecutionTypeEnum -> Electronic + then executionVenue exists type ContractDetails: <"Defines specific attributes that relate to contractual details of trades."> - [metadata key] - documentation LegalAgreement (0..*) <"Represents the legal document(s) that governs a trade and associated contractual product terms, either as a reference to such documents when specified as part of the CDM, or through identification of some of the key terms of those documents, such as the type of document, the document identifier, the publisher, the document vintage and the agreement date."> - governingLaw GoverningLawEnum (0..1) <"Represents the law governing the trade and associated contractual product terms."> - [metadata scheme] - condition ExecutedAgreement: <"Contract details can only only point to executed legal agreements."> - if documentation exists then documentation-> agreementDate exists + [metadata key] + documentation LegalAgreement (0..*) <"Represents the legal document(s) that governs a trade and associated contractual product terms, either as a reference to such documents when specified as part of the CDM, or through identification of some of the key terms of those documents, such as the type of document, the document identifier, the publisher, the document vintage and the agreement date."> + governingLaw GoverningLawEnum (0..1) <"Represents the law governing the trade and associated contractual product terms."> + [metadata scheme] + + condition ExecutedAgreement: <"Contract details can only only point to executed legal agreements."> + if documentation exists + then documentation -> agreementDate exists type Lineage: <"A class to provide lineage information across lifecycle events through a pointer or set of pointers into the event(s), contract(s) and, possibly, payout components that the event is dependent on or relates to. As an example, if an contractFormation event is corrected, the correction event will have a lineage into the initial event, which takes the form of a globalKey into that initial contract formation event. Two referencing mechanisms are provided as part of the CDM: either the globalKey, which corresponds to the hash value of the CDM class which is referred to, or a reference qualifier which is meant to provide support for the ingestion of xml documents with id/href mechanisms. The CDM recommends the use of the globalKey and provides a default implementation which is accessible in the generated code through org.isda.cdm.globalKey.GlobalKeyHashCalculator. If implementers want to use an alternative hashing mechanism, the API in which they need to plug it is com.rosetta.model.lib.HashFunction."> tradeReference Trade (0..*) [metadata reference] - eventReference WorkflowStep (0..*) <"The reference to the instantiation of an Event object, either through a globalKey or an xml-derived id/href mechanism. The definition associated to the Lineage class provides more details with respect to those referencing approaches, their expected usage and available implementation."> - [metadata reference] - portfolioStateReference PortfolioState (0..*) <"The reference to the previous state of a Portfolio, in a chain of Events leading up to a build of that Portfolio as the holding of Product(s) in specific Quantity(ies). As part of the PortfolioState object, a pointer to the previous PortfolioState is provided through a Lineage object, together with pointer(s) to the Event or set of Events leading up to the current (new) state."> - [metadata reference] + eventReference WorkflowStep (0..*) <"The reference to the instantiation of an Event object, either through a globalKey or an xml-derived id/href mechanism. The definition associated to the Lineage class provides more details with respect to those referencing approaches, their expected usage and available implementation."> + [metadata reference] + portfolioStateReference PortfolioState (0..*) <"The reference to the previous state of a Portfolio, in a chain of Events leading up to a build of that Portfolio as the holding of Product(s) in specific Quantity(ies). As part of the PortfolioState object, a pointer to the previous PortfolioState is provided through a Lineage object, together with pointer(s) to the Event or set of Events leading up to the current (new) state."> + [metadata reference] type StockSplitInstruction: <"Data required to perform a stock split business event."> - adjustmentRatio number (1..1) <"The number that denotes the cumulative quantity of post-split shares issued to shareholders versus the quantity of pre-split shares previously issued to shareholders. This number will be multiplied by existing shares in an equity derivative contract or other positions to determine the post-split number of shares. With regard to any reference to price, the pre-split reference price will be divided by this number to determine the post-split reference price."> - effectiveDate date (1..1) <"The effective date of the stock split, also known as the ex-date. This is the date on which the additional shares are paid to the shareholders, or in the case of a reverse stock split, the number shares held by each shareholder is proportionally reduced. Equity derivative transactions can be amended in firms' internal systems on such date. In most markets, the listed stock price is reduced (or increased for a reverse stock split) to account for the split on the same date, but in some markets the price adjustment occurs on a later date. In either case, equity derivative transactions should be amended on the date that the stocks are paid to the shareholders (or consolidated)."> + adjustmentRatio number (1..1) <"The number that denotes the cumulative quantity of post-split shares issued to shareholders versus the quantity of pre-split shares previously issued to shareholders. This number will be multiplied by existing shares in an equity derivative contract or other positions to determine the post-split number of shares. With regard to any reference to price, the pre-split reference price will be divided by this number to determine the post-split reference price."> + effectiveDate date (1..1) <"The effective date of the stock split, also known as the ex-date. This is the date on which the additional shares are paid to the shareholders, or in the case of a reverse stock split, the number shares held by each shareholder is proportionally reduced. Equity derivative transactions can be amended in firms' internal systems on such date. In most markets, the listed stock price is reduced (or increased for a reverse stock split) to account for the split on the same date, but in some markets the price adjustment occurs on a later date. In either case, equity derivative transactions should be amended on the date that the stocks are paid to the shareholders (or consolidated)."> type CreditEvent: <"Specifies the relevant data regarding a credit event."> - creditEventType CreditEventTypeEnum (1..1) <"The type of credit event taking place."> - eventDeterminationDate date (1..1) <"The date in which the credit event is determined by the Credit Derivatives Determinations Comitee."> - auctionDate date (0..1) <"The date on which the auction is scheduled to occur."> - finalPrice Price (0..1) <"The final price resulting from the auction."> - recoveryPercent number (0..1) <"The percentage of the original value of the asset affected by the credit event that can be recovered."> - publiclyAvailableInformation Resource (0..*) <"A public information source, e.g. a particular newspaper or electronic news service, that may publish relevant information used in the determination of whether or not a credit event has occurred."> - referenceInformation ReferenceInformation (1..1) <"The reference entity, part of a credit basket, impacted by the credit event."> + creditEventType CreditEventTypeEnum (1..1) <"The type of credit event taking place."> + eventDeterminationDate date (1..1) <"The date in which the credit event is determined by the Credit Derivatives Determinations Comitee."> + auctionDate date (0..1) <"The date on which the auction is scheduled to occur."> + finalPrice Price (0..1) <"The final price resulting from the auction."> + recoveryPercent number (0..1) <"The percentage of the original value of the asset affected by the credit event that can be recovered."> + publiclyAvailableInformation Resource (0..*) <"A public information source, e.g. a particular newspaper or electronic news service, that may publish relevant information used in the determination of whether or not a credit event has occurred."> + referenceInformation ReferenceInformation (1..1) <"The reference entity, part of a credit basket, impacted by the credit event."> type CorporateAction: <"Specifies the relevant data regarding a corporate action"> - corporateActionType CorporateActionTypeEnum (1..1) <"The type of corporate action taking place."> - exDate date (1..1) <"The date on which the corporate action is known to have taken place."> - payDate date (1..1) <"The date on which resulting from the corporate action are delivered."> - underlier Product (1..1) <"The entity impacted by the corporate action."> + corporateActionType CorporateActionTypeEnum (1..1) <"The type of corporate action taking place."> + exDate date (1..1) <"The date on which the corporate action is known to have taken place."> + payDate date (1..1) <"The date on which resulting from the corporate action are delivered."> + underlier Product (1..1) <"The entity impacted by the corporate action."> type TransferBase: - identifier Identifier (0..*) <"Represents a unique reference to the transfer."> - [metadata scheme] - quantity NonNegativeQuantity (1..1) <"Represents the amount of the asset to be transferred."> - observable Observable (0..1) <"Represents the object that is subject to the transfer, it could be an asset or a reference."> - payerReceiver PartyReferencePayerReceiver (1..1) <"Represents the parties to the transfer and their role."> - settlementDate AdjustableOrAdjustedOrRelativeDate (1..1) <"Represents the date on which the transfer to due."> + identifier Identifier (0..*) <"Represents a unique reference to the transfer."> + [metadata scheme] + quantity NonNegativeQuantity (1..1) <"Represents the amount of the asset to be transferred."> + observable Observable (0..1) <"Represents the object that is subject to the transfer, it could be an asset or a reference."> + payerReceiver PartyReferencePayerReceiver (1..1) <"Represents the parties to the transfer and their role."> + settlementDate AdjustableOrAdjustedOrRelativeDate (1..1) <"Represents the date on which the transfer to due."> - condition FinancialUnitExists: - if observable exists - then quantity -> unit -> financialUnit exists + condition FinancialUnitExists: + if observable exists + then quantity -> unit -> financialUnit exists type ClearingInstruction: <"All information required to perform the clear life cycle event; the clearing party (CCP), the two parties facing each other on the alpha contract, and optionally the parties acting as clearing members."> - alphaContract TradeState (1..1) <"The contract that will be submitted to the clearing house for clearing. The contract should indicate that it should be cleared by assigning a clearing organisation as a party role."> - - clearingParty Party (1..1) <"The Central Counter party (CCP) that the contract will be submitted to for clearing."> - party1 Party (1..1) <"First party facing the CCP if it is clearing for its own account."> - party2 Party (1..1) <"Second party facing the CCP if it is clearing for its own account."> - - clearerParty1 Party (0..1) <"Optional party facing the CCP, acting as clearing member for party1."> - clearerParty2 Party (0..1) <"Optional party facing the CCP, acting as clearing member for party2."> - isOpenOffer boolean (0..1) <"Open Offer"> + alphaContract TradeState (1..1) <"The contract that will be submitted to the clearing house for clearing. The contract should indicate that it should be cleared by assigning a clearing organisation as a party role."> + clearingParty Party (1..1) <"The Central Counter party (CCP) that the contract will be submitted to for clearing."> + party1 Party (1..1) <"First party facing the CCP if it is clearing for its own account."> + party2 Party (1..1) <"Second party facing the CCP if it is clearing for its own account."> + clearerParty1 Party (0..1) <"Optional party facing the CCP, acting as clearing member for party1."> + clearerParty2 Party (0..1) <"Optional party facing the CCP, acting as clearing member for party2."> + isOpenOffer boolean (0..1) <"Open Offer"> type ExerciseEvent: <"A data defining: the adjusted dates associated with a particular exercise event."> - [deprecated] - [metadata key] + [deprecated] + [metadata key] - adjustedExerciseDate date (1..1) <"The date on which the option exercise takes place. This date should already be adjusted for any applicable business day convention."> - adjustedRelevantSwapEffectiveDate date (1..1) <"The effective date of the underlying swap associated with a given exercise date. This date should already be adjusted for any applicable business day convention."> - adjustedCashSettlementValuationDate date (0..1) <"The date by which the cash settlement amount must be agreed. This date should already be adjusted for any applicable business day convention."> - adjustedCashSettlementPaymentDate date (0..1) <"The date on which the cash settlement amount is paid. This date should already be adjusted for any applicable business day convention."> - adjustedExerciseFeePaymentDate date (0..1) <"The date on which the exercise fee amount is paid. This date should already be adjusted for any applicable business day convention."> + adjustedExerciseDate date (1..1) <"The date on which the option exercise takes place. This date should already be adjusted for any applicable business day convention."> + adjustedRelevantSwapEffectiveDate date (1..1) <"The effective date of the underlying swap associated with a given exercise date. This date should already be adjusted for any applicable business day convention."> + adjustedCashSettlementValuationDate date (0..1) <"The date by which the cash settlement amount must be agreed. This date should already be adjusted for any applicable business day convention."> + adjustedCashSettlementPaymentDate date (0..1) <"The date on which the cash settlement amount is paid. This date should already be adjusted for any applicable business day convention."> + adjustedExerciseFeePaymentDate date (0..1) <"The date on which the exercise fee amount is paid. This date should already be adjusted for any applicable business day convention."> type ReturnInstruction: <"Specifies the information required to create the return of a Security Finance Transaction."> quantity Quantity (1..*) <"Specifies the quantity of shares and cash to be returned in a partial return event."> @@ -589,10 +587,10 @@ type SecurityLendingInvoice: <"Specifies the information required for inclusion type BillingInstruction: <"Specifies the instructions for creation of a Security Lending billing invoice."> sendingParty Party (1..1) <"The party issuing the invoice"> receivingParty Party (1..1) <"The party receiving the invoice"> - billingStartDate date (1..1) <"The starting date of the period described by this invoice"> - billingEndDate date (1..1) <"The ending date of the period described by this invoice"> - billingRecordInstruction BillingRecordInstruction (1..*) <"Instructions for creating the billing records contained within the invoice"> - billingSummary BillingSummaryInstruction (0..*) <"The billing summaries contained within the invoice"> + billingStartDate date (1..1) <"The starting date of the period described by this invoice"> + billingEndDate date (1..1) <"The ending date of the period described by this invoice"> + billingRecordInstruction BillingRecordInstruction (1..*) <"Instructions for creating the billing records contained within the invoice"> + billingSummary BillingSummaryInstruction (0..*) <"The billing summaries contained within the invoice"> type BillingRecordInstruction: <"Specifies the instructions for creation of a billing record."> tradeState TradeState (1..1) <"The trade for the individual billing record."> @@ -619,113 +617,111 @@ type BillingSummary: <"Specifies individual summaries within a billing invoice." condition GrandTotal: if summaryAmountType = RecordAmountTypeEnum -> GrandTotal - then summaryTransfer exists - and summaryTransfer -> payerReceiver is absent + then summaryTransfer exists and summaryTransfer -> payerReceiver is absent condition ParentTotal: if summaryAmountType = RecordAmountTypeEnum -> ParentTotal - then summaryTransfer -> payerReceiver exists - and summaryTransfer->payerReceiver->payerAccountReference is absent - and summaryTransfer->payerReceiver->receiverAccountReference is absent + then summaryTransfer -> payerReceiver exists + and summaryTransfer -> payerReceiver -> payerAccountReference is absent + and summaryTransfer -> payerReceiver -> receiverAccountReference is absent condition AccountTotal: if summaryAmountType = RecordAmountTypeEnum -> AccountTotal - then summaryTransfer->payerReceiver->payerAccountReference exists - and summaryTransfer->payerReceiver->receiverAccountReference exists + then summaryTransfer -> payerReceiver -> payerAccountReference exists + and summaryTransfer -> payerReceiver -> receiverAccountReference exists type TradePricingReport: <"The attributes that are specific for consensus based pricing reporting."> - trade Trade (1..1) <"Represents the cosensus based pricing parameters on a trade basis."> - pricingTime TimeZone (1..1) <"The regional exchange close time for the underlying contract,including time zone, at which the trades should be priced. This provides an indication for which regional snapshot should be used for pricing primarily for Global markets where there are multiple regional close times."> - discountingIndex FloatingRateIndexEnum (0..1) <"It specifies the interest payable on collateral delivered under a CSA covering the trade."> - + trade Trade (1..1) <"Represents the cosensus based pricing parameters on a trade basis."> + pricingTime TimeZone (1..1) <"The regional exchange close time for the underlying contract,including time zone, at which the trades should be priced. This provides an indication for which regional snapshot should be used for pricing primarily for Global markets where there are multiple regional close times."> + discountingIndex FloatingRateIndexEnum (0..1) <"It specifies the interest payable on collateral delivered under a CSA covering the trade."> type MarginCallBase: <"Represents common attributes required for Issuance and Response to a Margin Call action as a result of a demand for delivery or return of collateral determined under a legal agreement such as a credit support document or equivalent."> - instructionType MarginCallInstructionType (1..1) <"Identifies the enumeration values to specify the call notification type, direction, specific action type."> - party Party (0..*) <"Represents the parties to the margin call. The cardinality is optional to address the case where both parties of the event are specified and a third party if applicable."> - partyRole PartyRole (0..*) <"Represents the role each specified party takes in the margin call. further to the principal roles, payer and receiver."> - clearingBroker Party (0..1) <"Indicates the name of the Clearing Broker FCM/DCM."> - callIdentifier Identifier (0..1) <"Represents a unique Identifier for a margin call message, that can be referenced throughout all points of the process."> - callAgreementType AgreementName (1..1) <"Specifies the legal agreement type the margin call is generated from and governed by."> - agreementMinimumTransferAmount Money (0..1)<"Specifies the collateral legal agreement minimum transfer amount in base currency."> - agreementThreshold Money (0..1) <"Specifies the collateral legal agreement threshold amount in base currency."> - agreementRounding Money (0..1) <"Specifies the collateral legal agreement rounding in base currency."> - regMarginType RegMarginTypeEnum (1..1) <"Identifies margin type and if related regulatory mandate"> - regIMRole RegIMRoleEnum (0..1) <"Indicates the role of the party in an regulatory initial margin call instruction (i.e Pledgor party or Secured party)."> - baseCurrencyExposure MarginCallExposure (0..1) <"Represents the current mark to market value or IM calculation value of the trade portfolio as recorded by the principle (in base currency), to be referenced in a margin call."> - collateralPortfolio CollateralPortfolio (0..1) <"Represents attributes to define the details of collateral assets within a collateral portfolio to be used in margin call messaging and contribute to collateral balances e.g securities in a collateral account recorded by the principal as held or posted."> - [metadata reference] - independentAmountBalance CollateralBalance (0..1) <"Represents additional credit support amount over and above mark to market value."> - - condition RegIMRoleIMOnly: <"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)."> - if regIMRole exists - then regMarginType = RegMarginTypeEnum -> RegIM + instructionType MarginCallInstructionType (1..1) <"Identifies the enumeration values to specify the call notification type, direction, specific action type."> + party Party (0..*) <"Represents the parties to the margin call. The cardinality is optional to address the case where both parties of the event are specified and a third party if applicable."> + partyRole PartyRole (0..*) <"Represents the role each specified party takes in the margin call. further to the principal roles, payer and receiver."> + clearingBroker Party (0..1) <"Indicates the name of the Clearing Broker FCM/DCM."> + callIdentifier Identifier (0..1) <"Represents a unique Identifier for a margin call message, that can be referenced throughout all points of the process."> + callAgreementType AgreementName (1..1) <"Specifies the legal agreement type the margin call is generated from and governed by."> + agreementMinimumTransferAmount Money (0..1) <"Specifies the collateral legal agreement minimum transfer amount in base currency."> + agreementThreshold Money (0..1) <"Specifies the collateral legal agreement threshold amount in base currency."> + agreementRounding Money (0..1) <"Specifies the collateral legal agreement rounding in base currency."> + regMarginType RegMarginTypeEnum (1..1) <"Identifies margin type and if related regulatory mandate"> + regIMRole RegIMRoleEnum (0..1) <"Indicates the role of the party in an regulatory initial margin call instruction (i.e Pledgor party or Secured party)."> + baseCurrencyExposure MarginCallExposure (0..1) <"Represents the current mark to market value or IM calculation value of the trade portfolio as recorded by the principle (in base currency), to be referenced in a margin call."> + collateralPortfolio CollateralPortfolio (0..1) <"Represents attributes to define the details of collateral assets within a collateral portfolio to be used in margin call messaging and contribute to collateral balances e.g securities in a collateral account recorded by the principal as held or posted."> + [metadata reference] + independentAmountBalance CollateralBalance (0..1) <"Represents additional credit support amount over and above mark to market value."> -type Exposure: <"Represents the current mark to market value or IM calculation value of the trade portfolio as recorded by the principle (in base currency)."> - tradePortfolio PortfolioState (1..1) <"Represents a Portfolio that describes all the positions held at a given time, in various states which can be either traded, settled, etc., with lineage information to the previous state."> - [metadata reference] - aggregateValue Money (1..1) <"Represents the aggregate value of the portfolio in base currency."> - calculationDateTime zonedDateTime (0..1) <"Indicates the date when the exposure is calculated if different from valuation date."> - valuationDateTime zonedDateTime (1..1) <"Indicates the valuation date of the exposure underlying the calculation."> - // possible function/instructions needed for calculation of portfolio and aggregating to a base currency value// + condition RegIMRoleIMOnly: <"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)."> + if regIMRole exists + then regMarginType = RegMarginTypeEnum -> RegIM +type Exposure: <"Represents the current mark to market value or IM calculation value of the trade portfolio as recorded by the principle (in base currency)."> + tradePortfolio PortfolioState (1..1) <"Represents a Portfolio that describes all the positions held at a given time, in various states which can be either traded, settled, etc., with lineage information to the previous state."> + [metadata reference] + aggregateValue Money (1..1) <"Represents the aggregate value of the portfolio in base currency."> + calculationDateTime zonedDateTime (0..1) <"Indicates the date when the exposure is calculated if different from valuation date."> + valuationDateTime zonedDateTime (1..1) <"Indicates the valuation date of the exposure underlying the calculation."> +// possible function/instructions needed for calculation of portfolio and aggregating to a base currency value// type MarginCallExposure extends MarginCallBase: <"Represents attributes required for mark to market value or IM calculation value of the trade portfolio as recorded by the principle (in base currency)."> - overallExposure Exposure (1..1) <"Represents the whole overall mark to market value or IM calculation value of the trade portfolio as recorded by the principle (in base currency)."> - simmIMExposure Exposure (0..1) <"Represents Initial Margin (IM) exposure derived from ISDA SIMM calculation."> - scheduleGridIMExposure Exposure (0..1) <"Represents Initial Margin (IM) exposure derived from schedule or Grid calculation."> + overallExposure Exposure (1..1) <"Represents the whole overall mark to market value or IM calculation value of the trade portfolio as recorded by the principle (in base currency)."> + simmIMExposure Exposure (0..1) <"Represents Initial Margin (IM) exposure derived from ISDA SIMM calculation."> + scheduleGridIMExposure Exposure (0..1) <"Represents Initial Margin (IM) exposure derived from schedule or Grid calculation."> - condition OverallExposureSumOfSimmAndScheduleIM: <"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."> - if simmIMExposure exists and scheduleGridIMExposure exists - then (overallExposure -> aggregateValue -> value = simmIMExposure -> aggregateValue -> value + scheduleGridIMExposure -> aggregateValue -> value) - and (overallExposure -> aggregateValue -> unit -> currency = simmIMExposure -> aggregateValue -> unit -> currency) - and (overallExposure -> aggregateValue -> unit -> currency = scheduleGridIMExposure -> aggregateValue -> unit -> currency) + condition OverallExposureSumOfSimmAndScheduleIM: <"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."> + if simmIMExposure exists and scheduleGridIMExposure exists + then (overallExposure -> aggregateValue -> value = simmIMExposure -> aggregateValue -> value + scheduleGridIMExposure -> aggregateValue -> value) + and (overallExposure -> aggregateValue -> unit -> currency = simmIMExposure -> aggregateValue -> unit -> currency) + and (overallExposure -> aggregateValue -> unit -> currency = scheduleGridIMExposure -> aggregateValue -> unit -> currency) - condition ExposureSimmAndScheduleIMOnly: <"Specifies a condition to ensure that if margin exposure is defined as Simm IM and Schedule/Grid IM Exposure this is only applicable if the Reg margin type is defined as RegIM (Regulatory Initial Margin)."> - if simmIMExposure exists and scheduleGridIMExposure exists - then regMarginType = RegMarginTypeEnum -> RegIM + condition ExposureSimmAndScheduleIMOnly: <"Specifies a condition to ensure that if margin exposure is defined as Simm IM and Schedule/Grid IM Exposure this is only applicable if the Reg margin type is defined as RegIM (Regulatory Initial Margin)."> + if simmIMExposure exists and scheduleGridIMExposure exists + then regMarginType = RegMarginTypeEnum -> RegIM type CollateralBalance: <"Represents common attributes to define a collateral balance recorded by the principal as held or posted."> - collateralBalanceStatus CollateralStatusEnum (0..1) <"Defines the collateral balance breakdown of settlement status."> - haircutIndicator HaircutIndicatorEnum (0..1) <"Indicates if the collateral balance amount is based on pre or post haircut, if a haircut is associated with the collateral asset"> - amountBaseCurrency Money (1..1) <"Specifies the collateral balance amount in base currency determined within a collateral legal agreement, or defined for reporting purposes."> - payerReceiver PartyReferencePayerReceiver (1..1) <"Specifies each of the parties in the collateral balance and its perspective with regards to the direction of the collateral balance, posted or received."> + collateralBalanceStatus CollateralStatusEnum (0..1) <"Defines the collateral balance breakdown of settlement status."> + haircutIndicator HaircutIndicatorEnum (0..1) <"Indicates if the collateral balance amount is based on pre or post haircut, if a haircut is associated with the collateral asset"> + amountBaseCurrency Money (1..1) <"Specifies the collateral balance amount in base currency determined within a collateral legal agreement, or defined for reporting purposes."> + payerReceiver PartyReferencePayerReceiver (1..1) <"Specifies each of the parties in the collateral balance and its perspective with regards to the direction of the collateral balance, posted or received."> type CollateralPortfolio: <"Represents common attributes to define the details of collateral assets, to be used in margin call messaging and contribute to collateral balances e.g securities in a collateral account."> - [metadata key] - [rootType] - portfolioIdentifier Identifier (0..1) <"Specifies a unique identifier for a set of collateral positions in a portfolio."> - collateralPosition CollateralPosition (0..*) <"Specifies the individual components of the collateral positions in the collateral portfolio."> - collateralBalance CollateralBalance (0..*) <"Represents the populated or calculated collateral aggregate balance amount for the collateral portfolio."> - legalAgreement LegalAgreement (0..1) <" The specification of a legal agreement between two parties governing the collateral relationship such as Credit Support Agreement or Collateral Transfer Agreement etc. (NB: this can be provided by reference to a global key for each LegalAgreement object)."> - [metadata reference] + [metadata key] + [rootType] + portfolioIdentifier Identifier (0..1) <"Specifies a unique identifier for a set of collateral positions in a portfolio."> + collateralPosition CollateralPosition (0..*) <"Specifies the individual components of the collateral positions in the collateral portfolio."> + collateralBalance CollateralBalance (0..*) <"Represents the populated or calculated collateral aggregate balance amount for the collateral portfolio."> + legalAgreement LegalAgreement (0..1) <" The specification of a legal agreement between two parties governing the collateral relationship such as Credit Support Agreement or Collateral Transfer Agreement etc. (NB: this can be provided by reference to a global key for each LegalAgreement object)."> + [metadata reference] type CollateralPosition extends Position: <"Specifies the individual components of collateral positions."> - - treatment CollateralTreatment (0..1) <"Specifies if there is any treatment to be applied to collateral, such as percentage discount which will impact collateral value."> - collateralPositionStatus CollateralStatusEnum (0..1) <"Indicates the collateral positions settlement status."> - condition CollateralPositionStatusSettledOrInTransitOnly : <"Represents a condition to ensure that if a status is defined for a collateral position you must only indicate 'Settled Amount' or 'In Transit' amount from the available enumerations."> - if collateralPositionStatus exists - then collateralPositionStatus = CollateralStatusEnum -> SettledAmount or collateralPositionStatus = CollateralStatusEnum -> InTransitAmount + treatment CollateralTreatment (0..1) <"Specifies if there is any treatment to be applied to collateral, such as percentage discount which will impact collateral value."> + collateralPositionStatus CollateralStatusEnum (0..1) <"Indicates the collateral positions settlement status."> + + condition CollateralPositionStatusSettledOrInTransitOnly: <"Represents a condition to ensure that if a status is defined for a collateral position you must only indicate 'Settled Amount' or 'In Transit' amount from the available enumerations."> + if collateralPositionStatus exists + then collateralPositionStatus = CollateralStatusEnum -> SettledAmount + or collateralPositionStatus = CollateralStatusEnum -> InTransitAmount type MarginCallIssuance extends MarginCallBase: <"Represents common attributes required for a Margin Call Issuance under a legal agreement such as a credit support document or equivalent."> callAmountInBaseCurrency Money (1..1) <"Specifies the amount of margin being called for which accounts for margin calculation inclusive of exposure, independent amount,threshold,collateral balance, MTA, rounding increments (in base currency detailed in supporting collateral agreement)."> - recallNonCashCollateralDescription EligibleCollateralCriteria (0..*) <"Specifies the details to describe or identify non-cash collateral eligible assets for recall purposes."> + recallNonCashCollateralDescription EligibleCollateralCriteria (0..*) <"Specifies the details to describe or identify non-cash collateral eligible assets for recall purposes."> type MarginCallInstructionType: <"Represents enumeration values to specify the call notification type, direction, specific action type."> callType CallTypeEnum (1..1) <"Indicates the status of the call message type, such as expected call, notification of a call or an actionable margin call."> - visibilityIndicator boolean (0..1) <"Indicates the choice if the call instruction is visible or not to the other party."> + visibilityIndicator boolean (0..1) <"Indicates the choice if the call instruction is visible or not to the other party."> - condition CallTypeExpectedVisibility: <"Represents a condition to ensure that a visibility indicator is specifies then the call type must be an expected call."> - if callType = CallTypeEnum -> ExpectedCall + condition CallTypeExpectedVisibility: <"Represents a condition to ensure that a visibility indicator is specifies then the call type must be an expected call."> + if callType = CallTypeEnum -> ExpectedCall then visibilityIndicator exists type MarginCallResponseAction: <"Specifies the margin call action details, including collateral to be moved and its direction."> - - collateralPositionComponent CollateralPosition (1..*) <"Specifies the collateral to be moved and its direction."> - marginCallAction MarginCallActionEnum (1..1) <"Specifies the margin call action details, specified as either Delivery or Return."> + + collateralPositionComponent CollateralPosition (1..*) <"Specifies the collateral to be moved and its direction."> + marginCallAction MarginCallActionEnum (1..1) <"Specifies the margin call action details, specified as either Delivery or Return."> type MarginCallResponse extends MarginCallBase: <"Represents common attributes required for a Margin Call Response under a legal agreement such as a credit support document or equivalent."> - - marginCallResponseAction MarginCallResponseAction (1..*) <"Specifies the margin call action details, including collateral to be moved and direction."> - marginResponseType MarginCallResponseTypeEnum (1..1) <"Indicates the response type, such as, is the margin call response a 'full' 'part' agreement or 'dispute'."> - agreedAmountBaseCurrency Money (1..1) <"Indicates the amount that posting entity agrees to remit in response to margin call (in base currency)."> + + marginCallResponseAction MarginCallResponseAction (1..*) <"Specifies the margin call action details, including collateral to be moved and direction."> + marginResponseType MarginCallResponseTypeEnum (1..1) <"Indicates the response type, such as, is the margin call response a 'full' 'part' agreement or 'dispute'."> + agreedAmountBaseCurrency Money (1..1) <"Indicates the amount that posting entity agrees to remit in response to margin call (in base currency)."> diff --git a/rosetta-source/src/main/rosetta/event-position-enum.rosetta b/rosetta-source/src/main/rosetta/event-position-enum.rosetta index 45cc5fdc9e..625d6fbc4a 100644 --- a/rosetta-source/src/main/rosetta/event-position-enum.rosetta +++ b/rosetta-source/src/main/rosetta/event-position-enum.rosetta @@ -2,8 +2,8 @@ namespace cdm.event.position : <"Position concepts: portfolio and portfolio aggr version "${project.version}" enum PositionStatusEnum: <"Enumeration to describe the different (risk) states of a Position, whether executed, settled, matured...etc"> - Executed <"The position has been executed, which is the point at which risk has been transferred."> - Formed <"Contract has been formed, in case position is on a contractual product."> - Settled <"The position has settled, in case product is subject to settlement after execution, such as securities."> - Cancelled <"The position has been cancelled, in case of a cancellation event following an execution."> - Closed <"The position has been closed, in case of a termination event."> + Executed <"The position has been executed, which is the point at which risk has been transferred."> + Formed <"Contract has been formed, in case position is on a contractual product."> + Settled <"The position has settled, in case product is subject to settlement after execution, such as securities."> + Cancelled <"The position has been cancelled, in case of a cancellation event following an execution."> + Closed <"The position has been closed, in case of a termination event."> diff --git a/rosetta-source/src/main/rosetta/event-position-func.rosetta b/rosetta-source/src/main/rosetta/event-position-func.rosetta index 4909c36558..7e6d1f8603 100644 --- a/rosetta-source/src/main/rosetta/event-position-func.rosetta +++ b/rosetta-source/src/main/rosetta/event-position-func.rosetta @@ -6,44 +6,48 @@ import cdm.product.template.* import cdm.event.common.* func FxMarkToMarket: <"Representation of sample mark to market calculation provided by a member firm."> - inputs: trade Trade (1..1) - output: value number (1..1) - - alias forwardPayout: <"Alias to the forward pay out."> - trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> forwardPayout only-element + inputs: + trade Trade (1..1) + output: + value number (1..1) + + alias forwardPayout: <"Alias to the forward pay out."> + trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> forwardPayout only-element alias quotedCurrency: <"The quoted currency."> - trade -> tradableProduct -> tradeLot -> priceQuantity -> price -> unit -> currency distinct only-element + trade -> tradableProduct -> tradeLot -> priceQuantity -> price -> unit -> currency + distinct + only-element alias baseCurrency: <"The base currency."> - trade -> tradableProduct -> tradeLot -> priceQuantity -> price -> perUnitOf -> currency distinct only-element + trade -> tradableProduct -> tradeLot -> priceQuantity -> price -> perUnitOf -> currency + distinct + only-element alias quantities: <"Quantity list. Only works in the case of a single trade lot."> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> quantity - alias quotedQuantity: <"Quoted quantity amount."> - FilterQuantityByCurrency( quantities, quotedCurrency ) only-element -> value - - alias baseQuantity: <"Base quantity amount."> - FilterQuantityByCurrency( quantities, baseCurrency ) only-element -> value - - alias interpolatedRate: - InterpolateForwardRate(forwardPayout) - - condition ForwardPayoutExists: <"The forwardPayout on the contract must exist."> - trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> forwardPayout exists - - set value: - (quotedQuantity / interpolatedRate - baseQuantity) * interpolatedRate + alias quotedQuantity: <"Quoted quantity amount."> + FilterQuantityByCurrency(quantities, quotedCurrency) only-element -> value + + alias baseQuantity: <"Base quantity amount."> + FilterQuantityByCurrency(quantities, baseCurrency) only-element -> value + + alias interpolatedRate: InterpolateForwardRate(forwardPayout) + + condition ForwardPayoutExists: <"The forwardPayout on the contract must exist."> + trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> forwardPayout exists + + set value: (quotedQuantity / interpolatedRate - baseQuantity) * interpolatedRate func InterpolateForwardRate: - inputs: forward ForwardPayout (1..1) - output: result number (1..1) + inputs: + forward ForwardPayout (1..1) + output: + result number (1..1) func EvaluatePortfolioState: <"Function specification to evaluate a portfolio's aggregation parameters and return a new portfolio state containing aggregated positions."> - inputs: - portfolio Portfolio (1..1) <"Portfolio containing the aggregation parameters to be used to calculate the new portfolio state."> - output: - portfolioState PortfolioState (1..1) <"Portfolio state containing the aggregated positions based on the input aggregation parameters."> - - \ No newline at end of file + inputs: + portfolio Portfolio (1..1) <"Portfolio containing the aggregation parameters to be used to calculate the new portfolio state."> + output: + portfolioState PortfolioState (1..1) <"Portfolio state containing the aggregated positions based on the input aggregation parameters."> diff --git a/rosetta-source/src/main/rosetta/event-position-type.rosetta b/rosetta-source/src/main/rosetta/event-position-type.rosetta index 6c37dfc0af..5ee37f2917 100644 --- a/rosetta-source/src/main/rosetta/event-position-type.rosetta +++ b/rosetta-source/src/main/rosetta/event-position-type.rosetta @@ -9,36 +9,35 @@ import cdm.observable.asset.* import cdm.event.common.* type Position: <"A Position describes how much of a given Product is being held and constitutes the atomic element of a Portfolio."> - - priceQuantity PriceQuantity (1..*) <"Position with many price quantities."> - product Product (1..1) <"The product underlying the position."> - cashBalance Money (0..1) <"The aggregate cost of proceeds"> - tradeReference TradeState (0..1) <"Reference to the Contract, in case product is contractual and the contract has been formed"> - [metadata reference] - + + priceQuantity PriceQuantity (1..*) <"Position with many price quantities."> + product Product (1..1) <"The product underlying the position."> + cashBalance Money (0..1) <"The aggregate cost of proceeds"> + tradeReference TradeState (0..1) <"Reference to the Contract, in case product is contractual and the contract has been formed"> + [metadata reference] + type PortfolioState: <"State-full representation of a Portfolio that describes all the positions held at a given time, in various states which can be either traded, settled, etc., with lineage information to the previous state"> - [metadata key] + [metadata key] - positions Position (0..*) <"The list of positions, each containing a Quantity and a Product."> - lineage Lineage (1..1) <"Pointer to the previous PortfolioState and new Event(s) leading to the current (new) state. Previous PortfolioState in the Lineage can be Null in case this is the start of the chain of Events."> + positions Position (0..*) <"The list of positions, each containing a Quantity and a Product."> + lineage Lineage (1..1) <"Pointer to the previous PortfolioState and new Event(s) leading to the current (new) state. Previous PortfolioState in the Lineage can be Null in case this is the start of the chain of Events."> - condition Initialisation: <"When the PortfolioState is the starting state of the Portfolio, as identified by a Null state in the Lineage, Positions must be empty and the reference to the latest Event is also empty. This is how a Portfolio gets initialised."> - if lineage -> portfolioStateReference is absent - then positions is absent - and lineage -> eventReference is absent + condition Initialisation: <"When the PortfolioState is the starting state of the Portfolio, as identified by a Null state in the Lineage, Positions must be empty and the reference to the latest Event is also empty. This is how a Portfolio gets initialised."> + if lineage -> portfolioStateReference is absent + then positions is absent and lineage -> eventReference is absent type AggregationParameters: <" Parameters to be used to filter events that are relevant to a given portfolio in order to calculate the state of this portfolio. The attributes correspond to all the possible aggregation criteria that can be used and these criteria can be combined. All the attributes are optional."> - dateTime zonedDateTime (1..1) <"To aggregate as of a particular date"> - totalPosition boolean (0..1) <"Specifies whether to calculate total position to given date, or only daily position for the given date."> - positionStatus PositionStatusEnum (0..1) <"To aggregate based on position status (EXECUTED, SETTLED etc)"> - party Party (0..*) <"To aggregate based on a selection of party(ies) / legal entity(ies)."> - [metadata reference] - product Product (0..*) <"To aggregate based on a selection of products."> - productQualifier string (0..*) <"To aggregate based on a selection of product type(s)."> - tradeReference Trade (0..*) - [metadata reference] + dateTime zonedDateTime (1..1) <"To aggregate as of a particular date"> + totalPosition boolean (0..1) <"Specifies whether to calculate total position to given date, or only daily position for the given date."> + positionStatus PositionStatusEnum (0..1) <"To aggregate based on position status (EXECUTED, SETTLED etc)"> + party Party (0..*) <"To aggregate based on a selection of party(ies) / legal entity(ies)."> + [metadata reference] + product Product (0..*) <"To aggregate based on a selection of products."> + productQualifier string (0..*) <"To aggregate based on a selection of product type(s)."> + tradeReference Trade (0..*) + [metadata reference] type Portfolio: <" A Portfolio represents an aggregation of multiple Positions, by describing the parameters that this Portfolio should be aggregated based on. The resulting PortfolioState is calculated using these aggregation parameters as inputs, by aggregating all the Events that are relevant to this Portfolio. The concept of Portfolio works at all levels in the model: from the highest for a given LegalEntity for instance, to the lowest to account for security substitutions in a secutity financing transaction. As such, Portfolio can be used either above or below the Contract level."> - aggregationParameters AggregationParameters (1..1) <"Describes the portfolio by describing how to aggregate all its relevant Events."> - portfolioState PortfolioState (1..1) <"Describes the state of the Portfolio as a list of Positions resulting from the aggregation."> + aggregationParameters AggregationParameters (1..1) <"Describes the portfolio by describing how to aggregate all its relevant Events."> + portfolioState PortfolioState (1..1) <"Describes the state of the Portfolio as a list of Positions resulting from the aggregation."> diff --git a/rosetta-source/src/main/rosetta/event-qualification-func.rosetta b/rosetta-source/src/main/rosetta/event-qualification-func.rosetta index f671768f7a..a07ae26588 100644 --- a/rosetta-source/src/main/rosetta/event-qualification-func.rosetta +++ b/rosetta-source/src/main/rosetta/event-qualification-func.rosetta @@ -10,449 +10,500 @@ import cdm.observable.asset.* isEvent root BusinessEvent; func Qualify_Allocation: <"The qualification of allocation event from the fact that (i) the only primitives are split and contract formation (ii) the number of split executions and the number of contract formations are equal. Note that SplitPrimitive type has a condition to check that the post-split quantities sum to the pre-split quantity. Also note that it is expected that an allocation can result in a single contract."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - - alias beforeTradeState: businessEvent -> instruction -> before only-element - alias closedTradeStates: FilterClosedTradeStates( businessEvent -> after ) - alias openTradeStates: FilterOpenTradeStates( businessEvent -> after ) - set is_event: - businessEvent -> intent = EventIntentEnum -> Allocation - and closedTradeStates count = 1 - and openTradeStates count >= 1 - and businessEvent -> instruction -> primitiveInstruction -> split exists - // before trade counterparties should match closed after trade counterparties - and beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference = closedTradeStates only-element -> trade -> tradableProduct -> counterparty -> partyReference - // before trade counterparties should not match open after trade counterparties - and openTradeStates - extract [ item -> trade -> tradableProduct -> counterparty -> partyReference <> beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference ] - all = True - + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias beforeTradeState: businessEvent -> instruction -> before only-element + alias closedTradeStates: FilterClosedTradeStates(businessEvent -> after) + alias openTradeStates: FilterOpenTradeStates(businessEvent -> after) + set is_event: + businessEvent -> intent = EventIntentEnum -> Allocation + and closedTradeStates count = 1 + and openTradeStates count >= 1 + and businessEvent -> instruction -> primitiveInstruction -> split exists + // before trade counterparties should match closed after trade counterparties + and beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference = closedTradeStates only-element -> trade -> tradableProduct -> counterparty -> partyReference + // before trade counterparties should not match open after trade counterparties + and openTradeStates + extract [ + item -> trade -> tradableProduct -> counterparty -> partyReference <> beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference + ] all = True func Qualify_CashTransfer: <"The qualification of a cash transfer from the fact that the only component is a cashTransfer."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias transferInstructions: businessEvent -> instruction -> primitiveInstruction -> transfer - alias beforeTransfers: businessEvent -> instruction -> before -> transferHistory - alias afterTransfers: businessEvent -> after -> transferHistory - set is_event: - businessEvent -> instruction -> primitiveInstruction -> transfer only exists - and beforeTransfers count + transferInstructions count = afterTransfers count - and transferInstructions -> transferState -> transfer -> quantity -> unit -> currency exists + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias transferInstructions: + businessEvent -> instruction -> primitiveInstruction -> transfer + alias beforeTransfers: businessEvent -> instruction -> before -> transferHistory + alias afterTransfers: businessEvent -> after -> transferHistory + set is_event: + businessEvent -> instruction -> primitiveInstruction -> transfer only exists + and beforeTransfers count + transferInstructions count = afterTransfers count + and transferInstructions -> transferState -> transfer -> quantity -> unit -> currency exists func Qualify_CashAndSecurityTransfer: <"The qualification of a security settlement from the fact that (i) it is composed of a cashTransfer component and a securityTransfer component, and (ii) the cash and security move in the same direction."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias transfersForDate: TransfersForDate( businessEvent -> after -> transferHistory -> transfer, businessEvent -> eventDate ) - set is_event: - transfersForDate -> quantity -> unit -> currency exists - and transfersForDate -> quantity -> unit -> financialUnit exists - and transfersForDate count = 2 - - func Qualify_ClearedTrade: - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - - alias beforeTradeState: businessEvent -> instruction -> before only-element - alias closedTradeStates: FilterClosedTradeStates( businessEvent -> after ) - alias openTradeStates: FilterOpenTradeStates( businessEvent -> after ) - set is_event: + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias transfersForDate: + TransfersForDate( + businessEvent -> after -> transferHistory -> transfer, + businessEvent -> eventDate + ) + set is_event: + transfersForDate -> quantity -> unit -> currency exists + and transfersForDate -> quantity -> unit -> financialUnit exists + and transfersForDate count = 2 + +func Qualify_ClearedTrade: + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias beforeTradeState: businessEvent -> instruction -> before only-element + alias closedTradeStates: FilterClosedTradeStates(businessEvent -> after) + alias openTradeStates: FilterOpenTradeStates(businessEvent -> after) + set is_event: businessEvent -> intent = EventIntentEnum -> Clearing - and closedTradeStates count = 1 - and openTradeStates count = 2 - and businessEvent -> instruction -> primitiveInstruction -> split exists - and beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference = closedTradeStates only-element -> trade -> tradableProduct -> counterparty -> partyReference - and openTradeStates - extract [ - item -> trade -> tradableProduct -> counterparty -> partyReference <> beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference - and item -> trade -> tradeIdentifier <> beforeTradeState -> trade -> tradeIdentifier - and item -> trade -> partyRole -> role contains PartyRoleEnum -> ClearingOrganization - ] - all = True + and closedTradeStates count = 1 + and openTradeStates count = 2 + and businessEvent -> instruction -> primitiveInstruction -> split exists + and beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference = closedTradeStates only-element -> trade -> tradableProduct -> counterparty -> partyReference + and openTradeStates + extract [ + item -> trade -> tradableProduct -> counterparty -> partyReference <> beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference + and item -> trade -> tradeIdentifier <> beforeTradeState -> trade -> tradeIdentifier + and item -> trade -> partyRole -> role contains PartyRoleEnum -> ClearingOrganization + ] all = True func Qualify_OpenOfferClearedTrade: - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias beforeTradeState: businessEvent -> instruction -> before - alias openTradeStates: FilterOpenTradeStates( businessEvent -> after ) - set is_event: + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias beforeTradeState: businessEvent -> instruction -> before + alias openTradeStates: FilterOpenTradeStates(businessEvent -> after) + set is_event: businessEvent -> intent = EventIntentEnum -> Clearing - and businessEvent -> instruction count = 2 - and openTradeStates count = 2 - and (businessEvent -> instruction -> primitiveInstruction -> execution, businessEvent -> instruction -> primitiveInstruction -> contractFormation) only exists - and openTradeStates - extract [ - item -> trade -> tradableProduct -> counterparty -> partyReference <> beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference - and item -> trade -> tradeIdentifier <> beforeTradeState -> trade -> tradeIdentifier - and item -> trade -> partyRole -> role contains PartyRoleEnum -> ClearingOrganization - ] - all = True + and businessEvent -> instruction count = 2 + and openTradeStates count = 2 + and (businessEvent -> instruction -> primitiveInstruction -> execution, businessEvent -> instruction -> primitiveInstruction -> contractFormation) only exists + and openTradeStates + extract [ + item -> trade -> tradableProduct -> counterparty -> partyReference <> beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference + and item -> trade -> tradeIdentifier <> beforeTradeState -> trade -> tradeIdentifier + and item -> trade -> partyRole -> role contains PartyRoleEnum -> ClearingOrganization + ] all = True func Qualify_Compression: <"The qualification of a compression event from the fact that (i) the quantityChange primitive exists, and (ii) there are multiple contracts (or contract references) specified in the before state."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - set is_event: - businessEvent -> instruction -> primitiveInstruction -> execution count = 1 - and businessEvent -> instruction -> primitiveInstruction -> quantityChange count > 1 + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + set is_event: + businessEvent -> instruction -> primitiveInstruction -> execution count = 1 and businessEvent -> instruction -> primitiveInstruction -> quantityChange count > 1 func Qualify_Exercise: <"The qualification of an exercise event from the fact that (i) the only primitive is the exercise, and (ii) the remaining quantity = 0, and (iv) the closedState of the contract is Terminated."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias primitiveInstruction: businessEvent -> instruction -> primitiveInstruction only-element - set is_event: - businessEvent -> intent = EventIntentEnum -> OptionExercise - and - ( - (businessEvent -> instruction count = 1 and - (businessEvent -> instruction -> primitiveInstruction -> quantityChange exists and businessEvent -> instruction -> primitiveInstruction -> transfer exists)) - or - (businessEvent -> instruction count = 2 and - (businessEvent -> instruction -> primitiveInstruction -> quantityChange exists and businessEvent -> instruction -> primitiveInstruction -> execution exists)) - or - (businessEvent -> instruction count = 1 and - businessEvent -> instruction -> primitiveInstruction -> exercise exists) - ) + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias primitiveInstruction: + businessEvent -> instruction -> primitiveInstruction only-element + set is_event: + businessEvent -> intent = EventIntentEnum -> OptionExercise + and ((businessEvent -> instruction count = 1 + and (businessEvent -> instruction -> primitiveInstruction -> quantityChange exists and businessEvent -> instruction -> primitiveInstruction -> transfer exists)) + or (businessEvent -> instruction count = 2 + and (businessEvent -> instruction -> primitiveInstruction -> quantityChange exists and businessEvent -> instruction -> primitiveInstruction -> execution exists)) + or (businessEvent -> instruction count = 1 + and businessEvent -> instruction -> primitiveInstruction -> exercise exists)) func Qualify_Increase: <"The qualification of a increase event from the fact that (i) the intent is Increase when specified, (ii) the associated primitives are the quantityChange and the cash transfer, the (iii) the quantity associated with the contract increases."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias primitiveInstruction: businessEvent -> instruction -> primitiveInstruction only-element - alias transfer: TransfersForDate(businessEvent -> after -> transferHistory -> transfer, businessEvent -> eventDate) - set is_event: - businessEvent -> intent is absent - and - ( - (primitiveInstruction -> quantityChange only exists - or (primitiveInstruction -> quantityChange, primitiveInstruction -> transfer) only exists) - and (QuantityIncreased(businessEvent -> instruction -> before only-element, businessEvent -> after) = True - or businessEvent -> instruction -> before -> trade -> tradableProduct -> tradeLot count < businessEvent -> after -> trade -> tradableProduct -> tradeLot count) - ) + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias primitiveInstruction: + businessEvent -> instruction -> primitiveInstruction only-element + alias transfer: + TransfersForDate( + businessEvent -> after -> transferHistory -> transfer, + businessEvent -> eventDate + ) + set is_event: + businessEvent -> intent is absent + and ((primitiveInstruction -> quantityChange only exists + or (primitiveInstruction -> quantityChange, primitiveInstruction -> transfer) only exists) + and (QuantityIncreased( + businessEvent -> instruction -> before only-element, + businessEvent -> after + ) = True or businessEvent -> instruction -> before -> trade -> tradableProduct -> tradeLot count < businessEvent -> after -> trade -> tradableProduct -> tradeLot count)) func Qualify_Novation: <"The qualification of a novation event from the fact that (i) the intent is Novation when specified, (ii) the primitives quantityChange and a contract formation exist, (iii) the remaining quantity = 0, (iv) the closedState of the contract is Novated, (v) the stepped-in contract has a different contract identifier than the novated contract, (vi) the stepped-in contract has the novation event date and the novation event effective date, and (vii) the contract counterparties have changed."> - [qualification BusinessEvent] - inputs: businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - - alias beforeTradeState: businessEvent -> instruction -> before only-element - alias closedTradeStates: FilterClosedTradeStates( businessEvent -> after ) - alias openTradeStates: FilterOpenTradeStates( businessEvent -> after ) - set is_event: - businessEvent -> intent = EventIntentEnum -> Novation - and closedTradeStates count = 1 - and openTradeStates count = 1 - and businessEvent -> instruction -> primitiveInstruction -> split exists - and beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference = closedTradeStates only-element -> trade -> tradableProduct -> counterparty -> partyReference - and beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference <> openTradeStates only-element -> trade -> tradableProduct -> counterparty -> partyReference - and beforeTradeState -> trade -> tradeIdentifier <> openTradeStates -> trade -> tradeIdentifier - + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias beforeTradeState: businessEvent -> instruction -> before only-element + alias closedTradeStates: FilterClosedTradeStates(businessEvent -> after) + alias openTradeStates: FilterOpenTradeStates(businessEvent -> after) + set is_event: + businessEvent -> intent = EventIntentEnum -> Novation + and closedTradeStates count = 1 + and openTradeStates count = 1 + and businessEvent -> instruction -> primitiveInstruction -> split exists + and beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference = closedTradeStates only-element -> trade -> tradableProduct -> counterparty -> partyReference + and beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference <> openTradeStates only-element -> trade -> tradableProduct -> counterparty -> partyReference + and beforeTradeState -> trade -> tradeIdentifier <> openTradeStates -> trade -> tradeIdentifier func Qualify_PartialNovation: <"The qualification of a novation event from the fact that (i) the intent is Novation when specified, (ii) the primitives quantityChange and contractFormation exist, (iii) the contract quantity/notional has decreased as part of the quantityChange primitive, while (iv) there is a remaining quantity/notional, (v) the stepped-in contract has a different contract identifier than the original contract, (vi) the stepped-in contract has the novation event date and the novation event effective date, and (vii) the contract counterparties have changed."> - [qualification BusinessEvent] - - inputs: businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - - alias beforeTradeState: businessEvent -> instruction -> before only-element - alias closedTradeStates: FilterClosedTradeStates( businessEvent -> after ) - alias openTradeStates: FilterOpenTradeStates( businessEvent -> after ) - set is_event: - - businessEvent -> intent = EventIntentEnum -> Novation - and closedTradeStates count = 0 - and openTradeStates count = 2 - and businessEvent -> instruction -> primitiveInstruction -> split exists - and openTradeStates - extract [ - // before trade counterparties should not match open after trade counterparties, and neither should trade identifiers - ( item -> trade -> tradableProduct -> counterparty -> partyReference <> beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference - and item -> trade -> tradeIdentifier <> beforeTradeState -> trade -> tradeIdentifier ) - or - // before trade counterparties match open after trade counterparties, and match trade identifiers, but with decreased quantity - ( item -> trade -> tradableProduct -> counterparty -> partyReference = beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference - and item -> trade -> tradeIdentifier = beforeTradeState -> trade -> tradeIdentifier - and QuantityDecreased( beforeTradeState, [ item ] ) ) - ] - all = True - - + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias beforeTradeState: businessEvent -> instruction -> before only-element + alias closedTradeStates: FilterClosedTradeStates(businessEvent -> after) + alias openTradeStates: FilterOpenTradeStates(businessEvent -> after) + set is_event: + businessEvent -> intent = EventIntentEnum -> Novation + and closedTradeStates count = 0 + and openTradeStates count = 2 + and businessEvent -> instruction -> primitiveInstruction -> split exists + and openTradeStates + extract [ + // before trade counterparties should not match open after trade counterparties, and neither should trade identifiers + (item -> trade -> tradableProduct -> counterparty -> partyReference <> beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference + and item -> trade -> tradeIdentifier <> beforeTradeState -> trade -> tradeIdentifier) + or // before trade counterparties match open after trade counterparties, and match trade identifiers, but with decreased quantity + (item -> trade -> tradableProduct -> counterparty -> partyReference = beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference + and item -> trade -> tradeIdentifier = beforeTradeState -> trade -> tradeIdentifier + and QuantityDecreased(beforeTradeState, [item])) + ] all = True func Qualify_PartialTermination: <"The qualification of a partial termination event from the fact that (i) the intent is Partial Termination when specified, (ii) the associated primitives are the quantityChange and the cash transfer, the (iii) the quantity associated with the contract decreases, and (iv) there is an actual remaining quantity."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias primitiveInstruction: businessEvent -> instruction -> primitiveInstruction only-element - alias transfers: TransfersForDate( businessEvent -> after -> transferHistory -> transfer, businessEvent -> eventDate ) - set is_event: - businessEvent -> intent is absent - and (primitiveInstruction -> quantityChange only exists + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias primitiveInstruction: + businessEvent -> instruction -> primitiveInstruction only-element + alias transfers: + TransfersForDate( + businessEvent -> after -> transferHistory -> transfer, + businessEvent -> eventDate + ) + set is_event: + businessEvent -> intent is absent + and (primitiveInstruction -> quantityChange only exists or (primitiveInstruction -> quantityChange, primitiveInstruction -> transfer) only exists) - and (QuantityDecreased(businessEvent -> instruction -> before only-element, businessEvent -> after) = True) - and businessEvent -> after -> state -> closedState is absent + and (QuantityDecreased(businessEvent -> instruction -> before only-element, businessEvent -> after) = True) + and businessEvent -> after -> state -> closedState is absent func Qualify_Renegotiation: <"The qualification of a renegotiation event from the fact that (i) the intent is Renegotiation when specified, and (ii) the associated primitives instructions are the TermsChange, QuantityChange and the cash transfer."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias transfers: TransfersForDate( businessEvent -> after -> transferHistory -> transfer, businessEvent -> eventDate ) - set is_event: - (businessEvent -> intent is absent or businessEvent -> intent = EventIntentEnum -> ContractTermsAmendment) - and (businessEvent -> instruction -> primitiveInstruction -> termsChange only exists or (businessEvent -> instruction -> primitiveInstruction -> termsChange,businessEvent -> instruction -> primitiveInstruction -> quantityChange) only exists) - and (QuantityDecreasedToZero(businessEvent -> instruction -> before, businessEvent -> after) = False) - and businessEvent -> after -> state -> closedState is absent + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias transfers: + TransfersForDate( + businessEvent -> after -> transferHistory -> transfer, + businessEvent -> eventDate + ) + set is_event: + (businessEvent -> intent is absent or businessEvent -> intent = EventIntentEnum -> ContractTermsAmendment) + and (businessEvent -> instruction -> primitiveInstruction -> termsChange only exists or (businessEvent -> instruction -> primitiveInstruction -> termsChange, businessEvent -> instruction -> primitiveInstruction -> quantityChange) only exists) + and (QuantityDecreasedToZero(businessEvent -> instruction -> before, businessEvent -> after) = False) + and businessEvent -> after -> state -> closedState is absent func Qualify_Reset: <"The qualification of a reset event from the fact that the only primitive is the reset."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - - alias beforeTradeState: businessEvent -> instruction -> before only-element - alias afterTradeState: businessEvent -> after only-element + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias beforeTradeState: businessEvent -> instruction -> before only-element + alias afterTradeState: businessEvent -> after only-element set is_event: businessEvent -> after count = 1 - and beforeTradeState -> trade = afterTradeState -> trade - and beforeTradeState -> resetHistory count + 1 = afterTradeState -> resetHistory count + and beforeTradeState -> trade = afterTradeState -> trade + and beforeTradeState -> resetHistory count + 1 = afterTradeState -> resetHistory count func Qualify_SecurityTransfer: <"The qualification of a security transfer from the fact that the only component is a securityTransfer."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias transfer: TransfersForDate( businessEvent -> after -> transferHistory -> transfer, businessEvent -> eventDate ) only-element - set is_event: - transfer -> observable -> productIdentifier exists - and transfer -> quantity -> unit -> financialUnit only exists + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias transfer: + TransfersForDate( + businessEvent -> after -> transferHistory -> transfer, + businessEvent -> eventDate + ) + only-element + set is_event: + transfer -> observable -> productIdentifier exists + and transfer -> quantity -> unit -> financialUnit only exists func Qualify_SecuritySettlement: <"The qualification of a security settlement from the fact that (i) it is composed of a cashTransfer component and a securityTransfer component, and (ii) the cash and security move in opposite directions."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias transfers: TransfersForDate( businessEvent -> after -> transferHistory -> transfer, businessEvent -> eventDate ) - set is_event: - transfers -> observable -> productIdentifier only exists - and transfers -> quantity -> unit -> currency only exists - and FilterCashTransfers( transfers ) only-element -> payerReceiver -> payerPartyReference = - FilterSecurityTransfers( transfers ) only-element -> payerReceiver -> receiverPartyReference + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias transfers: + TransfersForDate( + businessEvent -> after -> transferHistory -> transfer, + businessEvent -> eventDate + ) + set is_event: + transfers -> observable -> productIdentifier only exists + and transfers -> quantity -> unit -> currency only exists + and FilterCashTransfers(transfers) only-element -> payerReceiver -> payerPartyReference = FilterSecurityTransfers( + transfers + ) + only-element -> payerReceiver -> receiverPartyReference func Qualify_Termination: <"The qualification of a termination event from the fact that (i) the intent is Termination when specified, (ii) the only primitive is the quantityChange and there is only one such primitive involved, the (iii) the remaining quantity is null, and (iv) the closedState of the contract is Terminated."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias primitiveInstruction: businessEvent -> instruction -> primitiveInstruction only-element - alias transfer: TransfersForDate( businessEvent -> after -> transferHistory -> transfer, businessEvent -> eventDate ) only-element - set is_event: - businessEvent -> intent is absent - and (primitiveInstruction -> quantityChange only exists + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias primitiveInstruction: + businessEvent -> instruction -> primitiveInstruction only-element + alias transfer: + TransfersForDate( + businessEvent -> after -> transferHistory -> transfer, + businessEvent -> eventDate + ) + only-element + set is_event: + businessEvent -> intent is absent + and (primitiveInstruction -> quantityChange only exists or (primitiveInstruction -> quantityChange, primitiveInstruction -> transfer) only exists) - and (QuantityDecreasedToZero(businessEvent -> instruction -> before, businessEvent -> after) = True) - and (businessEvent -> after -> state -> closedState -> state all = ClosedStateEnum -> Terminated) + and (QuantityDecreasedToZero(businessEvent -> instruction -> before, businessEvent -> after) = True) + and (businessEvent -> after -> state -> closedState -> state all = ClosedStateEnum -> Terminated) func Qualify_Execution: <"The qualification of an execution event from the fact that the only component is an execution."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias primitiveInstruction: businessEvent -> instruction -> primitiveInstruction only-element - set is_event: - (primitiveInstruction -> execution only exists - or (primitiveInstruction -> execution, primitiveInstruction -> transfer) only exists) + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias primitiveInstruction: + businessEvent -> instruction -> primitiveInstruction only-element + set is_event: + (primitiveInstruction -> execution only exists + or (primitiveInstruction -> execution, primitiveInstruction -> transfer) only exists) func Qualify_ContractFormation: <"Qualifies a business event as a contract formation from the fact that the only component is a single Contract Formation Primitive."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias primitiveInstruction: businessEvent -> instruction -> primitiveInstruction only-element + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias primitiveInstruction: + businessEvent -> instruction -> primitiveInstruction only-element set is_event: - (primitiveInstruction -> contractFormation only exists - or (primitiveInstruction -> execution, primitiveInstruction -> contractFormation) only exists) - or (primitiveInstruction is absent and businessEvent -> intent = EventIntentEnum -> ContractFormation) - // and businessEvent -> tradeWarehouseWorkflow is absent + (primitiveInstruction -> contractFormation only exists + or (primitiveInstruction -> execution, primitiveInstruction -> contractFormation) only exists) + or (primitiveInstruction is absent and businessEvent -> intent = EventIntentEnum -> ContractFormation) +// and businessEvent -> tradeWarehouseWorkflow is absent func Qualify_StockSplit: <"The qualification of StockSplit business event based on (i) an unchanged before/after currency amount (ii) the same adjustment ratio applied to the before/after cash price and number of units."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - - alias beforeTradeState: - businessEvent -> instruction -> before only-element - - alias afterTradeState: - businessEvent -> after only-element - - alias beforeQuantities: - beforeTradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> quantity - - alias beforeNoOfUnits: - FilterQuantityByFinancialUnit( beforeQuantities, FinancialUnitEnum -> Share ) only-element -> value - - alias afterQuantities: - afterTradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> quantity - - alias afterNoOfUnits: - FilterQuantityByFinancialUnit( afterQuantities, FinancialUnitEnum -> Share ) only-element -> value - - alias beforeCurrencyAmount: - FilterQuantityByCurrencyExists( beforeQuantities ) -> value distinct only-element - - alias afterCurrencyAmount: - FilterQuantityByCurrencyExists( afterQuantities ) -> value distinct only-element - - alias beforePrice: <"Only works in the case of a single trade lot and price."> - beforeTradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> price - filter perUnitOf -> financialUnit = FinancialUnitEnum -> Share - then extract value - then only-element - - alias afterPrice: <"Only works in the case of a single trade lot and price."> - afterTradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> price - filter perUnitOf -> financialUnit = FinancialUnitEnum -> Share - then extract value - then only-element - - alias currencyAmountUnchanged: - if beforeCurrencyAmount exists and afterCurrencyAmount exists then - beforeCurrencyAmount = afterCurrencyAmount - else False - - alias noOfUnitsChanged: - if beforeNoOfUnits exists and afterNoOfUnits exists then - afterNoOfUnits <> beforeNoOfUnits - else False - - alias cashPriceChanged: - if beforePrice exists and afterPrice exists then - beforePrice <> afterPrice - else False - - alias adjustmentRatioMatches: - if beforeNoOfUnits exists and beforeNoOfUnits > 0 and afterNoOfUnits exists - and beforePrice exists and afterPrice exists and afterPrice > 0 then - afterNoOfUnits / beforeNoOfUnits = beforePrice / afterPrice - else False - - set is_event: - currencyAmountUnchanged = True - and noOfUnitsChanged = True - and cashPriceChanged = True - and adjustmentRatioMatches = True + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias beforeTradeState: businessEvent -> instruction -> before only-element + + alias afterTradeState: businessEvent -> after only-element + + alias beforeQuantities: + beforeTradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> quantity + + alias beforeNoOfUnits: + FilterQuantityByFinancialUnit(beforeQuantities, FinancialUnitEnum -> Share) + only-element -> value + + alias afterQuantities: + afterTradeState -> trade -> tradableProduct -> tradeLot -> priceQuantity -> quantity + + alias afterNoOfUnits: + FilterQuantityByFinancialUnit(afterQuantities, FinancialUnitEnum -> Share) + only-element -> value + + alias beforeCurrencyAmount: + FilterQuantityByCurrencyExists(beforeQuantities) -> value distinct only-element + + alias afterCurrencyAmount: + FilterQuantityByCurrencyExists(afterQuantities) -> value distinct only-element + + alias beforePrice: <"Only works in the case of a single trade lot and price."> + beforeTradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> price + filter perUnitOf -> financialUnit = FinancialUnitEnum -> Share + then extract value + then only-element + + alias afterPrice: <"Only works in the case of a single trade lot and price."> + afterTradeState -> trade -> tradableProduct -> tradeLot only-element -> priceQuantity -> price + filter perUnitOf -> financialUnit = FinancialUnitEnum -> Share + then extract value + then only-element + + alias currencyAmountUnchanged: + if beforeCurrencyAmount exists and afterCurrencyAmount exists + then beforeCurrencyAmount = afterCurrencyAmount + else False + + alias noOfUnitsChanged: + if beforeNoOfUnits exists and afterNoOfUnits exists + then afterNoOfUnits <> beforeNoOfUnits + else False + + alias cashPriceChanged: + if beforePrice exists and afterPrice exists + then beforePrice <> afterPrice + else False + + alias adjustmentRatioMatches: + if beforeNoOfUnits exists + and beforeNoOfUnits > 0 + and afterNoOfUnits exists + and beforePrice exists + and afterPrice exists and afterPrice > 0 + then afterNoOfUnits / beforeNoOfUnits = beforePrice / afterPrice + else False + + set is_event: + currencyAmountUnchanged = True + and noOfUnitsChanged = True + and cashPriceChanged = True + and adjustmentRatioMatches = True func Qualify_IndexTransition: <"The qualification of an index transition event based on (i) adjustment spread applied and (ii) floating rate index changed."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: - is_event boolean (1..1) - - alias after: - businessEvent -> after only-element -> trade -> tradableProduct - - alias before: - businessEvent -> instruction -> before -> trade -> tradableProduct - - alias floatingRateIndexChanged: - before -> tradeLot -> priceQuantity -> observable -> rateOption -> floatingRateIndex exists - and before -> tradeLot -> priceQuantity -> observable -> rateOption -> floatingRateIndex disjoint after -> tradeLot -> priceQuantity -> observable -> rateOption -> floatingRateIndex - - alias spread: - FilterPrice( - after -> tradeLot -> priceQuantity -> price, - PriceTypeEnum -> InterestRate, - [ ArithmeticOperationEnum -> Add, ArithmeticOperationEnum -> Subtract ], - empty - ) - - alias adjustmentSpreadAdded: - if spread exists - then spread -> value <> 0 - else True - - set is_event: - businessEvent -> intent = EventIntentEnum -> IndexTransition - and floatingRateIndexChanged = True - and adjustmentSpreadAdded = True + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias after: businessEvent -> after only-element -> trade -> tradableProduct + + alias before: businessEvent -> instruction -> before -> trade -> tradableProduct + + alias floatingRateIndexChanged: + before -> tradeLot -> priceQuantity -> observable -> rateOption -> floatingRateIndex exists + and before -> tradeLot -> priceQuantity -> observable -> rateOption -> floatingRateIndex disjoint after -> tradeLot -> priceQuantity -> observable -> rateOption -> floatingRateIndex + + alias spread: + FilterPrice( + after -> tradeLot -> priceQuantity -> price, + PriceTypeEnum -> InterestRate, + [ArithmeticOperationEnum -> Add, ArithmeticOperationEnum -> Subtract], + empty + ) + + alias adjustmentSpreadAdded: + if spread exists then spread -> value <> 0 else True + + set is_event: + businessEvent -> intent = EventIntentEnum -> IndexTransition + and floatingRateIndexChanged = True + and adjustmentSpreadAdded = True func Qualify_FullReturn: <"The qualification of a full return event from the fact that (i) a quantityChange primitive and a transfer primitive exists, (ii) an assetPayout exists, (iii) the remaining quantity = 0, and (iv) the closedState of the contract is Terminated."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - alias transfer: TransfersForDate( businessEvent -> after -> transferHistory -> transfer, businessEvent -> eventDate ) only-element - set is_event: - (businessEvent -> intent is absent) - and businessEvent -> after -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout exists - and (businessEvent -> instruction count = 1 - and businessEvent -> instruction -> primitiveInstruction -> quantityChange exists - or (businessEvent -> instruction -> primitiveInstruction -> quantityChange exists and transfer exists)) - and QuantityDecreasedToZero(businessEvent -> instruction -> before, businessEvent -> after) = True - and businessEvent -> after -> state -> closedState -> state all = ClosedStateEnum -> Terminated + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + alias transfer: + TransfersForDate( + businessEvent -> after -> transferHistory -> transfer, + businessEvent -> eventDate + ) + only-element + set is_event: + (businessEvent -> intent is absent) + and businessEvent -> after -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout exists + and (businessEvent -> instruction count = 1 + and businessEvent -> instruction -> primitiveInstruction -> quantityChange exists + or (businessEvent -> instruction -> primitiveInstruction -> quantityChange exists and transfer exists)) + and QuantityDecreasedToZero( + businessEvent -> instruction -> before, + businessEvent -> after + ) = True + and businessEvent -> after -> state -> closedState -> state all = ClosedStateEnum -> Terminated func Qualify_Reallocation: <"The qualification of a reallocation event from the fact that (i) a quantity change primitive exists, (ii) a split primitive exists, and (iii) the intent is Reallocation."> - [qualification BusinessEvent] - inputs: - businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - - alias beforeTradeState: businessEvent -> instruction -> before only-element - alias closedTradeStates: FilterClosedTradeStates( businessEvent -> after ) - alias openTradeStates: FilterOpenTradeStates( businessEvent -> after ) - set is_event: + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + + alias beforeTradeState: businessEvent -> instruction -> before only-element + alias closedTradeStates: FilterClosedTradeStates(businessEvent -> after) + alias openTradeStates: FilterOpenTradeStates(businessEvent -> after) + set is_event: businessEvent -> intent = EventIntentEnum -> Reallocation - and closedTradeStates count = 0 - and openTradeStates count = 2 - and businessEvent -> instruction -> primitiveInstruction -> split exists - and openTradeStates - extract [ - // before trade counterparties should not match open after trade counterparties, and neither should trade identifiers - ( item -> trade -> tradableProduct -> counterparty -> partyReference <> beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference - and item -> trade -> tradeIdentifier <> beforeTradeState -> trade -> tradeIdentifier ) - or - // before trade counterparties match open after trade counterparties, and match trade identifiers, but with decreased quantity - ( item -> trade -> tradableProduct -> counterparty -> partyReference = beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference - and item -> trade -> tradeIdentifier = beforeTradeState -> trade -> tradeIdentifier - and QuantityDecreased( beforeTradeState, [ item ] ) ) - ] - all = True + and closedTradeStates count = 0 + and openTradeStates count = 2 + and businessEvent -> instruction -> primitiveInstruction -> split exists + and openTradeStates + extract [ + // before trade counterparties should not match open after trade counterparties, and neither should trade identifiers + (item -> trade -> tradableProduct -> counterparty -> partyReference <> beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference + and item -> trade -> tradeIdentifier <> beforeTradeState -> trade -> tradeIdentifier) + or // before trade counterparties match open after trade counterparties, and match trade identifiers, but with decreased quantity + (item -> trade -> tradableProduct -> counterparty -> partyReference = beforeTradeState -> trade -> tradableProduct -> counterparty -> partyReference + and item -> trade -> tradeIdentifier = beforeTradeState -> trade -> tradeIdentifier + and QuantityDecreased(beforeTradeState, [item])) + ] all = True func Qualify_CreditEventDetermined: <"The qualification of the ocurrence of a credit event determination from the fact that a credit event is present in either the observation or observation history structures."> - [qualification BusinessEvent] - inputs: businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - set is_event: - businessEvent -> instruction -> primitiveInstruction -> observation -> observationEvent -> creditEvent exists - or - businessEvent -> instruction -> before -> observationHistory -> creditEvent exists - or - businessEvent -> after -> observationHistory -> creditEvent exists + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + set is_event: + businessEvent -> instruction -> primitiveInstruction -> observation -> observationEvent -> creditEvent exists + or businessEvent -> instruction -> before -> observationHistory -> creditEvent exists + or businessEvent -> after -> observationHistory -> creditEvent exists func Qualify_CorporateActionDetermined: <"The qualification of the ocurrence of a corporate action form the fact that a corporate action is present in either the observation or the observation history structures."> - [qualification BusinessEvent] - inputs: businessEvent BusinessEvent (1..1) - output: is_event boolean (1..1) - set is_event: - businessEvent -> instruction -> primitiveInstruction -> observation -> observationEvent -> corporateAction exists - or - businessEvent -> instruction -> before -> observationHistory -> corporateAction exists - or - businessEvent -> after -> observationHistory -> corporateAction exists + [qualification BusinessEvent] + inputs: + businessEvent BusinessEvent (1..1) + output: + is_event boolean (1..1) + set is_event: + businessEvent -> instruction -> primitiveInstruction -> observation -> observationEvent -> corporateAction exists + or businessEvent -> instruction -> before -> observationHistory -> corporateAction exists + or businessEvent -> after -> observationHistory -> corporateAction exists diff --git a/rosetta-source/src/main/rosetta/event-workflow-enum.rosetta b/rosetta-source/src/main/rosetta/event-workflow-enum.rosetta index df48c23c58..01c40418f6 100644 --- a/rosetta-source/src/main/rosetta/event-workflow-enum.rosetta +++ b/rosetta-source/src/main/rosetta/event-workflow-enum.rosetta @@ -2,47 +2,47 @@ namespace cdm.event.workflow : <"Workflow concepts (orthogonal to business event version "${project.version}" enum CreditLimitTypeEnum: <"The enumeration values to qualify the type of credit limits."> - CS01 <"The type of credit line expressed in CS01. The sensitivity with respect to changes in the CDS spread."> - DV01 <"The type of credit line expressed in DV01. The dollar value of a one basis point decrease in interest rates. It shows the change in a bond's price compared to a decrease in the bond's yield."> - IM < "The type of credit line expressed in Initial Margin value." > - Notional <"The type of credit line expressed in Notional amount."> - NPV <"The type of credit line expressed as a Net Present Value."> - PV01 <"The type of credit line expressed in PV01. The value of a one dollar or one basis point annuity."> + CS01 <"The type of credit line expressed in CS01. The sensitivity with respect to changes in the CDS spread."> + DV01 <"The type of credit line expressed in DV01. The dollar value of a one basis point decrease in interest rates. It shows the change in a bond's price compared to a decrease in the bond's yield."> + IM <"The type of credit line expressed in Initial Margin value."> + Notional <"The type of credit line expressed in Notional amount."> + NPV <"The type of credit line expressed as a Net Present Value."> + PV01 <"The type of credit line expressed in PV01. The value of a one dollar or one basis point annuity."> enum EventTimestampQualificationEnum: <"The enumeration values to qualify the timestamps that can be associated with a lifecycle event. The reason for such approach is that the experience of integrating the DTCC and CME data representations suggests that a wide set of timestamps are currently utilized among service providers, while there is not at present an objective set of criteria that could help suggest a defined set of timestamps as part of the CDM. Implementers are expected to evaluate the current enumeration values to determine whether those meet their requirements. If not, they are expected to engage with the CDM team to evaluate the addition of further value(s) to this enumeration, which will then participate to the development of a compendium for further evaluation at a later point in order to determine whether this modeling is appropriate."> - clearingDateTime <"The date and time on the trade was cleared."> - clearingConfirmationDateTime <"The date and time on which trade was confirmed as cleared."> + clearingDateTime <"The date and time on the trade was cleared."> + clearingConfirmationDateTime <"The date and time on which trade was confirmed as cleared."> clearingReceiptDateTime <"The date and time on which trade was received by Clearing Body."> - clearingSubmissionDateTime <"The date and time on which the event was submitted for clearing."> - confirmationDateTime <"The date and time on which the event was confirmed."> - eventCreationDateTime <"The date and time on which the event was created."> - eventExpirationDateTime <"The date and time on which the event will be considered expired."> - eventProcessingDateTime <"The date and time on which the event was processed."> - eventSentDateTime <"The date and time on which the event was sent."> - eventSubmittedDateTime <"The date and time on which the event was submitted."> - executionDateTime <"The date and time on which the trade execution was performed."> - transactionCreationDateTime <"The date and time on which the transaction has been created. This timestamp is specified as such by the CME ClearPort Matched IRS Trade submission API specification: 'The transaction date time of the trade. Represents the date & time on which the trade was initially generated either by CME Clearing or firm. The transaction date time may be assigned by CME Clearing at the point the trade is reported as cleared. Transaction date time can also be provided by an external submitter of the trade at the point the trade is submitted.'"> + clearingSubmissionDateTime <"The date and time on which the event was submitted for clearing."> + confirmationDateTime <"The date and time on which the event was confirmed."> + eventCreationDateTime <"The date and time on which the event was created."> + eventExpirationDateTime <"The date and time on which the event will be considered expired."> + eventProcessingDateTime <"The date and time on which the event was processed."> + eventSentDateTime <"The date and time on which the event was sent."> + eventSubmittedDateTime <"The date and time on which the event was submitted."> + executionDateTime <"The date and time on which the trade execution was performed."> + transactionCreationDateTime <"The date and time on which the transaction has been created. This timestamp is specified as such by the CME ClearPort Matched IRS Trade submission API specification: 'The transaction date time of the trade. Represents the date & time on which the trade was initially generated either by CME Clearing or firm. The transaction date time may be assigned by CME Clearing at the point the trade is reported as cleared. Transaction date time can also be provided by an external submitter of the trade at the point the trade is submitted.'"> enum LimitLevelEnum: <"The enumeration values to specify the level at which the limit is set: customer business, proprietary business or account level. This is part of the CME specification for clearing credit limits, although not specified as a set of enumerated values as part of the clearing confirmation specification."> - Account <"The limit is set in relation to the proprietary business undertaken by the clearing counterparty."> - Customer <"The limit is set in relation to the customer business undertaken by the clearing counterparty."> - House <"The limit is set at the account level in relation to the clearing counterparty."> + Account <"The limit is set in relation to the proprietary business undertaken by the clearing counterparty."> + Customer <"The limit is set in relation to the customer business undertaken by the clearing counterparty."> + House <"The limit is set at the account level in relation to the clearing counterparty."> enum WarehouseIdentityEnum: - DTCC_TIW_Gold <"The DTCC Trade Information Warehouse Gold service"> + DTCC_TIW_Gold <"The DTCC Trade Information Warehouse Gold service"> enum WorkflowStatusEnum: - Accepted - Alleged - Amended - Cancelled - Certain - Cleared - Pending - Rejected - Submitted - Terminated - Uncertain - Unconfirmed - Affirmed - Confirmed + Accepted + Alleged + Amended + Cancelled + Certain + Cleared + Pending + Rejected + Submitted + Terminated + Uncertain + Unconfirmed + Affirmed + Confirmed diff --git a/rosetta-source/src/main/rosetta/event-workflow-func.rosetta b/rosetta-source/src/main/rosetta/event-workflow-func.rosetta index e62576ab25..9a33b657a2 100644 --- a/rosetta-source/src/main/rosetta/event-workflow-func.rosetta +++ b/rosetta-source/src/main/rosetta/event-workflow-func.rosetta @@ -10,218 +10,218 @@ annotation creation: <"Annotation to describe the intent of a function"> [prefix Create] BusinessEvent BusinessEvent (0..1) <"A business event function should take as its inputs the after state of previous business event or in case where the is no before state, all of the inputs required to produce the outcome BusinessEvent."> - WorkflowStep WorkflowStep (0..1) <"Create a proposed, accepted or rejected WorkflowStep with details about the message, identifiers, event timestamps, parties and accounts involved in the step and allow the action to be set to New, Correct or Cancel."> + WorkflowStep WorkflowStep (0..1) <"Create a proposed, accepted or rejected WorkflowStep with details about the message, identifiers, event timestamps, parties and accounts involved in the step and allow the action to be set to New, Correct or Cancel."> func Create_WorkflowStep: <"Function to create a workflow step with a business event and associated details about the message, identifiers, event timestamps, parties and accounts involved in the step. The function should be used when there is already a fully formed business event with the action set to signify that the step is new, or a correction/cancellation of a previous step. The action is constrained so that when a previous workflow step is specified, the valid actions are as follows; New -> New, New -> Correct, New -> Cancel, Correct -> Correct and Correct -> Cancel. When a previous workflow is not specified, the action must be New."> - [creation WorkflowStep] - inputs: - messageInformation MessageInformation (0..1) <"Contains all information pertaining the messaging header."> - timestamp EventTimestamp (1..*) <"The dateTime and qualifier associated with this event."> - eventIdentifier Identifier (1..*) <"The identifiers that uniquely identify this lifecycle event."> - party Party (0..*) <"The specification of the parties involved in the WorkflowStep."> - account Account (0..*) <"Optional account information that could be associated to the event."> - previousWorkflowStep WorkflowStep (0..1) <"Optional previous WorkflowStep that provides lineage to WorkflowStep that precedes it. If specified, the previous action is used to constrain the actions allows to the resulting workflow step."> - action ActionEnum (1..1) <"Specifies whether the event is a new, a correction or a cancellation. When a previous workflow step is specified, the allowed actions are as follows; New -> New, New -> Correct, New -> Cancel, Correct -> Correct and Correct -> Cancel. When a previous workflow is not specified, the action must be New. Two consecutive workflow steps with action New, is valid when you have multiple steps e.g. new execution -> new contract formation"> - businessEvent BusinessEvent (0..1) <"Life cycle event for the step. The business event must be specified if the action is new or corrected, and must be absent in the case of a cancel where the previous step would provide the lineage to the business event."> + [creation WorkflowStep] + inputs: + messageInformation MessageInformation (0..1) <"Contains all information pertaining the messaging header."> + timestamp EventTimestamp (1..*) <"The dateTime and qualifier associated with this event."> + eventIdentifier Identifier (1..*) <"The identifiers that uniquely identify this lifecycle event."> + party Party (0..*) <"The specification of the parties involved in the WorkflowStep."> + account Account (0..*) <"Optional account information that could be associated to the event."> + previousWorkflowStep WorkflowStep (0..1) <"Optional previous WorkflowStep that provides lineage to WorkflowStep that precedes it. If specified, the previous action is used to constrain the actions allows to the resulting workflow step."> + action ActionEnum (1..1) <"Specifies whether the event is a new, a correction or a cancellation. When a previous workflow step is specified, the allowed actions are as follows; New -> New, New -> Correct, New -> Cancel, Correct -> Correct and Correct -> Cancel. When a previous workflow is not specified, the action must be New. Two consecutive workflow steps with action New, is valid when you have multiple steps e.g. new execution -> new contract formation"> + businessEvent BusinessEvent (0..1) <"Life cycle event for the step. The business event must be specified if the action is new or corrected, and must be absent in the case of a cancel where the previous step would provide the lineage to the business event."> + output: + workflowStep WorkflowStep (1..1) <"Workflow step with a business event (in the event of action being new or correct) and associated details about the message, identifiers, event timestamps, parties and accounts involved in the step."> - output: - workflowStep WorkflowStep (1..1) <"Workflow step with a business event (in the event of action being new or correct) and associated details about the message, identifiers, event timestamps, parties and accounts involved in the step."> + condition PreviousBusinessEventExists: <"The previous workflow step must contain a business event. Use Create_AcceptedWorkflowStep when the previous workflow step is a proposal."> + if previousWorkflowStep exists + then previousWorkflowStep -> businessEvent exists - condition PreviousBusinessEventExists: <"The previous workflow step must contain a business event. Use Create_AcceptedWorkflowStep when the previous workflow step is a proposal."> - if previousWorkflowStep exists - then previousWorkflowStep -> businessEvent exists + condition ActionEnumChange: <"Valid action transitions are: New -> New, New -> Correct, New -> Cancel, Correct -> New, Correct -> Correct and Correct -> Cancel"> + if (previousWorkflowStep -> action = ActionEnum -> New or previousWorkflowStep -> action = ActionEnum -> Correct) + then (action = ActionEnum -> New or action = ActionEnum -> Correct or action = ActionEnum -> Cancel) - condition ActionEnumChange: <"Valid action transitions are: New -> New, New -> Correct, New -> Cancel, Correct -> New, Correct -> Correct and Correct -> Cancel"> - if (previousWorkflowStep -> action = ActionEnum -> New or previousWorkflowStep -> action = ActionEnum -> Correct) - then (action = ActionEnum -> New or action = ActionEnum -> Correct or action = ActionEnum -> Cancel) + condition CancelledPreviousStep: <"You cannot create a business event on a cancelled previous step"> + previousWorkflowStep -> action <> ActionEnum -> Cancel - condition CancelledPreviousStep: <"You cannot create a business event on a cancelled previous step"> - previousWorkflowStep -> action <> ActionEnum -> Cancel - - condition NewAction: <"Action must be New if there is no previous step"> - if (previousWorkflowStep is absent or previousWorkflowStep -> action is absent) - then (action = ActionEnum -> New) + condition NewAction: <"Action must be New if there is no previous step"> + if (previousWorkflowStep is absent or previousWorkflowStep -> action is absent) + then (action = ActionEnum -> New) - set workflowStep -> action: <"Assign the workflowStep action."> - action + set workflowStep -> action: <"Assign the workflowStep action."> + action - set workflowStep -> messageInformation: <"Assign the workflowStep action."> - messageInformation + set workflowStep -> messageInformation: <"Assign the workflowStep action."> + messageInformation - add workflowStep -> timestamp: <"Assign the dateTime and qualifier associated with this event."> - timestamp + add workflowStep -> timestamp: <"Assign the dateTime and qualifier associated with this event."> + timestamp - add workflowStep -> eventIdentifier: <"Assign the identifiers that uniquely identify this lifecycle event."> - eventIdentifier + add workflowStep -> eventIdentifier: <"Assign the identifiers that uniquely identify this lifecycle event."> + eventIdentifier - add workflowStep -> party: <"Assign the parties involved in the WorkflowStep."> - party + add workflowStep -> party: <"Assign the parties involved in the WorkflowStep."> + party - add workflowStep -> account: <"Assign the account information that could be associated to the event."> - account + add workflowStep -> account: <"Assign the account information that could be associated to the event."> + account - set workflowStep -> previousWorkflowStep: <"Assign the key of the previous step to resulting step providing lineage."> - if previousWorkflowStep exists then previousWorkflowStep as-key + set workflowStep -> previousWorkflowStep: <"Assign the key of the previous step to resulting step providing lineage."> + if previousWorkflowStep exists then previousWorkflowStep as-key - set workflowStep -> businessEvent: <"Assign the business event corresponding to the workflow step."> - businessEvent + set workflowStep -> businessEvent: <"Assign the business event corresponding to the workflow step."> + businessEvent func Create_AcceptedWorkflowStep: <"Represents the acceptance of a proposed instruction that results in a workflow step containing a business event, message details, identifiers, event timestamps, parties and accounts. The previous workflow step input must exist to provide workflow lineage. The instruction from the previous workflow step should be used with a [creation BusinessEvent] function to create the input business event passed into this function e.g. PartyChangeInstruction from the previous step is used with Create_PartyChange to produce the business event which should used as an input to this step."> - [creation WorkflowStep] - inputs: - messageInformation MessageInformation (0..1) <"Contains all information pertaining the messaging header."> - timestamp EventTimestamp (1..*) <"The dateTime and qualifier associated with this event."> - eventIdentifier Identifier (1..*) <"The identifiers that uniquely identify this lifecycle event."> - party Party (0..*) <"The specification of the parties involved in the WorkflowStep."> - account Account (0..*) <"Optional account information that could be associated to the event."> - proposedWorkflowStep WorkflowStep (1..1) <"Required previous WorkflowStep that provides lineage to WorkflowStep that precedes it."> - businessEvent BusinessEvent (1..1) <"Life cycle event for the step"> + [creation WorkflowStep] + inputs: + messageInformation MessageInformation (0..1) <"Contains all information pertaining the messaging header."> + timestamp EventTimestamp (1..*) <"The dateTime and qualifier associated with this event."> + eventIdentifier Identifier (1..*) <"The identifiers that uniquely identify this lifecycle event."> + party Party (0..*) <"The specification of the parties involved in the WorkflowStep."> + account Account (0..*) <"Optional account information that could be associated to the event."> + proposedWorkflowStep WorkflowStep (1..1) <"Required previous WorkflowStep that provides lineage to WorkflowStep that precedes it."> + businessEvent BusinessEvent (1..1) <"Life cycle event for the step"> + output: + acceptedWorkflowStep WorkflowStep (1..1) <"Accepted WorkflowStep populated with the business event and associated details about the message, identifiers, event timestamps, parties and accounts involved in the step."> - output: - acceptedWorkflowStep WorkflowStep (1..1) <"Accepted WorkflowStep populated with the business event and associated details about the message, identifiers, event timestamps, parties and accounts involved in the step."> + condition ProposedEventExists: <"The previous step being accepted must be a proposed step containing an instruction."> + proposedWorkflowStep -> proposedEvent exists - condition ProposedEventExists: <"The previous step being accepted must be a proposed step containing an instruction."> - proposedWorkflowStep -> proposedEvent exists + condition CancelledProposedStep: <"You cannot accept a business event on a cancelled previous step."> + proposedWorkflowStep -> action <> ActionEnum -> Cancel - condition CancelledProposedStep: <"You cannot accept a business event on a cancelled previous step."> - proposedWorkflowStep -> action <> ActionEnum -> Cancel + condition RejectedProposedStep: <"The previous step cannot be rejected."> + proposedWorkflowStep -> rejected <> True - condition RejectedProposedStep: <"The previous step cannot be rejected."> - proposedWorkflowStep -> rejected <> True + set acceptedWorkflowStep -> messageInformation: <"Assign the workflowStep action."> + messageInformation - set acceptedWorkflowStep -> messageInformation: <"Assign the workflowStep action."> - messageInformation + add acceptedWorkflowStep -> timestamp: <"Assign the dateTime and qualifier associated with this event."> + timestamp - add acceptedWorkflowStep -> timestamp: <"Assign the dateTime and qualifier associated with this event."> - timestamp + add acceptedWorkflowStep -> eventIdentifier: <"Assign the identifiers that uniquely identify this lifecycle event."> + eventIdentifier - add acceptedWorkflowStep -> eventIdentifier: <"Assign the identifiers that uniquely identify this lifecycle event."> - eventIdentifier + add acceptedWorkflowStep -> party: <"Assign the parties involved in the WorkflowStep."> + party - add acceptedWorkflowStep -> party: <"Assign the parties involved in the WorkflowStep."> - party + add acceptedWorkflowStep -> account: <"Assign the account information that could be associated to the event."> + account - add acceptedWorkflowStep -> account: <"Assign the account information that could be associated to the event."> - account + set acceptedWorkflowStep -> previousWorkflowStep: <"Set the reference to the previous WorkflowStep to provide lineage"> + proposedWorkflowStep as-key - set acceptedWorkflowStep -> previousWorkflowStep: <"Set the reference to the previous WorkflowStep to provide lineage"> - proposedWorkflowStep as-key - - set acceptedWorkflowStep -> businessEvent: <"Assign the business event corresponding to the workflow step."> - businessEvent + set acceptedWorkflowStep -> businessEvent: <"Assign the business event corresponding to the workflow step."> + businessEvent func Create_AcceptedWorkflowStepFromInstruction: <"Represents the acceptance of a proposed instruction that results in a workflow step containing a business event, message details, identifiers, event timestamps, parties and accounts. The previous workflow step input must exist to provide workflow lineage. The instruction from the previous workflow step should be used with a [creation BusinessEvent] function to create the input business event passed into this function e.g. PartyChangeInstruction from the previous step is used with Create_PartyChange to produce the business event which should used as an input to this step."> - [creation WorkflowStep] - inputs: - proposedWorkflowStep WorkflowStep (1..1) <"WorkflowStep as instruction."> - output: - acceptedWorkflowStep WorkflowStep (1..1) <"Accepted WorkflowStep populated with the business event and associated details about the message, identifiers, event timestamps, parties and accounts involved in the step."> + [creation WorkflowStep] + inputs: + proposedWorkflowStep WorkflowStep (1..1) <"WorkflowStep as instruction."> + output: + acceptedWorkflowStep WorkflowStep (1..1) <"Accepted WorkflowStep populated with the business event and associated details about the message, identifiers, event timestamps, parties and accounts involved in the step."> - condition ProposedEventExists: <"The previous step being accepted must be a proposed step containing an instruction."> - proposedWorkflowStep -> proposedEvent exists + condition ProposedEventExists: <"The previous step being accepted must be a proposed step containing an instruction."> + proposedWorkflowStep -> proposedEvent exists - condition CancelledProposedStep: <"You cannot accept a business event on a cancelled previous step."> - proposedWorkflowStep -> action <> ActionEnum -> Cancel + condition CancelledProposedStep: <"You cannot accept a business event on a cancelled previous step."> + proposedWorkflowStep -> action <> ActionEnum -> Cancel - condition RejectedProposedStep: <"The previous step cannot be rejected."> - proposedWorkflowStep -> rejected <> True + condition RejectedProposedStep: <"The previous step cannot be rejected."> + proposedWorkflowStep -> rejected <> True set acceptedWorkflowStep -> action: proposedWorkflowStep -> action - set acceptedWorkflowStep -> messageInformation: proposedWorkflowStep -> messageInformation - add acceptedWorkflowStep -> timestamp: proposedWorkflowStep -> timestamp - add acceptedWorkflowStep -> eventIdentifier: proposedWorkflowStep -> eventIdentifier - set acceptedWorkflowStep -> previousWorkflowStep: proposedWorkflowStep as-key + set acceptedWorkflowStep -> messageInformation: + proposedWorkflowStep -> messageInformation + add acceptedWorkflowStep -> timestamp: proposedWorkflowStep -> timestamp + add acceptedWorkflowStep -> eventIdentifier: proposedWorkflowStep -> eventIdentifier + set acceptedWorkflowStep -> previousWorkflowStep: proposedWorkflowStep as-key set acceptedWorkflowStep -> nextEvent: proposedWorkflowStep -> nextEvent - set acceptedWorkflowStep -> businessEvent: <"Assign the business event corresponding to the workflow step."> - Create_BusinessEvent( - proposedWorkflowStep -> proposedEvent -> instruction, - proposedWorkflowStep -> proposedEvent -> intent, - proposedWorkflowStep -> proposedEvent -> eventDate, - proposedWorkflowStep -> proposedEvent -> effectiveDate ) + set acceptedWorkflowStep -> businessEvent: <"Assign the business event corresponding to the workflow step."> + Create_BusinessEvent( + proposedWorkflowStep -> proposedEvent -> instruction, + proposedWorkflowStep -> proposedEvent -> intent, + proposedWorkflowStep -> proposedEvent -> eventDate, + proposedWorkflowStep -> proposedEvent -> effectiveDate + ) - add acceptedWorkflowStep -> party: acceptedWorkflowStep -> businessEvent -> after -> trade -> party distinct - add acceptedWorkflowStep -> account: acceptedWorkflowStep -> businessEvent -> after -> trade -> account distinct + add acceptedWorkflowStep -> party: + acceptedWorkflowStep -> businessEvent -> after -> trade -> party distinct + add acceptedWorkflowStep -> account: + acceptedWorkflowStep -> businessEvent -> after -> trade -> account distinct func Create_ProposedWorkflowStep: <"Represents the proposal to create a business event that results in a workflow step containing an instruction, message details, identifiers, event timestamps, parties and accounts. The optional previous workflow step input provides workflow lineage to where there has been a correction or cancellation to the proposed step. The action is constrained so that when a previous workflow step is specified, the valid actions are as follows; New -> Correct and Correct -> Cancel. When a previous workflow is not specified, the action must be New."> - [creation WorkflowStep] - inputs: - messageInformation MessageInformation (0..1) <"Contains all information pertaining the messaging header"> - timestamp EventTimestamp (1..*) <"The dateTime and qualifier associated with this event."> - eventIdentifier Identifier (1..*) <"The identifiers that uniquely identify this lifecycle event."> - party Party (0..*) <"The specification of the parties involved in the WorkflowStep."> - account Account (0..*) <"Optional account information that could be associated to the event."> - previousWorkflowStep WorkflowStep (0..1) <"Optional previous WorkflowStep that provides lineage to WorkflowStep that precedes it."> - action ActionEnum (1..1) <"Specifies whether the event is new or a correction. The action cannot be a cancellation or new if the previous step is also new."> - proposedEvent EventInstruction (1..1) <"The proposed instruction for the step to initiate a workflow e.g. Clearing Instruction or Allocation Instruction"> - approval WorkflowStepApproval (0..*) <"The approval status of all parties on the proposed event."> - - output: - proposedWorkflowStep WorkflowStep (1..1) <"Proposed WorkflowStep populated with the proposed instruction"> + [creation WorkflowStep] + inputs: + messageInformation MessageInformation (0..1) <"Contains all information pertaining the messaging header"> + timestamp EventTimestamp (1..*) <"The dateTime and qualifier associated with this event."> + eventIdentifier Identifier (1..*) <"The identifiers that uniquely identify this lifecycle event."> + party Party (0..*) <"The specification of the parties involved in the WorkflowStep."> + account Account (0..*) <"Optional account information that could be associated to the event."> + previousWorkflowStep WorkflowStep (0..1) <"Optional previous WorkflowStep that provides lineage to WorkflowStep that precedes it."> + action ActionEnum (1..1) <"Specifies whether the event is new or a correction. The action cannot be a cancellation or new if the previous step is also new."> + proposedEvent EventInstruction (1..1) <"The proposed instruction for the step to initiate a workflow e.g. Clearing Instruction or Allocation Instruction"> + approval WorkflowStepApproval (0..*) <"The approval status of all parties on the proposed event."> + output: + proposedWorkflowStep WorkflowStep (1..1) <"Proposed WorkflowStep populated with the proposed instruction"> - condition CorrectAction: <"When the previous step is new or corrected and contains an instruction (proposed), the following action can only be correct."> - if (previousWorkflowStep -> proposedEvent exists and (previousWorkflowStep -> action = ActionEnum -> New or previousWorkflowStep -> action = ActionEnum -> Correct)) - then action = ActionEnum -> Correct + condition CorrectAction: <"When the previous step is new or corrected and contains an instruction (proposed), the following action can only be correct."> + if (previousWorkflowStep -> proposedEvent exists and (previousWorkflowStep -> action = ActionEnum -> New or previousWorkflowStep -> action = ActionEnum -> Correct)) + then action = ActionEnum -> Correct - condition NewAction: <"When the previous step contains a business event, the following action can only be new."> - if (previousWorkflowStep is absent or previousWorkflowStep -> businessEvent exists) - then action = ActionEnum -> New + condition NewAction: <"When the previous step contains a business event, the following action can only be new."> + if (previousWorkflowStep is absent or previousWorkflowStep -> businessEvent exists) + then action = ActionEnum -> New - set proposedWorkflowStep -> messageInformation: <"Assign the workflowStep action."> - messageInformation + set proposedWorkflowStep -> messageInformation: <"Assign the workflowStep action."> + messageInformation - add proposedWorkflowStep -> timestamp: <"Assign the dateTime and qualifier associated with this event."> - timestamp + add proposedWorkflowStep -> timestamp: <"Assign the dateTime and qualifier associated with this event."> + timestamp - add proposedWorkflowStep -> eventIdentifier: <"Assign the identifiers that uniquely identify this lifecycle event."> - eventIdentifier + add proposedWorkflowStep -> eventIdentifier: <"Assign the identifiers that uniquely identify this lifecycle event."> + eventIdentifier - add proposedWorkflowStep -> party: <"Assign the parties involved in the WorkflowStep."> - party + add proposedWorkflowStep -> party: <"Assign the parties involved in the WorkflowStep."> + party - add proposedWorkflowStep -> account: <"Assign the account information that could be associated to the event."> - account + add proposedWorkflowStep -> account: <"Assign the account information that could be associated to the event."> + account - set proposedWorkflowStep -> previousWorkflowStep: <"Set the reference to the previous WorkflowStep to provide lineage"> - previousWorkflowStep as-key + set proposedWorkflowStep -> previousWorkflowStep: <"Set the reference to the previous WorkflowStep to provide lineage"> + previousWorkflowStep as-key - set proposedWorkflowStep -> proposedEvent: - proposedEvent + set proposedWorkflowStep -> proposedEvent: proposedEvent - add proposedWorkflowStep -> approval: <"Assign the party approval statuses for this WorkflowStep"> - approval + add proposedWorkflowStep -> approval: <"Assign the party approval statuses for this WorkflowStep"> + approval func Create_RejectedWorkflowStep: <"Represents the rejection of a proposed instruction that results in a workflow step containing the rejection flag, message details, identifiers, event timestamps, parties and accounts involved in the step. The previous workflow step input must exist to provide workflow lineage. This function will be further developed to provide the reasons for rejection."> - [creation WorkflowStep] - inputs: - messageInformation MessageInformation (0..1) <"Contains all information pertaining the messaging header"> - timestamp EventTimestamp (1..*) <"The dateTime and qualifier associated with this event."> - eventIdentifier Identifier (1..*) <"The identifiers that uniquely identify this lifecycle event."> - proposedWorkflowStep WorkflowStep (1..1) <"Required previous WorkflowStep that provides lineage to WorkflowStep that precedes it."> + [creation WorkflowStep] + inputs: + messageInformation MessageInformation (0..1) <"Contains all information pertaining the messaging header"> + timestamp EventTimestamp (1..*) <"The dateTime and qualifier associated with this event."> + eventIdentifier Identifier (1..*) <"The identifiers that uniquely identify this lifecycle event."> + proposedWorkflowStep WorkflowStep (1..1) <"Required previous WorkflowStep that provides lineage to WorkflowStep that precedes it."> + output: + rejectedWorkflowStep WorkflowStep (1..1) <"Rejected WorkflowStep with lineage to the proposed step that preceded it."> - output: - rejectedWorkflowStep WorkflowStep (1..1) <"Rejected WorkflowStep with lineage to the proposed step that preceded it."> + condition ProposedEventExists: <"The previous proposed step being rejected must exist"> + proposedWorkflowStep -> proposedEvent exists - condition ProposedEventExists: <"The previous proposed step being rejected must exist"> - proposedWorkflowStep -> proposedEvent exists - - set rejectedWorkflowStep -> messageInformation: <"Assign the workflowStep action."> - messageInformation + set rejectedWorkflowStep -> messageInformation: <"Assign the workflowStep action."> + messageInformation - add rejectedWorkflowStep -> timestamp: <"Assign the dateTime and qualifier associated with this event."> - timestamp + add rejectedWorkflowStep -> timestamp: <"Assign the dateTime and qualifier associated with this event."> + timestamp - add rejectedWorkflowStep -> eventIdentifier: <"Assign the identifiers that uniquely identify this lifecycle event."> - eventIdentifier + add rejectedWorkflowStep -> eventIdentifier: <"Assign the identifiers that uniquely identify this lifecycle event."> + eventIdentifier - set rejectedWorkflowStep -> previousWorkflowStep: <"Set the reference to the previous WorkflowStep to provide lineage"> - proposedWorkflowStep as-key + set rejectedWorkflowStep -> previousWorkflowStep: <"Set the reference to the previous WorkflowStep to provide lineage"> + proposedWorkflowStep as-key - set rejectedWorkflowStep -> rejected: <"Set the rejected flag to True"> - True + set rejectedWorkflowStep -> rejected: <"Set the rejected flag to True"> + True func Create_Workflow: <"Function to create a Workflow from a list of WorkflowStep."> - inputs: steps WorkflowStep (1..*) - output: workflow Workflow (1..1) - add workflow -> steps: - steps + inputs: + steps WorkflowStep (1..*) + output: + workflow Workflow (1..1) + add workflow -> steps: steps diff --git a/rosetta-source/src/main/rosetta/event-workflow-type.rosetta b/rosetta-source/src/main/rosetta/event-workflow-type.rosetta index 38a8e29085..ef09552ff7 100644 --- a/rosetta-source/src/main/rosetta/event-workflow-type.rosetta +++ b/rosetta-source/src/main/rosetta/event-workflow-type.rosetta @@ -10,138 +10,134 @@ import cdm.event.common.* type CreditLimitInformation: <"A class to represent the credit limit utilisation information."> - limitApplicable LimitApplicableExtended (1..*) + limitApplicable LimitApplicableExtended (1..*) type CreditLimitUtilisation: <"Credit limit utilisation breakdown by executed trades and pending orders."> - executed CreditLimitUtilisationPosition (0..1) <"Credit limit utilisation attributable to executed trades."> - pending CreditLimitUtilisationPosition (0..1) <"Credit limit utilisation attributable to pending unexecuted orders."> + executed CreditLimitUtilisationPosition (0..1) <"Credit limit utilisation attributable to executed trades."> + pending CreditLimitUtilisationPosition (0..1) <"Credit limit utilisation attributable to pending unexecuted orders."> type CreditLimitUtilisationPosition: - shortPosition number (0..1) <"Credit limit utilisation attributable to short positions."> - longPosition number (0..1) <"Credit limit utilisation attributable to long positions."> - global number (0..1) <"Global credit limit utilisation amount, agnostic of long/short position direction."> + shortPosition number (0..1) <"Credit limit utilisation attributable to short positions."> + longPosition number (0..1) <"Credit limit utilisation attributable to long positions."> + global number (0..1) <"Global credit limit utilisation amount, agnostic of long/short position direction."> type CustomisedWorkflow: <"In its initial iteration, this class is meant to support the DTCC TIW workflow information."> - itemName string (1..1) <"In this initial iteration, this corresponds to the DTCC TIW element name."> - itemValue string (1..1) <"In this initial iteration, this corresponds to the DTCC value."> + itemName string (1..1) <"In this initial iteration, this corresponds to the DTCC TIW element name."> + itemValue string (1..1) <"In this initial iteration, this corresponds to the DTCC value."> type WorkflowStepApproval: <"Party approvals associated to the current WorkflowStep. "> - [metadata key] - approved boolean (1..1) <"Flag denoting whether the workflow step is approved or not"> - party Party (1..1) <"Reference to the Party who is approving/rejecting this workflow step"> - [metadata reference] - rejectedReason string (0..1) <"Optional reason for rejecting the workflow step"> - timestamp EventTimestamp (1..1) <"Timestamp of the approval"> + [metadata key] + approved boolean (1..1) <"Flag denoting whether the workflow step is approved or not"> + party Party (1..1) <"Reference to the Party who is approving/rejecting this workflow step"> + [metadata reference] + rejectedReason string (0..1) <"Optional reason for rejecting the workflow step"> + timestamp EventTimestamp (1..1) <"Timestamp of the approval"> type WorkflowStep: <"A workflow step represents the state of a business event. The workflow step contains a reference to a previous WorkflowStep in order to preserve lineage. A workflow step is accepted if it contains a business event, proposed if proposedEvent is present and is rejected if the rejected flag is set."> - [metadata key] - [rootType] - - businessEvent BusinessEvent (0..1) <"Life cycle event for the step. The businessEvent is optional when a proposedEvent or rejection are present."> - proposedEvent EventInstruction (0..1) <"The proposed event for a workflow step. The proposedEvent is optional when the businessEvent or rejection are present"> - rejected boolean (0..1) <"Flags this step as rejected."> - approval WorkflowStepApproval (0..*) <"Optional party approvals for the current workflow step. A workflow step can have any number of parties associated to it, thus this object is represented as a list. All parties that are expected to provide approval should have an item in this list that references them."> - previousWorkflowStep WorkflowStep (0..1) <"Optional previous workflow step that provides lineage to workflow steps that precedes it."> - [metadata reference] - nextEvent EventInstruction (0..1) <"The intended next event can be specified, even if the instructions are not known yet."> - messageInformation MessageInformation (0..1) <"Contains all information pertaining the FpML messaging header "> - timestamp EventTimestamp (1..*) <"The set of timestamp(s) associated with the event as a collection of [dateTime, qualifier]."> - eventIdentifier Identifier (1..*) <"The identifier(s) that uniquely identify a lifecycle event. The unbounded cardinality is meant to provide the ability to associate identifiers that are issued by distinct parties. As an example, each of the parties to the event may choose to associate their own identifiers to the event."> - action ActionEnum (0..1) <"Specifies whether the event is a new, a correction or a cancellation."> - party Party (0..*) <"The specification of the event parties. This attribute is optional, as not applicable to certain events (e.g. most of the observations)."> - account Account (0..*) <"Optional account information that could be associated to the event."> - lineage Lineage (0..1) <"The lineage attribute provides a linkage among lifecycle events through the globalKey hash value. One example is when a given lifecycle event is being corrected or cancelled. In such case, each subsequent event will have lineage into the prior version of that event. The second broad use case is when an event has a dependency upon either another event (e.g. the regular payment associated with a fix/float swap will have a lineage into the reset event, which will in turn have a lineage into the observation event for the floating rate and the contract) or a contract (e.g. the exercise of an option has a lineage into that option)."> - [deprecated] - creditLimitInformation CreditLimitInformation (0..1) - workflowState WorkflowState (0..1) <"The event workflow information, i.e. the workflow status, the associated comment and the partyCustomisedWorkflow which purpose is to provide the ability to associate custom workflow information to the CDM."> - - condition WorkflowStepStatus: - (businessEvent exists and nextEvent -> instruction is absent and rejected is absent) - or - (nextEvent -> instruction exists and businessEvent is absent and rejected is absent) - or - (rejected exists and businessEvent is absent and nextEvent is absent) - or - (proposedEvent exists and nextEvent is absent and rejected is absent) - or - (previousWorkflowStep exists and action = ActionEnum->Cancel) + [metadata key] + [rootType] + + businessEvent BusinessEvent (0..1) <"Life cycle event for the step. The businessEvent is optional when a proposedEvent or rejection are present."> + proposedEvent EventInstruction (0..1) <"The proposed event for a workflow step. The proposedEvent is optional when the businessEvent or rejection are present"> + rejected boolean (0..1) <"Flags this step as rejected."> + approval WorkflowStepApproval (0..*) <"Optional party approvals for the current workflow step. A workflow step can have any number of parties associated to it, thus this object is represented as a list. All parties that are expected to provide approval should have an item in this list that references them."> + previousWorkflowStep WorkflowStep (0..1) <"Optional previous workflow step that provides lineage to workflow steps that precedes it."> + [metadata reference] + nextEvent EventInstruction (0..1) <"The intended next event can be specified, even if the instructions are not known yet."> + messageInformation MessageInformation (0..1) <"Contains all information pertaining the FpML messaging header "> + timestamp EventTimestamp (1..*) <"The set of timestamp(s) associated with the event as a collection of [dateTime, qualifier]."> + eventIdentifier Identifier (1..*) <"The identifier(s) that uniquely identify a lifecycle event. The unbounded cardinality is meant to provide the ability to associate identifiers that are issued by distinct parties. As an example, each of the parties to the event may choose to associate their own identifiers to the event."> + action ActionEnum (0..1) <"Specifies whether the event is a new, a correction or a cancellation."> + party Party (0..*) <"The specification of the event parties. This attribute is optional, as not applicable to certain events (e.g. most of the observations)."> + account Account (0..*) <"Optional account information that could be associated to the event."> + lineage Lineage (0..1) <"The lineage attribute provides a linkage among lifecycle events through the globalKey hash value. One example is when a given lifecycle event is being corrected or cancelled. In such case, each subsequent event will have lineage into the prior version of that event. The second broad use case is when an event has a dependency upon either another event (e.g. the regular payment associated with a fix/float swap will have a lineage into the reset event, which will in turn have a lineage into the observation event for the floating rate and the contract) or a contract (e.g. the exercise of an option has a lineage into that option)."> + [deprecated] + creditLimitInformation CreditLimitInformation (0..1) + workflowState WorkflowState (0..1) <"The event workflow information, i.e. the workflow status, the associated comment and the partyCustomisedWorkflow which purpose is to provide the ability to associate custom workflow information to the CDM."> + + condition WorkflowStepStatus: + (businessEvent exists and nextEvent -> instruction is absent and rejected is absent) + or (nextEvent -> instruction exists and businessEvent is absent and rejected is absent) + or (rejected exists and businessEvent is absent and nextEvent is absent) + or (proposedEvent exists and nextEvent is absent and rejected is absent) + or (previousWorkflowStep exists and action = ActionEnum -> Cancel) type Workflow: <"A collection of workflow steps which together makeup an entire workflow sequence."> - steps WorkflowStep (1..*) + steps WorkflowStep (1..*) type EventInstruction: <"Specifies instructions to create a BusinessEvent."> - intent EventIntentEnum (0..1) <"The intent attribute is meant to be specified when the event qualification cannot be programmatically inferred from the event features. As a result it is only associated with those primitives that can give way to such ambiguity, the quantityChange being one of those. An example of such is a reduction in the trade notional, which could be interpreted as either a trade correction (unless a maximum period of time post-event is specified as part of the qualification), a partial termination or a portfolio rebalancing in the case of an equity swap. On the other hand, an event such as the exercise is not expected to have an associated intent as there should not be ambiguity."> - corporateActionIntent CorporateActionTypeEnum (0..1) - eventDate date (0..1) <"Specifies the date on which the event is taking place. This date is equal to the trade date in the case of a simple execution. However it can be different from the trade date, for example in the case of a partial termination."> - effectiveDate date (0..1) <"The date on which the event contractually takes effect, when different from the event date."> - packageInformation IdentifiedList (0..1) <"Specifies the package information in case the business event represents several trades executed as a package (hence this attribute is optional). The package information is only instantiated once at the business event level to preserve referential integrity, whereas individual trades make reference to it to identify that they are part of a package."> + intent EventIntentEnum (0..1) <"The intent attribute is meant to be specified when the event qualification cannot be programmatically inferred from the event features. As a result it is only associated with those primitives that can give way to such ambiguity, the quantityChange being one of those. An example of such is a reduction in the trade notional, which could be interpreted as either a trade correction (unless a maximum period of time post-event is specified as part of the qualification), a partial termination or a portfolio rebalancing in the case of an equity swap. On the other hand, an event such as the exercise is not expected to have an associated intent as there should not be ambiguity."> + corporateActionIntent CorporateActionTypeEnum (0..1) + eventDate date (0..1) <"Specifies the date on which the event is taking place. This date is equal to the trade date in the case of a simple execution. However it can be different from the trade date, for example in the case of a partial termination."> + effectiveDate date (0..1) <"The date on which the event contractually takes effect, when different from the event date."> + packageInformation IdentifiedList (0..1) <"Specifies the package information in case the business event represents several trades executed as a package (hence this attribute is optional). The package information is only instantiated once at the business event level to preserve referential integrity, whereas individual trades make reference to it to identify that they are part of a package."> instruction Instruction (0..*) <"Specifies the instructions to create the Business Event."> - condition CorporateAction: - if corporateActionIntent exists then intent = EventIntentEnum -> CorporateActionAdjustment - + condition CorporateAction: + if corporateActionIntent exists + then intent = EventIntentEnum -> CorporateActionAdjustment + type EventTimestamp: <"A class to represent the various set of timestamps that can be associated with lifecycle events, as a collection of [dateTime, qualifier]."> - dateTime zonedDateTime (1..1) <"The CDM specifies that the zoned date time is to be expressed in accordance with ISO 8601, either as UTC as an offset to UTC."> - qualification EventTimestampQualificationEnum (1..1) <"The timestamp qualifier is specified through an enumeration because the experience of integrating the DTCC and CME data representations suggests that a wide set of timestamps are currently utilized among service providers, while there is not at present an objective set of criteria that could help suggest a defined set of timestamps as part of the CDM. At some future point, one possible baseline could be developed from the review of the set of timestamps specified across regulatory regimes and regulations (incl. regulations such as high frequency trading). Also, the integration with a further set of implementations and the specification of business workflows such as clearing as part of the CDM development should help confirm the implementation approach in this respect."> + dateTime zonedDateTime (1..1) <"The CDM specifies that the zoned date time is to be expressed in accordance with ISO 8601, either as UTC as an offset to UTC."> + qualification EventTimestampQualificationEnum (1..1) <"The timestamp qualifier is specified through an enumeration because the experience of integrating the DTCC and CME data representations suggests that a wide set of timestamps are currently utilized among service providers, while there is not at present an objective set of criteria that could help suggest a defined set of timestamps as part of the CDM. At some future point, one possible baseline could be developed from the review of the set of timestamps specified across regulatory regimes and regulations (incl. regulations such as high frequency trading). Also, the integration with a further set of implementations and the specification of business workflows such as clearing as part of the CDM development should help confirm the implementation approach in this respect."> type WorkflowState: <"A class to specify workflow information, which is conceptually applicable to all lifecycle events."> - workflowStatus WorkflowStatusEnum (1..1) <"The workflow status indicator, e.g. Accepted, Rejected, ..."> - comment string (0..1) <"A comment field to be associated with the workflow, e.g. to specify why a transaction event was rejected by a party."> - partyCustomisedWorkflow PartyCustomisedWorkflow (0..*) <"Workflow data that is specific to certain market participants and is expressed as part of the CDM in a very generic manner, which can be party-specific. The initial use cases have been derived from the CME clearing and the DTCC TIW submissions."> - warehouseIdentity WarehouseIdentityEnum (0..1) <"The identity of the warehouse, if any, that is executing that workflow step."> + workflowStatus WorkflowStatusEnum (1..1) <"The workflow status indicator, e.g. Accepted, Rejected, ..."> + comment string (0..1) <"A comment field to be associated with the workflow, e.g. to specify why a transaction event was rejected by a party."> + partyCustomisedWorkflow PartyCustomisedWorkflow (0..*) <"Workflow data that is specific to certain market participants and is expressed as part of the CDM in a very generic manner, which can be party-specific. The initial use cases have been derived from the CME clearing and the DTCC TIW submissions."> + warehouseIdentity WarehouseIdentityEnum (0..1) <"The identity of the warehouse, if any, that is executing that workflow step."> type LimitApplicable: - limitType CreditLimitTypeEnum (0..1) <"Standard code to indicate which type of credit line is being referred to - i.e. IM, DV01, PV01, CS01, Notional, Clip Size, Notional, maximumOrderQuantity."> - [metadata scheme] - clipSize int (0..1) <"This element is required in FpML, optional in CDM for the purpose of accommodating the CME data representation while making reference to the FpML one."> - amountUtilized number (0..1) <"The limit utilised by all the cleared trades for the limit level and limit type. While the attribute is of type integer in FpML and the CME schema, it has been specified to be of type number in the CDM to take into consideration java size limits as well as for consistency purposes with the way most monetary amounts are expressed."> - utilization CreditLimitUtilisation (0..1) - amountRemaining number (0..1) <"The limit remaining for the limit level and limit type. This does not take into account any pending trades. While the attribute is of type integer in FpML and the CME schema, it has been specified to be of type number in the CDM to take into consideration java size limits as well as for consistency purposes with the way most monetary amounts are expressed."> - currency string (0..1) <"The currency in which the applicable limit is denominated. The list of valid currencies is not presently positioned as an enumeration as part of the CDM because that scope is limited to the values specified by ISDA and FpML. As a result, implementers have to make reference to the relevant standard, such as the ISO 4217 standard for currency codes."> - [metadata scheme] - velocity Velocity (0..1) + limitType CreditLimitTypeEnum (0..1) <"Standard code to indicate which type of credit line is being referred to - i.e. IM, DV01, PV01, CS01, Notional, Clip Size, Notional, maximumOrderQuantity."> + [metadata scheme] + clipSize int (0..1) <"This element is required in FpML, optional in CDM for the purpose of accommodating the CME data representation while making reference to the FpML one."> + amountUtilized number (0..1) <"The limit utilised by all the cleared trades for the limit level and limit type. While the attribute is of type integer in FpML and the CME schema, it has been specified to be of type number in the CDM to take into consideration java size limits as well as for consistency purposes with the way most monetary amounts are expressed."> + utilization CreditLimitUtilisation (0..1) + amountRemaining number (0..1) <"The limit remaining for the limit level and limit type. This does not take into account any pending trades. While the attribute is of type integer in FpML and the CME schema, it has been specified to be of type number in the CDM to take into consideration java size limits as well as for consistency purposes with the way most monetary amounts are expressed."> + currency string (0..1) <"The currency in which the applicable limit is denominated. The list of valid currencies is not presently positioned as an enumeration as part of the CDM because that scope is limited to the values specified by ISDA and FpML. As a result, implementers have to make reference to the relevant standard, such as the ISO 4217 standard for currency codes."> + [metadata scheme] + velocity Velocity (0..1) - condition LimitApplicableChoice: <"Choice rule to represent an FpML choice construct."> - optional choice amountUtilized, utilization + condition LimitApplicableChoice: <"Choice rule to represent an FpML choice construct."> + optional choice amountUtilized, utilization type LimitApplicableExtended extends LimitApplicable: <"A class to represent the CDM attributes that are not part of the FpML standard. Once broader usage is confirmed, it is expected that those two classes can be collapsed."> - limitLevel LimitLevelEnum (0..1) <"The level at which the limit is set: customer business, proprietary business or account level. This attribute is specified as a string as part of the CME clearing confirmation specification."> - [metadata scheme] - limitAmount number (0..1) <"The total limit available for the limit level and limit type. While the attribute is of type integer in the CME schema, it has been specified to be of type number in the CDM to take into consideration java size limits as well as for consistency purposes with the way most monetary amounts are expressed."> - limitImpactDueToTrade number (0..1) <"The limit utilized by this specific trade. While the attribute is of type integer in the CME schema, it has been specified to be of type number in the CDM to take into consideration java size limits as well as for consistency purposes with the way most monetary amounts are expressed."> + limitLevel LimitLevelEnum (0..1) <"The level at which the limit is set: customer business, proprietary business or account level. This attribute is specified as a string as part of the CME clearing confirmation specification."> + [metadata scheme] + limitAmount number (0..1) <"The total limit available for the limit level and limit type. While the attribute is of type integer in the CME schema, it has been specified to be of type number in the CDM to take into consideration java size limits as well as for consistency purposes with the way most monetary amounts are expressed."> + limitImpactDueToTrade number (0..1) <"The limit utilized by this specific trade. While the attribute is of type integer in the CME schema, it has been specified to be of type number in the CDM to take into consideration java size limits as well as for consistency purposes with the way most monetary amounts are expressed."> type MessageInformation: <"This class corresponds to the components of the FpML MessageHeader.model."> - messageId string (1..1) <"A unique identifier assigned to the message."> - [metadata scheme] - sentBy string (0..1) <"The identifier for the originator of a message instance."> - [metadata scheme] - sentTo string (0..*) <"The identifier(s) for the recipient(s) of a message instance."> - [metadata scheme] - copyTo string (0..*) <"A unique identifier (within the specified coding scheme) giving the details of some party to whom a copy of this message will be sent for reference."> - [metadata scheme] + messageId string (1..1) <"A unique identifier assigned to the message."> + [metadata scheme] + sentBy string (0..1) <"The identifier for the originator of a message instance."> + [metadata scheme] + sentTo string (0..*) <"The identifier(s) for the recipient(s) of a message instance."> + [metadata scheme] + copyTo string (0..*) <"A unique identifier (within the specified coding scheme) giving the details of some party to whom a copy of this message will be sent for reference."> + [metadata scheme] type PartyCustomisedWorkflow: <"A class to specify a party-related, non-standardized data in a generic form."> - partyReference Party (0..1) <"Reference to the party to which the workflow pertains to."> - [metadata reference] - partyName string (0..1) <"The party name to which the workflow pertains to."> - customisedWorkflow CustomisedWorkflow (1..*) <"Non-standardized data in a generic form."> + partyReference Party (0..1) <"Reference to the party to which the workflow pertains to."> + [metadata reference] + partyName string (0..1) <"The party name to which the workflow pertains to."> + customisedWorkflow CustomisedWorkflow (1..*) <"Non-standardized data in a generic form."> - condition PartyCustomisedWorkflowChoice: <"The identification of the party to which the PartyCustomisedWorkflow pertains to can be done through either a party reference or the party name."> - required choice partyName, partyReference + condition PartyCustomisedWorkflowChoice: <"The identification of the party to which the PartyCustomisedWorkflow pertains to can be done through either a party reference or the party name."> + required choice partyName, partyReference type Velocity: - periodMultiplier int (0..1) - period PeriodTimeEnum (0..1) - + periodMultiplier int (0..1) + period PeriodTimeEnum (0..1) diff --git a/rosetta-source/src/main/rosetta/legaldocumentation-common-enum.rosetta b/rosetta-source/src/main/rosetta/legaldocumentation-common-enum.rosetta index 7194cda51c..188a7531d0 100644 --- a/rosetta-source/src/main/rosetta/legaldocumentation-common-enum.rosetta +++ b/rosetta-source/src/main/rosetta/legaldocumentation-common-enum.rosetta @@ -16,7 +16,7 @@ enum ContractualDefinitionsEnum: <"The enumerated values to specify a set of sta ISDA2003CreditDerivatives <"ISDA 2003 Credit Derivatives Definitions"> ISDA2004Novation <"ISDA 2004 Novation Definitions"> ISDA2005Commodity <"ISDA 2005 Commodity Definitions"> - ISDA2006<"ISDA 2006 Definitions"> + ISDA2006 <"ISDA 2006 Definitions"> ISDA2006InflationDerivatives <"ISDA 2006 Inflation Derivatives Definitions"> ISDA2008InflationDerivatives <"ISDA 2008 Inflation Derivatives Definitions"> ISDA2011EquityDerivatives <"ISDA 2011 Equity Derivatives Definitions"> @@ -25,267 +25,266 @@ enum ContractualDefinitionsEnum: <"The enumerated values to specify a set of sta ISDA2023DigitalAssetDerivatives <"ISDA 2021 Digital Asset Derivatives Definitions"> enum ContractualSupplementTypeEnum: <"The enumerated values to define the supplements to a base set of ISDA Definitions that are applicable to the transaction."> - ABX <"Standard Terms Supplement for ABX Transactions."> - ABXTranche <"Standard Terms Supplement for Asset-Backed Tranche Transactions."> - CDSonLeveragedLoans <"ISDA Standard Terms Supplement for use with Credit Derivative Transactions on Leveraged Loans."> - CDSonMBS <"ISDA Standard Terms Supplement for use with Credit Derivative Transactions on Mortgage-backed Security with Pay-As-You-Go or Physical Settlement."> - CDX <"Standard Terms Supplement for CDX Untranched Transactions."> - CDXEmergingMarkets <"Standard Terms Supplement for CDX Emerging Markets Untranched Transactions."> - CDXEmergingMarketsDiversified <"Standard Terms Supplement for CDX Emerging Markets Diversified Untranched Transactions.."> - CDXSwaption <"Standard Terms Supplement for CDX Swaption Transactions."> - CDXTranche <"Standard Terms Supplement for Dow Jones CDX Tranche Transactions."> - CMBX <"Standard Terms Supplement for CMBX Transactions."> - EuropeanCMBS <"Standard Terms Supplement for Single Name European CMBS Transactions."> - EuropeanRMBS <"Standard Terms Supplement for Single Name European RMBS Transactions."> - IOS <"Standard Terms Supplement for IOS Transactions."> - ISDA1999CreditConvertibleExchangeableAccretingObligations <"Supplement to the 1999 ISDA Credit Derivatives Definitions Relating to Convertible, Exchangeable or Accreting Obligations dated November 9, 2001."> - ISDA1999CreditRestructuring <"Restructuring Supplement to the 1999 ISDA Credit Derivatives Definitions dated May 11, 2001."> - ISDA1999CreditSuccessorAndCreditEvents <"Supplement Relating to Successor and Credit Events to the 1999 ISDA Credit Derivatives Definitions dated November 28, 2001."> - ISDA2003AdditionalProvisionsLPN <"Additional Provisions for LPN dated December 6, 2007."> - ISDA2003ContingentCreditSpreadTransaction <"Additional Provisions for Contingent Credit Spread Transactions dated August 15, 2008."> - ISDA2003Credit2005MatrixSupplement <"2005 Matrix Supplement to the 2003 ISDA Credit Derivatives."> - ISDA2003CreditArgentineRepublic <"Additional Provisions for the Argentine Republic: Excluded Obligations and Excluded Deliverable Obligations dated December 21, 2005."> - ISDA2003CreditAuctionSupplement <"ISDA Credit Derivatives Determinations Committees and Auction Settlement Supplement to the 2003 ISDA Credit Derivatives Definitions (published on [TBD])."> - ISDA2003CreditMay2003 <"May 2003 Supplement to the 2003 ISDA Credit Derivatives Definitions."> - ISDA2003CreditMonolineInsurers <"Additional Provisions for Physically Settled Default Swaps Monoline Insurer as Reference Entity dated May 9, 2003."> - ISDA2003CreditMonolineInsurers2005 <"Additional Provisions for Physically Settled Default Swaps Monoline Insurer as Reference Entity dated January 21, 2005."> - ISDA2003CreditRepublicOfHungary <"Additional Provisions for the Republic of Hungary: Obligation Characteristics and Deliverable Obligation Characteristics dated August 13, 2004."> - ISDA2003CreditRepublicOfHungary2005 <"Additional Provisions for the Republic of Hungary: Obligation Characteristics and Deliverable Obligation Characteristics dated February 14, 2005. "> - ISDA2003CreditRussianFederation <"Additional Provisions for the Russian Federation: Obligation Characteristics and Deliverable Obligation Characteristics dated August 13, 2004."> - ISDA2003CreditUSMunicipals <"Additional Provisions for Credit Derivative Transactions - U.S. Municipal Entity as Reference Entity dated September 17, 2004."> - ISDA2003STMicroelectronicsNV <"Additional Provisions for STMicroelectronics NV dated December 6, 2007."> - ISDA2007FullLookthroughDepositoryReceiptSupplement <"2007 Full Lookthrough Depository Receipt Supplement to the 2002 Equity Derivatives Definitions."> - ISDA2007PartialLookthroughDepositoryReceiptSupplement <"2007 Partial Lookthrough Depository Receipt Supplement to the 2002 ISDA Equity Derivatives Definitions."> - ISDACreditMonolineInsurers <"Additional Provisions for Physically Settled Default Swaps Monoline Insurer."> - ISDADeliveryRestrictions <"Additional Provisions for Fixed Recovery Credit Default Swap Transactions"> - ISDAFixedRecovery <"Additional Provisions for Fixed Recovery Credit Default Swap Transactions."> - ISDALPNReferenceEntities <"Additional Provisions for LPN Reference Entities."> - ISDAMarch2004EquityCanadianSupplement <"Canadian Supplement to the 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement dated March 29, 2004."> - ISDARecoveryLock <"Additional Provisions for Recovery Lock Credit Default Swap Transactions."> - ISDASecuredDeliverableObligationCharacteristic <"Additional Provisions for Secured Deliverable Obligation Characteristic."> - LCDX <"Standard Terms Supplement for Syndicated Secured Loan Credit Default Swap Index Transactions."> - LCDXTranche <"Standard Terms Supplement for Syndicated Secured Loan Credit Default Swap Index Tranche Transactions."> - MBX <"Standard Terms Supplement for MBX Transactions."> - MCDX <"Standard Terms Supplement for Municipal CDX Untranched Transactions."> - PO <"Standard Terms Supplement for PO Index Transactions."> - PrimeX <"Standard Terms Supplement for PrimeX Transactions."> - StandardCDXTranche <"Standard Terms Supplement for Standard CDX Tranche Transactions."> - StandardLCDS <"Standard Syndicated Secured Loan Credit Default Swap Standard Terms Supplement."> - StandardLCDSBullet <"Standard Terms Supplement for Standard Syndicated Secured Loan Credit Default Swap Bullet Transactions."> - StandardLCDXBullet <"Standard Terms Supplement for Standard Syndicated Secured Loan Credit Default Swap Index Bullet Transactions."> - StandardLCDXBulletTranche <"Standard Terms Supplement for Standard Syndicated Secured Loan Credit Default Swap Index Bullet Tranche Transactions."> - StandardiTraxxEuropeTranche <"Standard Terms Supplement for Standard iTraxx Europe Tranched Transactions."> - SyndicatedSecuredLoanCDS <"Syndicated Secured Loan Credit Default Swap Standard Terms Supplement."> - TRX <"Standard Terms Supplement for TRX Transactions."> - TRX_II displayName "TRX.II" <"Standard Terms Supplement for TRX.II Transactions."> - iTraxxAsiaExJapan <"Standard Terms Supplement for iTraxx Asia Excluding Japan."> - iTraxxAsiaExJapanSwaption <"Standard Terms Supplement for iTraxx Asia Ex-Japan Swaption Transactions."> - iTraxxAsiaExJapanTranche <"Standard Terms Supplement for iTraxx Asia Excluding Japan Tranched Transactions."> - iTraxxAustralia <"Standard Terms Supplement for iTraxx Australia."> - iTraxxAustraliaSwaption <"Standard Terms Supplement for iTraxx Australia Swaption Transactions."> - iTraxxAustraliaTranche <"Standard Terms Supplement for iTraxx Australia Tranched Transactions."> - iTraxxCJ <"Standard Terms Supplement for iTraxx CJ."> - iTraxxCJTranche <"Standard Terms Supplement for iTraxx CJ Tranched Transactions."> - iTraxxEurope <"Standard Terms Supplement for iTraxx Europe Transactions."> - iTraxxEuropeDealer <"Standard Terms Supplement for iTraxx Europe Dealer Form."> - iTraxxEuropeNonDealer <"Standard Terms Supplement for iTraxx Europe Non-Dealer Form."> - iTraxxEuropeSwaption <"Standard Terms Supplement for iTraxx Europe Swaption Transactions."> - iTraxxEuropeTranche <"Standard Terms Supplement for iTraxx Europe Tranched Transactions."> - iTraxxJapan <"Standard Terms Supplement for iTraxx Japan."> - iTraxxJapanSwaption <"Standard Terms Supplement for iTraxx Japan Swaption Transactions."> - iTraxxJapanTranche <"Standard Terms Supplement for iTraxx Japan Tranched Transactions."> - iTraxxLevX <"Standard Terms Supplement for iTraxx LevX."> - iTraxxSDI75Dealer <"Standard Terms Supplement for iTraxx SDI 75 Dealer Transactions."> - iTraxxSDI75NonDealer <"Standard Terms Supplement for iTraxx SDI 75 Non-Dealer Transactions."> - iTraxxSovX <"Standard Terms Supplement for iTraxx SovX."> + ABX <"Standard Terms Supplement for ABX Transactions."> + ABXTranche <"Standard Terms Supplement for Asset-Backed Tranche Transactions."> + CDSonLeveragedLoans <"ISDA Standard Terms Supplement for use with Credit Derivative Transactions on Leveraged Loans."> + CDSonMBS <"ISDA Standard Terms Supplement for use with Credit Derivative Transactions on Mortgage-backed Security with Pay-As-You-Go or Physical Settlement."> + CDX <"Standard Terms Supplement for CDX Untranched Transactions."> + CDXEmergingMarkets <"Standard Terms Supplement for CDX Emerging Markets Untranched Transactions."> + CDXEmergingMarketsDiversified <"Standard Terms Supplement for CDX Emerging Markets Diversified Untranched Transactions.."> + CDXSwaption <"Standard Terms Supplement for CDX Swaption Transactions."> + CDXTranche <"Standard Terms Supplement for Dow Jones CDX Tranche Transactions."> + CMBX <"Standard Terms Supplement for CMBX Transactions."> + EuropeanCMBS <"Standard Terms Supplement for Single Name European CMBS Transactions."> + EuropeanRMBS <"Standard Terms Supplement for Single Name European RMBS Transactions."> + IOS <"Standard Terms Supplement for IOS Transactions."> + ISDA1999CreditConvertibleExchangeableAccretingObligations <"Supplement to the 1999 ISDA Credit Derivatives Definitions Relating to Convertible, Exchangeable or Accreting Obligations dated November 9, 2001."> + ISDA1999CreditRestructuring <"Restructuring Supplement to the 1999 ISDA Credit Derivatives Definitions dated May 11, 2001."> + ISDA1999CreditSuccessorAndCreditEvents <"Supplement Relating to Successor and Credit Events to the 1999 ISDA Credit Derivatives Definitions dated November 28, 2001."> + ISDA2003AdditionalProvisionsLPN <"Additional Provisions for LPN dated December 6, 2007."> + ISDA2003ContingentCreditSpreadTransaction <"Additional Provisions for Contingent Credit Spread Transactions dated August 15, 2008."> + ISDA2003Credit2005MatrixSupplement <"2005 Matrix Supplement to the 2003 ISDA Credit Derivatives."> + ISDA2003CreditArgentineRepublic <"Additional Provisions for the Argentine Republic: Excluded Obligations and Excluded Deliverable Obligations dated December 21, 2005."> + ISDA2003CreditAuctionSupplement <"ISDA Credit Derivatives Determinations Committees and Auction Settlement Supplement to the 2003 ISDA Credit Derivatives Definitions (published on [TBD])."> + ISDA2003CreditMay2003 <"May 2003 Supplement to the 2003 ISDA Credit Derivatives Definitions."> + ISDA2003CreditMonolineInsurers <"Additional Provisions for Physically Settled Default Swaps Monoline Insurer as Reference Entity dated May 9, 2003."> + ISDA2003CreditMonolineInsurers2005 <"Additional Provisions for Physically Settled Default Swaps Monoline Insurer as Reference Entity dated January 21, 2005."> + ISDA2003CreditRepublicOfHungary <"Additional Provisions for the Republic of Hungary: Obligation Characteristics and Deliverable Obligation Characteristics dated August 13, 2004."> + ISDA2003CreditRepublicOfHungary2005 <"Additional Provisions for the Republic of Hungary: Obligation Characteristics and Deliverable Obligation Characteristics dated February 14, 2005. "> + ISDA2003CreditRussianFederation <"Additional Provisions for the Russian Federation: Obligation Characteristics and Deliverable Obligation Characteristics dated August 13, 2004."> + ISDA2003CreditUSMunicipals <"Additional Provisions for Credit Derivative Transactions - U.S. Municipal Entity as Reference Entity dated September 17, 2004."> + ISDA2003STMicroelectronicsNV <"Additional Provisions for STMicroelectronics NV dated December 6, 2007."> + ISDA2007FullLookthroughDepositoryReceiptSupplement <"2007 Full Lookthrough Depository Receipt Supplement to the 2002 Equity Derivatives Definitions."> + ISDA2007PartialLookthroughDepositoryReceiptSupplement <"2007 Partial Lookthrough Depository Receipt Supplement to the 2002 ISDA Equity Derivatives Definitions."> + ISDACreditMonolineInsurers <"Additional Provisions for Physically Settled Default Swaps Monoline Insurer."> + ISDADeliveryRestrictions <"Additional Provisions for Fixed Recovery Credit Default Swap Transactions"> + ISDAFixedRecovery <"Additional Provisions for Fixed Recovery Credit Default Swap Transactions."> + ISDALPNReferenceEntities <"Additional Provisions for LPN Reference Entities."> + ISDAMarch2004EquityCanadianSupplement <"Canadian Supplement to the 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement dated March 29, 2004."> + ISDARecoveryLock <"Additional Provisions for Recovery Lock Credit Default Swap Transactions."> + ISDASecuredDeliverableObligationCharacteristic <"Additional Provisions for Secured Deliverable Obligation Characteristic."> + LCDX <"Standard Terms Supplement for Syndicated Secured Loan Credit Default Swap Index Transactions."> + LCDXTranche <"Standard Terms Supplement for Syndicated Secured Loan Credit Default Swap Index Tranche Transactions."> + MBX <"Standard Terms Supplement for MBX Transactions."> + MCDX <"Standard Terms Supplement for Municipal CDX Untranched Transactions."> + PO <"Standard Terms Supplement for PO Index Transactions."> + PrimeX <"Standard Terms Supplement for PrimeX Transactions."> + StandardCDXTranche <"Standard Terms Supplement for Standard CDX Tranche Transactions."> + StandardLCDS <"Standard Syndicated Secured Loan Credit Default Swap Standard Terms Supplement."> + StandardLCDSBullet <"Standard Terms Supplement for Standard Syndicated Secured Loan Credit Default Swap Bullet Transactions."> + StandardLCDXBullet <"Standard Terms Supplement for Standard Syndicated Secured Loan Credit Default Swap Index Bullet Transactions."> + StandardLCDXBulletTranche <"Standard Terms Supplement for Standard Syndicated Secured Loan Credit Default Swap Index Bullet Tranche Transactions."> + StandardiTraxxEuropeTranche <"Standard Terms Supplement for Standard iTraxx Europe Tranched Transactions."> + SyndicatedSecuredLoanCDS <"Syndicated Secured Loan Credit Default Swap Standard Terms Supplement."> + TRX <"Standard Terms Supplement for TRX Transactions."> + TRX_II displayName "TRX.II" <"Standard Terms Supplement for TRX.II Transactions."> + iTraxxAsiaExJapan <"Standard Terms Supplement for iTraxx Asia Excluding Japan."> + iTraxxAsiaExJapanSwaption <"Standard Terms Supplement for iTraxx Asia Ex-Japan Swaption Transactions."> + iTraxxAsiaExJapanTranche <"Standard Terms Supplement for iTraxx Asia Excluding Japan Tranched Transactions."> + iTraxxAustralia <"Standard Terms Supplement for iTraxx Australia."> + iTraxxAustraliaSwaption <"Standard Terms Supplement for iTraxx Australia Swaption Transactions."> + iTraxxAustraliaTranche <"Standard Terms Supplement for iTraxx Australia Tranched Transactions."> + iTraxxCJ <"Standard Terms Supplement for iTraxx CJ."> + iTraxxCJTranche <"Standard Terms Supplement for iTraxx CJ Tranched Transactions."> + iTraxxEurope <"Standard Terms Supplement for iTraxx Europe Transactions."> + iTraxxEuropeDealer <"Standard Terms Supplement for iTraxx Europe Dealer Form."> + iTraxxEuropeNonDealer <"Standard Terms Supplement for iTraxx Europe Non-Dealer Form."> + iTraxxEuropeSwaption <"Standard Terms Supplement for iTraxx Europe Swaption Transactions."> + iTraxxEuropeTranche <"Standard Terms Supplement for iTraxx Europe Tranched Transactions."> + iTraxxJapan <"Standard Terms Supplement for iTraxx Japan."> + iTraxxJapanSwaption <"Standard Terms Supplement for iTraxx Japan Swaption Transactions."> + iTraxxJapanTranche <"Standard Terms Supplement for iTraxx Japan Tranched Transactions."> + iTraxxLevX <"Standard Terms Supplement for iTraxx LevX."> + iTraxxSDI75Dealer <"Standard Terms Supplement for iTraxx SDI 75 Dealer Transactions."> + iTraxxSDI75NonDealer <"Standard Terms Supplement for iTraxx SDI 75 Non-Dealer Transactions."> + iTraxxSovX <"Standard Terms Supplement for iTraxx SovX."> enum GoverningLawEnum: <"The enumerated values to specify the law governing the contract or legal document."> - AsSpecifiedInMasterAgreement <"The Governing Law is determined by reference to the relevant master agreement."> - BE <"Belgian law"> - CAAB <"Alberta law"> - CABC <"British Columbia Law"> - CAMN <"Manitoba law"> - CAON <"Ontario law"> - CAQC <"Quebec law"> - DE <"German law"> - FR <"French law"> - GBEN <"English law"> - [synonym AcadiaSoft_AM_1_0 value "ENGLISH"] - GBGY <"The law of the island of Guernsey"> - GBIM <"The law of the Isle of Man"> - GBJY <"The law of the island of Jersey"> - GBSC <"Scottish law"> - IE <"Irish law"> - JP <"Japanese law"> - [synonym AcadiaSoft_AM_1_0 value "JAPAN"] - LU <"Luxembourg law"> - RelatedMasterAgreement <"As agreed in the ISDA Master Agreement"> - USCA <"Californian law"> - USDE <"Delaware law"> - USIL <"Illinois law"> - USNY <"New York law"> - [synonym AcadiaSoft_AM_1_0 value "NY"] + AsSpecifiedInMasterAgreement <"The Governing Law is determined by reference to the relevant master agreement."> + BE <"Belgian law"> + CAAB <"Alberta law"> + CABC <"British Columbia Law"> + CAMN <"Manitoba law"> + CAON <"Ontario law"> + CAQC <"Quebec law"> + DE <"German law"> + FR <"French law"> + GBEN <"English law"> + [synonym AcadiaSoft_AM_1_0 value "ENGLISH"] + GBGY <"The law of the island of Guernsey"> + GBIM <"The law of the Isle of Man"> + GBJY <"The law of the island of Jersey"> + GBSC <"Scottish law"> + IE <"Irish law"> + JP <"Japanese law"> + [synonym AcadiaSoft_AM_1_0 value "JAPAN"] + LU <"Luxembourg law"> + RelatedMasterAgreement <"As agreed in the ISDA Master Agreement"> + USCA <"Californian law"> + USDE <"Delaware law"> + USIL <"Illinois law"> + USNY <"New York law"> + [synonym AcadiaSoft_AM_1_0 value "NY"] enum LengthUnitEnum: <"The enumerated values to specify the length unit in the Resource type."> - Pages - TimeUnit + Pages + TimeUnit enum MatrixTermEnum: <"The enumerated values to specify a scheme of transaction types specified in the Equity Derivatives Settlement Matrix."> - AsiaCorporate <"Matrix Transaction Type of ASIA CORPORATE."> - AsiaFinancialCorporate <"Matrix Transaction Type of ASIA FINANCIAL CORPORATE."> - AsiaSovereign <"Matrix Transaction Type of ASIA SOVEREIGN."> - AustraliaCorporate <"Matrix Transaction Type of AUSTRALIA CORPORATE."> - AustraliaFinancialCorporate <"Matrix Transaction Type of AUSTRALIA FINANCIAL CORPORATE."> - AustraliaSovereign <"Matrix Transaction Type of AUSTRALIA SOVEREIGN."> - EmergingEuropeanAndMiddleEasternSovereign <"Matrix Transaction Type of EMERGING EUROPEAN AND MIDDLE EASTERN SOVEREIGN."> - EmergingEuropeanCorporate <"Matrix Transaction Type of EMERGING EUROPEAN CORPORATE."> - EmergingEuropeanCorporateLPN <"Matrix Transaction Type of EMERGING EUROPEAN CORPORATE LPN."> - EmergingEuropeanFinancialCorporate <"Matrix Transaction Type of EMERGING EUROPEAN FINANCIAL CORPORATE."> - EmergingEuropeanFinancialCorporateLPN <"Matrix Transaction Type of EMERGING EUROPEAN FINANCIAL CORPORATE LPN."> - EuropeanCoCoFinancialCorporate <"Matrix Transaction Type of EUROPEAN COCO FINANCIAL CORPORATE."> - EuropeanCorporate <"Matrix Transaction Type of EUROPEAN CORPORATE."> - EuropeanFinancialCorporate <"Matrix Transaction Type of EUROPEAN FINANCIAL CORPORATE."> - EuropeanSeniorNonPreferredFinancialCorporate <"Matrix Transaction Type of EUROPEAN SENIOR NON PREFERRED FINANCIAL CORPORATE."> - IVS1OpenMarkets <"The ISDA-published 2011 Index Volatility Swap Agreement for Open Markets."> - JapanCorporate <"Matrix Transaction Type of JAPAN CORPORATE."> - JapanFinancialCorporate <"Matrix Transaction Type of JAPAN FINANCIAL CORPORATE."> - JapanSovereign <"Matrix Transaction Type of JAPAN SOVEREIGN."> - LatinAmericaCorporate <"Matrix Transaction Type of LATIN AMERICA CORPORATE."> - LatinAmericaCorporateBond <"Matrix Transaction Type of LATIN AMERICA CORPORATE B."> - LatinAmericaCorporateBondOrLoan <"Matrix Transaction Type of LATIN AMERICA CORPORATE BL."> - LatinAmericaFinancialCorporateBond <"Matrix Transaction Type of LATIN AMERICA FINANCIAL CORPORATE B."> - LatinAmericaFinancialCorporateBondOrLoan <"Matrix Transaction Type of LATIN AMERICA FINANCIAL CORPORATE BL."> - LatinAmericaSovereign <"Matrix Transaction Type of LATIN AMERICA SOVEREIGN."> - NewZealandCorporate <"Matrix Transaction Type of NEW ZEALAND CORPORATE."> - NewZealandFinancialCorporate <"Matrix Transaction Type of NEW ZEALAND FINANCIAL CORPORATE."> - NewZealandSovereign <"Matrix Transaction Type of NEW ZEALAND SOVEREIGN."> - NorthAmericanCorporate <"Matrix Transaction Type of NORTH AMERICAN CORPORATE."> - NorthAmericanFinancialCorporate <"Matrix Transaction Type of NORTH AMERICAN FINANCIAL CORPORATE."> - SingaporeCorporate <"Matrix Transaction Type of SINGAPORE CORPORATE."> - SingaporeFinancialCorporate <"Matrix Transaction Type of SINGAPORE FINANCIAL CORPORATE."> - SingaporeSovereign <"Matrix Transaction Type of SINGAPORE SOVEREIGN."> - StandardAsiaCorporate <"Matrix Transaction Type of STANDARD ASIA CORPORATE."> - StandardAsiaFinancialCorporate <"Matrix Transaction Type of STANDARD ASIA FINANCIAL CORPORATE."> - StandardAsiaSovereign <"Matrix Transaction Type of STANDARD ASIA SOVEREIGN."> - StandardAustraliaCorporate <"Matrix Transaction Type of STANDARD AUSTRALIA CORPORATE."> - StandardAustraliaFinancialCorporate <"Matrix Transaction Type of STANDARD AUSTRALIA FINANCIAL CORPORATE."> - StandardAustraliaSovereign <"Matrix Transaction Type of STANDARD AUSTRALIA SOVEREIGN."> - StandardEmergingEuropeanAndMiddleEasternSovereign <"Matrix Transaction Type of STANDARD EMERGING EUROPEAN AND MIDDLE EASTERN SOVEREIGN."> - StandardEmergingEuropeanCorporate <"Matrix Transaction Type of STANDARD EMERGING EUROPEAN CORPORATE."> - StandardEmergingEuropeanCorporateLPN <"Matrix Transaction Type of STANDARD EMERGING EUROPEAN CORPORATE LPN."> - StandardEmergingEuropeanFinancialCorporate <"Matrix Transaction Type of STANDARD EMERGING EUROPEAN FINANCIAL CORPORATE."> - StandardEmergingEuropeanFinancialCorporateLPN <"Matrix Transaction Type of STANDARD EMERGING EUROPEAN FINANCIAL CORPORATE LPN."> - StandardEuropeanCoCoFinancialCorporate <"Matrix Transaction Type of STANDARD EUROPEAN COCO FINANCIAL CORPORATE."> - StandardEuropeanCorporate <"Matrix Transaction Type of STANDARD EUROPEAN CORPORATE."> - StandardEuropeanFinancialCorporate <"Matrix Transaction Type of STANDARD EUROPEAN FINANCIAL CORPORATE."> - StandardEuropeanSeniorNonPreferredFinancialCorporate <"Matrix Transaction Type of STANDARD EUROPEAN SENIOR NON PREFERRED FINANCIAL CORPORATE."> - StandardJapanCorporate <"Matrix Transaction Type of STANDARD JAPAN CORPORATE."> - StandardJapanFinancialCorporate <"Matrix Transaction Type of STANDARD JAPAN FINANCIAL CORPORATE."> - StandardJapanSovereign <"Matrix Transaction Type of STANDARD JAPAN SOVEREIGN."> - StandardLatinAmericaCorporateBond <"Matrix Transaction Type of STANDARD LATIN AMERICA CORPORATE B."> - StandardLatinAmericaCorporateBondOrLoan <"Matrix Transaction Type of STANDARD LATIN AMERICA CORPORATE BL."> - StandardLatinAmericaFinancialCorporateBond <"Matrix Transaction Type of STANDARD LATIN AMERICA FINANCIAL CORPORATE B."> - StandardLatinAmericaFinancialCorporateBondOrLoan <"Matrix Transaction Type of STANDARD LATIN AMERICA FINANCIAL CORPORATE BL."> - StandardLatinAmericaSovereign <"Matrix Transaction Type of STANDARD LATIN AMERICA SOVEREIGN."> - StandardNewZealandCorporate <"Matrix Transaction Type of STANDARD NEW ZEALAND CORPORATE."> - StandardNewZealandFinancialCorporate <"Matrix Transaction Type of STANDARD NEW ZEALAND FINANCIAL CORPORATE."> - StandardNewZealandSovereign <"Matrix Transaction Type of STANDARD NEW ZEALAND SOVEREIGN."> - StandardNorthAmericanCorporate <"Matrix Transaction Type of STANDARD NORTH AMERICAN CORPORATE."> - StandardNorthAmericanFinancialCorporate <"Matrix Transaction Type of STANDARD NORTH AMERICAN FINANCIAL CORPORATE."> - StandardSingaporeCorporate <"Matrix Transaction Type of STANDARD SINGAPORE CORPORATE."> - StandardSingaporeFinancialCorporate <"Matrix Transaction Type of STANDARD SINGAPORE FINANCIAL CORPORATE."> - StandardSingaporeSovereign <"Matrix Transaction Type of STANDARD SINGAPORE SOVEREIGN."> - StandardSubordinatedEuropeanInsuranceCorporate <"Transaction Type of STANDARD SUBORDINATED EUROPEAN INSURANCE CORPORATE."> - StandardSukukFinancialCorporate <"Matrix Transaction Type of STANDARD SUKUK FINANCIAL CORPORATE."> - StandardUSMunicipalFullFaithAndCredit <"Matrix Transaction Type of STANDARD U.S. MUNICIPAL FULL FAITH AND CREDIT."> - StandardUSMunicipalGeneralFund <"Matrix Transaction Type of STANDARD U.S. MUNICIPAL GENERAL FUND."> - StandardUSMunicipalRevenue <"Matrix Transaction Type of STANDARD U.S. MUNICIPAL REVENUE."> - StandardWesternEuropeanSovereign <"Matrix Transaction Type of STANDARD WESTERN EUROPEAN SOVEREIGN."> - SubordinatedEuropeanInsuranceCorporate <"Matrix Transaction Type of SUBORDINATED EUROPEAN INSURANCE CORPORATE."> - SukukCorporate <"Matrix Transaction Type of SUKUK CORPORATE."> - SukukFinancialCorporate <"Matrix Transaction Type of SUKUK FINANCIAL CORPORATE."> - SukukSovereign <"Matrix Transaction Type of SUKUK SOVEREIGN."> - USMunicipalFullFaithAndCredit <"Matrix Transaction Type of U.S. MUNICIPAL FULL FAITH AND CREDIT."> - USMunicipalGeneralFund <"Matrix Transaction Type of U.S. MUNICIPAL GENERAL FUND."> - USMunicipalRevenue <"Matrix Transaction Type of U.S. MUNICIPAL REVENUE."> - WesternEuropeanSovereign <"Matrix Transaction Type of WESTERN EUROPEAN SOVEREIGN."> + AsiaCorporate <"Matrix Transaction Type of ASIA CORPORATE."> + AsiaFinancialCorporate <"Matrix Transaction Type of ASIA FINANCIAL CORPORATE."> + AsiaSovereign <"Matrix Transaction Type of ASIA SOVEREIGN."> + AustraliaCorporate <"Matrix Transaction Type of AUSTRALIA CORPORATE."> + AustraliaFinancialCorporate <"Matrix Transaction Type of AUSTRALIA FINANCIAL CORPORATE."> + AustraliaSovereign <"Matrix Transaction Type of AUSTRALIA SOVEREIGN."> + EmergingEuropeanAndMiddleEasternSovereign <"Matrix Transaction Type of EMERGING EUROPEAN AND MIDDLE EASTERN SOVEREIGN."> + EmergingEuropeanCorporate <"Matrix Transaction Type of EMERGING EUROPEAN CORPORATE."> + EmergingEuropeanCorporateLPN <"Matrix Transaction Type of EMERGING EUROPEAN CORPORATE LPN."> + EmergingEuropeanFinancialCorporate <"Matrix Transaction Type of EMERGING EUROPEAN FINANCIAL CORPORATE."> + EmergingEuropeanFinancialCorporateLPN <"Matrix Transaction Type of EMERGING EUROPEAN FINANCIAL CORPORATE LPN."> + EuropeanCoCoFinancialCorporate <"Matrix Transaction Type of EUROPEAN COCO FINANCIAL CORPORATE."> + EuropeanCorporate <"Matrix Transaction Type of EUROPEAN CORPORATE."> + EuropeanFinancialCorporate <"Matrix Transaction Type of EUROPEAN FINANCIAL CORPORATE."> + EuropeanSeniorNonPreferredFinancialCorporate <"Matrix Transaction Type of EUROPEAN SENIOR NON PREFERRED FINANCIAL CORPORATE."> + IVS1OpenMarkets <"The ISDA-published 2011 Index Volatility Swap Agreement for Open Markets."> + JapanCorporate <"Matrix Transaction Type of JAPAN CORPORATE."> + JapanFinancialCorporate <"Matrix Transaction Type of JAPAN FINANCIAL CORPORATE."> + JapanSovereign <"Matrix Transaction Type of JAPAN SOVEREIGN."> + LatinAmericaCorporate <"Matrix Transaction Type of LATIN AMERICA CORPORATE."> + LatinAmericaCorporateBond <"Matrix Transaction Type of LATIN AMERICA CORPORATE B."> + LatinAmericaCorporateBondOrLoan <"Matrix Transaction Type of LATIN AMERICA CORPORATE BL."> + LatinAmericaFinancialCorporateBond <"Matrix Transaction Type of LATIN AMERICA FINANCIAL CORPORATE B."> + LatinAmericaFinancialCorporateBondOrLoan <"Matrix Transaction Type of LATIN AMERICA FINANCIAL CORPORATE BL."> + LatinAmericaSovereign <"Matrix Transaction Type of LATIN AMERICA SOVEREIGN."> + NewZealandCorporate <"Matrix Transaction Type of NEW ZEALAND CORPORATE."> + NewZealandFinancialCorporate <"Matrix Transaction Type of NEW ZEALAND FINANCIAL CORPORATE."> + NewZealandSovereign <"Matrix Transaction Type of NEW ZEALAND SOVEREIGN."> + NorthAmericanCorporate <"Matrix Transaction Type of NORTH AMERICAN CORPORATE."> + NorthAmericanFinancialCorporate <"Matrix Transaction Type of NORTH AMERICAN FINANCIAL CORPORATE."> + SingaporeCorporate <"Matrix Transaction Type of SINGAPORE CORPORATE."> + SingaporeFinancialCorporate <"Matrix Transaction Type of SINGAPORE FINANCIAL CORPORATE."> + SingaporeSovereign <"Matrix Transaction Type of SINGAPORE SOVEREIGN."> + StandardAsiaCorporate <"Matrix Transaction Type of STANDARD ASIA CORPORATE."> + StandardAsiaFinancialCorporate <"Matrix Transaction Type of STANDARD ASIA FINANCIAL CORPORATE."> + StandardAsiaSovereign <"Matrix Transaction Type of STANDARD ASIA SOVEREIGN."> + StandardAustraliaCorporate <"Matrix Transaction Type of STANDARD AUSTRALIA CORPORATE."> + StandardAustraliaFinancialCorporate <"Matrix Transaction Type of STANDARD AUSTRALIA FINANCIAL CORPORATE."> + StandardAustraliaSovereign <"Matrix Transaction Type of STANDARD AUSTRALIA SOVEREIGN."> + StandardEmergingEuropeanAndMiddleEasternSovereign <"Matrix Transaction Type of STANDARD EMERGING EUROPEAN AND MIDDLE EASTERN SOVEREIGN."> + StandardEmergingEuropeanCorporate <"Matrix Transaction Type of STANDARD EMERGING EUROPEAN CORPORATE."> + StandardEmergingEuropeanCorporateLPN <"Matrix Transaction Type of STANDARD EMERGING EUROPEAN CORPORATE LPN."> + StandardEmergingEuropeanFinancialCorporate <"Matrix Transaction Type of STANDARD EMERGING EUROPEAN FINANCIAL CORPORATE."> + StandardEmergingEuropeanFinancialCorporateLPN <"Matrix Transaction Type of STANDARD EMERGING EUROPEAN FINANCIAL CORPORATE LPN."> + StandardEuropeanCoCoFinancialCorporate <"Matrix Transaction Type of STANDARD EUROPEAN COCO FINANCIAL CORPORATE."> + StandardEuropeanCorporate <"Matrix Transaction Type of STANDARD EUROPEAN CORPORATE."> + StandardEuropeanFinancialCorporate <"Matrix Transaction Type of STANDARD EUROPEAN FINANCIAL CORPORATE."> + StandardEuropeanSeniorNonPreferredFinancialCorporate <"Matrix Transaction Type of STANDARD EUROPEAN SENIOR NON PREFERRED FINANCIAL CORPORATE."> + StandardJapanCorporate <"Matrix Transaction Type of STANDARD JAPAN CORPORATE."> + StandardJapanFinancialCorporate <"Matrix Transaction Type of STANDARD JAPAN FINANCIAL CORPORATE."> + StandardJapanSovereign <"Matrix Transaction Type of STANDARD JAPAN SOVEREIGN."> + StandardLatinAmericaCorporateBond <"Matrix Transaction Type of STANDARD LATIN AMERICA CORPORATE B."> + StandardLatinAmericaCorporateBondOrLoan <"Matrix Transaction Type of STANDARD LATIN AMERICA CORPORATE BL."> + StandardLatinAmericaFinancialCorporateBond <"Matrix Transaction Type of STANDARD LATIN AMERICA FINANCIAL CORPORATE B."> + StandardLatinAmericaFinancialCorporateBondOrLoan <"Matrix Transaction Type of STANDARD LATIN AMERICA FINANCIAL CORPORATE BL."> + StandardLatinAmericaSovereign <"Matrix Transaction Type of STANDARD LATIN AMERICA SOVEREIGN."> + StandardNewZealandCorporate <"Matrix Transaction Type of STANDARD NEW ZEALAND CORPORATE."> + StandardNewZealandFinancialCorporate <"Matrix Transaction Type of STANDARD NEW ZEALAND FINANCIAL CORPORATE."> + StandardNewZealandSovereign <"Matrix Transaction Type of STANDARD NEW ZEALAND SOVEREIGN."> + StandardNorthAmericanCorporate <"Matrix Transaction Type of STANDARD NORTH AMERICAN CORPORATE."> + StandardNorthAmericanFinancialCorporate <"Matrix Transaction Type of STANDARD NORTH AMERICAN FINANCIAL CORPORATE."> + StandardSingaporeCorporate <"Matrix Transaction Type of STANDARD SINGAPORE CORPORATE."> + StandardSingaporeFinancialCorporate <"Matrix Transaction Type of STANDARD SINGAPORE FINANCIAL CORPORATE."> + StandardSingaporeSovereign <"Matrix Transaction Type of STANDARD SINGAPORE SOVEREIGN."> + StandardSubordinatedEuropeanInsuranceCorporate <"Transaction Type of STANDARD SUBORDINATED EUROPEAN INSURANCE CORPORATE."> + StandardSukukFinancialCorporate <"Matrix Transaction Type of STANDARD SUKUK FINANCIAL CORPORATE."> + StandardUSMunicipalFullFaithAndCredit <"Matrix Transaction Type of STANDARD U.S. MUNICIPAL FULL FAITH AND CREDIT."> + StandardUSMunicipalGeneralFund <"Matrix Transaction Type of STANDARD U.S. MUNICIPAL GENERAL FUND."> + StandardUSMunicipalRevenue <"Matrix Transaction Type of STANDARD U.S. MUNICIPAL REVENUE."> + StandardWesternEuropeanSovereign <"Matrix Transaction Type of STANDARD WESTERN EUROPEAN SOVEREIGN."> + SubordinatedEuropeanInsuranceCorporate <"Matrix Transaction Type of SUBORDINATED EUROPEAN INSURANCE CORPORATE."> + SukukCorporate <"Matrix Transaction Type of SUKUK CORPORATE."> + SukukFinancialCorporate <"Matrix Transaction Type of SUKUK FINANCIAL CORPORATE."> + SukukSovereign <"Matrix Transaction Type of SUKUK SOVEREIGN."> + USMunicipalFullFaithAndCredit <"Matrix Transaction Type of U.S. MUNICIPAL FULL FAITH AND CREDIT."> + USMunicipalGeneralFund <"Matrix Transaction Type of U.S. MUNICIPAL GENERAL FUND."> + USMunicipalRevenue <"Matrix Transaction Type of U.S. MUNICIPAL REVENUE."> + WesternEuropeanSovereign <"Matrix Transaction Type of WESTERN EUROPEAN SOVEREIGN."> enum MatrixTypeEnum: <"The enumerated values to specify the identification the form of applicable matrix."> - CreditDerivativesPhysicalSettlementMatrix <"The ISDA-published Credit Derivatives Physical Settlement Matrix."> - EquityDerivativesMatrix <"The ISDA-published Equity Derivatives Matrix."> - SettlementMatrix <"The ISDA-published 2000 ISDA Definitions Settlement Matrix for Early Terminations and Swaptions."> + CreditDerivativesPhysicalSettlementMatrix <"The ISDA-published Credit Derivatives Physical Settlement Matrix."> + EquityDerivativesMatrix <"The ISDA-published Equity Derivatives Matrix."> + SettlementMatrix <"The ISDA-published 2000 ISDA Definitions Settlement Matrix for Early Terminations and Swaptions."> enum ResourceTypeEnum: <"The enumerated values to specify the type of a resource (e.g. document)."> - Confirmation <"Document describing the legal terms of a transaction."> - SupplementalMaterialEconomicTerms <"Document providing supplemental material economic terms to the FpML data representation. The initial intended usage is to fulfill the CFTC Part 45 rule requirement to report ‘Any other terms(s) of the swap matched or affirmed by the counterparties in verifying the swap’ when the reporting is done via the generic FpML representation."> - TermSheet <"Document describing the economic characteristics of a transaction."> + Confirmation <"Document describing the legal terms of a transaction."> + SupplementalMaterialEconomicTerms <"Document providing supplemental material economic terms to the FpML data representation. The initial intended usage is to fulfill the CFTC Part 45 rule requirement to report ‘Any other terms(s) of the swap matched or affirmed by the counterparties in verifying the swap’ when the reporting is done via the generic FpML representation."> + TermSheet <"Document describing the economic characteristics of a transaction."> enum LegalAgreementTypeEnum: <"The enumerated values to specify the legal agreement type."> - [synonym AcadiaSoft_AM_1_0 value "DocumentNameEnum"] + [synonym AcadiaSoft_AM_1_0 value "DocumentNameEnum"] - BrokerConfirmation <"A Broker Confirmation."> - Confirmation <"A Transaction Confirmation."> - CreditSupportAgreement <"A Credit Support Agreement."> - MasterAgreement <"A Master Agreement."> - MasterConfirmation <"A Master Confirmation."> - SecurityAgreement <"A Security Agreement related to a Collateral Transfer Agreement (CTA)."> - Other <"Another type of agreement."> + BrokerConfirmation <"A Broker Confirmation."> + Confirmation <"A Transaction Confirmation."> + CreditSupportAgreement <"A Credit Support Agreement."> + MasterAgreement <"A Master Agreement."> + MasterConfirmation <"A Master Confirmation."> + SecurityAgreement <"A Security Agreement related to a Collateral Transfer Agreement (CTA)."> + Other <"Another type of agreement."> enum LegalAgreementPublisherEnum: <"The enumerated values to specify the legal agreement publisher."> [synonym AcadiaSoft_AM_1_0 value "PublisherEnum"] - AFB <"Association Française des Banques."> - BNYM <"BNY Mellon"> - ISDAClearstream <"ISDA and Clearstream"> + AFB <"Association Française des Banques."> + BNYM <"BNY Mellon"> + ISDAClearstream <"ISDA and Clearstream"> EMTA <"Emerging Markets Traders Association"> - TheFXCommittee <"The Foreign Exchange Committee"> - ISDAEuroclear <"ISDA and Euroclear"> - ISDA <"International Swaps and Derivatives Association, Inc."> - [synonym AcadiaSoft_AM_1_0 value "ISDA"] - ISLA <"International Securities Lending Association"> - JPMorgan <"JP Morgan"> - ICMA <"International Capital Markets Association"> + TheFXCommittee <"The Foreign Exchange Committee"> + ISDAEuroclear <"ISDA and Euroclear"> + ISDA <"International Swaps and Derivatives Association, Inc."> + [synonym AcadiaSoft_AM_1_0 value "ISDA"] + ISLA <"International Securities Lending Association"> + JPMorgan <"JP Morgan"> + ICMA <"International Capital Markets Association"> enum ExecutionLocationEnum: <"The enumerated values to specify the Execution Location of a Security Agreement"> - ExecutedOutsideBelgium <"The Agreement was executed outside of Belgium"> - ExecutedInBelgium <"The Agreement was executed outside of Belgium"> - OtherLocation <"An alternative approach is described in the document as follows."> + ExecutedOutsideBelgium <"The Agreement was executed outside of Belgium"> + ExecutedInBelgium <"The Agreement was executed outside of Belgium"> + OtherLocation <"An alternative approach is described in the document as follows."> enum CreditSupportDocumentTermsEnum: <"The enumerated values to specify the Credit Support Document Terms"> - Specified <"A specified Credit Support Document is provided"> - Any <"Any guarantee, collateral arrangement and/or other agreement or arrangement which provides for credit support with respect to the party’s obligations under this Agreement."> - None <"No Credit Support Document is specified."> + Specified <"A specified Credit Support Document is provided"> + Any <"Any guarantee, collateral arrangement and/or other agreement or arrangement which provides for credit support with respect to the party’s obligations under this Agreement."> + None <"No Credit Support Document is specified."> enum CreditSupportProviderTermsEnum: <"The enumerated values to specify the Credit Support Provider Terms"> - Specified <"A specified Credit Support Provider is provided"> - Any <"Any party or parties who now or in the future may provide a Credit Support Document or other form of credit support."> - None <"No Credit Support Provider is specified."> + Specified <"A specified Credit Support Provider is provided"> + Any <"Any party or parties who now or in the future may provide a Credit Support Document or other form of credit support."> + None <"No Credit Support Provider is specified."> enum SpecifiedEntityClauseEnum: <"The enumerated values to specify the Event of Default or Termination event for which Specified Entities terms are being defined."> - DefaultUnderSpecifiedTransaction - CrossDefault - Bankruptcy - CreditEventUponMerger + DefaultUnderSpecifiedTransaction + CrossDefault + Bankruptcy + CreditEventUponMerger enum SpecifiedEntityTermsEnum: <"The enumerated values to specify the specified entity terms for the Event of Default or Termination Event specified."> - None <"No Specified Entity is provided"> - AnyAffiliate <"Any Affiliate is a Specified Entity."> - NamedSpecifiedEntity <"The Specified Entity is provided."> - MaterialSubsidiary <"Any Material Subsidiary."> - OtherSpecifiedEntity <"Non standard Specified Entity terms are provided."> + None <"No Specified Entity is provided"> + AnyAffiliate <"Any Affiliate is a Specified Entity."> + NamedSpecifiedEntity <"The Specified Entity is provided."> + MaterialSubsidiary <"Any Material Subsidiary."> + OtherSpecifiedEntity <"Non standard Specified Entity terms are provided."> enum TerminationCurrencyConditionEnum: - PaymentsDue <"A currency in which payments would be due under one or more Transactions."> - FreelyAvailable <"A currency that is freely available."> - PaymentsDueAndFreelyAvailable <"A currency in which payments would be due under one or more Transactions and that is freely available."> - Specified <"Termination Currency Conditions are specified."> + PaymentsDue <"A currency in which payments would be due under one or more Transactions."> + FreelyAvailable <"A currency that is freely available."> + PaymentsDueAndFreelyAvailable <"A currency in which payments would be due under one or more Transactions and that is freely available."> + Specified <"Termination Currency Conditions are specified."> enum ClosedStateEnum: <"The enumerated values to specify what led to the contract or execution closure."> - Allocated <"The execution or contract has been allocated."> - Cancelled <"The execution or contract has been cancelled."> - Exercised <"The (option) contract has been exercised."> - Expired <"The (option) contract has expired without being exercised."> - Matured <"The contract has reached its contractual termination date."> - Novated <"The contract has been novated. This state applies to the stepped-out contract component of the novation event."> - Terminated <"The contract has been subject of an early termination event."> - + Allocated <"The execution or contract has been allocated."> + Cancelled <"The execution or contract has been cancelled."> + Exercised <"The (option) contract has been exercised."> + Expired <"The (option) contract has expired without being exercised."> + Matured <"The contract has reached its contractual termination date."> + Novated <"The contract has been novated. This state applies to the stepped-out contract component of the novation event."> + Terminated <"The contract has been subject of an early termination event."> diff --git a/rosetta-source/src/main/rosetta/legaldocumentation-common-func.rosetta b/rosetta-source/src/main/rosetta/legaldocumentation-common-func.rosetta index dda48ab200..a440496073 100644 --- a/rosetta-source/src/main/rosetta/legaldocumentation-common-func.rosetta +++ b/rosetta-source/src/main/rosetta/legaldocumentation-common-func.rosetta @@ -1,4 +1,3 @@ namespace cdm.legaldocumentation.common : <"Common legal agreement concepts."> version "${project.version}" - // TODO: delete this file diff --git a/rosetta-source/src/main/rosetta/legaldocumentation-common-type.rosetta b/rosetta-source/src/main/rosetta/legaldocumentation-common-type.rosetta index f376cf189e..33f14ac9e1 100644 --- a/rosetta-source/src/main/rosetta/legaldocumentation-common-type.rosetta +++ b/rosetta-source/src/main/rosetta/legaldocumentation-common-type.rosetta @@ -12,171 +12,178 @@ import cdm.mapping.config.* type ContractualMatrix: - matrixType MatrixTypeEnum (1..1) <"Identifies the form of applicable matrix."> - [metadata scheme] - matrixTerm MatrixTermEnum (0..1) <"Defines any applicable key into the relevant matrix. For example, the Transaction Type would be the single term required for the Credit Derivatives Physical Settlement Matrix. This element should be omitted in the case of the 2000 ISDA Definitions Settlement Matrix for Early Termination and Swaptions."> - [metadata scheme] + matrixType MatrixTypeEnum (1..1) <"Identifies the form of applicable matrix."> + [metadata scheme] + matrixTerm MatrixTermEnum (0..1) <"Defines any applicable key into the relevant matrix. For example, the Transaction Type would be the single term required for the Credit Derivatives Physical Settlement Matrix. This element should be omitted in the case of the 2000 ISDA Definitions Settlement Matrix for Early Termination and Swaptions."> + [metadata scheme] type ContractualTermsSupplement: <"A contractual supplement (such as those published by ISDA) and its publication date that will apply to the trade."> - contractualTermsSupplementType ContractualSupplementTypeEnum (1..1) <"Identifies the form of applicable contractual supplement."> - [metadata scheme] - publicationDate date (0..1) <"Specifies the publication date of the applicable version of the contractual supplement."> + contractualTermsSupplementType ContractualSupplementTypeEnum (1..1) <"Identifies the form of applicable contractual supplement."> + [metadata scheme] + publicationDate date (0..1) <"Specifies the publication date of the applicable version of the contractual supplement."> type OtherAgreement: <"A class for defining an agreement executed between parties."> - identifier string (0..1) <"An identifier that has been created to identify the agreement."> - [metadata scheme] - otherAgreementType string (1..1) <"The agreement executed between the parties and intended to govern product-specific derivatives transactions between those parties."> - [metadata scheme] - version string (0..1) <"The version of the agreement."> - [metadata scheme] - date date (0..1) <"The date on which the agreement was signed."> + identifier string (0..1) <"An identifier that has been created to identify the agreement."> + [metadata scheme] + otherAgreementType string (1..1) <"The agreement executed between the parties and intended to govern product-specific derivatives transactions between those parties."> + [metadata scheme] + version string (0..1) <"The version of the agreement."> + [metadata scheme] + date date (0..1) <"The date on which the agreement was signed."> type Resource: <"Describes the resource that contains the media representation of a business event (i.e used for stating the Publicly Available Information). For example, can describe a file or a URL that represents the event. This type is an extended version of a type defined by RIXML (www.rixml.org). Rosetta restricts the FpML implementation by not providing the ability to associated a document in hexadecimalBinary or base64Binary until such time that actual use cases will come up."> - resourceId string (1..1) <"The unique identifier of the resource within the event. FpML specifies this element of type resourceIdScheme but with no specified value."> - [metadata scheme] - resourceType ResourceTypeEnum (0..1) <"A description of the type of the resource, e.g. a confirmation."> - [metadata scheme] - language string (0..1) <"Indicates the language of the resource, described using the ISO 639-2/T Code."> - [metadata scheme] - sizeInBytes number (0..1) <"Indicates the size of the resource in bytes. It could be used by the end user to estimate the download time and storage needs."> - length ResourceLength (0..1) <"Indicates the length of the resource. For example, if the resource were a PDF file, the length would be in pages."> - mimeType string (0..1) <"Indicates the type of media used to store the content. mimeType is used to determine the software product(s) that can read the content. MIME Types are described in RFC 2046."> - [metadata scheme] - name string (0..1) <"The name of the resource. It is specified as a NormalizedString in FpML."> - comments string (0..1) <"Any additional comments that are deemed necessary. For example, which software version is required to open the document? Or, how does this resource relate to the others for this event?"> - string string (0..1) <"Provides extra information as string. In case the extra information is in XML format, a CDATA section must be placed around the source message to prevent its interpretation as XML content."> - url string (0..1) <"Indicates where the resource can be found, as a URL that references the information on a web server accessible to the message recipient."> - - condition ResourceChoice: <"Choice rule to represent an FpML choice construct. Note that FpML also provides the ability to have hexadecimalBinary or base64Binary, which have not been implemented in Rosetta until we see actual use cases."> - optional choice string, url + resourceId string (1..1) <"The unique identifier of the resource within the event. FpML specifies this element of type resourceIdScheme but with no specified value."> + [metadata scheme] + resourceType ResourceTypeEnum (0..1) <"A description of the type of the resource, e.g. a confirmation."> + [metadata scheme] + language string (0..1) <"Indicates the language of the resource, described using the ISO 639-2/T Code."> + [metadata scheme] + sizeInBytes number (0..1) <"Indicates the size of the resource in bytes. It could be used by the end user to estimate the download time and storage needs."> + length ResourceLength (0..1) <"Indicates the length of the resource. For example, if the resource were a PDF file, the length would be in pages."> + mimeType string (0..1) <"Indicates the type of media used to store the content. mimeType is used to determine the software product(s) that can read the content. MIME Types are described in RFC 2046."> + [metadata scheme] + name string (0..1) <"The name of the resource. It is specified as a NormalizedString in FpML."> + comments string (0..1) <"Any additional comments that are deemed necessary. For example, which software version is required to open the document? Or, how does this resource relate to the others for this event?"> + string string (0..1) <"Provides extra information as string. In case the extra information is in XML format, a CDATA section must be placed around the source message to prevent its interpretation as XML content."> + url string (0..1) <"Indicates where the resource can be found, as a URL that references the information on a web server accessible to the message recipient."> + + condition ResourceChoice: <"Choice rule to represent an FpML choice construct. Note that FpML also provides the ability to have hexadecimalBinary or base64Binary, which have not been implemented in Rosetta until we see actual use cases."> + optional choice string, url type ResourceLength: <"A class to indicate the length of the resource."> - lengthUnit LengthUnitEnum (1..1) <"The length unit of the resource. For example, pages (pdf, text documents) or time (audio, video files)."> - lengthValue number (1..1) <"The length value of the resource."> + lengthUnit LengthUnitEnum (1..1) <"The length unit of the resource. For example, pages (pdf, text documents) or time (audio, video files)."> + lengthValue number (1..1) <"The length value of the resource."> type AgreementTerms: <"Specification of the content of a legal agreement."> - agreement Agreement (1..1) <"Specification of the standard set of terms that define a legal agreement."> - clauseLibrary boolean (0..1) <"Specification of whether the agreement terms have been negotiated using the clause library methodology."> - counterparty Counterparty (2..2) <"Specification of the roles of the counterparties to the agreement."> + agreement Agreement (1..1) <"Specification of the standard set of terms that define a legal agreement."> + clauseLibrary boolean (0..1) <"Specification of whether the agreement terms have been negotiated using the clause library methodology."> + counterparty Counterparty (2..2) <"Specification of the roles of the counterparties to the agreement."> type LegalAgreement extends LegalAgreementBase: <"The specification of a legal agreement between two parties, being negotiated or having been executed. This includes the baseline information and the optional specialised elections"> - [metadata key] - [rootType] - - agreementTerms AgreementTerms (0..1) <"Specification of the content of the legal agreement."> - relatedAgreements LegalAgreement (0..*) <"Specifies the agreement(s) that govern the agreement, either as a reference to such agreements when specified as part of the CDM, or through identification of some of the key terms of those agreements, such as the type of agreement, the publisher, the vintage, the agreement identifier and the agreement date."> - umbrellaAgreement UmbrellaAgreement (0..1) <"The determination of whether Umbrella Agreement terms are applicable (True) or Not Applicable (False)."> - - condition ConsistentlyExecutedAgreements: <"An executed agreement can only point to executed related agreements if any."> - if relatedAgreements exists and agreementDate exists then relatedAgreements -> agreementDate exists - - condition AgreementVerification: <"A validation rule to ensure that the agreement elections are associated with the correct legal agreement type as specified."> - if agreementTerms -> agreement -> securityAgreementElections exists - then legalAgreementIdentification -> agreementName -> agreementType = LegalAgreementTypeEnum->SecurityAgreement - else if agreementTerms -> agreement -> creditSupportAgreementElections exists - then legalAgreementIdentification -> agreementName -> creditSupportAgreementType = CreditSupportAgreementTypeEnum->CreditSupportAnnex or - legalAgreementIdentification -> agreementName -> creditSupportAgreementType = CreditSupportAgreementTypeEnum->CreditSupportDeed - else if agreementTerms -> agreement -> collateralTransferAgreementElections exists - then legalAgreementIdentification -> agreementName -> creditSupportAgreementType = CreditSupportAgreementTypeEnum->CollateralTransferAgreement - else if agreementTerms -> agreement -> masterAgreementSchedule exists - then legalAgreementIdentification -> agreementName -> agreementType = LegalAgreementTypeEnum->MasterAgreement + [metadata key] + [rootType] + + agreementTerms AgreementTerms (0..1) <"Specification of the content of the legal agreement."> + relatedAgreements LegalAgreement (0..*) <"Specifies the agreement(s) that govern the agreement, either as a reference to such agreements when specified as part of the CDM, or through identification of some of the key terms of those agreements, such as the type of agreement, the publisher, the vintage, the agreement identifier and the agreement date."> + umbrellaAgreement UmbrellaAgreement (0..1) <"The determination of whether Umbrella Agreement terms are applicable (True) or Not Applicable (False)."> + + condition ConsistentlyExecutedAgreements: <"An executed agreement can only point to executed related agreements if any."> + if relatedAgreements exists and agreementDate exists + then relatedAgreements -> agreementDate exists + + condition AgreementVerification: <"A validation rule to ensure that the agreement elections are associated with the correct legal agreement type as specified."> + if agreementTerms -> agreement -> securityAgreementElections exists + then legalAgreementIdentification -> agreementName -> agreementType = LegalAgreementTypeEnum -> SecurityAgreement + else if agreementTerms -> agreement -> creditSupportAgreementElections exists + then legalAgreementIdentification -> agreementName -> creditSupportAgreementType = CreditSupportAgreementTypeEnum -> CreditSupportAnnex + or legalAgreementIdentification -> agreementName -> creditSupportAgreementType = CreditSupportAgreementTypeEnum -> CreditSupportDeed + else if agreementTerms -> agreement -> collateralTransferAgreementElections exists + then legalAgreementIdentification -> agreementName -> creditSupportAgreementType = CreditSupportAgreementTypeEnum -> CollateralTransferAgreement + else if agreementTerms -> agreement -> masterAgreementSchedule exists + then legalAgreementIdentification -> agreementName -> agreementType = LegalAgreementTypeEnum -> MasterAgreement type LegalAgreementBase: <"Specifies the legal agreement baseline information, being negotiated or having been executed. It excludes specialized elections"> - agreementDate date (0..1) <"The date on which the legal agreement has been agreed between the parties. This corresponds to the Date of Deed in an English Law document."> - effectiveDate date (0..1) <"The date on which, or as of which, the agreement is effective, if different from the agreement date. It is expected that it will most often correspond to the agreement date, although there could be situations where the parties will explicitly agree on a distinct effective date."> - identifier Identifier (0..*) <"The legal agreement identifier. Several identifiers can be specified."> - legalAgreementIdentification LegalAgreementIdentification (1..1) <"The type of legal agreement, identified via a set of composable attributes: agreementName, publisher, governing law and version, e.g. ISDA 2013 Standard Credit Support Annex English Law."> - contractualParty Party (2..2) <"The two contractual parties to the legal agreement, which reference information is positioned as part of the partyInformation attribute."> - [metadata reference] - otherParty PartyRole (0..*) <"The role(s) that other party(ies) may have in relation to the legal agreement, further to the contractual parties."> + agreementDate date (0..1) <"The date on which the legal agreement has been agreed between the parties. This corresponds to the Date of Deed in an English Law document."> + effectiveDate date (0..1) <"The date on which, or as of which, the agreement is effective, if different from the agreement date. It is expected that it will most often correspond to the agreement date, although there could be situations where the parties will explicitly agree on a distinct effective date."> + identifier Identifier (0..*) <"The legal agreement identifier. Several identifiers can be specified."> + legalAgreementIdentification LegalAgreementIdentification (1..1) <"The type of legal agreement, identified via a set of composable attributes: agreementName, publisher, governing law and version, e.g. ISDA 2013 Standard Credit Support Annex English Law."> + contractualParty Party (2..2) <"The two contractual parties to the legal agreement, which reference information is positioned as part of the partyInformation attribute."> + [metadata reference] + otherParty PartyRole (0..*) <"The role(s) that other party(ies) may have in relation to the legal agreement, further to the contractual parties."> attachment Resource (0..*) <"A human readable document, for example a confirmation."> type LegalAgreementIdentification: <"Specifies the type of legal agreement, identified via a set of composable attributes: agreementName, publisher, governing law and version, e.g. ISDA 2013 Standard Credit Support Annex English Law."> - governingLaw GoverningLawEnum (0..1) <"The law governing the legal agreement, e.g. English Law, New York Law or Japanese Law."> + governingLaw GoverningLawEnum (0..1) <"The law governing the legal agreement, e.g. English Law, New York Law or Japanese Law."> [synonym AcadiaSoft_AM_1_0 value "governingLaw"] agreementName AgreementName (1..1) <"The legal agreement name, e.g. Credit Support Annex for Variation Margin."> - [synonym AcadiaSoft_AM_1_0 value "documentName"] - publisher LegalAgreementPublisherEnum (0..1) <"The legal agreement publisher, e.g. ISDA."> - [synonym AcadiaSoft_AM_1_0 value "publisher"] - vintage int (0..1) <"In the case where successive definitions of the legal agreement have been developed, the vintage identification. This is typically (but not necessarily) done by referencing the year, e.g. 2013 in the case of the ISDA 2013 Standard Credit Support Annex."> - [synonym AcadiaSoft_AM_1_0 value "csaVersion"] + [synonym AcadiaSoft_AM_1_0 value "documentName"] + publisher LegalAgreementPublisherEnum (0..1) <"The legal agreement publisher, e.g. ISDA."> + [synonym AcadiaSoft_AM_1_0 value "publisher"] + vintage int (0..1) <"In the case where successive definitions of the legal agreement have been developed, the vintage identification. This is typically (but not necessarily) done by referencing the year, e.g. 2013 in the case of the ISDA 2013 Standard Credit Support Annex."> + [synonym AcadiaSoft_AM_1_0 value "csaVersion"] - condition CSAMarginType: <"A condition to ensure that CSA margin type is only specified if a credit support agreemnt type is specified and its published vintage year is equal to or after 2016."> - if agreementName -> creditSupportAgreementMarginType exists then - agreementName -> creditSupportAgreementType exists and vintage >= 2016 + condition CSAMarginType: <"A condition to ensure that CSA margin type is only specified if a credit support agreemnt type is specified and its published vintage year is equal to or after 2016."> + if agreementName -> creditSupportAgreementMarginType exists + then agreementName -> creditSupportAgreementType exists and vintage >= 2016 type AgreementName: <"Specifies the agreement name through an agreement type and optional detailed sub agreement type."> - agreementType LegalAgreementTypeEnum (1..1) <"Specification of the legal agreement type."> - creditSupportAgreementType CreditSupportAgreementTypeEnum (0..1) <"Specification of the credit support agreement type."> - [metadata scheme] - creditSupportAgreementMarginType CollateralMarginTypeEnum (0..1) <"specifies the type of margin for which a legal agreement is named."> + agreementType LegalAgreementTypeEnum (1..1) <"Specification of the legal agreement type."> + creditSupportAgreementType CreditSupportAgreementTypeEnum (0..1) <"Specification of the credit support agreement type."> + [metadata scheme] + creditSupportAgreementMarginType CollateralMarginTypeEnum (0..1) <"specifies the type of margin for which a legal agreement is named."> contractualDefinitionsType ContractualDefinitionsEnum (0..*) <"The definitions such as those published by ISDA that will define the terms of the trade."> - [metadata scheme] + [metadata scheme] contractualTermsSupplement ContractualTermsSupplement (0..*) <"A contractual supplement (such as those published by ISDA) that will apply to the trade."> - contractualMatrix ContractualMatrix (0..*) <"A reference to a contractual matrix of elected terms/values (such as those published by ISDA) that shall be deemed to apply to the trade. The applicable matrix is identified by reference to a name and optionally a publication date. Depending on the structure of the matrix, an additional term (specified in the matrixTerm element) may be required to further identify a subset of applicable terms/values within the matrix."> - masterAgreementType MasterAgreementTypeEnum (0..1) <"Specification of the master agreement type."> - [metadata scheme] + contractualMatrix ContractualMatrix (0..*) <"A reference to a contractual matrix of elected terms/values (such as those published by ISDA) that shall be deemed to apply to the trade. The applicable matrix is identified by reference to a name and optionally a publication date. Depending on the structure of the matrix, an additional term (specified in the matrixTerm element) may be required to further identify a subset of applicable terms/values within the matrix."> + masterAgreementType MasterAgreementTypeEnum (0..1) <"Specification of the master agreement type."> + [metadata scheme] masterConfirmationType MasterConfirmationTypeEnum (0..1) <"The type of master confirmation executed between the parties."> - [metadata scheme] - masterConfirmationAnnexType MasterConfirmationAnnexTypeEnum (0..1) <"The type of master confirmation annex executed between the parties."> - [metadata scheme] + [metadata scheme] + masterConfirmationAnnexType MasterConfirmationAnnexTypeEnum (0..1) <"The type of master confirmation annex executed between the parties."> + [metadata scheme] otherAgreement string (0..1) <"Definition of an agreement that is not enumerated in the CDM."> - condition AgreementType: <"A condition to ensure that the agreement type specified is consistent with the detailed documentation identified."> - if agreementType <> LegalAgreementTypeEnum -> Other then otherAgreement is absent - else if agreementType <> LegalAgreementTypeEnum -> MasterAgreement then masterAgreementType is absent - else if agreementType <> LegalAgreementTypeEnum -> MasterConfirmation then masterConfirmationType is absent and masterConfirmationAnnexType is absent - else if agreementType <> LegalAgreementTypeEnum -> Confirmation then contractualDefinitionsType is absent and contractualTermsSupplement is absent and contractualMatrix is absent - - condition CreditSupportAgreement: <"A condition to ensure that the credit supoort agreement type is specified when required."> - if agreementType = LegalAgreementTypeEnum -> CreditSupportAgreement then creditSupportAgreementType exists - - condition MasterConfirmation: <"If a master confirmation annex type is specified a master confirmation type must exist."> - if masterConfirmationAnnexType exists then masterConfirmationType exists - - condition CSAMarginType: <"A condition to ensure that CSA margin type is only specified if a credit support agreemnt type is specified."> - if creditSupportAgreementMarginType exists then creditSupportAgreementType exists + condition AgreementType: <"A condition to ensure that the agreement type specified is consistent with the detailed documentation identified."> + if agreementType <> LegalAgreementTypeEnum -> Other + then otherAgreement is absent + else if agreementType <> LegalAgreementTypeEnum -> MasterAgreement + then masterAgreementType is absent + else if agreementType <> LegalAgreementTypeEnum -> MasterConfirmation + then masterConfirmationType is absent and masterConfirmationAnnexType is absent + else if agreementType <> LegalAgreementTypeEnum -> Confirmation + then contractualDefinitionsType is absent + and contractualTermsSupplement is absent + and contractualMatrix is absent + + condition CreditSupportAgreement: <"A condition to ensure that the credit supoort agreement type is specified when required."> + if agreementType = LegalAgreementTypeEnum -> CreditSupportAgreement + then creditSupportAgreementType exists + + condition MasterConfirmation: <"If a master confirmation annex type is specified a master confirmation type must exist."> + if masterConfirmationAnnexType exists + then masterConfirmationType exists + + condition CSAMarginType: <"A condition to ensure that CSA margin type is only specified if a credit support agreemnt type is specified."> + if creditSupportAgreementMarginType exists + then creditSupportAgreementType exists type UmbrellaAgreement: <"A class to specify a set of legal entities which are part of a legal agreement beyond the two contracting parties to that agreement. This data representation reflects the ISDA Create representation."> - isApplicable boolean (1..1) <"The determination of whether Umbrella Agreement terms are Applicable (True), or Not Applicable (False)"> - language string (0..1) <"The language associated with the umbrella agreement, and which applies to all the parties to the umbrella agreement."> - parties UmbrellaAgreementEntity (0..*) <"Underlying principals to the umbrella agreement."> + isApplicable boolean (1..1) <"The determination of whether Umbrella Agreement terms are Applicable (True), or Not Applicable (False)"> + language string (0..1) <"The language associated with the umbrella agreement, and which applies to all the parties to the umbrella agreement."> + parties UmbrellaAgreementEntity (0..*) <"Underlying principals to the umbrella agreement."> - condition UmbrellaAgreementExists: <"Umbrella Agreement language and parties should not exist when Umbrella Agreement terms are Not Applicable."> - if isApplicable = True - then language exists and parties exists + condition UmbrellaAgreementExists: <"Umbrella Agreement language and parties should not exist when Umbrella Agreement terms are Not Applicable."> + if isApplicable = True then language exists and parties exists type UmbrellaAgreementEntity extends LegalEntity: <"A class to specify the legal entities that are part of the umbrella agreement."> - terms string (0..1) <"The terms that might be associated with each party to the umbrella agreement."> + terms string (0..1) <"The terms that might be associated with each party to the umbrella agreement."> type AddressForNotices: <"Specification of the address and other details for notices."> - primaryNotices ContactElection (1..1) <"Specification of primary notice details"> - additionalNotices PartyContactInformation (0..*) <"The optional specification of additional information when a party requires notices to be delivered to more than one address."> + primaryNotices ContactElection (1..1) <"Specification of primary notice details"> + additionalNotices PartyContactInformation (0..*) <"The optional specification of additional information when a party requires notices to be delivered to more than one address."> type OtherAgreementTerms: <"A class to specify a related legal agreement. For example, ISDA 2016 Credit Support Annex for Initial Margin, paragraph 13, General Principles, (s): Other CSA and Japanese Law CSA (VM). | ISDA 2016 Credit Support Annex for Variation Margin, paragraph 13, (o): Other CSA."> - isSpecified boolean (1..1) <"The qualification of whether some other related agreement is specified (True) or not (False)."> - legalDocument string (0..1) <"The specification of this other agreement, when the qualification is True."> + isSpecified boolean (1..1) <"The qualification of whether some other related agreement is specified (True) or not (False)."> + legalDocument string (0..1) <"The specification of this other agreement, when the qualification is True."> - condition LegalDocumentNotSpecified: <"A data rule to enforce that the related legal agreement should not be referenced if it is deemed as not specified as part of the boolean attribute."> - if isSpecified = False - then legalDocument is absent + condition LegalDocumentNotSpecified: <"A data rule to enforce that the related legal agreement should not be referenced if it is deemed as not specified as part of the boolean attribute."> + if isSpecified = False then legalDocument is absent - condition LegalDocumentSpecified: <"A data rule to enforce that the related legal agreement should be referenced if it is deemed as specified as part of the boolean attribute."> - if isSpecified = True - then legalDocument exists + condition LegalDocumentSpecified: <"A data rule to enforce that the related legal agreement should be referenced if it is deemed as specified as part of the boolean attribute."> + if isSpecified = True then legalDocument exists type ClosedState: <" A class to qualify the closed state of an execution or a contract through the combination or a state (e.g. terminated, novated) and a set of dates: activity date, effective date and, when relevant, last payment date."> - state ClosedStateEnum (1..1) <"The qualification of what gave way to the contract or execution closure, e.g. allocation, termination, ..."> - activityDate date (1..1) <"The activity date on which the closing state took place, i.e. either the event date of the closing event (e.g. option exercise, contract early termination) or the contractual termination date."> - effectiveDate date (0..1) <"The date on which the closing event contractually takes effect, when different from the activity date. When an explicit event effective date attribute is associated with the closing event, it will be that date. In the case of a cancellation event, it will be the date on which the cancelled event took place."> - lastPaymentDate date (0..1) <"The date associated with the last payment in relation to the artefact (e.g. contract) to which this closed state applies. As an example, in the case of an early termination event, it would be the settlement date of the associated fee, if applicable."> + state ClosedStateEnum (1..1) <"The qualification of what gave way to the contract or execution closure, e.g. allocation, termination, ..."> + activityDate date (1..1) <"The activity date on which the closing state took place, i.e. either the event date of the closing event (e.g. option exercise, contract early termination) or the contractual termination date."> + effectiveDate date (0..1) <"The date on which the closing event contractually takes effect, when different from the activity date. When an explicit event effective date attribute is associated with the closing event, it will be that date. In the case of a cancellation event, it will be the date on which the cancelled event took place."> + lastPaymentDate date (0..1) <"The date associated with the last payment in relation to the artefact (e.g. contract) to which this closed state applies. As an example, in the case of an early termination event, it would be the settlement date of the associated fee, if applicable."> diff --git a/rosetta-source/src/main/rosetta/legaldocumentation-contract-type.rosetta b/rosetta-source/src/main/rosetta/legaldocumentation-contract-type.rosetta index 1d5ff4d85a..50f141aad2 100644 --- a/rosetta-source/src/main/rosetta/legaldocumentation-contract-type.rosetta +++ b/rosetta-source/src/main/rosetta/legaldocumentation-contract-type.rosetta @@ -6,9 +6,10 @@ import cdm.legaldocumentation.master.* type Agreement: <"Specification of the standard set of terms that define a legal agreement."> - creditSupportAgreementElections CreditSupportAgreementElections (0..1) <"Elections to specify a Credit Support Annex or Credit Support Deed for Intial 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."> - transactionAdditionalTerms TransactionAdditionalTerms (0..1)<"Any additional terms which mainly intend to specify the extraordinary events that may affect a trade and the related contractual rights and obligation of the parties when this happens"> - condition: one-of \ No newline at end of file + creditSupportAgreementElections CreditSupportAgreementElections (0..1) <"Elections to specify a Credit Support Annex or Credit Support Deed for Intial 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."> + transactionAdditionalTerms TransactionAdditionalTerms (0..1) <"Any additional terms which mainly intend to specify the extraordinary events that may affect a trade and the related contractual rights and obligation of the parties when this happens"> + condition: + one-of diff --git a/rosetta-source/src/main/rosetta/legaldocumentation-desc.rosetta b/rosetta-source/src/main/rosetta/legaldocumentation-desc.rosetta index 399bb91946..41b5948eee 100644 --- a/rosetta-source/src/main/rosetta/legaldocumentation-desc.rosetta +++ b/rosetta-source/src/main/rosetta/legaldocumentation-desc.rosetta @@ -1,4 +1,2 @@ namespace cdm.legaldocumentation : <"Credit support concepts: CSA, collateral, elections, initial margin, threshold, minimum transfer amount."> version "${project.version}" - - \ No newline at end of file diff --git a/rosetta-source/src/main/rosetta/legaldocumentation-master-enum.rosetta b/rosetta-source/src/main/rosetta/legaldocumentation-master-enum.rosetta index 23d0260cf1..d2990801af 100644 --- a/rosetta-source/src/main/rosetta/legaldocumentation-master-enum.rosetta +++ b/rosetta-source/src/main/rosetta/legaldocumentation-master-enum.rosetta @@ -5,409 +5,408 @@ import cdm.base.* enum MasterAgreementTypeEnum: <"The enumerated values to specify the type of the master agreement governing the transaction."> // docReference removed due to from ISDA to ISDAMaster - //[docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/master-agreement-type"] - - AFB <"AFB Master Agreement for Foreign Exchange and Derivatives Transactions"> - Bespoke <"A Bespoke (custom) Master Agreement, including one-off agreements for transactions"> - CMA <"Clearing Master Agreement"> - CMOF <"Contrato Marco de Operaciones Financieras"> - EEIPower <"EEI Master Power Purchase and Sale Agreement"> - EFETElectricity <"EFET General Agreement Concerning the Delivery and Acceptance of Electricity"> - EFETGas <"EFET General Agreement Concerning The Delivery And Acceptance of Natural Gas"> - EMA <"European Master Agreement and the Derivatives Annex (Banking Federation of the European Union)"> - FBF <"Master Agreement Relating to transactions on Forward Financial Instruments (Federation Bancaire Francaise)"> - GasEDI <"GasEDI Base Contract for Short-term Sale and Purchase of Natural Gas"> - German <"German Master Agreement for Financial derivatives and Addendum for Options on Stock Exchange Indices or Securities"> - GMRA <"ICMA Global Master Agreement for REPO Trades"> - GMSLA <"ISLA Global Master Agreement for Securities Lending"> - GTMA <"FOA Grid Trade Master Agreement"> - ICOM <"International Currency Options Market Master Agreement"> - IETA_ERPA displayName "IETA-ERPA" <"International Emissions Trading Association Emissions Reduction Purchase Agreement"> - IETA_ETMA displayName "IETA-ETMA" <"International Emissions Trading Association Emissions Trading Master Agreement"> - IETA_IETMA displayName "IETA-IETMA" <"International Emissions Trading Association International Emissions Trading Master Agreement"> - IFEMA <"International Foreign Exchange Master Agreement"> - IFEOMA <"International Foreign Exchange and Options Master Agreement"> - ISDAMaster <"ISDA Master Agreement"> - ISDAFIA_CDEA displayName "ISDAFIA-CDEA" <"ISDA-FIA Cleared Derivatives Execution Agreement"> - JSCC <"Master agreement of Japan Securities Clearing Corporation"> - LBMA <"International Bullion Master Agreement Terms published by the London Bullion Market Association"> - LEAP <"Leadership in Energy Automated Processing"> - MCPSA <"CTA Master Coal Purchase and Sales Agreement"> - NAESBGas <"NAESB Base Contract for Sale and Purchase of Natural Gas"> - NBP <"Short Term Flat NBP Trading Terms and Conditions"> - RussianDerivatives <"Standard Documentation for Derivative Transactions on the Russian Financial Markets"> - RussianRepo <"Master Agreement and Contractual Terms for Repurchase Agreements on the Russian Financial Market"> - SCoTA <"globalCOAL Standard Coal Trading Agreement"> - Swiss <"Swiss Master Agreement for OTC Derivatives Instruments"> - TTF <"TTF Hub Natural Gas Trading Terms and Conditions"> - ZBT <"Zeebrugge Hub Natural Gas Trading Terms and Conditions"> + // [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/master-agreement-type"] + AFB <"AFB Master Agreement for Foreign Exchange and Derivatives Transactions"> + Bespoke <"A Bespoke (custom) Master Agreement, including one-off agreements for transactions"> + CMA <"Clearing Master Agreement"> + CMOF <"Contrato Marco de Operaciones Financieras"> + EEIPower <"EEI Master Power Purchase and Sale Agreement"> + EFETElectricity <"EFET General Agreement Concerning the Delivery and Acceptance of Electricity"> + EFETGas <"EFET General Agreement Concerning The Delivery And Acceptance of Natural Gas"> + EMA <"European Master Agreement and the Derivatives Annex (Banking Federation of the European Union)"> + FBF <"Master Agreement Relating to transactions on Forward Financial Instruments (Federation Bancaire Francaise)"> + GasEDI <"GasEDI Base Contract for Short-term Sale and Purchase of Natural Gas"> + German <"German Master Agreement for Financial derivatives and Addendum for Options on Stock Exchange Indices or Securities"> + GMRA <"ICMA Global Master Agreement for REPO Trades"> + GMSLA <"ISLA Global Master Agreement for Securities Lending"> + GTMA <"FOA Grid Trade Master Agreement"> + ICOM <"International Currency Options Market Master Agreement"> + IETA_ERPA displayName "IETA-ERPA" <"International Emissions Trading Association Emissions Reduction Purchase Agreement"> + IETA_ETMA displayName "IETA-ETMA" <"International Emissions Trading Association Emissions Trading Master Agreement"> + IETA_IETMA displayName "IETA-IETMA" <"International Emissions Trading Association International Emissions Trading Master Agreement"> + IFEMA <"International Foreign Exchange Master Agreement"> + IFEOMA <"International Foreign Exchange and Options Master Agreement"> + ISDAMaster <"ISDA Master Agreement"> + ISDAFIA_CDEA displayName "ISDAFIA-CDEA" <"ISDA-FIA Cleared Derivatives Execution Agreement"> + JSCC <"Master agreement of Japan Securities Clearing Corporation"> + LBMA <"International Bullion Master Agreement Terms published by the London Bullion Market Association"> + LEAP <"Leadership in Energy Automated Processing"> + MCPSA <"CTA Master Coal Purchase and Sales Agreement"> + NAESBGas <"NAESB Base Contract for Sale and Purchase of Natural Gas"> + NBP <"Short Term Flat NBP Trading Terms and Conditions"> + RussianDerivatives <"Standard Documentation for Derivative Transactions on the Russian Financial Markets"> + RussianRepo <"Master Agreement and Contractual Terms for Repurchase Agreements on the Russian Financial Market"> + SCoTA <"globalCOAL Standard Coal Trading Agreement"> + Swiss <"Swiss Master Agreement for OTC Derivatives Instruments"> + TTF <"TTF Hub Natural Gas Trading Terms and Conditions"> + ZBT <"Zeebrugge Hub Natural Gas Trading Terms and Conditions"> enum MasterConfirmationAnnexTypeEnum: <"The enumerated values to specify the type of annex to be used with master confirmation agreement governing the transaction."> - [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/master-confirmation-annex-type"] + [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/master-confirmation-annex-type"] - ISDA2004IndexVarianceSwapAmericasInterdealer <"The Index Variance Swap 2004 Annex to the ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement and to the Revised ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2004ShareVarianceSwapAmericasInterdealer <"The Share Variance Swap 2004 Annex to the ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement and to the Revised ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2007DispersionVarianceSwapEuropean <"The Dispersion Variance Swap Annex to the Revised 2007 ISDA European Variance Swap Master Confirmation Agreement applies."> - ISDA2007EquityFinanceSwapEuropean <"The EFS (Equity Share Finance Swap) 2007 Annex to the ISDA 2007 European Master Equity Derivatives Confirmation Agreement applies."> - ISDA2007IndexVarianceSwapAmericasInterdealer <"The Index Variance Swap 2007 Annex to the Revised ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2007ShareVarianceSwapAmericasInterdealer <"The Share Variance Swap 2007 Annex to the Revised ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2007VarianceOptionEuropean <"The Variance Option Standard Terms Appendix to the Revised ISDA 2007 European Variance Swap Master Confirmation Agreement applies."> - ISDA2008EquityFinanceSwapAsiaExcludingJapan <"The Cash-settled Open Market EFS (Equity Finance Share Swap) 2008 Annex to the ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> - ISDA2008EquityFinanceSwapAsiaExcludingJapanRev1 <"The Cash-settled Open Market EFS (Equity Finance Share Swap) Annex to the Revised ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> - ISDA2008EquityOptionAsiaExcludingJapan <"The Open Market Equity Option 2008 Annex to the ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> - ISDA2008EquityOptionAsiaExcludingJapanRev1 <"The Open Market Equity Option Annex to the Revised ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> - ISDA2008EquityOptionJapan <"The Equity Option 2008 Annex to the ISDA 2008 Japanese Master Equity Derivatives Confirmation Agreement applies."> - ISDA2009ClosedMarketsOptionsAsiaExcludingJapan <"The Cash-settled Closed Market Index and Share Options 2009 Annex to the Revised ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> - ISDA2009EquityEuropeanInterdealerSS <"The Interdealer Share Swap 2009 Annex to the ISDA 2009 European Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2009EquityEuropeanIS <"The Index Swap 2009 Annex to the ISDA 2007 European Master Equity Derivatives Confirmation Agreement applies."> - ISDA2009IndexShareOptionAmericas <"The Index and Share Options 2009 Annex to the ISDA 2009 Americas Master Equity Derivatives Confirmation Agreement applies."> - ISDA2009IndexSwapEuropeanInterdealer <"The Interdealer Index Swap 2009 Annex to the ISDA 2009 European Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2009IndexSwapPanAsiaInterdealer <"The Index Swap 2009 Annex to the ISDA 2009 Pan-Asia Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2009ShareSwapPanAsia <"The Share Swap 2009 Annex to the ISDA 2009 Pan-Asia Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2010FairValueShareSwapEuropeanInterdealer <"The Fair Value Interdealer Share Swap 2010 Annex to the ISDA 2009 European Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2010IndexShareOptionEMEAInterdealer <"The Cash-settled Index Option/Cash/Physically-settled Share Option 2010 Annex to the ISDA 2010 EMEA EM Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2004IndexVarianceSwapAmericasInterdealer <"The Index Variance Swap 2004 Annex to the ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement and to the Revised ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2004ShareVarianceSwapAmericasInterdealer <"The Share Variance Swap 2004 Annex to the ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement and to the Revised ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2007DispersionVarianceSwapEuropean <"The Dispersion Variance Swap Annex to the Revised 2007 ISDA European Variance Swap Master Confirmation Agreement applies."> + ISDA2007EquityFinanceSwapEuropean <"The EFS (Equity Share Finance Swap) 2007 Annex to the ISDA 2007 European Master Equity Derivatives Confirmation Agreement applies."> + ISDA2007IndexVarianceSwapAmericasInterdealer <"The Index Variance Swap 2007 Annex to the Revised ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2007ShareVarianceSwapAmericasInterdealer <"The Share Variance Swap 2007 Annex to the Revised ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2007VarianceOptionEuropean <"The Variance Option Standard Terms Appendix to the Revised ISDA 2007 European Variance Swap Master Confirmation Agreement applies."> + ISDA2008EquityFinanceSwapAsiaExcludingJapan <"The Cash-settled Open Market EFS (Equity Finance Share Swap) 2008 Annex to the ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> + ISDA2008EquityFinanceSwapAsiaExcludingJapanRev1 <"The Cash-settled Open Market EFS (Equity Finance Share Swap) Annex to the Revised ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> + ISDA2008EquityOptionAsiaExcludingJapan <"The Open Market Equity Option 2008 Annex to the ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> + ISDA2008EquityOptionAsiaExcludingJapanRev1 <"The Open Market Equity Option Annex to the Revised ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> + ISDA2008EquityOptionJapan <"The Equity Option 2008 Annex to the ISDA 2008 Japanese Master Equity Derivatives Confirmation Agreement applies."> + ISDA2009ClosedMarketsOptionsAsiaExcludingJapan <"The Cash-settled Closed Market Index and Share Options 2009 Annex to the Revised ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> + ISDA2009EquityEuropeanInterdealerSS <"The Interdealer Share Swap 2009 Annex to the ISDA 2009 European Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2009EquityEuropeanIS <"The Index Swap 2009 Annex to the ISDA 2007 European Master Equity Derivatives Confirmation Agreement applies."> + ISDA2009IndexShareOptionAmericas <"The Index and Share Options 2009 Annex to the ISDA 2009 Americas Master Equity Derivatives Confirmation Agreement applies."> + ISDA2009IndexSwapEuropeanInterdealer <"The Interdealer Index Swap 2009 Annex to the ISDA 2009 European Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2009IndexSwapPanAsiaInterdealer <"The Index Swap 2009 Annex to the ISDA 2009 Pan-Asia Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2009ShareSwapPanAsia <"The Share Swap 2009 Annex to the ISDA 2009 Pan-Asia Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2010FairValueShareSwapEuropeanInterdealer <"The Fair Value Interdealer Share Swap 2010 Annex to the ISDA 2009 European Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2010IndexShareOptionEMEAInterdealer <"The Cash-settled Index Option/Cash/Physically-settled Share Option 2010 Annex to the ISDA 2010 EMEA EM Interdealer Master Equity Derivatives Confirmation Agreement applies."> enum NationalizationOrInsolvencyOrDelistingEventEnum: <"Defines the consequences of nationalization, insolvency and delisting events relating to the underlying."> NegotiatedCloseout <"The parties may, but are not obliged, to terminate the transaction on mutually acceptable terms and if the terms are not agreed then the transaction continues."> CancellationAndPayment <"The trade is terminated."> enum MasterConfirmationTypeEnum: <"The enumerated values to specify the type of master confirmation agreement governing the transaction. While FpML positions the date a prefix, the CDM positions it as the suffix to handle grammar type constraints."> - [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/master-confirmation-type"] + [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/master-confirmation-type"] - _2003CreditIndex displayName "2003CreditIndex" <"Used for CDS Index trades. Relevant Master Confirmation determined by the contents of the creditDefaultSwap element. Best practice is to use the most specific code that applies."> - _2004EquityEuropeanInterdealer displayName "2004EquityEuropeanInterdealer" <"A privately negotiated European Interdealer Master Confirmation Agreement applies."> - _2005VarianceSwapEuropeanInterdealer displayName "2005VarianceSwapEuropeanInterdealer" <"A privately negotiated European Interdealer Master Confirmation Agreement applies."> - _2006DividendSwapEuropean displayName "2006DividendSwapEuropean" <"A European Interdealer Master Confirmation Agreement not defined by ISDA, and modified by the parties to the transaction applies."> - _2006DividendSwapEuropeanInterdealer displayName "2006DividendSwapEuropeanInterdealer" <"A European Interdealer Master Confirmation Agreement not defined by ISDA applies."> - _2014CreditAsia displayName "2014CreditAsia" <"Dummy MCA value mirroring the matrix term value AsiaCorporate."> - _2014CreditAsiaFinancial displayName "2014CreditAsiaFinancial" <"Dummy MCA value mirroring the matrix term value AsiaFinancialCorporate."> - _2014CreditAustraliaNewZealand displayName "2014CreditAustraliaNewZealand" <"Dummy MCA value mirroring the matrix term value AustraliaCorporate/NewZealandCorporate."> - _2014CreditAustraliaNewZealandFinancial displayName "2014CreditAustraliaNewZealandFinancial" <"Dummy MCA value mirroring the matrix term value AustraliaFinancialCorporate/NewZealandFinancialCorporate."> - _2014CreditEuropean displayName "2014CreditEuropean" <"Dummy MCA value mirroring the matrix term value EuropeanCorporate."> - _2014CreditEuropeanCoCoFinancial displayName "2014CreditEuropeanCoCoFinancial" <"Dummy MCA value mirroring the matrix term value EuropeanCoCoFinancialCorporate."> - _2014CreditEuropeanFinancial displayName "2014CreditEuropeanFinancial" <"Dummy MCA value mirroring the matrix term value EuropeanFinancialCorporate."> - _2014CreditJapan displayName "2014CreditJapan" <"Dummy MCA value mirroring the matrix term value JapanCorporate."> - _2014CreditJapanFinancial displayName "2014CreditJapanFinancial" <"Dummy MCA value mirroring the matrix term value JapanFinancialCorporate."> - _2014CreditNorthAmerican displayName "2014CreditNorthAmerican" <"Dummy MCA value mirroring the matrix term value NorthAmericanCorporate."> - _2014CreditNorthAmericanFinancial displayName "2014CreditNorthAmericanFinancial" <"Dummy MCA value mirroring the matrix term value NorthAmericanFinancialCorporate."> - _2014CreditSingapore displayName "2014CreditSingapore" <"Dummy MCA value mirroring the matrix term values SingaporeCorporate."> - _2014CreditSingaporeFinancial displayName "2014CreditSingaporeFinancial" <"Dummy MCA value mirroring the matrix term values SingaporeFinancialCorporate."> - _2014CreditSovereignAsia displayName "2014CreditSovereignAsia" <"Dummy MCA value mirroring the matrix term value AsiaSovereign."> - _2014CreditSovereignEmergingEuropeanAndMiddleEastern displayName "2014CreditSovereignEmergingEuropeanAndMiddleEastern" <"Dummy MCA value mirroring the matrix term value EmergingEuropeanAndMiddleEasternSovereign."> - _2014CreditSovereignJapan displayName "2014CreditSovereignJapan" <"Dummy MCA value mirroring the matrix term value JapanSovereign."> - _2014CreditSovereignLatinAmerican displayName "2014CreditSovereignLatinAmerican" <"Dummy MCA value mirroring the matrix term value LatinAmericaSovereign."> - _2014CreditSovereignWesternEuropean displayName "2014CreditSovereignWesternEuropean" <"Dummy MCA value mirroring the matrix term value WesternEuropeanSovereign."> - _2014StandardCreditAsia displayName "2014StandardCreditAsia" <"Dummy MCA value mirroring the matrix term values StandardAsiaCorporate."> - _2014StandardCreditAsiaFinancial displayName "2014StandardCreditAsiaFinancial" <"Dummy MCA value mirroring the matrix term values StandardAsiaFinancialCorporate."> - _2014StandardCreditAustraliaNewZealand displayName "2014StandardCreditAustraliaNewZealand" <"Dummy MCA value mirroring the matrix term values StandardAustraliaCorporate and StandardNewZealandCorporate."> - _2014StandardCreditAustraliaNewZealandFinancial displayName "2014StandardCreditAustraliaNewZealandFinancial" <"Dummy MCA value mirroring the matrix term values StandardAustraliaFinancialCorporate and StandardNewZealandFinancialCorporate."> - _2014StandardCreditEuropean displayName "2014StandardCreditEuropean" <"Dummy MCA value mirroring the matrix term value StandardEuropeanCorporate."> - _2014StandardCreditEuropeanCoCoFinancial displayName "2014StandardCreditEuropeanCoCoFinancial" <"Dummy MCA value mirroring the matrix term value StandardEuropeanCoCoFinancialCorporate."> - _2014StandardCreditEuropeanFinancial displayName "2014StandardCreditEuropeanFinancial" <"Dummy MCA value mirroring the matrix term value StandardEuropeanFinancialCorporate."> - _2014StandardCreditJapan displayName "2014StandardCreditJapan" <"Dummy MCA value mirroring the matrix term values StandardJapanCorporate."> - _2014StandardCreditJapanFinancial displayName "2014StandardCreditJapanFinancial" <"Dummy MCA value mirroring the matrix term value StandardJapanFinancialCorporate."> - _2014StandardCreditNorthAmerican displayName "2014StandardCreditNorthAmerican" <"Dummy MCA value mirroring the matrix term value StandardNorthAmericanCorporate."> - _2014StandardCreditNorthAmericanFinancial displayName "2014StandardCreditNorthAmericanFinancial" <"Dummy MCA value mirroring the matrix term value standardNorthAmericanFinancialCorporate."> - _2014StandardCreditSingapore displayName "2014StandardCreditSingapore" <"Dummy MCA value mirroring the matrix term values StandardSingaporeCorporate."> - _2014StandardCreditSingaporeFinancial displayName "2014StandardCreditSingaporeFinancial" <"Dummy MCA value mirroring the matrix term value StandardSingaporeFinancialCorporate."> - _2014StandardCreditSovereignAsia displayName "2014StandardCreditSovereignAsia" <"Dummy MCA value mirroring the matrix term value StandardAsiaSovereign."> - _2014StandardCreditSovereignEmergingEuropeanAndMiddleEastern displayName "2014StandardCreditSovereignEmergingEuropeanAndMiddleEastern" <"Dummy MCA value mirroring the matrix term value StandardEmergingEuropeanAndMiddleEasternSovereign."> - _2014StandardCreditSovereignJapan displayName "2014StandardCreditSovereignJapan" <"Dummy MCA value mirroring the matrix term values StandardJapanSovereign."> - _2014StandardCreditSovereignLatinAmerican displayName "2014StandardCreditSovereignLatinAmerican" <"Dummy MCA value mirroring the matrix term value StandardLatinAmericaSovereign."> - _2014StandardCreditSovereignWesternEuropean displayName "2014StandardCreditSovereignWesternEuropean" <"Dummy MCA value mirroring the matrix term value StandardWesternEuropeanSovereign."> - DJ_CDX_EM displayName "DJ.CDX.EM" <"Used for CDS Index trades executed under the Dow Jones CDX Emerging Markets Master Confirmation."> - DJ_CDX_EM_DIV displayName "DJ.CDX.EM.DIV" <"Used for CDS Index trades executed under the Dow Jones CDX Emerging Markets Diversified Master Confirmation."> - DJ_CDX_NA displayName "DJ.CDX.NA" <"Used for CDS Index trades executed under the Dow Jones CDX Master Confirmation that covers CDX.NA.IG, CDX.NA.HY, and CDX.NA.XO."> - DJ_iTraxx_Europe displayName "DJ.iTraxx.Europe" <"Used for CDS Index trades executed under the Dow Jones iTraxx Europe Master Confirmation Agreement."> - EquityAmericas <"A general reference to the types of Americas Master Confirmation Agreements. Use the more specific values to reference a specific type of Americas Master Confirmation Agreement."> - EquityAsia <"A general reference to the types of Asia Master Confirmation Agreements. Use the more specific values to reference a specific type of Asia Master Confirmation Agreement."> - EquityEuropean <"A general reference to the types of European Master Confirmation Agreements. Use the more specific values to reference a specific type of European Master Confirmation Agreement."> - ISDA1999Credit <"ISDA 1999 Master Credit Derivatives Confirmation Agreement"> - ISDA2003CreditAsia <"ISDA 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Asia had been specified as the relevant Transaction Type in the Transaction Supplement."> - ISDA2003CreditAustraliaNewZealand <"ISDA 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Australia and New Zealand had been specified as the relevant Transaction Type in the Transaction Supplement."> - ISDA2003CreditEuropean <"ISDA 2003 Master Credit Derivatives Confirmation Agreement interpreted as if European had been specified as the relevant Transaction Type in the Transaction Supplement."> - ISDA2003CreditJapan <"ISDA 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Japan had been specified as the relevant Transaction Type in the Transaction Supplement."> - ISDA2003CreditNorthAmerican <"ISDA 2003 Master Credit Derivatives Confirmation Agreement interpreted as if North American had been specified as the relevant Transaction Type in the Transaction Supplement."> - ISDA2003CreditSingapore <"ISDA 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Singapore had been specified as the relevant Transaction Type in the Transaction Supplement."> - ISDA2003CreditSovereignAsia <"ISDA Sovereign 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Asia had been specified as the relevant Transaction Type in the Transaction Supplement. The 2003 Sovereign Master Confirmation has been superceded by the 2004."> - ISDA2003CreditSovereignCentralAndEasternEurope <"ISDA Sovereign 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Central and Eastern Europe had been specified as the relevant Transaction Type in the Transaction Supplement. The 2003 Sovereign Master Confirmation has been superceded by the 2004."> - ISDA2003CreditSovereignJapan <"ISDA Sovereign 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Japan had been specified as the relevant Transaction Type in the Transaction Supplement. The 2003 Sovereign Master Confirmation has been superceded by the 2004."> - ISDA2003CreditSovereignLatinAmerica <"ISDA Sovereign 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Latin America had been specified as the relevant Transaction Type in the Transaction Supplement. The 2003 Sovereign Master Confirmation has been superceded by the 2004."> - ISDA2003CreditSovereignMiddleEast <"ISDA Sovereign 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Middle East had been specified as the relevant Transaction Type in the Transaction Supplement. The 2003 Sovereign Master Confirmation has been superceded by the 2004."> - ISDA2003CreditSovereignWesternEurope <"ISDA Sovereign 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Western Europe had been specified as the relevant Transaction Type in the Transaction Supplement. The 2003 Sovereign Master Confirmation has been superceded by the 2004."> - ISDA2003StandardCreditAsia <"Dummy MCA value mirroring the matrix term values StandardAsiaCorporate."> - ISDA2003StandardCreditAustraliaNewZealand <"Dummy MCA value mirroring the matrix term values StandardAustraliaCorporate/Sovereign and StandardNewZealandCorporate/Sovereign."> - ISDA2003StandardCreditEuropean <"Dummy MCA value mirroring the matrix term value StandardEuropeanCorporate."> - ISDA2003StandardCreditJapan <"Dummy MCA value mirroring the matrix term values StandardJapanCorporate."> - ISDA2003StandardCreditNorthAmerican <"Dummy MCA value mirroring the matrix term value StandardNorthAmericanCorporate."> - ISDA2003StandardCreditSingapore <"Dummy MCA value mirroring the matrix term values StandardSingaporeCorporate/Sovereign."> - ISDA2004CreditSovereignAsia <"ISDA Sovereign 2004 Master Credit Derivatives Confirmation Agreement interpreted as if Asia had been specified as the relevant Transaction Type in the Transaction Supplement."> - ISDA2004CreditSovereignEmergingEuropeanAndMiddleEastern <"ISDA Sovereign 2004 Master Credit Derivatives Confirmation Agreement interpreted as if Emerging European and Middle Eastern had been specified as the relevant Transaction Type in the Transaction Supplement."> - ISDA2004CreditSovereignJapan <"ISDA Sovereign 2004 Master Credit Derivatives Confirmation Agreement interpreted as if Japan had been specified as the relevant Transaction Type in the Transaction Supplement."> - ISDA2004CreditSovereignLatinAmerican <"ISDA Sovereign 2004 Master Credit Derivatives Confirmation Agreement interpreted as if Latin American had been specified as the relevant Transaction Type in the Transaction Supplement."> - ISDA2004CreditSovereignWesternEuropean <"ISDA Sovereign 2004 Master Credit Derivatives Confirmation Agreement interpreted as if Western European had been specified as the relevant Transaction Type in the Transaction Supplement."> - ISDA2004EquityAmericasInterdealer <"The ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2004EquityAmericasInterdealerRev1 <"The Revised ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2004StandardCreditSovereignAsia <"Dummy MCA value mirroring the matrix term values StandardAsiaSovereign."> - ISDA2004StandardCreditSovereignEmergingEuropeanAndMiddleEastern <"Dummy MCA value mirroring the matrix term value StandardEmergingEuropeanAndMiddleEasternSovereign."> - ISDA2004StandardCreditSovereignJapan <"Dummy MCA value mirroring the matrix term values StandardJapanSovereign."> - ISDA2004StandardCreditSovereignLatinAmerican <"Dummy MCA value mirroring the matrix term value StandardLatinAmericaSovereign."> - ISDA2004StandardCreditSovereignWesternEuropean <"Dummy MCA value mirroring the matrix term value StandardWesternEuropeanSovereign."> - ISDA2005EquityAsiaExcludingJapanInterdealer <"ISDA 2005 AEJ (Asia Excluding Japan) Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2005EquityAsiaExcludingJapanInterdealerRev2 <"Second Revised ISDA 2005 AEJ (Asia Excluding Japan) Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2005EquityJapaneseInterdealer <"The ISDA 2005 Japanese Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2006VarianceSwapJapanese <"ISDA 2006 Variance Swap Japanese Confirmation Agreement applies."> - ISDA2006VarianceSwapJapaneseInterdealer <"ISDA 2006 Variance Swap Japanese Interdealer Confirmation Agreement applies."> - ISDA2007EquityEuropean <"The ISDA 2007 European Master Equity Derivatives Confirmation Agreement applies."> - ISDA2007VarianceSwapAmericas <"The ISDA 2007 Americas Master Variance Swap Confirmation Agreement applies."> - ISDA2007VarianceSwapAsiaExcludingJapan <"The ISDA 2007 AEJ Master Variance Swap Confirmation Agreement applies."> - ISDA2007VarianceSwapAsiaExcludingJapanRev1 <"The Revised ISDA 2007 AEJ Master Variance Swap Confirmation Agreement applies."> - ISDA2007VarianceSwapAsiaExcludingJapanRev2 <"The Second Revised ISDA 2007 AEJ Master Variance Swap Confirmation Agreement applies."> - ISDA2007VarianceSwapEuropean <"The ISDA 2007 European Variance Swap Master Confirmation Agreement applies."> - ISDA2007VarianceSwapEuropeanRev1 <"The Revised ISDA 2007 European Variance Swap Master Confirmation Agreement applies."> - ISDA2008DividendSwapJapan <"The ISDA 2008 Japanese Dividend Swap Master Confirmation Agreement applies."> - ISDA2008DividendSwapJapaneseRev1 <"The Revised ISDA 2008 Japanese Dividend Swap Master Confirmation Agreement applies."> - ISDA2008EquityAmericas <"The ISDA 2008 Americas Master Designated/Exchange-Traded Contract Option Confirmation Agreement applies."> - ISDA2008EquityAsiaExcludingJapan <"The ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> - ISDA2008EquityAsiaExcludingJapanRev1 <"The Revised ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> - ISDA2008EquityJapan <"The ISDA 2008 Japanese Master Equity Derivatives Confirmation Agreement applies."> - ISDA2009EquityAmericas <"The ISDA 2009 Americas Master Equity Derivatives Confirmation Agreement applies."> - ISDA2009EquityEuropeanInterdealer <"The ISDA 2009 European Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2009EquityPanAsia <"2009 Pan-Asia Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2010EquityEMEAInterdealer <"The ISDA 2010 EMEA EM Interdealer Master Equity Derivatives Confirmation Agreement applies."> - ISDA2013VolatilitySwapAmericas <"The ISDA 2013 Americas Master Volatility Swap Confirmation Agreement applies."> - ISDA2013VolatilitySwapAsiaExcludingJapan <"The ISDA 2013 AEJ Master Volatility Swap Confirmation Agreement applies."> - ISDA2013VolatilitySwapEuropean <"The ISDA 2013 European Volatility Swap Master Confirmation Agreement applies."> - ISDA2013VolatilitySwapJapanese <"The ISDA 2013 Volatility Swap Japanese Confirmation Agreement applies."> + _2003CreditIndex displayName "2003CreditIndex" <"Used for CDS Index trades. Relevant Master Confirmation determined by the contents of the creditDefaultSwap element. Best practice is to use the most specific code that applies."> + _2004EquityEuropeanInterdealer displayName "2004EquityEuropeanInterdealer" <"A privately negotiated European Interdealer Master Confirmation Agreement applies."> + _2005VarianceSwapEuropeanInterdealer displayName "2005VarianceSwapEuropeanInterdealer" <"A privately negotiated European Interdealer Master Confirmation Agreement applies."> + _2006DividendSwapEuropean displayName "2006DividendSwapEuropean" <"A European Interdealer Master Confirmation Agreement not defined by ISDA, and modified by the parties to the transaction applies."> + _2006DividendSwapEuropeanInterdealer displayName "2006DividendSwapEuropeanInterdealer" <"A European Interdealer Master Confirmation Agreement not defined by ISDA applies."> + _2014CreditAsia displayName "2014CreditAsia" <"Dummy MCA value mirroring the matrix term value AsiaCorporate."> + _2014CreditAsiaFinancial displayName "2014CreditAsiaFinancial" <"Dummy MCA value mirroring the matrix term value AsiaFinancialCorporate."> + _2014CreditAustraliaNewZealand displayName "2014CreditAustraliaNewZealand" <"Dummy MCA value mirroring the matrix term value AustraliaCorporate/NewZealandCorporate."> + _2014CreditAustraliaNewZealandFinancial displayName "2014CreditAustraliaNewZealandFinancial" <"Dummy MCA value mirroring the matrix term value AustraliaFinancialCorporate/NewZealandFinancialCorporate."> + _2014CreditEuropean displayName "2014CreditEuropean" <"Dummy MCA value mirroring the matrix term value EuropeanCorporate."> + _2014CreditEuropeanCoCoFinancial displayName "2014CreditEuropeanCoCoFinancial" <"Dummy MCA value mirroring the matrix term value EuropeanCoCoFinancialCorporate."> + _2014CreditEuropeanFinancial displayName "2014CreditEuropeanFinancial" <"Dummy MCA value mirroring the matrix term value EuropeanFinancialCorporate."> + _2014CreditJapan displayName "2014CreditJapan" <"Dummy MCA value mirroring the matrix term value JapanCorporate."> + _2014CreditJapanFinancial displayName "2014CreditJapanFinancial" <"Dummy MCA value mirroring the matrix term value JapanFinancialCorporate."> + _2014CreditNorthAmerican displayName "2014CreditNorthAmerican" <"Dummy MCA value mirroring the matrix term value NorthAmericanCorporate."> + _2014CreditNorthAmericanFinancial displayName "2014CreditNorthAmericanFinancial" <"Dummy MCA value mirroring the matrix term value NorthAmericanFinancialCorporate."> + _2014CreditSingapore displayName "2014CreditSingapore" <"Dummy MCA value mirroring the matrix term values SingaporeCorporate."> + _2014CreditSingaporeFinancial displayName "2014CreditSingaporeFinancial" <"Dummy MCA value mirroring the matrix term values SingaporeFinancialCorporate."> + _2014CreditSovereignAsia displayName "2014CreditSovereignAsia" <"Dummy MCA value mirroring the matrix term value AsiaSovereign."> + _2014CreditSovereignEmergingEuropeanAndMiddleEastern displayName "2014CreditSovereignEmergingEuropeanAndMiddleEastern" <"Dummy MCA value mirroring the matrix term value EmergingEuropeanAndMiddleEasternSovereign."> + _2014CreditSovereignJapan displayName "2014CreditSovereignJapan" <"Dummy MCA value mirroring the matrix term value JapanSovereign."> + _2014CreditSovereignLatinAmerican displayName "2014CreditSovereignLatinAmerican" <"Dummy MCA value mirroring the matrix term value LatinAmericaSovereign."> + _2014CreditSovereignWesternEuropean displayName "2014CreditSovereignWesternEuropean" <"Dummy MCA value mirroring the matrix term value WesternEuropeanSovereign."> + _2014StandardCreditAsia displayName "2014StandardCreditAsia" <"Dummy MCA value mirroring the matrix term values StandardAsiaCorporate."> + _2014StandardCreditAsiaFinancial displayName "2014StandardCreditAsiaFinancial" <"Dummy MCA value mirroring the matrix term values StandardAsiaFinancialCorporate."> + _2014StandardCreditAustraliaNewZealand displayName "2014StandardCreditAustraliaNewZealand" <"Dummy MCA value mirroring the matrix term values StandardAustraliaCorporate and StandardNewZealandCorporate."> + _2014StandardCreditAustraliaNewZealandFinancial displayName "2014StandardCreditAustraliaNewZealandFinancial" <"Dummy MCA value mirroring the matrix term values StandardAustraliaFinancialCorporate and StandardNewZealandFinancialCorporate."> + _2014StandardCreditEuropean displayName "2014StandardCreditEuropean" <"Dummy MCA value mirroring the matrix term value StandardEuropeanCorporate."> + _2014StandardCreditEuropeanCoCoFinancial displayName "2014StandardCreditEuropeanCoCoFinancial" <"Dummy MCA value mirroring the matrix term value StandardEuropeanCoCoFinancialCorporate."> + _2014StandardCreditEuropeanFinancial displayName "2014StandardCreditEuropeanFinancial" <"Dummy MCA value mirroring the matrix term value StandardEuropeanFinancialCorporate."> + _2014StandardCreditJapan displayName "2014StandardCreditJapan" <"Dummy MCA value mirroring the matrix term values StandardJapanCorporate."> + _2014StandardCreditJapanFinancial displayName "2014StandardCreditJapanFinancial" <"Dummy MCA value mirroring the matrix term value StandardJapanFinancialCorporate."> + _2014StandardCreditNorthAmerican displayName "2014StandardCreditNorthAmerican" <"Dummy MCA value mirroring the matrix term value StandardNorthAmericanCorporate."> + _2014StandardCreditNorthAmericanFinancial displayName "2014StandardCreditNorthAmericanFinancial" <"Dummy MCA value mirroring the matrix term value standardNorthAmericanFinancialCorporate."> + _2014StandardCreditSingapore displayName "2014StandardCreditSingapore" <"Dummy MCA value mirroring the matrix term values StandardSingaporeCorporate."> + _2014StandardCreditSingaporeFinancial displayName "2014StandardCreditSingaporeFinancial" <"Dummy MCA value mirroring the matrix term value StandardSingaporeFinancialCorporate."> + _2014StandardCreditSovereignAsia displayName "2014StandardCreditSovereignAsia" <"Dummy MCA value mirroring the matrix term value StandardAsiaSovereign."> + _2014StandardCreditSovereignEmergingEuropeanAndMiddleEastern displayName "2014StandardCreditSovereignEmergingEuropeanAndMiddleEastern" <"Dummy MCA value mirroring the matrix term value StandardEmergingEuropeanAndMiddleEasternSovereign."> + _2014StandardCreditSovereignJapan displayName "2014StandardCreditSovereignJapan" <"Dummy MCA value mirroring the matrix term values StandardJapanSovereign."> + _2014StandardCreditSovereignLatinAmerican displayName "2014StandardCreditSovereignLatinAmerican" <"Dummy MCA value mirroring the matrix term value StandardLatinAmericaSovereign."> + _2014StandardCreditSovereignWesternEuropean displayName "2014StandardCreditSovereignWesternEuropean" <"Dummy MCA value mirroring the matrix term value StandardWesternEuropeanSovereign."> + DJ_CDX_EM displayName "DJ.CDX.EM" <"Used for CDS Index trades executed under the Dow Jones CDX Emerging Markets Master Confirmation."> + DJ_CDX_EM_DIV displayName "DJ.CDX.EM.DIV" <"Used for CDS Index trades executed under the Dow Jones CDX Emerging Markets Diversified Master Confirmation."> + DJ_CDX_NA displayName "DJ.CDX.NA" <"Used for CDS Index trades executed under the Dow Jones CDX Master Confirmation that covers CDX.NA.IG, CDX.NA.HY, and CDX.NA.XO."> + DJ_iTraxx_Europe displayName "DJ.iTraxx.Europe" <"Used for CDS Index trades executed under the Dow Jones iTraxx Europe Master Confirmation Agreement."> + EquityAmericas <"A general reference to the types of Americas Master Confirmation Agreements. Use the more specific values to reference a specific type of Americas Master Confirmation Agreement."> + EquityAsia <"A general reference to the types of Asia Master Confirmation Agreements. Use the more specific values to reference a specific type of Asia Master Confirmation Agreement."> + EquityEuropean <"A general reference to the types of European Master Confirmation Agreements. Use the more specific values to reference a specific type of European Master Confirmation Agreement."> + ISDA1999Credit <"ISDA 1999 Master Credit Derivatives Confirmation Agreement"> + ISDA2003CreditAsia <"ISDA 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Asia had been specified as the relevant Transaction Type in the Transaction Supplement."> + ISDA2003CreditAustraliaNewZealand <"ISDA 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Australia and New Zealand had been specified as the relevant Transaction Type in the Transaction Supplement."> + ISDA2003CreditEuropean <"ISDA 2003 Master Credit Derivatives Confirmation Agreement interpreted as if European had been specified as the relevant Transaction Type in the Transaction Supplement."> + ISDA2003CreditJapan <"ISDA 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Japan had been specified as the relevant Transaction Type in the Transaction Supplement."> + ISDA2003CreditNorthAmerican <"ISDA 2003 Master Credit Derivatives Confirmation Agreement interpreted as if North American had been specified as the relevant Transaction Type in the Transaction Supplement."> + ISDA2003CreditSingapore <"ISDA 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Singapore had been specified as the relevant Transaction Type in the Transaction Supplement."> + ISDA2003CreditSovereignAsia <"ISDA Sovereign 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Asia had been specified as the relevant Transaction Type in the Transaction Supplement. The 2003 Sovereign Master Confirmation has been superceded by the 2004."> + ISDA2003CreditSovereignCentralAndEasternEurope <"ISDA Sovereign 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Central and Eastern Europe had been specified as the relevant Transaction Type in the Transaction Supplement. The 2003 Sovereign Master Confirmation has been superceded by the 2004."> + ISDA2003CreditSovereignJapan <"ISDA Sovereign 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Japan had been specified as the relevant Transaction Type in the Transaction Supplement. The 2003 Sovereign Master Confirmation has been superceded by the 2004."> + ISDA2003CreditSovereignLatinAmerica <"ISDA Sovereign 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Latin America had been specified as the relevant Transaction Type in the Transaction Supplement. The 2003 Sovereign Master Confirmation has been superceded by the 2004."> + ISDA2003CreditSovereignMiddleEast <"ISDA Sovereign 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Middle East had been specified as the relevant Transaction Type in the Transaction Supplement. The 2003 Sovereign Master Confirmation has been superceded by the 2004."> + ISDA2003CreditSovereignWesternEurope <"ISDA Sovereign 2003 Master Credit Derivatives Confirmation Agreement interpreted as if Western Europe had been specified as the relevant Transaction Type in the Transaction Supplement. The 2003 Sovereign Master Confirmation has been superceded by the 2004."> + ISDA2003StandardCreditAsia <"Dummy MCA value mirroring the matrix term values StandardAsiaCorporate."> + ISDA2003StandardCreditAustraliaNewZealand <"Dummy MCA value mirroring the matrix term values StandardAustraliaCorporate/Sovereign and StandardNewZealandCorporate/Sovereign."> + ISDA2003StandardCreditEuropean <"Dummy MCA value mirroring the matrix term value StandardEuropeanCorporate."> + ISDA2003StandardCreditJapan <"Dummy MCA value mirroring the matrix term values StandardJapanCorporate."> + ISDA2003StandardCreditNorthAmerican <"Dummy MCA value mirroring the matrix term value StandardNorthAmericanCorporate."> + ISDA2003StandardCreditSingapore <"Dummy MCA value mirroring the matrix term values StandardSingaporeCorporate/Sovereign."> + ISDA2004CreditSovereignAsia <"ISDA Sovereign 2004 Master Credit Derivatives Confirmation Agreement interpreted as if Asia had been specified as the relevant Transaction Type in the Transaction Supplement."> + ISDA2004CreditSovereignEmergingEuropeanAndMiddleEastern <"ISDA Sovereign 2004 Master Credit Derivatives Confirmation Agreement interpreted as if Emerging European and Middle Eastern had been specified as the relevant Transaction Type in the Transaction Supplement."> + ISDA2004CreditSovereignJapan <"ISDA Sovereign 2004 Master Credit Derivatives Confirmation Agreement interpreted as if Japan had been specified as the relevant Transaction Type in the Transaction Supplement."> + ISDA2004CreditSovereignLatinAmerican <"ISDA Sovereign 2004 Master Credit Derivatives Confirmation Agreement interpreted as if Latin American had been specified as the relevant Transaction Type in the Transaction Supplement."> + ISDA2004CreditSovereignWesternEuropean <"ISDA Sovereign 2004 Master Credit Derivatives Confirmation Agreement interpreted as if Western European had been specified as the relevant Transaction Type in the Transaction Supplement."> + ISDA2004EquityAmericasInterdealer <"The ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2004EquityAmericasInterdealerRev1 <"The Revised ISDA 2004 Americas Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2004StandardCreditSovereignAsia <"Dummy MCA value mirroring the matrix term values StandardAsiaSovereign."> + ISDA2004StandardCreditSovereignEmergingEuropeanAndMiddleEastern <"Dummy MCA value mirroring the matrix term value StandardEmergingEuropeanAndMiddleEasternSovereign."> + ISDA2004StandardCreditSovereignJapan <"Dummy MCA value mirroring the matrix term values StandardJapanSovereign."> + ISDA2004StandardCreditSovereignLatinAmerican <"Dummy MCA value mirroring the matrix term value StandardLatinAmericaSovereign."> + ISDA2004StandardCreditSovereignWesternEuropean <"Dummy MCA value mirroring the matrix term value StandardWesternEuropeanSovereign."> + ISDA2005EquityAsiaExcludingJapanInterdealer <"ISDA 2005 AEJ (Asia Excluding Japan) Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2005EquityAsiaExcludingJapanInterdealerRev2 <"Second Revised ISDA 2005 AEJ (Asia Excluding Japan) Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2005EquityJapaneseInterdealer <"The ISDA 2005 Japanese Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2006VarianceSwapJapanese <"ISDA 2006 Variance Swap Japanese Confirmation Agreement applies."> + ISDA2006VarianceSwapJapaneseInterdealer <"ISDA 2006 Variance Swap Japanese Interdealer Confirmation Agreement applies."> + ISDA2007EquityEuropean <"The ISDA 2007 European Master Equity Derivatives Confirmation Agreement applies."> + ISDA2007VarianceSwapAmericas <"The ISDA 2007 Americas Master Variance Swap Confirmation Agreement applies."> + ISDA2007VarianceSwapAsiaExcludingJapan <"The ISDA 2007 AEJ Master Variance Swap Confirmation Agreement applies."> + ISDA2007VarianceSwapAsiaExcludingJapanRev1 <"The Revised ISDA 2007 AEJ Master Variance Swap Confirmation Agreement applies."> + ISDA2007VarianceSwapAsiaExcludingJapanRev2 <"The Second Revised ISDA 2007 AEJ Master Variance Swap Confirmation Agreement applies."> + ISDA2007VarianceSwapEuropean <"The ISDA 2007 European Variance Swap Master Confirmation Agreement applies."> + ISDA2007VarianceSwapEuropeanRev1 <"The Revised ISDA 2007 European Variance Swap Master Confirmation Agreement applies."> + ISDA2008DividendSwapJapan <"The ISDA 2008 Japanese Dividend Swap Master Confirmation Agreement applies."> + ISDA2008DividendSwapJapaneseRev1 <"The Revised ISDA 2008 Japanese Dividend Swap Master Confirmation Agreement applies."> + ISDA2008EquityAmericas <"The ISDA 2008 Americas Master Designated/Exchange-Traded Contract Option Confirmation Agreement applies."> + ISDA2008EquityAsiaExcludingJapan <"The ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> + ISDA2008EquityAsiaExcludingJapanRev1 <"The Revised ISDA 2008 AEJ (Asia Excluding Japan) Master Equity Derivatives Confirmation Agreement applies."> + ISDA2008EquityJapan <"The ISDA 2008 Japanese Master Equity Derivatives Confirmation Agreement applies."> + ISDA2009EquityAmericas <"The ISDA 2009 Americas Master Equity Derivatives Confirmation Agreement applies."> + ISDA2009EquityEuropeanInterdealer <"The ISDA 2009 European Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2009EquityPanAsia <"2009 Pan-Asia Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2010EquityEMEAInterdealer <"The ISDA 2010 EMEA EM Interdealer Master Equity Derivatives Confirmation Agreement applies."> + ISDA2013VolatilitySwapAmericas <"The ISDA 2013 Americas Master Volatility Swap Confirmation Agreement applies."> + ISDA2013VolatilitySwapAsiaExcludingJapan <"The ISDA 2013 AEJ Master Volatility Swap Confirmation Agreement applies."> + ISDA2013VolatilitySwapEuropean <"The ISDA 2013 European Volatility Swap Master Confirmation Agreement applies."> + ISDA2013VolatilitySwapJapanese <"The ISDA 2013 Volatility Swap Japanese Confirmation Agreement applies."> enum MasterAgreementClauseIdentifierEnum: - ISLA_GMSLA_001 <"Date of Agreement"> - ISLA_GMSLA_002 <"Parties"> - ISLA_GMSLA_003 <"Specific Roles"> - ISLA_GMSLA_004 <"Eligible Collateral"> - ISLA_GMSLA_005 <"Margin"> - ISLA_GMSLA_006 <"Aggregation"> - ISLA_GMSLA_007 <"Collateral Disapplication"> - ISLA_GMSLA_008 <"Settlement Netting"> - ISLA_GMSLA_009 <"Notification Time"> - ISLA_GMSLA_010 <"Indemnity"> - ISLA_GMSLA_011 <"Base Currency"> - ISLA_GMSLA_012 <"Places of Business"> - ISLA_GMSLA_013 <"Value"> - ISLA_GMSLA_014 <"Automatic Early Termination"> - ISLA_GMSLA_015 <"Designated Offices"> - ISLA_GMSLA_016 <"Address for Notices"> - ISLA_GMSLA_017 <"Process Agent"> - ISLA_GMSLA_018 <"Party Acting as Agent"> - ISLA_GMSLA_019 <"Pooled Principal Transactions "> - ISLA_GMSLA_020 <"Party Preparing the Agreement "> - ISLA_GMSLA_021 <"Default Interest Rate"> - ISLA_GMSLA_022 <"Existing Transactions"> - ISLA_GMSLA_023 <"Automation"> - ISLA_GMSLA_024 <"Act of Insolvency"> - ISLA_GMSLA_025 <"Buy-In"> - ISLA_GMSLA_026 <"Currency Conversions"> - ISLA_GMSLA_027 <"Scope"> - ISLA_GMSLA_028 <"Collateral Delivery Timings"> - ISLA_GMSLA_029 <"Delivery"> - ISLA_GMSLA_030 <"Substitution of Collateral"> - ISLA_GMSLA_031 <"Manufactured Payments"> - ISLA_GMSLA_032 <"Corporate Actions"> - ISLA_GMSLA_033 <"Payment of Rates"> - ISLA_GMSLA_034 <"Rate Applicable to Loaned Securities"> - ISLA_GMSLA_035 <"Lender's Right to Terminate a Loan"> - ISLA_GMSLA_036 <"Borrower's Right to Terminate a Loan"> - ISLA_GMSLA_037 <"Failure to Deliver Event of Default"> - ISLA_GMSLA_038 <"Failure to Redeliver"> - ISLA_GMSLA_039 <"Assets Transferred to a Trustee"> - ISLA_GMSLA_040 <"Suspension Event of Default"> - ISLA_GMSLA_041 <"Costs and Expenses"> - ISLA_GMSLA_042 <"Set-Off"> - ISLA_GMSLA_043 <"Default Market Value Fallbacks"> - ISLA_GMSLA_044 <"Assignment"> - ISLA_GMSLA_045 <"Telephone Recordings"> - ISLA_GMSLA_046 <"Waiver of Immunity"> - ISLA_GMSLA_047 <"Agreement to Deliver Documents"> - ISLA_GMSLA_048 <"Collateral Transfer Details"> - ISLA_GMSLA_049 <"Confidentiality"> - ISLA_GMSLA_050 <"Correction"> - ISLA_GMSLA_051 <"Minimum Collateral Transfer Amount"> - ISLA_GMSLA_052 <"Non-Reliance Representation"> - ISLA_GMSLA_053 <"Records and Statements"> - ISLA_GMSLA_054 <"Recovery and Resolution"> - ISLA_GMSLA_055 <"Security Agreement Details"> - ISLA_GMSLA_056 <"Triparty Services"> + ISLA_GMSLA_001 <"Date of Agreement"> + ISLA_GMSLA_002 <"Parties"> + ISLA_GMSLA_003 <"Specific Roles"> + ISLA_GMSLA_004 <"Eligible Collateral"> + ISLA_GMSLA_005 <"Margin"> + ISLA_GMSLA_006 <"Aggregation"> + ISLA_GMSLA_007 <"Collateral Disapplication"> + ISLA_GMSLA_008 <"Settlement Netting"> + ISLA_GMSLA_009 <"Notification Time"> + ISLA_GMSLA_010 <"Indemnity"> + ISLA_GMSLA_011 <"Base Currency"> + ISLA_GMSLA_012 <"Places of Business"> + ISLA_GMSLA_013 <"Value"> + ISLA_GMSLA_014 <"Automatic Early Termination"> + ISLA_GMSLA_015 <"Designated Offices"> + ISLA_GMSLA_016 <"Address for Notices"> + ISLA_GMSLA_017 <"Process Agent"> + ISLA_GMSLA_018 <"Party Acting as Agent"> + ISLA_GMSLA_019 <"Pooled Principal Transactions "> + ISLA_GMSLA_020 <"Party Preparing the Agreement "> + ISLA_GMSLA_021 <"Default Interest Rate"> + ISLA_GMSLA_022 <"Existing Transactions"> + ISLA_GMSLA_023 <"Automation"> + ISLA_GMSLA_024 <"Act of Insolvency"> + ISLA_GMSLA_025 <"Buy-In"> + ISLA_GMSLA_026 <"Currency Conversions"> + ISLA_GMSLA_027 <"Scope"> + ISLA_GMSLA_028 <"Collateral Delivery Timings"> + ISLA_GMSLA_029 <"Delivery"> + ISLA_GMSLA_030 <"Substitution of Collateral"> + ISLA_GMSLA_031 <"Manufactured Payments"> + ISLA_GMSLA_032 <"Corporate Actions"> + ISLA_GMSLA_033 <"Payment of Rates"> + ISLA_GMSLA_034 <"Rate Applicable to Loaned Securities"> + ISLA_GMSLA_035 <"Lender's Right to Terminate a Loan"> + ISLA_GMSLA_036 <"Borrower's Right to Terminate a Loan"> + ISLA_GMSLA_037 <"Failure to Deliver Event of Default"> + ISLA_GMSLA_038 <"Failure to Redeliver"> + ISLA_GMSLA_039 <"Assets Transferred to a Trustee"> + ISLA_GMSLA_040 <"Suspension Event of Default"> + ISLA_GMSLA_041 <"Costs and Expenses"> + ISLA_GMSLA_042 <"Set-Off"> + ISLA_GMSLA_043 <"Default Market Value Fallbacks"> + ISLA_GMSLA_044 <"Assignment"> + ISLA_GMSLA_045 <"Telephone Recordings"> + ISLA_GMSLA_046 <"Waiver of Immunity"> + ISLA_GMSLA_047 <"Agreement to Deliver Documents"> + ISLA_GMSLA_048 <"Collateral Transfer Details"> + ISLA_GMSLA_049 <"Confidentiality"> + ISLA_GMSLA_050 <"Correction"> + ISLA_GMSLA_051 <"Minimum Collateral Transfer Amount"> + ISLA_GMSLA_052 <"Non-Reliance Representation"> + ISLA_GMSLA_053 <"Records and Statements"> + ISLA_GMSLA_054 <"Recovery and Resolution"> + ISLA_GMSLA_055 <"Security Agreement Details"> + ISLA_GMSLA_056 <"Triparty Services"> enum MasterAgreementVariantIdentifierEnum: - ISLA_GMSLA_001_01 <"Agreement is Undated"> - ISLA_GMSLA_001_02 <"Agreement is Dated"> - ISLA_GMSLA_002_01 <"Name and Place of Incorporation"> - ISLA_GMSLA_002_02 <"Names and Place of Incorporation plus Additional Information"> - ISLA_GMSLA_002_03 <"Defining the Party's Role as Lender or Borrower"> - ISLA_GMSLA_003_01 <"Non-specific Roles"> - ISLA_GMSLA_003_02 <"Specific Roles"> - ISLA_GMSLA_004_01 <"GMSLA Schedule"> - ISLA_GMSLA_004_02 <"Outside of GMSLA"> - ISLA_GMSLA_004_03 <"Additional Criteria"> - ISLA_GMSLA_005_01 <"GMSLA Schedule"> - ISLA_GMSLA_005_02 <"Outside of GMSLA"> - ISLA_GMSLA_006_01 <"Aggregation Applies"> - ISLA_GMSLA_006_02 <"Aggregation Does Not Apply"> - ISLA_GMSLA_006_03 <"Aggregation Applies Separately to Loan Groups"> - ISLA_GMSLA_006_04 <"Aggregation Applies to Some but Not All Loans"> - ISLA_GMSLA_006_05 <"Neither Aggregation nor Loan by Loan Applies"> - ISLA_GMSLA_007_01 <"Standard"> - ISLA_GMSLA_007_02 <"Collateral Disapplied"> - ISLA_GMSLA_008_01 <"Netting of Collateral Shall Apply"> - ISLA_GMSLA_008_02 <"Netting of Collateral Shall Not Apply"> - ISLA_GMSLA_008_03 <"Netting of Collateral Shall Apply with Multiple Payments or Delivery Options"> - ISLA_GMSLA_008_04 <"Netting of Collateral Shall Apply Separately per Group of Loans"> - ISLA_GMSLA_009_01 <"Specified Time"> - ISLA_GMSLA_009_02 <"Notification Time by Collateral Type"> - ISLA_GMSLA_009_03 <"Notification Time as Agreed"> - ISLA_GMSLA_009_04 <"No Notification Time"> - ISLA_GMSLA_010_01 <"Indemnity Applies"> - ISLA_GMSLA_010_02 <"Indemnity does not Apply"> - ISLA_GMSLA_011_01 <"Single Base Currency"> - ISLA_GMSLA_011_02 <"Single Base Currency with Fallback"> - ISLA_GMSLA_011_03 <"Single Base Currency with Multiple Fallback Options"> - ISLA_GMSLA_012_01 <"Locations are Specified Without Reference to Party"> - ISLA_GMSLA_012_02 <"Locations are Specified Separately per Party"> - ISLA_GMSLA_012_03 <"Not all Places of Business Have to be Open"> - ISLA_GMSLA_013_01 <"Standard Bid Price"> - ISLA_GMSLA_013_02 <"Standard Mid Price"> - ISLA_GMSLA_013_03 <"2018 Standard"> - ISLA_GMSLA_013_04 <"Borrowers Agreement to Pricing Source"> - ISLA_GMSLA_013_05 <"Pre-agreed Pricing Source"> - ISLA_GMSLA_013_06 <"Time Variation"> - ISLA_GMSLA_014_01 <"Automatic Early Termination does not Apply"> - ISLA_GMSLA_014_02 <"Automatic Early Termination Applies"> - ISLA_GMSLA_014_03 <"Automatic Early Termination Applies in Modified Form)"> - ISLA_GMSLA_014_04 <"Automatic Early Termination is specified separately for each Principal"> - ISLA_GMSLA_014_05 <"Automatic Early Termination is not applicable unless required due to the systems of law"> - ISLA_GMSLA_015_01 <"Party Specifies a Single Designated Office"> - ISLA_GMSLA_015_02 <"Party Specifies Multiple Designated Offices"> - ISLA_GMSLA_016_01 <"2000 Standard"> - ISLA_GMSLA_016_02 <"2010 Standard"> - ISLA_GMSLA_016_03 <"2018 Standard"> - ISLA_GMSLA_016_04 <"Plus Email"> - ISLA_GMSLA_016_05 <"Separate Address for Legal and Operational Notices"> - ISLA_GMSLA_016_06 <"Special Instructions"> - ISLA_GMSLA_017_01 <"No Process Agent"> - ISLA_GMSLA_017_02 <"Process Agent Specified"> - ISLA_GMSLA_017_03 <"Process Agent to be Appointed"> - ISLA_GMSLA_018_01 <"A Party will not act as Agent"> - ISLA_GMSLA_018_02 <"A Party may act as Agent"> - ISLA_GMSLA_018_03 <"A Party will always act as Agent"> - ISLA_GMSLA_019_01 <"Pooled Principal Transactions Shall Not Apply"> - ISLA_GMSLA_019_02 <"Pooled Principal Transactions Shall Apply"> - ISLA_GMSLA_019_03 <"Pooled Principal Transactions May Apply"> - ISLA_GMSLA_020_01 <"Simple Election"> - ISLA_GMSLA_020_02 <"Election with Modifications"> - ISLA_GMSLA_021_01 <"Term Rate"> - ISLA_GMSLA_021_02 <"Overnight Rate"> - ISLA_GMSLA_021_03 <"Risk Free Rate"> - ISLA_GMSLA_021_04 <"Non-Defaulting Party Election"> - ISLA_GMSLA_021_05 <"Spread"> - ISLA_GMSLA_022_01 <"Agreement Covers Existing Loans"> - ISLA_GMSLA_022_02 <"Agreement Does Not Cover Existing Loans"> - ISLA_GMSLA_023_01 <"Automation Does Not Apply"> - ISLA_GMSLA_023_02 <"Automation May Apply"> - ISLA_GMSLA_024_01 <"Standard Pre-Print"> - ISLA_GMSLA_024_02 <"Grace Period Amendment"> - ISLA_GMSLA_024_03 <"Jurisdictional Amendments"> - ISLA_GMSLA_025_01 <"Transferor Pays Costs and Expenses"> - ISLA_GMSLA_025_02 <"Transferor Pays Costs and Expenses other than those arising from Negligence"> - ISLA_GMSLA_025_03 <"Transferor only Liable for Cost and Expenses if Reasonable Notice of Buy-in"> - ISLA_GMSLA_025_04 <"Buy-in Expanded to Cover Buy-in Exercised by an Exchange"> - ISLA_GMSLA_026_01 <"Standard"> - ISLA_GMSLA_026_02 <"Selecting Party other than Lender"> - ISLA_GMSLA_026_03 <"Variation of Exchange Rate Source"> - ISLA_GMSLA_027_01 <"Standard Scope"> - ISLA_GMSLA_027_02 <"Limited Scope"> - ISLA_GMSLA_028_01 <"Same Day"> - ISLA_GMSLA_028_02 <"Alternative Delivery Time"> - ISLA_GMSLA_028_03 <"Same Day with Notification Time"> - ISLA_GMSLA_028_04 <"Alternative Delivery Time with Notification Time"> - ISLA_GMSLA_028_05 <"Asset Dependent"> - ISLA_GMSLA_029_01 <"Simultaneous delivery of securities and collateral"> - ISLA_GMSLA_029_02 <"Collateral Delivery as specified in the Security Agreement"> - ISLA_GMSLA_029_03 <"Lender to Deliver Securities once Collateral is Delivered"> - ISLA_GMSLA_030_01 <"Borrower Request"> - ISLA_GMSLA_030_02 <"Borrower Request/Lender Consent"> - ISLA_GMSLA_030_03 <"Lender or Borrower Request"> - ISLA_GMSLA_030_04 <"Pre-approval of Alternative Collateral"> - ISLA_GMSLA_031_01 <"Manufactured Payment of Amount Such Party Would Be Entitled to Receive"> - ISLA_GMSLA_031_02 <"Manufactured Payment of Amount Such Lender Would Be Entitled to Receive"> - ISLA_GMSLA_031_03 <"Manufactured Payment Only in Relation to Loaned Securities"> - ISLA_GMSLA_031_04 <"Additional Sum to Be Paid to Cover Tax Relief"> - ISLA_GMSLA_031_05 <"Notice Requirement"> - ISLA_GMSLA_032_01 <"Standard"> - ISLA_GMSLA_032_02 <"Reasonable Notice Defined"> - ISLA_GMSLA_032_03 <"No Right to Instruct"> - ISLA_GMSLA_033_01 <"Payment Within a Week"> - ISLA_GMSLA_033_02 <"Payment Within 10 Days"> - ISLA_GMSLA_033_03 <"Payment Upon Maturity"> - ISLA_GMSLA_034_01 <"Such Rate as Agreed"> - ISLA_GMSLA_034_02 <"VAT Added"> - ISLA_GMSLA_034_03 <"No Deduction"> - ISLA_GMSLA_034_04 <"No Rate Payable"> - ISLA_GMSLA_035_01 <"Lender May Terminate a Loan at any Time"> - ISLA_GMSLA_035_02 <"Lender May Not Terminate a Loan"> - ISLA_GMSLA_036_01 <"Borrower May Terminate a Loan at Any Time"> - ISLA_GMSLA_036_02 <"Borrower May Terminate a Loan Subject to Notice"> - ISLA_GMSLA_036_03 <"Borrower May Terminate a Loan Subject to Limitations Concerning Corporate Actions"> - ISLA_GMSLA_036_04 <"Borrower May Terminate a Loan Subject to Paying the Rate for the Full Term"> - ISLA_GMSLA_037_01 <"Failure to Deliver Event of Default Applies"> - ISLA_GMSLA_037_02 <"Failure to Deliver Event of Default does not Apply"> - ISLA_GMSLA_037_03 <"Failure to Deliver Event of Default does not Apply to Lender"> - ISLA_GMSLA_038_01 <"2000 Standard"> - ISLA_GMSLA_038_02 <"2010 Standard"> - ISLA_GMSLA_038_03 <"2018 Standard"> - ISLA_GMSLA_038_04 <"2000 Modified No Lender Close Out"> - ISLA_GMSLA_039_01 <"2000 Standard"> - ISLA_GMSLA_039_02 <"2010/2018 Standard"> - ISLA_GMSLA_039_03 <"Hybrid"> - ISLA_GMSLA_040_01 <"2000 Standard"> - ISLA_GMSLA_040_02 <"2010/2018 Standard"> - ISLA_GMSLA_040_03 <"Hybrid"> - ISLA_GMSLA_041_01 <"Standard Costs and Expenses"> - ISLA_GMSLA_041_02 <"Limitation of Costs and Expenses"> - ISLA_GMSLA_041_03 <"Expansion of Costs and Expenses"> - ISLA_GMSLA_042_01 <"No Contractual Set-Off"> - ISLA_GMSLA_042_02 <"Simple Contractual Set-Off"> - ISLA_GMSLA_042_03 <"Set-Off with Unascertained Obligations Amendment"> - ISLA_GMSLA_043_01 <"Standard Paragraph 11.2(a)"> - ISLA_GMSLA_043_02 <"Amended Paragraph 11.2,(a) applies"> - ISLA_GMSLA_044_01 <"Consent"> - ISLA_GMSLA_044_02 <"Consent with Standard Exclusions"> - ISLA_GMSLA_044_03 <"Consent with Additional Exclusions"> - ISLA_GMSLA_044_04 <"Pre-approved Assignments"> - ISLA_GMSLA_045_01 <"Parties May Record All Conversations"> - ISLA_GMSLA_045_02 <"Parties Agree to Obtain Consent"> - ISLA_GMSLA_045_03 <"Parties Limit the Conversations that May be Recorded"> - ISLA_GMSLA_045_04 <"Submission as Evidence"> - ISLA_GMSLA_046_01 <"Standard Waiver of Immunity Applies"> - ISLA_GMSLA_046_02 <"Waiver of Immunity may Not Apply"> - ISLA_GMSLA_047_01 <"No Additional Documentation Required"> - ISLA_GMSLA_047_02 <"Additional Documentation Required"> - ISLA_GMSLA_048_01 <"Collateral Transfer Details not included"> - ISLA_GMSLA_048_02 <"Collateral Transfer Details included"> - ISLA_GMSLA_049_01 <"Confidentiality Clause"> - ISLA_GMSLA_049_02 <"Permitted Disclosure Clause"> - ISLA_GMSLA_050_01 <"Paragraph 20.1 Amended to Refer Paragraph 6"> - ISLA_GMSLA_050_02 <"Paragraph 27.2 Amended to refer to the 2010 GMSLA"> - ISLA_GMSLA_051_01 <"MCTA Delivery only"> - ISLA_GMSLA_051_02 <"MCTA Delivery and Re-Delivery"> - ISLA_GMSLA_051_03 <"MCTA Drops to Zero for a Defaulting Party"> - ISLA_GMSLA_052_01 <"No Non-Reliance Representation"> - ISLA_GMSLA_052_02 <"Non-Reliance Representation Added"> - ISLA_GMSLA_053_01 <"No Records and Statements Clause"> - ISLA_GMSLA_053_02 <"Records and Statements Clause Added"> - ISLA_GMSLA_054_01 <"Recovery and Resolution not Included"> - ISLA_GMSLA_054_02 <"Recovery and Resolution Included in GMSLA"> - ISLA_GMSLA_054_03 <"Recovery and Resolution Included by Protocol"> - ISLA_GMSLA_054_04 <"Recovery and Resolution Incorporated by Reference"> - ISLA_GMSLA_055_01 <"Security Agreement Details Included"> - ISLA_GMSLA_056_01 <"Triparty Services Not Referenced"> - ISLA_GMSLA_056_02 <"Triparty Services May Apply"> \ No newline at end of file + ISLA_GMSLA_001_01 <"Agreement is Undated"> + ISLA_GMSLA_001_02 <"Agreement is Dated"> + ISLA_GMSLA_002_01 <"Name and Place of Incorporation"> + ISLA_GMSLA_002_02 <"Names and Place of Incorporation plus Additional Information"> + ISLA_GMSLA_002_03 <"Defining the Party's Role as Lender or Borrower"> + ISLA_GMSLA_003_01 <"Non-specific Roles"> + ISLA_GMSLA_003_02 <"Specific Roles"> + ISLA_GMSLA_004_01 <"GMSLA Schedule"> + ISLA_GMSLA_004_02 <"Outside of GMSLA"> + ISLA_GMSLA_004_03 <"Additional Criteria"> + ISLA_GMSLA_005_01 <"GMSLA Schedule"> + ISLA_GMSLA_005_02 <"Outside of GMSLA"> + ISLA_GMSLA_006_01 <"Aggregation Applies"> + ISLA_GMSLA_006_02 <"Aggregation Does Not Apply"> + ISLA_GMSLA_006_03 <"Aggregation Applies Separately to Loan Groups"> + ISLA_GMSLA_006_04 <"Aggregation Applies to Some but Not All Loans"> + ISLA_GMSLA_006_05 <"Neither Aggregation nor Loan by Loan Applies"> + ISLA_GMSLA_007_01 <"Standard"> + ISLA_GMSLA_007_02 <"Collateral Disapplied"> + ISLA_GMSLA_008_01 <"Netting of Collateral Shall Apply"> + ISLA_GMSLA_008_02 <"Netting of Collateral Shall Not Apply"> + ISLA_GMSLA_008_03 <"Netting of Collateral Shall Apply with Multiple Payments or Delivery Options"> + ISLA_GMSLA_008_04 <"Netting of Collateral Shall Apply Separately per Group of Loans"> + ISLA_GMSLA_009_01 <"Specified Time"> + ISLA_GMSLA_009_02 <"Notification Time by Collateral Type"> + ISLA_GMSLA_009_03 <"Notification Time as Agreed"> + ISLA_GMSLA_009_04 <"No Notification Time"> + ISLA_GMSLA_010_01 <"Indemnity Applies"> + ISLA_GMSLA_010_02 <"Indemnity does not Apply"> + ISLA_GMSLA_011_01 <"Single Base Currency"> + ISLA_GMSLA_011_02 <"Single Base Currency with Fallback"> + ISLA_GMSLA_011_03 <"Single Base Currency with Multiple Fallback Options"> + ISLA_GMSLA_012_01 <"Locations are Specified Without Reference to Party"> + ISLA_GMSLA_012_02 <"Locations are Specified Separately per Party"> + ISLA_GMSLA_012_03 <"Not all Places of Business Have to be Open"> + ISLA_GMSLA_013_01 <"Standard Bid Price"> + ISLA_GMSLA_013_02 <"Standard Mid Price"> + ISLA_GMSLA_013_03 <"2018 Standard"> + ISLA_GMSLA_013_04 <"Borrowers Agreement to Pricing Source"> + ISLA_GMSLA_013_05 <"Pre-agreed Pricing Source"> + ISLA_GMSLA_013_06 <"Time Variation"> + ISLA_GMSLA_014_01 <"Automatic Early Termination does not Apply"> + ISLA_GMSLA_014_02 <"Automatic Early Termination Applies"> + ISLA_GMSLA_014_03 <"Automatic Early Termination Applies in Modified Form)"> + ISLA_GMSLA_014_04 <"Automatic Early Termination is specified separately for each Principal"> + ISLA_GMSLA_014_05 <"Automatic Early Termination is not applicable unless required due to the systems of law"> + ISLA_GMSLA_015_01 <"Party Specifies a Single Designated Office"> + ISLA_GMSLA_015_02 <"Party Specifies Multiple Designated Offices"> + ISLA_GMSLA_016_01 <"2000 Standard"> + ISLA_GMSLA_016_02 <"2010 Standard"> + ISLA_GMSLA_016_03 <"2018 Standard"> + ISLA_GMSLA_016_04 <"Plus Email"> + ISLA_GMSLA_016_05 <"Separate Address for Legal and Operational Notices"> + ISLA_GMSLA_016_06 <"Special Instructions"> + ISLA_GMSLA_017_01 <"No Process Agent"> + ISLA_GMSLA_017_02 <"Process Agent Specified"> + ISLA_GMSLA_017_03 <"Process Agent to be Appointed"> + ISLA_GMSLA_018_01 <"A Party will not act as Agent"> + ISLA_GMSLA_018_02 <"A Party may act as Agent"> + ISLA_GMSLA_018_03 <"A Party will always act as Agent"> + ISLA_GMSLA_019_01 <"Pooled Principal Transactions Shall Not Apply"> + ISLA_GMSLA_019_02 <"Pooled Principal Transactions Shall Apply"> + ISLA_GMSLA_019_03 <"Pooled Principal Transactions May Apply"> + ISLA_GMSLA_020_01 <"Simple Election"> + ISLA_GMSLA_020_02 <"Election with Modifications"> + ISLA_GMSLA_021_01 <"Term Rate"> + ISLA_GMSLA_021_02 <"Overnight Rate"> + ISLA_GMSLA_021_03 <"Risk Free Rate"> + ISLA_GMSLA_021_04 <"Non-Defaulting Party Election"> + ISLA_GMSLA_021_05 <"Spread"> + ISLA_GMSLA_022_01 <"Agreement Covers Existing Loans"> + ISLA_GMSLA_022_02 <"Agreement Does Not Cover Existing Loans"> + ISLA_GMSLA_023_01 <"Automation Does Not Apply"> + ISLA_GMSLA_023_02 <"Automation May Apply"> + ISLA_GMSLA_024_01 <"Standard Pre-Print"> + ISLA_GMSLA_024_02 <"Grace Period Amendment"> + ISLA_GMSLA_024_03 <"Jurisdictional Amendments"> + ISLA_GMSLA_025_01 <"Transferor Pays Costs and Expenses"> + ISLA_GMSLA_025_02 <"Transferor Pays Costs and Expenses other than those arising from Negligence"> + ISLA_GMSLA_025_03 <"Transferor only Liable for Cost and Expenses if Reasonable Notice of Buy-in"> + ISLA_GMSLA_025_04 <"Buy-in Expanded to Cover Buy-in Exercised by an Exchange"> + ISLA_GMSLA_026_01 <"Standard"> + ISLA_GMSLA_026_02 <"Selecting Party other than Lender"> + ISLA_GMSLA_026_03 <"Variation of Exchange Rate Source"> + ISLA_GMSLA_027_01 <"Standard Scope"> + ISLA_GMSLA_027_02 <"Limited Scope"> + ISLA_GMSLA_028_01 <"Same Day"> + ISLA_GMSLA_028_02 <"Alternative Delivery Time"> + ISLA_GMSLA_028_03 <"Same Day with Notification Time"> + ISLA_GMSLA_028_04 <"Alternative Delivery Time with Notification Time"> + ISLA_GMSLA_028_05 <"Asset Dependent"> + ISLA_GMSLA_029_01 <"Simultaneous delivery of securities and collateral"> + ISLA_GMSLA_029_02 <"Collateral Delivery as specified in the Security Agreement"> + ISLA_GMSLA_029_03 <"Lender to Deliver Securities once Collateral is Delivered"> + ISLA_GMSLA_030_01 <"Borrower Request"> + ISLA_GMSLA_030_02 <"Borrower Request/Lender Consent"> + ISLA_GMSLA_030_03 <"Lender or Borrower Request"> + ISLA_GMSLA_030_04 <"Pre-approval of Alternative Collateral"> + ISLA_GMSLA_031_01 <"Manufactured Payment of Amount Such Party Would Be Entitled to Receive"> + ISLA_GMSLA_031_02 <"Manufactured Payment of Amount Such Lender Would Be Entitled to Receive"> + ISLA_GMSLA_031_03 <"Manufactured Payment Only in Relation to Loaned Securities"> + ISLA_GMSLA_031_04 <"Additional Sum to Be Paid to Cover Tax Relief"> + ISLA_GMSLA_031_05 <"Notice Requirement"> + ISLA_GMSLA_032_01 <"Standard"> + ISLA_GMSLA_032_02 <"Reasonable Notice Defined"> + ISLA_GMSLA_032_03 <"No Right to Instruct"> + ISLA_GMSLA_033_01 <"Payment Within a Week"> + ISLA_GMSLA_033_02 <"Payment Within 10 Days"> + ISLA_GMSLA_033_03 <"Payment Upon Maturity"> + ISLA_GMSLA_034_01 <"Such Rate as Agreed"> + ISLA_GMSLA_034_02 <"VAT Added"> + ISLA_GMSLA_034_03 <"No Deduction"> + ISLA_GMSLA_034_04 <"No Rate Payable"> + ISLA_GMSLA_035_01 <"Lender May Terminate a Loan at any Time"> + ISLA_GMSLA_035_02 <"Lender May Not Terminate a Loan"> + ISLA_GMSLA_036_01 <"Borrower May Terminate a Loan at Any Time"> + ISLA_GMSLA_036_02 <"Borrower May Terminate a Loan Subject to Notice"> + ISLA_GMSLA_036_03 <"Borrower May Terminate a Loan Subject to Limitations Concerning Corporate Actions"> + ISLA_GMSLA_036_04 <"Borrower May Terminate a Loan Subject to Paying the Rate for the Full Term"> + ISLA_GMSLA_037_01 <"Failure to Deliver Event of Default Applies"> + ISLA_GMSLA_037_02 <"Failure to Deliver Event of Default does not Apply"> + ISLA_GMSLA_037_03 <"Failure to Deliver Event of Default does not Apply to Lender"> + ISLA_GMSLA_038_01 <"2000 Standard"> + ISLA_GMSLA_038_02 <"2010 Standard"> + ISLA_GMSLA_038_03 <"2018 Standard"> + ISLA_GMSLA_038_04 <"2000 Modified No Lender Close Out"> + ISLA_GMSLA_039_01 <"2000 Standard"> + ISLA_GMSLA_039_02 <"2010/2018 Standard"> + ISLA_GMSLA_039_03 <"Hybrid"> + ISLA_GMSLA_040_01 <"2000 Standard"> + ISLA_GMSLA_040_02 <"2010/2018 Standard"> + ISLA_GMSLA_040_03 <"Hybrid"> + ISLA_GMSLA_041_01 <"Standard Costs and Expenses"> + ISLA_GMSLA_041_02 <"Limitation of Costs and Expenses"> + ISLA_GMSLA_041_03 <"Expansion of Costs and Expenses"> + ISLA_GMSLA_042_01 <"No Contractual Set-Off"> + ISLA_GMSLA_042_02 <"Simple Contractual Set-Off"> + ISLA_GMSLA_042_03 <"Set-Off with Unascertained Obligations Amendment"> + ISLA_GMSLA_043_01 <"Standard Paragraph 11.2(a)"> + ISLA_GMSLA_043_02 <"Amended Paragraph 11.2,(a) applies"> + ISLA_GMSLA_044_01 <"Consent"> + ISLA_GMSLA_044_02 <"Consent with Standard Exclusions"> + ISLA_GMSLA_044_03 <"Consent with Additional Exclusions"> + ISLA_GMSLA_044_04 <"Pre-approved Assignments"> + ISLA_GMSLA_045_01 <"Parties May Record All Conversations"> + ISLA_GMSLA_045_02 <"Parties Agree to Obtain Consent"> + ISLA_GMSLA_045_03 <"Parties Limit the Conversations that May be Recorded"> + ISLA_GMSLA_045_04 <"Submission as Evidence"> + ISLA_GMSLA_046_01 <"Standard Waiver of Immunity Applies"> + ISLA_GMSLA_046_02 <"Waiver of Immunity may Not Apply"> + ISLA_GMSLA_047_01 <"No Additional Documentation Required"> + ISLA_GMSLA_047_02 <"Additional Documentation Required"> + ISLA_GMSLA_048_01 <"Collateral Transfer Details not included"> + ISLA_GMSLA_048_02 <"Collateral Transfer Details included"> + ISLA_GMSLA_049_01 <"Confidentiality Clause"> + ISLA_GMSLA_049_02 <"Permitted Disclosure Clause"> + ISLA_GMSLA_050_01 <"Paragraph 20.1 Amended to Refer Paragraph 6"> + ISLA_GMSLA_050_02 <"Paragraph 27.2 Amended to refer to the 2010 GMSLA"> + ISLA_GMSLA_051_01 <"MCTA Delivery only"> + ISLA_GMSLA_051_02 <"MCTA Delivery and Re-Delivery"> + ISLA_GMSLA_051_03 <"MCTA Drops to Zero for a Defaulting Party"> + ISLA_GMSLA_052_01 <"No Non-Reliance Representation"> + ISLA_GMSLA_052_02 <"Non-Reliance Representation Added"> + ISLA_GMSLA_053_01 <"No Records and Statements Clause"> + ISLA_GMSLA_053_02 <"Records and Statements Clause Added"> + ISLA_GMSLA_054_01 <"Recovery and Resolution not Included"> + ISLA_GMSLA_054_02 <"Recovery and Resolution Included in GMSLA"> + ISLA_GMSLA_054_03 <"Recovery and Resolution Included by Protocol"> + ISLA_GMSLA_054_04 <"Recovery and Resolution Incorporated by Reference"> + ISLA_GMSLA_055_01 <"Security Agreement Details Included"> + ISLA_GMSLA_056_01 <"Triparty Services Not Referenced"> + ISLA_GMSLA_056_02 <"Triparty Services May Apply"> diff --git a/rosetta-source/src/main/rosetta/legaldocumentation-master-type.rosetta b/rosetta-source/src/main/rosetta/legaldocumentation-master-type.rosetta index 105739e740..34fc695117 100644 --- a/rosetta-source/src/main/rosetta/legaldocumentation-master-type.rosetta +++ b/rosetta-source/src/main/rosetta/legaldocumentation-master-type.rosetta @@ -12,7 +12,7 @@ import cdm.base.staticdata.party.* type MasterAgreementSchedule: <"The set of elections which specify a Master Agreement."> clause MasterAgreementClause (1..*) <"Clauses that have had elections made against them in this Master Agreement. There must be at least one clause defined in the agreement."> - + type MasterAgreementClause: <"Defines clauses that make up a Master Agreement"> identifer MasterAgreementClauseIdentifierEnum (1..1) <"Unique identifier for the clause"> name string (0..1) <"Optional textual description of the clause."> @@ -36,8 +36,8 @@ type MasterAgreementVariableSet: <"Defines a type where additional variables ass if variableSet exists then name is absent and value is absent condition VariableSetNesting: <"We are only allowing two levels of nesting of variableSet for the time being. This is because we only need to support tables of data in the master agreement variants. This condition can be modified or deleted if we find we need more levels of nesting."> - if variableSet->variableSet exists then - variableSet->variableSet->variableSet is absent + if variableSet -> variableSet exists + then variableSet -> variableSet -> variableSet is absent condition NameMustExist: <"If we have a name then we must also have a value."> if name exists then value exists @@ -78,7 +78,7 @@ type UnderlierSubstitutionProvision: <"Where parties describe any substitution t disputingParty CounterpartyRoleEnum (0..1) <"Where the party who is not granted with the substitution role at least has a right to dispute the determination given by the counterparty with such role. As an example, a given PartyA is the unique Counterparty with the Role of WhoMaySubstitute, yet PartyB could be Disputing Party in regard of such Role."> condition DisputingPartyCannotHaveOriginalRole: - whoMaySubstitute all <> disputingParty + whoMaySubstitute all <> disputingParty type ExtraordinaryEvents: <"Where the underlying is shares, defines market events affecting the issuer of those shares that may require the terms of the transaction to be adjusted."> additionalBespokeTerms Clause (0..*) <"Where parties may optionnaly describe any extra bespoke agreements, in regards of the standardized Extraordinary Events."> @@ -120,20 +120,20 @@ type AdditionalDisruptionEvents: <"A type for defining the Additional Disruption determiningParty AncillaryRoleEnum (0..1) <"Specifies the party which determines additional disruption events."> additionalBespokeTerms Clause (0..*) <"Where parties may optionnaly describe any extra bespoke agreements, in regards of the standardized Extraordinary Events."> condition MaximumStockLoanRate: <" FpML specifies the maximumStockLoanRate as a RestrictedPercentage, meaning that its value is comprised between 0 and 1."> - if maximumStockLoanRate exists then - maximumStockLoanRate >= 0 and maximumStockLoanRate <= 1 + if maximumStockLoanRate exists + then maximumStockLoanRate >= 0 and maximumStockLoanRate <= 1 condition InitialStockLoanRate: <" FpML specifies the initialStockLoanRate as a RestrictedPercentage, meaning that its value is comprised between 0 and 1."> - if initialStockLoanRate exists then - initialStockLoanRate >= 0 and initialStockLoanRate <= 1 + if initialStockLoanRate exists + then initialStockLoanRate >= 0 and initialStockLoanRate <= 1 condition DisruptionEventsDeterminingParty: - if determiningParty exists then - determiningParty = AncillaryRoleEnum -> DisruptionEventsDeterminingParty + if determiningParty exists + then determiningParty = AncillaryRoleEnum -> DisruptionEventsDeterminingParty type Clause: <"A type for documenting additional clause that cannot yet be represented with the model and yet needed for a digital representation of the agreement"> identifier string (0..1) <"The name or identifier associated to this clause "> - terms string (0..1)<"Content of this bespoke clause"> - subcomponents Clause (0..*)<"Additional hierarchichal components of the clause if relevant"> - condition: <"The Clause should describe at least the additional terms, additional subcomponents or both"> + terms string (0..1) <"Content of this bespoke clause"> + subcomponents Clause (0..*) <"Additional hierarchichal components of the clause if relevant"> + condition: <"The Clause should describe at least the additional terms, additional subcomponents or both"> optional choice terms, subcomponents diff --git a/rosetta-source/src/main/rosetta/mapping-cme-synonym.rosetta b/rosetta-source/src/main/rosetta/mapping-cme-synonym.rosetta index 50656c2456..ef60bc9085 100644 --- a/rosetta-source/src/main/rosetta/mapping-cme-synonym.rosetta +++ b/rosetta-source/src/main/rosetta/mapping-cme-synonym.rosetta @@ -22,8 +22,8 @@ synonym source CME_ClearedConfirm_1_17 extends CME_BASE + timestamp [value "timestamps" path "clearingConfirmed->trade->tradeHeader"] [value "header" path "clearingConfirmed"] - + creditLimitInformation - [value "creditLimitInformation" path "clearingConfirmed->trade->tradeHeader"] + + creditLimitInformation + [value "creditLimitInformation" path "clearingConfirmed->trade->tradeHeader"] EventInstruction: + eventDate @@ -31,75 +31,74 @@ synonym source CME_ClearedConfirm_1_17 extends CME_BASE MessageInformation: - sentBy - + sentBy - [value "sentBy" meta "messageAddressScheme"] - - sentTo - + sentTo - [value "sendTo" meta "messageAddressScheme"] - - EventTimestamp: - + dateTime - [value "creationTimestamp"] - [value "expiryTimestamp"] - [value "submittedForClearing"] - + qualification - [set to EventTimestampQualificationEnum -> eventCreationDateTime when "creationTimestamp" exists] - [set to EventTimestampQualificationEnum -> eventExpirationDateTime when "expiryTimestamp" exists] - [set to EventTimestampQualificationEnum -> clearingReceiptDateTime when "submittedForClearing" exists] - - WorkflowState: - + workflowStatus - [value "status" path "clearingConfirmed->trade->tradeHeader"] - - LimitApplicableExtended: - + limitLevel - [value "level" meta "creditLimitLevelScheme"] - + limitAmount - [value "limitAmount"] - + limitImpactDueToTrade - [value "limitImpactDueToTrade"] - - CreditLimitInformation: - + limitApplicable - [value "limitApplicable"] - - Trade: - + tradeIdentifier - [value "universalSwapIdentifier" path "tradeHeader"] + + sentBy + [value "sentBy" meta "messageAddressScheme"] + - sentTo + + sentTo + [value "sendTo" meta "messageAddressScheme"] + + EventTimestamp: + + dateTime + [value "creationTimestamp"] + [value "expiryTimestamp"] + [value "submittedForClearing"] + + qualification + [set to EventTimestampQualificationEnum -> eventCreationDateTime when "creationTimestamp" exists] + [set to EventTimestampQualificationEnum -> eventExpirationDateTime when "expiryTimestamp" exists] + [set to EventTimestampQualificationEnum -> clearingReceiptDateTime when "submittedForClearing" exists] + + WorkflowState: + + workflowStatus + [value "status" path "clearingConfirmed->trade->tradeHeader"] + + LimitApplicableExtended: + + limitLevel + [value "level" meta "creditLimitLevelScheme"] + + limitAmount + [value "limitAmount"] + + limitImpactDueToTrade + [value "limitImpactDueToTrade"] + + CreditLimitInformation: + + limitApplicable + [value "limitApplicable"] + + Trade: + + tradeIdentifier + [value "universalSwapIdentifier" path "tradeHeader"] AssignedIdentifier: - + identifier - [value "tradeId" meta "tradeIdScheme"] - [value "usi" meta "usiScheme"] + + identifier + [value "tradeId" meta "tradeIdScheme"] + [value "usi" meta "usiScheme"] enums - // CategoryEnum: - // + Customer - // [value "CUST"] - // + Principal - // [value "HOUS"] - - WorkflowStatusEnum: - + Accepted - [value "Accepted"] - + Amended - [value "AMENDED"] - + Cleared - [value "CLEARED"] - + Rejected - [value "Rejected"] - + Terminated - [value "TERMINATED"] - - PartyRoleEnum: - + DataSubmitter - [value "InputSource"] + // CategoryEnum: + // + Customer + // [value "CUST"] + // + Principal + // [value "HOUS"] + WorkflowStatusEnum: + + Accepted + [value "Accepted"] + + Amended + [value "AMENDED"] + + Cleared + [value "CLEARED"] + + Rejected + [value "Rejected"] + + Terminated + [value "TERMINATED"] + + PartyRoleEnum: + + DataSubmitter + [value "InputSource"] } synonym source CME_SubmissionIRS_1_0 extends CME_BASE { - WorkflowStep: + WorkflowStep: + proposedEvent [value "TrdCaptRpt"] [value "FpML" path "TrdCaptRpt->Instrmt->SecXML"] @@ -108,51 +107,51 @@ synonym source CME_SubmissionIRS_1_0 extends CME_BASE + messageInformation [value "TrdCaptRpt"] - EventTimestamp: - + dateTime - [value "TxnTm" path "TrdCaptRpt"] - [value "Snt" path "TrdCaptRpt->Hdr"] - [value "TS" path "TrdCaptRpt->TrdRegTS"] - + qualification - [set to EventTimestampQualificationEnum -> transactionCreationDateTime when path = "TrdCaptRpt->TxnTm"] - [set to EventTimestampQualificationEnum -> eventSentDateTime when path= "TrdCaptRpt->Hdr->Snt"] - [set to EventTimestampQualificationEnum -> executionDateTime when path= "TrdCaptRpt->TrdRegTS->TS" and "TrdCaptRpt->TrdRegTS->Typ" = 1] - - WorkflowState: - + workflowStatus - [value "RptTyp" path "TrdCaptRpt"] - + partyCustomisedWorkflow - [value "RptSide" path "TrdCaptRpt"] - - MessageInformation: - + sentBy - [value "SSub" path "Hdr"] - + sentTo - [value "TID" path "Hdr"] - - PartyCustomisedWorkflow: - + partyName - [value "ID" path "Pty"] - - CustomisedWorkflow: - + itemName - [set to "ClientOrderId" when path = "ClOrdID"] - [set to "TradeOriginationSystem" when path = "InptSrc"] - [set to "OriginatingTradeId" when path = "OrigTrdID"] - [set to "ExecutionTime" when path = "TrdRegTS->TS" and "TrdRegTS->Typ" = "1"] - [set to "PartyType" when path = "Pty->R"] - [set to "PartyIdentifier" when path = "Pty->Src"] - + itemValue - [value "ClOrdID"] - [value "InptSrc"] - [value "OrigTrdID"] - [value "TS" path "TrdRegTS"] - [set to "Customer Account" when "Pty->R" = "24"] - [set to "Custom" when "Pty->Src" = "D"] - - AssignedIdentifier: - + identifier - [value "RptID" path "TrdCaptRpt"] + EventTimestamp: + + dateTime + [value "TxnTm" path "TrdCaptRpt"] + [value "Snt" path "TrdCaptRpt->Hdr"] + [value "TS" path "TrdCaptRpt->TrdRegTS"] + + qualification + [set to EventTimestampQualificationEnum -> transactionCreationDateTime when path = "TrdCaptRpt->TxnTm"] + [set to EventTimestampQualificationEnum -> eventSentDateTime when path = "TrdCaptRpt->Hdr->Snt"] + [set to EventTimestampQualificationEnum -> executionDateTime when path = "TrdCaptRpt->TrdRegTS->TS" and "TrdCaptRpt->TrdRegTS->Typ" = 1] + + WorkflowState: + + workflowStatus + [value "RptTyp" path "TrdCaptRpt"] + + partyCustomisedWorkflow + [value "RptSide" path "TrdCaptRpt"] + + MessageInformation: + + sentBy + [value "SSub" path "Hdr"] + + sentTo + [value "TID" path "Hdr"] + + PartyCustomisedWorkflow: + + partyName + [value "ID" path "Pty"] + + CustomisedWorkflow: + + itemName + [set to "ClientOrderId" when path = "ClOrdID"] + [set to "TradeOriginationSystem" when path = "InptSrc"] + [set to "OriginatingTradeId" when path = "OrigTrdID"] + [set to "ExecutionTime" when path = "TrdRegTS->TS" and "TrdRegTS->Typ" = "1"] + [set to "PartyType" when path = "Pty->R"] + [set to "PartyIdentifier" when path = "Pty->Src"] + + itemValue + [value "ClOrdID"] + [value "InptSrc"] + [value "OrigTrdID"] + [value "TS" path "TrdRegTS"] + [set to "Customer Account" when "Pty->R" = "24"] + [set to "Custom" when "Pty->Src" = "D"] + + AssignedIdentifier: + + identifier + [value "RptID" path "TrdCaptRpt"] TradeState: [meta "id" path "trade"] @@ -162,72 +161,71 @@ synonym source CME_SubmissionIRS_1_0 extends CME_BASE [hint "party"] [hint "account"] - ExecutionDetails: - + executionType - [value "VenuTyp"] - + executionVenue - [value "Hdr"] - - PartyReferencePayerReceiver: - - payerPartyReference - + payerPartyReference - [value "payerPartyReference" mapper "TradeSideToParty"] - [value "buyerPartyReference" maps 2 mapper "TradeSideToParty"] - - receiverPartyReference - + receiverPartyReference - [value "receiverPartyReference" mapper "TradeSideToParty"] - [value "sellerPartyReference" maps 2 mapper "TradeSideToParty"] - - LegalEntity: - + name - [value "SID"] - - Party: - + name - [value "SID" path "Hdr"] + ExecutionDetails: + + executionType + [value "VenuTyp"] + + executionVenue + [value "Hdr"] + + PartyReferencePayerReceiver: + - payerPartyReference + + payerPartyReference + [value "payerPartyReference" mapper "TradeSideToParty"] + [value "buyerPartyReference" maps 2 mapper "TradeSideToParty"] + - receiverPartyReference + + receiverPartyReference + [value "receiverPartyReference" mapper "TradeSideToParty"] + [value "sellerPartyReference" maps 2 mapper "TradeSideToParty"] + + LegalEntity: + + name + [value "SID"] + + Party: + + name + [value "SID" path "Hdr"] enums - ExecutionTypeEnum: - - Electronic - + Electronic - [value "E"] - + OffFacility - [value "O"] - - ActionEnum: - + New - [value "0"] - + Correct - [value "2"] - + Cancel - [value "1"] - - WorkflowStatusEnum: - + Cancelled - [value "2"] - + Pending - [value "101"] - + Rejected - [value "1"] - + Submitted - [value "0"] + ExecutionTypeEnum: + - Electronic + + Electronic + [value "E"] + + OffFacility + [value "O"] + + ActionEnum: + + New + [value "0"] + + Correct + [value "2"] + + Cancel + [value "1"] + + WorkflowStatusEnum: + + Cancelled + [value "2"] + + Pending + [value "101"] + + Rejected + [value "1"] + + Submitted + [value "0"] } synonym source CME_BASE extends FpML_5_Confirmation_To_WorkflowStep { - InterestShortFall: - + rateSource - [value "rateSource" meta "floatingRateIndexScheme"] - - enums - - LimitLevelEnum: - + Account - [value "ACCT"] - + Customer - [value "CUST"] - + House - [value "HOUS"] -} + InterestShortFall: + + rateSource + [value "rateSource" meta "floatingRateIndexScheme"] + + enums + LimitLevelEnum: + + Account + [value "ACCT"] + + Customer + [value "CUST"] + + House + [value "HOUS"] +} diff --git a/rosetta-source/src/main/rosetta/mapping-config-synonym.rosetta b/rosetta-source/src/main/rosetta/mapping-config-synonym.rosetta index a9317b2917..8c58969f82 100644 --- a/rosetta-source/src/main/rosetta/mapping-config-synonym.rosetta +++ b/rosetta-source/src/main/rosetta/mapping-config-synonym.rosetta @@ -2,7 +2,11 @@ namespace cdm.mapping.config version "${project.version}" synonym source AcadiaSoft_AM_1_0 + synonym source FIX_5_0_SP2 + synonym source ISDA_Taxonomy_v1 + synonym source ISDA_Taxonomy_v2 + synonym source ISO20022 diff --git a/rosetta-source/src/main/rosetta/mapping-dtcc-synonym.rosetta b/rosetta-source/src/main/rosetta/mapping-dtcc-synonym.rosetta index f3a2f278cd..47acd33972 100644 --- a/rosetta-source/src/main/rosetta/mapping-dtcc-synonym.rosetta +++ b/rosetta-source/src/main/rosetta/mapping-dtcc-synonym.rosetta @@ -19,9 +19,7 @@ synonym source DTCC_11_0 extends DTCC_BASE + intent [set to EventIntentEnum -> ContractFormation when "OTC_Matching->Trade->FpML->trade" exists] + instruction - [value "Manifest" path "OTC_RM", - "ReportingHeader" path "OTC_Matching->ReportingData", - "FpML" path "OTC_Matching->Trade"] + [value "Manifest" path "OTC_RM" , "ReportingHeader" path "OTC_Matching->ReportingData" , "FpML" path "OTC_Matching->Trade"] Instruction: + before @@ -35,7 +33,7 @@ synonym source DTCC_9_0 extends DTCC_BASE + party [value "party" path "Body->OTC_Matching->Payment->FpML"] - EventInstruction: + EventInstruction: + intent [value "ignore"] + instruction @@ -51,7 +49,7 @@ synonym source DTCC_9_0 extends DTCC_BASE TransferInstruction: + transferState - [value "payment"] + [value "payment"] TransferState: - transfer @@ -63,156 +61,153 @@ synonym source DTCC_BASE extends FpML_5_Confirmation_To_WorkflowStep + adjustedDate [value "adjustedPaymentDate"] - CalculationAgentModel: - + calculationAgentBusinessCenter - [value "calculationAgentBusinessCenter" path "Body->OTC_Matching->Trade->FpML->trade"] + CalculationAgentModel: + + calculationAgentBusinessCenter + [value "calculationAgentBusinessCenter" path "Body->OTC_Matching->Trade->FpML->trade"] TradeState: + trade [value "TradeMsg"] [value "ReportingJurisdiction"] - Trade: - - tradeIdentifier - + tradeIdentifier - [value "Submitter"] - [value "ContraTradeId"] - [value "YourTradeId"] - [value "tradeIdentifyingItems"] + Trade: + - tradeIdentifier + + tradeIdentifier + [value "Submitter"] + [value "ContraTradeId"] + [value "YourTradeId"] + [value "tradeIdentifyingItems"] [value "USI"] - [value "OriginatingUSI"] + [value "OriginatingUSI"] [value "UTI"] - Product: - + contractualProduct - [hint "ProductType"] - - AssignedIdentifier: - + identifier - [value "tradeId" path "partyTradeIdentifier" maps 2 - set when "partyTradeIdentifier->tradeId->tradeIdScheme" = "EventProcessingId" and rosettaPath = WorkflowStep -> eventIdentifier -> assignedIdentifier -> identifier, - set when "partyTradeIdentifier->tradeId->tradeIdScheme" = "TradeRefNbr" and rosettaPath = Trade -> tradeIdentifier -> assignedIdentifier -> identifier meta "tradeIdScheme"] - [value "USITradeId" meta "tradeIdScheme"] - [value "UTITradeId" meta "tradeIdScheme"] - [value "identifier" meta "paymentIdScheme"] - - Identifier: - + issuerReference - [value "partyReference" path "partyTradeIdentifier" maps 2 meta "href"] - + issuer - [value "USIIssuer" meta "issuerIdScheme"] - [value "UTIIssuer" meta "issuerIdScheme"] - - InterestShortFall: - + rateSource - [value "rateSource" meta "floatingRateIndexScheme"] - - CustomisedWorkflow: - + itemName - [set to "comment" when path = "PartyWorkflowFields->comment"] - [set to "superId" when path = "PartyWorkflowFields->superId"] - [set to "deskId" when path = "PartyWorkflowFields->deskId"] - [set to "eTradeId" when path = "PartyWorkflowFields->eTradeId"] - [set to "designatedParty" when path = "PartyWorkflowFields->designatedParty"] - [set to "brokerName" when path = "PartyWorkflowFields->brokerName"] - [set to "branchLocation" when path = "PartyWorkflowFields->branchLocation"] - [set to "midMarketPriceType" when path = "PartyWorkflowFields->midMarketPrice->midMarketPriceType"] - [set to "amount" when path = "PartyWorkflowFields->midMarketPrice->amount"] - + itemValue - [value "comment" path "PartyWorkflowFields"] - [value "superId" path "PartyWorkflowFields"] - [value "deskId" path "PartyWorkflowFields"] - [value "eTradeId" path "PartyWorkflowFields"] - [value "designatedParty" path "PartyWorkflowFields"] - [value "brokerName" path "PartyWorkflowFields"] - [value "branchLocation" path "PartyWorkflowFields"] - [value "midMarketPriceType" path "PartyWorkflowFields->midMarketPrice"] - [value "amount" path "PartyWorkflowFields->midMarketPrice"] - - WorkflowStep: - + proposedEvent - [value "Body", "Header"] + Product: + + contractualProduct + [hint "ProductType"] + + AssignedIdentifier: + + identifier + [value "tradeId" path "partyTradeIdentifier" maps 2 set when "partyTradeIdentifier->tradeId->tradeIdScheme" = "EventProcessingId" and rosettaPath = WorkflowStep -> eventIdentifier -> assignedIdentifier -> identifier , set when "partyTradeIdentifier->tradeId->tradeIdScheme" = "TradeRefNbr" and rosettaPath = Trade -> tradeIdentifier -> assignedIdentifier -> identifier meta "tradeIdScheme"] + [value "USITradeId" meta "tradeIdScheme"] + [value "UTITradeId" meta "tradeIdScheme"] + [value "identifier" meta "paymentIdScheme"] + + Identifier: + + issuerReference + [value "partyReference" path "partyTradeIdentifier" maps 2 meta "href"] + + issuer + [value "USIIssuer" meta "issuerIdScheme"] + [value "UTIIssuer" meta "issuerIdScheme"] + + InterestShortFall: + + rateSource + [value "rateSource" meta "floatingRateIndexScheme"] + + CustomisedWorkflow: + + itemName + [set to "comment" when path = "PartyWorkflowFields->comment"] + [set to "superId" when path = "PartyWorkflowFields->superId"] + [set to "deskId" when path = "PartyWorkflowFields->deskId"] + [set to "eTradeId" when path = "PartyWorkflowFields->eTradeId"] + [set to "designatedParty" when path = "PartyWorkflowFields->designatedParty"] + [set to "brokerName" when path = "PartyWorkflowFields->brokerName"] + [set to "branchLocation" when path = "PartyWorkflowFields->branchLocation"] + [set to "midMarketPriceType" when path = "PartyWorkflowFields->midMarketPrice->midMarketPriceType"] + [set to "amount" when path = "PartyWorkflowFields->midMarketPrice->amount"] + + itemValue + [value "comment" path "PartyWorkflowFields"] + [value "superId" path "PartyWorkflowFields"] + [value "deskId" path "PartyWorkflowFields"] + [value "eTradeId" path "PartyWorkflowFields"] + [value "designatedParty" path "PartyWorkflowFields"] + [value "brokerName" path "PartyWorkflowFields"] + [value "branchLocation" path "PartyWorkflowFields"] + [value "midMarketPriceType" path "PartyWorkflowFields->midMarketPrice"] + [value "amount" path "PartyWorkflowFields->midMarketPrice"] + + WorkflowStep: + + proposedEvent + [value "Body" , "Header"] - messageInformation - + messageInformation - [value "FpML" path "Body->OTC_Matching->Trade"] - [value "FpML" path "Body->OTC_Matching->Payment"] - [value "RouteInfo" path "Header->OTC_RM->Delivery"] - [value "Manifest" path "Header->OTC_RM"] - + timestamp - [value "header" path "Body->OTC_Matching->Trade->FpML"] - [value "Route" path "Header->OTC_RM->Delivery->RouteHist"] - [value "header" path "Body->OTC_Matching->Payment->FpML"] - - eventIdentifier - + eventIdentifier - [value "Submitter" path "Header->OTC_RM->Manifest->TradeMsg"] - [value "ContraTradeId" path "Header->OTC_RM->Manifest->TradeMsg"] - [value "YourTradeId" path "Header->OTC_RM->Manifest->TradeMsg"] - [value "tradeIdentifyingItems" path "Header->OTC_RM->Manifest->TradeMsg"] - + action - [value "Activity" path "Header->OTC_RM->Manifest->TradeMsg"] + + messageInformation + [value "FpML" path "Body->OTC_Matching->Trade"] + [value "FpML" path "Body->OTC_Matching->Payment"] + [value "RouteInfo" path "Header->OTC_RM->Delivery"] + [value "Manifest" path "Header->OTC_RM"] + + timestamp + [value "header" path "Body->OTC_Matching->Trade->FpML"] + [value "Route" path "Header->OTC_RM->Delivery->RouteHist"] + [value "header" path "Body->OTC_Matching->Payment->FpML"] + - eventIdentifier + + eventIdentifier + [value "Submitter" path "Header->OTC_RM->Manifest->TradeMsg"] + [value "ContraTradeId" path "Header->OTC_RM->Manifest->TradeMsg"] + [value "YourTradeId" path "Header->OTC_RM->Manifest->TradeMsg"] + [value "tradeIdentifyingItems" path "Header->OTC_RM->Manifest->TradeMsg"] + + action + [value "Activity" path "Header->OTC_RM->Manifest->TradeMsg"] + workflowState [value "OTC_Matching" path "Body"] - EventTimestamp: - + dateTime - [value "creationTimestamp"] - [value "expiryTimestamp"] - [value "ReceiveTime"] - + qualification - [set to EventTimestampQualificationEnum -> eventCreationDateTime when "creationTimestamp" exists] - [set to EventTimestampQualificationEnum -> eventExpirationDateTime when "expiryTimestamp" exists] - [set to EventTimestampQualificationEnum -> eventSubmittedDateTime when "ReceiveTime" exists] - - MessageInformation: - + messageId - [value "messageId" path "header" meta "messageIdScheme"] - + sentBy - [value "From"] - + sentTo - [value "To"] - - PartyCustomisedWorkflow: - + partyReference - [value "partyReference" maps 2 meta "href"] - - WorkflowState: - + warehouseIdentity - [value "WarehousePositionType" path "WarehouseState"] - + workflowStatus - [value "WarehouseStatus" path "WarehouseState"] - + partyCustomisedWorkflow - [value "WorkflowData"] - - enums - - ActionEnum: - + New - [value "New"] - + Correct - [value "Modify"] - + Cancel - [value "Disable"] - - TransferSettlementEnum: - + PaymentVersusPayment - [value "CentralSettlement"] - + NotCentralSettlement - [value "NotCentralSettlement"] - - WarehouseIdentityEnum: - + DTCC_TIW_Gold - [value "Gold"] - - WorkflowStatusEnum: - + Alleged - [value "Alleged"] - + Certain - [value "Certain"] - + Submitted - [value "Submit"] - + Uncertain - [value "Uncertain"] - + Unconfirmed - [value "Unconfirmed"] + EventTimestamp: + + dateTime + [value "creationTimestamp"] + [value "expiryTimestamp"] + [value "ReceiveTime"] + + qualification + [set to EventTimestampQualificationEnum -> eventCreationDateTime when "creationTimestamp" exists] + [set to EventTimestampQualificationEnum -> eventExpirationDateTime when "expiryTimestamp" exists] + [set to EventTimestampQualificationEnum -> eventSubmittedDateTime when "ReceiveTime" exists] + + MessageInformation: + + messageId + [value "messageId" path "header" meta "messageIdScheme"] + + sentBy + [value "From"] + + sentTo + [value "To"] + + PartyCustomisedWorkflow: + + partyReference + [value "partyReference" maps 2 meta "href"] + + WorkflowState: + + warehouseIdentity + [value "WarehousePositionType" path "WarehouseState"] + + workflowStatus + [value "WarehouseStatus" path "WarehouseState"] + + partyCustomisedWorkflow + [value "WorkflowData"] + + enums + + ActionEnum: + + New + [value "New"] + + Correct + [value "Modify"] + + Cancel + [value "Disable"] + + TransferSettlementEnum: + + PaymentVersusPayment + [value "CentralSettlement"] + + NotCentralSettlement + [value "NotCentralSettlement"] + + WarehouseIdentityEnum: + + DTCC_TIW_Gold + [value "Gold"] + + WorkflowStatusEnum: + + Alleged + [value "Alleged"] + + Certain + [value "Certain"] + + Submitted + [value "Submit"] + + Uncertain + [value "Uncertain"] + + Unconfirmed + [value "Unconfirmed"] } - diff --git a/rosetta-source/src/main/rosetta/mapping-fis-synonym.rosetta b/rosetta-source/src/main/rosetta/mapping-fis-synonym.rosetta index 718755e189..fca0ad866d 100644 --- a/rosetta-source/src/main/rosetta/mapping-fis-synonym.rosetta +++ b/rosetta-source/src/main/rosetta/mapping-fis-synonym.rosetta @@ -6,18 +6,17 @@ import cdm.event.common.* synonym source FIS_BASE -synonym source FIS extends FIS_BASE { - +synonym source FIS extends FIS_BASE +{ WorkflowStep: + businessEvent [value "FIS_TRADE" mapper "FISMapper"] + lineage [value "ignore"] - BusinessEvent: + BusinessEvent: + instruction [value "ignore"] + after [value "ignore"] - -} \ No newline at end of file +} diff --git a/rosetta-source/src/main/rosetta/mapping-fpml-confirmation-workflowstep-synonym.rosetta b/rosetta-source/src/main/rosetta/mapping-fpml-confirmation-workflowstep-synonym.rosetta index 64c2217bf8..d18f540ede 100644 --- a/rosetta-source/src/main/rosetta/mapping-fpml-confirmation-workflowstep-synonym.rosetta +++ b/rosetta-source/src/main/rosetta/mapping-fpml-confirmation-workflowstep-synonym.rosetta @@ -13,7 +13,7 @@ import cdm.event.common.* synonym source FpML_5_Confirmation_To_WorkflowStep extends FpML_5_Confirmation_To_TradeState { - WorkflowStep: + WorkflowStep: + businessEvent [value "ignore"] + approval @@ -49,7 +49,6 @@ synonym source FpML_5_Confirmation_To_WorkflowStep extends FpML_5_Confirmation_T [set to EventIntentEnum -> ContractFormation when "trade" exists] [set to EventIntentEnum -> Novation when "novation" exists] [set to EventIntentEnum -> OptionExercise when "optionExercise" exists] - + instruction [merge "termination"] [merge "amendment"] @@ -65,7 +64,7 @@ synonym source FpML_5_Confirmation_To_WorkflowStep extends FpML_5_Confirmation_T [value "agreementDate" path "amendment" maps 2] [value "agreementDate" path "termination" maps 2 dateFormat "yyyy-MM-ddz"] [value "agreementDate" path "termination" maps 2] - [value "novationDate" path "novation" maps 2] + [value "novationDate" path "novation" maps 2] // [value "executionDateTime" path "novation" maps 2 dateFormat "yyyy-MM-dd'T'HH:mm:ssz"] [value "novationTradeDate" path "novation" maps 2] [value "exerciseDate" path "optionExercise"] @@ -83,7 +82,7 @@ synonym source FpML_5_Confirmation_To_WorkflowStep extends FpML_5_Confirmation_T [value "termination"] [value "novation"] [value "amendment"] - [hint "trade", "party", "account", "quote"] + [hint "trade" , "party" , "account" , "quote"] [value "optionExercise"] PrimitiveInstruction: @@ -135,15 +134,14 @@ synonym source FpML_5_Confirmation_To_WorkflowStep extends FpML_5_Confirmation_T TransferExpression: + priceTransfer [value "paymentType"] - [set to FeeTypeEnum->Termination when path = "termination->payment"] - [set to FeeTypeEnum->Renegotiation when path = "amendment->payment"] + [set to FeeTypeEnum -> Termination when path = "termination->payment"] + [set to FeeTypeEnum -> Renegotiation when path = "amendment->payment"] PriceQuantity: + quantity [value "outstandingNotionalAmount"] [value "outstandingNotionalAmount" path "sizeChange"] - Price: + value [value "value" mapper "PriceUnitType"] @@ -191,29 +189,29 @@ synonym source FpML_5_Confirmation_To_WorkflowStep extends FpML_5_Confirmation_T [value "oldTrade" mapper "Party"] [value "feeTrade" mapper "Party"] [value "newTrade" mapper "Party"] - [hint "party", "account", "quote"] + [hint "party" , "account" , "quote"] + transferHistory // premium - [value "bondOption" path "feeTrade", "bondOption" path "originalTrade", "bondOption" path "newTrade", "bondOption" path "oldTrade"] - [value "swaption" path "feeTrade", "swaption" path "originalTrade", "swaption" path "newTrade", "swaption" path "oldTrade"] - [value "fxOption" path "feeTrade", "fxOption" path "originalTrade", "fxOption" path "newTrade", "fxOption" path "oldTrade"] - [value "fxDigitalOption" path "feeTrade", "fxDigitalOption" path "originalTrade", "fxDigitalOption" path "newTrade", "fxDigitalOption" path "oldTrade"] - [value "creditDefaultSwapOption" path "feeTrade", "creditDefaultSwapOption" path "originalTrade", "creditDefaultSwapOption" path "newTrade", "creditDefaultSwapOption" path "oldTrade"] - [value "commodityOption" path "feeTrade", "commodityOption" path "originalTrade", "commodityOption" path "newTrade", "commodityOption" path "oldTrade"] - [value "commodityBasketOption" path "feeTrade", "commodityBasketOption" path "originalTrade", "commodityBasketOption" path "newTrade", "commodityBasketOption" path "oldTrade"] - [value "capFloor" path "feeTrade", "capFloor" path "originalTrade", "capFloor" path "newTrade", "capFloor" path "trade", "capFloor" path "oldTrade"] + [value "bondOption" path "feeTrade" , "bondOption" path "originalTrade" , "bondOption" path "newTrade" , "bondOption" path "oldTrade"] + [value "swaption" path "feeTrade" , "swaption" path "originalTrade" , "swaption" path "newTrade" , "swaption" path "oldTrade"] + [value "fxOption" path "feeTrade" , "fxOption" path "originalTrade" , "fxOption" path "newTrade" , "fxOption" path "oldTrade"] + [value "fxDigitalOption" path "feeTrade" , "fxDigitalOption" path "originalTrade" , "fxDigitalOption" path "newTrade" , "fxDigitalOption" path "oldTrade"] + [value "creditDefaultSwapOption" path "feeTrade" , "creditDefaultSwapOption" path "originalTrade" , "creditDefaultSwapOption" path "newTrade" , "creditDefaultSwapOption" path "oldTrade"] + [value "commodityOption" path "feeTrade" , "commodityOption" path "originalTrade" , "commodityOption" path "newTrade" , "commodityOption" path "oldTrade"] + [value "commodityBasketOption" path "feeTrade" , "commodityBasketOption" path "originalTrade" , "commodityBasketOption" path "newTrade" , "commodityBasketOption" path "oldTrade"] + [value "capFloor" path "feeTrade" , "capFloor" path "originalTrade" , "capFloor" path "newTrade" , "capFloor" path "trade" , "capFloor" path "oldTrade"] // equityPremium - [value "equityOption" path "feeTrade", "equityOption" path "originalTrade", "equityOption" path "newTrade", "equityOption" path "oldTrade"] - [value "brokerEquityOption" path "feeTrade", "brokerEquityOption" path "originalTrade", "brokerEquityOption" path "newTrade", "brokerEquityOption" path "oldTrade"] - [value "dividendSwapOptionTransactionSupplement" path "feeTrade", "dividendSwapOptionTransactionSupplement" path "originalTrade", "dividendSwapOptionTransactionSupplement" path "newTrade", "dividendSwapOptionTransactionSupplement" path "oldTrade"] - [value "equityOptionTransactionSupplement" path "feeTrade", "equityOptionTransactionSupplement" path "originalTrade", "equityOptionTransactionSupplement" path "newTrade", "equityOptionTransactionSupplement" path "oldTrade"] - [value "varianceOptionTransactionSupplement" path "feeTrade", "varianceOptionTransactionSupplement" path "originalTrade", "varianceOptionTransactionSupplement" path "newTrade", "varianceOptionTransactionSupplement" path "oldTrade"] + [value "equityOption" path "feeTrade" , "equityOption" path "originalTrade" , "equityOption" path "newTrade" , "equityOption" path "oldTrade"] + [value "brokerEquityOption" path "feeTrade" , "brokerEquityOption" path "originalTrade" , "brokerEquityOption" path "newTrade" , "brokerEquityOption" path "oldTrade"] + [value "dividendSwapOptionTransactionSupplement" path "feeTrade" , "dividendSwapOptionTransactionSupplement" path "originalTrade" , "dividendSwapOptionTransactionSupplement" path "newTrade" , "dividendSwapOptionTransactionSupplement" path "oldTrade"] + [value "equityOptionTransactionSupplement" path "feeTrade" , "equityOptionTransactionSupplement" path "originalTrade" , "equityOptionTransactionSupplement" path "newTrade" , "equityOptionTransactionSupplement" path "oldTrade"] + [value "varianceOptionTransactionSupplement" path "feeTrade" , "varianceOptionTransactionSupplement" path "originalTrade" , "varianceOptionTransactionSupplement" path "newTrade" , "varianceOptionTransactionSupplement" path "oldTrade"] // initialPayment / singlePayment - [value "feeLeg" path "feeTrade->creditDefaultSwap", "feeLeg" path "originalTrade->creditDefaultSwap", "feeLeg" path "newTrade->creditDefaultSwap", "feeLeg" path "oldTrade->creditDefaultSwap"] + [value "feeLeg" path "feeTrade->creditDefaultSwap" , "feeLeg" path "originalTrade->creditDefaultSwap" , "feeLeg" path "newTrade->creditDefaultSwap" , "feeLeg" path "oldTrade->creditDefaultSwap"] // additionalPayment - [value "swap" path "feeTrade", "swap" path "originalTrade", "swap" path "newTrade", "swap" path "oldTrade"] + [value "swap" path "feeTrade" , "swap" path "originalTrade" , "swap" path "newTrade" , "swap" path "oldTrade"] // otherPartyPayment - [value "feeTrade", "originalTrade", "newTrade", "oldTrade"] + [value "feeTrade" , "originalTrade" , "newTrade" , "oldTrade"] ContractDetails: - documentation @@ -234,7 +232,7 @@ synonym source FpML_5_Confirmation_To_WorkflowStep extends FpML_5_Confirmation_T ArithmeticOperationEnum: + Add [value "PackageSpread"] - + EventIntentEnum: + Novation [value "Novation"] @@ -250,7 +248,7 @@ synonym source FpML_5_Confirmation_To_WorkflowStep extends FpML_5_Confirmation_T FeeTypeEnum: + BrokerageCommission - [value "BrokerageCommission"] + [value "BrokerageCommission"] + Novation [value "Novation Fee"] + Termination @@ -263,4 +261,4 @@ synonym source FpML_5_Confirmation_To_WorkflowStep extends FpML_5_Confirmation_T [value "PackagePrice"] + InterestRate [value "PackageSpread"] -} \ No newline at end of file +} diff --git a/rosetta-source/src/main/rosetta/mapping-ore-synonym.rosetta b/rosetta-source/src/main/rosetta/mapping-ore-synonym.rosetta index 4669ce38b9..517c2d3533 100644 --- a/rosetta-source/src/main/rosetta/mapping-ore-synonym.rosetta +++ b/rosetta-source/src/main/rosetta/mapping-ore-synonym.rosetta @@ -32,100 +32,99 @@ synonym source ORE_1_0_39 extends ORE + party [value "Envelope" path "Trade"] - TradeLot: - + priceQuantity - [value "LegData" path "SwapData"] + TradeLot: + + priceQuantity + [value "LegData" path "SwapData"] - Counterparty: - + partyReference - [value "Envelope"] - + role - [set to CounterpartyRoleEnum -> Party2 when rosettaPath = TradeState -> trade -> tradableProduct -> counterparty] + Counterparty: + + partyReference + [value "Envelope"] + + role + [set to CounterpartyRoleEnum -> Party2 when rosettaPath = TradeState -> trade -> tradableProduct -> counterparty] - PriceSchedule: + PriceSchedule: + value [value "Rate"] [value "Spread"] + priceType - [set to PriceTypeEnum->InterestRate when path = "Rates"] - [set to PriceTypeEnum->InterestRate when path = "Spreads"] - + arithmeticOperator - [set to ArithmeticOperationEnum->Add when path = "Spreads"] - - PriceQuantity: + [set to PriceTypeEnum -> InterestRate when path = "Rates"] + [set to PriceTypeEnum -> InterestRate when path = "Spreads"] + + arithmeticOperator + [set to ArithmeticOperationEnum -> Add when path = "Spreads"] + + PriceQuantity: + price [value "Rates" path "FixedLegData" mapper "OrePrice"] [value "Spreads" path "FloatingLegData" mapper "OrePrice"] - + observable + + observable [value "FloatingLegData"] + quantity [value "Notionals" mapper "OreQuantity"] - - PartyIdentifier: - + identifier - [value "CounterParty" maps 2] - [value "party_id" path "AdditionalFields"] - - QuantitySchedule: - + value - [value "Notional"] - + multiplier - [value "ignore"] - + datedValue - [value "step"] - - Product: - + contractualProduct - [value "SwapData"] - - Payout: - + interestRatePayout - [value "LegData"] - [value "LegData"] - - InterestRatePayout: - + priceQuantity - [value "Notionals"] - + calculationPeriodDates - [value "Rules" path "ScheduleData"] - + paymentDates - [value "Rules" path "ScheduleData"] + PartyIdentifier: + + identifier + [value "CounterParty" maps 2] + [value "party_id" path "AdditionalFields"] + + QuantitySchedule: + + value + [value "Notional"] + + multiplier + [value "ignore"] + + datedValue + [value "step"] + + Product: + + contractualProduct + [value "SwapData"] + + Payout: + + interestRatePayout + [value "LegData"] + [value "LegData"] + + InterestRatePayout: + + priceQuantity + [value "Notionals"] + + calculationPeriodDates + [value "Rules" path "ScheduleData"] + + paymentDates + [value "Rules" path "ScheduleData"] + principalPayment [value "ignore"] - + cashflowRepresentation - [value "ignore"] - + stubPeriod - [value "ignore"] - - Frequency: - + periodMultiplier - [value "Tenor" maps 2 pattern "([0-9]*).*" "$1"] - + period - [value "Tenor" maps 2 pattern "[0-9]*(.*)" "$1"] - - CalculationPeriodDates: - + effectiveDate - [hint "StartDate"] - - AdjustableOrRelativeDate: - + adjustableDate - - AdjustableDate: - + unadjustedDate - [value "StartDate"] - - FloatingRateOption: - + floatingRateIndex - [value "Index" maps 2] - - RateSpecification: - + fixedRate - [value "FixedLegData"] - + floatingRate - [value "FloatingLegData"] - + inflationRate - [value "ignore"] + + cashflowRepresentation + [value "ignore"] + + stubPeriod + [value "ignore"] + + Frequency: + + periodMultiplier + [value "Tenor" maps 2 pattern "([0-9]*).*" "$1"] + + period + [value "Tenor" maps 2 pattern "[0-9]*(.*)" "$1"] + + CalculationPeriodDates: + + effectiveDate + [hint "StartDate"] + + AdjustableOrRelativeDate: + + adjustableDate + + AdjustableDate: + + unadjustedDate + [value "StartDate"] + + FloatingRateOption: + + floatingRateIndex + [value "Index" maps 2] + + RateSpecification: + + fixedRate + [value "FixedLegData"] + + floatingRate + [value "FloatingLegData"] + + inflationRate + [value "ignore"] FixedRateSpecification: + rateSchedule @@ -140,43 +139,43 @@ synonym source ORE_1_0_39 extends ORE [meta "Rate"] [meta "Spread"] - ResolvablePriceQuantity: - + quantitySchedule - [meta "Notional"] - + resolvedQuantity - [value "ignore"] - + priceSchedule - [value "ignore"] - - UnitType: - + currency - [value "Currency"] + ResolvablePriceQuantity: + + quantitySchedule + [meta "Notional"] + + resolvedQuantity + [value "ignore"] + + priceSchedule + [value "ignore"] + + UnitType: + + currency + [value "Currency"] PrincipalPaymentSchedule: - + initialPrincipalPayment + + initialPrincipalPayment [value "ignore"] - + intermediatePrincipalPayment + + intermediatePrincipalPayment [value "ignore"] - + finalPrincipalPayment + + finalPrincipalPayment [value "ignore"] - + SettlementTerms: - + settlementProvision - [value "ignore"] + + settlementProvision + [value "ignore"] enums - FloatingRateIndexEnum: - + EUR_6M_EURIBOR_SWAP_CME_vs_LCH_ICAP - [value "EUR-EURIBOR-6M"] - - PeriodEnum: - + D - [value "D"] - + W - [value "W"] - + M - [value "M"] - + Y - [value "Y"] + FloatingRateIndexEnum: + + EUR_6M_EURIBOR_SWAP_CME_vs_LCH_ICAP + [value "EUR-EURIBOR-6M"] + + PeriodEnum: + + D + [value "D"] + + W + [value "W"] + + M + [value "M"] + + Y + [value "Y"] } diff --git a/rosetta-source/src/main/rosetta/observable-asset-calculatedrate-func.rosetta b/rosetta-source/src/main/rosetta/observable-asset-calculatedrate-func.rosetta index 5f69c49c9d..77402df0ad 100644 --- a/rosetta-source/src/main/rosetta/observable-asset-calculatedrate-func.rosetta +++ b/rosetta-source/src/main/rosetta/observable-asset-calculatedrate-func.rosetta @@ -20,298 +20,384 @@ import cdm.observable.asset.fro.* // These calculations are described in Section 7 of the 2021 ISDA Definitions. // // ====================================================================== - func EvaluateCalculatedRate: <"Evaluate a calculated rate as described in the 2021 ISDA Definitions."> - inputs: - floatingRateOption FloatingRateOption (1..1) <"The base floating rate inde."> - calculationParameters FloatingRateCalculationParameters (1..1) <"Floating rate definition for the calculated rate."> - resetDates ResetDates (0..1) <"Reset structure (needed only for fallback rates, otherwise will be empty)."> - calculationPeriod CalculationPeriodBase (1..1) <"Calculation period for which we want to determine the rate."> - priorCalculationPeriod CalculationPeriodBase (0..1) <"The prior calculation period (needed only for set in advance observation shift rate."> - dayCount DayCountFractionEnum (1..1) <"The day count fraction in effect on the stream."> - output: - results FloatingRateSettingDetails (1..1) <"detailed results of the floating rate calculation."> - - // get the FRO - alias fro: floatingRateOption - - // work out the observation dates needed and the weight for each - alias datesAndWeights: GenerateObservationDatesAndWeights(calculationParameters, resetDates, calculationPeriod, priorCalculationPeriod) - - // get the observations - alias observationDates: datesAndWeights -> observationDates - alias observations: IndexValueObservationMultiple(observationDates, fro) - - // apply observation parameters (caps/floors) - alias processedObservations: ProcessObservations(calculationParameters, observations) - - // perform the calculation (compounding or averaging) - alias calculationMethod: calculationParameters -> calculationMethod - alias isCompounding: calculationMethod = CalculationMethodEnum -> Compounding - alias weights: datesAndWeights -> weights - alias yearFraction: YearFractionForOneDay(dayCount) // the year fraction of 1 business day (needed for compounding formula) - alias calculationResults: - if isCompounding - then ApplyCompoundingFormula(processedObservations, weights, yearFraction) - else ApplyAveragingFormula(observations, weights) - - // record the results - set results -> calculationDetails: calculationResults - add results -> calculationDetails -> observations -> observationDates: datesAndWeights -> observationDates - add results -> calculationDetails -> observations -> weights: datesAndWeights -> weights - add results -> calculationDetails -> observations -> observedRates: observations - add results -> calculationDetails -> observations -> processedRates: processedObservations - set results -> floatingRate: calculationResults -> calculatedRate + inputs: + floatingRateOption FloatingRateOption (1..1) <"The base floating rate inde."> + calculationParameters FloatingRateCalculationParameters (1..1) <"Floating rate definition for the calculated rate."> + resetDates ResetDates (0..1) <"Reset structure (needed only for fallback rates, otherwise will be empty)."> + calculationPeriod CalculationPeriodBase (1..1) <"Calculation period for which we want to determine the rate."> + priorCalculationPeriod CalculationPeriodBase (0..1) <"The prior calculation period (needed only for set in advance observation shift rate."> + dayCount DayCountFractionEnum (1..1) <"The day count fraction in effect on the stream."> + output: + results FloatingRateSettingDetails (1..1) <"detailed results of the floating rate calculation."> + + // get the FRO + alias fro: floatingRateOption + + // work out the observation dates needed and the weight for each + alias datesAndWeights: + GenerateObservationDatesAndWeights( + calculationParameters, + resetDates, + calculationPeriod, + priorCalculationPeriod + ) + + // get the observations + alias observationDates: datesAndWeights -> observationDates + alias observations: IndexValueObservationMultiple(observationDates, fro) + + // apply observation parameters (caps/floors) + alias processedObservations: ProcessObservations(calculationParameters, observations) + + // perform the calculation (compounding or averaging) + alias calculationMethod: calculationParameters -> calculationMethod + alias isCompounding: calculationMethod = CalculationMethodEnum -> Compounding + alias weights: datesAndWeights -> weights + alias yearFraction: YearFractionForOneDay(dayCount) // the year fraction of 1 business day (needed for compounding formula) + alias calculationResults: + if isCompounding + then ApplyCompoundingFormula(processedObservations, weights, yearFraction) + else ApplyAveragingFormula(observations, weights) + + // record the results + set results -> calculationDetails: calculationResults + add results -> calculationDetails -> observations -> observationDates: + datesAndWeights -> observationDates + add results -> calculationDetails -> observations -> weights: datesAndWeights -> weights + add results -> calculationDetails -> observations -> observedRates: observations + add results -> calculationDetails -> observations -> processedRates: + processedObservations + set results -> floatingRate: calculationResults -> calculatedRate func GenerateObservationDatesAndWeights: <"Apply shifts to generate the list of observation dates and weights for each of those date."> - inputs: - calculationParams FloatingRateCalculationParameters (1..1) <"Floating rate definition for the calculated rate."> - resetDates ResetDates (0..1) <"Reset structure (needed only for fallback rates, otherwise will be empty."> - calculationPeriod CalculationPeriodBase (1..1) <"Calculation period for which we want to determine the rate."> - priorCalculationPeriod CalculationPeriodBase (0..1) <"The prior calculation period (needed only for set in advance observation shift rate."> - output: - results CalculatedRateObservationDatesAndWeights (1..1) <"observation dates and corresponding weight."> - - // set up some convenience accessors - alias obsShift: calculationParams -> observationShiftCalculation - alias lockout: calculationParams -> lockoutCalculation - alias specifiedLockout: if lockout -> offsetDays exists then lockout -> offsetDays else 5 - alias lockoutDays: if (lockout exists) then specifiedLockout else 0 - alias businessDays: GetAllBusinessCenters(calculationParams -> applicableBusinessDays) - - // work out the calculation period for which the rate will actually be computed (might be the prior period or based on resetDates) - alias calculateRelative: if obsShift -> calculationBase exists then obsShift -> calculationBase else ObservationPeriodDatesEnum -> Standard - alias adjustedCalculationPeriod: ComputeCalculationPeriod(calculationPeriod, priorCalculationPeriod, calculateRelative, resetDates) - - // generate the (shifted) observation period and then the observation dates - alias observationPeriod: DetermineObservationPeriod(adjustedCalculationPeriod, calculationParams) - alias observationDates: GenerateObservationDates(observationPeriod, businessDays, lockoutDays) - - // record the results - add results -> observationDates: observationDates - add results -> weights: GenerateWeightings(calculationParams, results -> observationDates, observationPeriod, adjustedCalculationPeriod, lockoutDays) + inputs: + calculationParams FloatingRateCalculationParameters (1..1) <"Floating rate definition for the calculated rate."> + resetDates ResetDates (0..1) <"Reset structure (needed only for fallback rates, otherwise will be empty."> + calculationPeriod CalculationPeriodBase (1..1) <"Calculation period for which we want to determine the rate."> + priorCalculationPeriod CalculationPeriodBase (0..1) <"The prior calculation period (needed only for set in advance observation shift rate."> + output: + results CalculatedRateObservationDatesAndWeights (1..1) <"observation dates and corresponding weight."> + + // set up some convenience accessors + alias obsShift: calculationParams -> observationShiftCalculation + alias lockout: calculationParams -> lockoutCalculation + alias specifiedLockout: + if lockout -> offsetDays exists + then lockout -> offsetDays + else 5 + alias lockoutDays: + if (lockout exists) then specifiedLockout else 0 + alias businessDays: GetAllBusinessCenters(calculationParams -> applicableBusinessDays) + + // work out the calculation period for which the rate will actually be computed (might be the prior period or based on resetDates) + alias calculateRelative: + if obsShift -> calculationBase exists + then obsShift -> calculationBase + else ObservationPeriodDatesEnum -> Standard + alias adjustedCalculationPeriod: + ComputeCalculationPeriod( + calculationPeriod, + priorCalculationPeriod, + calculateRelative, + resetDates + ) + + // generate the (shifted) observation period and then the observation dates + alias observationPeriod: + DetermineObservationPeriod(adjustedCalculationPeriod, calculationParams) + alias observationDates: + GenerateObservationDates(observationPeriod, businessDays, lockoutDays) + + // record the results + add results -> observationDates: observationDates + add results -> weights: + GenerateWeightings( + calculationParams, + results -> observationDates, + observationPeriod, + adjustedCalculationPeriod, + lockoutDays + ) // possibly record some other intermediate results to aid debugging/understanding? func ComputeCalculationPeriod: <"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."> - inputs: - calculationPeriod CalculationPeriodBase (1..1) <"The current calculation period for which the rate is neede."> - priorCalculationPeriod CalculationPeriodBase (0..1) <"The prior actual or deemed calculation period, if neede."> - calculateRelativeTo ObservationPeriodDatesEnum (0..1) <"How the calculation is done with respect to the base calculation perio."> - resetDates ResetDates (0..1) <"The resetDates structure, if needed, e.g. for fallback rate."> - output: - result CalculationPeriodBase (1..1) <"The calculation period over which the calculated rate should be calculate."> + inputs: + calculationPeriod CalculationPeriodBase (1..1) <"The current calculation period for which the rate is neede."> + priorCalculationPeriod CalculationPeriodBase (0..1) <"The prior actual or deemed calculation period, if neede."> + calculateRelativeTo ObservationPeriodDatesEnum (0..1) <"How the calculation is done with respect to the base calculation perio."> + resetDates ResetDates (0..1) <"The resetDates structure, if needed, e.g. for fallback rate."> + output: + result CalculationPeriodBase (1..1) <"The calculation period over which the calculated rate should be calculate."> func ComputeCalculationPeriod(calculateRelativeTo: ObservationPeriodDatesEnum -> SetInAdvance): - set result: priorCalculationPeriod + set result: priorCalculationPeriod func ComputeCalculationPeriod(calculateRelativeTo: ObservationPeriodDatesEnum -> Standard): - set result: calculationPeriod + set result: calculationPeriod func ComputeCalculationPeriod(calculateRelativeTo: ObservationPeriodDatesEnum -> FixingDate): - // TODO : this should use the code in Evaluate Term Rate to do the offset calculation (needs refactoring) - alias resetRelativeTo: resetDates -> resetRelativeTo - alias isStart: resetRelativeTo = ResetRelativeToEnum -> CalculationPeriodStartDate - alias calcPd: if (isStart) then priorCalculationPeriod else calculationPeriod - alias fixingOffsetDays: resetDates -> fixingDates -> periodMultiplier - alias businessCenters: GetAllBusinessCenters(resetDates -> resetDatesAdjustments -> businessCenters) - alias endDate: AddBusinessDays(calcPd -> adjustedEndDate, fixingOffsetDays, businessCenters) - alias startDate: AddBusinessDays(calcPd -> adjustedStartDate, fixingOffsetDays, businessCenters) - set result -> adjustedEndDate: endDate - set result -> adjustedStartDate: startDate + // TODO : this should use the code in Evaluate Term Rate to do the offset calculation (needs refactoring) + alias resetRelativeTo: resetDates -> resetRelativeTo + alias isStart: resetRelativeTo = ResetRelativeToEnum -> CalculationPeriodStartDate + alias calcPd: + if (isStart) + then priorCalculationPeriod + else calculationPeriod + alias fixingOffsetDays: resetDates -> fixingDates -> periodMultiplier + alias businessCenters: + GetAllBusinessCenters(resetDates -> resetDatesAdjustments -> businessCenters) + alias endDate: + AddBusinessDays(calcPd -> adjustedEndDate, fixingOffsetDays, businessCenters) + alias startDate: + AddBusinessDays(calcPd -> adjustedStartDate, fixingOffsetDays, businessCenters) + set result -> adjustedEndDate: endDate + set result -> adjustedStartDate: startDate func 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/shift."> - inputs: - adjustedCalculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the rate is being computed, after any adjustment."> - calculationParams FloatingRateCalculationParameters (1..1) <"Floating rate definition for the calculated rate."> - output: - observationPeriod CalculationPeriodBase (1..1) <"The resulting observation period."> - - // convenience alias to categorize the shift types and calculate the business days to use - alias obsShift: calculationParams -> observationShiftCalculation - alias lookback: calculationParams -> lookbackCalculation - alias businessDays: calculationParams -> applicableBusinessDays - alias additionalBusinessDays: obsShift -> additionalBusinessDays - alias allBusinessDays: + inputs: + adjustedCalculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the rate is being computed, after any adjustment."> + calculationParams FloatingRateCalculationParameters (1..1) <"Floating rate definition for the calculated rate."> + output: + observationPeriod CalculationPeriodBase (1..1) <"The resulting observation period."> + + // convenience alias to categorize the shift types and calculate the business days to use + alias obsShift: calculationParams -> observationShiftCalculation + alias lookback: calculationParams -> lookbackCalculation + alias businessDays: calculationParams -> applicableBusinessDays + alias additionalBusinessDays: obsShift -> additionalBusinessDays + alias allBusinessDays: [businessDays, additionalBusinessDays] - extract GetAllBusinessCenters( item ) + extract GetAllBusinessCenters(item) then flatten - // determine the shift amount - alias shift: if (obsShift exists) then obsShift -> offsetDays else if lookback exists then lookback -> offsetDays else 0 // shift amount - // default to 5 days if not specified (this is the default value from the 2021 Definitions) - alias shiftDefaulted: if shift exists then shift else 5 + // determine the shift amount + alias shift: + if (obsShift exists) + then obsShift -> offsetDays + else if lookback exists + then lookback -> offsetDays + else 0 // shift amount + // default to 5 days if not specified (this is the default value from the 2021 Definitions) + alias shiftDefaulted: if shift exists then shift else 5 // calculate and return the shifted observation period - set observationPeriod: GenerateObservationPeriod(adjustedCalculationPeriod, allBusinessDays, shiftDefaulted) + set observationPeriod: + GenerateObservationPeriod( + adjustedCalculationPeriod, + allBusinessDays, + shiftDefaulted + ) func GenerateObservationPeriod: <"Generate the date range to be used for observing the index, based on the calculation period, plus any applicable offsets/shifts."> - inputs: - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the rate is being compute."> - businessCenters BusinessCenterEnum (0..*) <"The business centers to be used for shifting."> - shiftDays int (0..1) <"The amount of any shift."> - output: - observationPeriod CalculationPeriodBase (1..1) <"The resulting observation period."> - - // calculate the starting and ending dates - alias calcStart: calculationPeriod -> adjustedStartDate - alias calcEnd: calculationPeriod -> adjustedEndDate - alias obsStart: AddBusinessDays(calcStart, -1 * shiftDays, businessCenters) - alias obsEnd: AddBusinessDays(calcEnd, -1 * shiftDays, businessCenters) - - // record results - set observationPeriod -> adjustedStartDate: obsStart - set observationPeriod -> adjustedEndDate: obsEnd + inputs: + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the rate is being compute."> + businessCenters BusinessCenterEnum (0..*) <"The business centers to be used for shifting."> + shiftDays int (0..1) <"The amount of any shift."> + output: + observationPeriod CalculationPeriodBase (1..1) <"The resulting observation period."> + + // calculate the starting and ending dates + alias calcStart: calculationPeriod -> adjustedStartDate + alias calcEnd: calculationPeriod -> adjustedEndDate + alias obsStart: AddBusinessDays(calcStart, -1 * shiftDays, businessCenters) + alias obsEnd: AddBusinessDays(calcEnd, -1 * shiftDays, businessCenters) + + // record results + set observationPeriod -> adjustedStartDate: obsStart + set observationPeriod -> adjustedEndDate: obsEnd func GenerateObservationDates: <"Generate the list of observation dates given an observation period."> - inputs: - observationPeriod CalculationPeriodBase (1..1) <"The given observation period."> - businessCenters BusinessCenterEnum (0..*) <"The observation date."> - lockoutDays int (0..1) <"The number of lockout date."> - output: - observationDates date (0..*) <"The resulting list of observation date."> - - // work out the final date of the observations - we skip observing on the last day of the observation period - alias days: 1 + (if (lockoutDays exists) then lockoutDays else 0) - alias endDate: AddBusinessDays(observationPeriod -> adjustedEndDate, -1 * days, businessCenters) - - // create the list of observation dates - all business days between the start and end dates - add observationDates: GenerateDateList(observationPeriod -> adjustedStartDate, endDate, businessCenters) + inputs: + observationPeriod CalculationPeriodBase (1..1) <"The given observation period."> + businessCenters BusinessCenterEnum (0..*) <"The observation date."> + lockoutDays int (0..1) <"The number of lockout date."> + output: + observationDates date (0..*) <"The resulting list of observation date."> + + // work out the final date of the observations - we skip observing on the last day of the observation period + alias days: 1 + (if (lockoutDays exists) then lockoutDays else 0) + alias endDate: + AddBusinessDays(observationPeriod -> adjustedEndDate, -1 * days, businessCenters) + + // create the list of observation dates - all business days between the start and end dates + add observationDates: + GenerateDateList(observationPeriod -> adjustedStartDate, endDate, businessCenters) func GenerateWeightings: <"Determine the weighting dates and the corresponding weights to be used for weighting observation."> - inputs: - calculationParams FloatingRateCalculationParameters (1..1) <"Floating rate definition for the calculated rate."> - observationDates date (0..*) - observationPeriod CalculationPeriodBase (1..1) <"The resulting observation period."> - adjustedCalculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the rate is being computed, after any adjustment."> - lockoutDays int (1..1) <"The number of lockout day."> - output: - weights number (0..*) <"A vector of weights, typically numbers between 1 and 3."> - - alias weightingDates: DetermineWeightingDates(calculationParams, observationDates, observationPeriod, adjustedCalculationPeriod, lockoutDays) - - set weights: GenerateWeights(weightingDates) + inputs: + calculationParams FloatingRateCalculationParameters (1..1) <"Floating rate definition for the calculated rate."> + observationDates date (0..*) + observationPeriod CalculationPeriodBase (1..1) <"The resulting observation period."> + adjustedCalculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the rate is being computed, after any adjustment."> + lockoutDays int (1..1) <"The number of lockout day."> + output: + weights number (0..*) <"A vector of weights, typically numbers between 1 and 3."> + + alias weightingDates: + DetermineWeightingDates( + calculationParams, + observationDates, + observationPeriod, + adjustedCalculationPeriod, + lockoutDays + ) + + set weights: GenerateWeights(weightingDates) func DetermineWeightingDates: <"Determine the dates to be used for weighting observation."> - inputs: - calculationParams FloatingRateCalculationParameters (1..1) <"Floating rate definition for the calculated rate."> - observationDates date (0..*) - observationPeriod CalculationPeriodBase (1..1) <"The resulting observation period."> - adjustedCalculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the rate is being computed, after any adjustment."> - lockoutDays int (1..1) <"The number of lockout day."> - output: - weightingDates date (0..*) - - // set up some convenience aliases - alias obsShift: calculationParams -> observationShiftCalculation - alias lookback: calculationParams -> lookbackCalculation - alias businessCenters: GetAllBusinessCenters(calculationParams -> applicableBusinessDays) - - // work out the date list for calculating weights - alias baseWeightingDates: if obsShift exists then observationDates else GenerateObservationDates(adjustedCalculationPeriod, businessCenters, lockoutDays) - alias wtPeriod: if (lookback exists) then adjustedCalculationPeriod else observationPeriod - alias weightingDatesAll: AppendDateToList(baseWeightingDates, wtPeriod -> adjustedEndDate) // including final date to compute weight - - add weightingDates: weightingDatesAll + inputs: + calculationParams FloatingRateCalculationParameters (1..1) <"Floating rate definition for the calculated rate."> + observationDates date (0..*) + observationPeriod CalculationPeriodBase (1..1) <"The resulting observation period."> + adjustedCalculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the rate is being computed, after any adjustment."> + lockoutDays int (1..1) <"The number of lockout day."> + output: + weightingDates date (0..*) + + // set up some convenience aliases + alias obsShift: calculationParams -> observationShiftCalculation + alias lookback: calculationParams -> lookbackCalculation + alias businessCenters: + GetAllBusinessCenters(calculationParams -> applicableBusinessDays) + + // work out the date list for calculating weights + alias baseWeightingDates: + if obsShift exists + then observationDates + else GenerateObservationDates( + adjustedCalculationPeriod, + businessCenters, + lockoutDays + ) + alias wtPeriod: + if (lookback exists) + then adjustedCalculationPeriod + else observationPeriod + alias weightingDatesAll: + AppendDateToList(baseWeightingDates, wtPeriod -> adjustedEndDate) // including final date to compute weight + add weightingDates: weightingDatesAll func ProcessObservations: <"Apply daily observation parameters to rate observation. These are discussed in the 2021 ISDA Definitions, section 7.2.3 and 7.2.4."> - inputs: - calculationParameters FloatingRateCalculationParameters (1..1) <"Floating rate definition for the calculated rate."> - rawObservations number (0..*) - output: - processedObservations number (0..*) - - // set up convenience aliases - alias params: calculationParameters -> observationParameters - alias cap: if params exists then params -> observationCapRate - alias floor: if params exists then params -> observationFloorRate - - // apply the daily cap and floor rates using vector math operations - alias cappedObservations: if cap exists then VectorScalarOperation( ArithmeticOperationEnum -> Min, rawObservations, cap ) else rawObservations - alias flooredObservations: if floor exists then VectorScalarOperation( ArithmeticOperationEnum -> Max, cappedObservations, floor ) else cappedObservations - - add processedObservations: flooredObservations + inputs: + calculationParameters FloatingRateCalculationParameters (1..1) <"Floating rate definition for the calculated rate."> + rawObservations number (0..*) + output: + processedObservations number (0..*) + + // set up convenience aliases + alias params: calculationParameters -> observationParameters + alias cap: if params exists then params -> observationCapRate + alias floor: if params exists then params -> observationFloorRate + + // apply the daily cap and floor rates using vector math operations + alias cappedObservations: + if cap exists + then VectorScalarOperation(ArithmeticOperationEnum -> Min, rawObservations, cap) + else rawObservations + alias flooredObservations: + if floor exists + then VectorScalarOperation( + ArithmeticOperationEnum -> Max, + cappedObservations, + floor + ) + else cappedObservations + + add processedObservations: flooredObservations func GenerateWeights: <"Recursively creates a list of weights based on the date difference between successive days."> - inputs: - weightingDates date (0..*) <"A list of dates for which weightings are require."> - output: - weights number (0..*) <"A vector of weights, typically numbers between 1 and 3."> - - alias active: weightingDates count > 1 // do we still have more than one date in the list? - alias refDate: weightingDates last // find the last date in the supplied list of dates - alias remainingDates: PopOffDateList(weightingDates) // determine the prior list of dates, i.e. omitting the last in the list - alias prevDate: remainingDates last // find the second to last date in the supplied list of dates - alias diff: DateDifference(prevDate, refDate) // the weight is the date difference between the supplied ref date and the last one in the list - alias remainingWeights: GenerateWeights(remainingDates) // recursively generate weights for earlier part of the list - - // if we have >= 1 in the list, add the date difference to the list of weights from the prior part of the list, else return nothing - add weights: if active then AppendToVector(remainingWeights, diff * 1.0) // else null (empty list) + inputs: + weightingDates date (0..*) <"A list of dates for which weightings are require."> + output: + weights number (0..*) <"A vector of weights, typically numbers between 1 and 3."> + + alias active: weightingDates count > 1 // do we still have more than one date in the list? + alias refDate: weightingDates last // find the last date in the supplied list of dates + alias remainingDates: PopOffDateList(weightingDates) // determine the prior list of dates, i.e. omitting the last in the list + alias prevDate: remainingDates last // find the second to last date in the supplied list of dates + alias diff: DateDifference(prevDate, refDate) // the weight is the date difference between the supplied ref date and the last one in the list + alias remainingWeights: GenerateWeights(remainingDates) // recursively generate weights for earlier part of the list + // if we have >= 1 in the list, add the date difference to the list of weights from the prior part of the list, else return nothing + add weights: + if active then AppendToVector(remainingWeights, diff * 1.0) // else null (empty list) // ----------------------------------------------- // // Calculated rate formula processing (compounding or averaging) // // ----------------------------------------------- - func 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."> - inputs: - observations number (0..*) <"A vector of observation value."> - weights number (0..*) <"A vector of weights (should be same size as observations, 1 weight per observation."> - yearFrac number (1..1) <"Year fraction of a single day (i.e. 1/basis."> - output: - results CalculatedRateDetails (1..1) <"Details of the compounding calculation."> - - // weight the observations - alias weightedObservations: VectorOperation(ArithmeticOperationEnum -> Multiply, observations, weights) - - // scale the weighted observations based on the basis - alias scaledAndWeightedObservations: VectorScalarOperation(ArithmeticOperationEnum -> Multiply, weightedObservations, yearFrac) - - // compute series of growth factors by adding 1 to the scaled and weighted observations - alias growthFactors: VectorScalarOperation(ArithmeticOperationEnum -> Add, scaledAndWeightedObservations, 1.0) - - // compute a growth curve by successively applying the growth factors - alias growthCurve: VectorGrowthOperation(1.0, growthFactors) - - // find the final value of the growth curve (the product of all the growth factors times) - alias finalValue: growthCurve last - - // find the values to scale by to compute the rate - alias totalWeight: weights sum - alias overallYearFrac: totalWeight * yearFrac - - // compute the final calculated rate - alias calculatedRate: (finalValue - 1) / overallYearFrac - - // record results - set results -> aggregateValue: finalValue - set results -> aggregateWeight: totalWeight - set results -> calculatedRate: calculatedRate - add results -> compoundedGrowth: growthCurve - add results -> growthFactor: growthFactors - add results -> weightedRates: weightedObservations + inputs: + observations number (0..*) <"A vector of observation value."> + weights number (0..*) <"A vector of weights (should be same size as observations, 1 weight per observation."> + yearFrac number (1..1) <"Year fraction of a single day (i.e. 1/basis."> + output: + results CalculatedRateDetails (1..1) <"Details of the compounding calculation."> + + // weight the observations + alias weightedObservations: + VectorOperation(ArithmeticOperationEnum -> Multiply, observations, weights) + + // scale the weighted observations based on the basis + alias scaledAndWeightedObservations: + VectorScalarOperation( + ArithmeticOperationEnum -> Multiply, + weightedObservations, + yearFrac + ) + + // compute series of growth factors by adding 1 to the scaled and weighted observations + alias growthFactors: + VectorScalarOperation( + ArithmeticOperationEnum -> Add, + scaledAndWeightedObservations, + 1.0 + ) + + // compute a growth curve by successively applying the growth factors + alias growthCurve: VectorGrowthOperation(1.0, growthFactors) + + // find the final value of the growth curve (the product of all the growth factors times) + alias finalValue: growthCurve last + + // find the values to scale by to compute the rate + alias totalWeight: weights sum + alias overallYearFrac: totalWeight * yearFrac + + // compute the final calculated rate + alias calculatedRate: (finalValue - 1) / overallYearFrac + + // record results + set results -> aggregateValue: finalValue + set results -> aggregateWeight: totalWeight + set results -> calculatedRate: calculatedRate + add results -> compoundedGrowth: growthCurve + add results -> growthFactor: growthFactors + add results -> weightedRates: weightedObservations func 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."> - inputs: - observations number (0..*) <"a vector of observation value."> - weights number (0..*) <"a vector of weights (should be same size as observations, 1 weight per observation."> - output: - results CalculatedRateDetails (1..1) <"Details of the averaging calculation."> - - // weight the observations - alias weightedObservations: VectorOperation(ArithmeticOperationEnum -> Multiply, observations, weights) - - // sum the weighted observations - alias totalWeightedObservations: weightedObservations sum - - // sum the weights - alias totalWeight: weights sum - - // compute the final calculated rate - alias calculatedRate: totalWeightedObservations / totalWeight - - // record results - set results -> aggregateValue: totalWeightedObservations - set results -> aggregateWeight: totalWeight - set results -> calculatedRate: calculatedRate - add results -> weightedRates: weightedObservations + inputs: + observations number (0..*) <"a vector of observation value."> + weights number (0..*) <"a vector of weights (should be same size as observations, 1 weight per observation."> + output: + results CalculatedRateDetails (1..1) <"Details of the averaging calculation."> + + // weight the observations + alias weightedObservations: + VectorOperation(ArithmeticOperationEnum -> Multiply, observations, weights) + + // sum the weighted observations + alias totalWeightedObservations: weightedObservations sum + + // sum the weights + alias totalWeight: weights sum + + // compute the final calculated rate + alias calculatedRate: totalWeightedObservations / totalWeight + + // record results + set results -> aggregateValue: totalWeightedObservations + set results -> aggregateWeight: totalWeight + set results -> calculatedRate: calculatedRate + add results -> weightedRates: weightedObservations diff --git a/rosetta-source/src/main/rosetta/observable-asset-enum.rosetta b/rosetta-source/src/main/rosetta/observable-asset-enum.rosetta index 96dafe4946..1b93ee5b93 100644 --- a/rosetta-source/src/main/rosetta/observable-asset-enum.rosetta +++ b/rosetta-source/src/main/rosetta/observable-asset-enum.rosetta @@ -5,286 +5,283 @@ import cdm.base.* import cdm.mapping.config.* enum InformationProviderEnum: <"The enumerated values to specify the list of information providers."> - [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/information-provider"] + [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/information-provider"] - AssocBanksSingapore <"The Association of Banks in Singapore."> - BancoCentralChile <"The central bank of Chile."> - BankOfCanada <"The central bank of Canada."> - BankOfEngland <"The Bank Of England."> - BankOfJapan <"The central bank of Japan."> - Bloomberg <"Bloomberg LP."> - EuroCentralBank <"The European Central Bank."> - FederalReserve <"The Federal Reserve, the central bank of the United States."> - FHLBSF <"The Federal Home Loan Bank of San Francisco, or its successor."> - ICESWAP <"ICESWAP Rate Administrator which means ICE Benchmark Administration, or any successor thereto, as administrator of the ICE Swap Rate."> - ISDA <"International Swaps and Derivatives Association, Inc."> - Refinitiv <"Refinitiv, formerly Thomson Reuters Financial & Risk."> - ReserveBankAustralia <"The Reserve Bank of Australia."> - ReserveBankNewZealand <"The Reserve Bank of New Zealand."> - Reuters <"Reuters Group Plc."> - SAFEX <"South African Futures Exchange, or its successor."> - Telerate <"Telerate, Inc."> - TOKYOSWAP <"The Tokyo Swap Reference Rate (or TSR) Administrator, which means Refinitiv Asia Pacific Limited, or any successor thereto, as administrator of the TSR."> + AssocBanksSingapore <"The Association of Banks in Singapore."> + BancoCentralChile <"The central bank of Chile."> + BankOfCanada <"The central bank of Canada."> + BankOfEngland <"The Bank Of England."> + BankOfJapan <"The central bank of Japan."> + Bloomberg <"Bloomberg LP."> + EuroCentralBank <"The European Central Bank."> + FederalReserve <"The Federal Reserve, the central bank of the United States."> + FHLBSF <"The Federal Home Loan Bank of San Francisco, or its successor."> + ICESWAP <"ICESWAP Rate Administrator which means ICE Benchmark Administration, or any successor thereto, as administrator of the ICE Swap Rate."> + ISDA <"International Swaps and Derivatives Association, Inc."> + Refinitiv <"Refinitiv, formerly Thomson Reuters Financial & Risk."> + ReserveBankAustralia <"The Reserve Bank of Australia."> + ReserveBankNewZealand <"The Reserve Bank of New Zealand."> + Reuters <"Reuters Group Plc."> + SAFEX <"South African Futures Exchange, or its successor."> + Telerate <"Telerate, Inc."> + TOKYOSWAP <"The Tokyo Swap Reference Rate (or TSR) Administrator, which means Refinitiv Asia Pacific Limited, or any successor thereto, as administrator of the TSR."> enum PriceExpressionEnum: <"Enumerated values to specify whether the price is expressed in absolute or relative terms."> - AbsoluteTerms <"The price is expressed as an absolute amount."> - PercentageOfNotional <"The price is expressed in percentage of the notional amount."> - ParValueFraction <"Denotes a price expressed in percentage of face value with fractions which is used for quoting bonds, e.g. 101 3/8 indicates that the buyer will pay 101.375 of the face value."> - PerOption <"Denotes a price expressed per number of options."> - + AbsoluteTerms <"The price is expressed as an absolute amount."> + PercentageOfNotional <"The price is expressed in percentage of the notional amount."> + ParValueFraction <"Denotes a price expressed in percentage of face value with fractions which is used for quoting bonds, e.g. 101 3/8 indicates that the buyer will pay 101.375 of the face value."> + PerOption <"Denotes a price expressed per number of options."> + enum QuotationSideEnum: <"The enumerated values to specify the side from which perspective a value is quoted."> - Afternoon <"Denotes a value as the Afternoon fixing reported in or by the relevant Price Source as specified in the relevant Confirmation."> - Ask <"Denotes a value 'asked' by a seller for an asset, i.e. the value at which a seller is willing to sell."> - Bid <"Denotes a value 'bid' by a buyer for an asset, i.e. the value a buyer is willing to pay."> - Closing <"Denotes a value as the Closing price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - High <"Denotes a value as the High price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - Index <"Denotes a value as the Index price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - MeanOfBidAndAsk <"Denotes a value as the Average of the Bid and Ask prices reported in or by the relevant Price Source as specified in the relevant Confirmation."> - LocationalMarginal <"Denotes a value as the Locational Marginal price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - Low <"Denotes a value as the Low price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - MarginalHourly <"Denotes a value as the Marginal Hourly price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - MarketClearing <"Denotes a value as the Market Clearing price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - MeanOfHighAndLow <"Denotes a value as the Average of the High and Low prices reported in or by the relevant Price Source as specified in the relevant Confirmation."> - Morning <"Denotes a value as the Morning fixing reported in or by the relevant Price Source as specified in the relevant Confirmation."> - Official <"Denotes a value as the Official price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - Opening <"Denotes a value as the Opening price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - OSP <"Denotes a value as the Official Settlement Price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - Settlement <"Denotes a value as the Settlement price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - Spot <"Denotes a value as the Spot price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - Mid <"Denotes a value as the Average of the Midpoint of prices reported in or by the relevant Price Source as specified in the relevant Confirmation."> - NationalSingle <"Denotes a value as the National Single price reported in or by the relevant Price Source as specified in the relevant Confirmation."> - WeightedAverage <"Denotes a value as the Volume Weighted Average of prices effective on the Pricing Date."> - UnWeightedAverage <"Denotes a value as the Non-volume Weighted Average of prices effective on the Pricing Date."> - -enum QuotationStyleEnum: <"The enumerated values to specify the actual quotation style (e.g. PointsUpFront, TradedSpread) used to quote a credit default swap fee leg."> - PointsUpFront <"When quotation style is 'PointsUpFront', the initialPoints element of the Credit Default Swap feeLeg should be populated"> - TradedSpread <"When quotation style is 'TradedSpread', the marketFixedRate element of the Credit Default Swap feeLeg should be populated"> - Price <"When quotation style is 'Price', the marketPrice element of the Credit Default Swap feeLeg should be populated"> + Afternoon <"Denotes a value as the Afternoon fixing reported in or by the relevant Price Source as specified in the relevant Confirmation."> + Ask <"Denotes a value 'asked' by a seller for an asset, i.e. the value at which a seller is willing to sell."> + Bid <"Denotes a value 'bid' by a buyer for an asset, i.e. the value a buyer is willing to pay."> + Closing <"Denotes a value as the Closing price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + High <"Denotes a value as the High price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + Index <"Denotes a value as the Index price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + MeanOfBidAndAsk <"Denotes a value as the Average of the Bid and Ask prices reported in or by the relevant Price Source as specified in the relevant Confirmation."> + LocationalMarginal <"Denotes a value as the Locational Marginal price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + Low <"Denotes a value as the Low price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + MarginalHourly <"Denotes a value as the Marginal Hourly price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + MarketClearing <"Denotes a value as the Market Clearing price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + MeanOfHighAndLow <"Denotes a value as the Average of the High and Low prices reported in or by the relevant Price Source as specified in the relevant Confirmation."> + Morning <"Denotes a value as the Morning fixing reported in or by the relevant Price Source as specified in the relevant Confirmation."> + Official <"Denotes a value as the Official price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + Opening <"Denotes a value as the Opening price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + OSP <"Denotes a value as the Official Settlement Price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + Settlement <"Denotes a value as the Settlement price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + Spot <"Denotes a value as the Spot price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + Mid <"Denotes a value as the Average of the Midpoint of prices reported in or by the relevant Price Source as specified in the relevant Confirmation."> + NationalSingle <"Denotes a value as the National Single price reported in or by the relevant Price Source as specified in the relevant Confirmation."> + WeightedAverage <"Denotes a value as the Volume Weighted Average of prices effective on the Pricing Date."> + UnWeightedAverage <"Denotes a value as the Non-volume Weighted Average of prices effective on the Pricing Date."> +enum QuotationStyleEnum: <"The enumerated values to specify the actual quotation style (e.g. PointsUpFront, TradedSpread) used to quote a credit default swap fee leg."> + PointsUpFront <"When quotation style is 'PointsUpFront', the initialPoints element of the Credit Default Swap feeLeg should be populated"> + TradedSpread <"When quotation style is 'TradedSpread', the marketFixedRate element of the Credit Default Swap feeLeg should be populated"> + Price <"When quotation style is 'Price', the marketPrice element of the Credit Default Swap feeLeg should be populated"> enum ValuationMethodEnum: <"The enumerated values to specify the ISDA defined methodology for determining the final price of the reference obligation for purposes of cash settlement."> - Market - Highest - AverageMarket - AverageHighest - BlendedMarket - BlendedHighest - AverageBlendedMarket - AverageBlendedHighest + Market + Highest + AverageMarket + AverageHighest + BlendedMarket + BlendedHighest + AverageBlendedMarket + AverageBlendedHighest enum CommodityReferencePriceEnum: <"The enumeration values to specify the Commodity Reference Prices specified in the Annex to the 2005 ISDA Commodity Definitions."> - //[docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/commodity-reference-price"] - - ALUMINIUM_ALLOY_LME_15_MONTH displayName "ALUMINIUM ALLOY-LME 15 MONTH" <"Per 2005 ISDA Commodity Definitions, Sub-Annex A, Section 7.1 Commodity Reference Prices, as amended and supplemented through the date on which parties enter into the relevant transaction."> - COAL_CENTRAL_APPALACHIAN_NYMEX displayName "COAL-CENTRAL APPALACHIAN-NYMEX" <"A code for the NYMEX Central Appalachian Coal commodity"> - COCOA_ICE displayName "COCOA-ICE" <"A code for the ICE Futures U.S. (‘ICUS’) Cocoa commodity"> - COFFEE_ARABICA_ICE displayName "COFFEE ARABICA-ICE" <"A code for the ICUS Coffee C commodity"> - COFFEE_ROBUSTA_ICE displayName "COFFEE ROBUSTA-ICE" <"A code for the ICUS Coffee C commodity"> - COPPER_COMEX displayName "COPPER-COMEX" <"A code for the COMEX (‘CMX’) Copper Grade #1 commodity"> - CORN_CBOT displayName "CORN-CBOT" <"A code for the Chicago Board of Trade (‘CBOT’) Corn commodity"> - COTTON_NO__2_ICE displayName "COTTON NO. 2-ICE" <"A code for the ICUS Cotton No. 2 commodity"> - ETHANOL_CBOT displayName "ETHANOL-CBOT" <"A code for the CBOT Ethanol commodity"> - FEEDER_CATTLE_CME displayName "FEEDER CATTLE-CME" <"A code for the CME Feeder Cattle commodity"> - FROZEN_CONCENTRATED_ORANGE_JUICE_NO__1_ICE displayName "FROZEN CONCENTRATED ORANGE JUICE NO. 1-ICE" <"A code for the ICUS Frozen Concentrated Orange Juice commodity"> - GASOLINE_RBOB_NEW_YORK_ICE displayName "GASOLINE-RBOB-NEW YORK-ICE" <"A code for the NYMEX Gasoline Blendstock (RBOB) commodity"> - GASOLINE_RBOB_NEW_YORK_NYMEX displayName "GASOLINE-RBOB-NEW YORK-NYMEX" <"A code for the NYMEX Gasoline Blendstock (RBOB) commodity"> - GOLD_COMEX displayName "GOLD-COMEX" <"A code for the CMX Gold commodity"> - HEATING_OIL_NEW_YORK_NYMEX displayName "HEATING OIL-NEW YORK-NYMEX" <"A code for the NYMEX No. 2 Heating Oil, New York Harbor commodity"> - LEAN_HOGS_CME displayName "LEAN HOGS-CME" <"A code for the CME Lean Hogs commodity"> - LIVE_CATTLE_CME displayName "LIVE CATTLE-CME" <"A code for the CME Live Cattle commodity"> - LUMBER_CME displayName "LUMBER-CME" <"A code for the CME Random Length Lumber commodity"> - MILK_CLASS_III_CME displayName "MILK-CLASS III-CME" <"A code for the CME Milk Class III commodity"> - MILK_NONFAT_DRY_CME displayName "MILK-NONFAT-DRY-CME" <"A code for the CME Non Fat Dry Milk commodity"> - NATURAL_GAS_NYMEX displayName "NATURAL GAS-NYMEX" <"A code for the NYMEX Natural Gas commodity"> - NATURAL_GAS_PEPL__TEXOK_MAINLINE__INSIDE_FERC displayName "NATURAL GAS-PEPL (TEXOK MAINLINE)-INSIDE FERC" <"A code for the NYMEX Panhandle Basis Swap commodity"> - NATURAL_GAS_W__TEXAS__WAHA__INSIDE_FERC displayName "NATURAL GAS-W. TEXAS (WAHA)-INSIDE FERC" <"A code for the NYMEX Waha Basis Swap commodity"> - OATS_CBOT displayName "OATS-CBOT" <"A code for the CBOT Oats commodity"> - OIL_WTI_NYMEX displayName "OIL-WTI-NYMEX" <"A code for the NYMEX Crude Oil, Light Sweet commodity"> - PALLADIUM_NYMEX displayName "PALLADIUM-NYMEX" <"A code for the NYMEX Palladium commodity"> - PLATINUM_NYMEX displayName "PLATINUM-NYMEX" <"A code for the NYMEX Platinum commodity"> - RICE_CBOT displayName "RICE-CBOT" <"A code for the CBOT Rough Rice commodity"> - SILVER_COMEX displayName "SILVER-COMEX" <"A code for the CMX Silver commodity"> - SOYBEANS_CBOT displayName "SOYBEANS-CBOT" <"A code for the CBOT Soybeans commodity"> - SOYBEAN_MEAL_CBOT displayName "SOYBEAN MEAL-CBOT" <"A code for the CBOT Soybean Meal commodity"> - SOYBEAN_OIL_CBOT displayName "SOYBEAN OIL-CBOT" <"A code for the CBOT Soybean Oil commodity"> - SUGAR___11__WORLD__ICE displayName "SUGAR # 11 (WORLD)-ICE" <"A code for the ICUS Sugar No. 11 commodity"> - SUGAR___16__US__ICE displayName "SUGAR # 16 (US)-ICE" <"A code for the ICUS Sugar No. 16 commodity"> - WHEAT_CBOT displayName "WHEAT-CBOT" <"A code for the CBOT Wheat commodity"> - WHEAT_HRW_KCBOT displayName "WHEAT HRW-KCBOT" <"A code for the Kansas City Board of Trade (‘KCBT’)Wheat commodity"> - WHEAT_RED_SPRING_MGE displayName "WHEAT RED SPRING-MGE" <"A code for the Wheat commodity"> - + // [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/commodity-reference-price"] + ALUMINIUM_ALLOY_LME_15_MONTH displayName "ALUMINIUM ALLOY-LME 15 MONTH" <"Per 2005 ISDA Commodity Definitions, Sub-Annex A, Section 7.1 Commodity Reference Prices, as amended and supplemented through the date on which parties enter into the relevant transaction."> + COAL_CENTRAL_APPALACHIAN_NYMEX displayName "COAL-CENTRAL APPALACHIAN-NYMEX" <"A code for the NYMEX Central Appalachian Coal commodity"> + COCOA_ICE displayName "COCOA-ICE" <"A code for the ICE Futures U.S. (‘ICUS’) Cocoa commodity"> + COFFEE_ARABICA_ICE displayName "COFFEE ARABICA-ICE" <"A code for the ICUS Coffee C commodity"> + COFFEE_ROBUSTA_ICE displayName "COFFEE ROBUSTA-ICE" <"A code for the ICUS Coffee C commodity"> + COPPER_COMEX displayName "COPPER-COMEX" <"A code for the COMEX (‘CMX’) Copper Grade #1 commodity"> + CORN_CBOT displayName "CORN-CBOT" <"A code for the Chicago Board of Trade (‘CBOT’) Corn commodity"> + COTTON_NO__2_ICE displayName "COTTON NO. 2-ICE" <"A code for the ICUS Cotton No. 2 commodity"> + ETHANOL_CBOT displayName "ETHANOL-CBOT" <"A code for the CBOT Ethanol commodity"> + FEEDER_CATTLE_CME displayName "FEEDER CATTLE-CME" <"A code for the CME Feeder Cattle commodity"> + FROZEN_CONCENTRATED_ORANGE_JUICE_NO__1_ICE displayName "FROZEN CONCENTRATED ORANGE JUICE NO. 1-ICE" <"A code for the ICUS Frozen Concentrated Orange Juice commodity"> + GASOLINE_RBOB_NEW_YORK_ICE displayName "GASOLINE-RBOB-NEW YORK-ICE" <"A code for the NYMEX Gasoline Blendstock (RBOB) commodity"> + GASOLINE_RBOB_NEW_YORK_NYMEX displayName "GASOLINE-RBOB-NEW YORK-NYMEX" <"A code for the NYMEX Gasoline Blendstock (RBOB) commodity"> + GOLD_COMEX displayName "GOLD-COMEX" <"A code for the CMX Gold commodity"> + HEATING_OIL_NEW_YORK_NYMEX displayName "HEATING OIL-NEW YORK-NYMEX" <"A code for the NYMEX No. 2 Heating Oil, New York Harbor commodity"> + LEAN_HOGS_CME displayName "LEAN HOGS-CME" <"A code for the CME Lean Hogs commodity"> + LIVE_CATTLE_CME displayName "LIVE CATTLE-CME" <"A code for the CME Live Cattle commodity"> + LUMBER_CME displayName "LUMBER-CME" <"A code for the CME Random Length Lumber commodity"> + MILK_CLASS_III_CME displayName "MILK-CLASS III-CME" <"A code for the CME Milk Class III commodity"> + MILK_NONFAT_DRY_CME displayName "MILK-NONFAT-DRY-CME" <"A code for the CME Non Fat Dry Milk commodity"> + NATURAL_GAS_NYMEX displayName "NATURAL GAS-NYMEX" <"A code for the NYMEX Natural Gas commodity"> + NATURAL_GAS_PEPL__TEXOK_MAINLINE__INSIDE_FERC displayName "NATURAL GAS-PEPL (TEXOK MAINLINE)-INSIDE FERC" <"A code for the NYMEX Panhandle Basis Swap commodity"> + NATURAL_GAS_W__TEXAS__WAHA__INSIDE_FERC displayName "NATURAL GAS-W. TEXAS (WAHA)-INSIDE FERC" <"A code for the NYMEX Waha Basis Swap commodity"> + OATS_CBOT displayName "OATS-CBOT" <"A code for the CBOT Oats commodity"> + OIL_WTI_NYMEX displayName "OIL-WTI-NYMEX" <"A code for the NYMEX Crude Oil, Light Sweet commodity"> + PALLADIUM_NYMEX displayName "PALLADIUM-NYMEX" <"A code for the NYMEX Palladium commodity"> + PLATINUM_NYMEX displayName "PLATINUM-NYMEX" <"A code for the NYMEX Platinum commodity"> + RICE_CBOT displayName "RICE-CBOT" <"A code for the CBOT Rough Rice commodity"> + SILVER_COMEX displayName "SILVER-COMEX" <"A code for the CMX Silver commodity"> + SOYBEANS_CBOT displayName "SOYBEANS-CBOT" <"A code for the CBOT Soybeans commodity"> + SOYBEAN_MEAL_CBOT displayName "SOYBEAN MEAL-CBOT" <"A code for the CBOT Soybean Meal commodity"> + SOYBEAN_OIL_CBOT displayName "SOYBEAN OIL-CBOT" <"A code for the CBOT Soybean Oil commodity"> + SUGAR___11__WORLD__ICE displayName "SUGAR # 11 (WORLD)-ICE" <"A code for the ICUS Sugar No. 11 commodity"> + SUGAR___16__US__ICE displayName "SUGAR # 16 (US)-ICE" <"A code for the ICUS Sugar No. 16 commodity"> + WHEAT_CBOT displayName "WHEAT-CBOT" <"A code for the CBOT Wheat commodity"> + WHEAT_HRW_KCBOT displayName "WHEAT HRW-KCBOT" <"A code for the Kansas City Board of Trade (‘KCBT’)Wheat commodity"> + WHEAT_RED_SPRING_MGE displayName "WHEAT RED SPRING-MGE" <"A code for the Wheat commodity"> enum QuoteBasisEnum: <"The enumerated values to specify how an exchange rate is quoted."> - Currency1PerCurrency2 <"The amount of currency1 for one unit of currency2"> - Currency2PerCurrency1 <"The amount of currency2 for one unit of currency1"> + Currency1PerCurrency2 <"The amount of currency1 for one unit of currency2"> + Currency2PerCurrency1 <"The amount of currency2 for one unit of currency1"> enum QuotationRateTypeEnum: <"The enumerated values to specify the type of quotation rate to be obtained from each cash settlement reference bank."> - Bid <"A bid rate."> - Ask <"An ask rate."> - Mid <"A mid-market rate."> - ExercisingPartyPays <"If optional early termination is applicable to a swap transaction, the rate, which may be a bid or ask rate, which would result, if seller is in-the-money, in the higher absolute value of the cash settlement amount, or, is seller is out-of-the-money, in the lower absolute value of the cash settlement amount."> + Bid <"A bid rate."> + Ask <"An ask rate."> + Mid <"A mid-market rate."> + ExercisingPartyPays <"If optional early termination is applicable to a swap transaction, the rate, which may be a bid or ask rate, which would result, if seller is in-the-money, in the higher absolute value of the cash settlement amount, or, is seller is out-of-the-money, in the lower absolute value of the cash settlement amount."> enum CreditRatingAgencyEnum: <"Represents the enumerated values to specify the rating agencies."> - //[docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/credit-rating-agency"] - [synonym AcadiaSoft_AM_1_0 value "AgencyEnum"] + // [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/credit-rating-agency"] + [synonym AcadiaSoft_AM_1_0 value "AgencyEnum"] - AMBest <"A. M. Best"> - CBRS <"Canadian Bond Rating Service"> - DBRS <"Dominion Bond Rating Service"> - [synonym AcadiaSoft_AM_1_0 value "DBRS"] - Fitch <"Fitch"> - [synonym AcadiaSoft_AM_1_0 value "FITCH"] - Japanagency <"Japan Credit Rating Agency, Ltd."> - Moodys <"Moody's"> - [synonym AcadiaSoft_AM_1_0 value "MOODYS"] - RatingAndInvestmentInformation <"Rating And Investment Information, Inc."> - StandardAndPoors <"Standard And Poor's"> - [synonym AcadiaSoft_AM_1_0 value "STANDARD_POORS"] + AMBest <"A. M. Best"> + CBRS <"Canadian Bond Rating Service"> + DBRS <"Dominion Bond Rating Service"> + [synonym AcadiaSoft_AM_1_0 value "DBRS"] + Fitch <"Fitch"> + [synonym AcadiaSoft_AM_1_0 value "FITCH"] + Japanagency <"Japan Credit Rating Agency, Ltd."> + Moodys <"Moody's"> + [synonym AcadiaSoft_AM_1_0 value "MOODYS"] + RatingAndInvestmentInformation <"Rating And Investment Information, Inc."> + StandardAndPoors <"Standard And Poor's"> + [synonym AcadiaSoft_AM_1_0 value "STANDARD_POORS"] enum CreditRatingOutlookEnum: <"Represents the enumerated values to specify the credit rating outlook."> - Positive <"Denotes a rating may be raised."> + Positive <"Denotes a rating may be raised."> Negative <"Denotes a rating may be lowered."> - Stable <"Denotes a rating is not likely to change."> + Stable <"Denotes a rating is not likely to change."> Developing <"Denotes a rating may be raised, lowered, or affirmed."> enum CreditRatingCreditWatchEnum: <"Represents the enumerated values to specify the credit watch rating."> - Positive <"Denotes a rating may be raised."> + Positive <"Denotes a rating may be raised."> Negative <"Denotes a rating may be lowered."> Developing <"Denotes a rating may be raised, lowered, or affirmed."> enum CreditNotationMismatchResolutionEnum: <"Represents and enumeration list to identify the characteritics of the rating if there are several agency issue ratings but not equivalent, reference will be made to label characteritics of the rating such as the lowest/highest available."> - Lowest <"Denotes the lowest credit notation if several notations are listed."> - Highest <"Denotes the highest credit notation if several notations are listed."> - ReferenceAgency <"Denotes that a credit notation issued from a defined reference agency is used if several notations are listed."> - Average <"Denotes the average credit notation if several notations are listed "> - SecondBest <"Denotes the second best credit notaiton if several notatons are listed"> + Lowest <"Denotes the lowest credit notation if several notations are listed."> + Highest <"Denotes the highest credit notation if several notations are listed."> + ReferenceAgency <"Denotes that a credit notation issued from a defined reference agency is used if several notations are listed."> + Average <"Denotes the average credit notation if several notations are listed "> + SecondBest <"Denotes the second best credit notaiton if several notatons are listed"> enum CreditNotationBoundaryEnum: <"Identifies an agency rating as a simple scale boundary of minimum or maximum."> - Minimum <"Denotes a minumum boundary"> - Maximum <"Denotes a maxiumum boundary"> + Minimum <"Denotes a minumum boundary"> + Maximum <"Denotes a maxiumum boundary"> enum InterpolationMethodEnum: <"The enumerated values to specify the interpolation method, e.g. linear."> - [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/interpolation-method"] + [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/interpolation-method"] - Linear <"Linear Interpolation applicable."> - LinearZeroYield <"Linear Interpolation applicable."> - None <"No Interpolation applicable."> + Linear <"Linear Interpolation applicable."> + LinearZeroYield <"Linear Interpolation applicable."> + None <"No Interpolation applicable."> enum SettlementRateOptionEnum: <"The enumerated values to specify the settlement rate options as specified in the Annex A to the 1998 FX and Currency Options Definitions."> - [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/settlement-rate-option"] + [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/settlement-rate-option"] - ARS_BNAR_ARS01 displayName "ARS.BNAR/ARS01" <"The Spot Rate for a Rate Calculation Date will be the Argentine Peso/U.S. Dollar Specified Rate, expressed as the amount of Argentine Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Buenos Aires and New York) which appears on the Reuters Screen BNAR Page at the close of business in Buenos Aires on that Rate Calculation Date."> - ARS_EMTA_INDICATIVE_SURVEY_RATE_ARS04 displayName "ARS.EMTA.INDICATIVE.SURVEY.RATE/ARS04" <"The Spot Rate for a Rate Calculation Date will be the Argentine Peso/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Argentine Pesos per one U.S. Dollar, for settlement on the same day, as published on EMTA's web site (www.emta.org) at approximately 1:00 p.m. (Buenos Aires time), or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA ARS Indicative Survey Methodology (which means a methodology, dated as of January 2, 2003, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Argentine Peso/U.S. Dollar markets for the purpose of determining the EMTA ARS Indicative Survey Rate)."> - ARS_EMTA_INDUSTRY_SURVEY_RATE_ARS03 displayName "ARS.EMTA.INDUSTRY.SURVEY.RATE/ARS03" <"The Spot Rate for a Rate Calculation Date will be the Argentine Peso/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Argentine Pesos per one U.S. Dollar, for settlement on the same day, as published on EMTA's web site (www.emta.org) at approximately 1:00 p.m. (Buenos Aires time), or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA ARS Industry Survey Methodology (which means a methodology, dated as of January 2, 2003, as amended from time to time, for a centralized industry-wide survey of financial institutions in Buenos Aires that are active participants in the Argentine Peso/U.S. Dollar spot markets for the purpose of determining the EMTA ARS Industry Survey Rate)."> - ARS_MAE_ARS05 displayName "ARS.MAE/ARS05" <"The Spot Rate for a Rate Calculation Date will be the volume weighted average Argentine Peso/U.S. Dollar Rate of all trades executed in the electronic market for a Rate Calculation Day expressed as the amount of Argentine Pesos per one U.S. Dollar, for settlement on the same day, reported by the Mercado Abierto Electronico (the 'MAE') at approximately 3:00 pm, Buenos Aires time, and published on the FOREX-MAE Page as the 'PPN' rate ('Promedio Ponderado Noticiado') on www.mae.com.ar on that Rate Calculation Date."> - ARS_OFFICIAL_RATE_ARS02 displayName "ARS.OFFICIAL.RATE/ARS02" <"The Spot Rate for a Rate Calculation Date will be the Argentine Peso/U.S. Dollar offered rate for U.S. Dollars, expressed as the amount of Argentine Pesos per one U.S. Dollar, for settlement on the same day quoted by Banco de la Nacion (in accordance with the Convertibility Law of March 27, 1991 and Regulatory Decree No. 529/91 of April 1, 1991, as may be amended from time to time) for that Rate Calculation Date."> - BRL_BRBY_BRL01 displayName "BRL.BRBY/BRL01" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar Specified Rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) which appears on the Reuters Screen BRBY Page under the caption 'INTBK FLTING (LAST)' at approximately 11:00 a.m., Sao Paulo time, on that Rate Calculation Date."> - BRL_EMTA_INDICATIVE_SURVEY_RATE_BRL13 displayName "BRL.EMTA.INDICATIVE.SURVEY.RATE/BRL13" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days, as published on EMTA's web site (www.emta.org) at approximately 12:00 p.m. (Sao Paulo time), or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA BRL Indicative Survey Methodology (which means a methodology, dated as of March 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Brazilian Real/U.S. Dollar markets for the purpose of determining the EMTA BRL Indicative Survey Rate)."> - BRL_EMTA_INDUSTRY_SURVEY_RATE_BRL12 displayName "BRL.EMTA.INDUSTRY.SURVEY.RATE/BRL12" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days, as published on EMTA's web site (www.emta.org) at approximately 3:45 p.m. (Sao Paulo time), or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA BRL Industry Survey Methodology (which means a methodology, dated as of March 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions in Brazil that are active participants in the Brazilian Real/U.S. Dollar spot markets for the purpose of determining the EMTA BRL Industry Survey Rate)."> - BRL_OFFICIAL_RATE_BRL02 displayName "BRL.OFFICIAL.RATE/BRL02" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar Specified Rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil in the 'Diario Oficial da Uniao' on the first Business Day following that Rate Calculation Date."> - BRL_PCOT_COMMERCIAL_BRL03 displayName "BRL.PCOT-COMMERCIAL/BRL03" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar commercial rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil on SISBACEN Data System under transaction code PCOT- 390, Option 3, at the Specified Time, if any, on that Rate Calculation Date."> - BRL_PCOT_FLOATING_BRL04 displayName "BRL.PCOT-FLOATING/BRL04" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar floating rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil on SISBACEN Data System under transaction code PCOT- 390, Option 3, at the Specified Time, if any, on that Rate Calculation Date."> - BRL_PTAX_BRL09 displayName "BRL.PTAX/BRL09" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar offered rate for U.S. Dollars, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days reported by the Banco Central do Brasil on SISBACEN Data System under transaction code PTAX-800 ('Consulta de Cambio' or Exchange Rate Inquiry), Option 5 ('Cotacoes para Contabilidade' or 'Rates for Accounting Purposes') by approximately 6:00 p.m., Sao Paulo time, on that Rate Calculation Date."> - BRL_PTAX_COMMERCIAL_BRL05 displayName "BRL.PTAX-COMMERCIAL/BRL05" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar commercial rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil on SISBACEN Data System under transaction code PTAX- 800 ('Consultas de Cambio' or Exchange Rate Inquiry), Option 5 ('Cotacoes para Contabilidad' or Rates for Accounting Purposes) market type 'L' (corresponding to U.S. Dollars traded in the foreign exchange market segment officially denominated 'Livre' and commonly known as 'Comercial') as of 7:30 p.m., Sao Paulo time, on that Rate Calculation Date."> - BRL_PTAX_COMMERCIAL_BRFR_BRL06 displayName "BRL.PTAX-COMMERCIAL.BRFR/BRL06" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar commercial rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil which appears on the Reuters Screen BRFR Page at PTAX-800 as of 11:00 a.m., Sao Paulo time, on the first Business Day following that Rate Calculation Date. 23"> - BRL_PTAX_FLOATING_BRL07 displayName "BRL.PTAX-FLOATING/BRL07" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar floating rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil on SISBACEN Data System under transaction code PTAX- 800 ('Consultas de Cambio' or Exchange Rate Inquiry), Option 5 ('Cotacoes para Contabilidad' or Rates for Accounting Purposes) market type 'F' (corresponding to U.S. Dollars traded in the foreign exchange market segment officially denominated 'Flutuante') as of 7:30 p.m., Sao Paulo time, on that Rate Calculation Date."> - BRL_PTAX_FLOATING_BRFR_BRL08 displayName "BRL.PTAX-FLOATING.BRFR/BRL08" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar floating rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil on the SISBACEN Data System which appears on the Reuters Screen BRFR Page at PTAX-800 as of 11:00 a.m., Sao Paulo time, on the first Business Day following that Rate Calculation Date."> - CLP_BCCH_CLP01 displayName "CLP.BCCH/CLP01" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar observado rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) reported by the Banco Central de Chile which appears on the Reuters Screen BCCH Page under the caption 'OBSERVADO' at 10:00 a.m., Santiago time, on the first Business Day following that Rate Calculation Date."> - CLP_CHILD_INFORMAL_CLP02 displayName "CLP.CHILD-INFORMAL/CLP02" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar informal rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) of the informal exchange market which appears on the Reuters Screen CHILD Page at the Specified Time, if any, on that Rate Calculation Date."> - CLP_CHILD_INTERBANK_CLP03 displayName "CLP.CHILD-INTERBANK/CLP03" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar interbank rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) reported by the Banco Central de Chile for the formal exchange market which appears on the Reuters Screen CHILD Page at the Specified Time, if any, on that Rate Calculation Date."> - CLP_CHILD_OBSERVADO_CLP04 displayName "CLP.CHILD-OBSERVADO/CLP04" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar observado rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) reported by the Banco Central de Chile which appears on the Reuters Screen CHILD Page on the first Business Day following that Rate Calculation Date."> - CLP_CHILG_INFORMAL_CLP05 displayName "CLP.CHILG-INFORMAL/CLP05" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar informal rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) of the informal exchange market which appears on the Reuters Screen CHILG Page at the Specified Time, if any, on that Rate Calculation Date."> - CLP_CHILG_INTERBANK_CLP06 displayName "CLP.CHILG-INTERBANK/CLP06" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar interbank rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) reported by the Banco Central de Chile for the formal exchange market which appears on the Reuters Screen CHILG Page at the Specified Time, if any, on that Rate Calculation Date."> - CLP_CHILG_OBSERVADO_CLP07 displayName "CLP.CHILG-OBSERVADO/CLP07" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar observado rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) reported by the Banco Central de Chile which appears on the Reuters Screen CHILG Page under 'OBSERVADO' at the Specified Time, if any, on the first Business Day following that Rate Calculation Date."> - CLP_DOLAR_OBS_CLP10 displayName "CLP.DOLAR.OBS/CLP10" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar 'observado' rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement in one Business Day reported by the Banco Central de Chile (www.bcentral.cl) as the 'Dolar Observado' (Dollar Observado) rate by not later than 10:30 a.m., Santiago time, on the first Business Day following that Rate Calculation Date."> - CLP_EMTA_INDICATIVE_SURVEY_RATE_CLP11 displayName "CLP.EMTA.INDICATIVE.SURVEY.RATE/CLP11" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day, as published on EMTA's web site (www.emta.org) at approximately 11:00 a.m., Santiago time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA CLP Indicative Survey Methodology (which means a methodology, dated as of August 1, 2006, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Chilean Peso/U.S. Dollar markets for the purpose of determining the EMTA CLP Indicative Survey Rate)."> - CLP_OFFICIAL_RATE_CLP08 displayName "CLP.OFFICIAL.RATE/CLP08" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar Specified Rate, expressed as the amount of Chilean Pesos per one U.S. Dollar (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York), calculated in accordance with Title I, Chapter 1 Number 6 of the Compendium of International Exchange Norms of the Banco Central de Chile and published by the Banco Central de Chile at the Specified Time, if any, on the first Business Day following that Rate Calculation Date."> - CLP_TELERATE_38942_CLP09 displayName "CLP.TELERATE.38942/CLP09" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar observado rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) reported by the Banco Central de Chile which appears on the Telerate Page 38942 opposite the caption 'Observado' at the Specified Time, if any, on the first Business Day following the Rate Calculation Date."> - CNY_SAEC_CNY01 displayName "CNY.SAEC/CNY01" <"The Spot Rate for a Rate Calculation Date will be the Chinese Renminbi/U.S. Dollar official fixing rate, expressed as the amount of Chinese Renminbi per one U.S. Dollar, for settlement in two Business Days reported by the People's Bank of China, Beijing, People's Republic of China, which appears on the Reuters Screen 'SAEC' Page opposite the symbol 'USDCNY=' at approximately 9:15 a.m., Beijing time, on that Rate Calculation Date."> - CNY_SFEMC_INDICATIVE_SURVEY_RATE_CNY02 displayName "CNY.SFEMC.INDICATIVE.SURVEY.RATE/CNY02" <"The Spot Rate for a Rate Calculation Date will be the Chinese Renminbi/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Chinese Renminbi per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m. (Singapore time), or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC CNY Indicative Survey Methodology (which means a methodology, dated as of December 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Chinese Renminbi/U.S. Dollar markets for the purpose of determining the SFEMC CNY Indicative Survey Rate)."> - COP_CO_COL03_COP01 displayName "COP.CO/COL03/COP01" <"The Spot Rate for a Rate Calculation Date will be the Colombian Peso/U.S. Dollar fixing rate, expressed as the amount of Colombian Pesos per one U.S. Dollar, for settlement on the same day (unless such day is not a Business Day in New York, then for settlement on the first succeeding day that is a Business Day in Bogota and New York) reported by the Colombian Banking Superintendency which appears on the Reuters Screen CO/COL03 Page opposite the caption 'TRCM' ('Tasa de Cierre Representative del Mercado' or closing market price) at 12:00 noon, Bogota time, on the first Business Day following that Rate Calculation Date."> - COP_EMTA_INDICATIVE_SURVEY_RATE_COP03 displayName "COP.EMTA.INDICATIVE.SURVEY.RATE/COP03" <"The Spot Rate for a Rate Calculation Date will be the Colombian Peso/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Colombian Pesos per one U.S. Dollar, for settlement on the same day, as published on EMTA's web site (www.emta.org) at approximately 11:30 a.m., Bogota time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA COP Indicative Survey Methodology (which means a methodology, dated as of August 1, 2006, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Colombian Peso/U.S. Dollar markets for the purpose of determining the EMTA COP Indicative Survey Rate)."> - COP_TRM_COP02 displayName "COP.TRM/COP02" <"The Spot Rate for a Rate Calculation Date will be the Colombian Peso/U.S. Dollar fixing rate, expressed as the amount of Colombian Pesos per one U.S. Dollar, for settlement on the same day reported by the Colombian Financial Superintendency (www.banrep.gov.co) as the 'Tasa Representativa del Mercado (TRM)' (also referred to as the 'Tasa de Cambio Representativa del Mercado' (TCRM)) by not later than 10:30 a.m., Bogota time, on the first Business Day following that Rate Calculation Date."> - CURRENCY_IMPLIED_RATE__ADR__CURA1 displayName "CURRENCY-IMPLIED.RATE.(ADR)/CURA1" <"the Spot Rate for a Rate Calculation Date will be the Reference Currency/U.S. Dollar exchange rate, expressed as the amount of Reference Currency per one U.S. Dollar, determined on the basis of quotations provided by Reference Dealers on that Rate Calculation Date of that day's price of a Specified Company's American Depositary Receipt or American Depositary Receipts (the 'ADR' or 'ADRs', as appropriate) and the price of the local share or shares of such Specified Company of the same type and in the same quantity represented by such ADR or ADRs, as the case may be (the 'Share' or 'Shares', as appropriate). The Calculation Agent will request each of the Reference Dealers to provide a firm quotation of (A) in the case where one ADR represents less than one Share, its bid and offer price (in the Reference Currency) for one Share and its bid and offer price (in U.S. Dollars) for the number of ADRs which represent such Share and (B) in all other cases, its bid and offer price (in the Reference Currency) for the Share or Shares, as the case may be, and its bid and offer price (in U.S. Dollars) for one ADR. If one or more quotations are provided, the rate for a Rate Calculation Date will equal the ratio of (1) the arithmetic mean of the midpoint of the bid and offer prices quoted in the Reference Currency by each Reference Dealer for such Share or Shares, as the case may be, and (2) the arithmetic mean of the midpoint of the bid and offer prices quoted in U.S. Dollars by each Reference Dealer for such ADR or ADRs, as the case may be, subject to an adjustment, if any, by the Calculation Agent to reduce the effect of momentary disparities in the prices of the Share or Shares and the ADR or ADRs, as appropriate. The quotations used to determine the Spot Rate for a Rate Calculation Date will be determined in each case at the Specified Time on the Rate Calculation Date or, if no such time is specified, the time chosen by the Calculation Agent."> - CURRENCY_IMPLIED_RATE__LOCAL_ASSET__CURA2 displayName "CURRENCY-IMPLIED.RATE.(LOCAL.ASSET)/CURA2" <"The Spot Rate for a Rate Calculation Date will be the Reference Currency/Settlement Currency exchange rate, expressed as the amount of Reference Currency per one unit of Settlement Currency, determined on the basis of quotations provided by Reference Dealers on that Rate Calculation Date for that day's price of Local Assets. The Calculation Agent will request each of the Reference Dealers to provide a firm quotation of its bid and offer price (in both the Reference Currency and the Settlement Currency) for an amount of Local Assets whose face value equals the Specified Amount. If one or more quotations are provided, the rate for a Rate Calculation Date will equal the ratio of (A) the arithmetic mean of the midpoint of the bid and offer prices quoted in the Reference Currency by each Reference Dealer for such Local Assets and (B) the arithmetic mean of the midpoint of the bid and offer prices quoted in the Settlement Currency by each Reference Dealer for such Local Assets. The quotations used to determine the Spot Rate for a Rate Calculation Date will be determined in each case at the Specified Time on the Rate Calculation Date or, if no such time is specified, the time chosen by the Calculation Agent."> - CURRENCY_MUTUAL_AGREEMENT_CURA3 displayName "CURRENCY-MUTUAL.AGREEMENT/CURA3" <"The Spot Rate for a Rate Calculation Date will be the Reference Currency/Settlement Currency Specified Rate, expressed as the amount of the Reference Currency per one unit of Settlement Currency, for settlement on the Settlement Date agreed upon by the parties on or prior to that Rate Calculation Date (or, if different, the day on which rates for that date would, in the ordinary course, be published or announced)."> - CURRENCY_REFERENCE_DEALERS_CURA4 displayName "CURRENCY-REFERENCE.DEALERS/CURA4" <"The Spot Rate for a Rate Calculation Date will be determined on the basis of quotations provided by Reference Dealers on that Rate Calculation Date of that day's Specified Rate, expressed as the amount of Reference Currency per one unit of Settlement Currency, for settlement on the Settlement Date. The Calculation Agent will request the Specified Office of each of the Reference Dealers to provide a firm quotation of its Specified Rate for a transaction where the amount of Reference Currency equals the Specified Amount. If four quotations are provided, the rate for a Rate Calculation Date will be the arithmetic mean of the Specified Rates, without regard to the Specified Rates having the highest and lowest value. If exactly three quotations are provided, the rate for a Rate Calculation Date will be the Specified Rate provided by the Reference Dealer that remains after disregarding the Specified Rates having the highest and lowest values. For this purpose, if more than one quotation has the same highest value or lowest value, then the Specified Rate of one of such quotations shall be disregarded. If exactly two quotations are provided, the rate for a Rate Calculation Date will be the arithmetic mean of the Specified Rates. If only one quotation is provided, the rate for a Rate Calculation Date will be the Specified Rate quoted by that Reference Dealer. The quotations used to determine the Spot Rate for a Rate Calculation Date will be determined in each case at the Specified Time on that Rate Calculation Date or, if no such time is specified, the time chosen by the Calculation Agent."> - CURRENCY_WHOLESALE_MARKET_CURA5 displayName "CURRENCY-WHOLESALE.MARKET/CURA5" <"The Spot Rate for a Rate Calculation Date will be determined by the Calculation Agent on the basis of that day's Specified Rate, expressed as the amount of Reference Currency per one unit of Settlement Currency, in a legal and customary wholesale market in which there is no, or minimal, Governmental Authority controls or interference, except as a participant in such market."> - ECS_DNRP_ECS01 displayName "ECS.DNRP/ECS01" <"The Spot Rate for a Rate Calculation Date will be the Ecuadorian Sucre/U.S. Dollar Specified Rate, expressed as the amount of Ecuadorian Sucres per one U.S. Dollar, for settlement in one Business Day (where such day is a Business Day in Guayaquil and New York) which appears on Reuters Screen DNRP Page at 12:00 noon, Guayaquil time, on that Rate Calculation Date."> - IDR_ABS_IDR01 displayName "IDR.ABS/IDR01" <"The Spot Rate for a Rate Calculation Date will be the Indonesian Rupiah/U.S. Dollar spot rate at 11:00 a.m., Singapore time, expressed as the amount of Indonesian Rupiah per one U.S. Dollar, for settlement in two Business Days, reported by the Association of Banks in Singapore which appears on the Telerate Page 50157 to the right of the caption 'Spot' under the column 'IDR' at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> - IDR_JISDOR_IDR04 displayName "IDR.JISDOR/IDR04" <"The Spot Rate for a Rate Calculation Date will be the Indonesian Rupiah/U.S. Dollar weighted average spot rate in the interbank market based on traded IDR/USD spot foreign exchange transactions during a specified time period which are captured on a real time basis, expressed as the amount of Indonesian Rupiah per one U.S. Dollar, for settlement in two Business Days, published by Bank Indonesia at approximately 10:00 a.m., Jakarta time, on that Rate Calculation Date as the Jakarta Interbank Spot Dollar Rate USD - IDR on Bank Indonesia's website or otherwise made available by Bank Indonesia (or its successor as administrator)."> - IDR_SFEMC_INDICATIVE_SURVEY_RATE_IDR02 displayName "IDR.SFEMC.INDICATIVE.SURVEY.RATE/IDR02" <"The Spot Rate for a Rate Calculation Date will be the Indonesian Rupiah/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Indonesian Rupiah per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m., Singapore time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC IDR Indicative Survey Methodology (which means a methodology, dated as of December 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Indonesian Rupiah/U.S. Dollar markets for the purpose of determining the SFEMC IDR Indicative Survey Rate)."> - IDR_VWAP_IDR03 displayName "IDR.VWAP/IDR03" <"The Spot Rate for a Rate Calculation Date will be the Indonesian Rupiah/U.S. Dollar implied spot rate expressed as the amount of Indonesian Rupiah per one U.S. Dollar, for settlement in two Business Days, reported by ABS Benchmarks Administration Co Pte. Ltd. (or its successor as administrator or sponsor of that rate), which appears on Thomson Reuters Screen ABSFIX01 Page at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> - ILS_BOIJ_ILS01 displayName "ILS.BOIJ/ILS01" <"The Spot Rate for a Rate Calculation Date will be the Israeli Shekel/U.S. Dollar Specified Rate, expressed as the amount of Israeli Shekels per one U.S. Dollar, for settlement in two Business Days which appears on the Reuters Screen BOIJ Page as of 1:00 p.m., Tel Aviv time, on that Rate Calculation Date."> - ILS_FXIL_ILS02 displayName "ILS.FXIL/ILS02" <"The Spot Rate for a Rate Calculation Date will be the Israeli Shekel/U.S. Dollar Specified Rate, expressed as the amount of Israeli Shekels per one U.S. Dollar, for settlement in two Business Days which appears on the Reuters Screen FXIL Page as of 1:00 p.m., Tel Aviv time, on that Rate Calculation Date."> - INR_FBIL_INR01 displayName "INR.FBIL/INR01" <"The Spot Rate for a Rate Calculation Date will be the Indian Rupee/U.S. Dollar reference rate, expressed as the amount of Indian Rupee per one U.S. Dollar, for settlement in two Business Days, reported by Financial Benchmarks India Pvt. Ltd. (www.fbil.org.in) at approximately 1:30 p.m., Mumbai time, or as soon thereafter as practicable, on that Rate Calculation Date."> - INR_RBIB_INR01 displayName "INR.RBIB/INR01" <"The Spot Rate for a Rate Calculation Date will be the Indian Rupee/U.S. Dollar reference rate, expressed as the amount of Indian Rupee per one U.S. Dollar, for settlement in two Business Days reported by the Reserve Bank of India which appears on the Reuters Screen RBIB Page at approximately 12:30 p.m., Mumbai time, or as soon thereafter as practicable, on that Rate Calculation Date."> - INR_SFEMC_INDICATIVE_SURVEY_RATE_INR02 displayName "INR.SFEMC.INDICATIVE.SURVEY.RATE/INR02" <"The Spot Rate for a Rate Calculation Date will be the Indian Rupee/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Indian Rupee per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m. (Singapore time), or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC INR Indicative Survey Methodology (which means a methodology, dated as of December 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Indian Rupee/U.S. Dollar markets for the purpose of determining the SFEMC INR Indicative Survey Rate)."> - KRW_KEBEY_KRW01 displayName "KRW.KEBEY/KRW01" <"The Spot Rate for a Rate Calculation Date will be the Korean Won/U.S. Dollar Specified Rate, expressed as the amount of Korean Won per one U.S. Dollar, for settlement in two Business Days which appears on the Reuters Screen KEBEY Page at the Specified Time, if any, on that Rate Calculation Date."> - KRW_KFTC18_KRW02 displayName "KRW.KFTC18/KRW02" <"The Spot Rate for a Rate Calculation Date will be the Korean Won/U.S. Dollar market average rate, expressed as the amount of Korean Won per one U.S. Dollar, for settlement in two Business Days reported by the Korea Financial Telecommunications and Clearing Corporation which appears on the Reuters Screen KFTC18 Page to the right of the caption 'USD Today' that is available at approximately 3:30 p.m., Seoul time, on the Rate Calculation Date or as soon thereafter as practicable."> - KRW_SFEMC_INDICATIVE_SURVEY_RATE_KRW04 displayName "KRW.SFEMC.INDICATIVE.SURVEY.RATE/KRW04" <"The Spot Rate for a Rate Calculation Date will be the Korean Won/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Korean Won per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m., Singapore time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC KRW Indicative Survey Methodology (which means a methodology, dated as of December 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Korean Won/U.S. Dollar markets for the purpose of determining the SFEMC KRW Indicative Survey Rate)."> - KRW_TELERATE_45644_KRW03 displayName "KRW.TELERATE.45644/KRW03" <"The Spot Rate for a Rate Calculation Date will be the Korean Won/U.S. Dollar market average rate, expressed as the amount of Korean Won per one U.S. Dollar, for settlement in two Business Days reported by the Korea Financial Telecommunications and Clearing Corporation which appears on Telerate Page 45644 to the right of the caption 'USD Today' that is available at approximately 3:30 p.m., Seoul time, on the Rate Calculation Date or as soon thereafter as practicable."> - KZT_EMTA_INDICATIVE_SURVEY_RATE_KZT02 displayName "KZT.EMTA.INDICATIVE.SURVEY.RATE/KZT02" <"The Spot Rate for a Rate Calculation Date will be the Kazakhstan Tenge / U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Kazakhstan Tenge per one U.S. Dollar, for settlement on the same Business Day, as published on EMTA's website (www.emta.org) at approximately 1:00 p.m., Almaty time, or as soon thereafter as practicable, on that Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA KZT Indicative Survey Methodology (which means a methodology, dated as of March 16, 2009, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Kazakhstan Tenge/U.S. Dollar markets for the purpose of determining the EMTA KZT Indicative Survey Rate)."> - KZT_KASE_KZT01 displayName "KZT.KASE/KZT01" <"The Spot Rate for a Rate Calculation Date will be the Kazakhstan Tenge / U.S. Dollar weighted average rate, expressed as the amount of Kazakhstan Tenge per one U.S. Dollar, for settlement on the same Business Day reported by the Kazakhstan Stock Exchange (www.kase.kz) at approximately 11:00 am, Almaty time, on that Rate Calculation Date."> - LBP_BDLX_LBP01 displayName "LBP.BDLX/LBP01" <"The Spot Rate for a Rate Calculation Date will be the Lebanese Pound/U.S. Dollar Specified Rate, expressed as the amount of Lebanese Pounds per one U.S. Dollar, for settlement in two Business Days which appears on the Reuters Screen BDLX Page as of 12:00 noon, Beirut time, on that Rate Calculation Date."> - MAD_OFFICIAL_RATE_MAD01 displayName "MAD.OFFICIAL.RATE/MAD01" <"The Spot Rate for a Rate Calculation Date will be the Moroccan Dirham/U.S. Dollar Specified Rate, expressed as the amount of Moroccan Dirham per one U.S. Dollar, for settlement in two Business Days reported by the Central Bank of Morocco as of 1:00 p.m., Rabat time, on that Rate Calculation Date."> - MXP_BNMX_MXP01 displayName "MXP.BNMX/MXP01" <"The Spot Rate for a Rate Calculation Date will be the Mexican Pesos/U.S. Dollar Specified rate, expressed as the amount of Mexican Pesos per one U.S. Dollar, for settlement in two Business Days reported by Banco de Mexico which appears on the Reuters Screen BNMX Page opposite the caption 'Fix' at the close of business in Mexico City on that Rate Calculation Date."> - MXP_FIXING_RATE_MXP02 displayName "MXP.FIXING.RATE/MXP02" <"The Spot Rate for a Rate Calculation Date will be the Mexican Peso/U.S. Dollar fixing rate, expressed as the amount of Mexican Pesos per one U.S. Dollar, for settlement in two Business Days which is published by Banco de Mexico in the Official Gazette of the Federation pursuant to the 'Disposiciones aplicables a la determinacion del tipo de Cambio para solventar obligaciones denominadas en moneda extranjera pagaderas en la Republica Mexicana' (Rules applicable to determine the exchange rate to pay obligations denominated in foreign currency payable in Mexico) on the first Business Day following that Rate Calculation Date."> - MXP_MEX01_MXP03 displayName "MXP.MEX01/MXP03" <"The Spot Rate for a Rate Calculation Date will be the Mexican Peso/U.S. Dollar fixing rate, expressed as the amount of Mexican Pesos per one U.S. Dollar, for settlement in two Business Days reported by Banco de Mexico which appears on Reuters Screen MEX01 Page under the heading 'MXNFIX=RR', at the close of business in Mexico City on that Rate Calculation Date."> - MXP_PUBLISHED_MXP04 displayName "MXP.PUBLISHED/MXP04" <"The Spot Rate for a Rate Calculation Date will be the Mexican Peso/U.S. Dollar fixing rate, expressed as the amount of Mexican Pesos per one U.S. Dollar, for settlement in two Business Days which is published by the Bolsa Mexicana de Valores, S.A. de C.V. (as established in Section 2 of the 'Resolution concerning the exchange rate applicable for calculating the Mexican Peso equivalent of principal and interest of Mexican Treasury Notes denominated in foreign currency and payable in Mexican Pesos' published in the Diario Oficial de la Federacion on November 11, 1991) in the Movimiento Diario del Mercado de Valores de la Bolsa Mexicana de Valores, S.A. de C.V. under the heading 'Movimiento Diario del Mercado de Valores' on that Rate Calculation Date."> - MYR_ABS_MYR01 displayName "MYR.ABS/MYR01" <"The Spot Rate for a Rate Calculation Date will be the Malaysian Ringgit/U.S. Dollar spot rate at 11:00 a.m., Singapore time, expressed as the amount of Malaysian Ringgit per one U.S. Dollar, for settlement in two Business Days, reported by the Association of Banks in Singapore, which appears on the Telerate Page 50157 to the right of the caption 'Spot' under the column 'MYR' at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> - MYR_KL_REF_MYR04 displayName "MYR.KL.REF/MYR04" <"The Spot Rate for a Rate Calculation Date will be the Malaysian Ringgit/U.S. Dollar reference rate, expressed as the amount of Malaysian Ringgit per one U.S. Dollar, for settlement in two Business Days, calculated and reported by Bank Negara Malaysia as its Kuala Lumpur USD/MYR Reference Rate, which appears on Thomson Reuters Screen MYRFIX2 Page at approximately 3:30 p.m., Kuala Lumpur time, on that Rate Calculation Date."> - MYR_PPKM_MYR03 displayName "MYR.PPKM/MYR03" <"The Spot Rate for a Rate Calculation Date will be the Malaysian Ringgit/U.S. Dollar spot rate expressed as the amount of Malaysian Ringgit per one U.S. Dollar, for settlement in two Business Days, reported by Persatuan Pasaran Kewangan Malaysia (ACI - Malaysia), which appears on Thomson Reuters Screen MYRFIX2 Page at approximately 11:10 a.m., Kuala Lumpur time, on that Rate Calculation Date."> - MYR_SFEMC_INDICATIVE_SURVEY_RATE_MYR02 displayName "MYR.SFEMC.INDICATIVE.SURVEY.RATE/MYR02" <"The Spot Rate for a Rate Calculation Date will be the Malaysian Ringgit/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Malaysian Ringgit per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m., Singapore time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC MYR Indicative Survey Methodology (which means a methodology, dated as of July 15, 2005, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Malaysian Ringgit/U.S. Dollar markets for the purpose of determining the SFEMC MYR Indicative Survey Rate)."> - PEN_EMTA_INDICATIVE_SURVEY_RATE_PEN04 displayName "PEN.EMTA.INDICATIVE.SURVEY.RATE/PEN04" <"The Spot Rate for a Rate Calculation Date will be the Peruvian Sol/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Peruvian Soles per one U.S. Dollar, for settlement on the same day, as published on EMTA's web site (www.emta.org) at approximately 11:00 a.m., Lima time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA PEN Indicative Survey Methodology (which means a methodology, dated as of August 1, 2006, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Peruvian Sol/U.S. Dollar markets for the purpose of determining the EMTA PEN Indicative Survey Rate)."> - PEN_INTERBANK_AVE_PEN05 displayName "PEN.INTERBANK.AVE/PEN05" <"The Spot Rate for a Rate Calculation Date will be the Peruvian Sol/U.S. Dollar average exchange rate in the interbank market expressed as the amount of Peruvian New Soles per one U.S. Dollar for settlement on the same day reported by the Banco Central de Reserva del Peru (www.bcrp.gob.pe) as the 'Tipo de Cambio Interbancario Promedio' at approximately 2:00 p.m., Lima time, on that Rate Calculation Date."> - PEN_PDSB_PEN01 displayName "PEN.PDSB/PEN01" <"The Spot Rate for a Rate Calculation Date will be the Peruvian Sol/U.S. Dollar fixing rate (mid market last), expressed as the amount of Peruvian Sols per one U.S. Dollar, for settlement on that same day which appears on the Reuters Screen PDSB Page opposite the caption 'PEN=' as of 12:00 noon, Lima time, on that Rate Calculation Date."> - PEN_WT_AVE_PEN03 displayName "PEN.WT.AVE/PEN03" <"The Spot Rate for a Rate Calculation Date will be the midpoint of the Peruvian Sol/U.S. Dollar closing weighted average bid and offer ('compra y venta') exchange rates expressed as the amount of Peruvian New Soles per one U.S. Dollar for settlement on the same day, reported by the Superintendencia de Banca, Seguros y AFP (www.sbs.gob.pe) of the Republic of Peru at approximately 5:00 p.m., Lima time, on that Rate Calculation Date."> - PHP_BAPPESO_PHP06 displayName "PHP.BAPPESO/PHP06" <"The Spot Rate for a Rate Calculation Date will be the Philippine Peso/U.S. Dollar morning weighted average rate for that Rate Calculation Date, expressed as the amount of Philippine Pesos per one U.S. Dollar, for settlement in one Business Day, sponsored by Bankers Association of the Philippines (www.bap.org.ph) as its 'BAP AM Weighted Average Rate' at approximately 11:30 a.m., Manila time, or as soon thereafter as practicable, on that Rate Calculation Date."> - PHP_PDSPESO_PHP06 displayName "PHP.PDSPESO/PHP06" <"The Spot Rate for a Rate Calculation Date will be the Philippine Peso/U.S. Dollar morning weighted average rate for that Rate Calculation Date, expressed as the amount of Philippine Pesos per one U.S. Dollar, for settlement in one Business Day reported by the Philippine Dealing System PDEX which appears on the Reuters Screen PDSPESO Page to the right of the caption 'AM WT AVE' at approximately 11:30 a.m., Manila time, or as soon thereafter as practicable, on that Rate Calculation Date."> - PHP_PHPESO_PHP01 displayName "PHP.PHPESO/PHP01" <"The Spot Rate for a Rate Calculation Date will be the Philippine Peso/U.S. Dollar tom rate (mid market), expressed as the amount of Philippine Pesos per one U.S. Dollar, for settlement in one Business Day which appears on the Reuters Screen PHPESO Page at approximately 11:00 a.m., Manila time, on that Rate Calculation Date."> - PHP_SFEMC_INDICATIVE_SURVEY_RATE_PHP05 displayName "PHP.SFEMC.INDICATIVE.SURVEY.RATE/PHP05" <"The Spot Rate for a Rate Calculation Date will be the Philippine Peso/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Philippine Pesos per one U.S. Dollar, for settlement in one Business Day, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m., Singapore time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC PHP Indicative Survey Methodology (which means a methodology, dated as of December 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Philippine Peso/U.S. Dollar markets for the purpose of determining the SFEMC PHP Indicative Survey Rate)."> - PHP_TELERATE_15439_PHP03 displayName "PHP.TELERATE.15439/PHP03" <"The Spot Rate for a Rate Calculation Date will be the Philippine Peso/U.S. Dollar tom rate (mid market), expressed as the amount of Philippine Pesos per one U.S. Dollar, for settlement in one Business Day which appears on the Telerate Page 15439 at approximately 11:00 a.m., Manila time, on that Rate Calculation Date."> - PHP_TELERATE_2920_PHP02 displayName "PHP.TELERATE.2920/PHP02" <"The Spot Rate for a Rate Calculation Date will be the Philippine Peso/U.S. Dollar Specified Rate, expressed as the amount of Philippine Pesos per one U.S. Dollar, for settlement in one Business Day which appears on the Telerate Page 2920 at the Specified Time, if any, on that Rate Calculation Date."> - PKR_SBPK_PKR01 displayName "PKR.SBPK/PKR01" <"The Spot Rate for a Rate Calculation Date will be the Pakistani Rupee/U.S. Dollar reference rate expressed as the amount of Pakistani Rupees per one U.S. Dollar, for settlement in two Business Days reported by the State Bank of Pakistan (www.sbp.org.pk) at approximately 2:30 pm, Karachi time, on that Rate Calculation Date."> - PKR_SFEMC_INDICATIVE_SURVEY_RATE_PKR02 displayName "PKR.SFEMC.INDICATIVE.SURVEY.RATE/PKR02" <"The Spot Rate for a Rate Calculation Date will be the Pakistani Rupee/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Pakistani Rupees per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m. Singapore time, or as soon thereafter as practicable, on that Rate Calculation Date. The Spot Rate shall be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC PKR Indicative Survey Methodology (which means a methodology, dated as of July 14, 2008, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Pakistani Rupee/U.S. Dollar markets for the purpose of determining the SFEMC PKR Indicative Survey Rate)."> - PLZ_NBPQ_PLZ01 displayName "PLZ.NBPQ/PLZ01" <"The Spot Rate for a Rate Calculation Date will be the Polish Zloty/U.S. Dollar Specified Rate, expressed as the amount of Polish Zloty per one U.S. Dollar, for settlement in two Business Days reported by the National Bank of Poland which appears on the Reuters Screen NBPQ Page at the Specified Time, if any, on that Rate Calculation Date."> - PLZ_NBPR_PLZ02 displayName "PLZ.NBPR/PLZ02" <"The Spot Rate for a Rate Calculation Date will be the Polish Zloty/U.S. Dollar fixing rate, expressed as the amount of Polish Zloty per one U.S. Dollar, for settlement in two Business Days reported by the National Bank of Poland which appears on the Reuters Screen NBPR Page at the Specified Time, if any, on that Rate Calculation Date."> - RUB_CME_EMTA_RUB03 displayName "RUB.CME-EMTA/RUB03" <"The Spot Rate for a Rate Calculation Date will be the Russian Ruble/U.S. Dollar Specified Rate, expressed as the amount of Russian Rubles per one U.S. Dollar, for settlement in one Business Day, calculated by the Chicago Mercantile Exchange ('CME') and as published on CME's website, which appears on the Reuters Screen EMTA Page, at approximately 1:30 p.m., Moscow time, on that Rate Calculation Date. The Spot Rate shall be calculated by the CME pursuant to the Chicago Mercantile Exchange / EMTA, Inc. Daily Russian Ruble Per U.S. Dollar Reference Rate Methodology (which means a methodology, effective as of June 16, 2005, as amended from time to time, for a centralized industry-wide survey of financial institutions in Russia that are active participants in the Russian Ruble/U.S. Dollar spot market for the purpose of determining the RUB CME-EMTA Rate)."> - RUB_EMTA_INDICATIVE_SURVEY_RATE_RUB04 displayName "RUB.EMTA.INDICATIVE.SURVEY.RATE/RUB04" <"The Spot Rate for a Rate Calculation Date will be the Russian Ruble/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Russian Rubles per one U.S. Dollar, for settlement in one Business Day, as published on EMTA's web site (www.emta.org) at approximately 2:45 p.m., Moscow time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA RUB Indicative Survey Methodology (which means a methodology dated as of June 16, 2005, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Russian Ruble/U.S. Dollar spot market for the purpose of determining the EMTA RUB Indicative Survey Rate)."> - RUB_MICEXFRX_RUB01 displayName "RUB.MICEXFRX/RUB01" <"The Spot Rate for a Rate Calculation Date will be the Russian Ruble/U.S. Dollar Specified Rate, expressed as the amount of Russian Rubies per one U.S. Dollar, for settlement on the same day reported by the Moscow Interbank Currency Exchange which appears on the Reuters Screen MICEXFRX Page as of 10:30 a.m., Moscow time, on that Rate Calculation Date."> - RUB_MMVB_RUB02 displayName "RUB.MMVB/RUB02" <"The Spot Rate for a Rate Calculation Date will be the Russian Ruble/U.S. Dollar Specified Rate, expressed as the amount of Russian Rubies per one U.S. Dollar, for settlement on the same day reported by the Moscow Interbank Currency Exchange which appears on the Reuters Screen MMVB Page as of 10:30 a.m., Moscow time, on that Rate Calculation Date."> - SGD_VWAP_SGD3 displayName "SGD.VWAP/SGD3" <"The Spot Rate for a Rate Calculation Date will be the Singapore Dollar/U.S. Dollar spot rate expressed as the amount of Singapore Dollar per one U.S. Dollar for settlement in two Business Days, reported by ABS Benchmarks Administration Co Pte. Ltd. (or its successor as administrator or sponsor of the rate), which appears on Thomson Reuters Screen ABSFIX01 Page at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> - SKK_NBSB_SKK01 displayName "SKK.NBSB/SKK01" <"The Spot Rate for a Rate Calculation Date will be the Slovak Koruna/U.S. Dollar Specified Rate, expressed as the amount of Slovak Koruna per one U.S. Dollar, for settlement in two Business Days reported by the National Bank of Slovakia which appears on the Reuters Screen NBSB Page as of 11:40 a.m., Bratislava time, on that Rate Calculation Date."> - THB_ABS_THB01 displayName "THB.ABS/THB01" <"The Spot Rate for a Rate Calculation Date will be the Thai Baht/U.S. Dollar spot rate at 11:00 a.m., Singapore time, expressed as the amount of Thai Bhaht per one U.S. Dollar, for settlement in two Business Days, reported by the Association of Banks in Singapore which appears on the Reuters Screen ABSIRFIX01 Page to the right of the caption 'Spot' under the column 'THB' at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> - THB_VWAP_THB01 displayName "THB.VWAP/THB01" <"The Spot Rate for a Rate Calculation Date will be the Thai Baht / U.S. Dollar spot rate expressed as the amount of Thai Baht per one U.S. Dollar for settlement in two Business Days, reported by ABS Benchmarks Administration Co Pte. Ltd. (or its successor as administrator or sponsor of the rate), which appears on Thomson Reuters Screen ABSFIX01 Page at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> - TWD_SFEMC_INDICATIVE_SURVEY_RATE_TWD04 displayName "TWD.SFEMC.INDICATIVE.SURVEY.RATE/TWD04" <"The Spot Rate for a Rate Calculation Date will be the Taiwanese Dollar/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Taiwanese Dollars per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m., Singapore time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC TWD Indicative Survey Methodology (which means a methodology, dated as of December 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Taiwanese Dollar/U.S. Dollar markets for the purpose of determining the SFEMC TWD Indicative Survey Rate)."> - TWD_TAIFX1_TWD03 displayName "TWD.TAIFX1/TWD03" <"The Spot Rate for a Rate Calculation Date will be the Taiwanese Dollar/U.S. Dollar spot rate, expressed as the amount of Taiwanese Dollars per one U.S. Dollar, for settlement in two Business Days, reported by the Taipei Forex Inc. which appears on the Reuters Screen TAIFX1 Page under the heading 'Spot' as of 11:00 a.m. Taipei time, on that Rate Calculation Date, or if no rate appears as of 11:00 a.m., Taipei time, the rate that first appears in any of the next succeeding 15 minute intervals after such time, up to and including 12:00 noon, Taipei time on that Rate Calculation Date."> - TWD_TELERATE_6161_TWD01 displayName "TWD.TELERATE.6161/TWD01" <"The Spot Rate for a Rate Calculation Date will be the Taiwanese Dollar/U.S. Dollar spot rate, expressed as the amount of Taiwanese Dollars per one U.S. Dollar, for settlement in two Business Days, reported by the Taipei Forex Inc. which appears on the Telerate Page 6161 under the heading 'Spot' as of 11:00 a.m., Taipei time, on that Rate Calculation Date, or if no rate appears as of 11:00 a.m., Taipei time, the rate that first appears in any of the next succeeding 15 minute intervals after such time, up to and including 12:00 noon, Taipei time, on that Rate Calculation Date."> - TWD_TFEMA_TWD02 displayName "TWD.TFEMA/TWD02" <"The Spot Rate for a Rate Calculation Date will be the Taiwanese Dollar/U.S. Dollar Specified Rate, expressed as the amount of Taiwanese Dollars per one U.S. Dollar, for settlement in two Business Days which appears on the Reuters Screen TFEMA Page as of 11:00 a.m., Taipei time, on that Rate Calculation Date."> - UAH_EMTA_INDICATIVE_SURVEY_RATE_UAH03 displayName "UAH.EMTA.INDICATIVE.SURVEY.RATE/UAH03" <"The Spot Rate for a Rate Calculation Date will be the Ukrainian Hryvnia/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Ukrainian Hryvnia per one U.S. Dollar, for settlement on the same Business Day, as published on EMTA's website (www.emta.org) at approximately 2:00 p.m., Kiev time, or as soon thereafter as practicable, on that Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA UAH Indicative Survey Methodology (which means a methodology, dated as of March 16, 2009, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Ukrainian Hryvnia / U.S. Dollar markets for the purpose of determining the EMTA UAH Indicative Survey Rate)."> - UAH_EMTA_INDUSTRY_SURVEY_RATE_UAH02 displayName "UAH.EMTA.INDUSTRY.SURVEY.RATE/UAH02" <"The Spot Rate for a Rate Calculation Date will be the Ukrainian Hryvnia/U.S. Dollar Specified Rate for U.S. Dollars expressed as the amount of Ukrainian Hryvnia per one U.S. Dollar, for settlement on the same Business Day calculated by Thomson Reuters pursuant to the EMTA UAH Industry Survey Methodology, which rate appears on EMTA's website (www.emta.org) and on Thomson Reuters Page EMTAUAHFIX at approximately 11:30 am, Kiev time, on that Rate Calculation Date. The 'EMTA UAH Industry Survey Methodology' as used herein means the methodology dated as of March 16, 2009, for a centralized industry wide survey of financial institutions in the Ukrainian Hryvnia/U.S. Dollar spot market for the purposes of determining the EMTA UAH Industry Survey Rate."> - UAH_GFI_UAH01 displayName "UAH.GFI/UAH01" <"The Spot Rate for a Rate Calculation Date will be the Ukrainian Hryvnia/U.S. Dollar spot rate, expressed as the amount of Ukrainian Hryvnia per one U.S. Dollar, for settlement on the same Business Day reported by GFI Brokers on Thomson Reuters Page GFIU by 9:30 am, London time, on that Rate Calculation Date."> - VEF_FIX_VEF01 displayName "VEF.FIX/VEF01" <"The Spot Rate for a Rate Calculation Date will be the midpoint of the Venezuelan Bolivar /U.S. Dollar Tipo de Cambio De Referencia buying and selling rates, expressed as the amount of Venezuelan Bolivar per one U.S. Dollar, for settlement in two Business Days reported by the Banco Central de Venezuela (www.bcv.org.ve) at approximately 5:00 p.m., Caracas time, on that Rate Calculation Date."> - VND_ABS_VND01 displayName "VND.ABS/VND01" <"The Spot Rate for a Rate Calculation Date will be the Vietnamese Dong/U.S. Dollar spot rate at 11:00 a.m., Singapore time, expressed as the amount of Vietnamese Dong per one U.S. Dollar, for settlement in two Business Days reported by the Association of Banks in Singapore, which appears on the Reuters Screen ABSIRFIX01 Page to the right of the caption 'Spot' under the column 'VND' at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> - VND_FX_VND02 displayName "VND.FX/VND02" <"The Spot Rate for a Rate Calculation Date will be the Vietnamese Dong/U.S. Dollar spot rate expressed as the amount of Vietnamese Dong per one U.S. Dollar, for settlement in two Business Days which appears on Reuters Screen VNDFIX=VN Page under the caption 'Spot' and to the right of the caption 'Average' at approximately 11:00 am, Hanoi time, on that Rate Calculation Date."> - VND_SFEMC_INDICATIVE_SURVEY_RATE_VND03 displayName "VND.SFEMC.INDICATIVE.SURVEY.RATE/VND03" <"The Spot Rate for a Rate Calculation Date will be the Vietnamese Dong/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Vietnamese Dong per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m., Singapore time, or as soon as thereafter as practicable, on that Rate Calculation Date. The Spot Rate shall be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC VND Indicative Survey Methodology (which means a methodology, dated as of July 14, 2008, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Vietnamese Dong/U.S. Dollar markets for the purpose of determining the SFEMC VND Indicative Survey Rate)."> + ARS_BNAR_ARS01 displayName "ARS.BNAR/ARS01" <"The Spot Rate for a Rate Calculation Date will be the Argentine Peso/U.S. Dollar Specified Rate, expressed as the amount of Argentine Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Buenos Aires and New York) which appears on the Reuters Screen BNAR Page at the close of business in Buenos Aires on that Rate Calculation Date."> + ARS_EMTA_INDICATIVE_SURVEY_RATE_ARS04 displayName "ARS.EMTA.INDICATIVE.SURVEY.RATE/ARS04" <"The Spot Rate for a Rate Calculation Date will be the Argentine Peso/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Argentine Pesos per one U.S. Dollar, for settlement on the same day, as published on EMTA's web site (www.emta.org) at approximately 1:00 p.m. (Buenos Aires time), or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA ARS Indicative Survey Methodology (which means a methodology, dated as of January 2, 2003, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Argentine Peso/U.S. Dollar markets for the purpose of determining the EMTA ARS Indicative Survey Rate)."> + ARS_EMTA_INDUSTRY_SURVEY_RATE_ARS03 displayName "ARS.EMTA.INDUSTRY.SURVEY.RATE/ARS03" <"The Spot Rate for a Rate Calculation Date will be the Argentine Peso/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Argentine Pesos per one U.S. Dollar, for settlement on the same day, as published on EMTA's web site (www.emta.org) at approximately 1:00 p.m. (Buenos Aires time), or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA ARS Industry Survey Methodology (which means a methodology, dated as of January 2, 2003, as amended from time to time, for a centralized industry-wide survey of financial institutions in Buenos Aires that are active participants in the Argentine Peso/U.S. Dollar spot markets for the purpose of determining the EMTA ARS Industry Survey Rate)."> + ARS_MAE_ARS05 displayName "ARS.MAE/ARS05" <"The Spot Rate for a Rate Calculation Date will be the volume weighted average Argentine Peso/U.S. Dollar Rate of all trades executed in the electronic market for a Rate Calculation Day expressed as the amount of Argentine Pesos per one U.S. Dollar, for settlement on the same day, reported by the Mercado Abierto Electronico (the 'MAE') at approximately 3:00 pm, Buenos Aires time, and published on the FOREX-MAE Page as the 'PPN' rate ('Promedio Ponderado Noticiado') on www.mae.com.ar on that Rate Calculation Date."> + ARS_OFFICIAL_RATE_ARS02 displayName "ARS.OFFICIAL.RATE/ARS02" <"The Spot Rate for a Rate Calculation Date will be the Argentine Peso/U.S. Dollar offered rate for U.S. Dollars, expressed as the amount of Argentine Pesos per one U.S. Dollar, for settlement on the same day quoted by Banco de la Nacion (in accordance with the Convertibility Law of March 27, 1991 and Regulatory Decree No. 529/91 of April 1, 1991, as may be amended from time to time) for that Rate Calculation Date."> + BRL_BRBY_BRL01 displayName "BRL.BRBY/BRL01" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar Specified Rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) which appears on the Reuters Screen BRBY Page under the caption 'INTBK FLTING (LAST)' at approximately 11:00 a.m., Sao Paulo time, on that Rate Calculation Date."> + BRL_EMTA_INDICATIVE_SURVEY_RATE_BRL13 displayName "BRL.EMTA.INDICATIVE.SURVEY.RATE/BRL13" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days, as published on EMTA's web site (www.emta.org) at approximately 12:00 p.m. (Sao Paulo time), or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA BRL Indicative Survey Methodology (which means a methodology, dated as of March 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Brazilian Real/U.S. Dollar markets for the purpose of determining the EMTA BRL Indicative Survey Rate)."> + BRL_EMTA_INDUSTRY_SURVEY_RATE_BRL12 displayName "BRL.EMTA.INDUSTRY.SURVEY.RATE/BRL12" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days, as published on EMTA's web site (www.emta.org) at approximately 3:45 p.m. (Sao Paulo time), or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA BRL Industry Survey Methodology (which means a methodology, dated as of March 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions in Brazil that are active participants in the Brazilian Real/U.S. Dollar spot markets for the purpose of determining the EMTA BRL Industry Survey Rate)."> + BRL_OFFICIAL_RATE_BRL02 displayName "BRL.OFFICIAL.RATE/BRL02" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar Specified Rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil in the 'Diario Oficial da Uniao' on the first Business Day following that Rate Calculation Date."> + BRL_PCOT_COMMERCIAL_BRL03 displayName "BRL.PCOT-COMMERCIAL/BRL03" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar commercial rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil on SISBACEN Data System under transaction code PCOT- 390, Option 3, at the Specified Time, if any, on that Rate Calculation Date."> + BRL_PCOT_FLOATING_BRL04 displayName "BRL.PCOT-FLOATING/BRL04" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar floating rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil on SISBACEN Data System under transaction code PCOT- 390, Option 3, at the Specified Time, if any, on that Rate Calculation Date."> + BRL_PTAX_BRL09 displayName "BRL.PTAX/BRL09" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar offered rate for U.S. Dollars, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days reported by the Banco Central do Brasil on SISBACEN Data System under transaction code PTAX-800 ('Consulta de Cambio' or Exchange Rate Inquiry), Option 5 ('Cotacoes para Contabilidade' or 'Rates for Accounting Purposes') by approximately 6:00 p.m., Sao Paulo time, on that Rate Calculation Date."> + BRL_PTAX_COMMERCIAL_BRL05 displayName "BRL.PTAX-COMMERCIAL/BRL05" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar commercial rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil on SISBACEN Data System under transaction code PTAX- 800 ('Consultas de Cambio' or Exchange Rate Inquiry), Option 5 ('Cotacoes para Contabilidad' or Rates for Accounting Purposes) market type 'L' (corresponding to U.S. Dollars traded in the foreign exchange market segment officially denominated 'Livre' and commonly known as 'Comercial') as of 7:30 p.m., Sao Paulo time, on that Rate Calculation Date."> + BRL_PTAX_COMMERCIAL_BRFR_BRL06 displayName "BRL.PTAX-COMMERCIAL.BRFR/BRL06" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar commercial rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil which appears on the Reuters Screen BRFR Page at PTAX-800 as of 11:00 a.m., Sao Paulo time, on the first Business Day following that Rate Calculation Date. 23"> + BRL_PTAX_FLOATING_BRL07 displayName "BRL.PTAX-FLOATING/BRL07" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar floating rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil on SISBACEN Data System under transaction code PTAX- 800 ('Consultas de Cambio' or Exchange Rate Inquiry), Option 5 ('Cotacoes para Contabilidad' or Rates for Accounting Purposes) market type 'F' (corresponding to U.S. Dollars traded in the foreign exchange market segment officially denominated 'Flutuante') as of 7:30 p.m., Sao Paulo time, on that Rate Calculation Date."> + BRL_PTAX_FLOATING_BRFR_BRL08 displayName "BRL.PTAX-FLOATING.BRFR/BRL08" <"The Spot Rate for a Rate Calculation Date will be the Brazilian Real/U.S. Dollar floating rate, expressed as the amount of Brazilian Reais per one U.S. Dollar, for settlement in two Business Days (where such days are Business Days in both Sao Paulo and New York) reported by the Banco Central do Brasil on the SISBACEN Data System which appears on the Reuters Screen BRFR Page at PTAX-800 as of 11:00 a.m., Sao Paulo time, on the first Business Day following that Rate Calculation Date."> + CLP_BCCH_CLP01 displayName "CLP.BCCH/CLP01" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar observado rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) reported by the Banco Central de Chile which appears on the Reuters Screen BCCH Page under the caption 'OBSERVADO' at 10:00 a.m., Santiago time, on the first Business Day following that Rate Calculation Date."> + CLP_CHILD_INFORMAL_CLP02 displayName "CLP.CHILD-INFORMAL/CLP02" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar informal rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) of the informal exchange market which appears on the Reuters Screen CHILD Page at the Specified Time, if any, on that Rate Calculation Date."> + CLP_CHILD_INTERBANK_CLP03 displayName "CLP.CHILD-INTERBANK/CLP03" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar interbank rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) reported by the Banco Central de Chile for the formal exchange market which appears on the Reuters Screen CHILD Page at the Specified Time, if any, on that Rate Calculation Date."> + CLP_CHILD_OBSERVADO_CLP04 displayName "CLP.CHILD-OBSERVADO/CLP04" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar observado rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) reported by the Banco Central de Chile which appears on the Reuters Screen CHILD Page on the first Business Day following that Rate Calculation Date."> + CLP_CHILG_INFORMAL_CLP05 displayName "CLP.CHILG-INFORMAL/CLP05" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar informal rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) of the informal exchange market which appears on the Reuters Screen CHILG Page at the Specified Time, if any, on that Rate Calculation Date."> + CLP_CHILG_INTERBANK_CLP06 displayName "CLP.CHILG-INTERBANK/CLP06" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar interbank rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) reported by the Banco Central de Chile for the formal exchange market which appears on the Reuters Screen CHILG Page at the Specified Time, if any, on that Rate Calculation Date."> + CLP_CHILG_OBSERVADO_CLP07 displayName "CLP.CHILG-OBSERVADO/CLP07" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar observado rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) reported by the Banco Central de Chile which appears on the Reuters Screen CHILG Page under 'OBSERVADO' at the Specified Time, if any, on the first Business Day following that Rate Calculation Date."> + CLP_DOLAR_OBS_CLP10 displayName "CLP.DOLAR.OBS/CLP10" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar 'observado' rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement in one Business Day reported by the Banco Central de Chile (www.bcentral.cl) as the 'Dolar Observado' (Dollar Observado) rate by not later than 10:30 a.m., Santiago time, on the first Business Day following that Rate Calculation Date."> + CLP_EMTA_INDICATIVE_SURVEY_RATE_CLP11 displayName "CLP.EMTA.INDICATIVE.SURVEY.RATE/CLP11" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day, as published on EMTA's web site (www.emta.org) at approximately 11:00 a.m., Santiago time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA CLP Indicative Survey Methodology (which means a methodology, dated as of August 1, 2006, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Chilean Peso/U.S. Dollar markets for the purpose of determining the EMTA CLP Indicative Survey Rate)."> + CLP_OFFICIAL_RATE_CLP08 displayName "CLP.OFFICIAL.RATE/CLP08" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar Specified Rate, expressed as the amount of Chilean Pesos per one U.S. Dollar (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York), calculated in accordance with Title I, Chapter 1 Number 6 of the Compendium of International Exchange Norms of the Banco Central de Chile and published by the Banco Central de Chile at the Specified Time, if any, on the first Business Day following that Rate Calculation Date."> + CLP_TELERATE_38942_CLP09 displayName "CLP.TELERATE.38942/CLP09" <"The Spot Rate for a Rate Calculation Date will be the Chilean Peso/U.S. Dollar observado rate, expressed as the amount of Chilean Pesos per one U.S. Dollar, for settlement on the same day (or, if such day is not a Business Day in New York, for settlement on the first succeeding day that is a Business Day in both Santiago and New York) reported by the Banco Central de Chile which appears on the Telerate Page 38942 opposite the caption 'Observado' at the Specified Time, if any, on the first Business Day following the Rate Calculation Date."> + CNY_SAEC_CNY01 displayName "CNY.SAEC/CNY01" <"The Spot Rate for a Rate Calculation Date will be the Chinese Renminbi/U.S. Dollar official fixing rate, expressed as the amount of Chinese Renminbi per one U.S. Dollar, for settlement in two Business Days reported by the People's Bank of China, Beijing, People's Republic of China, which appears on the Reuters Screen 'SAEC' Page opposite the symbol 'USDCNY=' at approximately 9:15 a.m., Beijing time, on that Rate Calculation Date."> + CNY_SFEMC_INDICATIVE_SURVEY_RATE_CNY02 displayName "CNY.SFEMC.INDICATIVE.SURVEY.RATE/CNY02" <"The Spot Rate for a Rate Calculation Date will be the Chinese Renminbi/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Chinese Renminbi per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m. (Singapore time), or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC CNY Indicative Survey Methodology (which means a methodology, dated as of December 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Chinese Renminbi/U.S. Dollar markets for the purpose of determining the SFEMC CNY Indicative Survey Rate)."> + COP_CO_COL03_COP01 displayName "COP.CO/COL03/COP01" <"The Spot Rate for a Rate Calculation Date will be the Colombian Peso/U.S. Dollar fixing rate, expressed as the amount of Colombian Pesos per one U.S. Dollar, for settlement on the same day (unless such day is not a Business Day in New York, then for settlement on the first succeeding day that is a Business Day in Bogota and New York) reported by the Colombian Banking Superintendency which appears on the Reuters Screen CO/COL03 Page opposite the caption 'TRCM' ('Tasa de Cierre Representative del Mercado' or closing market price) at 12:00 noon, Bogota time, on the first Business Day following that Rate Calculation Date."> + COP_EMTA_INDICATIVE_SURVEY_RATE_COP03 displayName "COP.EMTA.INDICATIVE.SURVEY.RATE/COP03" <"The Spot Rate for a Rate Calculation Date will be the Colombian Peso/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Colombian Pesos per one U.S. Dollar, for settlement on the same day, as published on EMTA's web site (www.emta.org) at approximately 11:30 a.m., Bogota time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA COP Indicative Survey Methodology (which means a methodology, dated as of August 1, 2006, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Colombian Peso/U.S. Dollar markets for the purpose of determining the EMTA COP Indicative Survey Rate)."> + COP_TRM_COP02 displayName "COP.TRM/COP02" <"The Spot Rate for a Rate Calculation Date will be the Colombian Peso/U.S. Dollar fixing rate, expressed as the amount of Colombian Pesos per one U.S. Dollar, for settlement on the same day reported by the Colombian Financial Superintendency (www.banrep.gov.co) as the 'Tasa Representativa del Mercado (TRM)' (also referred to as the 'Tasa de Cambio Representativa del Mercado' (TCRM)) by not later than 10:30 a.m., Bogota time, on the first Business Day following that Rate Calculation Date."> + CURRENCY_IMPLIED_RATE__ADR__CURA1 displayName "CURRENCY-IMPLIED.RATE.(ADR)/CURA1" <"the Spot Rate for a Rate Calculation Date will be the Reference Currency/U.S. Dollar exchange rate, expressed as the amount of Reference Currency per one U.S. Dollar, determined on the basis of quotations provided by Reference Dealers on that Rate Calculation Date of that day's price of a Specified Company's American Depositary Receipt or American Depositary Receipts (the 'ADR' or 'ADRs', as appropriate) and the price of the local share or shares of such Specified Company of the same type and in the same quantity represented by such ADR or ADRs, as the case may be (the 'Share' or 'Shares', as appropriate). The Calculation Agent will request each of the Reference Dealers to provide a firm quotation of (A) in the case where one ADR represents less than one Share, its bid and offer price (in the Reference Currency) for one Share and its bid and offer price (in U.S. Dollars) for the number of ADRs which represent such Share and (B) in all other cases, its bid and offer price (in the Reference Currency) for the Share or Shares, as the case may be, and its bid and offer price (in U.S. Dollars) for one ADR. If one or more quotations are provided, the rate for a Rate Calculation Date will equal the ratio of (1) the arithmetic mean of the midpoint of the bid and offer prices quoted in the Reference Currency by each Reference Dealer for such Share or Shares, as the case may be, and (2) the arithmetic mean of the midpoint of the bid and offer prices quoted in U.S. Dollars by each Reference Dealer for such ADR or ADRs, as the case may be, subject to an adjustment, if any, by the Calculation Agent to reduce the effect of momentary disparities in the prices of the Share or Shares and the ADR or ADRs, as appropriate. The quotations used to determine the Spot Rate for a Rate Calculation Date will be determined in each case at the Specified Time on the Rate Calculation Date or, if no such time is specified, the time chosen by the Calculation Agent."> + CURRENCY_IMPLIED_RATE__LOCAL_ASSET__CURA2 displayName "CURRENCY-IMPLIED.RATE.(LOCAL.ASSET)/CURA2" <"The Spot Rate for a Rate Calculation Date will be the Reference Currency/Settlement Currency exchange rate, expressed as the amount of Reference Currency per one unit of Settlement Currency, determined on the basis of quotations provided by Reference Dealers on that Rate Calculation Date for that day's price of Local Assets. The Calculation Agent will request each of the Reference Dealers to provide a firm quotation of its bid and offer price (in both the Reference Currency and the Settlement Currency) for an amount of Local Assets whose face value equals the Specified Amount. If one or more quotations are provided, the rate for a Rate Calculation Date will equal the ratio of (A) the arithmetic mean of the midpoint of the bid and offer prices quoted in the Reference Currency by each Reference Dealer for such Local Assets and (B) the arithmetic mean of the midpoint of the bid and offer prices quoted in the Settlement Currency by each Reference Dealer for such Local Assets. The quotations used to determine the Spot Rate for a Rate Calculation Date will be determined in each case at the Specified Time on the Rate Calculation Date or, if no such time is specified, the time chosen by the Calculation Agent."> + CURRENCY_MUTUAL_AGREEMENT_CURA3 displayName "CURRENCY-MUTUAL.AGREEMENT/CURA3" <"The Spot Rate for a Rate Calculation Date will be the Reference Currency/Settlement Currency Specified Rate, expressed as the amount of the Reference Currency per one unit of Settlement Currency, for settlement on the Settlement Date agreed upon by the parties on or prior to that Rate Calculation Date (or, if different, the day on which rates for that date would, in the ordinary course, be published or announced)."> + CURRENCY_REFERENCE_DEALERS_CURA4 displayName "CURRENCY-REFERENCE.DEALERS/CURA4" <"The Spot Rate for a Rate Calculation Date will be determined on the basis of quotations provided by Reference Dealers on that Rate Calculation Date of that day's Specified Rate, expressed as the amount of Reference Currency per one unit of Settlement Currency, for settlement on the Settlement Date. The Calculation Agent will request the Specified Office of each of the Reference Dealers to provide a firm quotation of its Specified Rate for a transaction where the amount of Reference Currency equals the Specified Amount. If four quotations are provided, the rate for a Rate Calculation Date will be the arithmetic mean of the Specified Rates, without regard to the Specified Rates having the highest and lowest value. If exactly three quotations are provided, the rate for a Rate Calculation Date will be the Specified Rate provided by the Reference Dealer that remains after disregarding the Specified Rates having the highest and lowest values. For this purpose, if more than one quotation has the same highest value or lowest value, then the Specified Rate of one of such quotations shall be disregarded. If exactly two quotations are provided, the rate for a Rate Calculation Date will be the arithmetic mean of the Specified Rates. If only one quotation is provided, the rate for a Rate Calculation Date will be the Specified Rate quoted by that Reference Dealer. The quotations used to determine the Spot Rate for a Rate Calculation Date will be determined in each case at the Specified Time on that Rate Calculation Date or, if no such time is specified, the time chosen by the Calculation Agent."> + CURRENCY_WHOLESALE_MARKET_CURA5 displayName "CURRENCY-WHOLESALE.MARKET/CURA5" <"The Spot Rate for a Rate Calculation Date will be determined by the Calculation Agent on the basis of that day's Specified Rate, expressed as the amount of Reference Currency per one unit of Settlement Currency, in a legal and customary wholesale market in which there is no, or minimal, Governmental Authority controls or interference, except as a participant in such market."> + ECS_DNRP_ECS01 displayName "ECS.DNRP/ECS01" <"The Spot Rate for a Rate Calculation Date will be the Ecuadorian Sucre/U.S. Dollar Specified Rate, expressed as the amount of Ecuadorian Sucres per one U.S. Dollar, for settlement in one Business Day (where such day is a Business Day in Guayaquil and New York) which appears on Reuters Screen DNRP Page at 12:00 noon, Guayaquil time, on that Rate Calculation Date."> + IDR_ABS_IDR01 displayName "IDR.ABS/IDR01" <"The Spot Rate for a Rate Calculation Date will be the Indonesian Rupiah/U.S. Dollar spot rate at 11:00 a.m., Singapore time, expressed as the amount of Indonesian Rupiah per one U.S. Dollar, for settlement in two Business Days, reported by the Association of Banks in Singapore which appears on the Telerate Page 50157 to the right of the caption 'Spot' under the column 'IDR' at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> + IDR_JISDOR_IDR04 displayName "IDR.JISDOR/IDR04" <"The Spot Rate for a Rate Calculation Date will be the Indonesian Rupiah/U.S. Dollar weighted average spot rate in the interbank market based on traded IDR/USD spot foreign exchange transactions during a specified time period which are captured on a real time basis, expressed as the amount of Indonesian Rupiah per one U.S. Dollar, for settlement in two Business Days, published by Bank Indonesia at approximately 10:00 a.m., Jakarta time, on that Rate Calculation Date as the Jakarta Interbank Spot Dollar Rate USD - IDR on Bank Indonesia's website or otherwise made available by Bank Indonesia (or its successor as administrator)."> + IDR_SFEMC_INDICATIVE_SURVEY_RATE_IDR02 displayName "IDR.SFEMC.INDICATIVE.SURVEY.RATE/IDR02" <"The Spot Rate for a Rate Calculation Date will be the Indonesian Rupiah/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Indonesian Rupiah per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m., Singapore time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC IDR Indicative Survey Methodology (which means a methodology, dated as of December 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Indonesian Rupiah/U.S. Dollar markets for the purpose of determining the SFEMC IDR Indicative Survey Rate)."> + IDR_VWAP_IDR03 displayName "IDR.VWAP/IDR03" <"The Spot Rate for a Rate Calculation Date will be the Indonesian Rupiah/U.S. Dollar implied spot rate expressed as the amount of Indonesian Rupiah per one U.S. Dollar, for settlement in two Business Days, reported by ABS Benchmarks Administration Co Pte. Ltd. (or its successor as administrator or sponsor of that rate), which appears on Thomson Reuters Screen ABSFIX01 Page at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> + ILS_BOIJ_ILS01 displayName "ILS.BOIJ/ILS01" <"The Spot Rate for a Rate Calculation Date will be the Israeli Shekel/U.S. Dollar Specified Rate, expressed as the amount of Israeli Shekels per one U.S. Dollar, for settlement in two Business Days which appears on the Reuters Screen BOIJ Page as of 1:00 p.m., Tel Aviv time, on that Rate Calculation Date."> + ILS_FXIL_ILS02 displayName "ILS.FXIL/ILS02" <"The Spot Rate for a Rate Calculation Date will be the Israeli Shekel/U.S. Dollar Specified Rate, expressed as the amount of Israeli Shekels per one U.S. Dollar, for settlement in two Business Days which appears on the Reuters Screen FXIL Page as of 1:00 p.m., Tel Aviv time, on that Rate Calculation Date."> + INR_FBIL_INR01 displayName "INR.FBIL/INR01" <"The Spot Rate for a Rate Calculation Date will be the Indian Rupee/U.S. Dollar reference rate, expressed as the amount of Indian Rupee per one U.S. Dollar, for settlement in two Business Days, reported by Financial Benchmarks India Pvt. Ltd. (www.fbil.org.in) at approximately 1:30 p.m., Mumbai time, or as soon thereafter as practicable, on that Rate Calculation Date."> + INR_RBIB_INR01 displayName "INR.RBIB/INR01" <"The Spot Rate for a Rate Calculation Date will be the Indian Rupee/U.S. Dollar reference rate, expressed as the amount of Indian Rupee per one U.S. Dollar, for settlement in two Business Days reported by the Reserve Bank of India which appears on the Reuters Screen RBIB Page at approximately 12:30 p.m., Mumbai time, or as soon thereafter as practicable, on that Rate Calculation Date."> + INR_SFEMC_INDICATIVE_SURVEY_RATE_INR02 displayName "INR.SFEMC.INDICATIVE.SURVEY.RATE/INR02" <"The Spot Rate for a Rate Calculation Date will be the Indian Rupee/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Indian Rupee per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m. (Singapore time), or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC INR Indicative Survey Methodology (which means a methodology, dated as of December 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Indian Rupee/U.S. Dollar markets for the purpose of determining the SFEMC INR Indicative Survey Rate)."> + KRW_KEBEY_KRW01 displayName "KRW.KEBEY/KRW01" <"The Spot Rate for a Rate Calculation Date will be the Korean Won/U.S. Dollar Specified Rate, expressed as the amount of Korean Won per one U.S. Dollar, for settlement in two Business Days which appears on the Reuters Screen KEBEY Page at the Specified Time, if any, on that Rate Calculation Date."> + KRW_KFTC18_KRW02 displayName "KRW.KFTC18/KRW02" <"The Spot Rate for a Rate Calculation Date will be the Korean Won/U.S. Dollar market average rate, expressed as the amount of Korean Won per one U.S. Dollar, for settlement in two Business Days reported by the Korea Financial Telecommunications and Clearing Corporation which appears on the Reuters Screen KFTC18 Page to the right of the caption 'USD Today' that is available at approximately 3:30 p.m., Seoul time, on the Rate Calculation Date or as soon thereafter as practicable."> + KRW_SFEMC_INDICATIVE_SURVEY_RATE_KRW04 displayName "KRW.SFEMC.INDICATIVE.SURVEY.RATE/KRW04" <"The Spot Rate for a Rate Calculation Date will be the Korean Won/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Korean Won per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m., Singapore time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC KRW Indicative Survey Methodology (which means a methodology, dated as of December 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Korean Won/U.S. Dollar markets for the purpose of determining the SFEMC KRW Indicative Survey Rate)."> + KRW_TELERATE_45644_KRW03 displayName "KRW.TELERATE.45644/KRW03" <"The Spot Rate for a Rate Calculation Date will be the Korean Won/U.S. Dollar market average rate, expressed as the amount of Korean Won per one U.S. Dollar, for settlement in two Business Days reported by the Korea Financial Telecommunications and Clearing Corporation which appears on Telerate Page 45644 to the right of the caption 'USD Today' that is available at approximately 3:30 p.m., Seoul time, on the Rate Calculation Date or as soon thereafter as practicable."> + KZT_EMTA_INDICATIVE_SURVEY_RATE_KZT02 displayName "KZT.EMTA.INDICATIVE.SURVEY.RATE/KZT02" <"The Spot Rate for a Rate Calculation Date will be the Kazakhstan Tenge / U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Kazakhstan Tenge per one U.S. Dollar, for settlement on the same Business Day, as published on EMTA's website (www.emta.org) at approximately 1:00 p.m., Almaty time, or as soon thereafter as practicable, on that Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA KZT Indicative Survey Methodology (which means a methodology, dated as of March 16, 2009, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Kazakhstan Tenge/U.S. Dollar markets for the purpose of determining the EMTA KZT Indicative Survey Rate)."> + KZT_KASE_KZT01 displayName "KZT.KASE/KZT01" <"The Spot Rate for a Rate Calculation Date will be the Kazakhstan Tenge / U.S. Dollar weighted average rate, expressed as the amount of Kazakhstan Tenge per one U.S. Dollar, for settlement on the same Business Day reported by the Kazakhstan Stock Exchange (www.kase.kz) at approximately 11:00 am, Almaty time, on that Rate Calculation Date."> + LBP_BDLX_LBP01 displayName "LBP.BDLX/LBP01" <"The Spot Rate for a Rate Calculation Date will be the Lebanese Pound/U.S. Dollar Specified Rate, expressed as the amount of Lebanese Pounds per one U.S. Dollar, for settlement in two Business Days which appears on the Reuters Screen BDLX Page as of 12:00 noon, Beirut time, on that Rate Calculation Date."> + MAD_OFFICIAL_RATE_MAD01 displayName "MAD.OFFICIAL.RATE/MAD01" <"The Spot Rate for a Rate Calculation Date will be the Moroccan Dirham/U.S. Dollar Specified Rate, expressed as the amount of Moroccan Dirham per one U.S. Dollar, for settlement in two Business Days reported by the Central Bank of Morocco as of 1:00 p.m., Rabat time, on that Rate Calculation Date."> + MXP_BNMX_MXP01 displayName "MXP.BNMX/MXP01" <"The Spot Rate for a Rate Calculation Date will be the Mexican Pesos/U.S. Dollar Specified rate, expressed as the amount of Mexican Pesos per one U.S. Dollar, for settlement in two Business Days reported by Banco de Mexico which appears on the Reuters Screen BNMX Page opposite the caption 'Fix' at the close of business in Mexico City on that Rate Calculation Date."> + MXP_FIXING_RATE_MXP02 displayName "MXP.FIXING.RATE/MXP02" <"The Spot Rate for a Rate Calculation Date will be the Mexican Peso/U.S. Dollar fixing rate, expressed as the amount of Mexican Pesos per one U.S. Dollar, for settlement in two Business Days which is published by Banco de Mexico in the Official Gazette of the Federation pursuant to the 'Disposiciones aplicables a la determinacion del tipo de Cambio para solventar obligaciones denominadas en moneda extranjera pagaderas en la Republica Mexicana' (Rules applicable to determine the exchange rate to pay obligations denominated in foreign currency payable in Mexico) on the first Business Day following that Rate Calculation Date."> + MXP_MEX01_MXP03 displayName "MXP.MEX01/MXP03" <"The Spot Rate for a Rate Calculation Date will be the Mexican Peso/U.S. Dollar fixing rate, expressed as the amount of Mexican Pesos per one U.S. Dollar, for settlement in two Business Days reported by Banco de Mexico which appears on Reuters Screen MEX01 Page under the heading 'MXNFIX=RR', at the close of business in Mexico City on that Rate Calculation Date."> + MXP_PUBLISHED_MXP04 displayName "MXP.PUBLISHED/MXP04" <"The Spot Rate for a Rate Calculation Date will be the Mexican Peso/U.S. Dollar fixing rate, expressed as the amount of Mexican Pesos per one U.S. Dollar, for settlement in two Business Days which is published by the Bolsa Mexicana de Valores, S.A. de C.V. (as established in Section 2 of the 'Resolution concerning the exchange rate applicable for calculating the Mexican Peso equivalent of principal and interest of Mexican Treasury Notes denominated in foreign currency and payable in Mexican Pesos' published in the Diario Oficial de la Federacion on November 11, 1991) in the Movimiento Diario del Mercado de Valores de la Bolsa Mexicana de Valores, S.A. de C.V. under the heading 'Movimiento Diario del Mercado de Valores' on that Rate Calculation Date."> + MYR_ABS_MYR01 displayName "MYR.ABS/MYR01" <"The Spot Rate for a Rate Calculation Date will be the Malaysian Ringgit/U.S. Dollar spot rate at 11:00 a.m., Singapore time, expressed as the amount of Malaysian Ringgit per one U.S. Dollar, for settlement in two Business Days, reported by the Association of Banks in Singapore, which appears on the Telerate Page 50157 to the right of the caption 'Spot' under the column 'MYR' at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> + MYR_KL_REF_MYR04 displayName "MYR.KL.REF/MYR04" <"The Spot Rate for a Rate Calculation Date will be the Malaysian Ringgit/U.S. Dollar reference rate, expressed as the amount of Malaysian Ringgit per one U.S. Dollar, for settlement in two Business Days, calculated and reported by Bank Negara Malaysia as its Kuala Lumpur USD/MYR Reference Rate, which appears on Thomson Reuters Screen MYRFIX2 Page at approximately 3:30 p.m., Kuala Lumpur time, on that Rate Calculation Date."> + MYR_PPKM_MYR03 displayName "MYR.PPKM/MYR03" <"The Spot Rate for a Rate Calculation Date will be the Malaysian Ringgit/U.S. Dollar spot rate expressed as the amount of Malaysian Ringgit per one U.S. Dollar, for settlement in two Business Days, reported by Persatuan Pasaran Kewangan Malaysia (ACI - Malaysia), which appears on Thomson Reuters Screen MYRFIX2 Page at approximately 11:10 a.m., Kuala Lumpur time, on that Rate Calculation Date."> + MYR_SFEMC_INDICATIVE_SURVEY_RATE_MYR02 displayName "MYR.SFEMC.INDICATIVE.SURVEY.RATE/MYR02" <"The Spot Rate for a Rate Calculation Date will be the Malaysian Ringgit/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Malaysian Ringgit per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m., Singapore time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC MYR Indicative Survey Methodology (which means a methodology, dated as of July 15, 2005, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Malaysian Ringgit/U.S. Dollar markets for the purpose of determining the SFEMC MYR Indicative Survey Rate)."> + PEN_EMTA_INDICATIVE_SURVEY_RATE_PEN04 displayName "PEN.EMTA.INDICATIVE.SURVEY.RATE/PEN04" <"The Spot Rate for a Rate Calculation Date will be the Peruvian Sol/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Peruvian Soles per one U.S. Dollar, for settlement on the same day, as published on EMTA's web site (www.emta.org) at approximately 11:00 a.m., Lima time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA PEN Indicative Survey Methodology (which means a methodology, dated as of August 1, 2006, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Peruvian Sol/U.S. Dollar markets for the purpose of determining the EMTA PEN Indicative Survey Rate)."> + PEN_INTERBANK_AVE_PEN05 displayName "PEN.INTERBANK.AVE/PEN05" <"The Spot Rate for a Rate Calculation Date will be the Peruvian Sol/U.S. Dollar average exchange rate in the interbank market expressed as the amount of Peruvian New Soles per one U.S. Dollar for settlement on the same day reported by the Banco Central de Reserva del Peru (www.bcrp.gob.pe) as the 'Tipo de Cambio Interbancario Promedio' at approximately 2:00 p.m., Lima time, on that Rate Calculation Date."> + PEN_PDSB_PEN01 displayName "PEN.PDSB/PEN01" <"The Spot Rate for a Rate Calculation Date will be the Peruvian Sol/U.S. Dollar fixing rate (mid market last), expressed as the amount of Peruvian Sols per one U.S. Dollar, for settlement on that same day which appears on the Reuters Screen PDSB Page opposite the caption 'PEN=' as of 12:00 noon, Lima time, on that Rate Calculation Date."> + PEN_WT_AVE_PEN03 displayName "PEN.WT.AVE/PEN03" <"The Spot Rate for a Rate Calculation Date will be the midpoint of the Peruvian Sol/U.S. Dollar closing weighted average bid and offer ('compra y venta') exchange rates expressed as the amount of Peruvian New Soles per one U.S. Dollar for settlement on the same day, reported by the Superintendencia de Banca, Seguros y AFP (www.sbs.gob.pe) of the Republic of Peru at approximately 5:00 p.m., Lima time, on that Rate Calculation Date."> + PHP_BAPPESO_PHP06 displayName "PHP.BAPPESO/PHP06" <"The Spot Rate for a Rate Calculation Date will be the Philippine Peso/U.S. Dollar morning weighted average rate for that Rate Calculation Date, expressed as the amount of Philippine Pesos per one U.S. Dollar, for settlement in one Business Day, sponsored by Bankers Association of the Philippines (www.bap.org.ph) as its 'BAP AM Weighted Average Rate' at approximately 11:30 a.m., Manila time, or as soon thereafter as practicable, on that Rate Calculation Date."> + PHP_PDSPESO_PHP06 displayName "PHP.PDSPESO/PHP06" <"The Spot Rate for a Rate Calculation Date will be the Philippine Peso/U.S. Dollar morning weighted average rate for that Rate Calculation Date, expressed as the amount of Philippine Pesos per one U.S. Dollar, for settlement in one Business Day reported by the Philippine Dealing System PDEX which appears on the Reuters Screen PDSPESO Page to the right of the caption 'AM WT AVE' at approximately 11:30 a.m., Manila time, or as soon thereafter as practicable, on that Rate Calculation Date."> + PHP_PHPESO_PHP01 displayName "PHP.PHPESO/PHP01" <"The Spot Rate for a Rate Calculation Date will be the Philippine Peso/U.S. Dollar tom rate (mid market), expressed as the amount of Philippine Pesos per one U.S. Dollar, for settlement in one Business Day which appears on the Reuters Screen PHPESO Page at approximately 11:00 a.m., Manila time, on that Rate Calculation Date."> + PHP_SFEMC_INDICATIVE_SURVEY_RATE_PHP05 displayName "PHP.SFEMC.INDICATIVE.SURVEY.RATE/PHP05" <"The Spot Rate for a Rate Calculation Date will be the Philippine Peso/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Philippine Pesos per one U.S. Dollar, for settlement in one Business Day, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m., Singapore time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC PHP Indicative Survey Methodology (which means a methodology, dated as of December 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Philippine Peso/U.S. Dollar markets for the purpose of determining the SFEMC PHP Indicative Survey Rate)."> + PHP_TELERATE_15439_PHP03 displayName "PHP.TELERATE.15439/PHP03" <"The Spot Rate for a Rate Calculation Date will be the Philippine Peso/U.S. Dollar tom rate (mid market), expressed as the amount of Philippine Pesos per one U.S. Dollar, for settlement in one Business Day which appears on the Telerate Page 15439 at approximately 11:00 a.m., Manila time, on that Rate Calculation Date."> + PHP_TELERATE_2920_PHP02 displayName "PHP.TELERATE.2920/PHP02" <"The Spot Rate for a Rate Calculation Date will be the Philippine Peso/U.S. Dollar Specified Rate, expressed as the amount of Philippine Pesos per one U.S. Dollar, for settlement in one Business Day which appears on the Telerate Page 2920 at the Specified Time, if any, on that Rate Calculation Date."> + PKR_SBPK_PKR01 displayName "PKR.SBPK/PKR01" <"The Spot Rate for a Rate Calculation Date will be the Pakistani Rupee/U.S. Dollar reference rate expressed as the amount of Pakistani Rupees per one U.S. Dollar, for settlement in two Business Days reported by the State Bank of Pakistan (www.sbp.org.pk) at approximately 2:30 pm, Karachi time, on that Rate Calculation Date."> + PKR_SFEMC_INDICATIVE_SURVEY_RATE_PKR02 displayName "PKR.SFEMC.INDICATIVE.SURVEY.RATE/PKR02" <"The Spot Rate for a Rate Calculation Date will be the Pakistani Rupee/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Pakistani Rupees per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m. Singapore time, or as soon thereafter as practicable, on that Rate Calculation Date. The Spot Rate shall be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC PKR Indicative Survey Methodology (which means a methodology, dated as of July 14, 2008, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Pakistani Rupee/U.S. Dollar markets for the purpose of determining the SFEMC PKR Indicative Survey Rate)."> + PLZ_NBPQ_PLZ01 displayName "PLZ.NBPQ/PLZ01" <"The Spot Rate for a Rate Calculation Date will be the Polish Zloty/U.S. Dollar Specified Rate, expressed as the amount of Polish Zloty per one U.S. Dollar, for settlement in two Business Days reported by the National Bank of Poland which appears on the Reuters Screen NBPQ Page at the Specified Time, if any, on that Rate Calculation Date."> + PLZ_NBPR_PLZ02 displayName "PLZ.NBPR/PLZ02" <"The Spot Rate for a Rate Calculation Date will be the Polish Zloty/U.S. Dollar fixing rate, expressed as the amount of Polish Zloty per one U.S. Dollar, for settlement in two Business Days reported by the National Bank of Poland which appears on the Reuters Screen NBPR Page at the Specified Time, if any, on that Rate Calculation Date."> + RUB_CME_EMTA_RUB03 displayName "RUB.CME-EMTA/RUB03" <"The Spot Rate for a Rate Calculation Date will be the Russian Ruble/U.S. Dollar Specified Rate, expressed as the amount of Russian Rubles per one U.S. Dollar, for settlement in one Business Day, calculated by the Chicago Mercantile Exchange ('CME') and as published on CME's website, which appears on the Reuters Screen EMTA Page, at approximately 1:30 p.m., Moscow time, on that Rate Calculation Date. The Spot Rate shall be calculated by the CME pursuant to the Chicago Mercantile Exchange / EMTA, Inc. Daily Russian Ruble Per U.S. Dollar Reference Rate Methodology (which means a methodology, effective as of June 16, 2005, as amended from time to time, for a centralized industry-wide survey of financial institutions in Russia that are active participants in the Russian Ruble/U.S. Dollar spot market for the purpose of determining the RUB CME-EMTA Rate)."> + RUB_EMTA_INDICATIVE_SURVEY_RATE_RUB04 displayName "RUB.EMTA.INDICATIVE.SURVEY.RATE/RUB04" <"The Spot Rate for a Rate Calculation Date will be the Russian Ruble/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Russian Rubles per one U.S. Dollar, for settlement in one Business Day, as published on EMTA's web site (www.emta.org) at approximately 2:45 p.m., Moscow time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA RUB Indicative Survey Methodology (which means a methodology dated as of June 16, 2005, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Russian Ruble/U.S. Dollar spot market for the purpose of determining the EMTA RUB Indicative Survey Rate)."> + RUB_MICEXFRX_RUB01 displayName "RUB.MICEXFRX/RUB01" <"The Spot Rate for a Rate Calculation Date will be the Russian Ruble/U.S. Dollar Specified Rate, expressed as the amount of Russian Rubies per one U.S. Dollar, for settlement on the same day reported by the Moscow Interbank Currency Exchange which appears on the Reuters Screen MICEXFRX Page as of 10:30 a.m., Moscow time, on that Rate Calculation Date."> + RUB_MMVB_RUB02 displayName "RUB.MMVB/RUB02" <"The Spot Rate for a Rate Calculation Date will be the Russian Ruble/U.S. Dollar Specified Rate, expressed as the amount of Russian Rubies per one U.S. Dollar, for settlement on the same day reported by the Moscow Interbank Currency Exchange which appears on the Reuters Screen MMVB Page as of 10:30 a.m., Moscow time, on that Rate Calculation Date."> + SGD_VWAP_SGD3 displayName "SGD.VWAP/SGD3" <"The Spot Rate for a Rate Calculation Date will be the Singapore Dollar/U.S. Dollar spot rate expressed as the amount of Singapore Dollar per one U.S. Dollar for settlement in two Business Days, reported by ABS Benchmarks Administration Co Pte. Ltd. (or its successor as administrator or sponsor of the rate), which appears on Thomson Reuters Screen ABSFIX01 Page at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> + SKK_NBSB_SKK01 displayName "SKK.NBSB/SKK01" <"The Spot Rate for a Rate Calculation Date will be the Slovak Koruna/U.S. Dollar Specified Rate, expressed as the amount of Slovak Koruna per one U.S. Dollar, for settlement in two Business Days reported by the National Bank of Slovakia which appears on the Reuters Screen NBSB Page as of 11:40 a.m., Bratislava time, on that Rate Calculation Date."> + THB_ABS_THB01 displayName "THB.ABS/THB01" <"The Spot Rate for a Rate Calculation Date will be the Thai Baht/U.S. Dollar spot rate at 11:00 a.m., Singapore time, expressed as the amount of Thai Bhaht per one U.S. Dollar, for settlement in two Business Days, reported by the Association of Banks in Singapore which appears on the Reuters Screen ABSIRFIX01 Page to the right of the caption 'Spot' under the column 'THB' at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> + THB_VWAP_THB01 displayName "THB.VWAP/THB01" <"The Spot Rate for a Rate Calculation Date will be the Thai Baht / U.S. Dollar spot rate expressed as the amount of Thai Baht per one U.S. Dollar for settlement in two Business Days, reported by ABS Benchmarks Administration Co Pte. Ltd. (or its successor as administrator or sponsor of the rate), which appears on Thomson Reuters Screen ABSFIX01 Page at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> + TWD_SFEMC_INDICATIVE_SURVEY_RATE_TWD04 displayName "TWD.SFEMC.INDICATIVE.SURVEY.RATE/TWD04" <"The Spot Rate for a Rate Calculation Date will be the Taiwanese Dollar/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Taiwanese Dollars per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m., Singapore time, or as soon thereafter as practicable, on such Rate Calculation Date. The Spot Rate will be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC TWD Indicative Survey Methodology (which means a methodology, dated as of December 1, 2004, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Taiwanese Dollar/U.S. Dollar markets for the purpose of determining the SFEMC TWD Indicative Survey Rate)."> + TWD_TAIFX1_TWD03 displayName "TWD.TAIFX1/TWD03" <"The Spot Rate for a Rate Calculation Date will be the Taiwanese Dollar/U.S. Dollar spot rate, expressed as the amount of Taiwanese Dollars per one U.S. Dollar, for settlement in two Business Days, reported by the Taipei Forex Inc. which appears on the Reuters Screen TAIFX1 Page under the heading 'Spot' as of 11:00 a.m. Taipei time, on that Rate Calculation Date, or if no rate appears as of 11:00 a.m., Taipei time, the rate that first appears in any of the next succeeding 15 minute intervals after such time, up to and including 12:00 noon, Taipei time on that Rate Calculation Date."> + TWD_TELERATE_6161_TWD01 displayName "TWD.TELERATE.6161/TWD01" <"The Spot Rate for a Rate Calculation Date will be the Taiwanese Dollar/U.S. Dollar spot rate, expressed as the amount of Taiwanese Dollars per one U.S. Dollar, for settlement in two Business Days, reported by the Taipei Forex Inc. which appears on the Telerate Page 6161 under the heading 'Spot' as of 11:00 a.m., Taipei time, on that Rate Calculation Date, or if no rate appears as of 11:00 a.m., Taipei time, the rate that first appears in any of the next succeeding 15 minute intervals after such time, up to and including 12:00 noon, Taipei time, on that Rate Calculation Date."> + TWD_TFEMA_TWD02 displayName "TWD.TFEMA/TWD02" <"The Spot Rate for a Rate Calculation Date will be the Taiwanese Dollar/U.S. Dollar Specified Rate, expressed as the amount of Taiwanese Dollars per one U.S. Dollar, for settlement in two Business Days which appears on the Reuters Screen TFEMA Page as of 11:00 a.m., Taipei time, on that Rate Calculation Date."> + UAH_EMTA_INDICATIVE_SURVEY_RATE_UAH03 displayName "UAH.EMTA.INDICATIVE.SURVEY.RATE/UAH03" <"The Spot Rate for a Rate Calculation Date will be the Ukrainian Hryvnia/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Ukrainian Hryvnia per one U.S. Dollar, for settlement on the same Business Day, as published on EMTA's website (www.emta.org) at approximately 2:00 p.m., Kiev time, or as soon thereafter as practicable, on that Rate Calculation Date. The Spot Rate shall be calculated by EMTA (or a service provider EMTA may select in its sole discretion) pursuant to the EMTA UAH Indicative Survey Methodology (which means a methodology, dated as of March 16, 2009, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Ukrainian Hryvnia / U.S. Dollar markets for the purpose of determining the EMTA UAH Indicative Survey Rate)."> + UAH_EMTA_INDUSTRY_SURVEY_RATE_UAH02 displayName "UAH.EMTA.INDUSTRY.SURVEY.RATE/UAH02" <"The Spot Rate for a Rate Calculation Date will be the Ukrainian Hryvnia/U.S. Dollar Specified Rate for U.S. Dollars expressed as the amount of Ukrainian Hryvnia per one U.S. Dollar, for settlement on the same Business Day calculated by Thomson Reuters pursuant to the EMTA UAH Industry Survey Methodology, which rate appears on EMTA's website (www.emta.org) and on Thomson Reuters Page EMTAUAHFIX at approximately 11:30 am, Kiev time, on that Rate Calculation Date. The 'EMTA UAH Industry Survey Methodology' as used herein means the methodology dated as of March 16, 2009, for a centralized industry wide survey of financial institutions in the Ukrainian Hryvnia/U.S. Dollar spot market for the purposes of determining the EMTA UAH Industry Survey Rate."> + UAH_GFI_UAH01 displayName "UAH.GFI/UAH01" <"The Spot Rate for a Rate Calculation Date will be the Ukrainian Hryvnia/U.S. Dollar spot rate, expressed as the amount of Ukrainian Hryvnia per one U.S. Dollar, for settlement on the same Business Day reported by GFI Brokers on Thomson Reuters Page GFIU by 9:30 am, London time, on that Rate Calculation Date."> + VEF_FIX_VEF01 displayName "VEF.FIX/VEF01" <"The Spot Rate for a Rate Calculation Date will be the midpoint of the Venezuelan Bolivar /U.S. Dollar Tipo de Cambio De Referencia buying and selling rates, expressed as the amount of Venezuelan Bolivar per one U.S. Dollar, for settlement in two Business Days reported by the Banco Central de Venezuela (www.bcv.org.ve) at approximately 5:00 p.m., Caracas time, on that Rate Calculation Date."> + VND_ABS_VND01 displayName "VND.ABS/VND01" <"The Spot Rate for a Rate Calculation Date will be the Vietnamese Dong/U.S. Dollar spot rate at 11:00 a.m., Singapore time, expressed as the amount of Vietnamese Dong per one U.S. Dollar, for settlement in two Business Days reported by the Association of Banks in Singapore, which appears on the Reuters Screen ABSIRFIX01 Page to the right of the caption 'Spot' under the column 'VND' at approximately 11:30 a.m., Singapore time, on that Rate Calculation Date."> + VND_FX_VND02 displayName "VND.FX/VND02" <"The Spot Rate for a Rate Calculation Date will be the Vietnamese Dong/U.S. Dollar spot rate expressed as the amount of Vietnamese Dong per one U.S. Dollar, for settlement in two Business Days which appears on Reuters Screen VNDFIX=VN Page under the caption 'Spot' and to the right of the caption 'Average' at approximately 11:00 am, Hanoi time, on that Rate Calculation Date."> + VND_SFEMC_INDICATIVE_SURVEY_RATE_VND03 displayName "VND.SFEMC.INDICATIVE.SURVEY.RATE/VND03" <"The Spot Rate for a Rate Calculation Date will be the Vietnamese Dong/U.S. Dollar Specified Rate for U.S. Dollars, expressed as the amount of Vietnamese Dong per one U.S. Dollar, for settlement in two Business Days, as published on SFEMC's website (www.sfemc.org) at approximately 3:30 p.m., Singapore time, or as soon as thereafter as practicable, on that Rate Calculation Date. The Spot Rate shall be calculated by SFEMC (or a service provider SFEMC may select in its sole discretion) pursuant to the SFEMC VND Indicative Survey Methodology (which means a methodology, dated as of July 14, 2008, as amended from time to time, for a centralized industry-wide survey of financial institutions that are active participants in the Vietnamese Dong/U.S. Dollar markets for the purpose of determining the SFEMC VND Indicative Survey Rate)."> enum PartyDeterminationEnum: <"The enumerated values to specify how a calculation agent will be determined."> - ExercisingParty <"The party that gives notice of exercise. Per 2000 ISDA Definitions, Section 11.1. Parties, paragraph (d)."> - NonExercisingParty <"The party that is given notice of exercise. Per 2000 ISDA Definitions, Section 11.1. Parties, paragraph (e)."> - AsSpecifiedInMasterAgreement <"The Calculation Agent is determined by reference to the relevant master agreement."> - AsSpecifiedInStandardTermsSupplement <"The Calculation Agent is determined by reference to the relevant standard terms supplement."> - Both <"Both parties with joined rights to be a calculation agent."> + ExercisingParty <"The party that gives notice of exercise. Per 2000 ISDA Definitions, Section 11.1. Parties, paragraph (d)."> + NonExercisingParty <"The party that is given notice of exercise. Per 2000 ISDA Definitions, Section 11.1. Parties, paragraph (e)."> + AsSpecifiedInMasterAgreement <"The Calculation Agent is determined by reference to the relevant master agreement."> + AsSpecifiedInStandardTermsSupplement <"The Calculation Agent is determined by reference to the relevant standard terms supplement."> + Both <"Both parties with joined rights to be a calculation agent."> enum PriceTypeEnum: <"Provides enumerated values for types of prices in the Price data type in order to explain how to interpret the amount and use it in calculations."> - AssetPrice <"Denotes a price expressed as a cash amount in a given currency to purchase a unit of an asset (e.g. a security or a commodity)."> - CashPrice <"Denotes a price expressed as a cash amount for an upfront fee or other purposes. For example, {amount, unitOfAmount, PerUnitOfAmount} = [12,500, USD, null] = USD 12,500."> + AssetPrice <"Denotes a price expressed as a cash amount in a given currency to purchase a unit of an asset (e.g. a security or a commodity)."> + CashPrice <"Denotes a price expressed as a cash amount for an upfront fee or other purposes. For example, {amount, unitOfAmount, PerUnitOfAmount} = [12,500, USD, null] = USD 12,500."> Correlation <"Denotes a price expressed as the weighted average of all pairwise correlation coefficients."> Dividend <"Denotes a price expressed as the dividend payment from a index or share."> - ExchangeRate <"Denotes a rate to convert one currency or other measure of value to another. Foreign Exchange rates are represented in decimals, e.g. {amount, unitOfAmount, PerUnitOfAmount} = [1.23, USD, GBP] = USD 1.23 for every 1 GBP."> - InterestRate <"Denotes a price expressed as a rate to be applied to quantity/notional amount and represented as decimal, e.g. {amount, unitOfAmount, PerUnitOfAmount} = [0.08, EUR, EUR] = 8% of the EUR notional quantity/amount or 8 cents for every EUR of notional amount."> - [docReference ICMA GMRA namingConvention "Pricing Rate" + ExchangeRate <"Denotes a rate to convert one currency or other measure of value to another. Foreign Exchange rates are represented in decimals, e.g. {amount, unitOfAmount, PerUnitOfAmount} = [1.23, USD, GBP] = USD 1.23 for every 1 GBP."> + InterestRate <"Denotes a price expressed as a rate to be applied to quantity/notional amount and represented as decimal, e.g. {amount, unitOfAmount, PerUnitOfAmount} = [0.08, EUR, EUR] = 8% of the EUR notional quantity/amount or 8 cents for every EUR of notional amount."> + [docReference ICMA GMRA namingConvention "Pricing Rate" provision "As defined in the GMRA, paragraph 2(ll) The pricing rate is the per annum percentage rate for calculation of the Price Differential agreed to by Buyer and Seller in relation to that Transaction."] [docReference ICMA ERCCBestPractice namingConvention "Pricing Rate" provision "ERCC Guide: Annex II Glossary of repo terminology. Repo rate is the market term for the annualised percentage rate of interest on the cash in a repo. Legally-speaking, however, the term is a misnomer, as the legal form of a repo is not an interest-paying loan or deposit. Rather, the return is just the difference between two securities prices. In the GMRA, the repo rate is called the Pricing Rate. Traditionally, the repo rate was the price of a Repurchase Transaction but Buy/Sell-Backs are now often quoted in the same way."] @@ -292,39 +289,39 @@ enum PriceTypeEnum: <"Provides enumerated values for types of prices in the Pric Volatility <"Denotes a price expressed as the the square root of the arithmetic average of the squared differences from the mean value of an observable price."> enum CashPriceTypeEnum: <"Provides a list of possible types of cash prices, applicable when PriceTypeEnum is itself of type CashPrice."> - Premium <"Denotes the amount payable by the buyer to the seller for an option. The premium is paid on the specified premium payment date or on each premium payment date if specified."> - Fee <"A generic term for describing a non-scheduled cashflow that can be associated either with the initial contract, with some later corrections to it (e.g. a correction to the day count fraction that has a cashflow impact) or with some lifecycle events. Fees that are specifically associated with termination and partial termination, increase, amendment, and exercise events are qualified accordingly."> - Discount <"Denotes a discount factor expressed as a decimal, e.g. 0.95."> + Premium <"Denotes the amount payable by the buyer to the seller for an option. The premium is paid on the specified premium payment date or on each premium payment date if specified."> + Fee <"A generic term for describing a non-scheduled cashflow that can be associated either with the initial contract, with some later corrections to it (e.g. a correction to the day count fraction that has a cashflow impact) or with some lifecycle events. Fees that are specifically associated with termination and partial termination, increase, amendment, and exercise events are qualified accordingly."> + Discount <"Denotes a discount factor expressed as a decimal, e.g. 0.95."> enum FeeTypeEnum: <"The enumerated values to specify an event that has given rise to a fee."> - Assignment <"A cash flow resulting from the assignment of a contract to a new counterparty."> - BrokerageCommission <"The brokerage commission."> - Increase <"A cash flow associated with an increase lifecycle event."> - Novation <"The novation fee."> - PartialTermination <"A cash flow associated with a partial termination lifecycle event."> - Premium <"Denotes the amount payable by the buyer to the seller for an option. The premium is paid on the specified premium payment date or on each premium payment date if specified."> - Renegotiation <"A cash flow associated with a renegotiation lifecycle event."> - Termination <"A cash flow associated with a termination lifecycle event."> - Upfront <"An upfront cashflow associated to the swap to adjust for a difference between the swap price and the current market price."> - CreditEvent <"A cash flow associated with a credit event."> - CorporateAction <"A cash flow associated with a corporate action"> + Assignment <"A cash flow resulting from the assignment of a contract to a new counterparty."> + BrokerageCommission <"The brokerage commission."> + Increase <"A cash flow associated with an increase lifecycle event."> + Novation <"The novation fee."> + PartialTermination <"A cash flow associated with a partial termination lifecycle event."> + Premium <"Denotes the amount payable by the buyer to the seller for an option. The premium is paid on the specified premium payment date or on each premium payment date if specified."> + Renegotiation <"A cash flow associated with a renegotiation lifecycle event."> + Termination <"A cash flow associated with a termination lifecycle event."> + Upfront <"An upfront cashflow associated to the swap to adjust for a difference between the swap price and the current market price."> + CreditEvent <"A cash flow associated with a credit event."> + CorporateAction <"A cash flow associated with a corporate action"> enum PremiumTypeEnum: <"The enumerated values to specify the premium type for forward start options."> - PrePaid - PostPaid - Variable - Fixed + PrePaid + PostPaid + Variable + Fixed enum PriceOperandEnum: AccruedInterest Commission ForwardPoint -enum CsaTypeEnum: <"How is the Creadit Support Annex defined for this transaction as defined in the 2021 ISDA Definitions, section 18.2.1 "> - NoCSA displayName "NoCSA" <"There is no CSA applicable"> - ExistingCSA displayName "ExistingCSA" <"Thre is an existing Credit Support Annex"> - ReferenceVMCSA displayName "ReferenceVMCSA" <"There is a bilateral Credit Support Annex specific to the transaction"> +enum CsaTypeEnum: <"How is the Creadit Support Annex defined for this transaction as defined in the 2021 ISDA Definitions, section 18.2.1 "> + NoCSA displayName "NoCSA" <"There is no CSA applicable"> + ExistingCSA displayName "ExistingCSA" <"Thre is an existing Credit Support Annex"> + ReferenceVMCSA displayName "ReferenceVMCSA" <"There is a bilateral Credit Support Annex specific to the transaction"> enum OptionReferenceTypeEnum: <"The enumeration values to specify the reference source that determines the final settlement price of the option."> - Future <"Reference from the price of a future contract."> - Spot <"Reference from an underlyer spot price."> + Future <"Reference from the price of a future contract."> + Spot <"Reference from an underlyer spot price."> diff --git a/rosetta-source/src/main/rosetta/observable-asset-fro-enum.rosetta b/rosetta-source/src/main/rosetta/observable-asset-fro-enum.rosetta index c65bbb2b00..7d42d6d0da 100644 --- a/rosetta-source/src/main/rosetta/observable-asset-fro-enum.rosetta +++ b/rosetta-source/src/main/rosetta/observable-asset-fro-enum.rosetta @@ -2,24 +2,24 @@ namespace cdm.observable.asset.fro : <"Support for floating rate option definiti version "${project.version}" enum FloatingRateIndexCategoryEnum: <"Top level ISDA FRO category."> - ScreenRate displayName "Screen Rate" <"The rate is observed directly from a screen."> - Calculated displayName "Calculated Rate" <"The rate is calculated by the calculation agents from multiple observations."> - ReferenceBanks displayName "Reference Banks Rate" <"The rate is obtained by polling several other banks."> + ScreenRate displayName "Screen Rate" <"The rate is observed directly from a screen."> + Calculated displayName "Calculated Rate" <"The rate is calculated by the calculation agents from multiple observations."> + ReferenceBanks displayName "Reference Banks Rate" <"The rate is obtained by polling several other banks."> -enum FloatingRateIndexStyleEnum:<"Second level ISDA FRO category."> - AverageFRO displayName "Average FRO" <"An ISDA-defined calculated rate done using arithmetic averaging."> - CompoundedFRO displayName"Compounded FRO" <"An ISDA-defined calculated rate done using arithmetic averaging."> - CompoundedIndex displayName "Compounded Index" <"A published index calculated using compounding."> - Index displayName "Index" <"A published index using a methodology defined by the publisher, e.g. S&P 500."> - Other displayName "Other" - Overnight displayName "Overnight Rate" - PublishedAverage displayName "Published Average Rate" <" A published rate computed using an averaging methodology."> +enum FloatingRateIndexStyleEnum: <"Second level ISDA FRO category."> + AverageFRO displayName "Average FRO" <"An ISDA-defined calculated rate done using arithmetic averaging."> + CompoundedFRO displayName"Compounded FRO" <"An ISDA-defined calculated rate done using arithmetic averaging."> + CompoundedIndex displayName "Compounded Index" <"A published index calculated using compounding."> + Index displayName "Index" <"A published index using a methodology defined by the publisher, e.g. S&P 500."> + Other displayName "Other" + Overnight displayName "Overnight Rate" + PublishedAverage displayName "Published Average Rate" <" A published rate computed using an averaging methodology."> SpecifiedFormula displayName "Specified Formula" - SwapRate displayName "Swap Rate" <"A rate representing the market rate for swaps of a given maturity."> - TermRate displayName "Term Rate" <"A rate specified over a given term, such as a libor-type rate."> + SwapRate displayName "Swap Rate" <"A rate representing the market rate for swaps of a given maturity."> + TermRate displayName "Term Rate" <"A rate specified over a given term, such as a libor-type rate."> enum FloatingRateIndexCalculationMethodEnum: <"3rd level ISDA FRO category."> - OISCompound displayName "OIS Compounding" <"A calculation methodology using the ISDA-defined OIS compounding formula."> - Average displayName "Overnight Averaging" <"A calculation methodology using the arithmetic mean."> + OISCompound displayName "OIS Compounding" <"A calculation methodology using the ISDA-defined OIS compounding formula."> + Average displayName "Overnight Averaging" <"A calculation methodology using the arithmetic mean."> Compounded displayName "Compounded Index" AllInCompounded displayName "All-In Compounded Index" diff --git a/rosetta-source/src/main/rosetta/observable-asset-fro-type.rosetta b/rosetta-source/src/main/rosetta/observable-asset-fro-type.rosetta index 8eedb082f3..3336f75539 100644 --- a/rosetta-source/src/main/rosetta/observable-asset-fro-type.rosetta +++ b/rosetta-source/src/main/rosetta/observable-asset-fro-type.rosetta @@ -11,18 +11,17 @@ import cdm.base.staticdata.asset.common.* // these types are used to hold reference data about floating rate indexes // // ====================================================================== - type FloatingRateIndexDefinition: - fro FloatingRateIndexIdentification (1..1) <"The underlying FRO name and designated maturity."> - calculationDefaults FloatingRateIndexCalculationDefaults (0..1) <"Any calculation default values."> + fro FloatingRateIndexIdentification (1..1) <"The underlying FRO name and designated maturity."> + calculationDefaults FloatingRateIndexCalculationDefaults (0..1) <"Any calculation default values."> type FloatingRateIndexIdentification: - floatingRateIndex FloatingRateIndexEnum (0..1) <"The reference index that is used to specify the floating interest rate. The FpML standard maintains the list of such indices, which are positioned as enumeration values as part of the CDM."> - [metadata scheme] - currency ISOCurrencyCodeEnum (0..1) <"FRO currency - 3 character ISO currrency code"> - froType string (0..1) <"FRO type (e.g. OIS)"> + floatingRateIndex FloatingRateIndexEnum (0..1) <"The reference index that is used to specify the floating interest rate. The FpML standard maintains the list of such indices, which are positioned as enumeration values as part of the CDM."> + [metadata scheme] + currency ISOCurrencyCodeEnum (0..1) <"FRO currency - 3 character ISO currrency code"> + froType string (0..1) <"FRO type (e.g. OIS)"> type FloatingRateIndexCalculationDefaults: <"This holds the rate calculation defaults applicable for a floating rate index."> - category FloatingRateIndexCategoryEnum (0..1) <"The ISDA FRO category (e.g. screen rate or calculated rate)."> - indexStyle FloatingRateIndexStyleEnum (0..1) <"The ISDA FRO style (e.g. term rate, swap rate, etc)."> - method FloatingRateIndexCalculationMethodEnum (0..1) <"The ISDA FRO calculation method (e.g. OIS Compounding)."> + category FloatingRateIndexCategoryEnum (0..1) <"The ISDA FRO category (e.g. screen rate or calculated rate)."> + indexStyle FloatingRateIndexStyleEnum (0..1) <"The ISDA FRO style (e.g. term rate, swap rate, etc)."> + method FloatingRateIndexCalculationMethodEnum (0..1) <"The ISDA FRO calculation method (e.g. OIS Compounding)."> diff --git a/rosetta-source/src/main/rosetta/observable-asset-type.rosetta b/rosetta-source/src/main/rosetta/observable-asset-type.rosetta index 679cf364e1..17859e5e63 100644 --- a/rosetta-source/src/main/rosetta/observable-asset-type.rosetta +++ b/rosetta-source/src/main/rosetta/observable-asset-type.rosetta @@ -13,97 +13,101 @@ import cdm.mapping.config.* type ObservationSource: <"The observation source can be composed of an curve and/or and information source."> [deprecated] - curve Curve (0..1) - informationSource InformationSource (0..1) + curve Curve (0..1) + informationSource InformationSource (0..1) - condition CurveInformationSource: <"ObservationSource should not be empty, although the attribute cardinality would allow that."> - (curve exists and informationSource exists) - or curve exists - or informationSource exists + condition CurveInformationSource: <"ObservationSource should not be empty, although the attribute cardinality would allow that."> + (curve exists and informationSource exists) + or curve exists + or informationSource exists type SecurityValuation: <" Terms defining the security valuation method as part of a security leg in a securities fianncing transaction and closely modelled onto the CollateralValuation type in FpML."> - [deprecated] + [deprecated] - securityValuationModel SecurityValuationModel (1..1) <"The security valuation model choice, based on either a nominal amount or a number of units."> - underlier Security (1..1) <"The underlying security of the security leg."> + securityValuationModel SecurityValuationModel (1..1) <"The security valuation model choice, based on either a nominal amount or a number of units."> + underlier Security (1..1) <"The underlying security of the security leg."> type SecurityValuationModel: <" The security valuation model choice, which can either be based on nominal amount as for a bond, or on the number of contract units as for equity."> - [deprecated] + [deprecated] - bondValuationModel BondValuationModel (0..1) <"The valuation model when the security is a bond."> - unitContractValuationModel UnitContractValuationModel (0..1) <"The valuation model when the security is a unit contract like equity."> + bondValuationModel BondValuationModel (0..1) <"The valuation model when the security is a bond."> + unitContractValuationModel UnitContractValuationModel (0..1) <"The valuation model when the security is a unit contract like equity."> - condition: one-of + condition: + one-of type BondValuationModel: <" Bond valuation model for the security leg in a securities financing transaction, closely modelled onto the BondCollateral.model in FpML."> - [deprecated] + [deprecated] - nominalAmount Money (1..1) <"The quantity of the underlier expressed as a nominal amount."> - bondPriceAndYieldModel BondPriceAndYieldModel (1..1) <"Price and yield model for valuing a bond security leg."> - accrualsAmount Money (0..1) <"Accruals amount for the bond in the security leg"> + nominalAmount Money (1..1) <"The quantity of the underlier expressed as a nominal amount."> + bondPriceAndYieldModel BondPriceAndYieldModel (1..1) <"Price and yield model for valuing a bond security leg."> + accrualsAmount Money (0..1) <"Accruals amount for the bond in the security leg"> type BondPriceAndYieldModel: <" Bond price and yield valuation model for the security leg in a securities financing transaction, closely modelled onto the BondPriceAndYield.model in FpML."> - [deprecated] + [deprecated] - cleanOrDirtyPrice CleanOrDirtyPrice (0..1) <"Either the clean or dirty price of the bond."> - relativePrice RelativePrice (0..1) <"Bond price relative to a Benchmark."> - yieldToMaturity number (0..1) <"Price specified as a yield to maturity."> - inflationFactor number (0..1) <"The inflation factor is specified for inflation-linked products which require some additional elements to calculate prices correctly."> - allInPrice number (0..1) <"Bond all-in-price which is a price that includes all relevant price adjustments (i.e. accrued interest, haircut or margin ratio, inflation factor,etc.). It expresses a price in terms of percentage of nominal amount."> + cleanOrDirtyPrice CleanOrDirtyPrice (0..1) <"Either the clean or dirty price of the bond."> + relativePrice RelativePrice (0..1) <"Bond price relative to a Benchmark."> + yieldToMaturity number (0..1) <"Price specified as a yield to maturity."> + inflationFactor number (0..1) <"The inflation factor is specified for inflation-linked products which require some additional elements to calculate prices correctly."> + allInPrice number (0..1) <"Bond all-in-price which is a price that includes all relevant price adjustments (i.e. accrued interest, haircut or margin ratio, inflation factor,etc.). It expresses a price in terms of percentage of nominal amount."> type CleanOrDirtyPrice: <" Class specifying the bond price as either clean or dirty in a bond valuation model."> [deprecated] - cleanPrice CleanPrice (0..1) <"The clean price and accruals presented separately."> - dirtyPrice number (0..1) <"The dirty price presented as a single number."> + cleanPrice CleanPrice (0..1) <"The clean price and accruals presented separately."> + dirtyPrice number (0..1) <"The dirty price presented as a single number."> type CleanPrice: <" Class to specify the clean price of a bond in a bond valuation model, with accruals presented separately, and modelled onto the cleanPrice model in BonPriceAndYield.model in FpML."> [deprecated] - cleanPrice number (1..1) <"The clean price as a number."> - accruals number (0..1) <"The accruals as a number."> - dirtyPrice calculation (0..1) <"Placeholder for a calculation of dirtyPrice based on cleanPrice and accruals."> + cleanPrice number (1..1) <"The clean price as a number."> + accruals number (0..1) <"The accruals as a number."> + dirtyPrice calculation (0..1) <"Placeholder for a calculation of dirtyPrice based on cleanPrice and accruals."> type RelativePrice: <" Bond price relative to a benchmark, as in a convertible bond."> [deprecated] - spread number (1..1) <"The spread to a benchmark."> - bondEquityModel BondEquityModel (1..*) <"Bond equity model for convertible bonds."> + spread number (1..1) <"The spread to a benchmark."> + bondEquityModel BondEquityModel (1..*) <"Bond equity model for convertible bonds."> type BondEquityModel: <" Bond equity model to value convertible bonds and modelled onto BondEquity.model in FpML."> [deprecated] - bondchoiceModel BondChoiceModel (0..1) <"Either the bond or convertible bond."> - equity Equity (0..1) <"The equity."> + bondchoiceModel BondChoiceModel (0..1) <"Either the bond or convertible bond."> + equity Equity (0..1) <"The equity."> - condition: one-of + condition: + one-of type BondChoiceModel: <" Either a bond or convertible bond."> [deprecated] - bond Bond (0..1) - convertibleBond ConvertibleBond (0..1) + bond Bond (0..1) + convertibleBond ConvertibleBond (0..1) - condition: one-of + condition: + one-of type UnitContractValuationModel: <" Unit contract model for security valuation, e.g. for equity, modelled onto UnitContract.model in FpML."> - [deprecated] + [deprecated] - numberOfUnits Quantity (1..1) <"The number of units (index or securities)."> - unitPrice Money (1..1) <"The price of each unit."> + numberOfUnits Quantity (1..1) <"The number of units (index or securities)."> + unitPrice Money (1..1) <"The price of each unit."> type PremiumExpression: <"This class corresponds to the FpML Premium.model group for representing the option premium when expressed in a way other than an amount."> - premiumType PremiumTypeEnum (0..1) <"Forward start premium type"> - pricePerOption Money (0..1) <"The amount of premium to be paid expressed as a function of the number of options."> - percentageOfNotional number (0..1) <"The amount of premium to be paid expressed as a percentage of the notional value of the transaction. A percentage of 5% would be expressed as 0.05."> + premiumType PremiumTypeEnum (0..1) <"Forward start premium type"> + pricePerOption Money (0..1) <"The amount of premium to be paid expressed as a function of the number of options."> + percentageOfNotional number (0..1) <"The amount of premium to be paid expressed as a percentage of the notional value of the transaction. A percentage of 5% would be expressed as 0.05."> type CashPrice: <"Specifies the nature of a cash price either as a fee type, cash price type, or premium expression."> - cashPriceType CashPriceTypeEnum (1..1) <"Specifies the type of Cash Price."> - premiumExpression PremiumExpression (0..1) <"Specifies a premium when expressed in a way other than an amount, and any required forward starting price definition."> - feeType FeeTypeEnum (0..1) <"Specifies the event type associated with a fee."> + cashPriceType CashPriceTypeEnum (1..1) <"Specifies the type of Cash Price."> + premiumExpression PremiumExpression (0..1) <"Specifies a premium when expressed in a way other than an amount, and any required forward starting price definition."> + feeType FeeTypeEnum (0..1) <"Specifies the event type associated with a fee."> - condition PremiumType: <"Premium type can only be specified when the cash price type is a premium."> - if premiumExpression exists then cashPriceType = CashPriceTypeEnum -> Premium + condition PremiumType: <"Premium type can only be specified when the cash price type is a premium."> + if premiumExpression exists + then cashPriceType = CashPriceTypeEnum -> Premium type PriceComposite: <"Defines the inputs required to calculate a price as a simple composite of 2 other values. The inputs consist of 2 numbers and a simple arithmetic operator. This generic data type applies to a variety of use cases where a price is obtained by simple composition, e.g. dirty = clean + accrued (Bond), forward rate = spot rate + forward point (FX) etc."> baseValue number (1..1) <"The 1st value in the arithmetic operation, which may be non-commutative in some cases: Subtract, Divide). This 1st operand is called 'baseValue' as it refers to the price anchor in the arithmetic operation: e.g. the clean price (Bond) or the spot rate (FX)."> @@ -112,57 +116,59 @@ type PriceComposite: <"Defines the inputs required to calculate a price as a sim operandType PriceOperandEnum (0..1) <"Optionally qualifies the type of operand: e.g. accrued or forward point."> condition ArithmeticOperator: <"If operand type is accrued or forward point, then operator must be either add or subtract."> - if operandType = PriceOperandEnum -> ForwardPoint or operandType = PriceOperandEnum -> AccruedInterest - then arithmeticOperator = ArithmeticOperationEnum -> Add or arithmeticOperator = ArithmeticOperationEnum -> Subtract + if operandType = PriceOperandEnum -> ForwardPoint + or operandType = PriceOperandEnum -> AccruedInterest + then arithmeticOperator = ArithmeticOperationEnum -> Add + or arithmeticOperator = ArithmeticOperationEnum -> Subtract type PriceSchedule extends MeasureSchedule: <"Specifies the price of a financial instrument in a trade as a schedule of measures. A price generically expresses the value of an exchange as a ratio: it measures the amount of one thing needed to be exchanged for 1 unit of another thing (e.g. cash in a specific currency in exchange for a bond or share). This generic representation can be used to support any type of financial price beyond just cash price: e.g. an interest rate, a foreign exchange rate, etc. This data type is generically based on a schedule and can also be used to represent a price as a single value."> - perUnitOf UnitType (0..1) <"Provides an attribute to define the unit of the thing being priced. For example, {amount, unitOfAmount, PerUnitOfAmount} = [10, EUR, Shares] = (10.00 EUR/SHARE) * (300,000 SHARES) = EUR 3,000,000.00 (Shares cancel out in the calculation)."> + perUnitOf UnitType (0..1) <"Provides an attribute to define the unit of the thing being priced. For example, {amount, unitOfAmount, PerUnitOfAmount} = [10, EUR, Shares] = (10.00 EUR/SHARE) * (300,000 SHARES) = EUR 3,000,000.00 (Shares cancel out in the calculation)."> priceType PriceTypeEnum (1..1) <"Specifies the price type as an enumeration: interest rate, exchange rate, asset price etc. This attribute is mandatory so that prices can always be clasiffied according to their type. The price type implies some constraints on the price's units."> - priceExpression PriceExpressionEnum (0..1) <"(Optionally) Specifies whether the price is expressed in absolute or percentage terms."> + priceExpression PriceExpressionEnum (0..1) <"(Optionally) Specifies whether the price is expressed in absolute or percentage terms."> composite PriceComposite (0..1) <"(Optionally) Specifies the underlying price components if the price can be expressed as a composite: e.g. dirty price = clean price + accrued."> arithmeticOperator ArithmeticOperationEnum (0..1) <"(Optionally) When the price is to be understood as an operator to apply to an observable, i.e. a spread, multiplier or min/max."> cashPrice CashPrice (0..1) <"(Optionally when the price type is cash) Additional attributes that further define a cash price, e.g. what type of fee it is."> - + condition UnitOfAmountExists: <"Requires that a unit of amount must be specified for price unless price type is Variance, Volatility or Correlation."> if priceType = PriceTypeEnum -> Variance - or priceType = PriceTypeEnum -> Volatility - or priceType = PriceTypeEnum -> Correlation + or priceType = PriceTypeEnum -> Volatility + or priceType = PriceTypeEnum -> Correlation then unit is absent and perUnitOf is absent else unit exists and perUnitOf exists condition PositiveAssetPrice: <"Requires that per FpML rules, the FX rate must be a positive value."> - if ( priceType = PriceTypeEnum -> ExchangeRate or priceType = PriceTypeEnum -> AssetPrice ) - and arithmeticOperator is absent - then value > 0 + if (priceType = PriceTypeEnum -> ExchangeRate or priceType = PriceTypeEnum -> AssetPrice) + and arithmeticOperator is absent + then value > 0 condition PositiveSpotRate: <"Requires that per FpML rules, the spot rate must be a positive value, for example for FX or Commodities."> - if ( priceType = PriceTypeEnum -> ExchangeRate or priceType = PriceTypeEnum -> AssetPrice ) - and composite -> baseValue exists - then composite -> baseValue > 0 + if (priceType = PriceTypeEnum -> ExchangeRate or priceType = PriceTypeEnum -> AssetPrice) + and composite -> baseValue exists + then composite -> baseValue > 0 condition PositiveCashPrice: <"Requires that any price expressed as a cash price and generating a cashflow must be positive"> - if priceType = PriceTypeEnum -> CashPrice - then value > 0 + if priceType = PriceTypeEnum -> CashPrice then value > 0 condition CurrencyUnitForInterestRate: <"Requires that the unit of amount for an interest rate must be a currency."> if priceType = PriceTypeEnum -> InterestRate then unit -> currency exists - + condition Choice: <"The price can be specified mutually exclusively as a cashflow, an operator (e.g. a spread or multiplier), or a composite."> - optional choice cashPrice, arithmeticOperator, composite - + optional choice cashPrice, arithmeticOperator, composite + condition CashPrice: <"If a cash price type is specified, the price type must be cash, otherwise it must be non-cash."> - if cashPrice exists - then priceType = PriceTypeEnum -> CashPrice + if cashPrice exists + then priceType = PriceTypeEnum -> CashPrice condition ArithmeticOperator: <"Operator must not be subtract or divide."> arithmeticOperator <> ArithmeticOperationEnum -> Subtract - and arithmeticOperator <> ArithmeticOperationEnum -> Divide + and arithmeticOperator <> ArithmeticOperationEnum -> Divide condition SpreadPrice: <"A spread type can only be specified when the price type is an asset price or an interest rate."> if arithmeticOperator = ArithmeticOperationEnum -> Add - then priceType = PriceTypeEnum -> AssetPrice or priceType = PriceTypeEnum -> InterestRate + then priceType = PriceTypeEnum -> AssetPrice + or priceType = PriceTypeEnum -> InterestRate condition ForwardPoint: <"If composite operand type is ForwardPoint then the price type must be ExchangeRate."> if composite -> operandType = PriceOperandEnum -> ForwardPoint @@ -174,43 +180,44 @@ type PriceSchedule extends MeasureSchedule: <"Specifies the price of a financial type Price extends PriceSchedule: <"Specifies a price as a single value to be associated to a financial product. This data type extends PriceSchedule and requires that only the amount value exists."> - condition AmountOnlyExists: <"The amount must exist when the price represents a single value, and steps must be absent."> - value exists and datedValue is absent + condition AmountOnlyExists: <"The amount must exist when the price represents a single value, and steps must be absent."> + value exists and datedValue is absent type Observable: <"Specifies the object to be observed for a price, it could be an asset or a reference."> - [metadata key] - - rateOption FloatingRateOption (0..1) <"Specifies a floating rate index and tenor."> - [metadata location] - commodity Commodity (0..1) <"Identifies a commodity by referencing a product identifier."> - [metadata location] - productIdentifier ProductIdentifier (0..*) <"Comprises of an identifier and a source. The associated metadata key denotes the ability to associate a hash value to the ProductIdentifier instantiations for the purpose of model cross-referencing, in support of functionality such as the event effect and the lineage."> - [metadata location] - currencyPair QuotedCurrencyPair (0..1) <"Describes the composition of a rate that has been quoted or is to be quoted, including the two currencies and the quotation relationship between the two currencies."> + [metadata key] + + rateOption FloatingRateOption (0..1) <"Specifies a floating rate index and tenor."> [metadata location] - optionReferenceType OptionReferenceTypeEnum (0..1) <"The underlying contract which is referenced when determining the final settlement price of the instrument. Eg. Rolling Front Month Future; Spot etc."> + commodity Commodity (0..1) <"Identifies a commodity by referencing a product identifier."> + [metadata location] + productIdentifier ProductIdentifier (0..*) <"Comprises of an identifier and a source. The associated metadata key denotes the ability to associate a hash value to the ProductIdentifier instantiations for the purpose of model cross-referencing, in support of functionality such as the event effect and the lineage."> + [metadata location] + currencyPair QuotedCurrencyPair (0..1) <"Describes the composition of a rate that has been quoted or is to be quoted, including the two currencies and the quotation relationship between the two currencies."> + [metadata location] + optionReferenceType OptionReferenceTypeEnum (0..1) <"The underlying contract which is referenced when determining the final settlement price of the instrument. Eg. Rolling Front Month Future; Spot etc."> - condition ObservableChoice: <"An observable can only be composed of one type any time."> - required choice rateOption, commodity, productIdentifier, currencyPair + condition ObservableChoice: <"An observable can only be composed of one type any time."> + required choice rateOption, commodity, productIdentifier, currencyPair type InformationSource: <"A class defining the source for a piece of information (e.g. a rate fix or an FX fixing). The attribute names have been adjusted from FpML to address the fact that the information is not limited to rates."> - sourceProvider InformationProviderEnum (1..1) <"An information source for obtaining a market data point. For example Bloomberg, Reuters, Telerate, etc."> - [metadata scheme] - [synonym FIX_5_0_SP2 value "RateSource" tag 1446] - sourcePage string (0..1) <"A specific page for the source for obtaining a market data point. In FpML, this is specified as a scheme, rateSourcePageScheme, for which no coding Scheme or URI is specified."> - [metadata scheme] - sourcePageHeading string (0..1) <"The heading for the source on a given source page."> + sourceProvider InformationProviderEnum (1..1) <"An information source for obtaining a market data point. For example Bloomberg, Reuters, Telerate, etc."> + [metadata scheme] + [synonym FIX_5_0_SP2 value "RateSource" tag 1446] + sourcePage string (0..1) <"A specific page for the source for obtaining a market data point. In FpML, this is specified as a scheme, rateSourcePageScheme, for which no coding Scheme or URI is specified."> + [metadata scheme] + sourcePageHeading string (0..1) <"The heading for the source on a given source page."> type Money extends Quantity: <"Defines a monetary amount in a specified currency."> - [metadata key] - condition CurrencyUnitExists: - unit -> currency exists + [metadata key] + + condition CurrencyUnitExists: + unit -> currency exists type ExchangeRate: <"A class that is used for describing the exchange rate for a particular transaction."> [deprecated] - crossRate CrossRate (0..*) <"An optional element that allow for definition of the currency exchange rates used to cross between the traded currencies for non-base currency FX contracts."> + crossRate CrossRate (0..*) <"An optional element that allow for definition of the currency exchange rates used to cross between the traded currencies for non-base currency FX contracts."> type FxRateObservable: <"Defines foreign exchange (FX) asset class specific parameters for market observations."> @@ -221,275 +228,271 @@ type FxRateObservable: <"Defines foreign exchange (FX) asset class specific para type QuotedCurrencyPair: <"A class that describes the composition of a rate that has been quoted or is to be quoted. This includes the two currencies and the quotation relationship between the two currencies and is used as a building block throughout the FX specification."> - currency1 string (1..1) <"The first currency specified when a pair of currencies is to be evaluated."> - [metadata scheme] - currency2 string (1..1) <"The second currency specified when a pair of currencies is to be evaluated."> - [metadata scheme] - quoteBasis QuoteBasisEnum (1..1) <"The method by which the exchange rate is quoted."> + currency1 string (1..1) <"The first currency specified when a pair of currencies is to be evaluated."> + [metadata scheme] + currency2 string (1..1) <"The second currency specified when a pair of currencies is to be evaluated."> + [metadata scheme] + quoteBasis QuoteBasisEnum (1..1) <"The method by which the exchange rate is quoted."> type CrossRate extends QuotedCurrencyPair: <"A class that is used for including the currency exchange rates used to cross between the traded currencies for non-base currency FX contracts."> [deprecated] - rate number (1..1) <"The exchange rate used to cross between the traded currencies."> - spotRate number (0..1) <"An optional element used for FX forwards and certain types of FX OTC options. For deals consummated in the FX Forwards Market, this represents the current market rate for a particular currency pair."> - forwardPoints number (0..1) <"An optional element used for deals consummated in the FX Forwards market. Forward points represent the interest rate differential between the two currencies traded and are quoted as a premium or a discount. Forward points are added to, or subtracted from, the spot rate to create the rate of the forward trade."> + rate number (1..1) <"The exchange rate used to cross between the traded currencies."> + spotRate number (0..1) <"An optional element used for FX forwards and certain types of FX OTC options. For deals consummated in the FX Forwards Market, this represents the current market rate for a particular currency pair."> + forwardPoints number (0..1) <"An optional element used for deals consummated in the FX Forwards market. Forward points represent the interest rate differential between the two currencies traded and are quoted as a premium or a discount. Forward points are added to, or subtracted from, the spot rate to create the rate of the forward trade."> - condition CrossRate: - if forwardPoints exists - then spotRate exists + condition CrossRate: + if forwardPoints exists then spotRate exists type Curve: - interestRateCurve InterestRateCurve (0..1) - commodityCurve CommodityReferencePriceEnum (0..1) - [metadata scheme] + interestRateCurve InterestRateCurve (0..1) + commodityCurve CommodityReferencePriceEnum (0..1) + [metadata scheme] - condition Curve: one-of + condition Curve: + one-of type InterestRateCurve: - floatingRateIndex FloatingRateIndexEnum (1..1) - [metadata scheme] - tenor Period (1..1) + floatingRateIndex FloatingRateIndexEnum (1..1) + [metadata scheme] + tenor Period (1..1) type TransactedPrice: <" A class to represent the transacted price attributes that are positioned as part of the FpML FeeLeg."> - marketFixedRate number (0..1) <"An optional element that only has meaning in a credit index trade. This element contains the credit spread ('fair value') at which the trade was executed. Unlike the fixedRate of an index, the marketFixedRate varies over the life of the index depending on market conditions. The marketFixedRate is the price of the index as quoted by trading desks."> - initialPoints number (0..1) <"An optional element that contains the up-front points expressed as a percentage of the notional. An initialPoints value of 5% would be represented as 0.05. The initialPoints element is an alternative to marketFixedRate in quoting the traded level of a trade. When initialPoints is used, the traded level is the sum of fixedRate and initialPoints. The initialPoints is one of the items that are factored into the initialPayment calculation and is payable by the Buyer to the Seller. Note that initialPoints and marketFixedRate may both be present in the same document when both implied values are desired."> - marketPrice number (0..1) <"An optional element that only has meaning in a credit index trade. This element contains the price at which the trade was executed and is used instead of marketFixedRate on credit trades on certain indicies which are quoted using a price rather than a spread."> - quotationStyle QuotationStyleEnum (0..1) <"An optional element that contains the up-front points expressed as a percentage of the notional. An initialPoints value of 5% would be represented as 0.05. The initialPoints element is an alternative to marketFixedRate in quoting the traded level of a trade. When initialPoints is used, the traded level is the sum of fixedRate and initialPoints. The initialPoints is one of the items that are factored into the initialPayment calculation and is payable by the Buyer to the Seller. Note that initialPoints and marketFixedRate may both be present in the same document when both implied values are desired."> - + marketFixedRate number (0..1) <"An optional element that only has meaning in a credit index trade. This element contains the credit spread ('fair value') at which the trade was executed. Unlike the fixedRate of an index, the marketFixedRate varies over the life of the index depending on market conditions. The marketFixedRate is the price of the index as quoted by trading desks."> + initialPoints number (0..1) <"An optional element that contains the up-front points expressed as a percentage of the notional. An initialPoints value of 5% would be represented as 0.05. The initialPoints element is an alternative to marketFixedRate in quoting the traded level of a trade. When initialPoints is used, the traded level is the sum of fixedRate and initialPoints. The initialPoints is one of the items that are factored into the initialPayment calculation and is payable by the Buyer to the Seller. Note that initialPoints and marketFixedRate may both be present in the same document when both implied values are desired."> + marketPrice number (0..1) <"An optional element that only has meaning in a credit index trade. This element contains the price at which the trade was executed and is used instead of marketFixedRate on credit trades on certain indicies which are quoted using a price rather than a spread."> + quotationStyle QuotationStyleEnum (0..1) <"An optional element that contains the up-front points expressed as a percentage of the notional. An initialPoints value of 5% would be represented as 0.05. The initialPoints element is an alternative to marketFixedRate in quoting the traded level of a trade. When initialPoints is used, the traded level is the sum of fixedRate and initialPoints. The initialPoints is one of the items that are factored into the initialPayment calculation and is payable by the Buyer to the Seller. Note that initialPoints and marketFixedRate may both be present in the same document when both implied values are desired."> type ReferenceSwapCurve: <"A complex type used to specify the option and convertible bond option strike when expressed in reference to a swap curve."> - swapUnwindValue SwapCurveValuation (1..1) - makeWholeAmount MakeWholeAmount (0..1) <"Amount to be paid by the buyer of the option if the option is exercised prior to the Early Call Date. (The market practice in the convertible bond option space being that the buyer should be penalised if he/she exercises the option early on.)"> + swapUnwindValue SwapCurveValuation (1..1) + makeWholeAmount MakeWholeAmount (0..1) <"Amount to be paid by the buyer of the option if the option is exercised prior to the Early Call Date. (The market practice in the convertible bond option space being that the buyer should be penalised if he/she exercises the option early on.)"> type MakeWholeAmount extends SwapCurveValuation: <"A class to specify the amount to be paid by the buyer of the option if the option is exercised prior to the Early Call Date (typically applicable to the convertible bond options)."> - interpolationMethod InterpolationMethodEnum (0..1) <"The type of interpolation method that the calculation agent reserves the right to use."> - earlyCallDate date (1..1) <"Date prior to which the option buyer will have to pay a Make Whole Amount to the option seller if he/she exercises the option."> - [metadata id] + interpolationMethod InterpolationMethodEnum (0..1) <"The type of interpolation method that the calculation agent reserves the right to use."> + earlyCallDate date (1..1) <"Date prior to which the option buyer will have to pay a Make Whole Amount to the option seller if he/she exercises the option."> + [metadata id] type SwapCurveValuation: <"A class to specify a valuation swap curve, which is used as part of the strike construct for the bond and convertible bond options."> - floatingRateIndex FloatingRateIndexEnum (1..1) - indexTenor Period (0..1) <"The ISDA Designated Maturity, i.e. the tenor of the floating rate."> - spread number (1..1) <"Spread in basis points over the floating rate index."> - side QuotationSideEnum (0..1) <"The side (bid/mid/ask) of the measure."> + floatingRateIndex FloatingRateIndexEnum (1..1) + indexTenor Period (0..1) <"The ISDA Designated Maturity, i.e. the tenor of the floating rate."> + spread number (1..1) <"Spread in basis points over the floating rate index."> + side QuotationSideEnum (0..1) <"The side (bid/mid/ask) of the measure."> type ValuationDates: <"Defines how and when a performance type option or performance type swap is to be valued, including initial, interim and final valuation dates."> - valuationDatesInitial PerformanceValuationDates (0..1) <"Specifies the initial valuation dates of the underlyer."> - valuationDatesInterim PerformanceValuationDates (0..1) <"Specifies the interim valuation dates of the underlyer."> - valuationDatesFinal PerformanceValuationDates (1..1) <"Specifies the final valuation dates of the underlyer."> + valuationDatesInitial PerformanceValuationDates (0..1) <"Specifies the initial valuation dates of the underlyer."> + valuationDatesInterim PerformanceValuationDates (0..1) <"Specifies the interim valuation dates of the underlyer."> + valuationDatesFinal PerformanceValuationDates (1..1) <"Specifies the final valuation dates of the underlyer."> -type PerformanceValuationDates : <"Defines how and when a performance type option or performance type swap is to be valued."> +type PerformanceValuationDates: <"Defines how and when a performance type option or performance type swap is to be valued."> [metadata key] - determinationMethod DeterminationMethodEnum (1..1) <"Specifies the method according to which an amount or a date is determined."> - valuationDates AdjustableRelativeOrPeriodicDates (0..1) <"2018 ISDA CDM Equity Confirmation for Security Equity Swap: Pricing Date"> - valuationDate AdjustableOrRelativeDate (0..1) <"2018 ISDA CDM Equity Confirmation for Security Equity Swap: Pricing Date"> - valuationTime BusinessCenterTime (0..1) <"The specific time of day at which the calculation agent values the underlying. The SpecificTime is the only case when the valuationTime (time + business center location e.g. 10:00:00 USNY) should be provided. You should be able to provide just the valuationTime without valuationTimeType, which infer that this is a specific time."> - valuationTimeType TimeTypeEnum (0..1) <"The time of day at which the calculation agent values the underlying, for example the official closing time of the exchange."> + determinationMethod DeterminationMethodEnum (1..1) <"Specifies the method according to which an amount or a date is determined."> + valuationDates AdjustableRelativeOrPeriodicDates (0..1) <"2018 ISDA CDM Equity Confirmation for Security Equity Swap: Pricing Date"> + valuationDate AdjustableOrRelativeDate (0..1) <"2018 ISDA CDM Equity Confirmation for Security Equity Swap: Pricing Date"> + valuationTime BusinessCenterTime (0..1) <"The specific time of day at which the calculation agent values the underlying. The SpecificTime is the only case when the valuationTime (time + business center location e.g. 10:00:00 USNY) should be provided. You should be able to provide just the valuationTime without valuationTimeType, which infer that this is a specific time."> + valuationTimeType TimeTypeEnum (0..1) <"The time of day at which the calculation agent values the underlying, for example the official closing time of the exchange."> type FxRateSourceFixing: <"Describes a rate source to be fixed and the date the fixing occurs"> - settlementRateSource FxSettlementRateSource (1..1) - fixingDate AdjustableDate (1..1) <"The date on which the fixing is scheduled to occur."> + settlementRateSource FxSettlementRateSource (1..1) + fixingDate AdjustableDate (1..1) <"The date on which the fixing is scheduled to occur."> type FxInformationSource extends InformationSource: <"Information source specific to Foreign Exchange products."> - fixingTime BusinessCenterTime (0..1) <"The time that the fixing will be taken along with a business center to define the time zone."> + fixingTime BusinessCenterTime (0..1) <"The time that the fixing will be taken along with a business center to define the time zone."> type FallbackReferencePrice: <"The method, prioritised by the order it is listed in this element, to get a replacement rate for the disrupted settlement rate option."> - valuationPostponement ValuationPostponement (0..1) <"Specifies how long to wait to get a quote from a settlement rate option upon a price source disruption."> - - fallBackSettlementRateOption SettlementRateOptionEnum (0..*) <"This settlement rate option will be used in its place."> - [metadata scheme] - fallbackSurveyValuationPostponement boolean (0..1) <"Request rate quotes from the market. This element is set as type Empty in FpML. When present, the FpML synonym is mapped to a value True in the CDM."> - calculationAgentDetermination CalculationAgent (0..1) <"The calculation agent will decide the rate."> + valuationPostponement ValuationPostponement (0..1) <"Specifies how long to wait to get a quote from a settlement rate option upon a price source disruption."> + fallBackSettlementRateOption SettlementRateOptionEnum (0..*) <"This settlement rate option will be used in its place."> + [metadata scheme] + fallbackSurveyValuationPostponement boolean (0..1) <"Request rate quotes from the market. This element is set as type Empty in FpML. When present, the FpML synonym is mapped to a value True in the CDM."> + calculationAgentDetermination CalculationAgent (0..1) <"The calculation agent will decide the rate."> - condition MaximumDaysOfPostponement: <"FpML specifies maximumDaysOfPostponement as a positive integer."> - if valuationPostponement exists - then valuationPostponement -> maximumDaysOfPostponement > 0 + condition MaximumDaysOfPostponement: <"FpML specifies maximumDaysOfPostponement as a positive integer."> + if valuationPostponement exists + then valuationPostponement -> maximumDaysOfPostponement > 0 - condition FallbackCalculationAgent: + condition FallbackCalculationAgent: if calculationAgentDetermination -> calculationAgentParty exists then calculationAgentDetermination -> calculationAgentParty = AncillaryRoleEnum -> CalculationAgentFallback type ValuationPostponement: <"Specifies how long to wait to get a quote from a settlement rate option upon a price source disruption."> - maximumDaysOfPostponement int (1..1) <"The maximum number of days to wait for a quote from the disrupted settlement rate option before proceeding to the next method."> + maximumDaysOfPostponement int (1..1) <"The maximum number of days to wait for a quote from the disrupted settlement rate option before proceeding to the next method."> type FloatingRateOption: <"Specification of a floating rate option as a floating rate index and tenor."> - floatingRateIndex FloatingRateIndexEnum (0..1) <"The reference index that is used to specify the floating interest rate. The FpML standard maintains the list of such indices, which are positioned as enumeration values as part of the CDM."> - [metadata scheme] - inflationRateIndex InflationRateIndexEnum (0..1) <"The reference index that is used to specify the inflation interest rate. The FpML standard maintains the list of such indices, which are positioned as enumeration values as part of the CDM."> - [metadata scheme] + floatingRateIndex FloatingRateIndexEnum (0..1) <"The reference index that is used to specify the floating interest rate. The FpML standard maintains the list of such indices, which are positioned as enumeration values as part of the CDM."> + [metadata scheme] + inflationRateIndex InflationRateIndexEnum (0..1) <"The reference index that is used to specify the inflation interest rate. The FpML standard maintains the list of such indices, which are positioned as enumeration values as part of the CDM."> + [metadata scheme] indexTenor Period (0..1) <"The ISDA Designated Maturity, i.e. the floating rate tenor."> indexReferenceInformation IndexReferenceInformation (0..1) <"This Attribute contains all the terms relevant to defining an Index."> condition FloatingRateIndex: <"A required choice condition for either a floating rate or inflation rate index."> - required choice floatingRateIndex, inflationRateIndex + required choice floatingRateIndex, inflationRateIndex type FxRate: <"A class describing the rate of a currency conversion: pair of currency, quotation mode and exchange rate."> - quotedCurrencyPair QuotedCurrencyPair (1..1) <"Defines the two currencies for an FX trade and the quotation relationship between the two currencies."> - rate number (0..1) <"The rate of exchange between the two currencies of the leg of a deal. Must be specified with a quote basis."> + quotedCurrencyPair QuotedCurrencyPair (1..1) <"Defines the two currencies for an FX trade and the quotation relationship between the two currencies."> + rate number (0..1) <"The rate of exchange between the two currencies of the leg of a deal. Must be specified with a quote basis."> type FxSpotRateSource: <"A class defining the rate source and fixing time for an FX rate."> - primarySource InformationSource (1..1) <"The primary source for where the rate observation will occur. Will typically be either a page or a reference bank published rate."> - secondarySource InformationSource (0..1) <"An alternative, or secondary, source for where the rate observation will occur. Will typically be either a page or a reference bank published rate."> + primarySource InformationSource (1..1) <"The primary source for where the rate observation will occur. Will typically be either a page or a reference bank published rate."> + secondarySource InformationSource (0..1) <"An alternative, or secondary, source for where the rate observation will occur. Will typically be either a page or a reference bank published rate."> type RateObservation: <"A class defining parameters associated with an individual observation or fixing. This class forms part of the cashflow representation of a stream."> - [metadata key] - - resetDate date (0..1) <"The reset date."> - adjustedFixingDate date (0..1) <"The adjusted fixing date, i.e. the actual date the rate is observed. The date should already be adjusted for any applicable business day convention."> - observedRate number (0..1) <"The actual observed rate before any required rate treatment is applied, e.g. before converting a rate quoted on a discount basis to an equivalent yield. An observed rate of 5% would be represented as 0.05."> - treatedRate number (0..1) <"The observed rate after any required rate treatment is applied. A treated rate of 5% would be represented as 0.05."> - observationWeight int (0..1) <"The number of days weighting to be associated with the rate observation, i.e. the number of days such rate is in effect. This is applicable in the case of a weighted average method of calculation where more than one reset date is established for a single calculation period."> - rateReference RateObservation (0..1) <"A pointer style reference to a floating rate component defined as part of a stub calculation period amount component. It is only required when it is necessary to distinguish two rate observations for the same fixing date which could occur when linear interpolation of two different rates occurs for a stub calculation period."> - [metadata reference] - forecastRate number (0..1) <"The value representing the forecast rate used to calculate the forecast future value of the accrual period.A value of 1% should be represented as 0.01."> - treatedForecastRate number (0..1) <"The value representing the forecast rate after applying rate treatment rules. A value of 1% should be represented as 0.01."> - - condition PositiveObservationWeight: <"FpML specifies observationWeight as a positive integer."> - if observationWeight exists - then observationWeight >= 0 + [metadata key] -type CreditNotation: <"Represents a class to specify the credit notation as the combination of agency, notation, scale and debt type qualifications."> + resetDate date (0..1) <"The reset date."> + adjustedFixingDate date (0..1) <"The adjusted fixing date, i.e. the actual date the rate is observed. The date should already be adjusted for any applicable business day convention."> + observedRate number (0..1) <"The actual observed rate before any required rate treatment is applied, e.g. before converting a rate quoted on a discount basis to an equivalent yield. An observed rate of 5% would be represented as 0.05."> + treatedRate number (0..1) <"The observed rate after any required rate treatment is applied. A treated rate of 5% would be represented as 0.05."> + observationWeight int (0..1) <"The number of days weighting to be associated with the rate observation, i.e. the number of days such rate is in effect. This is applicable in the case of a weighted average method of calculation where more than one reset date is established for a single calculation period."> + rateReference RateObservation (0..1) <"A pointer style reference to a floating rate component defined as part of a stub calculation period amount component. It is only required when it is necessary to distinguish two rate observations for the same fixing date which could occur when linear interpolation of two different rates occurs for a stub calculation period."> + [metadata reference] + forecastRate number (0..1) <"The value representing the forecast rate used to calculate the forecast future value of the accrual period.A value of 1% should be represented as 0.01."> + treatedForecastRate number (0..1) <"The value representing the forecast rate after applying rate treatment rules. A value of 1% should be represented as 0.01."> + + condition PositiveObservationWeight: <"FpML specifies observationWeight as a positive integer."> + if observationWeight exists then observationWeight >= 0 - agency CreditRatingAgencyEnum (1..1) <"Specifies The credit agency to which the other variables (notation, scale, debt type) refer to."> +type CreditNotation: <"Represents a class to specify the credit notation as the combination of agency, notation, scale and debt type qualifications."> - notation string (1..1) <"Specifies The credit rating notation. As it varies among credit rating agencies, FpML doesn't specify a default scheme."> - [metadata scheme] - scale string (0..1) <"Specifies the credit rating scale, with a typical distinction between short term, long term. FpML doesn't specify a default scheme, which is hence not specified as an enumeration as part of the CDM."> - [metadata scheme] - debt CreditRatingDebt (0..1) <"Specifies the credit rating debt type (e.g. long term, high yield, deposits, ...) associated with the credit rating notation and scale."> - outlook CreditRatingOutlookEnum (0..1) <"Assesses the potential direction of a long-term credit rating over the intermediate term, which is generally up to two years for investment grade and generally up to one year for speculative grade."> - creditWatch CreditRatingCreditWatchEnum (0..1) <"Indicates the potential direction of a short-term or long-term rating. It focuses on identifiable events and short-term trends that cause ratings to be placed under special surveillance."> + agency CreditRatingAgencyEnum (1..1) <"Specifies The credit agency to which the other variables (notation, scale, debt type) refer to."> + notation string (1..1) <"Specifies The credit rating notation. As it varies among credit rating agencies, FpML doesn't specify a default scheme."> + [metadata scheme] + scale string (0..1) <"Specifies the credit rating scale, with a typical distinction between short term, long term. FpML doesn't specify a default scheme, which is hence not specified as an enumeration as part of the CDM."> + [metadata scheme] + debt CreditRatingDebt (0..1) <"Specifies the credit rating debt type (e.g. long term, high yield, deposits, ...) associated with the credit rating notation and scale."> + outlook CreditRatingOutlookEnum (0..1) <"Assesses the potential direction of a long-term credit rating over the intermediate term, which is generally up to two years for investment grade and generally up to one year for speculative grade."> + creditWatch CreditRatingCreditWatchEnum (0..1) <"Indicates the potential direction of a short-term or long-term rating. It focuses on identifiable events and short-term trends that cause ratings to be placed under special surveillance."> type CreditNotations: <"Represents the credit rating notation higher level construct, which provides the ability to specify multiple rating notations."> - creditNotation CreditNotation (0..1) <"Specifies only one credit notation is determined."> - creditNotations MultipleCreditNotations (0..1) <"Specifies if several credit notations exist, alongside an 'any' or 'all' or all condition."> + creditNotation CreditNotation (0..1) <"Specifies only one credit notation is determined."> + creditNotations MultipleCreditNotations (0..1) <"Specifies if several credit notations exist, alongside an 'any' or 'all' or all condition."> - condition: one-of + condition: + one-of type CreditRatingDebt: <"Specifies the credit rating debt type(s) associated with the credit rating notation and scale. When several debt types are specified, they must be qualified through an 'any' or 'all'."> - debtType string (0..1) <"Specifies when there is only one debt type. FpML doesn't specify values in relation to the associated scheme, which is hence not specified as an enumeration as part of the CDM."> - [metadata scheme] - debtTypes MultipleDebtTypes (0..1) <"Specifies if there are several debt types, alongside an 'any' or 'all' or all condition. As an example, Baa1 rating is required for any long term debt and deposit."> + debtType string (0..1) <"Specifies when there is only one debt type. FpML doesn't specify values in relation to the associated scheme, which is hence not specified as an enumeration as part of the CDM."> + [metadata scheme] + debtTypes MultipleDebtTypes (0..1) <"Specifies if there are several debt types, alongside an 'any' or 'all' or all condition. As an example, Baa1 rating is required for any long term debt and deposit."> - condition: one-of + condition: + one-of type MultipleCreditNotations: <"Represetns a class to specify multiple credit notations alongside a conditional 'any' or 'all' qualifier."> - condition QuantifierEnum (1..1) <"An enumerated element, to qualify whether All or Any credit notation applies."> - creditNotation CreditNotation (2..*) <"At least two credit notations much be specified."> - [metadata scheme] - mismatchResolution CreditNotationMismatchResolutionEnum (0..1) - referenceAgency CreditRatingAgencyEnum (0..1) + condition QuantifierEnum (1..1) <"An enumerated element, to qualify whether All or Any credit notation applies."> + creditNotation CreditNotation (2..*) <"At least two credit notations much be specified."> + [metadata scheme] + mismatchResolution CreditNotationMismatchResolutionEnum (0..1) + referenceAgency CreditRatingAgencyEnum (0..1) - condition ReferenceAgency: <"If the mismatch resolution is ReferenceAgency, ensure that the reference agency is specified."> - if mismatchResolution = CreditNotationMismatchResolutionEnum -> ReferenceAgency - then referenceAgency exists + condition ReferenceAgency: <"If the mismatch resolution is ReferenceAgency, ensure that the reference agency is specified."> + if mismatchResolution = CreditNotationMismatchResolutionEnum -> ReferenceAgency + then referenceAgency exists type MultipleDebtTypes: <"Represents a class to specify multiple credit debt types alongside a conditional 'any' or 'all' qualifier."> - condition QuantifierEnum (1..1) <"An enumerated attribute, to qualify whether All or Any debt type applies."> - debtType string (2..*) <"The type of debt, e.g. long term debt, deposit, ... FpML doesn't specific a scheme value, hence no enumeration is specified as part of the CDM. At least two debt types much be specified."> - [metadata scheme] - + condition QuantifierEnum (1..1) <"An enumerated attribute, to qualify whether All or Any debt type applies."> + debtType string (2..*) <"The type of debt, e.g. long term debt, deposit, ... FpML doesn't specific a scheme value, hence no enumeration is specified as part of the CDM. At least two debt types much be specified."> + [metadata scheme] type FxSettlementRateSource: <"The source of the Foreign Exchange settlement rate."> - settlementRateOption string (0..1) <"Indicates that an officially defined rate settlement rate option will be the used for the fixing."> - [metadata scheme] - nonstandardSettlementRate FxInformationSource (0..1) <"Indicates that a non-standard rate source will be used for the fixing."> + settlementRateOption string (0..1) <"Indicates that an officially defined rate settlement rate option will be the used for the fixing."> + [metadata scheme] + nonstandardSettlementRate FxInformationSource (0..1) <"Indicates that a non-standard rate source will be used for the fixing."> - condition FxSettlementRateSourceChoice: - required choice settlementRateOption, nonstandardSettlementRate + condition FxSettlementRateSourceChoice: + required choice settlementRateOption, nonstandardSettlementRate type CalculationAgent: <"A class defining the ISDA calculation agent responsible for performing duties as defined in the applicable product definitions."> - calculationAgentParty AncillaryRoleEnum (0..1) <"Specifies the party which is the ISDA Calculation Agent for the trade. If more than one party is referenced then the parties are assumed to be co-calculation agents, i.e. they have joint responsibility."> - calculationAgentPartyEnum PartyDeterminationEnum (0..1) <"Specifies the ISDA calculation agent responsible for performing duties as defined in the applicable product definitions. For example, the Calculation Agent may be defined as being the Non-exercising Party."> - calculationAgentBusinessCenter BusinessCenterEnum (0..1) <"The city in which the office through which ISDA Calculation Agent is acting for purposes of the transaction is located The short-form confirm for a trade that is executed under a Sovereign or Asia Pacific Master Confirmation Agreement ( MCA ), does not need to specify the Calculation Agent. However, the confirm does need to specify the Calculation Agent City. This is due to the fact that the MCA sets the value for Calculation Agent but does not set the value for Calculation Agent City."> - [metadata scheme] + calculationAgentParty AncillaryRoleEnum (0..1) <"Specifies the party which is the ISDA Calculation Agent for the trade. If more than one party is referenced then the parties are assumed to be co-calculation agents, i.e. they have joint responsibility."> + calculationAgentPartyEnum PartyDeterminationEnum (0..1) <"Specifies the ISDA calculation agent responsible for performing duties as defined in the applicable product definitions. For example, the Calculation Agent may be defined as being the Non-exercising Party."> + calculationAgentBusinessCenter BusinessCenterEnum (0..1) <"The city in which the office through which ISDA Calculation Agent is acting for purposes of the transaction is located The short-form confirm for a trade that is executed under a Sovereign or Asia Pacific Master Confirmation Agreement ( MCA ), does not need to specify the Calculation Agent. However, the confirm does need to specify the Calculation Agent City. This is due to the fact that the MCA sets the value for Calculation Agent but does not set the value for Calculation Agent City."> + [metadata scheme] - condition CalculationAgentChoice: <"Choice rule to represent an FpML choice construct."> - optional choice calculationAgentParty, calculationAgentPartyEnum + condition CalculationAgentChoice: <"Choice rule to represent an FpML choice construct."> + optional choice calculationAgentParty, calculationAgentPartyEnum type SettlementRateOption: <"Defines the settlement rate option to use for fixing in case of cash settlement. Currently only applicable to foreign exchange fixing in case of cross-currency settlement."> - settlementRateOption SettlementRateOptionEnum (1..1) <"The rate source for the conversion to the settlement currency. This source is specified through a scheme that reflects the terms of the Annex A to the 1998 FX and Currency Option Definitions."> - [metadata scheme] - priceSourceDisruption PriceSourceDisruption (0..1) <"An attribute defining the parameters to get a new quote when a settlement rate option is disrupted."> + settlementRateOption SettlementRateOptionEnum (1..1) <"The rate source for the conversion to the settlement currency. This source is specified through a scheme that reflects the terms of the Annex A to the 1998 FX and Currency Option Definitions."> + [metadata scheme] + priceSourceDisruption PriceSourceDisruption (0..1) <"An attribute defining the parameters to get a new quote when a settlement rate option is disrupted."> type MultipleValuationDates extends SingleValuationDate: - businessDaysThereafter int (0..1) <"The number of business days between successive valuation dates when multiple valuation dates are applicable for cash settlement. ISDA 2003 Term: Business Days thereafter."> - numberValuationDates int (0..1) <"Where multiple valuation dates are specified as being applicable for cash settlement, this element specifies (a) the number of applicable valuation dates, and (b) the number of business days after satisfaction of all conditions to settlement when the first such valuation date occurs, and (c) the number of business days thereafter of each successive valuation date. ISDA 2003 Term: Multiple Valuation Dates."> - condition BusinessDaysThereafter: <"FpML specifies businessDaysThereafter as a PositiveInteger."> - if businessDaysThereafter exists - then businessDaysThereafter >= 0 - condition NumberValuationDates: <"FpML specifies numberValuationDates as a PositiveInteger."> - if numberValuationDates exists - then numberValuationDates >= 0 + businessDaysThereafter int (0..1) <"The number of business days between successive valuation dates when multiple valuation dates are applicable for cash settlement. ISDA 2003 Term: Business Days thereafter."> + numberValuationDates int (0..1) <"Where multiple valuation dates are specified as being applicable for cash settlement, this element specifies (a) the number of applicable valuation dates, and (b) the number of business days after satisfaction of all conditions to settlement when the first such valuation date occurs, and (c) the number of business days thereafter of each successive valuation date. ISDA 2003 Term: Multiple Valuation Dates."> + condition BusinessDaysThereafter: <"FpML specifies businessDaysThereafter as a PositiveInteger."> + if businessDaysThereafter exists + then businessDaysThereafter >= 0 + + condition NumberValuationDates: <"FpML specifies numberValuationDates as a PositiveInteger."> + if numberValuationDates exists then numberValuationDates >= 0 type SingleValuationDate: <"A class to specify the number of business days after satisfaction of all conditions to settlement."> - businessDays int (0..1) <"A number of business days. Its precise meaning is dependant on the context in which this element is used. ISDA 2003 Term: Business Day."> - condition NonNegativeBusinessDays: <"FpML specifies businessDays as a NonNegativeInteger."> - if businessDays exists - then businessDays >= 0 + businessDays int (0..1) <"A number of business days. Its precise meaning is dependant on the context in which this element is used. ISDA 2003 Term: Business Day."> + condition NonNegativeBusinessDays: <"FpML specifies businessDays as a NonNegativeInteger."> + if businessDays exists then businessDays >= 0 type ValuationSource: <"A class describing the method for obtaining a settlement rate, specified through either an information source (page), a settlement rate option (fixing) or by using quotes from reference banks."> - quotedCurrencyPair QuotedCurrencyPair (0..1) <"Defines the two currencies for an FX trade and the quotation relationship between the two currencies. This attribute was formerly part of 'fxSettlementTerms', which is now being harmonised into a common 'CashSettlementTerms' that includes a 'ValuationDate'."> + quotedCurrencyPair QuotedCurrencyPair (0..1) <"Defines the two currencies for an FX trade and the quotation relationship between the two currencies. This attribute was formerly part of 'fxSettlementTerms', which is now being harmonised into a common 'CashSettlementTerms' that includes a 'ValuationDate'."> [metadata address "pointsTo"=Observable->currencyPair] - informationSource FxSpotRateSource (0..1) <"The information source where a published or displayed market rate will be obtained, e.g. Telerate Page 3750."> - settlementRateOption SettlementRateOption (0..1) <"The rate option to use for the fixing. Currently only applicable to foreign exchange fixing in case of cross-currency settlement."> - referenceBanks ReferenceBanks (0..1) <"A container for a set of reference institutions that may be called upon to provide rate quotations as part of the method to determine the applicable cash settlement amount. If institutions are not specified, it is assumed that reference institutions will be agreed between the parties on the exercise date, or in the case of swap transaction to which mandatory early termination is applicable, the cash settlement valuation date."> - dealerOrCCP AncillaryEntity (0..1) <"Holds an identifier for the reference entity that is agreed by both parties as a basis for cash settlement calculations. This could be a dealer from whom quotations are obtained by the calculation agent on the reference obligation for purposes of cash settlement in a credit event. ISDA 2003 Term: Dealer. This could be the clearing organization (CCP, DCO) to which the trade should be cleared, as applicable for cash-settled swaptions."> + informationSource FxSpotRateSource (0..1) <"The information source where a published or displayed market rate will be obtained, e.g. Telerate Page 3750."> + settlementRateOption SettlementRateOption (0..1) <"The rate option to use for the fixing. Currently only applicable to foreign exchange fixing in case of cross-currency settlement."> + referenceBanks ReferenceBanks (0..1) <"A container for a set of reference institutions that may be called upon to provide rate quotations as part of the method to determine the applicable cash settlement amount. If institutions are not specified, it is assumed that reference institutions will be agreed between the parties on the exercise date, or in the case of swap transaction to which mandatory early termination is applicable, the cash settlement valuation date."> + dealerOrCCP AncillaryEntity (0..1) <"Holds an identifier for the reference entity that is agreed by both parties as a basis for cash settlement calculations. This could be a dealer from whom quotations are obtained by the calculation agent on the reference obligation for purposes of cash settlement in a credit event. ISDA 2003 Term: Dealer. This could be the clearing organization (CCP, DCO) to which the trade should be cleared, as applicable for cash-settled swaptions."> - condition InformationSource: <"An information source must be provided."> - required choice informationSource, settlementRateOption, referenceBanks, dealerOrCCP + condition InformationSource: <"An information source must be provided."> + required choice informationSource, settlementRateOption, referenceBanks, dealerOrCCP type PriceSourceDisruption: <"A data defining: the parameters used to get a price quote to replace the settlement rate option that is disrupted."> - fallbackReferencePrice FallbackReferencePrice (1..1) <"The method, prioritised by the order it is listed in this element, to get a replacement rate for the disrupted settlement rate option."> + fallbackReferencePrice FallbackReferencePrice (1..1) <"The method, prioritised by the order it is listed in this element, to get a replacement rate for the disrupted settlement rate option."> type ValuationMethod: <"Specifies the parameters required to obtain a valuation, including the source, quotation method (bid, mid etc.) and any applicable quotation amount."> - valuationSource ValuationSource (1..1) <"The source for obtaining a valuation. This may come from some information source (e.g. Reuters), from a rate option fixing (e.g. FX fixing for cross-currency settlement), or from a set of reference banks. This is a mandatory attribute as the valuation method relies on one of those sources to be specified."> - quotationMethod QuotationRateTypeEnum (0..1) <"The type of price quotations to be requested from dealers when determining the market value of the reference obligation for purposes of cash settlement, or which rate quote is to be observed for a fixing. For example, Bid, Offer, Mid-market or Exercising Party Pays. ISDA 2003 Term: Quotation Method. The meaning of Exercising Party Pays is defined in the 2000 ISDA Definitions, Section 17.2. Certain Definitions Relating to Cash Settlement, paragraph (j)."> - valuationMethod ValuationMethodEnum (0..1) <"The ISDA defined methodology for determining the final price of the reference obligation for purposes of cash settlement. (ISDA 2003 Term: Valuation Method). For example, Market, Highest etc."> - quotationAmount Money (0..1) <"In the determination of a cash settlement amount, if weighted average quotations are to be obtained, the quotation amount specifies an upper limit to the outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount equal to the floating rate payer calculation amount. ISDA 2003 Term: Quotation Amount."> - minimumQuotationAmount Money (0..1) <"In the determination of a cash settlement amount, if weighted average quotations are to be obtained, the minimum quotation amount specifies a minimum intended threshold amount of outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount of the lower of either USD 1,000,000 (or its equivalent in the relevant obligation currency) or the quotation amount. ISDA 2003 Term: Minimum Quotation Amount."> - cashCollateralValuationMethod CashCollateralValuationMethod (0..1) <"Specifies the parameters representing several mid-market valuation and replacement value methods."> - - condition FpML_cd_37: <"FpML validation rule cd-37 - If condition quotationAmount is true, and if condition minimumQuotationAmount is true, and if both amounts have the same-currency, then quotationAmount/amount must be greater or equal to minimumQuotationAmount/amount."> - if (quotationAmount exists and minimumQuotationAmount exists) - and quotationAmount -> unit -> currency = minimumQuotationAmount -> unit -> currency - then quotationAmount -> value > minimumQuotationAmount -> value - - condition Dealer: <"When a quotation amount is specified, the dealer from which to obtain the quotation must be specified in the valuation source. This is typically applicable to determine the recovery amount in a credit event."> - if quotationAmount exists or minimumQuotationAmount exists - then valuationSource -> dealerOrCCP -> legalEntity exists - -type CashCollateralValuationMethod : <"This type is a generic structure that can represent the parameters of several mid-market valuation and replacement value methods described in the 2021 ISDA Definitions."> - applicableCsa CsaTypeEnum (0..1) <"This may be used to specify what type of CSA (credit support annex/agreement) is to be used for cash settlement purposes."> - cashCollateralCurrency string (0..1)<"This may be used to indicate the currency of cash collateral for cash settlement purposes."> - cashCollateralInterestRate string (0..1)<"This may be used to indicate the interest rate to be used for cash collateral for cash settlement purposes."> - [metadata scheme] - agreedDiscountRate string (0..1) <"This may be used to indicate the discount rate to be used for cash collateral for cash settlement purposes."> - [metadata scheme] - protectedParty PartyDeterminationEnum (0..2) <"This may be used to specify which party is protected (e.g. under Replacement Value cash settlement methods)."> - prescribedDocumentationAdjustment boolean (0..1) <"This may be used to indicate that 'prescribed documentation adjustment' is applicable."> + valuationSource ValuationSource (1..1) <"The source for obtaining a valuation. This may come from some information source (e.g. Reuters), from a rate option fixing (e.g. FX fixing for cross-currency settlement), or from a set of reference banks. This is a mandatory attribute as the valuation method relies on one of those sources to be specified."> + quotationMethod QuotationRateTypeEnum (0..1) <"The type of price quotations to be requested from dealers when determining the market value of the reference obligation for purposes of cash settlement, or which rate quote is to be observed for a fixing. For example, Bid, Offer, Mid-market or Exercising Party Pays. ISDA 2003 Term: Quotation Method. The meaning of Exercising Party Pays is defined in the 2000 ISDA Definitions, Section 17.2. Certain Definitions Relating to Cash Settlement, paragraph (j)."> + valuationMethod ValuationMethodEnum (0..1) <"The ISDA defined methodology for determining the final price of the reference obligation for purposes of cash settlement. (ISDA 2003 Term: Valuation Method). For example, Market, Highest etc."> + quotationAmount Money (0..1) <"In the determination of a cash settlement amount, if weighted average quotations are to be obtained, the quotation amount specifies an upper limit to the outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount equal to the floating rate payer calculation amount. ISDA 2003 Term: Quotation Amount."> + minimumQuotationAmount Money (0..1) <"In the determination of a cash settlement amount, if weighted average quotations are to be obtained, the minimum quotation amount specifies a minimum intended threshold amount of outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount of the lower of either USD 1,000,000 (or its equivalent in the relevant obligation currency) or the quotation amount. ISDA 2003 Term: Minimum Quotation Amount."> + cashCollateralValuationMethod CashCollateralValuationMethod (0..1) <"Specifies the parameters representing several mid-market valuation and replacement value methods."> + + condition FpML_cd_37: <"FpML validation rule cd-37 - If condition quotationAmount is true, and if condition minimumQuotationAmount is true, and if both amounts have the same-currency, then quotationAmount/amount must be greater or equal to minimumQuotationAmount/amount."> + if (quotationAmount exists and minimumQuotationAmount exists) + and quotationAmount -> unit -> currency = minimumQuotationAmount -> unit -> currency + then quotationAmount -> value > minimumQuotationAmount -> value + + condition Dealer: <"When a quotation amount is specified, the dealer from which to obtain the quotation must be specified in the valuation source. This is typically applicable to determine the recovery amount in a credit event."> + if quotationAmount exists or minimumQuotationAmount exists + then valuationSource -> dealerOrCCP -> legalEntity exists + +type CashCollateralValuationMethod: <"This type is a generic structure that can represent the parameters of several mid-market valuation and replacement value methods described in the 2021 ISDA Definitions."> + applicableCsa CsaTypeEnum (0..1) <"This may be used to specify what type of CSA (credit support annex/agreement) is to be used for cash settlement purposes."> + cashCollateralCurrency string (0..1) <"This may be used to indicate the currency of cash collateral for cash settlement purposes."> + cashCollateralInterestRate string (0..1) <"This may be used to indicate the interest rate to be used for cash collateral for cash settlement purposes."> + [metadata scheme] + agreedDiscountRate string (0..1) <"This may be used to indicate the discount rate to be used for cash collateral for cash settlement purposes."> + [metadata scheme] + protectedParty PartyDeterminationEnum (0..2) <"This may be used to specify which party is protected (e.g. under Replacement Value cash settlement methods)."> + prescribedDocumentationAdjustment boolean (0..1) <"This may be used to indicate that 'prescribed documentation adjustment' is applicable."> type DividendApplicability: <"The parameters which define whether dividends are applicable"> - optionsExchangeDividends boolean (0..1) <"If present and true, then options exchange dividends are applicable."> - additionalDividends boolean (0..1)<"If present and true, then additional dividends are applicable."> - allDividends boolean (0..1) <"Represents the European Master Confirmation value of 'All Dividends' which, when applicable, signifies that, for a given Ex-Date, the daily observed Share Price for that day is adjusted (reduced) by the cash dividend and/or the cash value of any non cash dividend per Share (including Extraordinary Dividends) declared by the Issuer. All Dividends in accordance with the ISDA 2002 Equity Derivatives Definitions."> + optionsExchangeDividends boolean (0..1) <"If present and true, then options exchange dividends are applicable."> + additionalDividends boolean (0..1) <"If present and true, then additional dividends are applicable."> + allDividends boolean (0..1) <"Represents the European Master Confirmation value of 'All Dividends' which, when applicable, signifies that, for a given Ex-Date, the daily observed Share Price for that day is adjusted (reduced) by the cash dividend and/or the cash value of any non cash dividend per Share (including Extraordinary Dividends) declared by the Issuer. All Dividends in accordance with the ISDA 2002 Equity Derivatives Definitions."> diff --git a/rosetta-source/src/main/rosetta/observable-common-func.rosetta b/rosetta-source/src/main/rosetta/observable-common-func.rosetta index 89f2e01a24..0f52adafc3 100644 --- a/rosetta-source/src/main/rosetta/observable-common-func.rosetta +++ b/rosetta-source/src/main/rosetta/observable-common-func.rosetta @@ -8,36 +8,33 @@ import cdm.base.staticdata.asset.common.* import cdm.observable.asset.* func ResolveTimeZoneFromTimeType: <"Defines inputs and outputs needed to derive the time and time-zone for a product identifier"> - inputs: - productIdentifier ProductIdentifier (1..1) - timeType TimeTypeEnum (1..1) - determinationMethod DeterminationMethodEnum (1..1) - - output: - time TimeZone (1..1) + inputs: + productIdentifier ProductIdentifier (1..1) + timeType TimeTypeEnum (1..1) + determinationMethod DeterminationMethodEnum (1..1) + output: + time TimeZone (1..1) func CashPriceQuantityNoOfUnitsTriangulation: <"Data rule to check the relationship between cash price, notional and number of units."> - inputs: - quantity NonNegativeQuantitySchedule (0..*) - price PriceSchedule (0..*) - - output: - success boolean (1..1) - - alias notional: - FilterQuantityByCurrencyExists( quantity ) - extract value + inputs: + quantity NonNegativeQuantitySchedule (0..*) + price PriceSchedule (0..*) + output: + success boolean (1..1) + + alias notional: + FilterQuantityByCurrencyExists(quantity) + extract value then distinct - then only-element + then only-element - alias noOfUnits: - FilterQuantityByFinancialUnit( quantity, FinancialUnitEnum -> Share ) - extract value + alias noOfUnits: + FilterQuantityByFinancialUnit(quantity, FinancialUnitEnum -> Share) + extract value then only-element - alias cashPrice: - price -> value only-element + alias cashPrice: price -> value only-element - set success: - if cashPrice exists and noOfUnits exists and notional exists - then cashPrice * noOfUnits = notional + set success: + if cashPrice exists and noOfUnits exists and notional exists + then cashPrice * noOfUnits = notional diff --git a/rosetta-source/src/main/rosetta/observable-event-enum.rosetta b/rosetta-source/src/main/rosetta/observable-event-enum.rosetta index 7ccb1f1810..8618b50fe4 100644 --- a/rosetta-source/src/main/rosetta/observable-event-enum.rosetta +++ b/rosetta-source/src/main/rosetta/observable-event-enum.rosetta @@ -2,43 +2,37 @@ namespace cdm.observable.event : <"Observable event concepts: extraordinary even version "${project.version}" enum IndexEventConsequenceEnum: <"The enumerated values to specify the consequences of Index Events."> - CalculationAgentAdjustment <"Calculation Agent Adjustment."> - NegotiatedCloseOut <"Negotiated Close Out."> - CancellationAndPayment <"Cancellation and Payment."> - RelatedExchange <"Related Exchange."> + CalculationAgentAdjustment <"Calculation Agent Adjustment."> + NegotiatedCloseOut <"Negotiated Close Out."> + CancellationAndPayment <"Cancellation and Payment."> + RelatedExchange <"Related Exchange."> enum MarketDisruptionEnum: <"The enumerated values to specify the handling of an averaging date market disruption for an equity derivative transaction."> - ModifiedPostponement <"As defined in section 6.7 paragraph (c) sub-paragraph (iii) of the ISDA 2002 Equity Derivative definitions."> - Omission <"As defined in section 6.7 paragraph (c) sub-paragraph (i) of the ISDA 2002 Equity Derivative definitions."> - Postponement <"As defined in section 6.7 paragraph (c) sub-paragraph (ii) of the ISDA 2002 Equity Derivative definitions."> + ModifiedPostponement <"As defined in section 6.7 paragraph (c) sub-paragraph (iii) of the ISDA 2002 Equity Derivative definitions."> + Omission <"As defined in section 6.7 paragraph (c) sub-paragraph (i) of the ISDA 2002 Equity Derivative definitions."> + Postponement <"As defined in section 6.7 paragraph (c) sub-paragraph (ii) of the ISDA 2002 Equity Derivative definitions."> enum TriggerTypeEnum: <"The enumerated values to specify whether an option will trigger or expire depending upon whether the spot rate is above or below the barrier rate."> - EqualOrLess <"The underlier price must be equal to or less than the Trigger level."> - EqualOrGreater <"The underlier price must be equal to or greater than the Trigger level."> - Equal <"The underlier price must be equal to the Trigger level."> - Less <"The underlier price must be less than the Trigger level."> - Greater <"The underlier price must be greater than the Trigger level."> - - + EqualOrLess <"The underlier price must be equal to or less than the Trigger level."> + EqualOrGreater <"The underlier price must be equal to or greater than the Trigger level."> + Equal <"The underlier price must be equal to the Trigger level."> + Less <"The underlier price must be less than the Trigger level."> + Greater <"The underlier price must be greater than the Trigger level."> enum TriggerTimeTypeEnum: <"The enumerated values to specify the time of day which would be considered for valuing the knock event."> - Closing <"The close of trading on a day would be considered for valuation."> - Anytime <"At any time during the Knock Determination period (continuous barrier)."> - + Closing <"The close of trading on a day would be considered for valuation."> + Anytime <"At any time during the Knock Determination period (continuous barrier)."> enum ShareExtraordinaryEventEnum: <"The enumerated values to specify the consequences of extraordinary events relating to the underlying."> - AlternativeObligation <"The trade continues such that the underlying now consists of the New Shares and/or the Other Consideration, if any, and the proceeds of any redemption, if any, that the holder of the underlying Shares would have been entitled to."> - CancellationAndPayment <"The trade is cancelled and a cancellation fee will be paid by one party to the other."> - OptionsExchange <"The trade will be adjusted by the Calculation Agent in accordance with the adjustments made by any exchange on which options on the underlying are listed."> - CalculationAgent <"The Calculation Agent will determine what adjustment is required to offset any change to the economics of the trade. If the Calculation Agent cannot achieve this, the trade goes to Cancellation and Payment with the Calculation Agent deciding on the value of the cancellation fee. Adjustments may not be made to account solely for changes in volatility, expected dividends, stock loan rate or liquidity."> - ModifiedCalculationAgent <"The Calculation Agent will determine what adjustment is required to offset any change to the economics of the trade. If the Calculation Agent cannot achieve this, the trade goes to Cancellation and Payment with the Calculation Agent deciding on the value of the cancellation fee. Adjustments to account for changes in volatility, expected dividends, stock loan rate or liquidity are allowed."> - PartialCancellationAndPayment <"Applies to Basket Transactions. The portion of the Basket made up by the affected Share will be cancelled and a cancellation fee will be paid from one party to the other. The remainder of the trade continues."> - Component <"If this is a Share-for-Combined merger event (Shares are replaced with New Shares and Other Consideration), then different treatment can be applied to each component if the parties have specified this."> + AlternativeObligation <"The trade continues such that the underlying now consists of the New Shares and/or the Other Consideration, if any, and the proceeds of any redemption, if any, that the holder of the underlying Shares would have been entitled to."> + CancellationAndPayment <"The trade is cancelled and a cancellation fee will be paid by one party to the other."> + OptionsExchange <"The trade will be adjusted by the Calculation Agent in accordance with the adjustments made by any exchange on which options on the underlying are listed."> + CalculationAgent <"The Calculation Agent will determine what adjustment is required to offset any change to the economics of the trade. If the Calculation Agent cannot achieve this, the trade goes to Cancellation and Payment with the Calculation Agent deciding on the value of the cancellation fee. Adjustments may not be made to account solely for changes in volatility, expected dividends, stock loan rate or liquidity."> + ModifiedCalculationAgent <"The Calculation Agent will determine what adjustment is required to offset any change to the economics of the trade. If the Calculation Agent cannot achieve this, the trade goes to Cancellation and Payment with the Calculation Agent deciding on the value of the cancellation fee. Adjustments to account for changes in volatility, expected dividends, stock loan rate or liquidity are allowed."> + PartialCancellationAndPayment <"Applies to Basket Transactions. The portion of the Basket made up by the affected Share will be cancelled and a cancellation fee will be paid from one party to the other. The remainder of the trade continues."> + Component <"If this is a Share-for-Combined merger event (Shares are replaced with New Shares and Other Consideration), then different treatment can be applied to each component if the parties have specified this."> enum RestructuringEnum: <"The enumerated values to specify the form of the restructuring credit event that is applicable to the credit default swap."> - ModModR <"Restructuring (Section 4.7) and Modified Restructuring Maturity Limitation and Conditionally Transferable Obligation (2014 Definitions: Section 3.31, 2003 Definitions: 2.32) apply."> - ModR <"Restructuring (Section 4.7) and Restructuring Maturity Limitation and Fully Transferable Obligation (2014 Definitions: Section 3.31, 2003 Definitions: 2.32) apply."> - R <"Restructuring as defined in the applicable ISDA Credit Derivatives Definitions. (2003 or 2014)."> - - - + ModModR <"Restructuring (Section 4.7) and Modified Restructuring Maturity Limitation and Conditionally Transferable Obligation (2014 Definitions: Section 3.31, 2003 Definitions: 2.32) apply."> + ModR <"Restructuring (Section 4.7) and Restructuring Maturity Limitation and Fully Transferable Obligation (2014 Definitions: Section 3.31, 2003 Definitions: 2.32) apply."> + R <"Restructuring as defined in the applicable ISDA Credit Derivatives Definitions. (2003 or 2014)."> diff --git a/rosetta-source/src/main/rosetta/observable-event-func.rosetta b/rosetta-source/src/main/rosetta/observable-event-func.rosetta index f9f6048d5a..097928b2b3 100644 --- a/rosetta-source/src/main/rosetta/observable-event-func.rosetta +++ b/rosetta-source/src/main/rosetta/observable-event-func.rosetta @@ -8,57 +8,53 @@ import cdm.event.common.* import cdm.product.template.* func Create_AssetPayoutTradeStateWithObservations: <"Attaches a set of Observations to a Security Finance Transaction."> - inputs: - billingInstruction BillingRecordInstruction (1..1) - output: - tradeState TradeState (1..1) + inputs: + billingInstruction BillingRecordInstruction (1..1) + output: + tradeState TradeState (1..1) - alias assetPayout: - billingInstruction -> tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout only-element + alias assetPayout: + billingInstruction -> tradeState -> trade -> tradableProduct -> product -> contractualProduct -> economicTerms -> payout -> assetPayout only-element - alias date: - billingInstruction -> recordEndDate + alias date: billingInstruction -> recordEndDate - set tradeState: - billingInstruction -> tradeState + set tradeState: billingInstruction -> tradeState - add tradeState -> resetHistory: - Create_AssetReset (assetPayout, billingInstruction -> observation, date) + add tradeState -> resetHistory: + Create_AssetReset(assetPayout, billingInstruction -> observation, date) func Create_AssetReset: <"Defines how to resolve the reset value for an equity payout."> - inputs: - assetPayout AssetPayout (1..1) <"Represents the AssetPayout to which the reset will apply."> - observation Observation (1..*) <"Represents the observations that will be used to compute the reset value."> - resetDate date (1..1) <"Specifies the date of the reset."> - output: - reset Reset (1..1) + inputs: + assetPayout AssetPayout (1..1) <"Represents the AssetPayout to which the reset will apply."> + observation Observation (1..*) <"Represents the observations that will be used to compute the reset value."> + resetDate date (1..1) <"Specifies the date of the reset."> + output: + reset Reset (1..1) - set reset -> resetValue: <"Assigns the observed value to the reset value."> - ResolveObservationAverage(observation) - // work out the average as the value to be used in the calculation + set reset -> resetValue: <"Assigns the observed value to the reset value."> + ResolveObservationAverage(observation) + // work out the average as the value to be used in the calculation + set reset -> resetDate: resetDate - set reset -> resetDate: - resetDate + add reset -> observations: <"Assigns the observation required to compute the rest value as audit."> + observation - add reset -> observations: <"Assigns the observation required to compute the rest value as audit."> - observation - - set reset -> averagingMethodology -> averagingMethod -> calculationMethod: AveragingCalculationMethodEnum -> Arithmetic + set reset -> averagingMethodology -> averagingMethod -> calculationMethod: + AveragingCalculationMethodEnum -> Arithmetic func ResolveObservationAverage: <"Specifies the interface that should be used by implementors to resolve a single observation when provided many, applying the averaging method, if one is provided."> - inputs: - observations Observation (1..*) - output: - resetValue Price (1..1) + inputs: + observations Observation (1..*) + output: + resetValue Price (1..1) - alias firstObservedValue: - observations -> observedValue first + alias firstObservedValue: observations -> observedValue first condition UnitsMatch: observations -> observedValue -> unit all = firstObservedValue -> unit - set resetValue -> value: observations -> observedValue -> value sum / observations count - set resetValue -> unit: firstObservedValue -> unit - set resetValue -> perUnitOf: firstObservedValue -> perUnitOf - set resetValue -> priceExpression: firstObservedValue -> priceExpression - set resetValue -> priceType: firstObservedValue -> priceType + set resetValue -> value: observations -> observedValue -> value sum / observations count + set resetValue -> unit: firstObservedValue -> unit + set resetValue -> perUnitOf: firstObservedValue -> perUnitOf + set resetValue -> priceExpression: firstObservedValue -> priceExpression + set resetValue -> priceType: firstObservedValue -> priceType diff --git a/rosetta-source/src/main/rosetta/observable-event-type.rosetta b/rosetta-source/src/main/rosetta/observable-event-type.rosetta index eeb79ca7e6..2f1718ec2b 100644 --- a/rosetta-source/src/main/rosetta/observable-event-type.rosetta +++ b/rosetta-source/src/main/rosetta/observable-event-type.rosetta @@ -10,118 +10,116 @@ import cdm.observable.common.* type Trigger: <"Trigger point at which feature is effective."> - level number (0..1) <"The trigger level."> - levelPercentage number (0..1) <"The trigger level percentage."> - creditEvents CreditEvents (0..1) - creditEventsReference CreditEvents (0..1) - [metadata reference] - triggerType TriggerTypeEnum (0..1) <"The Triggering condition."> - triggerTimeType TriggerTimeTypeEnum (0..1) <"The valuation time type of knock condition."> + level number (0..1) <"The trigger level."> + levelPercentage number (0..1) <"The trigger level percentage."> + creditEvents CreditEvents (0..1) + creditEventsReference CreditEvents (0..1) + [metadata reference] + triggerType TriggerTypeEnum (0..1) <"The Triggering condition."> + triggerTimeType TriggerTimeTypeEnum (0..1) <"The valuation time type of knock condition."> - condition Choice1: <" Choice rule to represent an FpML choice construct."> - required choice level, levelPercentage , creditEvents , creditEventsReference + condition Choice1: <" Choice rule to represent an FpML choice construct."> + required choice level, levelPercentage , creditEvents , creditEventsReference type TriggerEvent: <"Observation point for trigger."> - schedule AveragingSchedule (0..*) <"A derivative schedule."> - triggerDates DateList (0..1) <"The trigger Dates."> - trigger Trigger (1..1) <"The trigger level"> - featurePayment FeaturePayment (0..1) <"The feature payment, i.e. the payment made following trigger occurrence."> + schedule AveragingSchedule (0..*) <"A derivative schedule."> + triggerDates DateList (0..1) <"The trigger Dates."> + trigger Trigger (1..1) <"The trigger level"> + featurePayment FeaturePayment (0..1) <"The feature payment, i.e. the payment made following trigger occurrence."> type CreditEvents: <"A class to specify the applicable Credit Events that would trigger a settlement, as specified in the related Confirmation and defined in the ISDA 2014 Credit Definition article IV section 4.1."> - [metadata key] - - bankruptcy boolean (0..1) <"A credit event. The reference entity has been dissolved or has become insolvent. It also covers events that may be a precursor to insolvency such as instigation of bankruptcy or insolvency proceedings. Sovereign trades are not subject to Bankruptcy as 'technically' a Sovereign cannot become bankrupt. ISDA 2003 Term: Bankruptcy."> - failureToPay FailureToPay (0..1) <"A credit event. This credit event triggers, after the expiration of any applicable grace period, if the reference entity fails to make due payments in an aggregate amount of not less than the payment requirement on one or more obligations (e.g. a missed coupon payment). ISDA 2003 Term: Failure to Pay."> - failureToPayPrincipal boolean (0..1) <"A credit event. Corresponds to the failure by the Reference Entity to pay an expected principal amount or the payment of an actual principal amount that is less than the expected principal amount. ISDA 2003 Term: Failure to Pay Principal."> - failureToPayInterest boolean (0..1) <"A credit event. Corresponds to the failure by the Reference Entity to pay an expected interest amount or the payment of an actual interest amount that is less than the expected interest amount. ISDA 2003 Term: Failure to Pay Interest."> - obligationDefault boolean (0..1) <"A credit event. One or more of the obligations have become capable of being declared due and payable before they would otherwise have been due and payable as a result of, or on the basis of, the occurrence of a default, event of default or other similar condition or event other than failure to pay. ISDA 2003 Term: Obligation Default."> - obligationAcceleration boolean (0..1) <"A credit event. One or more of the obligations have been declared due and payable before they would otherwise have been due and payable as a result of, or on the basis of, the occurrence of a default, event of default or other similar condition or event other than failure to pay (preferred by the market over Obligation Default, because more definitive and encompasses the definition of Obligation Default - this is more favorable to the Seller). Subject to the default requirement amount. ISDA 2003 Term: Obligation Acceleration."> - repudiationMoratorium boolean (0..1) <"A credit event. The reference entity, or a governmental authority, either refuses to recognise or challenges the validity of one or more obligations of the reference entity, or imposes a moratorium thereby postponing payments on one or more of the obligations of the reference entity. Subject to the default requirement amount. ISDA 2003 Term: Repudiation/Moratorium."> - restructuring Restructuring (0..1) <"A credit event. A restructuring is an event that materially impacts the reference entity's obligations, such as an interest rate reduction, principal reduction, deferral of interest or principal, change in priority ranking, or change in currency or composition of payment. ISDA 2003 Term: Restructuring."> - governmentalIntervention boolean (0..1) <"A credit event. A governmental intervention is an event resulting from an action by a governmental authority that materially impacts the reference entity's obligations, such as an interest rate reduction, principal reduction, deferral of interest or principal, change in priority ranking, or change in currency or composition of payment. ISDA 2014 Term: Governmental Intervention."> - distressedRatingsDowngrade boolean (0..1) <"A credit event. Results from the fact that the rating of the reference obligation is down-graded to a distressed rating level. From a usage standpoint, this credit event is typically not applicable in case of RMBS trades."> - maturityExtension boolean (0..1) <"A credit event. Results from the fact that the underlier fails to make principal payments as expected."> - writedown boolean (0..1) <"A credit event. Results from the fact that the underlier writes down its outstanding principal amount."> - impliedWritedown boolean (0..1) <"A credit event. Results from the fact that losses occur to the underlying instruments that do not result in reductions of the outstanding principal of the reference obligation."> - defaultRequirement Money (0..1) <"In relation to certain credit events, serves as a threshold for Obligation Acceleration, Obligation Default, Repudiation/Moratorium and Restructuring. Market standard is USD 10,000,000 (JPY 1,000,000,000 for all Japanese Yen trades). This is applied on an aggregate or total basis across all Obligations of the Reference Entity. Used to prevent technical/operational errors from triggering credit events. ISDA 2003 Term: Default Requirement."> - creditEventNotice CreditEventNotice (0..1) <"A specified condition to settlement. An irrevocable written or verbal notice that describes a credit event that has occurred. The notice is sent from the notifying party (either the buyer or the seller) to the counterparty. It provides information relevant to determining that a credit event has occurred. This is typically accompanied by Publicly Available Information. ISDA 2003 Term: Credit Event Notice."> + [metadata key] + + bankruptcy boolean (0..1) <"A credit event. The reference entity has been dissolved or has become insolvent. It also covers events that may be a precursor to insolvency such as instigation of bankruptcy or insolvency proceedings. Sovereign trades are not subject to Bankruptcy as 'technically' a Sovereign cannot become bankrupt. ISDA 2003 Term: Bankruptcy."> + failureToPay FailureToPay (0..1) <"A credit event. This credit event triggers, after the expiration of any applicable grace period, if the reference entity fails to make due payments in an aggregate amount of not less than the payment requirement on one or more obligations (e.g. a missed coupon payment). ISDA 2003 Term: Failure to Pay."> + failureToPayPrincipal boolean (0..1) <"A credit event. Corresponds to the failure by the Reference Entity to pay an expected principal amount or the payment of an actual principal amount that is less than the expected principal amount. ISDA 2003 Term: Failure to Pay Principal."> + failureToPayInterest boolean (0..1) <"A credit event. Corresponds to the failure by the Reference Entity to pay an expected interest amount or the payment of an actual interest amount that is less than the expected interest amount. ISDA 2003 Term: Failure to Pay Interest."> + obligationDefault boolean (0..1) <"A credit event. One or more of the obligations have become capable of being declared due and payable before they would otherwise have been due and payable as a result of, or on the basis of, the occurrence of a default, event of default or other similar condition or event other than failure to pay. ISDA 2003 Term: Obligation Default."> + obligationAcceleration boolean (0..1) <"A credit event. One or more of the obligations have been declared due and payable before they would otherwise have been due and payable as a result of, or on the basis of, the occurrence of a default, event of default or other similar condition or event other than failure to pay (preferred by the market over Obligation Default, because more definitive and encompasses the definition of Obligation Default - this is more favorable to the Seller). Subject to the default requirement amount. ISDA 2003 Term: Obligation Acceleration."> + repudiationMoratorium boolean (0..1) <"A credit event. The reference entity, or a governmental authority, either refuses to recognise or challenges the validity of one or more obligations of the reference entity, or imposes a moratorium thereby postponing payments on one or more of the obligations of the reference entity. Subject to the default requirement amount. ISDA 2003 Term: Repudiation/Moratorium."> + restructuring Restructuring (0..1) <"A credit event. A restructuring is an event that materially impacts the reference entity's obligations, such as an interest rate reduction, principal reduction, deferral of interest or principal, change in priority ranking, or change in currency or composition of payment. ISDA 2003 Term: Restructuring."> + governmentalIntervention boolean (0..1) <"A credit event. A governmental intervention is an event resulting from an action by a governmental authority that materially impacts the reference entity's obligations, such as an interest rate reduction, principal reduction, deferral of interest or principal, change in priority ranking, or change in currency or composition of payment. ISDA 2014 Term: Governmental Intervention."> + distressedRatingsDowngrade boolean (0..1) <"A credit event. Results from the fact that the rating of the reference obligation is down-graded to a distressed rating level. From a usage standpoint, this credit event is typically not applicable in case of RMBS trades."> + maturityExtension boolean (0..1) <"A credit event. Results from the fact that the underlier fails to make principal payments as expected."> + writedown boolean (0..1) <"A credit event. Results from the fact that the underlier writes down its outstanding principal amount."> + impliedWritedown boolean (0..1) <"A credit event. Results from the fact that losses occur to the underlying instruments that do not result in reductions of the outstanding principal of the reference obligation."> + defaultRequirement Money (0..1) <"In relation to certain credit events, serves as a threshold for Obligation Acceleration, Obligation Default, Repudiation/Moratorium and Restructuring. Market standard is USD 10,000,000 (JPY 1,000,000,000 for all Japanese Yen trades). This is applied on an aggregate or total basis across all Obligations of the Reference Entity. Used to prevent technical/operational errors from triggering credit events. ISDA 2003 Term: Default Requirement."> + creditEventNotice CreditEventNotice (0..1) <"A specified condition to settlement. An irrevocable written or verbal notice that describes a credit event that has occurred. The notice is sent from the notifying party (either the buyer or the seller) to the counterparty. It provides information relevant to determining that a credit event has occurred. This is typically accompanied by Publicly Available Information. ISDA 2003 Term: Credit Event Notice."> type CreditEventNotice: - notifyingParty CounterpartyRoleEnum (1..2) <"The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring. ISDA 2003 Term: Notifying Party."> - businessCenter BusinessCenterEnum (0..1) <"Inclusion of this business center element implies that Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions is replaced by the local time of the city indicated by the businessCenter element value."> - publiclyAvailableInformation PubliclyAvailableInformation (0..1) <"A specified condition to settlement. Publicly available information means information that reasonably confirms any of the facts relevant to determining that a credit event or potential repudiation/moratorium, as applicable, has occurred. The ISDA defined list (2003) is the market standard and is considered comprehensive, and a minimum of two differing public sources must have published the relevant information, to declare a Credit Event. ISDA 2003 Term: Notice of Publicly Available Information Applicable."> + notifyingParty CounterpartyRoleEnum (1..2) <"The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring. ISDA 2003 Term: Notifying Party."> + businessCenter BusinessCenterEnum (0..1) <"Inclusion of this business center element implies that Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions is replaced by the local time of the city indicated by the businessCenter element value."> + publiclyAvailableInformation PubliclyAvailableInformation (0..1) <"A specified condition to settlement. Publicly available information means information that reasonably confirms any of the facts relevant to determining that a credit event or potential repudiation/moratorium, as applicable, has occurred. The ISDA defined list (2003) is the market standard and is considered comprehensive, and a minimum of two differing public sources must have published the relevant information, to declare a Credit Event. ISDA 2003 Term: Notice of Publicly Available Information Applicable."> type FailureToPay: - applicable boolean (1..1) <"Indicates whether the failure to pay provision is applicable."> - gracePeriodExtension GracePeriodExtension (0..1) <"If this element is specified, indicates whether or not a grace period extension is applicable. ISDA 2003 Term: Grace Period Extension Applicable."> - paymentRequirement Money (0..1) <"Specifies a threshold for the failure to pay credit event. Market standard is USD 1,000,000 (JPY 100,000,000 for Japanese Yen trades) or its equivalent in the relevant obligation currency. This is applied on an aggregate basis across all Obligations of the Reference Entity. Intended to prevent technical/operational errors from triggering credit events. ISDA 2003 Term: Payment Requirement"> + applicable boolean (1..1) <"Indicates whether the failure to pay provision is applicable."> + gracePeriodExtension GracePeriodExtension (0..1) <"If this element is specified, indicates whether or not a grace period extension is applicable. ISDA 2003 Term: Grace Period Extension Applicable."> + paymentRequirement Money (0..1) <"Specifies a threshold for the failure to pay credit event. Market standard is USD 1,000,000 (JPY 100,000,000 for Japanese Yen trades) or its equivalent in the relevant obligation currency. This is applied on an aggregate basis across all Obligations of the Reference Entity. Intended to prevent technical/operational errors from triggering credit events. ISDA 2003 Term: Payment Requirement"> type GracePeriodExtension: - applicable boolean (1..1) <"Indicates whether the grace period extension provision is applicable."> - gracePeriod Offset (0..1) <"The number of calendar or business days after any due date that the reference entity has to fulfil its obligations before a failure to pay credit event is deemed to have occurred. ISDA 2003 Term: Grace Period."> + applicable boolean (1..1) <"Indicates whether the grace period extension provision is applicable."> + gracePeriod Offset (0..1) <"The number of calendar or business days after any due date that the reference entity has to fulfil its obligations before a failure to pay credit event is deemed to have occurred. ISDA 2003 Term: Grace Period."> type PubliclyAvailableInformation: - standardPublicSources boolean (0..1) <"If this element is specified and set to 'true', indicates that ISDA defined Standard Public Sources are applicable."> - publicSource string (0..*) <"A public information source, e.g. a particular newspaper or electronic news service, that may publish relevant information used in the determination of whether or not a credit event has occurred. ISDA 2003 Term: Public Source."> - specifiedNumber int (0..1) <"The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two. ISDA 2003 Term: Specified Number."> - condition SourceChoice: <" FpML validation rule cd-36 - Context: PubliclyAvailableInformation (complex type). Either standardPublicSources or at least one publicSource element must exist."> - required choice standardPublicSources, publicSource + standardPublicSources boolean (0..1) <"If this element is specified and set to 'true', indicates that ISDA defined Standard Public Sources are applicable."> + publicSource string (0..*) <"A public information source, e.g. a particular newspaper or electronic news service, that may publish relevant information used in the determination of whether or not a credit event has occurred. ISDA 2003 Term: Public Source."> + specifiedNumber int (0..1) <"The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two. ISDA 2003 Term: Specified Number."> + condition SourceChoice: <" FpML validation rule cd-36 - Context: PubliclyAvailableInformation (complex type). Either standardPublicSources or at least one publicSource element must exist."> + required choice standardPublicSources, publicSource - condition PositiveSpecifiedNumber: <" FpML specifies specifiedNumber as a positiveInteger."> - if specifiedNumber exists - then specifiedNumber >= 0 + condition PositiveSpecifiedNumber: <" FpML specifies specifiedNumber as a positiveInteger."> + if specifiedNumber exists then specifiedNumber >= 0 type Restructuring: - applicable boolean (1..1) <"Indicates whether the restructuring provision is applicable."> - restructuringType RestructuringEnum (0..1) <"Specifies the type of restructuring that is applicable."> - [metadata scheme] - multipleHolderObligation boolean (0..1) <"In relation to a restructuring credit event, unless multiple holder obligation is not specified restructurings are limited to multiple holder obligations. A multiple holder obligation means an obligation that is held by more than three holders that are not affiliates of each other and where at least two thirds of the holders must agree to the event that constitutes the restructuring credit event. ISDA 2003 Term: Multiple Holder Obligation."> - multipleCreditEventNotices boolean (0..1) <"Presence of this element and value set to 'true' indicates that Section 3.9 of the 2003 Credit Derivatives Definitions shall apply. Absence of this element indicates that Section 3.9 shall not apply. NOTE: Not allowed under ISDA Credit 1999."> - + applicable boolean (1..1) <"Indicates whether the restructuring provision is applicable."> + restructuringType RestructuringEnum (0..1) <"Specifies the type of restructuring that is applicable."> + [metadata scheme] + multipleHolderObligation boolean (0..1) <"In relation to a restructuring credit event, unless multiple holder obligation is not specified restructurings are limited to multiple holder obligations. A multiple holder obligation means an obligation that is held by more than three holders that are not affiliates of each other and where at least two thirds of the holders must agree to the event that constitutes the restructuring credit event. ISDA 2003 Term: Multiple Holder Obligation."> + multipleCreditEventNotices boolean (0..1) <"Presence of this element and value set to 'true' indicates that Section 3.9 of the 2003 Credit Derivatives Definitions shall apply. Absence of this element indicates that Section 3.9 shall not apply. NOTE: Not allowed under ISDA Credit 1999."> + type FeaturePayment: <"Payment made following trigger occurrence."> - [metadata key] - - payerReceiver PartyReferencePayerReceiver (1..1) <"This attribute doesn't exist as part of the FpML construct, which makes use of the PayerReceiver.model group."> - levelPercentage number (0..1) <"The trigger level percentage."> - amount number (0..1) <"The monetary quantity in currency units."> - time TimeTypeEnum (0..1) <"The feature payment time."> - currency string (0..1) <"The currency in which an amount is denominated."> - [metadata scheme] - paymentDate AdjustableOrRelativeDate (0..1) <"The feature payment date."> - - condition FeaturePaymentChoice: <" Choice rule to represent an FpML choice construct."> - required choice levelPercentage, amount - - condition Amount: <" The amount attribute is specified in FpML as non-negative decimal."> - if amount exists - then amount >= 0.0 + [metadata key] + + payerReceiver PartyReferencePayerReceiver (1..1) <"This attribute doesn't exist as part of the FpML construct, which makes use of the PayerReceiver.model group."> + levelPercentage number (0..1) <"The trigger level percentage."> + amount number (0..1) <"The monetary quantity in currency units."> + time TimeTypeEnum (0..1) <"The feature payment time."> + currency string (0..1) <"The currency in which an amount is denominated."> + [metadata scheme] + paymentDate AdjustableOrRelativeDate (0..1) <"The feature payment date."> + + condition FeaturePaymentChoice: <" Choice rule to represent an FpML choice construct."> + required choice levelPercentage, amount + + condition Amount: <" The amount attribute is specified in FpML as non-negative decimal."> + if amount exists then amount >= 0.0 type Observation: <"Defines a single, numerical value that was observed in the marketplace. Observations of market data are made independently to business events or trade life-cycle events, so data instances of Observation can be created independently of any other model type, hence it is annotated as a root type. Observations will be broadly reused in many situations, so references to Observation are supported via the 'key' annotation."> - [rootType] - [metadata key] - observedValue Price (1..1) <"Specifies the observed value as a number."> - observationIdentifier ObservationIdentifier (1..1) <"Represents the observation was made i.e. how to uniquely identify the observed value among the population of all available market data."> - -type ObservationIdentifier: <"Defines the parameters needed to uniquely identify a piece of data among the population of all available market data."> - observable Observable (1..1) <"Represents the asset or rate to which the observation relates."> - observationDate date (1..1) <"Specifies the date value to use when resolving the market data."> - observationTime TimeZone (0..1) <"Represents the time and time-zone."> - informationSource InformationSource (0..1) <"Represents where the market data published and should be observed."> - determinationMethodology DeterminationMethodology (0..1) <"Specifies the method according to which an amount or a date is determined."> - + [rootType] + [metadata key] + observedValue Price (1..1) <"Specifies the observed value as a number."> + observationIdentifier ObservationIdentifier (1..1) <"Represents the observation was made i.e. how to uniquely identify the observed value among the population of all available market data."> + +type ObservationIdentifier: <"Defines the parameters needed to uniquely identify a piece of data among the population of all available market data."> + observable Observable (1..1) <"Represents the asset or rate to which the observation relates."> + observationDate date (1..1) <"Specifies the date value to use when resolving the market data."> + observationTime TimeZone (0..1) <"Represents the time and time-zone."> + informationSource InformationSource (0..1) <"Represents where the market data published and should be observed."> + determinationMethodology DeterminationMethodology (0..1) <"Specifies the method according to which an amount or a date is determined."> + type DeterminationMethodology: <"Specifies the method according to which an amount or a date is determined."> - determinationMethod DeterminationMethodEnum (0..1) <"Represents a more granular dimention of observation. Typically relevent for resolving a unique equity price, which can be expressed as trade-weighted or volume-weighted averages."> - averagingMethod AveragingCalculationMethodEnum (0..1) <"Specifies enumerations for the type of averaging calculation."> + determinationMethod DeterminationMethodEnum (0..1) <"Represents a more granular dimention of observation. Typically relevent for resolving a unique equity price, which can be expressed as trade-weighted or volume-weighted averages."> + averagingMethod AveragingCalculationMethodEnum (0..1) <"Specifies enumerations for the type of averaging calculation."> func ResolveObservation: <"Specifies the interface that should be used by implementors to resolve a single observation when provided many, applying the averaging method, if one is provided."> - inputs: - identifiers ObservationIdentifier (1..*) - averagingMethod AveragingCalculationMethod (0..1) - output: - observation Observation (1..1) + inputs: + identifiers ObservationIdentifier (1..*) + averagingMethod AveragingCalculationMethod (0..1) + output: + observation Observation (1..1) diff --git a/rosetta-source/src/main/rosetta/product-asset-calculation-func.rosetta b/rosetta-source/src/main/rosetta/product-asset-calculation-func.rosetta index b9ca16997b..608409e61a 100644 --- a/rosetta-source/src/main/rosetta/product-asset-calculation-func.rosetta +++ b/rosetta-source/src/main/rosetta/product-asset-calculation-func.rosetta @@ -17,41 +17,46 @@ import cdm.product.asset.* // These functions return the calculated fixed amount. // // ====================================================================== - // TODO: should this be enhanced to support spreads and do spread-exclusive calculations for compounding? func FixedAmountCalculation: <"Calculates the fixed amount for a calculation period by looking up the notional and the fixed rate and multiplying by the year fraction."> - inputs: - interestRatePayout InterestRatePayout (1..1) - calculationPeriod CalculationPeriodBase (1..1) - notional number (0..1) - output: - fixedAmountDetails FixedAmountCalculationDetails (1..1) - - alias fixedRate: GetFixedRate(interestRatePayout, calculationPeriod) - alias calculationAmount: GetNotionalAmount(interestRatePayout, calculationPeriod) - alias dcf: interestRatePayout -> dayCountFraction - alias yearFraction: CalculateYearFraction(interestRatePayout, dcf, calculationPeriod) - alias calcAmt: if notional exists then notional else calculationAmount -> value + inputs: + interestRatePayout InterestRatePayout (1..1) + calculationPeriod CalculationPeriodBase (1..1) + notional number (0..1) + output: + fixedAmountDetails FixedAmountCalculationDetails (1..1) + + alias fixedRate: GetFixedRate(interestRatePayout, calculationPeriod) + alias calculationAmount: GetNotionalAmount(interestRatePayout, calculationPeriod) + alias dcf: interestRatePayout -> dayCountFraction + alias yearFraction: CalculateYearFraction(interestRatePayout, dcf, calculationPeriod) + alias calcAmt: + if notional exists + then notional + else calculationAmount -> value set fixedAmountDetails -> calculationPeriod: calculationPeriod set fixedAmountDetails -> calculationPeriodNotionalAmount -> value: calcAmt - set fixedAmountDetails -> calculationPeriodNotionalAmount -> unit -> currency: calculationAmount -> unit -> currency + set fixedAmountDetails -> calculationPeriodNotionalAmount -> unit -> currency: + calculationAmount -> unit -> currency set fixedAmountDetails -> fixedRate: fixedRate set fixedAmountDetails -> yearFraction: yearFraction - set fixedAmountDetails -> calculatedAmount: - calcAmt * fixedAmountDetails -> fixedRate * fixedAmountDetails -> yearFraction + set fixedAmountDetails -> calculatedAmount: + calcAmt * fixedAmountDetails -> fixedRate * fixedAmountDetails -> yearFraction func GetFixedRate: <"Look up the fixed rate for a calculation period."> - [calculation] - inputs: - interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the spread."> - output: - fixedRate number (0..1) <"the fixed rate value value for the period."> - - set fixedRate: GetRateScheduleAmount( - interestRatePayout -> rateSpecification -> fixedRate -> rateSchedule, - calculationPeriod -> adjustedStartDate ) + [calculation] + inputs: + interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the spread."> + output: + fixedRate number (0..1) <"the fixed rate value value for the period."> + + set fixedRate: + GetRateScheduleAmount( + interestRatePayout -> rateSpecification -> fixedRate -> rateSchedule, + calculationPeriod -> adjustedStartDate + ) // ===================================================================== // @@ -60,127 +65,156 @@ func GetFixedRate: <"Look up the fixed rate for a calculation period."> // these functions perform the floating amount calculations // // ====================================================================== - func FloatingAmountCalculation: <"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."> - inputs: - interestRatePayout InterestRatePayout (1..1) <"The interest rate stream for which the floating amount calculation is being done."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the floating rate calculation is being done."> - isInitialPeriod boolean (1..1) <"Is this the initial calculation period?."> - suppliedNotional number(0..1) - suppliedRate number(0..1) - output: - result FloatingAmountCalculationDetails (1..1) <"The details of the floating rate calculation, including raw rate, rate treatment details, notional, and calculated cashlow amount."> - - // Get the floating rate before treatments - alias floatingRateSetting: if suppliedRate is absent then DetermineFloatingRateReset(interestRatePayout, calculationPeriod) - - set result: ApplyFloatingRateSetting(interestRatePayout, calculationPeriod, isInitialPeriod, suppliedNotional, suppliedRate, floatingRateSetting) + inputs: + interestRatePayout InterestRatePayout (1..1) <"The interest rate stream for which the floating amount calculation is being done."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the floating rate calculation is being done."> + isInitialPeriod boolean (1..1) <"Is this the initial calculation period?."> + suppliedNotional number (0..1) + suppliedRate number (0..1) + output: + result FloatingAmountCalculationDetails (1..1) <"The details of the floating rate calculation, including raw rate, rate treatment details, notional, and calculated cashlow amount."> + + // Get the floating rate before treatments + alias floatingRateSetting: + if suppliedRate is absent + then DetermineFloatingRateReset(interestRatePayout, calculationPeriod) + + set result: + ApplyFloatingRateSetting( + interestRatePayout, + calculationPeriod, + isInitialPeriod, + suppliedNotional, + suppliedRate, + floatingRateSetting + ) func ApplyFloatingRateSetting: <"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."> - inputs: - interestRatePayout InterestRatePayout (1..1) <"The interest rate stream for which the floating amount calculation is being done."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the floating rate calculation is being done."> - isInitialPeriod boolean (1..1) <"Is this the initial calculation period?."> - suppliedNotional number(0..1) - suppliedRate number(0..1) - floatingRateSetting FloatingRateSettingDetails (0..1) <"Details of the rate observation/calculation corresonding to the supplied rate definition and calculation period."> - output: - result FloatingAmountCalculationDetails (1..1) <"The details of the floating rate calculation, including raw rate, rate treatment details, notional, and calculated cashlow amount."> - - alias floatingRate: floatingRateSetting -> floatingRate - - // apply rate treatments/processing - alias processingParameters: GetFloatingRateProcessingParameters(interestRatePayout, calculationPeriod) - alias processedRateDetails: - if suppliedRate exists then DefaultFloatingRate(suppliedRate) - else ApplyFloatingRateProcessing(processingParameters, floatingRate, calculationPeriod, isInitialPeriod) - - // determine notional, year fraction, and perform the final calculation - alias periodNotional: GetNotionalAmount(interestRatePayout, calculationPeriod) - alias notional: if suppliedNotional exists then suppliedNotional else periodNotional -> value - alias currency: periodNotional -> unit -> currency - - set result: CalculateFloatingCashFlow(interestRatePayout, calculationPeriod, notional, currency, floatingRateSetting, processedRateDetails) + inputs: + interestRatePayout InterestRatePayout (1..1) <"The interest rate stream for which the floating amount calculation is being done."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the floating rate calculation is being done."> + isInitialPeriod boolean (1..1) <"Is this the initial calculation period?."> + suppliedNotional number (0..1) + suppliedRate number (0..1) + floatingRateSetting FloatingRateSettingDetails (0..1) <"Details of the rate observation/calculation corresonding to the supplied rate definition and calculation period."> + output: + result FloatingAmountCalculationDetails (1..1) <"The details of the floating rate calculation, including raw rate, rate treatment details, notional, and calculated cashlow amount."> + + alias floatingRate: floatingRateSetting -> floatingRate + + // apply rate treatments/processing + alias processingParameters: + GetFloatingRateProcessingParameters(interestRatePayout, calculationPeriod) + alias processedRateDetails: + if suppliedRate exists + then DefaultFloatingRate(suppliedRate) + else ApplyFloatingRateProcessing( + processingParameters, + floatingRate, + calculationPeriod, + isInitialPeriod + ) + + // determine notional, year fraction, and perform the final calculation + alias periodNotional: GetNotionalAmount(interestRatePayout, calculationPeriod) + alias notional: + if suppliedNotional exists + then suppliedNotional + else periodNotional -> value + alias currency: periodNotional -> unit -> currency + + set result: + CalculateFloatingCashFlow( + interestRatePayout, + calculationPeriod, + notional, + currency, + floatingRateSetting, + processedRateDetails + ) func DefaultFloatingRate: - inputs: - suppliedRate number (1..1) - output: - processedRateDetails FloatingRateProcessingDetails (1..1) <"Results are details of the rate treatment."> + inputs: + suppliedRate number (1..1) + output: + processedRateDetails FloatingRateProcessingDetails (1..1) <"Results are details of the rate treatment."> - set processedRateDetails -> processedRate: suppliedRate + set processedRateDetails -> processedRate: suppliedRate func CalculateFloatingCashFlow: - inputs: - interestRatePayout InterestRatePayout (1..1) <"The interest rate stream for which the floating amount calculation is being done."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the floating rate calculation is being done."> - notional number (0..1) - currency string (0..1) - floatingRateSetting FloatingRateSettingDetails (0..1) <"Details of the rate observation/calculation corresponding to the supplied rate definition and calculation period."> - processedRateDetails FloatingRateProcessingDetails (1..1) <"Results are details of the rate treatment."> - output: - result FloatingAmountCalculationDetails (1..1) <"The details of the floating rate calculation, including raw rate, rate treatment details, notional, and calculated cashflow amount."> - - alias appliedRate: processedRateDetails -> processedRate - alias spreadExclusiveRate: processedRateDetails -> spreadExclusiveRate - - alias dcf: interestRatePayout -> dayCountFraction - alias yearFraction: CalculateYearFraction(interestRatePayout, dcf, calculationPeriod) - alias annualAccrual: notional * appliedRate - alias notionalAccrual: notional * yearFraction - alias cashflow: notionalAccrual * appliedRate - alias spreadExclusiveCashflow: notionalAccrual * spreadExclusiveRate - - // record results - set result -> calculationPeriod: calculationPeriod - set result -> calculationPeriodNotionalAmount -> value: notional - set result -> calculationPeriodNotionalAmount -> unit -> currency: currency - set result -> floatingRate: if floatingRateSetting exists then floatingRateSetting - - set result -> processingDetails: processedRateDetails - set result -> appliedRate: appliedRate - set result -> yearFraction: yearFraction - set result -> calculatedAmount: cashflow - set result -> spreadExclusiveCalculatedAMount: spreadExclusiveCashflow + inputs: + interestRatePayout InterestRatePayout (1..1) <"The interest rate stream for which the floating amount calculation is being done."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the floating rate calculation is being done."> + notional number (0..1) + currency string (0..1) + floatingRateSetting FloatingRateSettingDetails (0..1) <"Details of the rate observation/calculation corresponding to the supplied rate definition and calculation period."> + processedRateDetails FloatingRateProcessingDetails (1..1) <"Results are details of the rate treatment."> + output: + result FloatingAmountCalculationDetails (1..1) <"The details of the floating rate calculation, including raw rate, rate treatment details, notional, and calculated cashflow amount."> + + alias appliedRate: processedRateDetails -> processedRate + alias spreadExclusiveRate: processedRateDetails -> spreadExclusiveRate + + alias dcf: interestRatePayout -> dayCountFraction + alias yearFraction: CalculateYearFraction(interestRatePayout, dcf, calculationPeriod) + alias annualAccrual: notional * appliedRate + alias notionalAccrual: notional * yearFraction + alias cashflow: notionalAccrual * appliedRate + alias spreadExclusiveCashflow: notionalAccrual * spreadExclusiveRate + + // record results + set result -> calculationPeriod: calculationPeriod + set result -> calculationPeriodNotionalAmount -> value: notional + set result -> calculationPeriodNotionalAmount -> unit -> currency: currency + set result -> floatingRate: + if floatingRateSetting exists then floatingRateSetting + + set result -> processingDetails: processedRateDetails + set result -> appliedRate: appliedRate + set result -> yearFraction: yearFraction + set result -> calculatedAmount: cashflow + set result -> spreadExclusiveCalculatedAMount: spreadExclusiveCashflow func Create_CalculationPeriodBase: <"Create a CalculationPeriodBase type from CalculationPeriodData type."> - inputs: - calcPeriodData CalculationPeriodData(1..1) <"A supplied CalculationPeriodData structure."> - output: - calcPeriod CalculationPeriodBase (1..1) <"The corresponding CalculationPeriodBase structure."> + inputs: + calcPeriodData CalculationPeriodData (1..1) <"A supplied CalculationPeriodData structure."> + output: + calcPeriod CalculationPeriodBase (1..1) <"The corresponding CalculationPeriodBase structure."> - set calcPeriod -> adjustedStartDate: calcPeriodData -> startDate - set calcPeriod -> adjustedEndDate: calcPeriodData -> endDate + set calcPeriod -> adjustedStartDate: calcPeriodData -> startDate + set calcPeriod -> adjustedEndDate: calcPeriodData -> endDate //------------------------------------------------------- // The following functions look up current notional //------------------------------------------------------- - func GetNotionalAmount: <"Look up the notional amount in effect for a calculation period."> - inputs: - interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the notional."> - output: - notional Money (1..1) <"The notional that is in effect starting from the adjustedPeriodStartDate."> - - set notional -> value: <"Look up and return the notional from the notional schedule."> - GetQuantityScheduleStepValues( - interestRatePayout -> priceQuantity -> quantitySchedule, - calculationPeriod -> adjustedStartDate ) last - set notional -> unit -> currency: - interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency + inputs: + interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the notional."> + output: + notional Money (1..1) <"The notional that is in effect starting from the adjustedPeriodStartDate."> + + set notional -> value: <"Look up and return the notional from the notional schedule."> + GetQuantityScheduleStepValues( + interestRatePayout -> priceQuantity -> quantitySchedule, + calculationPeriod -> adjustedStartDate + ) + last + set notional -> unit -> currency: + interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency func GetQuantityScheduleStepValues: <"Find all schedule step values whose stepDate is before or equal to the supplied periodStartDate. Returns a list of step values starting from the initial quantity value, to the last step value before the periodStartDate."> - inputs: - schedule NonNegativeQuantitySchedule (1..1) <"The quantity schedule being looked up from."> - periodStartDate date (1..1) <"The date for which the quantity is required."> - output: - stepValues number (0..*) + inputs: + schedule NonNegativeQuantitySchedule (1..1) <"The quantity schedule being looked up from."> + periodStartDate date (1..1) <"The date for which the quantity is required."> + output: + stepValues number (0..*) add stepValues: <"Add initial step value."> schedule -> value add stepValues: <"Add all schedule step values whose stepDate is before or equal to the supplied periodStartDate."> - schedule -> datedValue + schedule -> datedValue filter date <= periodStartDate then extract value @@ -189,23 +223,24 @@ func GetQuantityScheduleStepValues: <"Find all schedule step values whose stepDa // Day count and year fraction calculation // // ----------------------------------------------- - func CalculateYearFraction: <"Calculate the year fraction for a single calculation period, by invoking the base year fraction logic"> - inputs: - interestRatePayout InterestRatePayout (1..1) <"The interest rate payout for which the year fraction is needed"> - dcf DayCountFractionEnum (1..1) <"The day count fraction convention to use"> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the year fraction is needed"> - output: - yearFrac number (1..1) + inputs: + interestRatePayout InterestRatePayout (1..1) <"The interest rate payout for which the year fraction is needed"> + dcf DayCountFractionEnum (1..1) <"The day count fraction convention to use"> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the year fraction is needed"> + output: + yearFrac number (1..1) // some convenience aliases to access start and end dates - alias start: calculationPeriod -> adjustedStartDate - alias end: calculationPeriod -> adjustedEndDate - alias termination: interestRatePayout -> calculationPeriodDates -> terminationDate -> adjustableDate -> unadjustedDate + alias start: calculationPeriod -> adjustedStartDate + alias end: calculationPeriod -> adjustedEndDate + alias termination: + interestRatePayout -> calculationPeriodDates -> terminationDate -> adjustableDate -> unadjustedDate // calculate the number of calculation periods in a year - alias periodsInYear: <"Number of calculation periods in a year."> - PeriodsInYear(interestRatePayout -> calculationPeriodDates -> calculationPeriodFrequency) + alias periodsInYear: <"Number of calculation periods in a year."> + PeriodsInYear( + interestRatePayout -> calculationPeriodDates -> calculationPeriodFrequency + ) - set yearFrac: - YearFraction(dcf, start, end, termination, periodsInYear) + set yearFrac: YearFraction(dcf, start, end, termination, periodsInYear) diff --git a/rosetta-source/src/main/rosetta/product-asset-enum.rosetta b/rosetta-source/src/main/rosetta/product-asset-enum.rosetta index efc43c9eaf..4a512e4bd9 100644 --- a/rosetta-source/src/main/rosetta/product-asset-enum.rosetta +++ b/rosetta-source/src/main/rosetta/product-asset-enum.rosetta @@ -5,80 +5,80 @@ import cdm.base.* import cdm.mapping.config.* enum CompoundingMethodEnum: <"The enumerated values to specify the type of compounding, e.g. flat, straight."> - Flat <"Flat compounding. Compounding excludes the spread. Note that the first compounding period has it's interest calculated including any spread then subsequent periods compound this at a rate excluding the spread."> - None <"No compounding is to be applied."> - Straight <"Straight compounding. Compounding includes the spread."> - SpreadExclusive <"Spread Exclusive compounding."> + Flat <"Flat compounding. Compounding excludes the spread. Note that the first compounding period has it's interest calculated including any spread then subsequent periods compound this at a rate excluding the spread."> + None <"No compounding is to be applied."> + Straight <"Straight compounding. Compounding includes the spread."> + SpreadExclusive <"Spread Exclusive compounding."> enum DayDistributionEnum: <"Denotes the method by which the pricing days are distributed across the pricing period."> - All - First - Last - Penultimate + All + First + Last + Penultimate enum DiscountingTypeEnum: <"The enumerated values to specify the method of calculating discounted payment amounts. This enumerations combines the FpML DiscountingTypeEnum and FraDiscountingEnum enumerations."> - Standard <"As specified by the 2006 ISDA Definitions, Section 8.4. Discounting, paragraph (a)."> - FRA <"As specified by the 2006 ISDA Definitions, Section 8.4. Discounting, paragraph (b)."> - FRAYield <"As specified by the 2006 ISDA Definitions, Section 8.4. Discounting, paragraph (e)."> - AFMA <"As specified by the Australian Financial Markets Association (AFMA) OTC Financial Product Conventions. This discounting method should not be used for a trade documented under a legal framework where the 2006 ISDA Definitions have been incorporated."> + Standard <"As specified by the 2006 ISDA Definitions, Section 8.4. Discounting, paragraph (a)."> + FRA <"As specified by the 2006 ISDA Definitions, Section 8.4. Discounting, paragraph (b)."> + FRAYield <"As specified by the 2006 ISDA Definitions, Section 8.4. Discounting, paragraph (e)."> + AFMA <"As specified by the Australian Financial Markets Association (AFMA) OTC Financial Product Conventions. This discounting method should not be used for a trade documented under a legal framework where the 2006 ISDA Definitions have been incorporated."> enum DividendAmountTypeEnum: <"The enumerated values to specify whether the dividend is paid with respect to the Dividend Period."> - RecordAmount <"The record date for a dividend occurs during a dividend period."> - ExAmount <"The ex-date for a dividend occurs during a dividend period."> - PaidAmount <"The payment date for a dividend occurs during a dividend period."> - AsSpecifiedInMasterConfirmation <"The Amount is determined as provided in the relevant Master Confirmation."> + RecordAmount <"The record date for a dividend occurs during a dividend period."> + ExAmount <"The ex-date for a dividend occurs during a dividend period."> + PaidAmount <"The payment date for a dividend occurs during a dividend period."> + AsSpecifiedInMasterConfirmation <"The Amount is determined as provided in the relevant Master Confirmation."> enum DividendCompositionEnum: <"The enumerated values to specify how the composition of Dividends is to be determined."> - EquityAmountReceiverElection <"The Equity Amount Receiver determines the composition of dividends (subject to conditions)."> - CalculationAgentElection <"The Calculation Agent determines the composition of dividends (subject to conditions)."> + EquityAmountReceiverElection <"The Equity Amount Receiver determines the composition of dividends (subject to conditions)."> + CalculationAgentElection <"The Calculation Agent determines the composition of dividends (subject to conditions)."> enum DividendDateReferenceEnum: <"The enumerated values to specify the date by reference to which the dividend will be paid."> - AdHocDate <"The dividend date will be specified ad-hoc by the parties, typically on the dividend ex-date."> - CashSettlementPaymentDate <"If 'Dividend Payment Date(s)' is specified in the Transaction Supplement as 'Cash Settlement Payment Date', then the Dividend Payment Date in respect of a Dividend Amount shall be the Cash Settlement Payment Date relating to the end of the Dividend Period during which the Shares commenced trading 'ex' the relevant dividend on the Exchange."> - CashSettlePaymentDateExDiv <"If 'Dividend Payment Date(s)' is specified in the Transaction Supplement as 'Cash Settlement Payment Date – Ex Dividend'', then the Dividend Payment Date in respect of a Dividend Amount shall be the Cash Settlement Payment Date relating to the end of the Dividend Period during which the Shares commenced trading 'ex' the relevant dividend on the Exchange."> - CashSettlePaymentDateIssuerPayment <"If 'Dividend Payment Date(s)' is specified in the Transaction Supplement as 'Cash Settlement Payment Date – Issuer Payment', then the Dividend Payment Date in respect of a Dividend Amount shall be the Cash Settlement Payment Date relating to the end of the Dividend Period during which the issuer pays the relevant dividend to a holder of record provided that in the case where the Equity Amount Payer is the party specified to be the sole Hedging Party and the Hedging Party has not received the Dividend Amount by such date, then the date falling a number of Currency Business Days as specified in the Cash Settlement Payment Date after actual receipt by the Hedging Party of the Received Ex Amount or Paid Ex Amount (as applicable)."> - CumulativeEquityExDiv <"Total of dividends which go ex, paid on next following Equity Payment Date, which is immediately following the Dividend Period during which the Shares commence trading ex-dividend on the Exchange."> - CumulativeEquityPaid <"Total of paid dividends, paid on next following Equity Payment Date, which is immediately following the Dividend Period during which the dividend is paid by the Issuer to the holders of record of a Share."> - CumulativeEquityExDivBeforeReset <"Total of paid dividends, paid on next following Equity Payment Date, which is immediately following the Dividend Ex Date, unless the Dividend Ex Date is between the Equity Valuation and Payment Date in which case the dividend is deferred to the following Equity Payment Date"> - CumulativeEquityPaidBeforeReset <"Total of paid dividends, paid on next following Equity Payment Date, which is immediately following the Dividend Pay Date, unless the Dividend Pay Date is between the Equity Valuation and Payment Date (not including the Valuation Date) in which case the dividend is deferred to the following Equity Payment Date"> - CumulativeEquityPaidInclReset <"Total of paid dividends, paid on next following Equity Payment Date, which is immediately following the Dividend Pay Date, unless the Dividend Pay Date is between the Equity Valuation and Payment Date (including the Valuation Date) in which case the dividend is deferred to the following Equity Payment Date"> - CumulativeInterestExDiv <"Total of dividends which go ex, paid on next following Interest Payment Date, which is immediately following the Dividend Period during which the Shares commence trading ex-dividend on the Exchange, or where the date on which the Shares commence trading ex-dividend is a Payment Date, such Payment Date."> - CumulativeInterestPaid <"Total of paid dividends, paid on next following Interest Payment Date, which is immediately following the Dividend Period during which the dividend is paid by the Issuer to the holders of record of a Share."> - CumulativeInterestPaidInclReset <"Total of paid dividends, paid on next following Interest Payment Date, which is immediately following the Dividend Pay Date, unless the Dividend Pay Date is between the Equity Valuation and Payment Date (including the Valuation Date) in which case the dividend is deferred to the following Interest Payment Date."> - CumulativeInterestPaidBeforeReset <"Total of paid dividends, paid on next following Interest Payment Date, which is immediately following the Dividend Pay Date, unless the Dividend Pay Date is between the Equity Valuation and Payment Date (not including the Valuation Date) in which case the dividend is deferred to the following Interest Payment Date."> - DividendPaymentDate <"Date on which the dividend will be paid by the issuer."> - DividendValuationDate <"In respect of each Dividend Period, the relevant Dividend Valuation Date."> - EquityPaymentDate <"Equity payment date of the swap."> - ExDate <"Date on which a holder of the security is entitled to the dividend."> - FloatingAmountPaymentDate <"If 'Dividend Payment Date(s)' is specified in the Transaction Supplement as 'Floating Amount Payment Date', then the Dividend Payment Date in respect of a Dividend Amount shall be the first Payment Date falling at least one Settlement Cycle after the date that the Shares have commenced trading 'ex' the relevant dividend on the Exchange."> - FollowingPaymentDate <"The next payment date of the swap."> - RecordDate <"Date on which the dividend will be recorded in the books of the paying agent."> - SharePayment <"If 'Dividend Payment Date(s)' is specified in the Transaction Supplement as 'Share Payment', then the Dividend Payment Date in respect of a Dividend Amount shall fall on a date on or before the date that is two (or any other number that is specified in the Transaction Supplement) Currency Business Days following the day on which the Issuer of the Shares pays the relevant dividend to holders of record of the Shares."> - TerminationDate <"Termination date of the swap."> - TradeDate <"Trade date of the swap"> - UnwindOrEquityExDiv <"Pays a fraction of the Dividend Amount on each Unwind Trade Settlement Date which occurs after the Dividend Ex Date, until position is fully unwound OR on the next Equity Pay Date after the Dividend Pay Date. This will be whichever date comes first or a combination of both."> - UnwindOrEquityPaid <"Pays a fraction of the Dividend Amount on each Unwind Trade Settlement Date which occurs after the Dividend Pay Date, until position is fully unwound OR on the next Equity Pay Date after the Dividend Pay Date. This will be whichever date comes first or a combination of both."> - UnwindOrInterestExDiv <"Pays a fraction of the Dividend Amount on each Unwind Trade Settlement Date which occurs after the Dividend Ex Date, until position is fully unwound OR on the next Interest Pay Date after the Dividend Ex Date. This will be whichever date comes first or a combination of both."> - UnwindOrInterestPaid <"Pays a fraction of the Dividend Amount on each Unwind Trade Settlement Date which occurs after the Dividend Pay Date, until position is fully unwound OR on the next Interest Pay Date after the Dividend Pay Date. This will be whichever date comes first or a combination of both."> - UnwindExDiv <"Pays a fraction of the total on each Unwind Trade Settlement Date which occurs after the Dividend Ex Date, until trade is fully unwound."> - UnwindPaid <"Pays a fraction of the total on each Unwind Trade Settlement Date which occurs after the Dividend Pay Date, until trade is fully unwound."> + AdHocDate <"The dividend date will be specified ad-hoc by the parties, typically on the dividend ex-date."> + CashSettlementPaymentDate <"If 'Dividend Payment Date(s)' is specified in the Transaction Supplement as 'Cash Settlement Payment Date', then the Dividend Payment Date in respect of a Dividend Amount shall be the Cash Settlement Payment Date relating to the end of the Dividend Period during which the Shares commenced trading 'ex' the relevant dividend on the Exchange."> + CashSettlePaymentDateExDiv <"If 'Dividend Payment Date(s)' is specified in the Transaction Supplement as 'Cash Settlement Payment Date – Ex Dividend'', then the Dividend Payment Date in respect of a Dividend Amount shall be the Cash Settlement Payment Date relating to the end of the Dividend Period during which the Shares commenced trading 'ex' the relevant dividend on the Exchange."> + CashSettlePaymentDateIssuerPayment <"If 'Dividend Payment Date(s)' is specified in the Transaction Supplement as 'Cash Settlement Payment Date – Issuer Payment', then the Dividend Payment Date in respect of a Dividend Amount shall be the Cash Settlement Payment Date relating to the end of the Dividend Period during which the issuer pays the relevant dividend to a holder of record provided that in the case where the Equity Amount Payer is the party specified to be the sole Hedging Party and the Hedging Party has not received the Dividend Amount by such date, then the date falling a number of Currency Business Days as specified in the Cash Settlement Payment Date after actual receipt by the Hedging Party of the Received Ex Amount or Paid Ex Amount (as applicable)."> + CumulativeEquityExDiv <"Total of dividends which go ex, paid on next following Equity Payment Date, which is immediately following the Dividend Period during which the Shares commence trading ex-dividend on the Exchange."> + CumulativeEquityPaid <"Total of paid dividends, paid on next following Equity Payment Date, which is immediately following the Dividend Period during which the dividend is paid by the Issuer to the holders of record of a Share."> + CumulativeEquityExDivBeforeReset <"Total of paid dividends, paid on next following Equity Payment Date, which is immediately following the Dividend Ex Date, unless the Dividend Ex Date is between the Equity Valuation and Payment Date in which case the dividend is deferred to the following Equity Payment Date"> + CumulativeEquityPaidBeforeReset <"Total of paid dividends, paid on next following Equity Payment Date, which is immediately following the Dividend Pay Date, unless the Dividend Pay Date is between the Equity Valuation and Payment Date (not including the Valuation Date) in which case the dividend is deferred to the following Equity Payment Date"> + CumulativeEquityPaidInclReset <"Total of paid dividends, paid on next following Equity Payment Date, which is immediately following the Dividend Pay Date, unless the Dividend Pay Date is between the Equity Valuation and Payment Date (including the Valuation Date) in which case the dividend is deferred to the following Equity Payment Date"> + CumulativeInterestExDiv <"Total of dividends which go ex, paid on next following Interest Payment Date, which is immediately following the Dividend Period during which the Shares commence trading ex-dividend on the Exchange, or where the date on which the Shares commence trading ex-dividend is a Payment Date, such Payment Date."> + CumulativeInterestPaid <"Total of paid dividends, paid on next following Interest Payment Date, which is immediately following the Dividend Period during which the dividend is paid by the Issuer to the holders of record of a Share."> + CumulativeInterestPaidInclReset <"Total of paid dividends, paid on next following Interest Payment Date, which is immediately following the Dividend Pay Date, unless the Dividend Pay Date is between the Equity Valuation and Payment Date (including the Valuation Date) in which case the dividend is deferred to the following Interest Payment Date."> + CumulativeInterestPaidBeforeReset <"Total of paid dividends, paid on next following Interest Payment Date, which is immediately following the Dividend Pay Date, unless the Dividend Pay Date is between the Equity Valuation and Payment Date (not including the Valuation Date) in which case the dividend is deferred to the following Interest Payment Date."> + DividendPaymentDate <"Date on which the dividend will be paid by the issuer."> + DividendValuationDate <"In respect of each Dividend Period, the relevant Dividend Valuation Date."> + EquityPaymentDate <"Equity payment date of the swap."> + ExDate <"Date on which a holder of the security is entitled to the dividend."> + FloatingAmountPaymentDate <"If 'Dividend Payment Date(s)' is specified in the Transaction Supplement as 'Floating Amount Payment Date', then the Dividend Payment Date in respect of a Dividend Amount shall be the first Payment Date falling at least one Settlement Cycle after the date that the Shares have commenced trading 'ex' the relevant dividend on the Exchange."> + FollowingPaymentDate <"The next payment date of the swap."> + RecordDate <"Date on which the dividend will be recorded in the books of the paying agent."> + SharePayment <"If 'Dividend Payment Date(s)' is specified in the Transaction Supplement as 'Share Payment', then the Dividend Payment Date in respect of a Dividend Amount shall fall on a date on or before the date that is two (or any other number that is specified in the Transaction Supplement) Currency Business Days following the day on which the Issuer of the Shares pays the relevant dividend to holders of record of the Shares."> + TerminationDate <"Termination date of the swap."> + TradeDate <"Trade date of the swap"> + UnwindOrEquityExDiv <"Pays a fraction of the Dividend Amount on each Unwind Trade Settlement Date which occurs after the Dividend Ex Date, until position is fully unwound OR on the next Equity Pay Date after the Dividend Pay Date. This will be whichever date comes first or a combination of both."> + UnwindOrEquityPaid <"Pays a fraction of the Dividend Amount on each Unwind Trade Settlement Date which occurs after the Dividend Pay Date, until position is fully unwound OR on the next Equity Pay Date after the Dividend Pay Date. This will be whichever date comes first or a combination of both."> + UnwindOrInterestExDiv <"Pays a fraction of the Dividend Amount on each Unwind Trade Settlement Date which occurs after the Dividend Ex Date, until position is fully unwound OR on the next Interest Pay Date after the Dividend Ex Date. This will be whichever date comes first or a combination of both."> + UnwindOrInterestPaid <"Pays a fraction of the Dividend Amount on each Unwind Trade Settlement Date which occurs after the Dividend Pay Date, until position is fully unwound OR on the next Interest Pay Date after the Dividend Pay Date. This will be whichever date comes first or a combination of both."> + UnwindExDiv <"Pays a fraction of the total on each Unwind Trade Settlement Date which occurs after the Dividend Ex Date, until trade is fully unwound."> + UnwindPaid <"Pays a fraction of the total on each Unwind Trade Settlement Date which occurs after the Dividend Pay Date, until trade is fully unwound."> enum DividendEntitlementEnum: <"The enumerated values to specify the date on which the receiver of the equity payout is entitled to the dividend."> - ExDate <"Dividend entitlement is on the dividend ex-date."> - RecordDate <"Dividend entitlement is on the dividend record date."> - [synonym FIX_5_0_SP2 value "RecordDate"] + ExDate <"Dividend entitlement is on the dividend ex-date."> + RecordDate <"Dividend entitlement is on the dividend record date."> + [synonym FIX_5_0_SP2 value "RecordDate"] enum DividendPeriodEnum: <"2002 ISDA Equity Derivatives Definitions: First Period, Second Period |"> - FirstPeriod <"2002 ISDA Equity Derivatives Definitions: First Period means each period from, and including, one Cash Settlement Payment Date or Settlement Date, as the case may be, to, but excluding, the next following Cash Settlement Payment Date or Settlement Date, as the case may be, except that (i) the initial Dividend Period will commence on, and include, the Clearance System Business Day that is one Settlement Cycle following the Trade Date and (ii) the final Dividend Period will end on, but exclude, the final Cash Settlement Payment Date or Settlement Date, as the case may be."> - SecondPeriod <"2002 ISDA Equity Derivatives Definitions: Second Period means each period from, but excluding, one Valuation Date to, and including, the next Valuation Date, except that (i) the initial Dividend Period will commence on, but exclude, the Trade Date and (ii) the final Dividend Period will end on, and include, the final Valuation Date or, in respect of a Physically-settled Forward Transaction to which Variable Obligation is not applicable, the date that is one Settlement Cycle prior to the Settlement Date."> + FirstPeriod <"2002 ISDA Equity Derivatives Definitions: First Period means each period from, and including, one Cash Settlement Payment Date or Settlement Date, as the case may be, to, but excluding, the next following Cash Settlement Payment Date or Settlement Date, as the case may be, except that (i) the initial Dividend Period will commence on, and include, the Clearance System Business Day that is one Settlement Cycle following the Trade Date and (ii) the final Dividend Period will end on, but exclude, the final Cash Settlement Payment Date or Settlement Date, as the case may be."> + SecondPeriod <"2002 ISDA Equity Derivatives Definitions: Second Period means each period from, but excluding, one Valuation Date to, and including, the next Valuation Date, except that (i) the initial Dividend Period will commence on, but exclude, the Trade Date and (ii) the final Dividend Period will end on, and include, the final Valuation Date or, in respect of a Physically-settled Forward Transaction to which Variable Obligation is not applicable, the date that is one Settlement Cycle prior to the Settlement Date."> enum IndexAnnexSourceEnum: <"The enumerated values to specify the CDX index annex source."> - MasterConfirmation <"As defined in the relevant form of Master Confirmation applicable to the confirmation of Dow Jones CDX indices."> - Publisher <"As defined in the relevant form of Master Confirmation applicable to the confirmation of Dow Jones CDX indices."> + MasterConfirmation <"As defined in the relevant form of Master Confirmation applicable to the confirmation of Dow Jones CDX indices."> + Publisher <"As defined in the relevant form of Master Confirmation applicable to the confirmation of Dow Jones CDX indices."> enum InterestShortfallCapEnum: <"The enumerated values to specify the interest shortfall cap, applicable to mortgage derivatives."> - Fixed - Variable + Fixed + Variable enum LoadTypeEnum: <"Specifies the load type of the delivery."> BaseLoad <"Base load"> @@ -88,48 +88,48 @@ enum LoadTypeEnum: <"Specifies the load type of the delivery."> Shaped <"Shaped"> GasDay <"Gas Day"> Other <"Other"> - + enum NegativeInterestRateTreatmentEnum: <"The enumerated values to specify the method of calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate)."> - NegativeInterestRateMethod <"Negative Interest Rate Method. Per 2000 ISDA Definitions, Section 6.4 Negative Interest Rates, paragraphs (b) and (c)."> - ZeroInterestRateMethod <"Zero Interest Rate Method. Per 2000 ISDA Definitions, Section 6.4. Negative Interest Rates, paragraphs (d) and (e)."> - ZeroInterestRateExcludingSpreadMethod <"Per 2021 ISDA Definitions section 6.8.6"> + NegativeInterestRateMethod <"Negative Interest Rate Method. Per 2000 ISDA Definitions, Section 6.4 Negative Interest Rates, paragraphs (b) and (c)."> + ZeroInterestRateMethod <"Zero Interest Rate Method. Per 2000 ISDA Definitions, Section 6.4. Negative Interest Rates, paragraphs (d) and (e)."> + ZeroInterestRateExcludingSpreadMethod <"Per 2021 ISDA Definitions section 6.8.6"> enum NonCashDividendTreatmentEnum: <"The enumerated values to specify the treatment of Non-Cash Dividends."> - PotentialAdjustmentEvent <"The treatment of any non-cash dividend shall be determined in accordance with the Potential Adjustment Event provisions."> - CashEquivalent <"Any non-cash dividend shall be treated as a Declared Cash Equivalent Dividend."> + PotentialAdjustmentEvent <"The treatment of any non-cash dividend shall be determined in accordance with the Potential Adjustment Event provisions."> + CashEquivalent <"Any non-cash dividend shall be treated as a Declared Cash Equivalent Dividend."> enum RateTreatmentEnum: <"The enumerated values to specify the methods for converting rates from one basis to another."> - BondEquivalentYield <"Bond Equivalent Yield. Per Annex to the 2000 ISDA Definitions (June 2000 Version), Section 7.3. Certain General Definitions Relating to Floating Rate Options, paragraph (g)."> - MoneyMarketYield <"Money Market Yield. Per Annex to the 2000 ISDA Definitions (June 2000 Version), Section 7.3. Certain General Definitions Relating to Floating Rate Options, paragraph (h)."> + BondEquivalentYield <"Bond Equivalent Yield. Per Annex to the 2000 ISDA Definitions (June 2000 Version), Section 7.3. Certain General Definitions Relating to Floating Rate Options, paragraph (g)."> + MoneyMarketYield <"Money Market Yield. Per Annex to the 2000 ISDA Definitions (June 2000 Version), Section 7.3. Certain General Definitions Relating to Floating Rate Options, paragraph (h)."> enum ReturnTypeEnum: <"The enumerated values to specify the type of return associated the equity payout."> - Price <"Price return, i.e. excluding dividends."> - Total <"Total return, i.e. including dividend and price components."> + Price <"Price return, i.e. excluding dividends."> + Total <"Total return, i.e. including dividend and price components."> enum SettledEntityMatrixSourceEnum: <"The enumerated values to specify the relevant settled entity matrix source."> - ConfirmationAnnex <"The Relevant Settled Entity Matrix shall be the list agreed for this purpose by the parties. The list is not included as part of the electronic confirmation."> - NotApplicable <"The term is not applicable."> - Publisher <"The Settled Entity Matrix published by the Index Publisher."> + ConfirmationAnnex <"The Relevant Settled Entity Matrix shall be the list agreed for this purpose by the parties. The list is not included as part of the electronic confirmation."> + NotApplicable <"The term is not applicable."> + Publisher <"The Settled Entity Matrix published by the Index Publisher."> enum SpreadScheduleTypeEnum: <"The enumerated values to specify a long or short spread value."> - Long <"Represents a Long Spread Schedule. Spread schedules defined as 'Long' will be applied to Long Positions."> - Short <"Represents a Short Spread Schedule. Spread schedules defined as 'Short' will be applied to Short Positions."> + Long <"Represents a Long Spread Schedule. Spread schedules defined as 'Long' will be applied to Long Positions."> + Short <"Represents a Short Spread Schedule. Spread schedules defined as 'Short' will be applied to Short Positions."> enum RollSourceCalendarEnum: <"Used in conjunction with an exchange-based pricing source. Identifies a date source calendar from which the pricing dates and thus roll to the next contract will be based off (e.g. pricing is based on the NYMEX WTI First Nearby Futures Contract, if Future is chosen, the pricing will roll to the next futures contract on expiration, if ListedOption is chosen, the pricing will roll to the next futures contract on the Option expiration date which is three business days before the expiration of the NYMEX WTI futures contract.) Omitting this element will result in the default behavior expected with the pricing source described within the commodity element."> - ListedOption - Future + ListedOption + Future enum CreditSeniorityEnum: <"Seniority of debt instruments comprising the index."> - [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/credit-seniority"] + [docReference ISDA FpML_Coding_Scheme schemeLocation "http://www.fpml.org/coding-scheme/credit-seniority"] - Other <"Other as defined under EMIR."> - SeniorLossAbsorbingCapacity <"Senior Loss Absorbing Capacity (RED Tier Code: SNRLAC)."> - SeniorSec <"Senior domestic (RED Tier Code: SECDOM)."> - SeniorUnSec <"Senior foreign (RED Tier Code: SNRFOR)."> - SubLowerTier2 <"Subordinate, Lower Tier 2 (RED Tier Code: SUBLT2)."> - SubTier1 <"Subordinate Tier 1 (RED Tier Code: PREFT1)."> - SubTier3 <"Subordinate, Tier 3."> - SubUpperTier2 <"Subordinate, Upper Tier 2 (RED Tier Code: JRSUBUT2)."> + Other <"Other as defined under EMIR."> + SeniorLossAbsorbingCapacity <"Senior Loss Absorbing Capacity (RED Tier Code: SNRLAC)."> + SeniorSec <"Senior domestic (RED Tier Code: SECDOM)."> + SeniorUnSec <"Senior foreign (RED Tier Code: SNRFOR)."> + SubLowerTier2 <"Subordinate, Lower Tier 2 (RED Tier Code: SUBLT2)."> + SubTier1 <"Subordinate Tier 1 (RED Tier Code: PREFT1)."> + SubTier3 <"Subordinate, Tier 3."> + SubUpperTier2 <"Subordinate, Upper Tier 2 (RED Tier Code: JRSUBUT2)."> enum RealisedVarianceMethodEnum: <"The contract specifies which price must satisfy the boundary condition. Used for variance, volatility and correlation caps and floors."> @@ -139,8 +139,8 @@ enum RealisedVarianceMethodEnum: <"The contract specifies which price must satis enum FPVFinalPriceElectionFallbackEnum: <"Specifies the fallback provisions in respect to the applicable Futures Price Valuation."> - FPVClose <"In respect of the Early Final Valuation Date, the provisions for FPV Close shall apply."> - FPVHedgeExecution <"In respect of the Early Final Valuation Date, the provisions for FPV Hedge Execution shall apply."> + FPVClose <"In respect of the Early Final Valuation Date, the provisions for FPV Close shall apply."> + FPVHedgeExecution <"In respect of the Early Final Valuation Date, the provisions for FPV Hedge Execution shall apply."> enum FinalPrincipalExchangeCalculationEnum: <"To be specified only for products that embed a redemption payment."> Floored <"If Floored is set then Principal Exchange takes the form: Notional Amount * Max(1, Index Final/ Index Base)."> @@ -148,4 +148,4 @@ enum FinalPrincipalExchangeCalculationEnum: <"To be specified only for products enum SpreadCalculationMethodEnum: <"Method by which spread is calculated. For example on an asset swap: 'ParPar' or 'Proceeds' may be the method indicated."> ParPar - Proceeds \ No newline at end of file + Proceeds diff --git a/rosetta-source/src/main/rosetta/product-asset-floatingrate-enum.rosetta b/rosetta-source/src/main/rosetta/product-asset-floatingrate-enum.rosetta index 1a19e0c5de..38e0589bb5 100644 --- a/rosetta-source/src/main/rosetta/product-asset-floatingrate-enum.rosetta +++ b/rosetta-source/src/main/rosetta/product-asset-floatingrate-enum.rosetta @@ -2,9 +2,9 @@ namespace cdm.product.asset.floatingrate : <"Product-related, asset class-specif version "${project.version}" enum FloatingRateIndexProcessingTypeEnum: <"This enumeration provides guidance on how to process a given floating rate index. It's based on the ISDA Floating Rate Index information, but transforms it into the specific categories needed for calculation "> - Screen <"These values are just looked up from the screen and applied."> - CompoundIndex <"A published index calculated using compounding; the implied rate must be backed out."> - OIS <"These are calculated by the calculation agent based on a standard OIS FRO definition."> - OvernightAvg <"These are calculated by the calculation agent based on a standard overnight averaging FRO definition."> - Modular <"These are calculated by the calculation agent based on deal-specific parameters (e.g. lookback compound based on an RFR)."> - RefBanks <"These must be looked up using a manual process"> + Screen <"These values are just looked up from the screen and applied."> + CompoundIndex <"A published index calculated using compounding; the implied rate must be backed out."> + OIS <"These are calculated by the calculation agent based on a standard OIS FRO definition."> + OvernightAvg <"These are calculated by the calculation agent based on a standard overnight averaging FRO definition."> + Modular <"These are calculated by the calculation agent based on deal-specific parameters (e.g. lookback compound based on an RFR)."> + RefBanks <"These must be looked up using a manual process"> diff --git a/rosetta-source/src/main/rosetta/product-asset-floatingrate-func.rosetta b/rosetta-source/src/main/rosetta/product-asset-floatingrate-func.rosetta index c45ecb1f37..15351f3ea5 100644 --- a/rosetta-source/src/main/rosetta/product-asset-floatingrate-func.rosetta +++ b/rosetta-source/src/main/rosetta/product-asset-floatingrate-func.rosetta @@ -14,174 +14,220 @@ import cdm.product.common.schedule.* //------------------------------------------------------- // The following functions determine the type of rate and what to do for each //------------------------------------------------------- - func 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."> - inputs: - interestRatePayout InterestRatePayout (1..1) <"Floating rate stream definition."> - calcPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the rate."> - output: - floatingRate FloatingRateSettingDetails (1..1) <"Details of the rate observation/calculation corresonding to the supplied rate definition and calculation period."> - - // figure out the characteristics of the rate - alias rateDef: interestRatePayout -> rateSpecification -> floatingRate - alias processingType: GetFloatingRateProcessingType(rateDef) // get a processing category that will be used to dermine how to process the rate, based on the rate category, style, and calculation method - // perform the relevant operation (look up a term rate or do the rate calculation for a calculated rate) - set floatingRate: ProcessFloatingRateReset(interestRatePayout, calcPeriod, processingType) + inputs: + interestRatePayout InterestRatePayout (1..1) <"Floating rate stream definition."> + calcPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the rate."> + output: + floatingRate FloatingRateSettingDetails (1..1) <"Details of the rate observation/calculation corresonding to the supplied rate definition and calculation period."> + + // figure out the characteristics of the rate + alias rateDef: interestRatePayout -> rateSpecification -> floatingRate + alias processingType: GetFloatingRateProcessingType(rateDef) // get a processing category that will be used to dermine how to process the rate, based on the rate category, style, and calculation method + // perform the relevant operation (look up a term rate or do the rate calculation for a calculated rate) + set floatingRate: + ProcessFloatingRateReset(interestRatePayout, calcPeriod, processingType) func 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. ."> - inputs: - rateDef FloatingRateSpecification (1..1) <"Specification details of the floating rate."> - output: - processingType FloatingRateIndexProcessingTypeEnum (1..1) <"The processing category for the rate ."> - - // is it a modular calculated rate? - alias isCalculatedRate: rateDef -> calculationParameters exists - // look up the floating rate option definition from the metadata - alias floatingRateDefinition: FloatingRateIndexMetadata(rateDef -> rateOption -> floatingRateIndex) - alias calcDefaults: floatingRateDefinition -> calculationDefaults - alias category: calcDefaults -> category - alias idxStyle: calcDefaults -> indexStyle - alias method: calcDefaults -> method - - // determine the processing category for FROs that have embedded calculations - alias calcProcessingType: if (idxStyle = FloatingRateIndexStyleEnum -> CompoundedFRO and method = FloatingRateIndexCalculationMethodEnum -> OISCompound) - then FloatingRateIndexProcessingTypeEnum -> OIS else - if (idxStyle = FloatingRateIndexStyleEnum -> AverageFRO and method = FloatingRateIndexCalculationMethodEnum -> Average) then FloatingRateIndexProcessingTypeEnum -> OvernightAvg - - // determine the processing category for FROs for which we have metadata - alias definitionProcessingType: if category = FloatingRateIndexCategoryEnum -> ScreenRate then FloatingRateIndexProcessingTypeEnum -> Screen else calcProcessingType - - // categorize the rates based on the floating rate specification in the payout and based on the FRO definition from the metadata and output the resulting category - alias processingCategory: if (isCalculatedRate = True) then FloatingRateIndexProcessingTypeEnum -> Modular else - (if floatingRateDefinition -> fro exists then definitionProcessingType - else FloatingRateIndexProcessingTypeEnum -> Screen) - - // return the processing category - set processingType: processingCategory + inputs: + rateDef FloatingRateSpecification (1..1) <"Specification details of the floating rate."> + output: + processingType FloatingRateIndexProcessingTypeEnum (1..1) <"The processing category for the rate ."> + + // is it a modular calculated rate? + alias isCalculatedRate: rateDef -> calculationParameters exists + // look up the floating rate option definition from the metadata + alias floatingRateDefinition: + FloatingRateIndexMetadata(rateDef -> rateOption -> floatingRateIndex) + alias calcDefaults: floatingRateDefinition -> calculationDefaults + alias category: calcDefaults -> category + alias idxStyle: calcDefaults -> indexStyle + alias method: calcDefaults -> method + + // determine the processing category for FROs that have embedded calculations + alias calcProcessingType: + if (idxStyle = FloatingRateIndexStyleEnum -> CompoundedFRO and method = FloatingRateIndexCalculationMethodEnum -> OISCompound) + then FloatingRateIndexProcessingTypeEnum -> OIS + else if (idxStyle = FloatingRateIndexStyleEnum -> AverageFRO and method = FloatingRateIndexCalculationMethodEnum -> Average) + then FloatingRateIndexProcessingTypeEnum -> OvernightAvg + + // determine the processing category for FROs for which we have metadata + alias definitionProcessingType: + if category = FloatingRateIndexCategoryEnum -> ScreenRate + then FloatingRateIndexProcessingTypeEnum -> Screen + else calcProcessingType + + // categorize the rates based on the floating rate specification in the payout and based on the FRO definition from the metadata and output the resulting category + alias processingCategory: + if (isCalculatedRate = True) + then FloatingRateIndexProcessingTypeEnum -> Modular + else (if floatingRateDefinition -> fro exists + then definitionProcessingType + else FloatingRateIndexProcessingTypeEnum -> Screen) + + // return the processing category + set processingType: processingCategory func 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. ."> - inputs: - interestRatePayout InterestRatePayout (1..1) <"Floating rate stream definition."> - calcPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the rate."> - processingType FloatingRateIndexProcessingTypeEnum (1..1) <"The rate processing type (e.g. Screen Rate, OIS); this drives how the resetting calculation is done. ."> - output: - floatingRate FloatingRateSettingDetails (1..1) <"Details of the rate observation/calculation."> + inputs: + interestRatePayout InterestRatePayout (1..1) <"Floating rate stream definition."> + calcPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the rate."> + processingType FloatingRateIndexProcessingTypeEnum (1..1) <"The rate processing type (e.g. Screen Rate, OIS); this drives how the resetting calculation is done. ."> + output: + floatingRate FloatingRateSettingDetails (1..1) <"Details of the rate observation/calculation."> func ProcessFloatingRateReset(processingType: FloatingRateIndexProcessingTypeEnum -> Screen): <"Evaluate the rate for a screen rate - call logic to determine how to observe the screen rate."> - [calculation] - // set up convenience aliases - alias resetDates: interestRatePayout -> resetDates - alias rateDef: interestRatePayout -> rateSpecification -> floatingRate - set floatingRate: EvaluateScreenRate(rateDef, resetDates, calcPeriod) // Call the screen rate evaluation logic + [calculation] + // set up convenience aliases + alias resetDates: interestRatePayout -> resetDates + alias rateDef: interestRatePayout -> rateSpecification -> floatingRate + set floatingRate: EvaluateScreenRate(rateDef, resetDates, calcPeriod) // Call the screen rate evaluation logic func ProcessFloatingRateReset(processingType: FloatingRateIndexProcessingTypeEnum -> Modular): <"Evaluate the rate for a modular calculated rate. Call the calculated rate calculation logic to determine the value of the reset."> - [calculation] - // set up convenience aliases - alias rateDef: interestRatePayout -> rateSpecification -> floatingRate - alias resetDates: interestRatePayout -> resetDates - alias dayCount: interestRatePayout -> dayCountFraction - alias fro: rateDef -> rateOption - alias calcParams: rateDef -> calculationParameters - - // determine the prior calculation period corresponding to this period, in case needed. (used for set-in-advance calculated rates and some fallback rates.) - alias priorCalculationPeriod: Create_CalculationPeriodBase(CalculationPeriod(interestRatePayout -> calculationPeriodDates, calcPeriod -> adjustedStartDate)) - - // call the calculated rate evaluation logic - set floatingRate: - EvaluateCalculatedRate(fro, calcParams, resetDates, calcPeriod, priorCalculationPeriod, dayCount) + [calculation] + // set up convenience aliases + alias rateDef: interestRatePayout -> rateSpecification -> floatingRate + alias resetDates: interestRatePayout -> resetDates + alias dayCount: interestRatePayout -> dayCountFraction + alias fro: rateDef -> rateOption + alias calcParams: rateDef -> calculationParameters + + // determine the prior calculation period corresponding to this period, in case needed. (used for set-in-advance calculated rates and some fallback rates.) + alias priorCalculationPeriod: + Create_CalculationPeriodBase( + CalculationPeriod( + interestRatePayout -> calculationPeriodDates, + calcPeriod -> adjustedStartDate + ) + ) + + // call the calculated rate evaluation logic + set floatingRate: + EvaluateCalculatedRate( + fro, + calcParams, + resetDates, + calcPeriod, + priorCalculationPeriod, + dayCount + ) func ProcessFloatingRateReset(processingType: FloatingRateIndexProcessingTypeEnum -> OIS): <"Evaluate the rate for an OIS calculated rate. Call the calculated rate calculation logic to determine the value of the reset. See the 2021 ISDA Definitions Section 6.6.3."> - [calculation] - // set up convenience aliases - alias rateDef: interestRatePayout -> rateSpecification -> floatingRate - alias resetDates: interestRatePayout -> resetDates - alias dayCount: interestRatePayout -> dayCountFraction - alias fro: rateDef -> rateOption - // create a pseudo calculation parameters block to drive the OIS calculation - alias calcParams: GetCalculatedFROCalculationParameters(resetDates, CalculationMethodEnum -> Compounding) - - // call the calculated rate evaluation logic to evaluate the OIS rate - set floatingRate: - EvaluateCalculatedRate(fro, calcParams, resetDates, calcPeriod, calcPeriod, dayCount) + [calculation] + // set up convenience aliases + alias rateDef: interestRatePayout -> rateSpecification -> floatingRate + alias resetDates: interestRatePayout -> resetDates + alias dayCount: interestRatePayout -> dayCountFraction + alias fro: rateDef -> rateOption + // create a pseudo calculation parameters block to drive the OIS calculation + alias calcParams: + GetCalculatedFROCalculationParameters( + resetDates, + CalculationMethodEnum -> Compounding + ) + + // call the calculated rate evaluation logic to evaluate the OIS rate + set floatingRate: + EvaluateCalculatedRate( + fro, + calcParams, + resetDates, + calcPeriod, + calcPeriod, + dayCount + ) func ProcessFloatingRateReset(processingType: FloatingRateIndexProcessingTypeEnum -> OvernightAvg): <"Evaluate the rate for a daily average calculated FRO. Call the calculated rate calculation logic to determine the value of the reset. See the 2021 ISDA Definitions Section 6.6.3."> - [calculation] - // set up convenience aliases - alias rateDef: interestRatePayout -> rateSpecification -> floatingRate - alias resetDates: interestRatePayout -> resetDates - alias dayCount: interestRatePayout -> dayCountFraction - alias rateOption: rateDef -> rateOption - // create a pseudo calculation parameters block to drive the averaging calculation - alias calcParams: GetCalculatedFROCalculationParameters(resetDates, CalculationMethodEnum -> Averaging) - - // call the calculated rate evaluation logic to evaluate the daily average rate - set floatingRate: - EvaluateCalculatedRate(rateOption, calcParams, resetDates, calcPeriod, calcPeriod, dayCount) + [calculation] + // set up convenience aliases + alias rateDef: interestRatePayout -> rateSpecification -> floatingRate + alias resetDates: interestRatePayout -> resetDates + alias dayCount: interestRatePayout -> dayCountFraction + alias rateOption: rateDef -> rateOption + // create a pseudo calculation parameters block to drive the averaging calculation + alias calcParams: + GetCalculatedFROCalculationParameters( + resetDates, + CalculationMethodEnum -> Averaging + ) + + // call the calculated rate evaluation logic to evaluate the daily average rate + set floatingRate: + EvaluateCalculatedRate( + rateOption, + calcParams, + resetDates, + calcPeriod, + calcPeriod, + dayCount + ) func GetCalculatedFROCalculationParameters: <"Initialize a calculation parameters block for an OIS or a daily average rate. Used to support FROs that include an embedded calculation."> - inputs: - resetDates ResetDates (1..1) <"The reset dates for the interest rate payout for which the calculated rate is being computed."> - calcMethod CalculationMethodEnum (1..1) <"Whether the rate is a compound (OIS) or daily average rate."> - output: - calcParams FloatingRateCalculationParameters (1..1) <"A calculation parameters block."> + inputs: + resetDates ResetDates (1..1) <"The reset dates for the interest rate payout for which the calculated rate is being computed."> + calcMethod CalculationMethodEnum (1..1) <"Whether the rate is a compound (OIS) or daily average rate."> + output: + calcParams FloatingRateCalculationParameters (1..1) <"A calculation parameters block."> - // generate and output the required type - set calcParams -> calculationMethod: calcMethod - set calcParams -> applicableBusinessDays: resetDates -> fixingDates -> businessCenters + // generate and output the required type + set calcParams -> calculationMethod: calcMethod + set calcParams -> applicableBusinessDays: resetDates -> fixingDates -> businessCenters func ProcessFloatingRateReset(processingType: FloatingRateIndexProcessingTypeEnum -> CompoundIndex): <"Call the compounded index processing logic to calculate the reset."> // TODO: this will depend on exactly how FpML implements this. - //------------------------------------------------------- // The following functions do rate reset processing for Screen Rates //------------------------------------------------------- - func EvaluateScreenRate: <"Evaluate/lookup the value of a screen rate."> - inputs: - rateDef FloatingRate (1..1) <"Floating rate definition."> - resetDates ResetDates (1..1) <"Reset dates for observing the rate."> - calculationPeriod CalculationPeriodBase (1..1) <"Calculation period for which you want the rate."> - output: - details FloatingRateSettingDetails (1..1) <"Resulting details of the rate setting ."> - - // figure out the date for which the rate is needed - alias resetDate: DetermineResetDate(resetDates, calculationPeriod) - alias fixingDate: DetermineFixingDate(resetDates, resetDate) - - // look up the rate on that date - alias observedRate: IndexValueObservation(fixingDate, rateDef -> rateOption) - // record relevant dates and observed rate - set details -> resetDate: resetDate - set details -> observationDate: fixingDate - set details -> floatingRate: observedRate + inputs: + rateDef FloatingRate (1..1) <"Floating rate definition."> + resetDates ResetDates (1..1) <"Reset dates for observing the rate."> + calculationPeriod CalculationPeriodBase (1..1) <"Calculation period for which you want the rate."> + output: + details FloatingRateSettingDetails (1..1) <"Resulting details of the rate setting ."> + + // figure out the date for which the rate is needed + alias resetDate: DetermineResetDate(resetDates, calculationPeriod) + alias fixingDate: DetermineFixingDate(resetDates, resetDate) + + // look up the rate on that date + alias observedRate: IndexValueObservation(fixingDate, rateDef -> rateOption) + // record relevant dates and observed rate + set details -> resetDate: resetDate + set details -> observationDate: fixingDate + set details -> floatingRate: observedRate func DetermineResetDate: <"Determine the value of the reset date given a reset dates structure and a calculation paeriod for which it's needed. Reset dates are defined in the 2021 ISDA Definition in Section 6.5.5."> - inputs: - resetDates ResetDates (1..1) <"Reset dates for observing the rate."> - calculationPeriod CalculationPeriodBase (1..1) <"Calculation period for which you want the rate."> - output: - resetDate date (1..1) <"The date upon which the rate should be observed. ."> - - // figure out the date for which the rate is needed - alias resetRelativeTo: resetDates -> resetRelativeTo - alias isStart: resetRelativeTo = ResetRelativeToEnum -> CalculationPeriodStartDate - alias reset: if (isStart) then calculationPeriod -> adjustedStartDate else calculationPeriod -> adjustedEndDate - - set resetDate: reset + inputs: + resetDates ResetDates (1..1) <"Reset dates for observing the rate."> + calculationPeriod CalculationPeriodBase (1..1) <"Calculation period for which you want the rate."> + output: + resetDate date (1..1) <"The date upon which the rate should be observed. ."> + + // figure out the date for which the rate is needed + alias resetRelativeTo: resetDates -> resetRelativeTo + alias isStart: resetRelativeTo = ResetRelativeToEnum -> CalculationPeriodStartDate + alias reset: + if (isStart) + then calculationPeriod -> adjustedStartDate + else calculationPeriod -> adjustedEndDate + + set resetDate: reset func DetermineFixingDate: <"Determine the observation (fixing) date needed given a reset dates structure and a reset date."> - inputs: - resetDates ResetDates (1..1) <"Reset date parameters for observing the rate."> - resetDate date (1..1) <"The date that the rate is needed for."> - output: - fixingDate date (1..1) <"The date upon which the rate should be observed. ."> + inputs: + resetDates ResetDates (1..1) <"Reset date parameters for observing the rate."> + resetDate date (1..1) <"The date that the rate is needed for."> + output: + fixingDate date (1..1) <"The date upon which the rate should be observed. ."> - alias fixingOffsetDays: resetDates -> fixingDates -> periodMultiplier - alias businessCenters: GetAllBusinessCenters(resetDates -> fixingDates -> businessCenters) - alias fixDate: AddBusinessDays(resetDate, fixingOffsetDays, businessCenters) + alias fixingOffsetDays: resetDates -> fixingDates -> periodMultiplier + alias businessCenters: + GetAllBusinessCenters(resetDates -> fixingDates -> businessCenters) + alias fixDate: AddBusinessDays(resetDate, fixingOffsetDays, businessCenters) - set fixingDate: fixDate + set fixingDate: fixDate // ===================================================================== // @@ -191,206 +237,239 @@ func DetermineFixingDate: <"Determine the observation (fixing) date needed given // This includes multipliers, spreads, caps/floors, rate treatment, rounding, and negative treatment. // // ====================================================================== - //------------------------------------------------------------- // The following functions look up processing parameters //------------------------------------------------------------- - func GetFloatingRateProcessingParameters: <"Determine the processing parameters to use from the InterestRatePayout by looking them up if necessary from the corresponding schedules in the interest rate stream."> - inputs: - interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the calculation is being perfmored (needed to look up paramters)."> - output: - processingParameters FloatingRateProcessingParameters (1..1) <"The processing parameters."> - - // look up parameters - alias spreadRate: SpreadAmount(interestRatePayout, calculationPeriod) - alias multiplier: MultiplierAmount(interestRatePayout, calculationPeriod) - alias cap: CapRateAmount(interestRatePayout, calculationPeriod) - alias floor: FloorRateAmount(interestRatePayout, calculationPeriod) - - alias rounding: interestRatePayout -> rateSpecification -> floatingRate -> finalRateRounding - alias negativeTreatment: interestRatePayout -> rateSpecification -> floatingRate -> negativeInterestRateTreatment - alias treatment: interestRatePayout -> rateSpecification -> floatingRate -> rateTreatment - - set processingParameters -> initialRate: interestRatePayout -> rateSpecification -> floatingRate -> initialRate - set processingParameters -> spread: spreadRate - set processingParameters -> multiplier: multiplier - set processingParameters -> treatment: treatment - set processingParameters -> capRate: cap - set processingParameters -> floorRate: floor - set processingParameters -> rounding: rounding - set processingParameters -> negativeTreatment: negativeTreatment + inputs: + interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the calculation is being perfmored (needed to look up paramters)."> + output: + processingParameters FloatingRateProcessingParameters (1..1) <"The processing parameters."> + + // look up parameters + alias spreadRate: SpreadAmount(interestRatePayout, calculationPeriod) + alias multiplier: MultiplierAmount(interestRatePayout, calculationPeriod) + alias cap: CapRateAmount(interestRatePayout, calculationPeriod) + alias floor: FloorRateAmount(interestRatePayout, calculationPeriod) + + alias rounding: + interestRatePayout -> rateSpecification -> floatingRate -> finalRateRounding + alias negativeTreatment: + interestRatePayout -> rateSpecification -> floatingRate -> negativeInterestRateTreatment + alias treatment: + interestRatePayout -> rateSpecification -> floatingRate -> rateTreatment + + set processingParameters -> initialRate: + interestRatePayout -> rateSpecification -> floatingRate -> initialRate + set processingParameters -> spread: spreadRate + set processingParameters -> multiplier: multiplier + set processingParameters -> treatment: treatment + set processingParameters -> capRate: cap + set processingParameters -> floorRate: floor + set processingParameters -> rounding: rounding + set processingParameters -> negativeTreatment: negativeTreatment func SpreadAmount: <"Look up the spread amount for a calculation period."> - [calculation] - inputs: - interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the spread."> - output: - spread number (0..1) <"The spread value for the period."> - - set spread: - GetRateScheduleAmount( - interestRatePayout -> rateSpecification -> floatingRate -> spreadSchedule, - calculationPeriod -> adjustedStartDate ) + [calculation] + inputs: + interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the spread."> + output: + spread number (0..1) <"The spread value for the period."> + + set spread: + GetRateScheduleAmount( + interestRatePayout -> rateSpecification -> floatingRate -> spreadSchedule, + calculationPeriod -> adjustedStartDate + ) func MultiplierAmount: <"Look up the multiplier amount for a calculation period."> - [calculation] - inputs: - interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the multiplier."> - output: - multiplier number (0..1) <"The multiplier in effect from the calculation period start date."> - - set multiplier: - GetRateScheduleAmount( - interestRatePayout -> rateSpecification -> floatingRate -> floatingRateMultiplierSchedule, - calculationPeriod -> adjustedStartDate ) + [calculation] + inputs: + interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the multiplier."> + output: + multiplier number (0..1) <"The multiplier in effect from the calculation period start date."> + + set multiplier: + GetRateScheduleAmount( + interestRatePayout -> rateSpecification -> floatingRate -> floatingRateMultiplierSchedule, + calculationPeriod -> adjustedStartDate + ) func CapRateAmount: <"Look up the cap rate amount for a calculation period."> - [calculation] - inputs: - interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the cap rate."> - output: - capRate number (0..1) <"The cap rate in effect from the calculation period start date."> - - set capRate: <"Look up and return the rate for the period start date."> - GetRateScheduleAmount( - interestRatePayout -> rateSpecification -> floatingRate -> capRateSchedule, - calculationPeriod -> adjustedStartDate ) + [calculation] + inputs: + interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the cap rate."> + output: + capRate number (0..1) <"The cap rate in effect from the calculation period start date."> + + set capRate: <"Look up and return the rate for the period start date."> + GetRateScheduleAmount( + interestRatePayout -> rateSpecification -> floatingRate -> capRateSchedule, + calculationPeriod -> adjustedStartDate + ) func FloorRateAmount: <"Look up the floor rate amount for a calculation period."> - [calculation] - inputs: - interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the floor rate."> - output: - floorRate number (0..1) <"The cap rate in effect from the calculation period start date."> - - set floorRate: <"Look up and return the rate for the period start date."> - GetRateScheduleAmount( - interestRatePayout -> rateSpecification -> floatingRate -> floorRateSchedule, - calculationPeriod -> adjustedStartDate ) + [calculation] + inputs: + interestRatePayout InterestRatePayout (1..1) <"An interest rate stream."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which you want the floor rate."> + output: + floorRate number (0..1) <"The cap rate in effect from the calculation period start date."> + + set floorRate: <"Look up and return the rate for the period start date."> + GetRateScheduleAmount( + interestRatePayout -> rateSpecification -> floatingRate -> floorRateSchedule, + calculationPeriod -> adjustedStartDate + ) func GetRateScheduleAmount: <"Get the rate for the period start date."> - inputs: - schedule RateSchedule (1..1) <"The rate schedule."> - periodStartDate date (1..1) <"The start date for which you want the rate."> - output: - amount number (1..1) + inputs: + schedule RateSchedule (1..1) <"The rate schedule."> + periodStartDate date (1..1) <"The start date for which you want the rate."> + output: + amount number (1..1) - set amount: GetRateScheduleStepValues( schedule, periodStartDate ) last + set amount: GetRateScheduleStepValues(schedule, periodStartDate) last func GetRateScheduleStepValues: <"Get all rate schedule step values whose stepDate is before or equal to the supplied periodStartDate. Returns a list of step values starting from the initial rate."> - inputs: - schedule RateSchedule (1..1) <"The rate schedule."> - periodStartDate date (1..1) <"The start date for which you want the rate."> - output: - stepValues number (0..*) + inputs: + schedule RateSchedule (1..1) <"The rate schedule."> + periodStartDate date (1..1) <"The start date for which you want the rate."> + output: + stepValues number (0..*) add stepValues: <"Add initial step value."> schedule -> price -> value add stepValues: <"Add all schedule step values whose stepDate is before or equal to the supplied periodStartDate."> - schedule -> price -> datedValue + schedule -> price -> datedValue filter date <= periodStartDate then extract value //------------------------------------------------------------- // The following functions apply processing parameters //------------------------------------------------------------- - func ApplyFloatingRateProcessing: <"Perform rate treatments on floating rates, such as applying spreads, multipliers, caps and floors, rounding, and negative interest treatment. TODO: initialRate needs to be supported. Also, to support compounding methods, it may be necessary to split the before spread and after spread values and return both, so that cashflows can be computed both ways. This may require this function to be redesigned or split into pieces (e.g. factor out the post-spread processing). Rate treatments are described in Section 6 of the 2021 ISDA Definitions. Negative treatment does not correctly support the case where compounded periods are applicable and will need to be enhanced for that case when compounding calculations are developed."> - inputs: - processing FloatingRateProcessingParameters (1..1) <"THe parameters to be used for processing, such as multipliers, spreads, cap rates, etc."> - rawRate number (1..1) <"The floating rate prior to treatment, either a single term rate, or a calculated rate such as an OIS or lookback compounded rate."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for with the processing need to be performed."> - isInitialPeriod boolean (1..1) <"Is this the initial calculation period of the payout?"> - output: - details FloatingRateProcessingDetails (1..1) <"Results are details of the rate treatment."> - - // evaluate any floating rate multiplier (these are not described in the ISDA Definition but are included in FpML to support Inverse Floaters. The multiplier typically 1 or -1 and is applied prior to other treatments. - alias multiplier: processing -> multiplier - alias multiplied: rawRate * multiplier - alias multipliedRate: if multiplier exists then multiplied else rawRate - // evaluate US Dollar treatments (described in Section 6.9 of the 2021 ISDA Definitions) - alias treatedRate: ApplyUSRateTreatment(multipliedRate, processing -> treatment, calculationPeriod) * 1.0 - - // begin evaluating the floating negative treatment, in section 5.8 of the 2021 ISDA definitions - alias negativeTreatment: processing -> negativeTreatment - // the following linne addresses section 6.8.6. If the rate is negative prior to the spread, set it to 0 - alias negativeTreatedRate: if (negativeTreatment = NegativeInterestRateTreatmentEnum -> ZeroInterestRateExcludingSpreadMethod) then Max(0.0, treatedRate) else treatedRate - - // add spread (covered in section 6.5.4 and other places) - alias spreadRate: processing -> spread - alias added: negativeTreatedRate + spreadRate - alias ratePlusSpread: if spreadRate exists then added else negativeTreatedRate - // the following line addresses section 6.8.4. If the rate is negative after the spread, set it to 0 - alias negativeTreatedRatePlusSpread: if (negativeTreatment = NegativeInterestRateTreatmentEnum -> ZeroInterestRateMethod) then Max(0.0, ratePlusSpread) else ratePlusSpread - - // initial rate - if the initial rate is specified and it is the initial (first) period, use the initial rate instead. This sets up aliases to support that - alias doInitialRate: if (isInitialPeriod = True and processing -> initialRate exists) then True else False - alias initialRate: processing -> initialRate -> value - alias initialRatePluSpread: initialRate + spreadRate - alias initialRatePlusSpread: if (spreadRate exists) then initialRatePluSpread else initialRate - - // return the key inputs - set details -> processingParameters: processing - set details -> rawRate: rawRate - - // calculate and return the processes rate, both including and excluding the spread - set details -> processedRate: - if (doInitialRate = True) then initialRatePluSpread else ApplyFloatingRatePostSpreadProcessing(ratePlusSpread, processing) - set details -> spreadExclusiveRate: - if (doInitialRate = True) then initialRate else ApplyFloatingRatePostSpreadProcessing(negativeTreatedRate, processing) + inputs: + processing FloatingRateProcessingParameters (1..1) <"THe parameters to be used for processing, such as multipliers, spreads, cap rates, etc."> + rawRate number (1..1) <"The floating rate prior to treatment, either a single term rate, or a calculated rate such as an OIS or lookback compounded rate."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for with the processing need to be performed."> + isInitialPeriod boolean (1..1) <"Is this the initial calculation period of the payout?"> + output: + details FloatingRateProcessingDetails (1..1) <"Results are details of the rate treatment."> + + // evaluate any floating rate multiplier (these are not described in the ISDA Definition but are included in FpML to support Inverse Floaters. The multiplier typically 1 or -1 and is applied prior to other treatments. + alias multiplier: processing -> multiplier + alias multiplied: rawRate * multiplier + alias multipliedRate: + if multiplier exists then multiplied else rawRate + // evaluate US Dollar treatments (described in Section 6.9 of the 2021 ISDA Definitions) + alias treatedRate: + ApplyUSRateTreatment(multipliedRate, processing -> treatment, calculationPeriod) * 1.0 + + // begin evaluating the floating negative treatment, in section 5.8 of the 2021 ISDA definitions + alias negativeTreatment: processing -> negativeTreatment + // the following linne addresses section 6.8.6. If the rate is negative prior to the spread, set it to 0 + alias negativeTreatedRate: + if (negativeTreatment = NegativeInterestRateTreatmentEnum -> ZeroInterestRateExcludingSpreadMethod) + then Max(0.0, treatedRate) + else treatedRate + + // add spread (covered in section 6.5.4 and other places) + alias spreadRate: processing -> spread + alias added: negativeTreatedRate + spreadRate + alias ratePlusSpread: + if spreadRate exists then added else negativeTreatedRate + // the following line addresses section 6.8.4. If the rate is negative after the spread, set it to 0 + alias negativeTreatedRatePlusSpread: + if (negativeTreatment = NegativeInterestRateTreatmentEnum -> ZeroInterestRateMethod) + then Max(0.0, ratePlusSpread) + else ratePlusSpread + + // initial rate - if the initial rate is specified and it is the initial (first) period, use the initial rate instead. This sets up aliases to support that + alias doInitialRate: + if (isInitialPeriod = True and processing -> initialRate exists) + then True + else False + alias initialRate: processing -> initialRate -> value + alias initialRatePluSpread: initialRate + spreadRate + alias initialRatePlusSpread: + if (spreadRate exists) + then initialRatePluSpread + else initialRate + + // return the key inputs + set details -> processingParameters: processing + set details -> rawRate: rawRate + + // calculate and return the processes rate, both including and excluding the spread + set details -> processedRate: + if (doInitialRate = True) + then initialRatePluSpread + else ApplyFloatingRatePostSpreadProcessing(ratePlusSpread, processing) + set details -> spreadExclusiveRate: + if (doInitialRate = True) + then initialRate + else ApplyFloatingRatePostSpreadProcessing(negativeTreatedRate, processing) func ApplyFloatingRatePostSpreadProcessing: <"Perform post-spread rate treatments on floating rates, such as applying caps and floors, rounding, and negative interest treatment. TODOO: initialRate needs to be supported. Also, to support compounding methods, it may be necessary to split the before spread and after spread values and return both, so that cashflows can be computed both ways. This may require this function to be redesigned or split into pieces (e.g. factor out the post-spread processing)."> - inputs: - inputRate number (1..1) <"The floating rate prior to post-sprad, either a single term rate, or a calculated rate such as an OIS or lookback compounded rate."> - processing FloatingRateProcessingParameters (1..1) - output: - processedRate number (1..1) <"rate after post-spread processing."> - - // apply any caps and floors on the rate - alias cappedAndFlooredRate: ApplyCapsAndFloors(processing, inputRate) - // calculate and output the rounded rate - set processedRate: - ApplyFinalRateRounding(cappedAndFlooredRate, processing -> rounding) + inputs: + inputRate number (1..1) <"The floating rate prior to post-sprad, either a single term rate, or a calculated rate such as an OIS or lookback compounded rate."> + processing FloatingRateProcessingParameters (1..1) + output: + processedRate number (1..1) <"rate after post-spread processing."> + + // apply any caps and floors on the rate + alias cappedAndFlooredRate: ApplyCapsAndFloors(processing, inputRate) + // calculate and output the rounded rate + set processedRate: ApplyFinalRateRounding(cappedAndFlooredRate, processing -> rounding) func 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.9."> - [calculation] - inputs: - processing FloatingRateProcessingParameters (1..1) - inputRate number (1..1) <"The floating rate prior to treatment, either a single term rate, or a calculated rate such as an OIS or lookback compounded rate."> - output: - cappedAndFlooredRate number (1..1) <"The rate after application of cap and/or floor."> - - alias cap: processing -> capRate - alias floor: processing -> floorRate - alias cappedRate: if cap exists and inputRate > cap then cap else inputRate - alias flooredRate: if floor exists and cappedRate < floor then floor else cappedRate - set cappedAndFlooredRate: flooredRate + [calculation] + inputs: + processing FloatingRateProcessingParameters (1..1) + inputRate number (1..1) <"The floating rate prior to treatment, either a single term rate, or a calculated rate such as an OIS or lookback compounded rate."> + output: + cappedAndFlooredRate number (1..1) <"The rate after application of cap and/or floor."> + + alias cap: processing -> capRate + alias floor: processing -> floorRate + alias cappedRate: + if cap exists and inputRate > cap then cap else inputRate + alias flooredRate: + if floor exists and cappedRate < floor + then floor + else cappedRate + set cappedAndFlooredRate: flooredRate func ApplyUSRateTreatment: <"Apply the US rate treatment logic where applicable (Bond Equivalent Yield, Money Market Yield, as described in the 2021 ISDA Definitions, section 6.9."> - inputs: - baseRate number (1..1) <"Rate before treatment."> - rateTreatment RateTreatmentEnum (1..1) <"type of treatment."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period over which the rate is computed."> - output: - treatedRate number (1..1) <"rate after treatment."> + inputs: + baseRate number (1..1) <"Rate before treatment."> + rateTreatment RateTreatmentEnum (1..1) <"type of treatment."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period over which the rate is computed."> + output: + treatedRate number (1..1) <"rate after treatment."> - set treatedRate: baseRate // temporary, stub definition until support is added + set treatedRate: baseRate // temporary, stub definition until support is added func ApplyFinalRateRounding: <"Apply the final rate rounding treatment logic as described in the 2021 ISDA Definitions, section 4.8.1."> - [calculation] - inputs: - baseRate number (1..1) <"Rate before rounding."> - finalRateRounding Rounding (0..1) <"type of rounding (precision and direction)."> - output: - roundedRate number (1..1) <"rate after rounding."> - - alias precision: if finalRateRounding -> precision exists then finalRateRounding -> precision else 7 - alias direction: if finalRateRounding -> roundingDirection exists then finalRateRounding -> roundingDirection else RoundingDirectionEnum -> Nearest - - set roundedRate: RoundToPrecision(baseRate, precision, direction) + [calculation] + inputs: + baseRate number (1..1) <"Rate before rounding."> + finalRateRounding Rounding (0..1) <"type of rounding (precision and direction)."> + output: + roundedRate number (1..1) <"rate after rounding."> + + alias precision: + if finalRateRounding -> precision exists + then finalRateRounding -> precision + else 7 + alias direction: + if finalRateRounding -> roundingDirection exists + then finalRateRounding -> roundingDirection + else RoundingDirectionEnum -> Nearest + + set roundedRate: RoundToPrecision(baseRate, precision, direction) diff --git a/rosetta-source/src/main/rosetta/product-asset-floatingrate-type.rosetta b/rosetta-source/src/main/rosetta/product-asset-floatingrate-type.rosetta index c7c27959d1..397927d6df 100644 --- a/rosetta-source/src/main/rosetta/product-asset-floatingrate-type.rosetta +++ b/rosetta-source/src/main/rosetta/product-asset-floatingrate-type.rosetta @@ -16,35 +16,34 @@ import cdm.product.common.schedule.* // these types are used to hold detailed results from floating amount calculations // // ====================================================================== - type FloatingAmountCalculationDetails: <"Type for reporting the detailed results of calculating a cash flow for a calculation period. This is enhanced relative to the FpML-based cashflows structure to allow more information to be returned about daily compounded rates."> - calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the floating calculation was performed."> - calculationPeriodNotionalAmount Money (1..1) <"The notional in effect during the calculation period."> - floatingRate FloatingRateSettingDetails (0..1) <"The details of the floating rate setting. (If it is a calculated rate, details of that calculation will be inside that."> - processingDetails FloatingRateProcessingDetails (0..1) <"Details fo the floating rate treatment after the rate is observed or calculated. This will include details of things like multipliers, spreads, caps and floors, and the raw and treated rates."> - appliedRate number (1..1) <"The rate that was actually applied, after all calculations and treatments."> - yearFraction number (1..1) <"The fraction of a year that this calculation represents, according to the day count fraction method."> - calculatedAmount number (1..1) <"The amount of the cash flow that was computed, including any spreads and other processing."> - spreadExclusiveCalculatedAMount number (1..1) <"The amount of the cash flow excluding any spread, for subsequent processing."> + calculationPeriod CalculationPeriodBase (1..1) <"The calculation period for which the floating calculation was performed."> + calculationPeriodNotionalAmount Money (1..1) <"The notional in effect during the calculation period."> + floatingRate FloatingRateSettingDetails (0..1) <"The details of the floating rate setting. (If it is a calculated rate, details of that calculation will be inside that."> + processingDetails FloatingRateProcessingDetails (0..1) <"Details fo the floating rate treatment after the rate is observed or calculated. This will include details of things like multipliers, spreads, caps and floors, and the raw and treated rates."> + appliedRate number (1..1) <"The rate that was actually applied, after all calculations and treatments."> + yearFraction number (1..1) <"The fraction of a year that this calculation represents, according to the day count fraction method."> + calculatedAmount number (1..1) <"The amount of the cash flow that was computed, including any spreads and other processing."> + spreadExclusiveCalculatedAMount number (1..1) <"The amount of the cash flow excluding any spread, for subsequent processing."> type FloatingRateSettingDetails: <"Type for reporting the raw (untreated) observed or calculated rate for a calculation period. If this is a calculated rate, it allows details of the observations and the resulting rate to be returned."> - calculationDetails CalculatedRateDetails (0..1) <"Calculated rate details (observation dates, values, and weights)."> - observationDate date (0..1) <"The day upon which the rate was observed (for term rates)."> - resetDate date (0..1) <"The day for which the rate is needed (e.g. period beginning or end date)."> - floatingRate number (1..1) <"The resulting rate that was observed or calculated."> + calculationDetails CalculatedRateDetails (0..1) <"Calculated rate details (observation dates, values, and weights)."> + observationDate date (0..1) <"The day upon which the rate was observed (for term rates)."> + resetDate date (0..1) <"The day for which the rate is needed (e.g. period beginning or end date)."> + floatingRate number (1..1) <"The resulting rate that was observed or calculated."> type FloatingRateProcessingDetails: <"Type for reporting the details of the rate treatment. This could potentially be replaced by the existing FloatingRateDefinition type , but this is slightly more detailed."> - rawRate number (1..1) <"The raw or untreated rate, prior to any of the rate treatments."> - processingParameters FloatingRateProcessingParameters (0..1) - processedRate number (1..1) <"The value of the rate after processing."> - spreadExclusiveRate number (1..1) <"The value of the processed rate without the spread applied, for subsequent compounding, etc."> + rawRate number (1..1) <"The raw or untreated rate, prior to any of the rate treatments."> + processingParameters FloatingRateProcessingParameters (0..1) + processedRate number (1..1) <"The value of the rate after processing."> + spreadExclusiveRate number (1..1) <"The value of the processed rate without the spread applied, for subsequent compounding, etc."> type FloatingRateProcessingParameters: <"Type to hold the processing parameters that should be or were used to calculate a floating amount. These parameters can vary over a schedule so this type holds the acutal values applicable to this calculation."> - initialRate Price (0..1) <"The rate to be applied for the initial period."> - multiplier number (0..1) <"floating rate multiplier."> - spread number (0..1) <"spread to be added to the floating rate."> - treatment RateTreatmentEnum (0..1) <"US rate treatment (Bond Equivalent Yield or Money Market Yield, if applicable."> - capRate number (0..1) <"capt to be applied to the floating rate."> - floorRate number (0..1) <"floor to be applied to the floating rate."> - rounding Rounding (0..1) <"THe final rate rounding to be applied."> - negativeTreatment NegativeInterestRateTreatmentEnum (0..1) <"How to handle negative interest rates."> + initialRate Price (0..1) <"The rate to be applied for the initial period."> + multiplier number (0..1) <"floating rate multiplier."> + spread number (0..1) <"spread to be added to the floating rate."> + treatment RateTreatmentEnum (0..1) <"US rate treatment (Bond Equivalent Yield or Money Market Yield, if applicable."> + capRate number (0..1) <"capt to be applied to the floating rate."> + floorRate number (0..1) <"floor to be applied to the floating rate."> + rounding Rounding (0..1) <"THe final rate rounding to be applied."> + negativeTreatment NegativeInterestRateTreatmentEnum (0..1) <"How to handle negative interest rates."> diff --git a/rosetta-source/src/main/rosetta/product-asset-func.rosetta b/rosetta-source/src/main/rosetta/product-asset-func.rosetta index 9ac25557ee..2c245a863f 100644 --- a/rosetta-source/src/main/rosetta/product-asset-func.rosetta +++ b/rosetta-source/src/main/rosetta/product-asset-func.rosetta @@ -13,103 +13,105 @@ import cdm.product.asset.calculation.* import cdm.product.common.schedule.* func FixedAmount: <"2006 ISDA Definition Article 5 Section 5.1. Calculation of a Fixed Amount: The Fixed Amount payable by a party on a Payment Date will be: (a) if an amount is specified for the Swap Transaction as the Fixed Amount payable by that party for that Payment Date or for the related Calculation Period, that amount; or (b) if an amount is not specified for the Swap Transaction as the Fixed Amount payable by that party for that Payment Date or for the related Calculation Period, an amount calculated on a formula basis for that Payment Date or for the related Calculation Period as follows: Fixed Amount = Calculation Amount × Fixed Rate × Day Count Fraction."> - [calculation] - inputs: - interestRatePayout InterestRatePayout (1..1) <"description of the interest rate payout"> - notional number (0..1) <"The notional quantity to use"> - date date (0..1) <"The date to use to obtain the calculation period"> - calculationPeriodData CalculationPeriodData (0..1) <"full details of the calculation period"> - output: - fixedAmount number (1..1) + [calculation] + inputs: + interestRatePayout InterestRatePayout (1..1) <"description of the interest rate payout"> + notional number (0..1) <"The notional quantity to use"> + date date (0..1) <"The date to use to obtain the calculation period"> + calculationPeriodData CalculationPeriodData (0..1) <"full details of the calculation period"> + output: + fixedAmount number (1..1) alias calculationPeriod: - if calculationPeriodData exists then calculationPeriodData else CalculationPeriod(interestRatePayout -> calculationPeriodDates, date) - - alias calcPeriodBase : Create_CalculationPeriodBase(calculationPeriod) + if calculationPeriodData exists + then calculationPeriodData + else CalculationPeriod(interestRatePayout -> calculationPeriodDates, date) - alias fixedAmountCalc :FixedAmountCalculation(interestRatePayout, calcPeriodBase, notional) + alias calcPeriodBase: Create_CalculationPeriodBase(calculationPeriod) - set fixedAmount : fixedAmountCalc -> calculatedAmount + alias fixedAmountCalc: + FixedAmountCalculation(interestRatePayout, calcPeriodBase, notional) + set fixedAmount: fixedAmountCalc -> calculatedAmount func FloatingAmount: <"2006 ISDA Definition Article 6 Section 6.1. Calculation of a Floating Amount: Subject to the provisions of Section 6.4 (Negative Interest Rates), the Floating Amount payable by a party on a Payment Date will be: (a) if Compounding is not specified for the Swap Transaction or that party, an amount calculated on a formula basis for that Payment Date or for the related Calculation Period as follows: Floating Amount = Calculation Amount × Floating Rate + Spread × Floating Rate Day Count Fraction (b) if 'Compounding' is specified to be applicable to the Swap Transaction or that party and 'Flat Compounding' is not specified, an amount equal to the sum of the Compounding Period Amounts for each of the Compounding Periods in the related Calculation Period; or (c) if 'Flat Compounding' is specified to be applicable to the Swap Transaction or that party, an amount equal to the sum of the Basic Compounding Period Amounts for each of the Compounding Periods in the related Calculation Period plus the sum of the Additional Compounding Period Amounts for each such Compounding Period."> - [calculation] - inputs: - interestRatePayout InterestRatePayout (1..1) <"full description of the interest rate payout"> - rate number (0..1) <"the floating rate to use; if omitted it is retrieved/calculated based on the interest rate payout and floating index "> - notional number (0..1) <"the notional; if omitted it is obtained from the payout"> - date date (0..1) <"The date to use to obtain the calculation period"> - calculationPeriodData CalculationPeriodData (0..1) <"full details of the calculation period"> - output: - floatingAmount number (1..1) + [calculation] + inputs: + interestRatePayout InterestRatePayout (1..1) <"full description of the interest rate payout"> + rate number (0..1) <"the floating rate to use; if omitted it is retrieved/calculated based on the interest rate payout and floating index "> + notional number (0..1) <"the notional; if omitted it is obtained from the payout"> + date date (0..1) <"The date to use to obtain the calculation period"> + calculationPeriodData CalculationPeriodData (0..1) <"full details of the calculation period"> + output: + floatingAmount number (1..1) alias calculationPeriod: - if calculationPeriodData exists then calculationPeriodData else CalculationPeriod(interestRatePayout -> calculationPeriodDates, date) - alias calcPeriodBase : Create_CalculationPeriodBase(calculationPeriod) - alias floatingCalc : FloatingAmountCalculation(interestRatePayout, calcPeriodBase, False, notional, rate) + if calculationPeriodData exists + then calculationPeriodData + else CalculationPeriod(interestRatePayout -> calculationPeriodDates, date) + alias calcPeriodBase: Create_CalculationPeriodBase(calculationPeriod) + alias floatingCalc: + FloatingAmountCalculation(interestRatePayout, calcPeriodBase, False, notional, rate) - set floatingAmount : floatingCalc -> calculatedAmount + set floatingAmount: floatingCalc -> calculatedAmount /* DayCountFraction has been removed and replaced by YearFraction in base-datetime-daycount-func */ - func ResolveRateIndex: <"The function to specify that the floating rate index enumeration will be expressed as a number once the rate is observed."> - inputs: index FloatingRateIndexEnum (1..1) - output: rate number (1..1) + inputs: + index FloatingRateIndexEnum (1..1) + output: + rate number (1..1) func ResolvePerformancePeriodStartPrice: <"Resolves the price from the end of the previous period. If first period, then take the initial price."> - inputs: - performancePayout PerformancePayout (1..1) - price PriceSchedule (0..*) - observable Observable (0..1) - adjustedDate date (1..1) - output: - startPrice PriceSchedule (1..1) - - alias priceReturnTerms: - performancePayout -> returnTerms -> priceReturnTerms - - alias adjustedValuationDates: - AdjustedValuationDates( performancePayout -> valuationDates ) - - set startPrice: <"The initial price is taken from the original contract when Resetting for the first time i.e. when the number of updated contracts is one."> - if adjustedDate < adjustedValuationDates first then - priceReturnTerms -> valuationPriceInitial - else - ResolveEquityInitialPrice( price ) + inputs: + performancePayout PerformancePayout (1..1) + price PriceSchedule (0..*) + observable Observable (0..1) + adjustedDate date (1..1) + output: + startPrice PriceSchedule (1..1) -func ResolveEquityInitialPrice: <"To be replaced by full resolve price function implementation."> - inputs: - price PriceSchedule (0..*) - output: - initialPrice PriceSchedule (0..1) - - set initialPrice: - price - filter perUnitOf -> financialUnit = FinancialUnitEnum -> Share - then extract Price { - value: item -> value, - unit: item -> unit, - perUnitOf: item -> perUnitOf, - priceType: item -> priceType, - priceExpression: item -> priceExpression, - composite: item -> composite, - arithmeticOperator: item -> arithmeticOperator, - cashPrice: item -> cashPrice, - datedValue: empty - } - then only-element + alias priceReturnTerms: performancePayout -> returnTerms -> priceReturnTerms -func DividendCashSettlementAmount: <"Based on the following legal text: means, in respect of a Dividend Period and the related Dividend Cash Settlement Date, an amount in the Settlement Currency determined by the Calculation Agent for such Dividend Period to which the Dividend Cash Settlement Amount relates, pursuant to the following formula: Dividend Cash Settlement Amount = Record Amount × Number Of Securities."> + alias adjustedValuationDates: + AdjustedValuationDates(performancePayout -> valuationDates) + + set startPrice: <"The initial price is taken from the original contract when Resetting for the first time i.e. when the number of updated contracts is one."> + if adjustedDate < adjustedValuationDates first + then priceReturnTerms -> valuationPriceInitial + else ResolveEquityInitialPrice(price) - inputs: - numberOfSecurities number (1..1) - declaredDividend number (1..1) +func ResolveEquityInitialPrice: <"To be replaced by full resolve price function implementation."> + inputs: + price PriceSchedule (0..*) + output: + initialPrice PriceSchedule (0..1) + + set initialPrice: + price + filter perUnitOf -> financialUnit = FinancialUnitEnum -> Share + then extract + Price { + value: item -> value, + unit: item -> unit, + perUnitOf: item -> perUnitOf, + priceType: item -> priceType, + priceExpression: item -> priceExpression, + composite: item -> composite, + arithmeticOperator: item -> arithmeticOperator, + cashPrice: item -> cashPrice, + datedValue: empty + } + then only-element - output: - dividendCashSettlementAmount number (1..1) +func DividendCashSettlementAmount: <"Based on the following legal text: means, in respect of a Dividend Period and the related Dividend Cash Settlement Date, an amount in the Settlement Currency determined by the Calculation Agent for such Dividend Period to which the Dividend Cash Settlement Amount relates, pursuant to the following formula: Dividend Cash Settlement Amount = Record Amount × Number Of Securities."> + inputs: + numberOfSecurities number (1..1) + declaredDividend number (1..1) + output: + dividendCashSettlementAmount number (1..1) - set dividendCashSettlementAmount: - declaredDividend * numberOfSecurities + set dividendCashSettlementAmount: declaredDividend * numberOfSecurities func ExtractFixedLeg: <"Extract interest rate payout containing fix rate specification."> inputs: diff --git a/rosetta-source/src/main/rosetta/product-collateral-func.rosetta b/rosetta-source/src/main/rosetta/product-collateral-func.rosetta index 8c546c047a..e541612719 100644 --- a/rosetta-source/src/main/rosetta/product-collateral-func.rosetta +++ b/rosetta-source/src/main/rosetta/product-collateral-func.rosetta @@ -1,9 +1,7 @@ namespace cdm.product.collateral version "${project.version}" - func Create_EligibleCollateralSpecificationFromInstruction: <"Creates an Eligible Collateral Specification through the combination of common and variable characteristics."> - inputs: instruction EligibleCollateralSpecificationInstruction (1..1) output: @@ -11,12 +9,11 @@ func Create_EligibleCollateralSpecificationFromInstruction: <"Creates an Eligibl add specification -> criteria: instruction -> variable - extract MergeEligibleCollateralCriteria(item, instruction->common) + extract MergeEligibleCollateralCriteria(item, instruction -> common) func MergeEligibleCollateralCriteria: <"Java implementation merges criteria1 and criteria2."> - inputs: criteria1 EligibleCollateralCriteria (1..1) criteria2 EligibleCollateralCriteria (1..1) output: - criteria EligibleCollateralCriteria (1..1) \ No newline at end of file + criteria EligibleCollateralCriteria (1..1) diff --git a/rosetta-source/src/main/rosetta/product-common-schedule-enum.rosetta b/rosetta-source/src/main/rosetta/product-common-schedule-enum.rosetta index 2235a405e8..ffb19898b4 100644 --- a/rosetta-source/src/main/rosetta/product-common-schedule-enum.rosetta +++ b/rosetta-source/src/main/rosetta/product-common-schedule-enum.rosetta @@ -4,25 +4,21 @@ version "${project.version}" import cdm.base.datetime.* enum PayRelativeToEnum: <"The enumerated values to specify whether payments occur relative to the calculation period start date or end date, each reset date, valuation date or the last pricing date."> - CalculationPeriodStartDate <"Payments will occur relative to the first day of each calculation period."> - CalculationPeriodEndDate <"Payments will occur relative to the last day of each calculation period."> - LastPricingDate <"Payments will occur relative to the last Pricing Date of each Calculation Period."> - ResetDate <"Payments will occur relative to the reset date."> - ValuationDate <"Payments will occur relative to the valuation date."> + CalculationPeriodStartDate <"Payments will occur relative to the first day of each calculation period."> + CalculationPeriodEndDate <"Payments will occur relative to the last day of each calculation period."> + LastPricingDate <"Payments will occur relative to the last Pricing Date of each Calculation Period."> + ResetDate <"Payments will occur relative to the reset date."> + ValuationDate <"Payments will occur relative to the valuation date."> enum ResetRelativeToEnum: <"The enumerated values to specify whether resets occur relative to the first or last day of a calculation period."> - CalculationPeriodStartDate <"Resets occur relative to the first day of a calculation period."> - CalculationPeriodEndDate <"Resets occur relative to the last day of a calculation period."> + CalculationPeriodStartDate <"Resets occur relative to the first day of a calculation period."> + CalculationPeriodEndDate <"Resets occur relative to the last day of a calculation period."> enum StubPeriodTypeEnum: <"The enumerated values to specify how to deal with a non standard calculation period within a swap stream."> - ShortInitial <"If there is a non regular period remaining it is left shorter than the streams calculation period frequency and placed at the start of the stream."> - ShortFinal <"If there is a non regular period remaining it is left shorter than the streams calculation period frequency and placed at the end of the stream."> - LongInitial <"If there is a non regular period remaining it is placed at the start of the stream and combined with the adjacent calculation period to give a long first calculation period."> - LongFinal <"If there is a non regular period remaining it is placed at the end of the stream and combined with the adjacent calculation period to give a long last calculation period."> + ShortInitial <"If there is a non regular period remaining it is left shorter than the streams calculation period frequency and placed at the start of the stream."> + ShortFinal <"If there is a non regular period remaining it is left shorter than the streams calculation period frequency and placed at the end of the stream."> + LongInitial <"If there is a non regular period remaining it is placed at the start of the stream and combined with the adjacent calculation period to give a long first calculation period."> + LongFinal <"If there is a non regular period remaining it is placed at the end of the stream and combined with the adjacent calculation period to give a long last calculation period."> enum WeeklyRollConventionEnum extends DayOfWeekEnum: <"The enumerated values to specify the weekly roll day."> - TBILL <"13-week and 26-week U.S. Treasury Bill Auction Dates. Each Monday except for U.S. (New York) holidays when it will occur on a Tuesday"> - - - - + TBILL <"13-week and 26-week U.S. Treasury Bill Auction Dates. Each Monday except for U.S. (New York) holidays when it will occur on a Tuesday"> diff --git a/rosetta-source/src/main/rosetta/product-common-schedule-func.rosetta b/rosetta-source/src/main/rosetta/product-common-schedule-func.rosetta index 717091da83..98781d3fbd 100644 --- a/rosetta-source/src/main/rosetta/product-common-schedule-func.rosetta +++ b/rosetta-source/src/main/rosetta/product-common-schedule-func.rosetta @@ -6,31 +6,36 @@ import cdm.base.datetime.* import cdm.product.template.* func PaymentDate: - inputs: economicTerms EconomicTerms (1..1) - output: result date (0..1) - set result: economicTerms -> payout -> interestRatePayout only-element -> paymentDate -> adjustedDate + inputs: + economicTerms EconomicTerms (1..1) + output: + result date (0..1) + set result: + economicTerms -> payout -> interestRatePayout only-element -> paymentDate -> adjustedDate func PeriodsInYear: - inputs: frequency CalculationPeriodFrequency (1..1) - output: numberOfPeriods int (1..1) + inputs: + frequency CalculationPeriodFrequency (1..1) + output: + numberOfPeriods int (1..1) func CalculationPeriod: <"2006 ISDA Definition Section 4.13. 'Calculation Period' means, in respect of a Swap Transaction and a party, each period from, and including, one Period End Date of that party to, but excluding, the next following applicable Period End Date during the Term of the Swap Transaction, except that (a) the initial Calculation Period for the party will commence on, and include, the Effective Date and (b) the final Calculation Period for the party will end on, but exclude, the Termination Date."> - inputs: - calculationPeriodDates CalculationPeriodDates (1..1) - date date (1..1) - output: - result CalculationPeriodData (1..1) + inputs: + calculationPeriodDates CalculationPeriodDates (1..1) + date date (1..1) + output: + result CalculationPeriodData (1..1) func CalculationPeriods: <"2006 ISDA Definition Section 4.13. 'Calculation Period' means, in respect of a Swap Transaction and a party, each period from, and including, one Period End Date of that party to, but excluding, the next following applicable Period End Date during the Term of the Swap Transaction, except that (a) the initial Calculation Period for the party will commence on, and include, the Effective Date and (b) the final Calculation Period for the party will end on, but exclude, the Termination Date."> - inputs: - calculationPeriodDates CalculationPeriodDates (1..1) - output: - result CalculationPeriodData (0..*) + inputs: + calculationPeriodDates CalculationPeriodDates (1..1) + output: + result CalculationPeriodData (0..*) func CalculationPeriodRange: - inputs: - startDate date (0..1) // should be AdjustableOrRelativeDate - endDate date (0..1) // should be AdjustableOrRelativeDate - dateAdjustments BusinessDayAdjustments (0..1) - output: - result CalculationPeriodData (1..1) + inputs: + startDate date (0..1) // should be AdjustableOrRelativeDate + endDate date (0..1) // should be AdjustableOrRelativeDate + dateAdjustments BusinessDayAdjustments (0..1) + output: + result CalculationPeriodData (1..1) diff --git a/rosetta-source/src/main/rosetta/product-common-settlement-enum.rosetta b/rosetta-source/src/main/rosetta/product-common-settlement-enum.rosetta index 9c4a73d8be..e6b9df648f 100644 --- a/rosetta-source/src/main/rosetta/product-common-settlement-enum.rosetta +++ b/rosetta-source/src/main/rosetta/product-common-settlement-enum.rosetta @@ -2,57 +2,57 @@ namespace cdm.product.common.settlement : <"Common product settlement concepts: version "${project.version}" enum DeliveryMethodEnum: <"Specifies delivery methods for securities transactions. This coding-scheme defines the possible delivery methods for securities."> - DeliveryVersusPayment <"Indicates that a securities delivery must be made against payment in simultaneous transmissions and stipulate each other."> - FreeOfPayment <"Indicates that a securities delivery can be made without a simultaneous cash payment in exchange and not depending on if payment obligations are fulfilled or not and vice versa."> - PreDelivery <"Indicates that a securities delivery must be made in full before the payment for the securities; fulfillment of payment obligations depends on securities delivery obligations fulfillment."> - PrePayment <"Indicates that a payment in full amount must be made before the securities delivery; fulfillment of securities delivery obligations depends on payment obligations fulfillment."> + DeliveryVersusPayment <"Indicates that a securities delivery must be made against payment in simultaneous transmissions and stipulate each other."> + FreeOfPayment <"Indicates that a securities delivery can be made without a simultaneous cash payment in exchange and not depending on if payment obligations are fulfilled or not and vice versa."> + PreDelivery <"Indicates that a securities delivery must be made in full before the payment for the securities; fulfillment of payment obligations depends on securities delivery obligations fulfillment."> + PrePayment <"Indicates that a payment in full amount must be made before the securities delivery; fulfillment of securities delivery obligations depends on payment obligations fulfillment."> enum ScheduledTransferEnum: <"The qualification of the type of cash flows associated with OTC derivatives contracts and their lifecycle events."> - CorporateAction <"A cash flow corresponding to a corporate action event."> - Coupon <"A cash flow corresponding to the periodic accrued interests."> - CreditEvent <"A cashflow resulting from a credit event."> - DividendReturn <"A cash flow corresponding to the synthetic dividend of an equity underlier asset traded through a derivative instrument."> - Exercise <"A cash flow associated with an exercise lifecycle event."> - FixedRateReturn <"A cash flow corresponding to the return of the fixed interest rate portion of a derivative instrument that has different types of underlying assets, such as a total return swap."> - FloatingRateReturn <"A cash flow corresponding to the return of the floating interest rate portion of a derivative instrument that has different types of underlying assets, such as a total return swap."> - FractionalAmount <"A cash flow corresponding to the compensation for missing assets due to the rounding of digits in the original number of assets to be delivered as per payout calculation."> - InterestReturn <"A cash flow corresponding to the return of the interest rate portion of a derivative instrument that has different types of underlying assets, such as a total return swap."> - NetInterest <"Net interest across payout components. Applicable to products such as interest rate swaps."> - Performance <"A cash flow corresponding to a performance return. The settlementOrigin attribute on the Transfer should point to the relevant Payout defining the performance calculation."> - PrincipalPayment <"A cashflow which amount typically corresponds to the notional amount of the contract for various business reasons e.g. PhysicalSettlement, PrincipalExchange etc. else to a portion of the notional amount interim payments e.g. for the purpose of resetting the Notional Amount of a Cross Currency Swap variying leg, as part of a final Principal Exchange related to a Non-Deliverable currency leg, etc."> + CorporateAction <"A cash flow corresponding to a corporate action event."> + Coupon <"A cash flow corresponding to the periodic accrued interests."> + CreditEvent <"A cashflow resulting from a credit event."> + DividendReturn <"A cash flow corresponding to the synthetic dividend of an equity underlier asset traded through a derivative instrument."> + Exercise <"A cash flow associated with an exercise lifecycle event."> + FixedRateReturn <"A cash flow corresponding to the return of the fixed interest rate portion of a derivative instrument that has different types of underlying assets, such as a total return swap."> + FloatingRateReturn <"A cash flow corresponding to the return of the floating interest rate portion of a derivative instrument that has different types of underlying assets, such as a total return swap."> + FractionalAmount <"A cash flow corresponding to the compensation for missing assets due to the rounding of digits in the original number of assets to be delivered as per payout calculation."> + InterestReturn <"A cash flow corresponding to the return of the interest rate portion of a derivative instrument that has different types of underlying assets, such as a total return swap."> + NetInterest <"Net interest across payout components. Applicable to products such as interest rate swaps."> + Performance <"A cash flow corresponding to a performance return. The settlementOrigin attribute on the Transfer should point to the relevant Payout defining the performance calculation."> + PrincipalPayment <"A cashflow which amount typically corresponds to the notional amount of the contract for various business reasons e.g. PhysicalSettlement, PrincipalExchange etc. else to a portion of the notional amount interim payments e.g. for the purpose of resetting the Notional Amount of a Cross Currency Swap variying leg, as part of a final Principal Exchange related to a Non-Deliverable currency leg, etc."> enum SettlementTypeEnum: <"The enumeration values to specify how the option is to be settled when exercised."> - Cash <"The intrinsic value of the option will be delivered by way of a cash settlement amount determined, (i) by reference to the differential between the strike price and the settlement price; or (ii) in accordance with a bilateral agreement between the parties."> - Physical <"The securities underlying the transaction will be delivered by (i) in the case of a call, the seller to the buyer, or (ii) in the case of a put, the buyer to the seller versus a settlement amount equivalent to the strike price per share."> - Election <"Allow Election of either Cash or Physical settlement."> - CashOrPhysical <"Allow use of either Cash or Physical settlement without prior Election."> + Cash <"The intrinsic value of the option will be delivered by way of a cash settlement amount determined, (i) by reference to the differential between the strike price and the settlement price; or (ii) in accordance with a bilateral agreement between the parties."> + Physical <"The securities underlying the transaction will be delivered by (i) in the case of a call, the seller to the buyer, or (ii) in the case of a put, the buyer to the seller versus a settlement amount equivalent to the strike price per share."> + Election <"Allow Election of either Cash or Physical settlement."> + CashOrPhysical <"Allow use of either Cash or Physical settlement without prior Election."> enum TransferSettlementEnum: <"The enumeration values to specify how the transfer will settle, e.g. DvP."> - DeliveryVersusDelivery <"Simultaneous transfer of two assets, typically securities, as a way to avoid settlement risk."> - DeliveryVersusPayment <"Settlement in which the transfer of the asset and the cash settlement are simultaneous."> - PaymentVersusPayment <"Simultaneous transfer of cashflows."> - NotCentralSettlement <"No central settlement."> + DeliveryVersusDelivery <"Simultaneous transfer of two assets, typically securities, as a way to avoid settlement risk."> + DeliveryVersusPayment <"Settlement in which the transfer of the asset and the cash settlement are simultaneous."> + PaymentVersusPayment <"Simultaneous transfer of cashflows."> + NotCentralSettlement <"No central settlement."> enum StandardSettlementStyleEnum: <"The enumerated values to specify whether a trade is settling using standard settlement instructions as well as whether it is a candidate for settlement netting."> - Standard <"This trade will settle using standard predetermined funds settlement instructions."> - Net <"This trade is a candidate for settlement netting."> - StandardAndNet <"This trade will settle using standard predetermined funds settlement instructions and is a candidate for settlement netting."> - PairAndNet <"These trades have been paired and are a candidate for settlement netting."> + Standard <"This trade will settle using standard predetermined funds settlement instructions."> + Net <"This trade is a candidate for settlement netting."> + StandardAndNet <"This trade will settle using standard predetermined funds settlement instructions and is a candidate for settlement netting."> + PairAndNet <"These trades have been paired and are a candidate for settlement netting."> enum CashSettlementMethodEnum: <"Defines the different cash settlement methods for a product where cash settlement is applicable."> - CashPriceMethod <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (a)."> - CashPriceAlternateMethod <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (b)."> - ParYieldCurveAdjustedMethod <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (c)."> - ZeroCouponYieldAdjustedMethod <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (d)."> - ParYieldCurveUnadjustedMethod <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (e)."> - CrossCurrencyMethod <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (f) (published in Supplement number 23)."> - CollateralizedCashPriceMethod <"An ISDA defined cash settlement method (yield curve) used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (g) (published in Supplement number 28). The method is defined in the 2021 ISDA Definitions, section 18.2.6."> - MidMarketIndicativeQuotations <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.1."> - MidMarketIndicativeQuotationsAlternate <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.2."> - MidMarketCalculationAgentDetermination <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.3."> - ReplacementValueFirmQuotations <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.4."> - ReplacementValueCalculationAgentDetermination <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.5"> + CashPriceMethod <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (a)."> + CashPriceAlternateMethod <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (b)."> + ParYieldCurveAdjustedMethod <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (c)."> + ZeroCouponYieldAdjustedMethod <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (d)."> + ParYieldCurveUnadjustedMethod <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (e)."> + CrossCurrencyMethod <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (f) (published in Supplement number 23)."> + CollateralizedCashPriceMethod <"An ISDA defined cash settlement method (yield curve) used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (g) (published in Supplement number 28). The method is defined in the 2021 ISDA Definitions, section 18.2.6."> + MidMarketIndicativeQuotations <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.1."> + MidMarketIndicativeQuotationsAlternate <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.2."> + MidMarketCalculationAgentDetermination <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.3."> + ReplacementValueFirmQuotations <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.4."> + ReplacementValueCalculationAgentDetermination <"An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.5"> enum SettlementCentreEnum: <"Defines the settlement centre for a securities transaction."> - EuroclearBank <"Euroclear Bank"> - ClearstreamBankingLuxembourg <"ClearStream Banking Luxembourg"> + EuroclearBank <"Euroclear Bank"> + ClearstreamBankingLuxembourg <"ClearStream Banking Luxembourg"> diff --git a/rosetta-source/src/main/rosetta/product-common-settlement-type.rosetta b/rosetta-source/src/main/rosetta/product-common-settlement-type.rosetta index bf24bbc97f..1ad800810a 100644 --- a/rosetta-source/src/main/rosetta/product-common-settlement-type.rosetta +++ b/rosetta-source/src/main/rosetta/product-common-settlement-type.rosetta @@ -12,336 +12,340 @@ import cdm.observable.asset.* import cdm.product.asset.* import cdm.product.common.schedule.* - type ComputedAmount: <"A class to specify the outcome of a computed amount, for testing purposes."> - callFunction calculation (1..1) - amount number (1..1) - currency string (0..1) <"The currency in which the computed amount is denominated. The list of valid currencies is not presently positioned as an enumeration as part of the CDM because that scope is limited to the values specified by ISDA and FpML. As a result, implementers have to make reference to the relevant standard, such as the ISO 4217 standard for currency codes."> - [metadata scheme] + callFunction calculation (1..1) + amount number (1..1) + currency string (0..1) <"The currency in which the computed amount is denominated. The list of valid currencies is not presently positioned as an enumeration as part of the CDM because that scope is limited to the values specified by ISDA and FpML. As a result, implementers have to make reference to the relevant standard, such as the ISO 4217 standard for currency codes."> + [metadata scheme] type Cashflow extends PayoutBase: <"Class to specify a cashflow, i.e. the outcome of either of computation (e.g. interest accrual) or an assessment of some sort (e.g. a fee). The cashflow can then be turned into a cash transfer, artefact to be used as the input to a payment system or the outcome of it. The associated globalKey denotes the ability to associate a hash value to the Cashflow instantiations for the purpose of model cross-referencing, in support of functionality such as the event effect and the lineage."> - [metadata key] - cashflowType CashflowType (1..1) <"The qualification of the type of cashflow, e.g. brokerage fee, premium, upfront fee etc. Particularly relevant when it cannot be inferred directly through lineage."> - paymentDiscounting PaymentDiscounting (0..1) <"FpML specifies the FpML PaymentDiscounting.model group for representing the discounting elements that can be associated with a payment."> - - condition CashflowAmount: <"The cashflow amount should be a positive number, as the cashflow direction is indeed implied by the payer/receiver attribute."> - if priceQuantity exists - then priceQuantity -> quantitySchedule -> value >= 0.0 + [metadata key] + cashflowType CashflowType (1..1) <"The qualification of the type of cashflow, e.g. brokerage fee, premium, upfront fee etc. Particularly relevant when it cannot be inferred directly through lineage."> + paymentDiscounting PaymentDiscounting (0..1) <"FpML specifies the FpML PaymentDiscounting.model group for representing the discounting elements that can be associated with a payment."> + + condition CashflowAmount: <"The cashflow amount should be a positive number, as the cashflow direction is indeed implied by the payer/receiver attribute."> + if priceQuantity exists + then priceQuantity -> quantitySchedule -> value >= 0.0 type CashflowType: <"Characterises the type of cashflow, which can result from either a scheduled or a non-scheduled lifecycle event."> - cashflowType ScheduledTransferEnum (0..1) <"Type of cashflow corresponding to a scheduled event."> - cashPrice CashPrice (0..1) <"Type of cashflow corresponding to a non-scheduled event, where a price must be agreed between the parties."> - priceExpression PriceExpressionEnum (0..1) - - condition: <"A cashflow is either specified as a type of scheduled cashflow, or as a price agreed between parties in case of a non-scheduled cashflow."> - required choice cashflowType, cashPrice - + cashflowType ScheduledTransferEnum (0..1) <"Type of cashflow corresponding to a scheduled event."> + cashPrice CashPrice (0..1) <"Type of cashflow corresponding to a non-scheduled event, where a price must be agreed between the parties."> + priceExpression PriceExpressionEnum (0..1) + + condition: <"A cashflow is either specified as a type of scheduled cashflow, or as a price agreed between parties in case of a non-scheduled cashflow."> + required choice cashflowType, cashPrice + type QuantityMultiplier: <" Class to specify a mechanism for a quantity to be set as a multiplier to another (reference) quantity, based on a price observation. At the moment this class only supports FX or Equity-linked notional and re-uses existing building blocks for those 2 cases, until such time when component can be made more generic. This captures the case of resetting cross-currency swaps and resetting equity swaps."> - fxLinkedNotionalSchedule FxLinkedNotionalSchedule (0..1) <"Multiplier specified as an FX-linked schedule, e.g. for a resetting cross-currency swap.."> - multiplierValue number (0..1) + fxLinkedNotionalSchedule FxLinkedNotionalSchedule (0..1) <"Multiplier specified as an FX-linked schedule, e.g. for a resetting cross-currency swap.."> + multiplierValue number (0..1) - condition: one-of + condition: + one-of type ResolvablePriceQuantity: <"Generic class to specify the quantity for different payout legs in a contractual product, when that quantity can vary across payout legs or across time. A resolvable quantity can always be resolved into a single quantity from the quantity notation which has a corresponding asset identifier. In addition to the base case, where quantity is directly specified as a number as part of the quantity notation, the other use cases are: (i) quantity based on some pre-defined schedule (eg amortising notional), (ii) quantity based on some pre-defined events (eg resetting cross-currency notional), or quantity set as reference to another quantity (eg equity notional as no. securities x price)."> - [metadata key] - - resolvedQuantity Quantity (0..1) <"A product's quantity as a single, non-negative amount. When specified as part of a product definition, this quantity attribute would not be set. Instead it is specified on the quantity notation along with an asset identifier matching this payout's asset identifier. This allows the quantity to be resolved for a payout leg, which can then be specified here for convenience during data processing. There needs to be at least one resolvable quantity across payout legs of a product to define an anchor that other payout quantities can refer to. This attribute is ignored when mapping existing FpML messages."> - quantitySchedule NonNegativeQuantitySchedule (0..1) <"A payout's quantity specified as a schedule, which may also contain a single value if that quantity is constant. There can only be a single quantity schedule applicable to a payout: e.g. the notional for an interest rate leg. The quantity must be specified outside of the payout in a PriceQuantity object and only referenced inside the payout using an address."> - [metadata address "pointsTo"=PriceQuantity->quantity] - quantityReference ResolvablePriceQuantity (0..1) <"Reference quantity when resolvable quantity is defined as relative to another (resolvable) quantity. A resolvable quantity needs to contain either an absolute quantity or a reference to another (resolvable) quantity. This requirement is captured by a choice rule on the class."> - [metadata reference] - quantityMultiplier QuantityMultiplier (0..1) <"Quantity multiplier is specified on top of a reference quantity and is used as a multiplying factor when resolving the quantity. A quantity multiplier can only exist when the resolvable quantity specifies a reference quantity."> - reset boolean (0..1) <"Whether the quantity is resettable"> - futureValueNotional FutureValueAmount (0..1) <"The future value notional is specific to BRL CDI swaps, and is specified alongside the notional amount. The value is calculated as follows: Future Value Notional = Notional Amount * (1 + Fixed Rate) ^ (Fixed Rate Day Count Fraction). The currency should always match that expressed in the notional schedule. The value date should match the adjusted termination date."> - priceSchedule PriceSchedule (0..*) <"A payout's price specified as a schedule, which may also contain a single value if that price is constant. There may be multiple prices specified for a single payout: e.g. a floating interest rate leg may specify a spread, a cap and/or floor and a multiplier. The price must be specified outside of the payout in a PriceQuantity object and only referenced inside the payout using an address."> - [metadata address "pointsTo"=PriceQuantity->price] - - condition QuantityMultiplier: <"A quantity reference must exist when there is a quantity multiplier on a resolvable quantity."> - if quantityMultiplier exists - then quantityReference -> reference exists + [metadata key] + + resolvedQuantity Quantity (0..1) <"A product's quantity as a single, non-negative amount. When specified as part of a product definition, this quantity attribute would not be set. Instead it is specified on the quantity notation along with an asset identifier matching this payout's asset identifier. This allows the quantity to be resolved for a payout leg, which can then be specified here for convenience during data processing. There needs to be at least one resolvable quantity across payout legs of a product to define an anchor that other payout quantities can refer to. This attribute is ignored when mapping existing FpML messages."> + quantitySchedule NonNegativeQuantitySchedule (0..1) <"A payout's quantity specified as a schedule, which may also contain a single value if that quantity is constant. There can only be a single quantity schedule applicable to a payout: e.g. the notional for an interest rate leg. The quantity must be specified outside of the payout in a PriceQuantity object and only referenced inside the payout using an address."> + [metadata address "pointsTo"=PriceQuantity->quantity] + quantityReference ResolvablePriceQuantity (0..1) <"Reference quantity when resolvable quantity is defined as relative to another (resolvable) quantity. A resolvable quantity needs to contain either an absolute quantity or a reference to another (resolvable) quantity. This requirement is captured by a choice rule on the class."> + [metadata reference] + quantityMultiplier QuantityMultiplier (0..1) <"Quantity multiplier is specified on top of a reference quantity and is used as a multiplying factor when resolving the quantity. A quantity multiplier can only exist when the resolvable quantity specifies a reference quantity."> + reset boolean (0..1) <"Whether the quantity is resettable"> + futureValueNotional FutureValueAmount (0..1) <"The future value notional is specific to BRL CDI swaps, and is specified alongside the notional amount. The value is calculated as follows: Future Value Notional = Notional Amount * (1 + Fixed Rate) ^ (Fixed Rate Day Count Fraction). The currency should always match that expressed in the notional schedule. The value date should match the adjusted termination date."> + priceSchedule PriceSchedule (0..*) <"A payout's price specified as a schedule, which may also contain a single value if that price is constant. There may be multiple prices specified for a single payout: e.g. a floating interest rate leg may specify a spread, a cap and/or floor and a multiplier. The price must be specified outside of the payout in a PriceQuantity object and only referenced inside the payout using an address."> + [metadata address "pointsTo"=PriceQuantity->price] + + condition QuantityMultiplier: <"A quantity reference must exist when there is a quantity multiplier on a resolvable quantity."> + if quantityMultiplier exists + then quantityReference -> reference exists type PayoutBase: <" Base class that all payout types should extend. Use case is that some validation rules may need to apply across all payout types, for which the data rule can be written at the base class level"> - payerReceiver PayerReceiver (1..1) <"Canonical representation of the payer and receiver parties applicable to each payout leg."> - priceQuantity ResolvablePriceQuantity (0..1) <"Each payout leg must implement the quantity concept as a 'resolvable' type, which allows for different payout legs to be linked to each other (e.g. in the case of cross-curreny products)."> - principalPayment PrincipalPayments (0..1) <"The specification of the principal exchange. Optional as only applicable in the case of cross-currency or zero-coupon swaps with a final payment."> - settlementTerms SettlementTerms (0..1) <"Each payout leg must specifies its settlement terms, including the delivery type (i.e. cash vs physical, and their respective terms), the transfer type (DvP etc.) and settlement date, if any."> + payerReceiver PayerReceiver (1..1) <"Canonical representation of the payer and receiver parties applicable to each payout leg."> + priceQuantity ResolvablePriceQuantity (0..1) <"Each payout leg must implement the quantity concept as a 'resolvable' type, which allows for different payout legs to be linked to each other (e.g. in the case of cross-curreny products)."> + principalPayment PrincipalPayments (0..1) <"The specification of the principal exchange. Optional as only applicable in the case of cross-currency or zero-coupon swaps with a final payment."> + settlementTerms SettlementTerms (0..1) <"Each payout leg must specifies its settlement terms, including the delivery type (i.e. cash vs physical, and their respective terms), the transfer type (DvP etc.) and settlement date, if any."> type CommodityPriceReturnTerms: <"Defines parameters in which the commodity price is assessed."> - rounding Rounding (0..1) <"Defines rounding rules and precision to be used in the rounding of a number."> - spread SpreadSchedule (0..1) <"Defines a spread value for one or more defined dates."> - rollFeature RollFeature (0..1) <"Used in conjunction with an exchange-based pricing source. Identifies a way in which the futures contracts referenced will roll between periods. "> - conversionFactor number (0..1) <"Defines the conversion applied if the quantity unit on contract is different from unit on referenced underlier."> + rounding Rounding (0..1) <"Defines rounding rules and precision to be used in the rounding of a number."> + spread SpreadSchedule (0..1) <"Defines a spread value for one or more defined dates."> + rollFeature RollFeature (0..1) <"Used in conjunction with an exchange-based pricing source. Identifies a way in which the futures contracts referenced will roll between periods. "> + conversionFactor number (0..1) <"Defines the conversion applied if the quantity unit on contract is different from unit on referenced underlier."> type RollFeature: <"Used in conjunction with an exchange-based pricing source. Identifies a way in which the futures contracts referenced will roll between periods. "> - rollSourceCalendar RollSourceCalendarEnum (0..1) <"Used in conjunction with an exchange-based pricing source. Identifies a date source calendar from which the pricing dates and thus roll to the next contract will be based off (e.g. pricing is based on the NYMEX WTI First Nearby Futures Contract, if Future is chosen, the pricing will roll to the next futures contract on expiration, if ListedOption is chosen, the pricing will roll to the next futures contract on the Option expiration date which is three business days before the expiration of the NYMEX WTI futures contract.) Omitting this element will result in the default behavior expected with the pricing source described within the commodity element."> - deliveryDateRollConvention Offset (0..1) <"Specifies, for a Commodity Transaction that references a delivery date for a listed future, the day on which the specified future will roll to the next nearby month prior to the expiration of the referenced future. If the future will not roll at all - i.e. the price will be taken from the expiring contract, 0 should be specified here. If the future will roll to the next nearby on the last trading day - i.e. the price will be taken from the next nearby on the last trading day, then 1 should be specified and so on."> + rollSourceCalendar RollSourceCalendarEnum (0..1) <"Used in conjunction with an exchange-based pricing source. Identifies a date source calendar from which the pricing dates and thus roll to the next contract will be based off (e.g. pricing is based on the NYMEX WTI First Nearby Futures Contract, if Future is chosen, the pricing will roll to the next futures contract on expiration, if ListedOption is chosen, the pricing will roll to the next futures contract on the Option expiration date which is three business days before the expiration of the NYMEX WTI futures contract.) Omitting this element will result in the default behavior expected with the pricing source described within the commodity element."> + deliveryDateRollConvention Offset (0..1) <"Specifies, for a Commodity Transaction that references a delivery date for a listed future, the day on which the specified future will roll to the next nearby month prior to the expiration of the referenced future. If the future will not roll at all - i.e. the price will be taken from the expiring contract, 0 should be specified here. If the future will roll to the next nearby on the last trading day - i.e. the price will be taken from the next nearby on the last trading day, then 1 should be specified and so on."> type PricingDates: <"Specifies specific dates or parametric rules for the dates on which the price will be determined"> - specifiedDates AdjustableDates (0..*) <"Defines specified dates on which the price will be determined."> - parametricDates ParametricDates (0..1) <"Defines rules for the dates on which the price will be determined."> - - condition: one-of + specifiedDates AdjustableDates (0..*) <"Defines specified dates on which the price will be determined."> + parametricDates ParametricDates (0..1) <"Defines rules for the dates on which the price will be determined."> + + condition: + one-of type ValuationDate: <"A single object that represents the different methods to specify a valuation date, as used for cash settlement. The Single / Multiple ValuationDate is used for the determination of recovery in a credit event, the RelativeDateOffset is used for cash-settled option, and FxFixingDate is used for cross-currency settlement."> - singleValuationDate SingleValuationDate (0..1) <"Where single valuation date is specified as being applicable for cash settlement, this element specifies the number of business days after satisfaction of all conditions to settlement when such valuation date occurs. ISDA 2003 Term: Single Valuation Date."> - multipleValuationDates MultipleValuationDates (0..1) <"Where multiple valuation dates are specified as being applicable for cash settlement, this element specifies (a) the number of applicable valuation dates, and (b) the number of business days after satisfaction of all conditions to settlement when the first such valuation date occurs, and (c) the number of business days thereafter of each successive valuation date. ISDA 2003 Term: Multiple Valuation Dates."> - valuationDate RelativeDateOffset (0..1) <"The date on which the cash settlement amount will be determined according to the cash settlement method if the parties have not otherwise been able to agree the cash settlement amount. This attribute was formerly part of 'OptionCashSettlement', which is now being harmonised into a common 'CashSettlementTerms' that includes a 'ValuationDate'."> - fxFixingDate FxFixingDate (0..1) <"The date on which the currency rate will be determined for the purpose of specifying the amount in deliverable currency. This attribute was formerly part of 'NonDeliverableSettlement', which is now being harmonised into a common 'CashSettlementTerms' that includes a 'ValuationDate'."> - fxFixingSchedule AdjustableDates (0..1) <"The date, when expressed as a schedule of date(s), on which the currency rate will be determined for the purpose of specifying the amount in deliverable currency. This attribute was formerly part of 'NonDeliverableSettlement', which is now being harmonised into a common 'CashSettlementTerms' that includes a 'ValuationDate'."> + singleValuationDate SingleValuationDate (0..1) <"Where single valuation date is specified as being applicable for cash settlement, this element specifies the number of business days after satisfaction of all conditions to settlement when such valuation date occurs. ISDA 2003 Term: Single Valuation Date."> + multipleValuationDates MultipleValuationDates (0..1) <"Where multiple valuation dates are specified as being applicable for cash settlement, this element specifies (a) the number of applicable valuation dates, and (b) the number of business days after satisfaction of all conditions to settlement when the first such valuation date occurs, and (c) the number of business days thereafter of each successive valuation date. ISDA 2003 Term: Multiple Valuation Dates."> + valuationDate RelativeDateOffset (0..1) <"The date on which the cash settlement amount will be determined according to the cash settlement method if the parties have not otherwise been able to agree the cash settlement amount. This attribute was formerly part of 'OptionCashSettlement', which is now being harmonised into a common 'CashSettlementTerms' that includes a 'ValuationDate'."> + fxFixingDate FxFixingDate (0..1) <"The date on which the currency rate will be determined for the purpose of specifying the amount in deliverable currency. This attribute was formerly part of 'NonDeliverableSettlement', which is now being harmonised into a common 'CashSettlementTerms' that includes a 'ValuationDate'."> + fxFixingSchedule AdjustableDates (0..1) <"The date, when expressed as a schedule of date(s), on which the currency rate will be determined for the purpose of specifying the amount in deliverable currency. This attribute was formerly part of 'NonDeliverableSettlement', which is now being harmonised into a common 'CashSettlementTerms' that includes a 'ValuationDate'."> - condition: one-of + condition: + one-of type CashSettlementTerms: <"Defines the terms required to compute and settle a cash settlement amount according to a fixing value, including the fixing source, fixing method and fixing date. In FpML, PhysicalSettlementTerms and CashSettlementTerms extend SettlementTerms. In the CDM, this extension paradigm has not been used because SettlementTerms class has been used for purposes related to securities transactions, while it is not used as such in the FpML standard (i.e. only as an abstract construct."> - [metadata key] - - cashSettlementMethod CashSettlementMethodEnum (0..1) <"Specifies the type of cash settlement method: cash price, yield curve etc."> - valuationMethod ValuationMethod (0..1) <"Specifies the parameters required to obtain a valuation, including the source, quotation method (bid, mid etc.) and any applicable quotation amount."> - valuationDate ValuationDate (0..1) <"Defines the different methods to specify a valuation date, as used for cash settlement. The Single / Multiple ValuationDate is used for the determination of recovery in a credit event, the RelativeDateOffset is used for cash-settled option, and FxFixingDate is used for cross-currency settlement."> - valuationTime BusinessCenterTime (0..1) <"The time of the cash settlement valuation date when the cash settlement amount will be determined according to the cash settlement method, if the parties have not otherwise been able to agree the cash settlement amount. When using quations, this is the time of day in the specified business center when the calculation agent seeks quotations for an amount of the reference obligation for purposes of cash settlement. ISDA 2003 Term: Valuation Time."> - cashSettlementAmount Money (0..1) <"The amount paid by the seller to the buyer for cash settlement on the cash settlement date. If not otherwise specified, would typically be calculated as 100 (or the Reference Price) minus the price of the Reference Obligation (all expressed as a percentage) times Floating Rate Payer Calculation Amount. ISDA 2003 Term: Cash Settlement Amount."> - recoveryFactor number (0..1) <"Used for fixed recovery, specifies the recovery level, determined at contract formation, to be applied on a default. Used to calculate the amount paid by the seller to the buyer for cash settlement on the cash settlement date. Amount calculation is (1 minus the Recovery Factor) multiplied by the Floating Rate Payer Calculation Amount. The currency will be derived from the Floating Rate Payer Calculation Amount."> - fixedSettlement boolean (0..1) <"Used for Recovery Lock, to indicate whether fixed Settlement is Applicable or Not Applicable. If Buyer fails to deliver an effective Notice of Physical Settlement on or before the Buyer NOPS Cut-off Date, and if Seller fails to deliver an effective Seller NOPS on or before the Seller NOPS Cut-off Date, then either: (a) if Fixed Settlement is specified in the related Confirmation as not applicable, then the Seller NOPS Cut-off Date shall be the Termination Date; or (b) if Fixed Settlement is specified in the related Confirmation as applicable, then: (i) if the Fixed Settlement Amount is a positive number, Seller shall, subject to Section 3.1 (except for the requirement of satisfaction of the Notice of Physical Settlement Condition to Settlement), pay the Fixed Settlement Amount to Buyer on the Fixed Settlement Payment Date; and (ii) if the Fixed Settlement Amount is a negative number, Buyer shall, subject to Section 3.1 (except for the requirement of satisfaction of the Notice of Physical Settlement Condition to Settlement), pay the absolute value of the Fixed Settlement Amount to Seller on the Fixed Settlement Payment Date."> - accruedInterest boolean (0..1) <"Indicates whether accrued interest is included (true) or not (false). For cash settlement this specifies whether quotations should be obtained inclusive or not of accrued interest. For physical settlement this specifies whether the buyer should deliver the obligation with an outstanding principal balance that includes or excludes accrued interest. ISDA 2003 Term: Include/Exclude Accrued Interest."> - - condition CashSettlementTermsChoice: <"Choice rule to represent an FpML choice construct."> - optional choice cashSettlementAmount, recoveryFactor - - condition RecoveryFactor: <"FpML specifies recoveryFactor as a RestrictedPercentage, meaning that it is a decimal which value is restricted between 0 and 1."> - if recoveryFactor exists - then recoveryFactor >= 0.0 and recoveryFactor <= 1.0 - - condition CashCollateralMethod: <"The cash collateral valuation method only applies to mid-market and replacement value methods."> - if valuationMethod -> cashCollateralValuationMethod exists then - cashSettlementMethod = CashSettlementMethodEnum -> MidMarketIndicativeQuotations or - cashSettlementMethod = CashSettlementMethodEnum -> MidMarketIndicativeQuotationsAlternate or - cashSettlementMethod = CashSettlementMethodEnum -> MidMarketCalculationAgentDetermination or - cashSettlementMethod = CashSettlementMethodEnum -> ReplacementValueFirmQuotations or - cashSettlementMethod = CashSettlementMethodEnum -> ReplacementValueCalculationAgentDetermination - - condition MidMarketValuationMethod: <"Certain cash collateral valuation parameters only apply to the mid-market valuation methods."> - if ( valuationMethod -> cashCollateralValuationMethod -> applicableCsa exists or - valuationMethod -> cashCollateralValuationMethod -> agreedDiscountRate exists or - valuationMethod -> cashCollateralValuationMethod -> cashCollateralInterestRate exists ) then - cashSettlementMethod = CashSettlementMethodEnum -> MidMarketIndicativeQuotations or - cashSettlementMethod = CashSettlementMethodEnum -> MidMarketIndicativeQuotationsAlternate or - cashSettlementMethod = CashSettlementMethodEnum -> MidMarketCalculationAgentDetermination - - condition ReplacementValueMethod: <"Protected party can only be specified for replacement value methods."> - if valuationMethod -> cashCollateralValuationMethod -> protectedParty exists then - cashSettlementMethod = CashSettlementMethodEnum -> ReplacementValueFirmQuotations or - cashSettlementMethod = CashSettlementMethodEnum -> ReplacementValueCalculationAgentDetermination - - condition FirmQuotationMethod: <"Prescribed documentation adjustment can only be specified for firm quotations method."> - if valuationMethod -> cashCollateralValuationMethod -> prescribedDocumentationAdjustment exists then - cashSettlementMethod = CashSettlementMethodEnum -> ReplacementValueFirmQuotations + [metadata key] + + cashSettlementMethod CashSettlementMethodEnum (0..1) <"Specifies the type of cash settlement method: cash price, yield curve etc."> + valuationMethod ValuationMethod (0..1) <"Specifies the parameters required to obtain a valuation, including the source, quotation method (bid, mid etc.) and any applicable quotation amount."> + valuationDate ValuationDate (0..1) <"Defines the different methods to specify a valuation date, as used for cash settlement. The Single / Multiple ValuationDate is used for the determination of recovery in a credit event, the RelativeDateOffset is used for cash-settled option, and FxFixingDate is used for cross-currency settlement."> + valuationTime BusinessCenterTime (0..1) <"The time of the cash settlement valuation date when the cash settlement amount will be determined according to the cash settlement method, if the parties have not otherwise been able to agree the cash settlement amount. When using quations, this is the time of day in the specified business center when the calculation agent seeks quotations for an amount of the reference obligation for purposes of cash settlement. ISDA 2003 Term: Valuation Time."> + cashSettlementAmount Money (0..1) <"The amount paid by the seller to the buyer for cash settlement on the cash settlement date. If not otherwise specified, would typically be calculated as 100 (or the Reference Price) minus the price of the Reference Obligation (all expressed as a percentage) times Floating Rate Payer Calculation Amount. ISDA 2003 Term: Cash Settlement Amount."> + recoveryFactor number (0..1) <"Used for fixed recovery, specifies the recovery level, determined at contract formation, to be applied on a default. Used to calculate the amount paid by the seller to the buyer for cash settlement on the cash settlement date. Amount calculation is (1 minus the Recovery Factor) multiplied by the Floating Rate Payer Calculation Amount. The currency will be derived from the Floating Rate Payer Calculation Amount."> + fixedSettlement boolean (0..1) <"Used for Recovery Lock, to indicate whether fixed Settlement is Applicable or Not Applicable. If Buyer fails to deliver an effective Notice of Physical Settlement on or before the Buyer NOPS Cut-off Date, and if Seller fails to deliver an effective Seller NOPS on or before the Seller NOPS Cut-off Date, then either: (a) if Fixed Settlement is specified in the related Confirmation as not applicable, then the Seller NOPS Cut-off Date shall be the Termination Date; or (b) if Fixed Settlement is specified in the related Confirmation as applicable, then: (i) if the Fixed Settlement Amount is a positive number, Seller shall, subject to Section 3.1 (except for the requirement of satisfaction of the Notice of Physical Settlement Condition to Settlement), pay the Fixed Settlement Amount to Buyer on the Fixed Settlement Payment Date; and (ii) if the Fixed Settlement Amount is a negative number, Buyer shall, subject to Section 3.1 (except for the requirement of satisfaction of the Notice of Physical Settlement Condition to Settlement), pay the absolute value of the Fixed Settlement Amount to Seller on the Fixed Settlement Payment Date."> + accruedInterest boolean (0..1) <"Indicates whether accrued interest is included (true) or not (false). For cash settlement this specifies whether quotations should be obtained inclusive or not of accrued interest. For physical settlement this specifies whether the buyer should deliver the obligation with an outstanding principal balance that includes or excludes accrued interest. ISDA 2003 Term: Include/Exclude Accrued Interest."> + + condition CashSettlementTermsChoice: <"Choice rule to represent an FpML choice construct."> + optional choice cashSettlementAmount, recoveryFactor + + condition RecoveryFactor: <"FpML specifies recoveryFactor as a RestrictedPercentage, meaning that it is a decimal which value is restricted between 0 and 1."> + if recoveryFactor exists + then recoveryFactor >= 0.0 and recoveryFactor <= 1.0 + + condition CashCollateralMethod: <"The cash collateral valuation method only applies to mid-market and replacement value methods."> + if valuationMethod -> cashCollateralValuationMethod exists + then cashSettlementMethod = CashSettlementMethodEnum -> MidMarketIndicativeQuotations + or cashSettlementMethod = CashSettlementMethodEnum -> MidMarketIndicativeQuotationsAlternate + or cashSettlementMethod = CashSettlementMethodEnum -> MidMarketCalculationAgentDetermination + or cashSettlementMethod = CashSettlementMethodEnum -> ReplacementValueFirmQuotations + or cashSettlementMethod = CashSettlementMethodEnum -> ReplacementValueCalculationAgentDetermination + + condition MidMarketValuationMethod: <"Certain cash collateral valuation parameters only apply to the mid-market valuation methods."> + if (valuationMethod -> cashCollateralValuationMethod -> applicableCsa exists + or valuationMethod -> cashCollateralValuationMethod -> agreedDiscountRate exists + or valuationMethod -> cashCollateralValuationMethod -> cashCollateralInterestRate exists) + then cashSettlementMethod = CashSettlementMethodEnum -> MidMarketIndicativeQuotations + or cashSettlementMethod = CashSettlementMethodEnum -> MidMarketIndicativeQuotationsAlternate + or cashSettlementMethod = CashSettlementMethodEnum -> MidMarketCalculationAgentDetermination + + condition ReplacementValueMethod: <"Protected party can only be specified for replacement value methods."> + if valuationMethod -> cashCollateralValuationMethod -> protectedParty exists + then cashSettlementMethod = CashSettlementMethodEnum -> ReplacementValueFirmQuotations + or cashSettlementMethod = CashSettlementMethodEnum -> ReplacementValueCalculationAgentDetermination + + condition FirmQuotationMethod: <"Prescribed documentation adjustment can only be specified for firm quotations method."> + if valuationMethod -> cashCollateralValuationMethod -> prescribedDocumentationAdjustment exists + then cashSettlementMethod = CashSettlementMethodEnum -> ReplacementValueFirmQuotations type DeliverableObligations: <"A class to specify all the ISDA terms relevant to defining the deliverable obligations."> - accruedInterest boolean (0..1) <"Indicates whether accrued interest is included (true) or not (false). For cash settlement this specifies whether quotations should be obtained inclusive or not of accrued interest. For physical settlement this specifies whether the buyer should deliver the obligation with an outstanding principal balance that includes or excludes accrued interest. ISDA 2003 Term: Include/Exclude Accrued Interest."> - category ObligationCategoryEnum (0..1) <"Used in both obligations and deliverable obligations to represent a class or type of securities which apply. ISDA 2003 Term: Obligation Category/Deliverable Obligation Category."> - notSubordinated boolean (0..1) <"An obligation and deliverable obligation characteristic. An obligation that ranks at least equal with the most senior Reference Obligation in priority of payment or, if no Reference Obligation is specified in the related Confirmation, the obligations of the Reference Entity that are senior. ISDA 2003 Term: Not Subordinated."> - specifiedCurrency SpecifiedCurrency (0..1) <"An obligation and deliverable obligation characteristic. The currency or currencies in which an obligation or deliverable obligation must be payable. ISDA 2003 Term: Specified Currency."> - notSovereignLender boolean (0..1) <"An obligation and deliverable obligation characteristic. Any obligation that is not primarily (majority) owed to a Sovereign or Supranational Organisation. ISDA 2003 Term: Not Sovereign Lender."> - notDomesticCurrency NotDomesticCurrency (0..1) <"An obligation and deliverable obligation characteristic. Any obligation that is payable in any currency other than the domestic currency. Domestic currency is either the currency so specified or, if no currency is specified, the currency of (a) the reference entity, if the reference entity is a sovereign, or (b) the jurisdiction in which the relevant reference entity is organised, if the reference entity is not a sovereign. ISDA 2003 Term: Not Domestic Currency."> - notDomesticLaw boolean (0..1) <"An obligation and deliverable obligation characteristic. If the reference entity is a Sovereign, this means any obligation that is not subject to the laws of the reference entity. If the reference entity is not a sovereign, this means any obligation that is not subject to the laws of the jurisdiction of the reference entity. ISDA 2003 Term: Not Domestic Law."> - listed boolean (0..1) <"An obligation and deliverable obligation characteristic. Indicates whether or not the obligation is quoted, listed or ordinarily purchased and sold on an exchange. ISDA 2003 Term: Listed."> - notContingent boolean (0..1) <"A deliverable obligation characteristic. In essence Not Contingent means the repayment of principal cannot be dependant on a formula/index, i.e. to prevent the risk of being delivered an instrument that may never pay any element of principal, and to ensure that the obligation is interest bearing (on a regular schedule). ISDA 2003 Term: Not Contingent."> - notDomesticIssuance boolean (0..1) <"An obligation and deliverable obligation characteristic. Any obligation other than an obligation that was intended to be offered for sale primarily in the domestic market of the relevant Reference Entity. This specifies that the obligation must be an internationally recognised bond. ISDA 2003 Term: Not Domestic Issuance."> - assignableLoan PCDeliverableObligationCharac (0..1) <"A deliverable obligation characteristic. A loan that is freely assignable to a bank or financial institution without the consent of the Reference Entity or the guarantor, if any, of the loan (or the consent of the applicable borrower if a Reference Entity is guaranteeing the loan) or any agent. ISDA 2003 Term: Assignable Loan."> - consentRequiredLoan PCDeliverableObligationCharac (0..1) <"A deliverable obligation characteristic. A loan that is capable of being assigned with the consent of the Reference Entity or the guarantor, if any, of the loan or any agent. ISDA 2003 Term: Consent Required Loan."> - directLoanParticipation LoanParticipation (0..1) <"A deliverable obligation characteristic. A loan with a participation agreement whereby the buyer is capable of creating, or procuring the creation of, a contractual right in favour of the seller that provides the seller with recourse to the participation seller for a specified share in any payments due under the relevant loan which are received by the participation seller. ISDA 2003 Term: Direct Loan Participation."> - transferable boolean (0..1) <"A deliverable obligation characteristic. An obligation that is transferable to institutional investors without any contractual, statutory or regulatory restrictions. ISDA 2003 Term: Transferable."> - maximumMaturity Period (0..1) <"A deliverable obligation characteristic. An obligation that has a remaining maturity from the Physical Settlement Date of not greater than the period specified. ISDA 2003 Term: Maximum Maturity."> - acceleratedOrMatured boolean (0..1) <"A deliverable obligation characteristic. An obligation at time of default is due to mature and due to be repaid, or as a result of downgrade/bankruptcy is due to be repaid as a result of an acceleration clause. ISDA 2003 Term: Accelerated or Matured."> - notBearer boolean (0..1) <"A deliverable obligation characteristic. Any obligation that is not a bearer instrument. This applies to Bonds only and is meant to avoid tax, fraud and security/delivery provisions that can potentially be associated with Bearer Bonds. ISDA 2003 Term: Not Bearer."> - fullFaithAndCreditObLiability boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published additional provisions for U.S. Municipal as Reference Entity. ISDA 2003 Term: Full Faith and Credit Obligation Liability."> - generalFundObligationLiability boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published additional provisions for U.S. Municipal as Reference Entity. ISDA 2003 Term: General Fund Obligation Liability."> - revenueObligationLiability boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published additional provisions for U.S. Municipal as Reference Entity. ISDA 2003 Term: Revenue Obligation Liability."> - indirectLoanParticipation LoanParticipation (0..1) <"ISDA 1999 Term: Indirect Loan Participation. NOTE: Only applicable as a deliverable obligation under ISDA Credit 1999."> - excluded string (0..1) <"A free format string to specify any excluded obligations or deliverable obligations, as the case may be, of the reference entity or excluded types of obligations or deliverable obligations. ISDA 2003 Term: Excluded Obligations/Excluded Deliverable Obligations."> - othReferenceEntityObligations string (0..1) <"This element is used to specify any other obligations of a reference entity in both obligations and deliverable obligations. The obligations can be specified free-form. ISDA 2003 Term: Other Obligations of a Reference Entity."> - - condition DeliverableObligationsChoice: <"Choice rule to represent an FpML choice construct."> - optional choice fullFaithAndCreditObLiability, generalFundObligationLiability, revenueObligationLiability - - condition FpML_cd_34: <"FpML validation rule cd-34 - Context: DeliverableObligations. If category is equal to 'ReferenceObligationsOnly', then no other elements may be contained in the deliverable obligations element."> - if category exists - and category = ObligationCategoryEnum -> ReferenceObligationsOnly - then acceleratedOrMatured is absent - and accruedInterest is absent - and assignableLoan is absent - and consentRequiredLoan is absent - and directLoanParticipation is absent - and excluded is absent - and fullFaithAndCreditObLiability is absent - and generalFundObligationLiability is absent - and indirectLoanParticipation is absent - and listed is absent - and maximumMaturity is absent - and notBearer is absent - and notContingent is absent - and notDomesticCurrency is absent - and notDomesticIssuance is absent - and notDomesticLaw is absent - and notSovereignLender is absent - and notSubordinated is absent - and othReferenceEntityObligations is absent - and revenueObligationLiability is absent - and specifiedCurrency is absent - and transferable is absent + accruedInterest boolean (0..1) <"Indicates whether accrued interest is included (true) or not (false). For cash settlement this specifies whether quotations should be obtained inclusive or not of accrued interest. For physical settlement this specifies whether the buyer should deliver the obligation with an outstanding principal balance that includes or excludes accrued interest. ISDA 2003 Term: Include/Exclude Accrued Interest."> + category ObligationCategoryEnum (0..1) <"Used in both obligations and deliverable obligations to represent a class or type of securities which apply. ISDA 2003 Term: Obligation Category/Deliverable Obligation Category."> + notSubordinated boolean (0..1) <"An obligation and deliverable obligation characteristic. An obligation that ranks at least equal with the most senior Reference Obligation in priority of payment or, if no Reference Obligation is specified in the related Confirmation, the obligations of the Reference Entity that are senior. ISDA 2003 Term: Not Subordinated."> + specifiedCurrency SpecifiedCurrency (0..1) <"An obligation and deliverable obligation characteristic. The currency or currencies in which an obligation or deliverable obligation must be payable. ISDA 2003 Term: Specified Currency."> + notSovereignLender boolean (0..1) <"An obligation and deliverable obligation characteristic. Any obligation that is not primarily (majority) owed to a Sovereign or Supranational Organisation. ISDA 2003 Term: Not Sovereign Lender."> + notDomesticCurrency NotDomesticCurrency (0..1) <"An obligation and deliverable obligation characteristic. Any obligation that is payable in any currency other than the domestic currency. Domestic currency is either the currency so specified or, if no currency is specified, the currency of (a) the reference entity, if the reference entity is a sovereign, or (b) the jurisdiction in which the relevant reference entity is organised, if the reference entity is not a sovereign. ISDA 2003 Term: Not Domestic Currency."> + notDomesticLaw boolean (0..1) <"An obligation and deliverable obligation characteristic. If the reference entity is a Sovereign, this means any obligation that is not subject to the laws of the reference entity. If the reference entity is not a sovereign, this means any obligation that is not subject to the laws of the jurisdiction of the reference entity. ISDA 2003 Term: Not Domestic Law."> + listed boolean (0..1) <"An obligation and deliverable obligation characteristic. Indicates whether or not the obligation is quoted, listed or ordinarily purchased and sold on an exchange. ISDA 2003 Term: Listed."> + notContingent boolean (0..1) <"A deliverable obligation characteristic. In essence Not Contingent means the repayment of principal cannot be dependant on a formula/index, i.e. to prevent the risk of being delivered an instrument that may never pay any element of principal, and to ensure that the obligation is interest bearing (on a regular schedule). ISDA 2003 Term: Not Contingent."> + notDomesticIssuance boolean (0..1) <"An obligation and deliverable obligation characteristic. Any obligation other than an obligation that was intended to be offered for sale primarily in the domestic market of the relevant Reference Entity. This specifies that the obligation must be an internationally recognised bond. ISDA 2003 Term: Not Domestic Issuance."> + assignableLoan PCDeliverableObligationCharac (0..1) <"A deliverable obligation characteristic. A loan that is freely assignable to a bank or financial institution without the consent of the Reference Entity or the guarantor, if any, of the loan (or the consent of the applicable borrower if a Reference Entity is guaranteeing the loan) or any agent. ISDA 2003 Term: Assignable Loan."> + consentRequiredLoan PCDeliverableObligationCharac (0..1) <"A deliverable obligation characteristic. A loan that is capable of being assigned with the consent of the Reference Entity or the guarantor, if any, of the loan or any agent. ISDA 2003 Term: Consent Required Loan."> + directLoanParticipation LoanParticipation (0..1) <"A deliverable obligation characteristic. A loan with a participation agreement whereby the buyer is capable of creating, or procuring the creation of, a contractual right in favour of the seller that provides the seller with recourse to the participation seller for a specified share in any payments due under the relevant loan which are received by the participation seller. ISDA 2003 Term: Direct Loan Participation."> + transferable boolean (0..1) <"A deliverable obligation characteristic. An obligation that is transferable to institutional investors without any contractual, statutory or regulatory restrictions. ISDA 2003 Term: Transferable."> + maximumMaturity Period (0..1) <"A deliverable obligation characteristic. An obligation that has a remaining maturity from the Physical Settlement Date of not greater than the period specified. ISDA 2003 Term: Maximum Maturity."> + acceleratedOrMatured boolean (0..1) <"A deliverable obligation characteristic. An obligation at time of default is due to mature and due to be repaid, or as a result of downgrade/bankruptcy is due to be repaid as a result of an acceleration clause. ISDA 2003 Term: Accelerated or Matured."> + notBearer boolean (0..1) <"A deliverable obligation characteristic. Any obligation that is not a bearer instrument. This applies to Bonds only and is meant to avoid tax, fraud and security/delivery provisions that can potentially be associated with Bearer Bonds. ISDA 2003 Term: Not Bearer."> + fullFaithAndCreditObLiability boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published additional provisions for U.S. Municipal as Reference Entity. ISDA 2003 Term: Full Faith and Credit Obligation Liability."> + generalFundObligationLiability boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published additional provisions for U.S. Municipal as Reference Entity. ISDA 2003 Term: General Fund Obligation Liability."> + revenueObligationLiability boolean (0..1) <"An obligation and deliverable obligation characteristic. Defined in the ISDA published additional provisions for U.S. Municipal as Reference Entity. ISDA 2003 Term: Revenue Obligation Liability."> + indirectLoanParticipation LoanParticipation (0..1) <"ISDA 1999 Term: Indirect Loan Participation. NOTE: Only applicable as a deliverable obligation under ISDA Credit 1999."> + excluded string (0..1) <"A free format string to specify any excluded obligations or deliverable obligations, as the case may be, of the reference entity or excluded types of obligations or deliverable obligations. ISDA 2003 Term: Excluded Obligations/Excluded Deliverable Obligations."> + othReferenceEntityObligations string (0..1) <"This element is used to specify any other obligations of a reference entity in both obligations and deliverable obligations. The obligations can be specified free-form. ISDA 2003 Term: Other Obligations of a Reference Entity."> + + condition DeliverableObligationsChoice: <"Choice rule to represent an FpML choice construct."> + optional choice fullFaithAndCreditObLiability, generalFundObligationLiability, revenueObligationLiability + + condition FpML_cd_34: <"FpML validation rule cd-34 - Context: DeliverableObligations. If category is equal to 'ReferenceObligationsOnly', then no other elements may be contained in the deliverable obligations element."> + if category exists and category = ObligationCategoryEnum -> ReferenceObligationsOnly + then acceleratedOrMatured is absent + and accruedInterest is absent + and assignableLoan is absent + and consentRequiredLoan is absent + and directLoanParticipation is absent + and excluded is absent + and fullFaithAndCreditObLiability is absent + and generalFundObligationLiability is absent + and indirectLoanParticipation is absent + and listed is absent + and maximumMaturity is absent + and notBearer is absent + and notContingent is absent + and notDomesticCurrency is absent + and notDomesticIssuance is absent + and notDomesticLaw is absent + and notSovereignLender is absent + and notSubordinated is absent + and othReferenceEntityObligations is absent + and revenueObligationLiability is absent + and specifiedCurrency is absent + and transferable is absent type LoanParticipation extends PCDeliverableObligationCharac: <"A class to specify loan with a participation agreement whereby the buyer is capable of creating, or procuring the creation of, a contractual right in favour of the seller that provides the seller with recourse to the participation seller for a specified share in any payments due under the relevant loan which are received by the participation seller. ISDA 2003 Term: Direct Loan Participation."> - qualifyingParticipationSeller string (0..1) <"If Direct Loan Participation is specified as a deliverable obligation characteristic, this specifies any requirements for the Qualifying Participation Seller. The requirements may be listed free-form. ISDA 2003 Term: Qualifying Participation Seller."> + qualifyingParticipationSeller string (0..1) <"If Direct Loan Participation is specified as a deliverable obligation characteristic, this specifies any requirements for the Qualifying Participation Seller. The requirements may be listed free-form. ISDA 2003 Term: Qualifying Participation Seller."> type PCDeliverableObligationCharac: <"A class to specify the Partial Cash Deliverable Obligation Characteristic."> - applicable boolean (1..1) <"Indicates whether the provision is applicable."> - partialCashSettlement boolean (0..1) <"Specifies whether either 'Partial Cash Settlement of Assignable Loans', 'Partial Cash Settlement of Consent Required Loans' or 'Partial Cash Settlement of Participations' is applicable. If this element is specified and Assignable Loan is a Deliverable Obligation Characteristic, any Assignable Loan that is deliverable, but where a non-receipt of Consent by the Physical Settlement Date has occurred, the Loan can be cash settled rather than physically delivered. If this element is specified and Consent Required Loan is a Deliverable Obligation Characteristic, any Consent Required Loan that is deliverable, but where a non-receipt of Consent by the Physical Settlement Date has occurred, the Loan can be cash settled rather than physically delivered. If this element is specified and Direct Loan Participation is a Deliverable Obligation Characteristic, any Participation that is deliverable, but where this participation has not been effected (has not come into effect) by the Physical Settlement Date, the participation can be cash settled rather than physically delivered."> + applicable boolean (1..1) <"Indicates whether the provision is applicable."> + partialCashSettlement boolean (0..1) <"Specifies whether either 'Partial Cash Settlement of Assignable Loans', 'Partial Cash Settlement of Consent Required Loans' or 'Partial Cash Settlement of Participations' is applicable. If this element is specified and Assignable Loan is a Deliverable Obligation Characteristic, any Assignable Loan that is deliverable, but where a non-receipt of Consent by the Physical Settlement Date has occurred, the Loan can be cash settled rather than physically delivered. If this element is specified and Consent Required Loan is a Deliverable Obligation Characteristic, any Consent Required Loan that is deliverable, but where a non-receipt of Consent by the Physical Settlement Date has occurred, the Loan can be cash settled rather than physically delivered. If this element is specified and Direct Loan Participation is a Deliverable Obligation Characteristic, any Participation that is deliverable, but where this participation has not been effected (has not come into effect) by the Physical Settlement Date, the participation can be cash settled rather than physically delivered."> type PhysicalSettlementPeriod: - businessDaysNotSpecified boolean (0..1) <"An explicit indication that a number of business days are not specified and therefore ISDA fallback provisions should apply."> - businessDays int (0..1) <"A number of business days. Its precise meaning is dependant on the context in which this element is used. ISDA 2003 Term: Business Day."> - maximumBusinessDays int (0..1) <"A maximum number of business days. Its precise meaning is dependant on the context in which this element is used. Intended to be used to limit a particular ISDA fallback provision."> - condition: one-of + businessDaysNotSpecified boolean (0..1) <"An explicit indication that a number of business days are not specified and therefore ISDA fallback provisions should apply."> + businessDays int (0..1) <"A number of business days. Its precise meaning is dependant on the context in which this element is used. ISDA 2003 Term: Business Day."> + maximumBusinessDays int (0..1) <"A maximum number of business days. Its precise meaning is dependant on the context in which this element is used. Intended to be used to limit a particular ISDA fallback provision."> + condition: + one-of - condition BusinessDays: <"FpML specifies businessDays as a NonNegativeInteger."> - if businessDays exists - then businessDays >= 0 + condition BusinessDays: <"FpML specifies businessDays as a NonNegativeInteger."> + if businessDays exists then businessDays >= 0 - condition MaximumBusinessDays: <"FpML specifies maximumBusinessDays as a NonNegativeInteger."> - if maximumBusinessDays exists - then maximumBusinessDays >= 0 + condition MaximumBusinessDays: <"FpML specifies maximumBusinessDays as a NonNegativeInteger."> + if maximumBusinessDays exists then maximumBusinessDays >= 0 type PhysicalSettlementTerms: <"Specifies Physical Settlement Terms characteristics for the settlement of a Credit Default Swap or Option."> - [metadata key] + [metadata key] - clearedPhysicalSettlement boolean (0..1) <"Specifies whether the swap resulting from physical settlement of the swaption transaction will clear through a clearing house. The meaning of Cleared Physical Settlement is defined in the 2006 ISDA Definitions, Section 15.2 (published in Supplement number 28)."> - predeterminedClearingOrganizationParty AncillaryRoleEnum (0..1) <"Specifies the clearing organization (CCP, DCO) to which the trade should be cleared."> - physicalSettlementPeriod PhysicalSettlementPeriod (0..1) <"The number of business days used in the determination of the physical settlement date. The physical settlement date is this number of business days after all applicable conditions to settlement are satisfied. If a number of business days is not specified fallback provisions apply for determining the number of business days. If Section 8.5/8.6 of the 1999/2003 ISDA Definitions are to apply the businessDaysNotSpecified element should be included. If a specified number of business days are to apply these should be specified in the businessDays element. If Section 8.5/8.6 of the 1999/2003 ISDA Definitions are to apply but capped at a maximum number of business days then the maximum number should be specified in the maximumBusinessDays element. ISDA 2003 Term: Physical Settlement Period."> - deliverableObligations DeliverableObligations (0..1) <"This element contains all the ISDA terms relevant to defining the deliverable obligations."> - escrow boolean (0..1) <"If this element is specified and set to 'true', indicates that physical settlement must take place through the use of an escrow agent. (For Canadian counterparties this is always 'Not Applicable'. ISDA 2003 Term: Escrow."> - sixtyBusinessDaySettlementCap boolean (0..1) <"If this element is specified and set to 'true', for a transaction documented under the 2003 ISDA Credit Derivatives Definitions, has the effect of incorporating the language set forth below into the confirmation. The section references are to the 2003 ISDA Credit Derivatives Definitions. Notwithstanding Section 1.7 or any provisions of Sections 9.9 or 9.10 to the contrary, but without prejudice to Section 9.3 and (where applicable) Sections 9.4, 9.5 and 9.6, if the Termination Date has not occurred on or prior to the date that is 60 Business Days following the Physical Settlement Date, such 60th Business Day shall be deemed to be the Termination Date with respect to this Transaction except in relation to any portion of the Transaction (an 'Affected Portion') in respect of which: (1) a valid notice of Buy-in Price has been delivered that is effective fewer than three Business Days prior to such 60th Business Day, in which case the Termination Date for that Affected Portion shall be the third Business Day following the date on which such notice is effective; or (2) Buyer has purchased but not Delivered Deliverable Obligations validly specified by Seller pursuant to Section 9.10(b), in which case the Termination Date for that Affected Portion shall be the tenth Business Day following the date on which Seller validly specified such Deliverable Obligations to Buyer."> + clearedPhysicalSettlement boolean (0..1) <"Specifies whether the swap resulting from physical settlement of the swaption transaction will clear through a clearing house. The meaning of Cleared Physical Settlement is defined in the 2006 ISDA Definitions, Section 15.2 (published in Supplement number 28)."> + predeterminedClearingOrganizationParty AncillaryRoleEnum (0..1) <"Specifies the clearing organization (CCP, DCO) to which the trade should be cleared."> + physicalSettlementPeriod PhysicalSettlementPeriod (0..1) <"The number of business days used in the determination of the physical settlement date. The physical settlement date is this number of business days after all applicable conditions to settlement are satisfied. If a number of business days is not specified fallback provisions apply for determining the number of business days. If Section 8.5/8.6 of the 1999/2003 ISDA Definitions are to apply the businessDaysNotSpecified element should be included. If a specified number of business days are to apply these should be specified in the businessDays element. If Section 8.5/8.6 of the 1999/2003 ISDA Definitions are to apply but capped at a maximum number of business days then the maximum number should be specified in the maximumBusinessDays element. ISDA 2003 Term: Physical Settlement Period."> + deliverableObligations DeliverableObligations (0..1) <"This element contains all the ISDA terms relevant to defining the deliverable obligations."> + escrow boolean (0..1) <"If this element is specified and set to 'true', indicates that physical settlement must take place through the use of an escrow agent. (For Canadian counterparties this is always 'Not Applicable'. ISDA 2003 Term: Escrow."> + sixtyBusinessDaySettlementCap boolean (0..1) <"If this element is specified and set to 'true', for a transaction documented under the 2003 ISDA Credit Derivatives Definitions, has the effect of incorporating the language set forth below into the confirmation. The section references are to the 2003 ISDA Credit Derivatives Definitions. Notwithstanding Section 1.7 or any provisions of Sections 9.9 or 9.10 to the contrary, but without prejudice to Section 9.3 and (where applicable) Sections 9.4, 9.5 and 9.6, if the Termination Date has not occurred on or prior to the date that is 60 Business Days following the Physical Settlement Date, such 60th Business Day shall be deemed to be the Termination Date with respect to this Transaction except in relation to any portion of the Transaction (an 'Affected Portion') in respect of which: (1) a valid notice of Buy-in Price has been delivered that is effective fewer than three Business Days prior to such 60th Business Day, in which case the Termination Date for that Affected Portion shall be the third Business Day following the date on which such notice is effective; or (2) Buyer has purchased but not Delivered Deliverable Obligations validly specified by Seller pursuant to Section 9.10(b), in which case the Termination Date for that Affected Portion shall be the tenth Business Day following the date on which Seller validly specified such Deliverable Obligations to Buyer."> - condition PredeterminedClearingOrganizationParty: - if predeterminedClearingOrganizationParty exists - then predeterminedClearingOrganizationParty = AncillaryRoleEnum -> PredeterminedClearingOrganizationParty + condition PredeterminedClearingOrganizationParty: + if predeterminedClearingOrganizationParty exists + then predeterminedClearingOrganizationParty = AncillaryRoleEnum -> PredeterminedClearingOrganizationParty type PercentageRule: <"A class defining a content model for a calculation rule defined as percentage of the notional amount."> - paymentPercent number (1..1) <"A percentage of the notional amount."> - notionalAmountReference Money (1..1) <"A reference to the notional amount."> - [metadata reference] + paymentPercent number (1..1) <"A percentage of the notional amount."> + notionalAmountReference Money (1..1) <"A reference to the notional amount."> + [metadata reference] type SettlementDate: <"A data defining the settlement date(s) for cash or physical settlement as either a set of explicit dates, together with applicable adjustments, or as a date relative to some other (anchor) date, or as any date in a range of contiguous business days. This data type provides a level of abstraction on top of the different legacy methods used to specify a settlement / payment date, which vary across product types, asset classes and delivery types."> - [metadata key] - - adjustableOrRelativeDate AdjustableOrAdjustedOrRelativeDate (0..1) <"A single settlement date subject to adjustment or specified as relative to another date (e.g. the trade date). This attribute was formerly part of 'SettlementTerms', which is now being harmonised to include a common 'SettlementDate', as inherited from 'SettlementBase'."> - valueDate date (0..1) <"The settlement date for a forward settling product. For Foreign Exchange contracts, this represents a common settlement date between both currency legs. To specify different settlement dates for each currency leg, see the ForeignExchange class. This attribute was formerly part of 'SettlementTerms', which is now being harmonised to include a common 'SettlementDate', as inherited from 'SettlementBase'."> - adjustableDates AdjustableDates (0..1) <"A series of dates that shall be subject to adjustment if they would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date. This attributes was formerly part of 'CashSettlementPaymentDate' as included into 'OptionCashSettlement' (which is now merged into a unique 'CashSettlementTerms' data type."> - businessDateRange BusinessDateRange (0..1) <"A range of contiguous business days. This attribute is meant to be merged with the 'settlementDate' at some future point once we refactor 'Date' to use a single complex type across the model. This attributes was formerly part of 'CashSettlementPaymentDate', as included into 'OptionCashSettlement' (which is now merged into a unique 'CashSettlementTerms' data type."> - cashSettlementBusinessDays int (0..1) <"The number of business days used in the determination of the cash settlement payment date. If a cash settlement amount is specified, the cash settlement payment date will be this number of business days following the calculation of the final price. If a cash settlement amount is not specified, the cash settlement payment date will be this number of business days after all conditions to settlement are satisfied. ISDA 2003 Term: Cash Settlement Date. This attribute was formerly part of 'CashSettlementTerms' as used for credit event settlement, which now includes a common 'SettlementDate' attribute."> - paymentDelay boolean (0..1) <"Applicable to CDS on MBS to specify whether payment delays are applicable to the fixed Amount. RMBS typically have a payment delay of 5 days between the coupon date of the reference obligation and the payment date of the synthetic swap. CMBS do not, on the other hand, with both payment dates being on the 25th of each month."> - - condition BusinessDays: <"FpML specifies cashSettlementBusinessDays as a nonNegativeInteger. If cashSettlementBusinessDays is not specified, then another settlement date method must be specified."> - if cashSettlementBusinessDays exists - then cashSettlementBusinessDays >= 0 - else - adjustableOrRelativeDate exists or valueDate exists or adjustableDates exists or businessDateRange exists - - condition DateChoice: <"Settlement date must be specified either throught the 'settlementDate' or 'valueDate' attribute. This is a temporary work-around until such time when we can retire the 'valueDate' attribute."> - optional choice adjustableOrRelativeDate, valueDate, adjustableDates, businessDateRange + [metadata key] + + adjustableOrRelativeDate AdjustableOrAdjustedOrRelativeDate (0..1) <"A single settlement date subject to adjustment or specified as relative to another date (e.g. the trade date). This attribute was formerly part of 'SettlementTerms', which is now being harmonised to include a common 'SettlementDate', as inherited from 'SettlementBase'."> + valueDate date (0..1) <"The settlement date for a forward settling product. For Foreign Exchange contracts, this represents a common settlement date between both currency legs. To specify different settlement dates for each currency leg, see the ForeignExchange class. This attribute was formerly part of 'SettlementTerms', which is now being harmonised to include a common 'SettlementDate', as inherited from 'SettlementBase'."> + adjustableDates AdjustableDates (0..1) <"A series of dates that shall be subject to adjustment if they would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date. This attributes was formerly part of 'CashSettlementPaymentDate' as included into 'OptionCashSettlement' (which is now merged into a unique 'CashSettlementTerms' data type."> + businessDateRange BusinessDateRange (0..1) <"A range of contiguous business days. This attribute is meant to be merged with the 'settlementDate' at some future point once we refactor 'Date' to use a single complex type across the model. This attributes was formerly part of 'CashSettlementPaymentDate', as included into 'OptionCashSettlement' (which is now merged into a unique 'CashSettlementTerms' data type."> + cashSettlementBusinessDays int (0..1) <"The number of business days used in the determination of the cash settlement payment date. If a cash settlement amount is specified, the cash settlement payment date will be this number of business days following the calculation of the final price. If a cash settlement amount is not specified, the cash settlement payment date will be this number of business days after all conditions to settlement are satisfied. ISDA 2003 Term: Cash Settlement Date. This attribute was formerly part of 'CashSettlementTerms' as used for credit event settlement, which now includes a common 'SettlementDate' attribute."> + paymentDelay boolean (0..1) <"Applicable to CDS on MBS to specify whether payment delays are applicable to the fixed Amount. RMBS typically have a payment delay of 5 days between the coupon date of the reference obligation and the payment date of the synthetic swap. CMBS do not, on the other hand, with both payment dates being on the 25th of each month."> + + condition BusinessDays: <"FpML specifies cashSettlementBusinessDays as a nonNegativeInteger. If cashSettlementBusinessDays is not specified, then another settlement date method must be specified."> + if cashSettlementBusinessDays exists + then cashSettlementBusinessDays >= 0 + else adjustableOrRelativeDate exists + or valueDate exists + or adjustableDates exists + or businessDateRange exists + + condition DateChoice: <"Settlement date must be specified either throught the 'settlementDate' or 'valueDate' attribute. This is a temporary work-around until such time when we can retire the 'valueDate' attribute."> + optional choice adjustableOrRelativeDate, valueDate, adjustableDates, businessDateRange type FxFixingDate extends Offset: <"Extends the Offset structure to specify an FX fixing date as an offset to dates specified somewhere else in the document."> - businessDayConvention BusinessDayConventionEnum (0..1) <"The convention for adjusting a date if it would otherwise fall on a day that is not a business day, as specified by an ISDA convention (e.g. Following, Precedent)."> - businessCenters BusinessCenters (0..1) - businessCentersReference BusinessCenters (0..1) <"A reference to a set of financial business centers defined elsewhere in the document. This set of business centers is used to determine whether a particular day is a business day or not."> - [metadata reference] - dateRelativeToPaymentDates DateRelativeToPaymentDates (0..1) <"The payment date references on which settlements in non-deliverable currency are due and will then have to be converted according to the terms specified through the other parts of the nonDeliverableSettlement structure."> - dateRelativeToCalculationPeriodDates DateRelativeToCalculationPeriodDates (0..1) <"The calculation period references on which settlements in non-deliverable currency are due and will then have to be converted according to the terms specified through the other parts of the nonDeliverableSettlement structure. Implemented for Brazilian-CDI swaps where it will refer to the termination date of the appropriate leg."> - dateRelativeToValuationDates DateRelativeToValuationDates (0..1) <"The calculation period references on which settlements in non-deliverable currency are due and will then have to be converted according to the terms specified through the other parts of the nonDeliverableSettlement structure. Implemented for Brazilian-CDI swaps where it will refer to the termination date of the appropriate leg."> + businessDayConvention BusinessDayConventionEnum (0..1) <"The convention for adjusting a date if it would otherwise fall on a day that is not a business day, as specified by an ISDA convention (e.g. Following, Precedent)."> + businessCenters BusinessCenters (0..1) + businessCentersReference BusinessCenters (0..1) <"A reference to a set of financial business centers defined elsewhere in the document. This set of business centers is used to determine whether a particular day is a business day or not."> + [metadata reference] + dateRelativeToPaymentDates DateRelativeToPaymentDates (0..1) <"The payment date references on which settlements in non-deliverable currency are due and will then have to be converted according to the terms specified through the other parts of the nonDeliverableSettlement structure."> + dateRelativeToCalculationPeriodDates DateRelativeToCalculationPeriodDates (0..1) <"The calculation period references on which settlements in non-deliverable currency are due and will then have to be converted according to the terms specified through the other parts of the nonDeliverableSettlement structure. Implemented for Brazilian-CDI swaps where it will refer to the termination date of the appropriate leg."> + dateRelativeToValuationDates DateRelativeToValuationDates (0..1) <"The calculation period references on which settlements in non-deliverable currency are due and will then have to be converted according to the terms specified through the other parts of the nonDeliverableSettlement structure. Implemented for Brazilian-CDI swaps where it will refer to the termination date of the appropriate leg."> fxFixingDate AdjustableOrRelativeDate (0..1) <"Describes the specific date when a non-deliverable forward or cash-settled option will 'fix' against a particular rate, which will be used to compute the ultimate cash settlement. This element should be omitted where a single, discrete fixing date cannot be identified e.g. on an american option, where fixing may occur at any date on a continuous range. This attribute was formerly part of 'fxSettlementTerms', which is now being harmonised into a common 'CashSettlementTerms' that includes a 'ValuationDate'."> - condition BusinessCentersChoice: <"condition to represent an FpML choice construct."> - optional choice businessCenters, businessCentersReference + condition BusinessCentersChoice: <"condition to represent an FpML choice construct."> + optional choice businessCenters, businessCentersReference - condition DateChoice: <"condition to represent an FpML choice construct."> - required choice dateRelativeToPaymentDates, dateRelativeToCalculationPeriodDates, dateRelativeToValuationDates, fxFixingDate + condition DateChoice: <"condition to represent an FpML choice construct."> + required choice dateRelativeToPaymentDates, dateRelativeToCalculationPeriodDates, dateRelativeToValuationDates, fxFixingDate type SettlementTerms extends SettlementBase: <"Specifies the settlement terms, which can either be cash, physical, or fx-based cash-settlement. This class can be used for the settlement of options and forwards, cash transactions (e.g. securities or foreign exchange), or in case of credit event."> - cashSettlementTerms CashSettlementTerms (0..*) <"Specifies the parameters associated with the cash settlement procedure."> - physicalSettlementTerms PhysicalSettlementTerms (0..1) <"Specifies the physical settlement terms which apply to the transaction."> - - condition OptionSettlementChoice: <"The option settlement cannot combine both physical and cash terms specification."> - if cashSettlementTerms exists and physicalSettlementTerms exists - then settlementType = SettlementTypeEnum -> Election or - settlementType = SettlementTypeEnum -> CashOrPhysical - condition CashSettlementTerms: <"If the cash settlement terms are specified, then the settlementType can either be Cash, Election or CashOrPhysical"> - if cashSettlementTerms exists - then settlementType <> SettlementTypeEnum -> Physical - condition PhysicalSettlementTerms: <"If the physical settlement terms are specified, then the settlementType can either be Physical, Election or CashOrPhysical"> - if physicalSettlementTerms exists /* or fxSettlementTerms exists*/ - then settlementType <> SettlementTypeEnum -> Cash + cashSettlementTerms CashSettlementTerms (0..*) <"Specifies the parameters associated with the cash settlement procedure."> + physicalSettlementTerms PhysicalSettlementTerms (0..1) <"Specifies the physical settlement terms which apply to the transaction."> + + condition OptionSettlementChoice: <"The option settlement cannot combine both physical and cash terms specification."> + if cashSettlementTerms exists and physicalSettlementTerms exists + then settlementType = SettlementTypeEnum -> Election + or settlementType = SettlementTypeEnum -> CashOrPhysical + + condition CashSettlementTerms: <"If the cash settlement terms are specified, then the settlementType can either be Cash, Election or CashOrPhysical"> + if cashSettlementTerms exists + then settlementType <> SettlementTypeEnum -> Physical + + condition PhysicalSettlementTerms: <"If the physical settlement terms are specified, then the settlementType can either be Physical, Election or CashOrPhysical"> + if physicalSettlementTerms exists /* or fxSettlementTerms exists*/ + then settlementType <> SettlementTypeEnum -> Cash type PriceQuantity: <"Defines a settlement as an exchange between two parties of a specified quantity of an asset (the quantity) against a specified quantity of another asset (the price). The settlement is optional and can be either cash or physical. In the case of non-cash products, the settlement of the price/quantity would not be specified here and instead would be delegated to the product mechanics, as parameterised by the price/quantity values."> - [metadata key] - price PriceSchedule (0..*) <"Specifies a price to be used for trade amounts and other purposes."> - [metadata location] - quantity NonNegativeQuantitySchedule (0..*) <"Specifies a quantity to be associated with an event, for example a trade amount."> - [metadata location] - observable Observable (0..1) <"Specifies the object to be observed for a price, it could be an asset or a reference. The cardinality is optional as some quantity / price cases have no observable (e.g. a notional and a fixed rate in a given currency)."> - buyerSeller BuyerSeller (0..1) <"Defines the direction of the exchange. The convention is that the buyer receives the quantity / pays the price, whereas the seller receives the price / pays the quantity. Attribute is optional in case the price/quantity settlement is defined as part of the product mechanics."> - settlementTerms SettlementTerms (0..1) <"Whether the settlement is cash or physical and the corresponding terms. Attribute is optional in case the price/quantity settlement is defined as part of the product mechanics."> - effectiveDate AdjustableOrRelativeDate (0..1) <"Specifies the date at which the price and quantity become effective. This day may be subject to adjustment in accordance with a business day convention, or could be specified as relative to a trade date, for instance. Optional cardinality, as the effective date is usually specified in the product definition, so it may only need to be specified as part of the PriceQuantity in an increase/decrease scenario for an existing trade."> - - condition RateOptionObservable: <"When the observable is a rate option, the price type must be interest rate and the arithmetic operator must be specified."> - RateOptionObservableCondition - - condition ObservableExists: <"When the arithmetic operator is specified, then an observable must be specified."> - if price -> arithmeticOperator exists - then observable exists - - condition ActualSettlement: <"Settlement terms must be present when the settlement direction is specified."> - if buyerSeller exists then settlementTerms exists + [metadata key] + price PriceSchedule (0..*) <"Specifies a price to be used for trade amounts and other purposes."> + [metadata location] + quantity NonNegativeQuantitySchedule (0..*) <"Specifies a quantity to be associated with an event, for example a trade amount."> + [metadata location] + observable Observable (0..1) <"Specifies the object to be observed for a price, it could be an asset or a reference. The cardinality is optional as some quantity / price cases have no observable (e.g. a notional and a fixed rate in a given currency)."> + buyerSeller BuyerSeller (0..1) <"Defines the direction of the exchange. The convention is that the buyer receives the quantity / pays the price, whereas the seller receives the price / pays the quantity. Attribute is optional in case the price/quantity settlement is defined as part of the product mechanics."> + settlementTerms SettlementTerms (0..1) <"Whether the settlement is cash or physical and the corresponding terms. Attribute is optional in case the price/quantity settlement is defined as part of the product mechanics."> + effectiveDate AdjustableOrRelativeDate (0..1) <"Specifies the date at which the price and quantity become effective. This day may be subject to adjustment in accordance with a business day convention, or could be specified as relative to a trade date, for instance. Optional cardinality, as the effective date is usually specified in the product definition, so it may only need to be specified as part of the PriceQuantity in an increase/decrease scenario for an existing trade."> + + condition RateOptionObservable: <"When the observable is a rate option, the price type must be interest rate and the arithmetic operator must be specified."> + RateOptionObservableCondition + + condition ObservableExists: <"When the arithmetic operator is specified, then an observable must be specified."> + if price -> arithmeticOperator exists then observable exists + + condition ActualSettlement: <"Settlement terms must be present when the settlement direction is specified."> + if buyerSeller exists then settlementTerms exists type FixedPrice: <"A predefined price accorded by the counterparties."> price PriceSchedule (0..1) <"Fixed price step schedule, including an initial price specified as an absolute number."> - [metadata address "pointsTo"=PriceQuantity->price] + [metadata address "pointsTo"=PriceQuantity->price] - condition NonNegativePrice_amount: <"For a non-negative price, the amount attribute must be positive."> - if price -> value exists then price -> value >= 0.0 and - if price -> datedValue exists then price -> datedValue -> value all >= 0.0 + condition NonNegativePrice_amount: <"For a non-negative price, the amount attribute must be positive."> + if price -> value exists + then price -> value >= 0.0 and if price -> datedValue exists + then price -> datedValue -> value all >= 0.0 type PaymentDetail: - [metadata key] + [metadata key] - paymentDate AdjustableOrRelativeDate (0..1) - paymentRule PaymentRule (1..1) <"The calculation rule."> - paymentAmount Money (0..1) <"A fixed payment amount."> + paymentDate AdjustableOrRelativeDate (0..1) + paymentRule PaymentRule (1..1) <"The calculation rule."> + paymentAmount Money (0..1) <"A fixed payment amount."> type PaymentDiscounting: <"This class corresponds to the FpML PaymentDiscounting.model group for representing the discounting elements that can be associated with a payment."> - discountFactor number (0..1) <"The value representing the discount factor used to calculate the present value of the cash flow."> - presentValueAmount Money (0..1) <"The amount representing the present value of the forecast payment."> + discountFactor number (0..1) <"The value representing the discount factor used to calculate the present value of the cash flow."> + presentValueAmount Money (0..1) <"The amount representing the present value of the forecast payment."> type PaymentRule: <"A class defining the payment calculation rule. As of FpML 5.10, percentage rule is the only calculation rule that has been specified as part of the standard."> - percentageRule PercentageRule (0..1) <"This attribute is not present as part of the FpML construct, as the payment rule is specialised by means of runtime type extension through the xsi:type."> + percentageRule PercentageRule (0..1) <"This attribute is not present as part of the FpML construct, as the payment rule is specialised by means of runtime type extension through the xsi:type."> type PrincipalPayments: <"A class defining which principal exchanges occur for the stream."> - [metadata key] + [metadata key] - initialPayment boolean (1..1) <"A true/false flag to indicate whether there is an initial exchange of principal on the effective date."> - finalPayment boolean (1..1) <"A true/false flag to indicate whether there is a final exchange of principal on the termination date."> - intermediatePayment boolean (1..1) <"A true/false flag to indicate whether there are intermediate or interim exchanges of principal during the term of the swap."> - varyingLegNotionalCurrency string (0..*) <"Indicate the Payout legs which nominal amount may vary in regards of FX Fixing dates as determined in the product terms."> - principalPaymentSchedule PrincipalPaymentSchedule (0..1) <"Describe dates schedules for Principal Exchanges and related role of the parties when known."> + initialPayment boolean (1..1) <"A true/false flag to indicate whether there is an initial exchange of principal on the effective date."> + finalPayment boolean (1..1) <"A true/false flag to indicate whether there is a final exchange of principal on the termination date."> + intermediatePayment boolean (1..1) <"A true/false flag to indicate whether there are intermediate or interim exchanges of principal during the term of the swap."> + varyingLegNotionalCurrency string (0..*) <"Indicate the Payout legs which nominal amount may vary in regards of FX Fixing dates as determined in the product terms."> + principalPaymentSchedule PrincipalPaymentSchedule (0..1) <"Describe dates schedules for Principal Exchanges and related role of the parties when known."> type PrincipalPaymentSchedule: <"Describe dates schedules for Principal Exchanges and related role of the parties when known."> initialPrincipalPayment PrincipalPayment (0..1) <"Principal Payment made at Trade inception."> @@ -357,29 +361,29 @@ type PrincipalPayment: <"Any kind of principal payments when the amount is known presentValuePrincipalAmount Money (0..1) <"The amount representing the present value of the principal payment."> condition PrincipalAmount: - required choice principalAmount, presentValuePrincipalAmount + required choice principalAmount, presentValuePrincipalAmount condition DiscountFactor: - if presentValuePrincipalAmount exists - then discountFactor exists + if presentValuePrincipalAmount exists + then discountFactor exists type SettlementBase: <"A base class to be extended by the SettlementTerms class."> - [metadata key] - - settlementType SettlementTypeEnum (1..1) <"Whether the settlement will be cash, physical, by election, ..."> - transferSettlementType TransferSettlementEnum (0..1) <"The qualification as to how the transfer will settle, e.g. a DvP settlement."> - settlementCurrency string (0..1) <"The settlement currency is to be specified when the Settlement Amount cannot be known in advance. The list of valid currencies is not presently positioned as an enumeration as part of the CDM because that scope is limited to the values specified by ISDA and FpML. As a result, implementers have to make reference to the relevant standard, such as the ISO 4217 standard for currency codes."> - [metadata scheme] - [docReference ICMA GMRA namingConvention "Contractual Currency" - provision "As defined in GMRA paragraph 2(k)/ paragraph 7(a) All the payments made in respect of the Purchase Price or the Repurchase Price of any Transaction shall be made in the currency of the Purchase Price (the Contractual Currency) save as provided in paragraph 10(d)(ii). Notwithstanding the foregoing, the payee of any money may, at its option, accept tender thereof in any other currency, provided, however, that, to the extent permitted by applicable law, the obligation of the payer to pay such money will be discharged only to the extent of the amount of the Contractual Currency that such payee may, consistent with normal banking procedures, purchase with such other currency (after deduction of any premium and costs of exchange) for delivery within the customary delivery period for spot transactions in respect of the relevant currency."] - settlementDate SettlementDate (0..1) <"The date on which the settlement amount will be paid, subject to adjustment in accordance with any applicable business day convention. This component would not be present for a mandatory early termination provision where the cash settlement payment date is the mandatory early termination date."> - settlementCentre SettlementCentreEnum (0..1) <"Optional settlement centre as an enumerated list: Euroclear, Clearstream."> - settlementProvision SettlementProvision (0..1) <"Optionally defines the parameters that regulate a settlement."> - standardSettlementStyle StandardSettlementStyleEnum (0..1) <"Settlement Style."> + [metadata key] + + settlementType SettlementTypeEnum (1..1) <"Whether the settlement will be cash, physical, by election, ..."> + transferSettlementType TransferSettlementEnum (0..1) <"The qualification as to how the transfer will settle, e.g. a DvP settlement."> + settlementCurrency string (0..1) <"The settlement currency is to be specified when the Settlement Amount cannot be known in advance. The list of valid currencies is not presently positioned as an enumeration as part of the CDM because that scope is limited to the values specified by ISDA and FpML. As a result, implementers have to make reference to the relevant standard, such as the ISO 4217 standard for currency codes."> + [metadata scheme] + [docReference ICMA GMRA namingConvention "Contractual Currency" + provision "As defined in GMRA paragraph 2(k)/ paragraph 7(a) All the payments made in respect of the Purchase Price or the Repurchase Price of any Transaction shall be made in the currency of the Purchase Price (the Contractual Currency) save as provided in paragraph 10(d)(ii). Notwithstanding the foregoing, the payee of any money may, at its option, accept tender thereof in any other currency, provided, however, that, to the extent permitted by applicable law, the obligation of the payer to pay such money will be discharged only to the extent of the amount of the Contractual Currency that such payee may, consistent with normal banking procedures, purchase with such other currency (after deduction of any premium and costs of exchange) for delivery within the customary delivery period for spot transactions in respect of the relevant currency."] + settlementDate SettlementDate (0..1) <"The date on which the settlement amount will be paid, subject to adjustment in accordance with any applicable business day convention. This component would not be present for a mandatory early termination provision where the cash settlement payment date is the mandatory early termination date."> + settlementCentre SettlementCentreEnum (0..1) <"Optional settlement centre as an enumerated list: Euroclear, Clearstream."> + settlementProvision SettlementProvision (0..1) <"Optionally defines the parameters that regulate a settlement."> + standardSettlementStyle StandardSettlementStyleEnum (0..1) <"Settlement Style."> //ICMA-P2 type SettlementProvision: <"Defines parameters that regulate a settlement, for instance whether this settlement should be netted with other ones or broken-down into smaller amounts."> - shapingProvisions ShapingProvision (0..1) <"Defines the parameters that are necessary to 'shape' a settlement, i.e. break it down into smaller amounts."> + shapingProvisions ShapingProvision (0..1) <"Defines the parameters that are necessary to 'shape' a settlement, i.e. break it down into smaller amounts."> type ShapingProvision: <"Defines the applicable settlement limits that may require a settlement to be 'shaped', i.e. broken-down into smaller amounts."> - shapeSchedule Money (1..*) <"Defines applicable settlement limits in each currency."> + shapeSchedule Money (1..*) <"Defines applicable settlement limits in each currency."> diff --git a/rosetta-source/src/main/rosetta/product-common-type.rosetta b/rosetta-source/src/main/rosetta/product-common-type.rosetta index 3d69e9a712..d3456047c8 100644 --- a/rosetta-source/src/main/rosetta/product-common-type.rosetta +++ b/rosetta-source/src/main/rosetta/product-common-type.rosetta @@ -1,3 +1,2 @@ namespace cdm.product.common version "${project.version}" - diff --git a/rosetta-source/src/main/rosetta/product-qualification-func.rosetta b/rosetta-source/src/main/rosetta/product-qualification-func.rosetta index 895a6dfa24..d8c53d5624 100644 --- a/rosetta-source/src/main/rosetta/product-qualification-func.rosetta +++ b/rosetta-source/src/main/rosetta/product-qualification-func.rosetta @@ -5,1420 +5,1511 @@ import cdm.base.datetime.* import cdm.base.staticdata.asset.common.* import cdm.base.staticdata.asset.rates.* import cdm.mapping.config.* -import cdm.product.common.settlement.* import cdm.product.template.* isProduct root EconomicTerms; /* -COMPOSABLE PRODUCT QUALIFICATION based on ISDA Taxonomy v2 -AssetClass - BaseProduct - SubProduct - TransactionType - -Level 1 - ASSETCLASS: - - InterestRate : Qualify_AssetClass_InsterestRate - - ForeignExchange: Qualify_AssetClass_ForeignExchange - - Credit: Qualify_AssetClass_Credit - - Equity: Qualify_AssetClass_Equity - - Commodity: Qualify_AssetClass_Commodity -*/ + * COMPOSABLE PRODUCT QUALIFICATION based on ISDA Taxonomy v2 + * AssetClass - BaseProduct - SubProduct - TransactionType + + * Level 1 - ASSETCLASS: + * - InterestRate : Qualify_AssetClass_InsterestRate + * - ForeignExchange: Qualify_AssetClass_ForeignExchange + * - Credit: Qualify_AssetClass_Credit + * - Equity: Qualify_AssetClass_Equity + * - Commodity: Qualify_AssetClass_Commodity + */ func Qualify_AssetClass_InterestRate: <"Qualifies a product as having the Asset Class classification Interest Rate."> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) alias optionUnderlier: economicTerms -> payout -> optionPayout only-element -> underlier - alias forwardUnderlier: economicTerms -> payout -> optionPayout only-element -> underlier + alias forwardUnderlier: + economicTerms -> payout -> optionPayout only-element -> underlier set is_product: economicTerms -> payout -> interestRatePayout only exists - or ( - economicTerms -> payout -> optionPayout only exists - and ( optionUnderlier -> security -> securityType = SecurityTypeEnum -> Debt - or if optionUnderlier exists then Qualify_AssetClass_InterestRate(optionUnderlier -> contractualProduct -> economicTerms) = True - ) - ) - or ( - economicTerms -> payout -> forwardPayout only exists - and forwardUnderlier -> security -> securityType = SecurityTypeEnum -> Debt - ) + or (economicTerms -> payout -> optionPayout only exists + and (optionUnderlier -> security -> securityType = SecurityTypeEnum -> Debt + or if optionUnderlier exists + then Qualify_AssetClass_InterestRate( + optionUnderlier -> contractualProduct -> economicTerms + ) = True)) + or (economicTerms -> payout -> forwardPayout only exists + and forwardUnderlier -> security -> securityType = SecurityTypeEnum -> Debt) func Qualify_AssetClass_Credit: <"Qualifies a product as having the Asset Class classification Credit Default."> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) - alias underlier : economicTerms -> payout -> optionPayout only-element -> underlier + alias underlier: economicTerms -> payout -> optionPayout only-element -> underlier - set is_product: - economicTerms -> payout -> creditDefaultPayout only exists - or (economicTerms -> payout -> creditDefaultPayout, economicTerms -> payout -> interestRatePayout) only exists - or ( economicTerms -> payout -> optionPayout only exists - and if underlier exists then Qualify_AssetClass_Credit (underlier -> contractualProduct -> economicTerms) = True - ) + set is_product: + economicTerms -> payout -> creditDefaultPayout only exists + or (economicTerms -> payout -> creditDefaultPayout, economicTerms -> payout -> interestRatePayout) only exists + or (economicTerms -> payout -> optionPayout only exists + and if underlier exists + then Qualify_AssetClass_Credit( + underlier -> contractualProduct -> economicTerms + ) = True) func Qualify_AssetClass_ForeignExchange: <"Qualifies a product as having the Asset Class classification Foreign Exchange"> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) set is_product: economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange exists - or economicTerms -> payout -> optionPayout -> underlier -> foreignExchange exists - or economicTerms -> payout -> performancePayout -> observationTerms -> observable -> currencyPair exists - + or economicTerms -> payout -> optionPayout -> underlier -> foreignExchange exists + or economicTerms -> payout -> performancePayout -> observationTerms -> observable -> currencyPair exists func Qualify_AssetClass_Equity: - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) alias optionUnderlier: economicTerms -> payout -> optionPayout only-element -> underlier - alias forwardUnderlier: economicTerms -> payout -> forwardPayout only-element -> underlier + alias forwardUnderlier: + economicTerms -> payout -> forwardPayout only-element -> underlier set is_product: - ( economicTerms -> payout -> performancePayout -> underlier extract [Qualify_UnderlierProduct_Equity(item)] all = True - and ( - // Interest Rate Payout + Performance Payout (Price Return Swap, Total Return Swap) + (economicTerms -> payout -> performancePayout -> underlier + extract [ Qualify_UnderlierProduct_Equity(item) ] + all = True + and (// Interest Rate Payout + Performance Payout (Price Return Swap, Total Return Swap) (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists - // Performance Payout + Fixed Price Payout (Dividend Swap) - or (economicTerms -> payout -> performancePayout, economicTerms -> payout -> fixedPricePayout) only exists - // Performance Payout only (Variance, Volatility and Correlation Swap) - or economicTerms -> payout -> performancePayout only exists - ) - ) - or ( economicTerms -> payout -> optionPayout only exists - and if optionUnderlier exists then Qualify_UnderlierProduct_Equity (optionUnderlier) = True - ) - or ( economicTerms -> payout -> forwardPayout only exists - and forwardUnderlier exists - and Qualify_UnderlierProduct_Equity (forwardUnderlier) - ) + // Performance Payout + Fixed Price Payout (Dividend Swap) + or (economicTerms -> payout -> performancePayout, economicTerms -> payout -> fixedPricePayout) only exists + // Performance Payout only (Variance, Volatility and Correlation Swap) + or economicTerms -> payout -> performancePayout only exists)) + or (economicTerms -> payout -> optionPayout only exists + and if optionUnderlier exists + then Qualify_UnderlierProduct_Equity(optionUnderlier) = True) + or (economicTerms -> payout -> forwardPayout only exists + and forwardUnderlier exists + and Qualify_UnderlierProduct_Equity(forwardUnderlier)) func Qualify_AssetClass_Commodity: <"Qualifies a product as having the Asset Class classification Commodity"> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) alias optionUnderlier: economicTerms -> payout -> optionPayout only-element -> underlier set is_product: - //CO:FixFlo - ( (economicTerms -> payout -> commodityPayout, economicTerms -> payout -> fixedPricePayout) only exists - and economicTerms -> payout -> commodityPayout -> underlier -> commodity exists - ) - //CO Basis - or - ( economicTerms -> payout -> commodityPayout only exists - and economicTerms -> payout -> commodityPayout count = 2 - and economicTerms -> payout -> commodityPayout -> underlier -> commodity count = 2 - ) - //CO Opt - or (economicTerms -> payout -> optionPayout only exists - and if optionUnderlier exists then (Qualify_AssetClass_Commodity(optionUnderlier -> contractualProduct -> economicTerms) = True - or optionUnderlier -> commodity exists) - ) -/* -ENDOF Qualification of ISDA Taxonomy V2 Level 1 - ASSETCLASS: -*/ + // CO:FixFlo + ((economicTerms -> payout -> commodityPayout, economicTerms -> payout -> fixedPricePayout) only exists + and economicTerms -> payout -> commodityPayout -> underlier -> commodity exists) + // CO Basis + or (economicTerms -> payout -> commodityPayout only exists + and economicTerms -> payout -> commodityPayout count = 2 + and economicTerms -> payout -> commodityPayout -> underlier -> commodity count = 2) + // CO Opt + or (economicTerms -> payout -> optionPayout only exists + and if optionUnderlier exists + then (Qualify_AssetClass_Commodity( + optionUnderlier -> contractualProduct -> economicTerms + ) = True + or optionUnderlier -> commodity exists)) +/* + * ENDOF Qualification of ISDA Taxonomy V2 Level 1 - ASSETCLASS: + */ func Qualify_CreditDefaultSwap_SingleName: <"Qualifies a product as a Credit Default Swap which provides protection relative to defaults of a reference entity that could be a corporate, municipal, sovererign, or special purpose vehicle issuer of publically traded debt. The determination of the qualification is based on the economic terms and the following criteria: 1) A product with one credit default leg and one interest leg, 2) the reference entity is corporate, municipal, or sovereign issuer of debt, 3) the reference obligation is not a loan, and 4) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) output: is_product boolean (1..1) - set is_product: - Qualify_AssetClass_Credit(economicTerms) = True - - // qualifies the Credit Default Swap as having a single name underlyer that is not a loan - and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists - and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> loan is absent + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + Qualify_AssetClass_Credit(economicTerms) = True + // qualifies the Credit Default Swap as having a single name underlyer that is not a loan + and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists + and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> loan is absent func Qualify_CreditDefaultSwap_Index: <"Qualifies a product as a Credit Default Swap which provides protection relative to the performance of an index. The determination of the qualification is based on the economic terms and the following criteria: 1) A product with one credit default leg and one interest leg, 2) the reference entity is an index, and 3) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) output: is_product boolean (1..1) - set is_product: - Qualify_AssetClass_Credit(economicTerms) = True - - // qualifies the Credit Default Swap as having a single name underlyer that is not a loan - and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> indexReferenceInformation exists - and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> indexReferenceInformation -> tranche is absent + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + Qualify_AssetClass_Credit(economicTerms) = True + // qualifies the Credit Default Swap as having a single name underlyer that is not a loan + and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> indexReferenceInformation exists + and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> indexReferenceInformation -> tranche is absent func Qualify_CreditDefaultSwap_IndexTranche: <"Qualifies a product as a Credit Default Swap which provides protection relative to the performance of an index. The determination of the qualification is based on the economic terms and the following criteria: 1) A product with one credit default leg and one interest leg, 2) the reference entity is an index, and 3) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) output: is_product boolean (1..1) - set is_product: - Qualify_AssetClass_Credit(economicTerms) = True - - // qualifies the Credit Default Swap as having a single name underlyer that is not a loan - and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> indexReferenceInformation exists - and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> indexReferenceInformation -> tranche exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + Qualify_AssetClass_Credit(economicTerms) = True + // qualifies the Credit Default Swap as having a single name underlyer that is not a loan + and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> indexReferenceInformation exists + and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> indexReferenceInformation -> tranche exists func Qualify_CreditDefaultSwap_Loan: <"Qualifies a product as a Credit Default Swap which provides protection relative to defaults of a reference entity that is a loan. The determination of the qualification is based on the economic terms and the following criteria: 1) A product with one credit default leg and one interest leg, 2) the reference entity is a loan, and there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) output: is_product boolean (1..1) - set is_product: - Qualify_AssetClass_Credit(economicTerms) = True - - // qualifies the Credit Default Swap as having a single name underlyer that is not a loan - and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists - and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> loan exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + Qualify_AssetClass_Credit(economicTerms) = True + // qualifies the Credit Default Swap as having a single name underlyer that is not a loan + and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation exists + and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> loan exists func Qualify_CreditDefaultSwap_Basket: <"Qualifies a product as a Credit Default Swap which provides protection relative to defaults of a reference entity that is a loan. The determination of the qualification is based on the economic terms and the following criteria: 1) A product with one credit default leg and one interest leg, 2) the reference entity is a loan, and there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) output: is_product boolean (1..1) - set is_product: - Qualify_AssetClass_Credit(economicTerms) = True - - // qualifies the Credit Default Swap as having a single name underlyer that is not a loan - and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> basketReferenceInformation exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + Qualify_AssetClass_Credit(economicTerms) = True + // qualifies the Credit Default Swap as having a single name underlyer that is not a loan + and economicTerms -> payout -> creditDefaultPayout -> generalTerms -> basketReferenceInformation exists func Qualify_CreditDefaultSwaption: <"This product qualification is temporary until such time that the ISDA Credit Group specifies a proper taxonomy for credit derivatives that is based upon economic terms."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - set is_product: - economicTerms -> payout -> optionPayout only exists - and Qualify_AssetClass_Credit(economicTerms -> payout -> optionPayout only-element -> underlier -> contractualProduct -> economicTerms) = True + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + economicTerms -> payout -> optionPayout only exists + and Qualify_AssetClass_Credit( + economicTerms -> payout -> optionPayout only-element -> underlier -> contractualProduct -> economicTerms + ) = True func Qualify_UnderlierProduct_Equity: <"Qualifies a product as having the Asset Class classification Equity."> - inputs: underlier Product (1..1) - output: is_product boolean (1..1) + inputs: + underlier Product (1..1) + output: + is_product boolean (1..1) - set is_product: + set is_product: underlier -> security -> securityType = SecurityTypeEnum -> Equity or (underlier -> security -> securityType = SecurityTypeEnum -> Fund - and underlier -> security -> fundType = FundProductTypeEnum -> ExchangeTradedFund) - or (underlier -> security -> securityType = SecurityTypeEnum -> Fund - and underlier -> security -> fundType = FundProductTypeEnum -> MutualFund) - or underlier -> security -> securityType = SecurityTypeEnum -> Warrant - or (underlier -> index exists /* and underlier -> index -> indexType = IndexTypeEnum -> Equity */) // No FpML mappings exist for IndexTypeEnum - - // Qualifies that the underlier is a basket composed of equity products only - or (underlier -> basket exists - and (underlier -> basket -> basketConstituent -> security -> securityType any = SecurityTypeEnum -> Equity + and underlier -> security -> fundType = FundProductTypeEnum -> ExchangeTradedFund) + or (underlier -> security -> securityType = SecurityTypeEnum -> Fund + and underlier -> security -> fundType = FundProductTypeEnum -> MutualFund) + or underlier -> security -> securityType = SecurityTypeEnum -> Warrant + or (underlier -> index exists /* and underlier -> index -> indexType = IndexTypeEnum -> Equity */ ) // No FpML mappings exist for IndexTypeEnum + // Qualifies that the underlier is a basket composed of equity products only + or (underlier -> basket exists + and (underlier -> basket -> basketConstituent -> security -> securityType any = SecurityTypeEnum -> Equity or (underlier -> basket -> basketConstituent -> security -> securityType any = SecurityTypeEnum -> Fund and underlier -> basket -> basketConstituent -> security -> fundType any = FundProductTypeEnum -> ExchangeTradedFund) or (underlier -> basket -> basketConstituent -> security -> securityType any = SecurityTypeEnum -> Fund and underlier -> basket -> basketConstituent -> security -> fundType any = FundProductTypeEnum -> MutualFund) or underlier -> basket -> basketConstituent -> security -> securityType any = SecurityTypeEnum -> Warrant - or (underlier -> basket -> basketConstituent -> index exists /* and underlier -> basket -> basketConstituent -> index -> indexType = IndexTypeEnum -> Equity */) - ) - ) + or (underlier -> basket -> basketConstituent -> index exists /* and underlier -> basket -> basketConstituent -> index -> indexType = IndexTypeEnum -> Equity */ ))) func Qualify_BaseProduct_EquitySwap: <"Qualifies a product as having the Asset Class classification Equity and Base Product Classification Swap."> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) - set is_product: + set is_product: // all underliers must be equity asset class Qualify_AssetClass_Equity(economicTerms) = True - and ( - // Interest Rate Payout + Performance Payout (Price Return Swap, Total Return Swap) + and (// Interest Rate Payout + Performance Payout (Price Return Swap, Total Return Swap) (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists - // Performance Payout + Fixed Price Payout (Dividend Swap) - or (economicTerms -> payout -> performancePayout, economicTerms -> payout -> fixedPricePayout) only exists - // Performance Payout only (Variance, Volatility and Correlation Swap) - or economicTerms -> payout -> performancePayout only exists - ) + // Performance Payout + Fixed Price Payout (Dividend Swap) + or (economicTerms -> payout -> performancePayout, economicTerms -> payout -> fixedPricePayout) only exists + // Performance Payout only (Variance, Volatility and Correlation Swap) + or economicTerms -> payout -> performancePayout only exists) func Qualify_EquitySwap_PriceReturnBasicPerformance_SingleName: <"Qualifies a product as an Equity Swap for which the performance is based on the price change on a single stock. The determination of the qualification is based on the economic terms and the following criteria: 1) An equity product with one performance leg and one interest leg 2) with the former featuring priceReturnTerms, 3) the underlier is an equity security, a fund, an exchange traded fund, mutual fund, or warrant, and 4) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquitySwap_PriceReturnBasicPerformance_SingleName"] - [synonym ISDA_Taxonomy_v2 value "EquitySwap_PriceReturnBasicPerformance_SingleName"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquitySwap_PriceReturnBasicPerformance_SingleName"] + [synonym ISDA_Taxonomy_v2 value "EquitySwap_PriceReturnBasicPerformance_SingleName"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is exactly one performance leg, one interest rate leg and no legs of other types - (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists and - economicTerms -> payout -> interestRatePayout count = 1 and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the performance leg has priceReturnTerms - performancePayout -> returnTerms -> priceReturnTerms only exists and - - // qualifies that underlier is a security (single name) - performancePayout -> underlier -> security exists + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is exactly one performance leg, one interest rate leg and no legs of other types + (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists + and economicTerms -> payout -> interestRatePayout count = 1 + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the performance leg has priceReturnTerms + performancePayout -> returnTerms -> priceReturnTerms only exists + and // qualifies that underlier is a security (single name) + performancePayout -> underlier -> security exists func Qualify_EquitySwap_TotalReturnBasicPerformance_SingleName: <"Qualifies a product as an Equity Swap for which the performance is based on the price changes and dividend returns on a single stock. The determination of the qualification is based on the economic terms and the following criteria: 1) An equity product with one performance leg and one interest leg 2) with the former featuring priceReturnTerms and dividendReturnTerms, 3) the underlier is an equity security, a fund, an exchange traded fund, mutual fund, or warrant, and 4) there are no option features"> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) - set is_product: + set is_product: // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that underlier is a security (single name) - economicTerms -> payout -> performancePayout -> underlier -> security exists and - ( - // Intended final payout structure + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that underlier is a security (single name) + economicTerms -> payout -> performancePayout -> underlier -> security exists + and (// Intended final payout structure // qualifies that there is exactly two performance legs, one interest rate leg and no legs of other types - ( - (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists and - economicTerms -> payout -> interestRatePayout count = 1 and - economicTerms -> payout -> performancePayout count = 2 - ) - or - // Provisional payout structure - // qualifies that there is 1 performance leg, 1 interest rate leg and no legs of other types - ( - (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists and - economicTerms -> payout -> interestRatePayout count = 1 and - economicTerms -> payout -> performancePayout count = 1 - ) - ) - and - - // qualifies that there is a performancePayout with dividendReturnTerms and another with priceReturnTerms - economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms exists and - economicTerms -> payout -> performancePayout -> returnTerms -> dividendReturnTerms exists + ((economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists + and economicTerms -> payout -> interestRatePayout count = 1 + and economicTerms -> payout -> performancePayout count = 2) + or // Provisional payout structure + // qualifies that there is 1 performance leg, 1 interest rate leg and no legs of other types + ((economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists + and economicTerms -> payout -> interestRatePayout count = 1 + and economicTerms -> payout -> performancePayout count = 1)) + and // qualifies that there is a performancePayout with dividendReturnTerms and another with priceReturnTerms + economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms exists + and economicTerms -> payout -> performancePayout -> returnTerms -> dividendReturnTerms exists func Qualify_EquitySwap_PriceReturnBasicPerformance_Index: <"Qualifies a product as an Equity Swap for which the performance is based on the price change on an index. The determination of the qualification is based on the economic terms and the following criteria: 1) An equity product with one performance leg and one interest leg 2) with the former featuring priceReturnTerms, 3) the underlier is an index, and 4) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquitySwap_PriceReturnBasicPerformance_SingleIndex"] - [synonym ISDA_Taxonomy_v2 value "EquitySwap_PriceReturnBasicPerformance_SingleIndex"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquitySwap_PriceReturnBasicPerformance_SingleIndex"] + [synonym ISDA_Taxonomy_v2 value "EquitySwap_PriceReturnBasicPerformance_SingleIndex"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element set is_product: // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is exactly one performance leg, one interest rate leg and no legs of other types - (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists and - economicTerms -> payout -> interestRatePayout count = 1 and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the performance leg has priceReturnTerms - performancePayout -> returnTerms -> priceReturnTerms only exists and - - // qualifies that underlier is an index - performancePayout -> underlier -> index exists + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is exactly one performance leg, one interest rate leg and no legs of other types + (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists + and economicTerms -> payout -> interestRatePayout count = 1 + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the performance leg has priceReturnTerms + performancePayout -> returnTerms -> priceReturnTerms only exists + and // qualifies that underlier is an index + performancePayout -> underlier -> index exists func Qualify_EquitySwap_TotalReturnBasicPerformance_Index: <"Qualifies a product as an Equity Swap for which the performance is based on the price changes and dividend returns on an index. The determination of the qualification is based on the economic terms and the following criteria: 1) An equity product with one performance leg and one interest leg 2) with the former featuring priceReturnTerms and dividendReturnTerms, 3) the underlier is an index, and 4) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) - set is_product: + set is_product: // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that underlier is an index - economicTerms -> payout -> performancePayout -> underlier -> index exists and - ( - // Intended final payout structure + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that underlier is an index + economicTerms -> payout -> performancePayout -> underlier -> index exists + and (// Intended final payout structure // qualifies that there is exactly two performance legs, one interest rate leg and no legs of other types - ( - (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists and - economicTerms -> payout -> interestRatePayout count = 1 and - economicTerms -> payout -> performancePayout count = 2 - ) - or - // Provisional payout structure - // qualifies that there is 1 performance leg, 1 interest rate leg and no legs of other types - ( - (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists and - economicTerms -> payout -> interestRatePayout count = 1 and - economicTerms -> payout -> performancePayout count = 1 - ) - ) and - - // qualifies that there is a performancePayout with dividendReturnTerms and another with priceReturnTerms - economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms exists and - economicTerms -> payout -> performancePayout -> returnTerms -> dividendReturnTerms exists + ((economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists + and economicTerms -> payout -> interestRatePayout count = 1 + and economicTerms -> payout -> performancePayout count = 2) + or // Provisional payout structure + // qualifies that there is 1 performance leg, 1 interest rate leg and no legs of other types + ((economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists + and economicTerms -> payout -> interestRatePayout count = 1 + and economicTerms -> payout -> performancePayout count = 1)) + and // qualifies that there is a performancePayout with dividendReturnTerms and another with priceReturnTerms + economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms exists + and economicTerms -> payout -> performancePayout -> returnTerms -> dividendReturnTerms exists func Qualify_EquitySwap_PriceReturnBasicPerformance_Basket: <"Qualifies a product as an Equity Swap for which the performance is based on the price change on a basket. The determination of the qualification is based on the economic terms and the following criteria: 1) An equity product with one performance leg and one interest leg 2) with the former featuring priceReturnTerms, 3) the underlier is a basket and 4) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquitySwap_PriceReturnBasicPerformance_Basket"] - [synonym ISDA_Taxonomy_v2 value "EquitySwap_PriceReturnBasicPerformance_Basket"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquitySwap_PriceReturnBasicPerformance_Basket"] + [synonym ISDA_Taxonomy_v2 value "EquitySwap_PriceReturnBasicPerformance_Basket"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element set is_product: // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is exactly one performance leg, one interest rate leg and no legs of other types - (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists and - economicTerms -> payout -> interestRatePayout count = 1 and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that underlier is a basket - performancePayout -> underlier -> basket exists and - - // qualifies that the performance leg has priceReturnTerms - performancePayout -> returnTerms -> priceReturnTerms only exists + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is exactly one performance leg, one interest rate leg and no legs of other types + (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists + and economicTerms -> payout -> interestRatePayout count = 1 + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that underlier is a basket + performancePayout -> underlier -> basket exists + and // qualifies that the performance leg has priceReturnTerms + performancePayout -> returnTerms -> priceReturnTerms only exists func Qualify_EquitySwap_TotalReturnBasicPerformance_Basket: <"Qualifies a product as an Equity Swap for which the performance is based on the price changes and dividend returns on a basket. The determination of the qualification is based on the economic terms and the following criteria: 1) An equity product with one performance leg and one interest leg 2) with the former featuring priceReturnTerms and dividendReturnTerms, 3) the underlier is a basket and 4) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - set is_product: + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that underlier is a basket - economicTerms -> payout -> performancePayout -> underlier -> basket exists and - ( - // Intended final payout structure + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that underlier is a basket + economicTerms -> payout -> performancePayout -> underlier -> basket exists + and (// Intended final payout structure // qualifies that there is exactly two performance legs, one interest rate leg and no legs of other types - ( - (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists and - economicTerms -> payout -> interestRatePayout count = 1 and - economicTerms -> payout -> performancePayout count = 2 - ) - or - // Provisional payout structure - // qualifies that there is 1 performance leg, 1 interest rate leg and no legs of other types - ( - (economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists and - economicTerms -> payout -> interestRatePayout count = 1 and - economicTerms -> payout -> performancePayout count = 1 - ) - ) and - - // qualifies that there is a performancePayout with dividendReturnTerms and another with priceReturnTerms - economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms exists and - economicTerms -> payout -> performancePayout -> returnTerms -> dividendReturnTerms exists + ((economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists + and economicTerms -> payout -> interestRatePayout count = 1 + and economicTerms -> payout -> performancePayout count = 2) + or // Provisional payout structure + // qualifies that there is 1 performance leg, 1 interest rate leg and no legs of other types + ((economicTerms -> payout -> interestRatePayout, economicTerms -> payout -> performancePayout) only exists + and economicTerms -> payout -> interestRatePayout count = 1 + and economicTerms -> payout -> performancePayout count = 1)) + and // qualifies that there is a performancePayout with dividendReturnTerms and another with priceReturnTerms + economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms exists + and economicTerms -> payout -> performancePayout -> returnTerms -> dividendReturnTerms exists func 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. The determination of the qualification is based on the economic terms and the following criteria: 1) Is an equity product 2) of swap type, 3) with a single performance leg, 4) which has variance return terms, 4) the underlier is a single stock, and 5) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnVariance_SingleName"] - [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnVariance_SingleName"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is a single leg of performance type - economicTerms -> payout -> performancePayout only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the only leg has varianceReturnTerms - performancePayout -> returnTerms -> varianceReturnTerms only exists and - - // qualifies that underlier is a security (single name) - performancePayout -> underlier -> security only exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnVariance_SingleName"] + [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnVariance_SingleName"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is a single leg of performance type + economicTerms -> payout -> performancePayout only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the only leg has varianceReturnTerms + performancePayout -> returnTerms -> varianceReturnTerms only exists + and // qualifies that underlier is a security (single name) + performancePayout -> underlier -> security only exists func Qualify_EquitySwap_ParameterReturnVariance_Index: <"Qualifies a product as an Equity Swap for which the performance is based on the variance changes on an index. The determination of the qualification is based on the economic terms and the following criteria: 1) Is an equity product 2) of swap type, 3) with a single performance leg, 4) which has variance return terms, 5) the underlier is an index, and 6) there are no option features."> [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnVariance_SingleIndex"] - [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnVariance_SingleIndex"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is a single leg of performance type - economicTerms -> payout -> performancePayout only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the only leg has varianceReturnTerms - performancePayout -> returnTerms -> varianceReturnTerms only exists and - - // qualifies that underlier is an index - performancePayout -> underlier -> index only exists + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnVariance_SingleIndex"] + [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnVariance_SingleIndex"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is a single leg of performance type + economicTerms -> payout -> performancePayout only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the only leg has varianceReturnTerms + performancePayout -> returnTerms -> varianceReturnTerms only exists + and // qualifies that underlier is an index + performancePayout -> underlier -> index only exists func Qualify_EquitySwap_ParameterReturnVariance_Basket: <"Qualifies a product as an Equity Swap for which the performance is based on the variance changes on a basket. The determination of the qualification is based on the economic terms and the following criteria: 1) Is an equity product 2) of swap type, 3) with a single performance leg, 4) which has variance return terms, 5) the underlier is a basket, and 6) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnVariance_Basket"] - [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnVariance_Basket"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is a single leg of performance type - economicTerms -> payout -> performancePayout only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the only leg has varianceReturnTerms - performancePayout -> returnTerms -> varianceReturnTerms only exists and - - // qualifies that underlier is a basket - performancePayout -> underlier -> basket only exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnVariance_Basket"] + [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnVariance_Basket"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is a single leg of performance type + economicTerms -> payout -> performancePayout only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the only leg has varianceReturnTerms + performancePayout -> returnTerms -> varianceReturnTerms only exists + and // qualifies that underlier is a basket + performancePayout -> underlier -> basket only exists func Qualify_EquitySwap_ParameterReturnDispersion: <"Qualifies a product as an Equity Swap for which the performance is based on the variance changes in several legs. The determination of the qualification is based on the economic terms and the following criteria: 1) Is an equity product 2) of swap type, 3) more than one performance leg, 4) all of which have variance return terms, and 5) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - - set is_product: - // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is more than one leg of performance type - economicTerms -> payout -> performancePayout only exists and - economicTerms -> payout -> performancePayout count > 1 and + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) - // qualifies that all legs have varianceReturnTerms - economicTerms -> payout -> performancePayout -> returnTerms -> varianceReturnTerms count > 1 and - economicTerms -> payout -> performancePayout -> returnTerms -> volatilityReturnTerms is absent and - economicTerms -> payout -> performancePayout -> returnTerms -> correlationReturnTerms is absent and - economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms is absent and - economicTerms -> payout -> performancePayout -> returnTerms -> dividendReturnTerms is absent + set is_product: + // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is more than one leg of performance type + economicTerms -> payout -> performancePayout only exists + and economicTerms -> payout -> performancePayout count > 1 + and // qualifies that all legs have varianceReturnTerms + economicTerms -> payout -> performancePayout -> returnTerms -> varianceReturnTerms count > 1 + and economicTerms -> payout -> performancePayout -> returnTerms -> volatilityReturnTerms is absent + and economicTerms -> payout -> performancePayout -> returnTerms -> correlationReturnTerms is absent + and economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms is absent + and economicTerms -> payout -> performancePayout -> returnTerms -> dividendReturnTerms is absent func 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. The determination of the qualification is based on the economic terms and the following criteria: 1) Is an equity product 2) of swap type, 3) with a single performance leg, 4) which has volatility return terms, 5) the underlier is a single stock, and 6) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnVolatility_SingleName"] - [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnVolatility_SingleName"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is a single leg of performance type - economicTerms -> payout -> performancePayout only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the only leg has volatilityReturnTerms - performancePayout -> returnTerms -> volatilityReturnTerms only exists and - - // qualifies that underlier is a security (single name) - performancePayout -> underlier -> security only exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnVolatility_SingleName"] + [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnVolatility_SingleName"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is a single leg of performance type + economicTerms -> payout -> performancePayout only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the only leg has volatilityReturnTerms + performancePayout -> returnTerms -> volatilityReturnTerms only exists + and // qualifies that underlier is a security (single name) + performancePayout -> underlier -> security only exists func Qualify_EquitySwap_ParameterReturnVolatility_Index: <"Qualifies a product as an Equity Swap for which the performance is based on the volatility changes on an index. The determination of the qualification is based on the economic terms and the following criteria: 1) Is an equity product 2) of swap type, 3) with a single performance leg, 4) which has volatility return terms, 5) the underlier is an index, and 6) there are no option features."> [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnVolatility_SingleIndex"] - [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnVolatility_SingleIndex"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is a single leg of performance type - economicTerms -> payout -> performancePayout only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the only leg has volatilityReturnTerms - performancePayout -> returnTerms -> volatilityReturnTerms only exists and - - // qualifies that underlier is an index - performancePayout -> underlier -> index only exists + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnVolatility_SingleIndex"] + [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnVolatility_SingleIndex"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is a single leg of performance type + economicTerms -> payout -> performancePayout only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the only leg has volatilityReturnTerms + performancePayout -> returnTerms -> volatilityReturnTerms only exists + and // qualifies that underlier is an index + performancePayout -> underlier -> index only exists func Qualify_EquitySwap_ParameterReturnVolatility_Basket: <"Qualifies a product as an Equity Swap for which the performance is based on the volatility changes on a basket. The determination of the qualification is based on the economic terms and the following criteria: 1) Is an equity product 2) of swap type, 3) with a single performance leg, 4) which has volatility return terms, 5) the underlier is a basket, and 6) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnVolatility_Basket"] - [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnVolatility_Basket"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is a single leg of performance type - economicTerms -> payout -> performancePayout only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the only leg has varianceReturnTerms - performancePayout -> returnTerms -> volatilityReturnTerms only exists and - - // qualifies that underlier is a basket - performancePayout -> underlier -> basket exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnVolatility_Basket"] + [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnVolatility_Basket"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is a single leg of performance type + economicTerms -> payout -> performancePayout only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the only leg has varianceReturnTerms + performancePayout -> returnTerms -> volatilityReturnTerms only exists + and // qualifies that underlier is a basket + performancePayout -> underlier -> basket exists func 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. The determination of the qualification is based on the economic terms and the following criteria: 1) Is an equity product 2) of swap type, 3) with a single performance leg, 4) which has correlation return terms, 5) the underlier is a basket, and 6) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is a single leg of performance type - economicTerms -> payout -> performancePayout only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the only leg has varianceReturnTerms - performancePayout -> returnTerms -> correlationReturnTerms only exists and + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) - // qualifies that underlier is a basket - performancePayout -> underlier -> basket only exists + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is a single leg of performance type + economicTerms -> payout -> performancePayout only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the only leg has varianceReturnTerms + performancePayout -> returnTerms -> correlationReturnTerms only exists + and // qualifies that underlier is a basket + performancePayout -> underlier -> basket only exists func 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. The determination of the qualification is based on the economic terms and the following criteria: 1) Is an equity product 2) of swap type, 3) with one fixed price leg and one performance leg 4) which has dividend return terms, 5) the underlier is a single stock, and 6) there are no option features."> [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnDividend_SingleName"] - [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnDividend_SingleName"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is one fixed price and one performance payout - (economicTerms -> payout -> performancePayout, economicTerms -> payout -> fixedPricePayout) only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the performance Payout has dividendReturnTerms - performancePayout -> returnTerms -> dividendReturnTerms only exists and - - // qualifies that underlier is a security (single name) - performancePayout -> underlier -> security only exists + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnDividend_SingleName"] + [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnDividend_SingleName"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is one fixed price and one performance payout + (economicTerms -> payout -> performancePayout, economicTerms -> payout -> fixedPricePayout) only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the performance Payout has dividendReturnTerms + performancePayout -> returnTerms -> dividendReturnTerms only exists + and // qualifies that underlier is a security (single name) + performancePayout -> underlier -> security only exists func Qualify_EquitySwap_ParameterReturnDividend_Index: <"Qualifies a product as an Equity Swap for which the performance is based on the dividend returns of an index. The determination of the qualification is based on the economic terms and the following criteria: 1) Is an equity product 2) of swap type, 3) with one fixed price leg and one performance leg 4) which has dividend return terms, 5) the underlier is an index, and 6) there are no option features."> -[qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnDividend_SingleIndex"] - [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnDividend_SingleIndex"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is one fixed price and one performance payout - (economicTerms -> payout -> performancePayout, economicTerms -> payout -> fixedPricePayout) only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the performance Payout has dividendReturnTerms - performancePayout -> returnTerms -> dividendReturnTerms only exists and - - // qualifies that underlier is an index - performancePayout -> underlier -> index only exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnDividend_SingleIndex"] + [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnDividend_SingleIndex"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is one fixed price and one performance payout + (economicTerms -> payout -> performancePayout, economicTerms -> payout -> fixedPricePayout) only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the performance Payout has dividendReturnTerms + performancePayout -> returnTerms -> dividendReturnTerms only exists + and // qualifies that underlier is an index + performancePayout -> underlier -> index only exists func Qualify_EquitySwap_ParameterReturnDividend_Basket: <"Qualifies a product as an Equity Swap for which the performance is based on the dividend returns of a basket. The determination of the qualification is based on the economic terms and the following criteria: 1) Is an equity product 2) of swap type, 3) with one fixed price leg and one performance leg 4) which has dividend return terms, 5) the underlier is a basket, and 6) there are no option features."> [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnDividend_Basket"] - [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnDividend_Basket"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) - Qualify_BaseProduct_EquitySwap(economicTerms) = True and - - // qualifies that there is one fixed price and one performance payout - (economicTerms -> payout -> performancePayout, economicTerms -> payout -> fixedPricePayout) only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the performance Payout has dividendReturnTerms - performancePayout -> returnTerms -> dividendReturnTerms only exists and - - // qualifies that underlier is a security (single name) - performancePayout -> underlier -> basket only exists + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquitySwap_ParameterReturnDividend_Basket"] + [synonym ISDA_Taxonomy_v2 value "EquitySwap_ParameterReturnDividend_Basket"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + // qualifies that the Base Product is an Equity Swap (i.e.: only performance, interest rate or fixed price payouts) + Qualify_BaseProduct_EquitySwap(economicTerms) = True + and // qualifies that there is one fixed price and one performance payout + (economicTerms -> payout -> performancePayout, economicTerms -> payout -> fixedPricePayout) only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the performance Payout has dividendReturnTerms + performancePayout -> returnTerms -> dividendReturnTerms only exists + and // qualifies that underlier is a security (single name) + performancePayout -> underlier -> basket only exists func Qualify_BaseProduct_EquityForward: <"Qualifies a product as having the Asset Class classification Equity and Base Product Classification Forward."> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) set is_product: Qualify_AssetClass_Equity(economicTerms) = True - and economicTerms -> payout -> forwardPayout only exists - -func Qualify_EquityOption_PriceReturnBasicPerformance_SingleName: <"Qualifies a product as a plain vanilla Equity Option. The determination of the qualification is based on the economic terms and the following criteria: 1) An option product for which the underlier is a single stock and 2) No special option feature exists other than option averaging.">// - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquityOption_PriceReturnBasicPerformance_SingleName"] - [synonym ISDA_Taxonomy_v2 value "EquityOption_PriceReturnBasicPerformance_SingleName"] - set is_product: + and economicTerms -> payout -> forwardPayout only exists + +func Qualify_EquityOption_PriceReturnBasicPerformance_SingleName: <"Qualifies a product as a plain vanilla Equity Option. The determination of the qualification is based on the economic terms and the following criteria: 1) An option product for which the underlier is a single stock and 2) No special option feature exists other than option averaging."> // + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquityOption_PriceReturnBasicPerformance_SingleName"] + [synonym ISDA_Taxonomy_v2 value "EquityOption_PriceReturnBasicPerformance_SingleName"] + set is_product: Qualify_AssetClass_Equity(economicTerms) = True - // qualifies that only the option payout exist and all other payouts are absent - and economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is an equity security - and economicTerms -> payout -> optionPayout only-element -> underlier -> security exists - // qualifies that an option style is defined and that no feature other than averaging exists - and (economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> americanExercise exists - or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> europeanExercise exists - or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> bermudaExercise exists) - and (economicTerms -> payout -> optionPayout -> feature is absent - or economicTerms -> payout -> optionPayout -> feature -> averagingFeature only exists) + // qualifies that only the option payout exist and all other payouts are absent + and economicTerms -> payout -> optionPayout only exists + // qualifies that the underlier is an equity security + and economicTerms -> payout -> optionPayout only-element -> underlier -> security exists + // qualifies that an option style is defined and that no feature other than averaging exists + and (economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> americanExercise exists + or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> europeanExercise exists + or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> bermudaExercise exists) + and (economicTerms -> payout -> optionPayout -> feature is absent + or economicTerms -> payout -> optionPayout -> feature -> averagingFeature only exists) func Qualify_EquityOption_PriceReturnBasicPerformance_Index: <"Qualifies a product as an Equity Option with an index as underlier. The determination of the qualification is based on the economic terms and the following criteria: 1) An option product for which the underlier is an index and 2) No special option feature exists other than option averaging."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquityOption_PriceReturnBasicPerformance_SingleIndex"] - [synonym ISDA_Taxonomy_v2 value "EquityOption_PriceReturnBasicPerformance_SingleIndex"] - set is_product: + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquityOption_PriceReturnBasicPerformance_SingleIndex"] + [synonym ISDA_Taxonomy_v2 value "EquityOption_PriceReturnBasicPerformance_SingleIndex"] + set is_product: Qualify_AssetClass_Equity(economicTerms) = True - // qualifies that only the option payout exist and all other payouts are absent - and economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is an equity index - and economicTerms -> payout -> optionPayout only-element -> underlier -> index exists - // qualifies that an option style is defined and that no feature other than averaging exists - and (economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> americanExercise exists - or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> europeanExercise exists - or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> bermudaExercise exists) - and (economicTerms -> payout -> optionPayout -> feature is absent - or economicTerms -> payout -> optionPayout -> feature -> averagingFeature only exists) + // qualifies that only the option payout exist and all other payouts are absent + and economicTerms -> payout -> optionPayout only exists + // qualifies that the underlier is an equity index + and economicTerms -> payout -> optionPayout only-element -> underlier -> index exists + // qualifies that an option style is defined and that no feature other than averaging exists + and (economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> americanExercise exists + or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> europeanExercise exists + or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> bermudaExercise exists) + and (economicTerms -> payout -> optionPayout -> feature is absent + or economicTerms -> payout -> optionPayout -> feature -> averagingFeature only exists) func Qualify_EquityOption_PriceReturnBasicPerformance_Basket: <"Qualifies a product as an Equity Option with a basket underlier. The determination of the qualification is based on the economic terms and the following criteria: 1) An option product for which the underlier is a basket and 2) No special option feature exists other than option averaging."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquityOption_PriceReturnBasicPerformance_Basket"] - [synonym ISDA_Taxonomy_v2 value "EquityOption_PriceReturnBasicPerformance_Basket"] - set is_product: + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquityOption_PriceReturnBasicPerformance_Basket"] + [synonym ISDA_Taxonomy_v2 value "EquityOption_PriceReturnBasicPerformance_Basket"] + set is_product: Qualify_AssetClass_Equity(economicTerms) = True - // qualifies that only the option payout exist and all other payouts are absent - and economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is an equity basket - and economicTerms -> payout -> optionPayout only-element -> underlier -> basket exists - // qualifies that an option style is defined and that no feature other than averaging exists - and (economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> americanExercise exists - or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> europeanExercise exists - or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> bermudaExercise exists) - and (economicTerms -> payout -> optionPayout -> feature is absent - or economicTerms -> payout -> optionPayout -> feature -> averagingFeature only exists) + // qualifies that only the option payout exist and all other payouts are absent + and economicTerms -> payout -> optionPayout only exists + // qualifies that the underlier is an equity basket + and economicTerms -> payout -> optionPayout only-element -> underlier -> basket exists + // qualifies that an option style is defined and that no feature other than averaging exists + and (economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> americanExercise exists + or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> europeanExercise exists + or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> bermudaExercise exists) + and (economicTerms -> payout -> optionPayout -> feature is absent + or economicTerms -> payout -> optionPayout -> feature -> averagingFeature only exists) func Qualify_EquityOption_ParameterReturnVariance_SingleName: <"Qualifies a product as an Equity Variance Single Name Option. The determination of the qualification is based on the economic terms and the following criteria: 1) The product contains a single option payout and 2) the underlying product is a Single Name Equity Variance Swap"> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquityOption_ParameterReturnVariance_SingleName"] - [synonym ISDA_Taxonomy_v2 value "EquityOption_ParameterReturnVariance_SingleName"] - - alias underlierEconomicTerms: economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element - set is_product: + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquityOption_ParameterReturnVariance_SingleName"] + [synonym ISDA_Taxonomy_v2 value "EquityOption_ParameterReturnVariance_SingleName"] + + alias underlierEconomicTerms: + economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element + set is_product: // qualifies that only the option payout exist and all other payouts are absent economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is a single name variance swap - and Qualify_EquitySwap_ParameterReturnVariance_SingleName (underlierEconomicTerms) = True + // qualifies that the underlier is a single name variance swap + and Qualify_EquitySwap_ParameterReturnVariance_SingleName( + underlierEconomicTerms + ) = True func Qualify_EquityOption_ParameterReturnVariance_Index: <"Qualifies a product as an Equity Variance Index Option. The determination of the qualification is based on the economic terms and the following criteria: 1) The product contains a single option payout and 2) the underlying product is aan Index Equity Variance Swap"> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquityOption_ParameterReturnVariance_SingleIndex"] - [synonym ISDA_Taxonomy_v2 value "EquityOption_ParameterReturnVariance_SingleIndex"] - - alias underlierEconomicTerms: economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element - set is_product: + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquityOption_ParameterReturnVariance_SingleIndex"] + [synonym ISDA_Taxonomy_v2 value "EquityOption_ParameterReturnVariance_SingleIndex"] + + alias underlierEconomicTerms: + economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element + set is_product: // qualifies that only the option payout exist and all other payouts are absent economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is an index variance swap - and Qualify_EquitySwap_ParameterReturnVariance_Index (underlierEconomicTerms) = True - //and Qualify_EquitySwap_ParameterReturnVariance_Index (economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element) = True + // qualifies that the underlier is an index variance swap + and Qualify_EquitySwap_ParameterReturnVariance_Index(underlierEconomicTerms) = True +// and Qualify_EquitySwap_ParameterReturnVariance_Index (economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element) = True func Qualify_EquityOption_ParameterReturnVariance_Basket: <"Qualifies a product as an Equity Variance Basket Option. The determination of the qualification is based on the economic terms and the following criteria: 1) The product contains a single option payout and 2) the underlying product is a Basket Equity Variance Swap"> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "Qualify_EquityOption_ParameterReturnVariance_Basket"] - [synonym ISDA_Taxonomy_v2 value "Qualify_EquityOption_ParameterReturnVariance_Basket"] - - alias underlierEconomicTerms: economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element - set is_product: + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "Qualify_EquityOption_ParameterReturnVariance_Basket"] + [synonym ISDA_Taxonomy_v2 value "Qualify_EquityOption_ParameterReturnVariance_Basket"] + + alias underlierEconomicTerms: + economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element + set is_product: // qualifies that only the option payout exist and all other payouts are absent economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is a basket variance swap - and Qualify_EquitySwap_ParameterReturnVariance_Basket (underlierEconomicTerms) = True + // qualifies that the underlier is a basket variance swap + and Qualify_EquitySwap_ParameterReturnVariance_Basket(underlierEconomicTerms) = True func Qualify_EquityOption_ParameterReturnVolatility_SingleName: <"Qualifies a product as an Equity Volatility Single Name Option. The determination of the qualification is based on the economic terms and the following criteria: 1) The product contains a single option payout and 2) the underlying product is a Single Name Equity Volatility Swap"> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquityOption_ParameterReturnVolatility_SingleName"] - [synonym ISDA_Taxonomy_v2 value "EquityOption_ParameterReturnVolatility_SingleName"] - - alias underlierEconomicTerms: economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element - set is_product: + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquityOption_ParameterReturnVolatility_SingleName"] + [synonym ISDA_Taxonomy_v2 value "EquityOption_ParameterReturnVolatility_SingleName"] + + alias underlierEconomicTerms: + economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element + set is_product: // qualifies that only the option payout exist and all other payouts are absent economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is a single name volatility swap - and Qualify_EquitySwap_ParameterReturnVolatility_SingleName (underlierEconomicTerms) = True + // qualifies that the underlier is a single name volatility swap + and Qualify_EquitySwap_ParameterReturnVolatility_SingleName( + underlierEconomicTerms + ) = True func Qualify_EquityOption_ParameterReturnVolatility_Index: <"Qualifies a product as an Equity Volatility Index Option. The determination of the qualification is based on the economic terms and the following criteria: 1) The product contains a single option payout and 2) the underlying product is aan Index Equity Volatility Swap"> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "EquityOption_ParameterReturnVolatility_SingleIndex"] - [synonym ISDA_Taxonomy_v2 value "EquityOption_ParameterReturnVolatility_SingleIndex"] - - alias underlierEconomicTerms: economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element - set is_product: - // qualifies that only the option payout exist and all other payouts are absent + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "EquityOption_ParameterReturnVolatility_SingleIndex"] + [synonym ISDA_Taxonomy_v2 value "EquityOption_ParameterReturnVolatility_SingleIndex"] + + alias underlierEconomicTerms: + economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element + set is_product: + // qualifies that only the option payout exist and all other payouts are absent economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is an index volatility swap - and Qualify_EquitySwap_ParameterReturnVolatility_Index (underlierEconomicTerms) = True + // qualifies that the underlier is an index volatility swap + and Qualify_EquitySwap_ParameterReturnVolatility_Index(underlierEconomicTerms) = True func Qualify_EquityOption_ParameterReturnVolatility_Basket: <"Qualifies a product as an Equity Volatility Basket Option. The determination of the qualification is based on the economic terms and the following criteria: 1) The product contains a single option payout and 2) the underlying product is a Basket Equity Volatility Swap"> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "Qualify_EquityOption_ParameterReturnVolatility_Basket"] - [synonym ISDA_Taxonomy_v2 value "Qualify_EquityOption_ParameterReturnVaolatility_Basket"] - - alias underlierEconomicTerms: economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element - set is_product: - // qualifies that only the option payout exist and all other payouts are absent + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "Qualify_EquityOption_ParameterReturnVolatility_Basket"] + [synonym ISDA_Taxonomy_v2 value "Qualify_EquityOption_ParameterReturnVaolatility_Basket"] + + alias underlierEconomicTerms: + economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element + set is_product: + // qualifies that only the option payout exist and all other payouts are absent economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is a basket volatility swap - and Qualify_EquitySwap_ParameterReturnVolatility_Basket (underlierEconomicTerms) = True + // qualifies that the underlier is a basket volatility swap + and Qualify_EquitySwap_ParameterReturnVolatility_Basket(underlierEconomicTerms) = True func Qualify_EquityOption_ParameterReturnCorrelation_Basket: <"Qualifies a product as an Equity Correlation Basket Option. The determination of the qualification is based on the economic terms and the following criteria: 1) The product contains a single option payout and 2) the underlying product is a Basket Equity Correlation Swap"> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) - alias underlierEconomicTerms: economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element - set is_product: - // qualifies that only the option payout exist and all other payouts are absent + alias underlierEconomicTerms: + economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element + set is_product: + // qualifies that only the option payout exist and all other payouts are absent economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is a basket correlation swap - and Qualify_EquitySwap_ParameterReturnCorrelation_Basket (underlierEconomicTerms) = True + // qualifies that the underlier is a basket correlation swap + and Qualify_EquitySwap_ParameterReturnCorrelation_Basket(underlierEconomicTerms) = True func Qualify_EquityOption_ParameterReturnDividend_SingleName: <"Qualifies a product as an Equity Dividend Single Name Option. The determination of the qualification is based on the economic terms and the following criteria: 1) The product contains a single option payout and 2) the underlying product is a Single Name Equity Dividend Swap"> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "Qualify_EquityOption_ParameterReturnDividend_SingleName"] - [synonym ISDA_Taxonomy_v2 value "Qualify_EquityOption_ParameterReturnDividend_SingleName"] - - alias underlierEconomicTerms: economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element - set is_product: - // qualifies that only the option payout exist and all other payouts are absent + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "Qualify_EquityOption_ParameterReturnDividend_SingleName"] + [synonym ISDA_Taxonomy_v2 value "Qualify_EquityOption_ParameterReturnDividend_SingleName"] + + alias underlierEconomicTerms: + economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element + set is_product: + // qualifies that only the option payout exist and all other payouts are absent economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is a single name dividend swap - and Qualify_EquitySwap_ParameterReturnDividend_SingleName (underlierEconomicTerms) = True + // qualifies that the underlier is a single name dividend swap + and Qualify_EquitySwap_ParameterReturnDividend_SingleName( + underlierEconomicTerms + ) = True func Qualify_EquityOption_ParameterReturnDividend_Index: <"Qualifies a product as an Equity Dividend Index Option. The determination of the qualification is based on the economic terms and the following criteria: 1) The product contains a single option payout and 2) the underlying product is an Index Equity Dividend Swap"> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "Qualify_EquityOption_ParameterReturnDividend_SingleIndex"] - [synonym ISDA_Taxonomy_v2 value "Qualify_EquityOption_ParameterReturnDividend_SingleIndex"] - - alias underlierEconomicTerms: economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element - set is_product: - // qualifies that only the option payout exist and all other payouts are absent + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "Qualify_EquityOption_ParameterReturnDividend_SingleIndex"] + [synonym ISDA_Taxonomy_v2 value "Qualify_EquityOption_ParameterReturnDividend_SingleIndex"] + + alias underlierEconomicTerms: + economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element + set is_product: + // qualifies that only the option payout exist and all other payouts are absent economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is a single name dividend swap - and Qualify_EquitySwap_ParameterReturnDividend_Index (underlierEconomicTerms) = True + // qualifies that the underlier is a single name dividend swap + and Qualify_EquitySwap_ParameterReturnDividend_Index(underlierEconomicTerms) = True func Qualify_EquityOption_ParameterReturnDividend_Basket: <"Qualifies a product as an Equity Dividend Basket Option. The determination of the qualification is based on the economic terms and the following criteria: 1) The product contains a single option payout and 2) the underlying product is a Basket Equity Dividend Swap"> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "Qualify_EquityOption_ParameterReturnDividend_Basket"] - [synonym ISDA_Taxonomy_v2 value "Qualify_EquityOption_ParameterReturnDividend_Basket"] - - alias underlierEconomicTerms: economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element - set is_product: - // qualifies that only the option payout exist and all other payouts are absent + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "Qualify_EquityOption_ParameterReturnDividend_Basket"] + [synonym ISDA_Taxonomy_v2 value "Qualify_EquityOption_ParameterReturnDividend_Basket"] + + alias underlierEconomicTerms: + economicTerms -> payout -> optionPayout -> underlier -> contractualProduct -> economicTerms only-element + set is_product: + // qualifies that only the option payout exist and all other payouts are absent economicTerms -> payout -> optionPayout only exists - // qualifies that the underlier is a single name dividend swap - and Qualify_EquitySwap_ParameterReturnDividend_Basket (underlierEconomicTerms) = True + // qualifies that the underlier is a single name dividend swap + and Qualify_EquitySwap_ParameterReturnDividend_Basket(underlierEconomicTerms) = True func Qualify_BaseProduct_IRSwap: <"Qualifies a product as having the Base Product classification Interest Rate Swap."> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) - set is_product: - Qualify_AssetClass_InterestRate(economicTerms) = True - and economicTerms -> payout -> interestRatePayout count = 2 - and economicTerms -> payout -> interestRatePayout -> paymentDates count = 2 - and Qualify_BaseProduct_CrossCurrency( economicTerms ) = False - and economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate is absent + set is_product: + Qualify_AssetClass_InterestRate(economicTerms) = True + and economicTerms -> payout -> interestRatePayout count = 2 + and economicTerms -> payout -> interestRatePayout -> paymentDates count = 2 + and Qualify_BaseProduct_CrossCurrency(economicTerms) = False + and economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate is absent func Qualify_BaseProduct_CrossCurrency: <"Qualifies a product as having the Base Product classification Cross Currency."> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - set is_product: - Qualify_AssetClass_InterestRate(economicTerms) = True - and economicTerms -> payout -> interestRatePayout count = 2 - and ( - economicTerms -> payout -> interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency distinct count = 2 - or ( - economicTerms -> payout -> interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency exists - and economicTerms -> payout -> interestRatePayout -> priceQuantity -> quantityMultiplier -> fxLinkedNotionalSchedule -> varyingNotionalCurrency exists - and economicTerms -> payout -> interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency <> economicTerms -> payout -> interestRatePayout -> priceQuantity -> quantityMultiplier -> fxLinkedNotionalSchedule -> varyingNotionalCurrency - ) - ) + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + Qualify_AssetClass_InterestRate(economicTerms) = True + and economicTerms -> payout -> interestRatePayout count = 2 + and (economicTerms -> payout -> interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency + distinct + count = 2 + or (economicTerms -> payout -> interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency exists + and economicTerms -> payout -> interestRatePayout -> priceQuantity -> quantityMultiplier -> fxLinkedNotionalSchedule -> varyingNotionalCurrency exists + and economicTerms -> payout -> interestRatePayout -> priceQuantity -> quantitySchedule -> unit -> currency <> economicTerms -> payout -> interestRatePayout -> priceQuantity -> quantityMultiplier -> fxLinkedNotionalSchedule -> varyingNotionalCurrency)) func Qualify_BaseProduct_Fra: <"Qualifies a product as having the Base Product classification Forward Rate Agreement"> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - set is_product: + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: Qualify_AssetClass_InterestRate(economicTerms) = True and economicTerms -> payout -> interestRatePayout count = 2 and economicTerms -> payout -> interestRatePayout -> paymentDate count = 2 and economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate is absent func Qualify_BaseProduct_Inflation: <"Qualifies a product as having the Base Product classification Inflation Swap"> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - set is_product: - Qualify_AssetClass_InterestRate(economicTerms) = True - and economicTerms -> payout -> interestRatePayout count = 2 - and economicTerms -> payout -> interestRatePayout -> paymentDates count = 2 - and economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate exists + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + Qualify_AssetClass_InterestRate(economicTerms) = True + and economicTerms -> payout -> interestRatePayout count = 2 + and economicTerms -> payout -> interestRatePayout -> paymentDates count = 2 + and economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate exists func Qualify_SubProduct_FixedFloat: <"Qualifies a product as having the Sub Product classification Fixed Float"> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - - set is_product: - (economicTerms -> payout -> interestRatePayout -> rateSpecification -> fixedRate count = 1 - and economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate count = 1) - or - (economicTerms -> payout -> interestRatePayout -> rateSpecification -> fixedRate count = 1 - and economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate count = 1) - or - ((economicTerms -> payout -> interestRatePayout -> rateSpecification -> fixedRate is absent - and economicTerms -> payout -> interestRatePayout -> principalPayment -> finalPayment only-element = True) - and (economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate count = 1 - or economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate count = 1)) - + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + (economicTerms -> payout -> interestRatePayout -> rateSpecification -> fixedRate count = 1 + and economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate count = 1) + or (economicTerms -> payout -> interestRatePayout -> rateSpecification -> fixedRate count = 1 + and economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate count = 1) + or ((economicTerms -> payout -> interestRatePayout -> rateSpecification -> fixedRate is absent + and economicTerms -> payout -> interestRatePayout -> principalPayment -> finalPayment only-element = True) + and (economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate count = 1 + or economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate count = 1)) func Qualify_SubProduct_FixedFixed: <"Qualifies a product as having the Sub Product classification Fixed Float"> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - set is_product: - economicTerms -> payout -> interestRatePayout -> rateSpecification -> fixedRate count = 2 + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + economicTerms -> payout -> interestRatePayout -> rateSpecification -> fixedRate count = 2 func Qualify_SubProduct_Basis: <"Qualifies a product as having the Sub Product classification Basis"> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - set is_product: - economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate count = 2 - or - (economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate count = 1 - and economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate count = 1) - or - economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate count = 2 + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate count = 2 + or (economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate count = 1 + and economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate count = 1) + or economicTerms -> payout -> interestRatePayout -> rateSpecification -> inflationRate count = 2 func Qualify_Transaction_ZeroCoupon: <"Qualifies a product as having the Transaction classification Zero Coupon"> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - set is_product: - economicTerms -> payout -> interestRatePayout -> paymentDates -> paymentFrequency -> periodMultiplier all = 1 - and economicTerms -> payout -> interestRatePayout -> paymentDates -> paymentFrequency -> period all = PeriodExtendedEnum -> T + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + economicTerms -> payout -> interestRatePayout -> paymentDates -> paymentFrequency -> periodMultiplier all = 1 + and economicTerms -> payout -> interestRatePayout -> paymentDates -> paymentFrequency -> period all = PeriodExtendedEnum -> T func Qualify_Transaction_YoY: <"Qualifies a product as having the Transaction classification Year on Year"> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - set is_product: - economicTerms -> payout -> interestRatePayout -> paymentDates -> paymentFrequency -> periodMultiplier all = 1 - and economicTerms -> payout -> interestRatePayout -> paymentDates -> paymentFrequency -> period all = PeriodExtendedEnum -> Y + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + economicTerms -> payout -> interestRatePayout -> paymentDates -> paymentFrequency -> periodMultiplier all = 1 + and economicTerms -> payout -> interestRatePayout -> paymentDates -> paymentFrequency -> period all = PeriodExtendedEnum -> Y func Qualify_Transaction_OIS: <"Qualifies a product as having the Transaction classification OIS"> - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - - alias floatingRateIndex: - economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate -> rateOption ->floatingRateIndex - - set is_product: - floatingRateIndex any = FloatingRateIndexEnum -> AUD_AONIA_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> AUD_AONIA_OIS_Compound_1 - or floatingRateIndex any = FloatingRateIndexEnum -> AUD_AONIA_OIS_COMPOUND_SwapMarker - or floatingRateIndex any = FloatingRateIndexEnum -> CAD_CORRA_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> CAD_CORRA_OIS_Compound_1 - or floatingRateIndex any = FloatingRateIndexEnum -> CHF_OIS_11_00_ICAP - or floatingRateIndex any = FloatingRateIndexEnum -> CHF_SARON_OIS_Compound_1 - or floatingRateIndex any = FloatingRateIndexEnum -> CHF_SARON_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> CHF_TOIS_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> CNY_SHIBOR_OIS_Compound - or floatingRateIndex any = FloatingRateIndexEnum -> CNY_Shibor_OIS_Compounding - or floatingRateIndex any = FloatingRateIndexEnum -> COP_IBR_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> COP_IBR_OIS_Compound_1 - or floatingRateIndex any = FloatingRateIndexEnum -> CZK_CZEONIA_OIS_Compound - or floatingRateIndex any = FloatingRateIndexEnum -> DKK_DKKOIS_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> DKK_Tom_Next_OIS_Compound - or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_10_00_BGCANTOR - or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_10_00_ICAP - or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_10_00_TRADITION - or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_11_00_ICAP - or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_4_15_TRADITION - or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_Compound_1 - or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_COMPOUND_Bloomberg - or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EURONIA_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EURONIA_OIS_Compound_1 - or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EuroSTR_OIS_Compound - or floatingRateIndex any = FloatingRateIndexEnum -> GBP_RONIA_OIS_Compound - or floatingRateIndex any = FloatingRateIndexEnum -> GBP_SONIA_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> GBP_SONIA_OIS_11_00_ICAP - or floatingRateIndex any = FloatingRateIndexEnum -> GBP_SONIA_OIS_11_00_TRADITION - or floatingRateIndex any = FloatingRateIndexEnum -> GBP_SONIA_OIS_4_15_TRADITION - or floatingRateIndex any = FloatingRateIndexEnum -> GBP_SONIA_OIS_Compound - or floatingRateIndex any = FloatingRateIndexEnum -> GBP_WMBA_RONIA_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> GBP_WMBA_SONIA_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> HKD_HONIA_OIS_Compound - or floatingRateIndex any = FloatingRateIndexEnum -> HKD_HONIX_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> INR_FBIL_MIBOR_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> INR_MIBOR_OIS_Compound_1 - or floatingRateIndex any = FloatingRateIndexEnum -> INR_MIBOR_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> INR_MIOIS - or floatingRateIndex any = FloatingRateIndexEnum -> INR_MITOR_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> JPY_OIS_11_00_ICAP - or floatingRateIndex any = FloatingRateIndexEnum -> JPY_OIS_11_00_TRADITION - or floatingRateIndex any = FloatingRateIndexEnum -> JPY_OIS_3_00_TRADITION - or floatingRateIndex any = FloatingRateIndexEnum -> JPY_TONA_OIS_Compound_1 - or floatingRateIndex any = FloatingRateIndexEnum -> JPY_TONA_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> NOK_NOWA_OIS_Compound - or floatingRateIndex any = FloatingRateIndexEnum -> NZD_NZIONA_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> NZD_NZIONA_OIS_Compound_1 - or floatingRateIndex any = FloatingRateIndexEnum -> PLN_POLONIA_OIS_Compound_1 - or floatingRateIndex any = FloatingRateIndexEnum -> PLN_POLONIA_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> REPOFUNDS_RATE_FRANCE_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> REPOFUNDS_RATE_GERMANY_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> REPOFUNDS_RATE_ITALY_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> RUB_RUONIA_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> RUB_RUONIA_OIS_Compound_1 - or floatingRateIndex any = FloatingRateIndexEnum -> SEK_SIOR_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> SEK_STIBOR_OIS_Compound - or floatingRateIndex any = FloatingRateIndexEnum -> SGD_SONAR_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> SGD_SONAR_OIS_VWAP_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> SGD_SORA_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> SGD_SORA_OIS_Compound - or floatingRateIndex any = FloatingRateIndexEnum -> THB_THOR_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> THB_THOR_OIS_Compound - or floatingRateIndex any = FloatingRateIndexEnum -> TRY_TLREF_OIS_Compound_1 - or floatingRateIndex any = FloatingRateIndexEnum -> TRY_TLREF_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> USD_Federal_Funds_H_15_OIS_COMPOUND - or floatingRateIndex any = FloatingRateIndexEnum -> USD_Federal_Funds_OIS_Compound - or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_11_00_BGCANTOR - or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_11_00_LON_ICAP - or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_11_00_NY_ICAP - or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_11_00_TRADITION - or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_3_00_BGCANTOR - or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_3_00_NY_ICAP - or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_4_00_TRADITION - or floatingRateIndex any = FloatingRateIndexEnum -> USD_SOFR_OIS_Compound + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + + alias floatingRateIndex: + economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate -> rateOption -> floatingRateIndex + + set is_product: + floatingRateIndex any = FloatingRateIndexEnum -> AUD_AONIA_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> AUD_AONIA_OIS_Compound_1 + or floatingRateIndex any = FloatingRateIndexEnum -> AUD_AONIA_OIS_COMPOUND_SwapMarker + or floatingRateIndex any = FloatingRateIndexEnum -> CAD_CORRA_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> CAD_CORRA_OIS_Compound_1 + or floatingRateIndex any = FloatingRateIndexEnum -> CHF_OIS_11_00_ICAP + or floatingRateIndex any = FloatingRateIndexEnum -> CHF_SARON_OIS_Compound_1 + or floatingRateIndex any = FloatingRateIndexEnum -> CHF_SARON_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> CHF_TOIS_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> CNY_SHIBOR_OIS_Compound + or floatingRateIndex any = FloatingRateIndexEnum -> CNY_Shibor_OIS_Compounding + or floatingRateIndex any = FloatingRateIndexEnum -> COP_IBR_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> COP_IBR_OIS_Compound_1 + or floatingRateIndex any = FloatingRateIndexEnum -> CZK_CZEONIA_OIS_Compound + or floatingRateIndex any = FloatingRateIndexEnum -> DKK_DKKOIS_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> DKK_Tom_Next_OIS_Compound + or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_10_00_BGCANTOR + or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_10_00_ICAP + or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_10_00_TRADITION + or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_11_00_ICAP + or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_4_15_TRADITION + or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_Compound_1 + or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EONIA_OIS_COMPOUND_Bloomberg + or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EURONIA_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EURONIA_OIS_Compound_1 + or floatingRateIndex any = FloatingRateIndexEnum -> EUR_EuroSTR_OIS_Compound + or floatingRateIndex any = FloatingRateIndexEnum -> GBP_RONIA_OIS_Compound + or floatingRateIndex any = FloatingRateIndexEnum -> GBP_SONIA_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> GBP_SONIA_OIS_11_00_ICAP + or floatingRateIndex any = FloatingRateIndexEnum -> GBP_SONIA_OIS_11_00_TRADITION + or floatingRateIndex any = FloatingRateIndexEnum -> GBP_SONIA_OIS_4_15_TRADITION + or floatingRateIndex any = FloatingRateIndexEnum -> GBP_SONIA_OIS_Compound + or floatingRateIndex any = FloatingRateIndexEnum -> GBP_WMBA_RONIA_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> GBP_WMBA_SONIA_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> HKD_HONIA_OIS_Compound + or floatingRateIndex any = FloatingRateIndexEnum -> HKD_HONIX_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> INR_FBIL_MIBOR_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> INR_MIBOR_OIS_Compound_1 + or floatingRateIndex any = FloatingRateIndexEnum -> INR_MIBOR_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> INR_MIOIS + or floatingRateIndex any = FloatingRateIndexEnum -> INR_MITOR_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> JPY_OIS_11_00_ICAP + or floatingRateIndex any = FloatingRateIndexEnum -> JPY_OIS_11_00_TRADITION + or floatingRateIndex any = FloatingRateIndexEnum -> JPY_OIS_3_00_TRADITION + or floatingRateIndex any = FloatingRateIndexEnum -> JPY_TONA_OIS_Compound_1 + or floatingRateIndex any = FloatingRateIndexEnum -> JPY_TONA_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> NOK_NOWA_OIS_Compound + or floatingRateIndex any = FloatingRateIndexEnum -> NZD_NZIONA_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> NZD_NZIONA_OIS_Compound_1 + or floatingRateIndex any = FloatingRateIndexEnum -> PLN_POLONIA_OIS_Compound_1 + or floatingRateIndex any = FloatingRateIndexEnum -> PLN_POLONIA_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> REPOFUNDS_RATE_FRANCE_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> REPOFUNDS_RATE_GERMANY_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> REPOFUNDS_RATE_ITALY_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> RUB_RUONIA_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> RUB_RUONIA_OIS_Compound_1 + or floatingRateIndex any = FloatingRateIndexEnum -> SEK_SIOR_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> SEK_STIBOR_OIS_Compound + or floatingRateIndex any = FloatingRateIndexEnum -> SGD_SONAR_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> SGD_SONAR_OIS_VWAP_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> SGD_SORA_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> SGD_SORA_OIS_Compound + or floatingRateIndex any = FloatingRateIndexEnum -> THB_THOR_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> THB_THOR_OIS_Compound + or floatingRateIndex any = FloatingRateIndexEnum -> TRY_TLREF_OIS_Compound_1 + or floatingRateIndex any = FloatingRateIndexEnum -> TRY_TLREF_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> USD_Federal_Funds_H_15_OIS_COMPOUND + or floatingRateIndex any = FloatingRateIndexEnum -> USD_Federal_Funds_OIS_Compound + or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_11_00_BGCANTOR + or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_11_00_LON_ICAP + or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_11_00_NY_ICAP + or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_11_00_TRADITION + or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_3_00_BGCANTOR + or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_3_00_NY_ICAP + or floatingRateIndex any = FloatingRateIndexEnum -> USD_OIS_4_00_TRADITION + or floatingRateIndex any = FloatingRateIndexEnum -> USD_SOFR_OIS_Compound func Qualify_InterestRate_IRSwap_FixedFloat: <"Qualifies a product as a Fixed-Float Interest Rate Swap based on the economic terms and the following criteria: 1) An interest rate product with one fixed and one floating leg and more than one payment, 2) without inflation features or cross-currency features or 'zero coupon' features, and 3) where the floating leg is not based on an OIS index."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "InterestRate_IRSwap_FixedFloat"] - [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_FixedFloat"] - - set is_product: - Qualify_BaseProduct_IRSwap(economicTerms) = True - and Qualify_SubProduct_FixedFloat(economicTerms) = True - and Qualify_Transaction_ZeroCoupon(economicTerms) = False - and Qualify_Transaction_OIS(economicTerms) = False + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "InterestRate_IRSwap_FixedFloat"] + [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_FixedFloat"] + + set is_product: + Qualify_BaseProduct_IRSwap(economicTerms) = True + and Qualify_SubProduct_FixedFloat(economicTerms) = True + and Qualify_Transaction_ZeroCoupon(economicTerms) = False + and Qualify_Transaction_OIS(economicTerms) = False func Qualify_InterestRate_IRSwap_FixedFixed: <"Qualifies a product as a Fixed-Fixed Interest Rate Swap based on the economic terms and the following criteria: 1) An interest rate product with two fixed legs and more than one payment and 2) without inflation features or cross-currency features but could have 'zero coupon' features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "InterestRate_IRSwap_FixedFixed"] - [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_FixedFixed"] - set is_product: - Qualify_BaseProduct_IRSwap(economicTerms) = True - and Qualify_SubProduct_FixedFixed(economicTerms) = True + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "InterestRate_IRSwap_FixedFixed"] + [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_FixedFixed"] + set is_product: + Qualify_BaseProduct_IRSwap(economicTerms) = True + and Qualify_SubProduct_FixedFixed(economicTerms) = True func Qualify_InterestRate_IRSwap_Basis: <"Qualifies a product as a Basis (Float-Float) Interest Rate Swap based on the economic terms and the following criteria: 1) An interest rate product with two floating legs and more than one payment, 2) without inflation features or cross-currency features but could have 'zero coupon' features, and 3) where neither floating leg is based on an OIS index."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "InterestRate_IRSwap_Basis"] - [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_Basis"] + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "InterestRate_IRSwap_Basis"] + [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_Basis"] - set is_product: - Qualify_BaseProduct_IRSwap(economicTerms) = True - and Qualify_SubProduct_Basis(economicTerms) = True - and Qualify_Transaction_OIS(economicTerms) = False + set is_product: + Qualify_BaseProduct_IRSwap(economicTerms) = True + and Qualify_SubProduct_Basis(economicTerms) = True + and Qualify_Transaction_OIS(economicTerms) = False func Qualify_InterestRate_IRSwap_FixedFloat_ZeroCoupon: <"Qualifies a product as a Fixed-Float Zero Coupon Interest Rate Swap based on the economic terms and the following criteria: 1) An interest rate product with one fixed and one floating leg and more than one payment, 2) without inflation features or cross-currency features, and 3) where the floating leg is not based on an OIS index."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_FixedFloat_ZeroCoupon"] + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_FixedFloat_ZeroCoupon"] - set is_product: - Qualify_BaseProduct_IRSwap(economicTerms) = True - and Qualify_SubProduct_FixedFloat(economicTerms) = True - and Qualify_Transaction_ZeroCoupon(economicTerms) = True - and Qualify_Transaction_OIS(economicTerms) = False + set is_product: + Qualify_BaseProduct_IRSwap(economicTerms) = True + and Qualify_SubProduct_FixedFloat(economicTerms) = True + and Qualify_Transaction_ZeroCoupon(economicTerms) = True + and Qualify_Transaction_OIS(economicTerms) = False func Qualify_InterestRate_IRSwap_FixedFloat_OIS: <"Qualifies a product as a Fixed-Float OIS Interest Rate Swap based on the economic terms and the following criteria: 1) An interest rate product with one fixed and one floating leg and more than one payment and where the floating leg is based on an OIS index, 2) without inflation features or cross-currency features, and 3) could include 'zero coupon' features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_FixedFloat_OIS"] + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_FixedFloat_OIS"] - set is_product: - Qualify_BaseProduct_IRSwap(economicTerms) = True - and Qualify_SubProduct_FixedFloat(economicTerms) = True - and Qualify_Transaction_OIS(economicTerms) = True + set is_product: + Qualify_BaseProduct_IRSwap(economicTerms) = True + and Qualify_SubProduct_FixedFloat(economicTerms) = True + and Qualify_Transaction_OIS(economicTerms) = True func Qualify_InterestRate_IRSwap_Basis_OIS: <"Qualifies a product as a Basis (Fixed-Float) OIS Interest Rate Swap based on the economic terms and the following criteria: 1) An interest rate product with two floating legs and more than one payment and where one or both the floating leg is based on an OIS index, 2) without inflation features or cross-currency features, and 3) could include 'zero coupon' features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_Basis"] + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_Basis"] - set is_product: - Qualify_BaseProduct_IRSwap(economicTerms) = True - and Qualify_SubProduct_Basis(economicTerms) = True - and Qualify_Transaction_OIS(economicTerms) = True + set is_product: + Qualify_BaseProduct_IRSwap(economicTerms) = True + and Qualify_SubProduct_Basis(economicTerms) = True + and Qualify_Transaction_OIS(economicTerms) = True func Qualify_InterestRate_CrossCurrency_FixedFloat: <"Qualifies a product as a Fixed-Float Cross-Currency Interest Rate Swap based on the economic terms and the following criteria: 1) An interest rate product with one fixed and one floating leg and a cross-currency feature and more than one payment, 2) without inflation features and 3) could be a 'zero coupon' and the floating leg index could be OIS or non-OIS."> - [qualification Product] - - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "InterestRate_CrossCurrency_FixedFloat"] + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "InterestRate_CrossCurrency_FixedFloat"] - set is_product: - Qualify_BaseProduct_CrossCurrency(economicTerms) = True - and Qualify_SubProduct_FixedFloat(economicTerms) = True + set is_product: + Qualify_BaseProduct_CrossCurrency(economicTerms) = True + and Qualify_SubProduct_FixedFloat(economicTerms) = True func Qualify_InterestRate_CrossCurrency_Basis: <"Qualifies a product as a Basis (Float-Float) Cross Currency Interest Rate Swap based on the economic terms and the following criteria: 1) An interest rate product with two floating legs, a cross-currency feature in one or both legs, and more than one payment, 2) but without inflation features, and 3) could be a 'zero coupon' and floating leg index could be OIS or non-OIS."> - [qualification Product] - - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "InterestRate_CrossCurrency_Basis"] - [synonym ISDA_Taxonomy_v2 value "InterestRate_CrossCurrency_Basis"] + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "InterestRate_CrossCurrency_Basis"] + [synonym ISDA_Taxonomy_v2 value "InterestRate_CrossCurrency_Basis"] - set is_product: - Qualify_BaseProduct_CrossCurrency(economicTerms) = True - and Qualify_SubProduct_Basis(economicTerms) = True + set is_product: + Qualify_BaseProduct_CrossCurrency(economicTerms) = True + and Qualify_SubProduct_Basis(economicTerms) = True func Qualify_InterestRate_CrossCurrency_FixedFixed: <"Qualifies a product as a Fixed-Fixed Cross-Currency Interest Rate Swap based on the economic terms and the following criteria: 1) An interest rate product with two fixed legs and a cross-currency feature and more than one payment, 2) without inflation features and 3) could be a 'zero coupon'"> - [qualification Product] - - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "InterestRate_CrossCurrency_FixedFixed"] - [synonym ISDA_Taxonomy_v2 value "InterestRate_CrossCurrency_FixedFixed"] + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "InterestRate_CrossCurrency_FixedFixed"] + [synonym ISDA_Taxonomy_v2 value "InterestRate_CrossCurrency_FixedFixed"] - set is_product: - Qualify_BaseProduct_CrossCurrency(economicTerms) = True - and Qualify_SubProduct_FixedFixed(economicTerms) = True + set is_product: + Qualify_BaseProduct_CrossCurrency(economicTerms) = True + and Qualify_SubProduct_FixedFixed(economicTerms) = True func Qualify_InterestRate_InflationSwap_FixedFloat_YearOn_Year: <"Qualifies a product as a Fixed-Float Annual Reset Inflation Swap based on the economic terms and the following criteria: 1) An interest rate product with one fixed and one inflation rate leg and more than one payment, and 2) without cross-currency features or 'zero coupon' features."> - [qualification Product] - - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_Inflation"] + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_Inflation"] - set is_product: - Qualify_BaseProduct_Inflation(economicTerms) = True - and Qualify_BaseProduct_CrossCurrency( economicTerms ) = False - and Qualify_SubProduct_FixedFloat(economicTerms) = True - and Qualify_Transaction_YoY(economicTerms) = True + set is_product: + Qualify_BaseProduct_Inflation(economicTerms) = True + and Qualify_BaseProduct_CrossCurrency(economicTerms) = False + and Qualify_SubProduct_FixedFloat(economicTerms) = True + and Qualify_Transaction_YoY(economicTerms) = True //TH Review -> This product exists at ISDA Taxonomy V2 but has no match in CDM yet. The proposal needs to be completed adding the composable utility functions to improve qualification for IR inflation products /*func Qualify_InterestRate_Inflation: <"Qualifies a product as a Fixed-Float Inflation Swap with a single accrual period based on the economic terms and the following criteria: 1) An interest rate product with one fixed and one inflation rate leg and more than one payment, and 2) without cross-currency features."> + * [qualification Product] + + * inputs: economicTerms EconomicTerms (1..1) + * output: is_product boolean (1..1) + * [synonym ISDA_Taxonomy_v2 value "InterestRate_Inflation"] + * + * set is_product: + * Qualify_BaseProduct_Inflation(economicTerms) = True + * and Qualify_InterestRate_InflationSwap_FixedFloat_ZeroCoupon (economicTerms) = False + * and Qualify_InterestRate_InflationSwap_FixedFloat_YearOn_Year (economicTerms) = False + * and Qualify_InterestRate_InflationSwap_Basis_ZeroCoupon (economicTerms) = False + * and Qualify_InterestRate_InflationSwap_Basis_YearOn_Year (economicTerms) = False + */ +func Qualify_InterestRate_InflationSwap_FixedFloat_ZeroCoupon: <"Qualifies a product as a Fixed-Float Inflation Swap with a single accrual period based on the economic terms and the following criteria: 1) An interest rate product with one fixed and one inflation rate leg and more than one payment, and 2) without cross-currency features."> [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_Inflation"] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v2 value "InterestRate_Inflation"] - set is_product: Qualify_BaseProduct_Inflation(economicTerms) = True - and Qualify_InterestRate_InflationSwap_FixedFloat_ZeroCoupon (economicTerms) = False - and Qualify_InterestRate_InflationSwap_FixedFloat_YearOn_Year (economicTerms) = False - and Qualify_InterestRate_InflationSwap_Basis_ZeroCoupon (economicTerms) = False - and Qualify_InterestRate_InflationSwap_Basis_YearOn_Year (economicTerms) = False -*/ -func Qualify_InterestRate_InflationSwap_FixedFloat_ZeroCoupon: <"Qualifies a product as a Fixed-Float Inflation Swap with a single accrual period based on the economic terms and the following criteria: 1) An interest rate product with one fixed and one inflation rate leg and more than one payment, and 2) without cross-currency features."> - [qualification Product] - - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v2 value "InterestRate_IRSwap_Inflation"] - - set is_product: - Qualify_BaseProduct_Inflation(economicTerms) = True - and Qualify_BaseProduct_CrossCurrency( economicTerms ) = False - and Qualify_SubProduct_FixedFloat(economicTerms) = True - and Qualify_Transaction_ZeroCoupon(economicTerms) = True + and Qualify_BaseProduct_CrossCurrency(economicTerms) = False + and Qualify_SubProduct_FixedFloat(economicTerms) = True + and Qualify_Transaction_ZeroCoupon(economicTerms) = True func Qualify_InterestRate_InflationSwap_Basis_YearOn_Year: <"Qualifies a product as a Basis (Float-Float) Annual Reset Inflation Swap based on the economic terms and the following criteria: 1) An interest rate product with one floating interest rate leg and one inflation rate leg and more than one payment, and 2) without cross-currency features or 'zero coupon' features."> - [qualification Product] - - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "InterestRate_IRSwap_Inflation"] + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "InterestRate_IRSwap_Inflation"] - set is_product: - Qualify_BaseProduct_Inflation(economicTerms) = True - and Qualify_BaseProduct_CrossCurrency( economicTerms ) = False - and Qualify_SubProduct_Basis(economicTerms) = True - and Qualify_Transaction_YoY(economicTerms) = True + set is_product: + Qualify_BaseProduct_Inflation(economicTerms) = True + and Qualify_BaseProduct_CrossCurrency(economicTerms) = False + and Qualify_SubProduct_Basis(economicTerms) = True + and Qualify_Transaction_YoY(economicTerms) = True func Qualify_InterestRate_InflationSwap_Basis_ZeroCoupon: <"Qualifies a product as a Basis (Float-Float) Inflation Swap with a single accrual period based on the economic terms and the following criteria: 1) An interest rate product with one floating interest rate leg and one inflation rate leg and more than one payment, and 2) without cross-currency features or 'zero coupon' features."> - [qualification Product] - - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "InterestRate_IRSwap_Inflation"] + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "InterestRate_IRSwap_Inflation"] - set is_product: - Qualify_BaseProduct_Inflation(economicTerms) = True - and Qualify_BaseProduct_CrossCurrency( economicTerms ) = False - and Qualify_SubProduct_Basis(economicTerms) = True - and Qualify_Transaction_ZeroCoupon(economicTerms) = True + set is_product: + Qualify_BaseProduct_Inflation(economicTerms) = True + and Qualify_BaseProduct_CrossCurrency(economicTerms) = False + and Qualify_SubProduct_Basis(economicTerms) = True + and Qualify_Transaction_ZeroCoupon(economicTerms) = True func Qualify_InterestRate_Fra: <"Qualifies the product as a Floating Rate Agreement based on the economic terms and the following criteria: 1) An interest rate product with one fixed and one floating leg, each of which has a single payment, and 2) could include a cross-currency feature, and the floating rate leg could be based OIS index."> - [qualification Product] - - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "InterestRate_Fra"] - [synonym ISDA_Taxonomy_v1 value "InterestRate_Fra"] - - set is_product: - Qualify_AssetClass_InterestRate(economicTerms) = True - and economicTerms -> payout -> interestRatePayout -> rateSpecification -> fixedRate count = 1 - and economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate count = 1 - and economicTerms -> payout -> interestRatePayout -> paymentDate count = 2 - -func Qualify_InterestRate_CapFloor: <"Qualifies a product as an interest rate cap, interest rate floor, or an interest rate collar based on the economic terms and the following criteria: 1) An interest rate product with one one leg that includes a cap and/or a floor."> - [qualification Product] + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "InterestRate_Fra"] + [synonym ISDA_Taxonomy_v1 value "InterestRate_Fra"] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "InterestRate_CapFloor"] - [synonym ISDA_Taxonomy_v2 value "InterestRate_CapFloor"] + set is_product: + Qualify_AssetClass_InterestRate(economicTerms) = True + and economicTerms -> payout -> interestRatePayout -> rateSpecification -> fixedRate count = 1 + and economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate count = 1 + and economicTerms -> payout -> interestRatePayout -> paymentDate count = 2 - set is_product: - Qualify_AssetClass_InterestRate(economicTerms) = True - and economicTerms -> payout -> interestRatePayout count = 1 +func Qualify_InterestRate_CapFloor: <"Qualifies a product as an interest rate cap, interest rate floor, or an interest rate collar based on the economic terms and the following criteria: 1) An interest rate product with one one leg that includes a cap and/or a floor."> + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "InterestRate_CapFloor"] + [synonym ISDA_Taxonomy_v2 value "InterestRate_CapFloor"] - // qualifies the product as having a cap and/or floor in the interestRatePayout - and economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate -> capRateSchedule exists - or economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate -> floorRateSchedule exists + set is_product: + Qualify_AssetClass_InterestRate(economicTerms) = True + and economicTerms -> payout -> interestRatePayout count = 1 + // qualifies the product as having a cap and/or floor in the interestRatePayout + and economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate -> capRateSchedule exists + or economicTerms -> payout -> interestRatePayout -> rateSpecification -> floatingRate -> floorRateSchedule exists func Qualify_InterestRate_Option_Swaption: <"Qualifies a product as a Swaption that can be exercised into an Interest Rate Swap, which could be any type of interest rate product with two legs based on the economic terms."> [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) [synonym ISDA_Taxonomy_v1 value "InterestRate_Option_Swaption"] [synonym ISDA_Taxonomy_v2 value "InterestRate_Option_Swaption"] set is_product: Qualify_AssetClass_InterestRate(economicTerms) = True - // qualifies that only the option payout exists and all other payouts are absent - and economicTerms -> payout -> optionPayout only exists - and Qualify_AssetClass_InterestRate (economicTerms -> payout -> optionPayout only-element -> underlier -> contractualProduct -> economicTerms) = True + // qualifies that only the option payout exists and all other payouts are absent + and economicTerms -> payout -> optionPayout only exists + and Qualify_AssetClass_InterestRate( + economicTerms -> payout -> optionPayout only-element -> underlier -> contractualProduct -> economicTerms + ) = True func Qualify_InterestRate_Option_DebtOption: <"Qualifies a product as a Option that can be exercised into an Debt Product based on the economic terms."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "InterestRate_Option_DebtOption"] - [synonym ISDA_Taxonomy_v2 value "InterestRate_Option_DebtOption"] - alias optionPayout: economicTerms -> payout -> optionPayout - set is_product: - Qualify_AssetClass_InterestRate (economicTerms) = True - // qualifies that only the option payout exists and all other payouts are absent - and economicTerms -> payout -> optionPayout only exists - // qualifies the underlyer of the option as a debt security - and optionPayout -> underlier -> security -> securityType all = SecurityTypeEnum -> Debt + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "InterestRate_Option_DebtOption"] + [synonym ISDA_Taxonomy_v2 value "InterestRate_Option_DebtOption"] + alias optionPayout: economicTerms -> payout -> optionPayout + set is_product: + Qualify_AssetClass_InterestRate(economicTerms) = True + // qualifies that only the option payout exists and all other payouts are absent + and economicTerms -> payout -> optionPayout only exists + // qualifies the underlyer of the option as a debt security + and optionPayout -> underlier -> security -> securityType all = SecurityTypeEnum -> Debt func Qualify_InterestRate_Forward_Debt: <"Qualifies a product as Interest Rate Bond Forward based on economic terms, which is defined as a transaction in which one party agrees to pay an agreed price for a specified amount of a bond of an issuer or a basket of bonds of several issuers at a future date and the other party agrees to pay a price for the same amount of the same bond to be set on a specified date in the future."> [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "InterestRate_Forward_Debt"] - [synonym ISDA_Taxonomy_v2 value "InterestRate_Forward_Debt"] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "InterestRate_Forward_Debt"] + [synonym ISDA_Taxonomy_v2 value "InterestRate_Forward_Debt"] alias forwardPayout: economicTerms -> payout -> forwardPayout only-element set is_product: Qualify_AssetClass_InterestRate(economicTerms) = True and forwardPayout -> underlier -> security only exists func Qualify_ForeignExchange_Spot_Forward: <"Qualifies a product as Foreign Exchange based on economic terms, which is defined as an agreement to buy one currency against the delivery of another currency at a rate set on the trade date for settlement on a specified date in the future. Dependent on conventions specific to local markets the product could be considered either Spot or Forward."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "ForeignExchange_Forward"] - [synonym ISDA_Taxonomy_v1 value "ForeignExchange_Spot"] - [synonym ISDA_Taxonomy_v2 value "ForeignExchange_Forward"] - [synonym ISDA_Taxonomy_v2 value "ForeignExchange_Spot"] - set is_product: - Qualify_AssetClass_ForeignExchange (economicTerms) = True - and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange only exists - and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange count = 1 - and economicTerms -> payout -> forwardPayout -> settlementTerms -> cashSettlementTerms is absent + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "ForeignExchange_Forward"] + [synonym ISDA_Taxonomy_v1 value "ForeignExchange_Spot"] + [synonym ISDA_Taxonomy_v2 value "ForeignExchange_Forward"] + [synonym ISDA_Taxonomy_v2 value "ForeignExchange_Spot"] + set is_product: + Qualify_AssetClass_ForeignExchange(economicTerms) = True + and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange only exists + and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange count = 1 + and economicTerms -> payout -> forwardPayout -> settlementTerms -> cashSettlementTerms is absent func Qualify_ForeignExchange_Swap: <"Qualifies a product as Foreign Exchange Swap based on economic terms, which is defined as a contract in which one party borrows one currency from, and simultaneously lends another to, the second party. Each party uses the repayment obligation to its counterparty as collateral and the amount of repayment is fixed at the FX forward rate as of the start of the contract."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - set is_product: - Qualify_AssetClass_ForeignExchange (economicTerms) = True - and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange only exists - and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange count = 2 - and economicTerms -> payout -> forwardPayout -> settlementTerms -> cashSettlementTerms is absent + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + Qualify_AssetClass_ForeignExchange(economicTerms) = True + and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange only exists + and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange count = 2 + and economicTerms -> payout -> forwardPayout -> settlementTerms -> cashSettlementTerms is absent func Qualify_ForeignExchange_NDF: <"Qualifies a product as Foreign Exchange Non-Deliverable Forward based on economic terms, which is defined as a Forward transaction where the notional amount of one of the currencies (the reference currency) is converted into the other currency (the settlement currency) at a spot foreign exchange rate that is observed on a valuation date prior to the settlement date, and a single net payment in the settlement currency is made on the settlement date. No payment or account transfer takes place in the reference currency."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "ForeignExchange_NDF"] - [synonym ISDA_Taxonomy_v2 value "ForeignExchange_NDF"] - set is_product: - Qualify_AssetClass_ForeignExchange (economicTerms) = True - and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange only exists - and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange count = 1 - and economicTerms -> payout -> forwardPayout -> settlementTerms -> cashSettlementTerms exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "ForeignExchange_NDF"] + [synonym ISDA_Taxonomy_v2 value "ForeignExchange_NDF"] + set is_product: + Qualify_AssetClass_ForeignExchange(economicTerms) = True + and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange only exists + and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange count = 1 + and economicTerms -> payout -> forwardPayout -> settlementTerms -> cashSettlementTerms exists func Qualify_ForeignExchange_ParameterReturnVariance: <"Qualifies a product as Foreign Exchange Swap for which the performance is based on the variance of a foreign exhange underlier. The determination of the qualification is based on the economic terms and the following criteria: 1) Is a Foreign Exchange product (the underlier is foreign exchange) 2) with only one performance leg 3) which has variance return terms, 4) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "ForeignExchange_SimpleExotic_Vol/Var"] - [synonym ISDA_Taxonomy_v2 value "ForeignExchange_SimpleExotic_Vol/Var"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - Qualify_AssetClass_ForeignExchange (economicTerms) = True - // qualifies that the product is FX (i.e.: has only foreign Exchange underliers) - and performancePayout -> observationTerms -> observable -> currencyPair only exists and - - // qualifies that there is a single leg of performance type - economicTerms -> payout -> performancePayout only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the performance leg has varianceReturnTerms - performancePayout -> returnTerms -> varianceReturnTerms only exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "ForeignExchange_SimpleExotic_Vol/Var"] + [synonym ISDA_Taxonomy_v2 value "ForeignExchange_SimpleExotic_Vol/Var"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + Qualify_AssetClass_ForeignExchange(economicTerms) = True + // qualifies that the product is FX (i.e.: has only foreign Exchange underliers) + and performancePayout -> observationTerms -> observable -> currencyPair only exists + and // qualifies that there is a single leg of performance type + economicTerms -> payout -> performancePayout only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the performance leg has varianceReturnTerms + performancePayout -> returnTerms -> varianceReturnTerms only exists func Qualify_ForeignExchange_ParameterReturnVolatility: <"Qualifies a product as Foreign Exchange Swap for which the performance is based on the volatility of a foreign exchange underlier. The determination of the qualification is based on the economic terms and the following criteria: 1) Is a Foreign Exchange product (the underlier is foreign exchange) 2) with only one performance leg 3) which has volatility return terms, 4) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "ForeignExchange_SimpleExotic_Vol/Var"] - [synonym ISDA_Taxonomy_v2 value "ForeignExchange_SimpleExotic_Vol/Var"] - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - Qualify_AssetClass_ForeignExchange (economicTerms) = True - // qualifies that the product is FX (i.e.: has only foreign Exchange underliers) - and performancePayout -> observationTerms -> observable -> currencyPair only exists and - - // qualifies that there is a single leg of performance type - economicTerms -> payout -> performancePayout only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the performance leg has volatilityReturnTerms - performancePayout -> returnTerms -> volatilityReturnTerms only exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "ForeignExchange_SimpleExotic_Vol/Var"] + [synonym ISDA_Taxonomy_v2 value "ForeignExchange_SimpleExotic_Vol/Var"] + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + Qualify_AssetClass_ForeignExchange(economicTerms) = True + // qualifies that the product is FX (i.e.: has only foreign Exchange underliers) + and performancePayout -> observationTerms -> observable -> currencyPair only exists + and // qualifies that there is a single leg of performance type + economicTerms -> payout -> performancePayout only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the performance leg has volatilityReturnTerms + performancePayout -> returnTerms -> volatilityReturnTerms only exists func 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. The determination of the qualification is based on the economic terms and the following criteria: 1) Is a product with with only one performance leg 2) which has correlation return terms, 3) with a basket underlier 4) which is exclusively constituted by foreign exchange constituents and 5) there are no option features."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - - alias performancePayout: economicTerms -> payout -> performancePayout only-element - set is_product: - Qualify_AssetClass_ForeignExchange (economicTerms) = True - // qualifies that there is a single leg of performance type - and economicTerms -> payout -> performancePayout only exists and - economicTerms -> payout -> performancePayout count = 1 and - - // qualifies that the performance leg has correlationReturnTerms - performancePayout -> returnTerms -> correlationReturnTerms only exists and - - // qualifies that the underlier is a basket - performancePayout -> underlier -> basket only exists and - - // qualifies that the product is FX (i.e.: the basket is constituted by foreign exchange constituents) - performancePayout -> underlier -> basket -> basketConstituent -> foreignExchange only exists and - - // qualifies that all basket constituents are FX - are these necessary? Should be covered by the "only exists" above - performancePayout -> underlier -> basket -> basketConstituent -> basket is absent and - performancePayout -> underlier -> basket -> basketConstituent -> commodity is absent and - performancePayout -> underlier -> basket -> basketConstituent -> contractualProduct is absent and - performancePayout -> underlier -> basket -> basketConstituent -> index is absent and - performancePayout -> underlier -> basket -> basketConstituent -> loan is absent and - performancePayout -> underlier -> basket -> basketConstituent -> security is absent + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + + alias performancePayout: economicTerms -> payout -> performancePayout only-element + set is_product: + Qualify_AssetClass_ForeignExchange(economicTerms) = True + // qualifies that there is a single leg of performance type + and economicTerms -> payout -> performancePayout only exists + and economicTerms -> payout -> performancePayout count = 1 + and // qualifies that the performance leg has correlationReturnTerms + performancePayout -> returnTerms -> correlationReturnTerms only exists + and // qualifies that the underlier is a basket + performancePayout -> underlier -> basket only exists + and // qualifies that the product is FX (i.e.: the basket is constituted by foreign exchange constituents) + performancePayout -> underlier -> basket -> basketConstituent -> foreignExchange only exists + and // qualifies that all basket constituents are FX - are these necessary? Should be covered by the "only exists" above + performancePayout -> underlier -> basket -> basketConstituent -> basket is absent + and performancePayout -> underlier -> basket -> basketConstituent -> commodity is absent + and performancePayout -> underlier -> basket -> basketConstituent -> contractualProduct is absent + and performancePayout -> underlier -> basket -> basketConstituent -> index is absent + and performancePayout -> underlier -> basket -> basketConstituent -> loan is absent + and performancePayout -> underlier -> basket -> basketConstituent -> security is absent func Qualify_ForeignExchange_VanillaOption: <"Qualifies a product as FX Plain Vanilla Option based on economic terms, which is defined as one where 1) exercise style is American or European style only, and 2) does not contain any feature like Forward Starting Strike or Performance payout."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "ForeignExchange_VanillaOption"] - [synonym ISDA_Taxonomy_v2 value "ForeignExchange_VanillaOption"] - set is_product: - Qualify_AssetClass_ForeignExchange (economicTerms) = True - and economicTerms -> payout -> optionPayout exists - and economicTerms -> payout -> optionPayout -> underlier -> foreignExchange only exists - and (economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> americanExercise exists - or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> europeanExercise exists) - and (economicTerms -> payout -> optionPayout -> feature is absent - or economicTerms -> payout -> optionPayout -> feature -> averagingFeature only exists) + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "ForeignExchange_VanillaOption"] + [synonym ISDA_Taxonomy_v2 value "ForeignExchange_VanillaOption"] + set is_product: + Qualify_AssetClass_ForeignExchange(economicTerms) = True + and economicTerms -> payout -> optionPayout exists + and economicTerms -> payout -> optionPayout -> underlier -> foreignExchange only exists + and (economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> americanExercise exists + or economicTerms -> payout -> optionPayout -> exerciseTerms -> optionStyle -> europeanExercise exists) + and (economicTerms -> payout -> optionPayout -> feature is absent + or economicTerms -> payout -> optionPayout -> feature -> averagingFeature only exists) func Qualify_RepurchaseAgreement: - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - set is_product: - economicTerms -> payout -> interestRatePayout only exists and - economicTerms -> payout -> interestRatePayout count = 1 and - economicTerms -> collateral -> collateralPortfolio -> collateralPosition -> product -> contractualProduct -> economicTerms -> payout -> assetPayout only exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + economicTerms -> payout -> interestRatePayout only exists + and economicTerms -> payout -> interestRatePayout count = 1 + and economicTerms -> collateral -> collateralPortfolio -> collateralPosition -> product -> contractualProduct -> economicTerms -> payout -> assetPayout only exists func Qualify_Commodity_Swap_FixedFloat: <"Qualifies a product as a Fixed Float Commodity Swap. The determination of the qualification is based on the economic terms and the following criteria: 1) One Floating Leg represented by the CommodityPayout, with an underlier that is a commodity, 2) One Fixed Leg represented by the FixedPricePayout, and 3) there are no other payout types."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "Commodity_Swap_FixedFloat"] - [synonym ISDA_Taxonomy_v2 value "Commodity_Swap_FixedFloat"] - set is_product: - Qualify_AssetClass_Commodity (economicTerms) = True - and (economicTerms -> payout -> commodityPayout, economicTerms -> payout -> fixedPricePayout) only exists - and economicTerms -> payout -> commodityPayout -> underlier -> commodity exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "Commodity_Swap_FixedFloat"] + [synonym ISDA_Taxonomy_v2 value "Commodity_Swap_FixedFloat"] + set is_product: + Qualify_AssetClass_Commodity(economicTerms) = True + and (economicTerms -> payout -> commodityPayout, economicTerms -> payout -> fixedPricePayout) only exists + and economicTerms -> payout -> commodityPayout -> underlier -> commodity exists func Qualify_Commodity_Swap_Basis: <"Qualifies a product as a Basis Commodity Swap. The determination of the qualification is based on the economic terms and the following criteria: 1) Two Floating Legs represented by the CommodityPayout, with an underlier that is a commodity, and 2) there are no other payout types."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "Commodity_Swap_Basis"] - [synonym ISDA_Taxonomy_v2 value "Commodity_Swap_Basis"] - set is_product: - Qualify_AssetClass_Commodity (economicTerms) = True - and economicTerms -> payout -> commodityPayout only exists - and economicTerms -> payout -> commodityPayout count = 2 - and economicTerms -> payout -> commodityPayout -> underlier -> commodity count = 2 + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "Commodity_Swap_Basis"] + [synonym ISDA_Taxonomy_v2 value "Commodity_Swap_Basis"] + set is_product: + Qualify_AssetClass_Commodity(economicTerms) = True + and economicTerms -> payout -> commodityPayout only exists + and economicTerms -> payout -> commodityPayout count = 2 + and economicTerms -> payout -> commodityPayout -> underlier -> commodity count = 2 func Qualify_Commodity_Option: <"Qualifies a product as a Option that can be exercised into an Commodity."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "Commodity_Option"] - [synonym ISDA_Taxonomy_v2 value "Commodity_Option"] - set is_product: - Qualify_AssetClass_Commodity (economicTerms) = True - and economicTerms -> payout -> optionPayout only exists - and economicTerms -> payout -> optionPayout -> underlier -> commodity exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "Commodity_Option"] + [synonym ISDA_Taxonomy_v2 value "Commodity_Option"] + set is_product: + Qualify_AssetClass_Commodity(economicTerms) = True + and economicTerms -> payout -> optionPayout only exists + and economicTerms -> payout -> optionPayout -> underlier -> commodity exists func Qualify_Commodity_Swaption: <"Qualifies a product as a Swaption that can be exercised into a Commodity Swap, which could be any type of interest rate product with two legs based on the economic terms."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - [synonym ISDA_Taxonomy_v1 value "Commodity_Swaption"] - [synonym ISDA_Taxonomy_v2 value "Commodity_Swaption"] - set is_product: - economicTerms -> payout -> optionPayout only exists - and (Qualify_Commodity_Swap_Basis(economicTerms -> payout -> optionPayout only-element -> underlier -> contractualProduct -> economicTerms) = True or - Qualify_Commodity_Swap_FixedFloat(economicTerms -> payout -> optionPayout only-element -> underlier -> contractualProduct -> economicTerms) = True) + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + [synonym ISDA_Taxonomy_v1 value "Commodity_Swaption"] + [synonym ISDA_Taxonomy_v2 value "Commodity_Swaption"] + set is_product: + economicTerms -> payout -> optionPayout only exists + and (Qualify_Commodity_Swap_Basis( + economicTerms -> payout -> optionPayout only-element -> underlier -> contractualProduct -> economicTerms + ) = True + or Qualify_Commodity_Swap_FixedFloat( + economicTerms -> payout -> optionPayout only-element -> underlier -> contractualProduct -> economicTerms + ) = True) func Qualify_SecurityLendingAgreement: <"Qualifies a product as a Security Loan."> - [qualification Product] - inputs: economicTerms EconomicTerms (1..1) - output: is_product boolean (1..1) - set is_product: - economicTerms -> payout -> assetPayout exists and - economicTerms -> payout -> interestRatePayout exists and - economicTerms -> collateral exists + [qualification Product] + inputs: + economicTerms EconomicTerms (1..1) + output: + is_product boolean (1..1) + set is_product: + economicTerms -> payout -> assetPayout exists + and economicTerms -> payout -> interestRatePayout exists + and economicTerms -> collateral exists diff --git a/rosetta-source/src/main/rosetta/product-template-enum.rosetta b/rosetta-source/src/main/rosetta/product-template-enum.rosetta index 90cb581c2a..ac0b5f459e 100644 --- a/rosetta-source/src/main/rosetta/product-template-enum.rosetta +++ b/rosetta-source/src/main/rosetta/product-template-enum.rosetta @@ -2,23 +2,23 @@ namespace cdm.product.template : <"Template feature concepts to define payouts." version "${project.version}" enum AveragingInOutEnum: <"The enumerated values to specify the type of averaging used in an Asian option."> - In <"The average price is used to derive the strike price. Also known as 'Asian strike' style option."> - Out <"The average price is used to derive the expiration price. Also known as 'Asian price' style option."> - Both <"The average price is used to derive both the strike and the expiration price."> + In <"The average price is used to derive the strike price. Also known as 'Asian strike' style option."> + Out <"The average price is used to derive the expiration price. Also known as 'Asian price' style option."> + Both <"The average price is used to derive both the strike and the expiration price."> enum OptionTypeEnum: <"The enumerated values to specify the type of the option. In FpML, OptionTypeEnum is a union with PutCallEnum, which specifies whether the option is a put or a call."> - Put <"A put option gives the holder the right to sell the underlying asset by a certain date for a certain price."> - Call <"A call option gives the holder the right to buy the underlying asset by a certain date for a certain price."> - Payer <"A 'payer' option: If you buy a 'payer' option you have the right but not the obligation to enter into the underlying swap transaction as the 'fixed' rate/price payer and receive float."> - Receiver <"A 'receiver' option: If you buy a 'receiver' option you have the right but not the obligation to enter into the underlying swap transaction as the 'fixed' rate/price receiver and pay float."> - Straddle <"A straddle strategy, which involves the simultaneous buying of a put and a call of the same underlier, at the same strike and same expiration date"> + Put <"A put option gives the holder the right to sell the underlying asset by a certain date for a certain price."> + Call <"A call option gives the holder the right to buy the underlying asset by a certain date for a certain price."> + Payer <"A 'payer' option: If you buy a 'payer' option you have the right but not the obligation to enter into the underlying swap transaction as the 'fixed' rate/price payer and receive float."> + Receiver <"A 'receiver' option: If you buy a 'receiver' option you have the right but not the obligation to enter into the underlying swap transaction as the 'fixed' rate/price receiver and pay float."> + Straddle <"A straddle strategy, which involves the simultaneous buying of a put and a call of the same underlier, at the same strike and same expiration date"> enum CallingPartyEnum: <"Identifies a party to the on-demand repo transaction that has a right to demand for termination of the Security Finance transaction."> - InitialBuyer <"Initial buyer to the repo transaction."> - InitialSeller <"Initial seller to the repo transaction."> - Either <"Either, Buyer or Seller to the repo transaction."> - AsDefinedInMasterAgreement <"As defined in Master Agreement."> - + InitialBuyer <"Initial buyer to the repo transaction."> + InitialSeller <"Initial seller to the repo transaction."> + Either <"Either, Buyer or Seller to the repo transaction."> + AsDefinedInMasterAgreement <"As defined in Master Agreement."> + enum ExerciseNoticeGiverEnum: <"Defines the principal party to the trade that has the right to exercise."> Buyer <"Specifies that only the option buyer has the right to exercise."> Seller <"Specifies that only the option seller has the right to exercise."> @@ -26,26 +26,26 @@ enum ExerciseNoticeGiverEnum: <"Defines the principal party to the trade that ha AsSpecifiedInMasterAgreement <"Specifies that the Master Agreement defines the principal party to the trade that has the right to exercise."> enum MarginTypeEnum: <"This indicator defines which type of assets (cash or securities) is specified to apply as margin to the repo transaction."> - //[deprecated] - Cash <"When the margin type is Cash, the margin factor is applied to the cash value of the transaction."> - Instrument <"When the margin type is Instrument, the margin factor is applied to the instrument value for the transaction. In the 'instrument' case, the haircut would be applied to the securities."> + // [deprecated] + Cash <"When the margin type is Cash, the margin factor is applied to the cash value of the transaction."> + Instrument <"When the margin type is Instrument, the margin factor is applied to the instrument value for the transaction. In the 'instrument' case, the haircut would be applied to the securities."> enum RepoDurationEnum: <"A duration code for a Repo (or Securities Lending) transaction. There are many business and market rules that are derived from the duration of the transaction."> - //[deprecated] - Overnight <"Indicates that a contract is classified as overnight, meaning that there is one business day difference between the start and end date of the contract. Business rule: When the repo is overnight, the number of business days between the spot and forward value dates must be one. Forward leg must be specified."> - Term <"Indicates that a contract is a regular term contract, with a start date and an end date. Business rule: When the repo is 'Term', both spot and forward legs must be specified."> + // [deprecated] + Overnight <"Indicates that a contract is classified as overnight, meaning that there is one business day difference between the start and end date of the contract. Business rule: When the repo is overnight, the number of business days between the spot and forward value dates must be one. Forward leg must be specified."> + Term <"Indicates that a contract is a regular term contract, with a start date and an end date. Business rule: When the repo is 'Term', both spot and forward legs must be specified."> enum DurationTypeEnum: <"Specifies the duration type of the Security Lending transaction. e.g. Open or Term."> - // [deprecated] - Term <"Specifies a trade with a termination date."> - Open <"Specifies a trade with no termination date."> - Evergreen <"Specifies a trade where the term date is extended by a pre-determined period until a notice is serviced. Once the notice is served, the trade will not be reset again and goes to term."> + // [deprecated] + Term <"Specifies a trade with a termination date."> + Open <"Specifies a trade with no termination date."> + Evergreen <"Specifies a trade where the term date is extended by a pre-determined period until a notice is serviced. Once the notice is served, the trade will not be reset again and goes to term."> enum ExpirationTimeTypeEnum: <"The time of day at which the equity option expires, for example the official closing time of the exchange."> // OPTION GENERAL - Close <"The official closing time of the exchange on the valuation date."> - Open <"The official opening time of the exchange on the valuation date."> - OSP <"The time at which the official settlement price is determined."> - SpecificTime <"The time specified in the element equityExpirationTime or valuationTime (as appropriate)"> - XETRA <"The time at which the official settlement price (following the auction by the exchange) is determined by the exchange."> - DerivativesClose <"The official closing time of the derivatives exchange on which a derivative contract is listed on that security underlyer."> - AsSpecifiedInMasterConfirmation <"The time is determined as provided in the relevant Master Confirmation."> + Close <"The official closing time of the exchange on the valuation date."> + Open <"The official opening time of the exchange on the valuation date."> + OSP <"The time at which the official settlement price is determined."> + SpecificTime <"The time specified in the element equityExpirationTime or valuationTime (as appropriate)"> + XETRA <"The time at which the official settlement price (following the auction by the exchange) is determined by the exchange."> + DerivativesClose <"The official closing time of the derivatives exchange on which a derivative contract is listed on that security underlyer."> + AsSpecifiedInMasterConfirmation <"The time is determined as provided in the relevant Master Confirmation."> diff --git a/rosetta-source/src/main/rosetta/product-template-func.rosetta b/rosetta-source/src/main/rosetta/product-template-func.rosetta index 6f5037ba44..59d111c2d6 100644 --- a/rosetta-source/src/main/rosetta/product-template-func.rosetta +++ b/rosetta-source/src/main/rosetta/product-template-func.rosetta @@ -9,108 +9,108 @@ import cdm.observable.asset.* import cdm.observable.common.* func FilterTradeLot: <"Filter list of TradeLot based on TradeLot->lotIdentifier."> - inputs: - tradeLots TradeLot (0..*) <"List of TradeLots to filter."> - lotIdentifier Identifier (0..*) <"The lot Identifiers to filter by."> - output: - filteredTradeLots TradeLot (0..*) + inputs: + tradeLots TradeLot (0..*) <"List of TradeLots to filter."> + lotIdentifier Identifier (0..*) <"The lot Identifiers to filter by."> + output: + filteredTradeLots TradeLot (0..*) - add filteredTradeLots: - tradeLots - filter item -> lotIdentifier = lotIdentifier + add filteredTradeLots: tradeLots filter item -> lotIdentifier = lotIdentifier func AddTradeLot: <"Add a TradeLot to an existing list of TradeLots."> - inputs: - tradableProduct TradableProduct (1..1) <"Input list of TradeLots."> - newTradeLot TradeLot (1..1) <"The TradeLot to append to the list."> - output: - updatedTradableProduct TradableProduct (1..1) + inputs: + tradableProduct TradableProduct (1..1) <"Input list of TradeLots."> + newTradeLot TradeLot (1..1) <"The TradeLot to append to the list."> + output: + updatedTradableProduct TradableProduct (1..1) - set updatedTradableProduct: tradableProduct - add updatedTradableProduct -> tradeLot: newTradeLot + set updatedTradableProduct: tradableProduct + add updatedTradableProduct -> tradeLot: newTradeLot func MergeTradeLot: <"Replace TradeLot in with matching TradeLot->lotIdentifier."> - inputs: - tradeLots TradeLot (0..*) <"Input list of TradeLots."> - newTradeLot TradeLot (1..1) <"The TradeLot to replace a matching TradeLot in the list."> - output: - mergedTradeLots TradeLot (0..*) - - add mergedTradeLots: <"Where the lot identifier matches, replace the existing TradeLot with the new TradeLot."> - tradeLots - extract - if item -> lotIdentifier = newTradeLot -> lotIdentifier - or ( item -> lotIdentifier is absent and newTradeLot -> lotIdentifier is absent ) - then newTradeLot - else item + inputs: + tradeLots TradeLot (0..*) <"Input list of TradeLots."> + newTradeLot TradeLot (1..1) <"The TradeLot to replace a matching TradeLot in the list."> + output: + mergedTradeLots TradeLot (0..*) + + add mergedTradeLots: <"Where the lot identifier matches, replace the existing TradeLot with the new TradeLot."> + tradeLots + extract + if item -> lotIdentifier = newTradeLot -> lotIdentifier + or (item -> lotIdentifier is absent and newTradeLot -> lotIdentifier is absent) + then newTradeLot + else item func CompareTradeLot: <"Compare the Quantity in TradeLot 1 to the Quantity (with the same unit of amount) in TradeLot 2, based on the CompareOp enum."> - inputs: - tradeLot1 TradeLot (1..1) + inputs: + tradeLot1 TradeLot (1..1) op CompareOp (1..1) - tradeLot2 TradeLot (1..1) - output: - result boolean (1..1) + tradeLot2 TradeLot (1..1) + output: + result boolean (1..1) - alias unitOfAmounts: - tradeLot2 -> priceQuantity -> quantity -> unit distinct + alias unitOfAmounts: tradeLot2 -> priceQuantity -> quantity -> unit distinct - set result: - unitOfAmounts + set result: + unitOfAmounts extract unitOfAmount [ CompareQuantityByUnitOfAmount( - tradeLot1 -> priceQuantity -> quantity - extract NonNegativeQuantity { - value: item -> value, - unit: item -> unit, - ... - }, - op, - tradeLot2 -> priceQuantity -> quantity - extract NonNegativeQuantity { - value: item -> value, - unit: item -> unit, - ... - }, - unitOfAmount - ) - ] - all = True + tradeLot1 -> priceQuantity -> quantity + extract + NonNegativeQuantity { + value: item -> value, + unit: item -> unit, + ... + }, + op, + tradeLot2 -> priceQuantity -> quantity + extract + NonNegativeQuantity { + value: item -> value, + unit: item -> unit, + ... + }, + unitOfAmount + ) + ] all = True func CompareTradeLotToAmount: <"Compare the Quantity amount in TradeLot to the given amount (regardless of unit of amount), based on the CompareOp enum."> - inputs: - tradeLot TradeLot (1..1) - op CompareOp (1..1) - amount number (1..1) - output: - result boolean (1..1) - - set result: - tradeLot -> priceQuantity -> quantity + inputs: + tradeLot TradeLot (1..1) + op CompareOp (1..1) + amount number (1..1) + output: + result boolean (1..1) + + set result: + tradeLot -> priceQuantity -> quantity filter item -> value exists - then extract [ CompareNumbers( item -> value, op, amount ) ] - all = True + then extract [ CompareNumbers(item -> value, op, amount) ] + all = True func PriceQuantityTriangulation: <"Defines all the scenarios which triangulation can be helpful validation between Prices and Quantities."> - inputs: - tradeLots TradeLot (0..*) - output: - success boolean (1..1) - - set success: - if tradeLots count > 0 then - tradeLots + inputs: + tradeLots TradeLot (0..*) + output: + success boolean (1..1) + + set success: + if tradeLots count > 0 + then tradeLots extract [ - if item -> priceQuantity -> price -> priceType contains PriceTypeEnum -> CashPrice then - CashPriceQuantityNoOfUnitsTriangulation( item -> priceQuantity -> quantity, item -> priceQuantity -> price) + if item -> priceQuantity -> price -> priceType contains PriceTypeEnum -> CashPrice + then CashPriceQuantityNoOfUnitsTriangulation( + item -> priceQuantity -> quantity, + item -> priceQuantity -> price + ) else True - ] - all = True + ] all = True else True func FpmlIrd8: <"FpML validation rule ird-8 - If the same party is specified as the payer and receiver, then different accounts must be specified."> - inputs: - tradableProduct TradableProduct (1..1) - accounts Account (0..*) - output: - success boolean (1..1) <"Validation result"> + inputs: + tradableProduct TradableProduct (1..1) + accounts Account (0..*) + output: + success boolean (1..1) <"Validation result"> diff --git a/rosetta-source/src/main/rosetta/product-template-type.rosetta b/rosetta-source/src/main/rosetta/product-template-type.rosetta index 8c533b2a9d..c1b44a608d 100644 --- a/rosetta-source/src/main/rosetta/product-template-type.rosetta +++ b/rosetta-source/src/main/rosetta/product-template-type.rosetta @@ -24,173 +24,165 @@ import cdm.product.collateral.* import cdm.mapping.config.* type ContractualProduct extends ProductBase: <" A class to specify the contractual products' economic terms, alongside their product identification and product taxonomy. The contractual product class is meant to be used across the pre-execution, execution and (as part of the Contract) post-execution lifecycle contexts."> - [metadata key] - [metadata template] + [metadata key] + [metadata template] - economicTerms EconomicTerms (1..1) <"The economic terms associated with a contractual product, i.e. the set of features that are price-forming."> + economicTerms EconomicTerms (1..1) <"The economic terms associated with a contractual product, i.e. the set of features that are price-forming."> - condition PrimaryAssetClass: <"Specifies that when nonStandardisedTerms are True that a primary asset class must be specified."> - if economicTerms -> nonStandardisedTerms = True then - productTaxonomy -> primaryAssetClass exists + condition PrimaryAssetClass: <"Specifies that when nonStandardisedTerms are True that a primary asset class must be specified."> + if economicTerms -> nonStandardisedTerms = True + then productTaxonomy -> primaryAssetClass exists type EconomicTerms: <" This class represents the full set of price-forming features associated with a contractual product: the payout component, the notional/quantity, the effective and termination date and the date adjustment provisions when applying uniformily across the payout components. This class also includes the legal provisions which have valuation implications: cancelable provision, extendible provision, early termination provision and extraordinary events specification."> - effectiveDate AdjustableOrRelativeDate (0..1) <"The first day of the terms of the trade. This day may be subject to adjustment in accordance with a business day convention."> - [docReference ICMA GMRA namingConvention "Purchase Date" - provision "As defined in GMRA paragraph 2(mm) The date on which Purchased Securities are sold or are to be sold by Seller to Buyer."] - [docReference ICMA ERCCBestPractice namingConvention "Purchase Date" - provision "ERCC Guide: Annex II Glossary of repo terminology. The term for the value date of a repo."] - terminationDate AdjustableOrRelativeDate (0..1) <"The last day of the terms of the trade. This date may be subject to adjustments in accordance with the business day convention. It can also be specified in relation to another scheduled date (e.g. the last payment date)."> - [docReference ICMA GMRA namingConvention "Repurchase Date" - provision "As defined in GMRA paragraph 2(qq) The date on which Buyer is to sell Equivalent Securities to Seller."] - [docReference ICMA ERCCBestPractice namingConvention "Repurchase Date" - provision "ERCC Guide: Annex II Glossary of repo terminology. The term for the maturity date of a repo."] - dateAdjustments BusinessDayAdjustments (0..1) <"The business day adjustment convention when it applies across all the payout components. This specification of the business day convention and financial business centers is used for adjusting any calculation period date if it would otherwise fall on a day that is not a business day in the specified business center."> - payout Payout (1..1) <"The payout specifies the future cashflow computation methodology which characterizes a financial product."> - terminationProvision TerminationProvision (0..1) <"Contains optional provisions pertaining to the termination characteristics of a contract."> - calculationAgent CalculationAgent (0..1) <"The ISDA calculation agent responsible for performing duties as defined in the applicable product definitions."> - nonStandardisedTerms boolean (0..1) <"Specifies, when boolean value is True, that additional economic terms exist that have not been included in the product representation."> - //ICMA-P2 - collateral Collateral (0..1) <"Represents the collateral obligations of a party."> - - condition FpML_cd_26_28: <"FpML validation rule cd-26 - If feeLeg/singlePayment/adjustablePaymentDate exists, then feeLeg/singlePayment/adjustablePaymentDate must be after generalTerms/effectiveDate/unadjustedDate. FpML validation rule cd-28 - If feeLeg/periodicPayment/firstPaymentDate exists, then feeLeg/periodicPayment/firstPaymentDate must be after generalTerms/effectiveDate/unadjustedDate. This data rule tackles those two FpML validation rules at once, as the singlePayment and the firstPayment have been represented through the same Payout/cashflow attribute."> - if payout -> creditDefaultPayout exists - and payout -> cashflow exists - and effectiveDate exists - and payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> unadjustedDate exists - and payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> relativeDate is absent - then payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> unadjustedDate all > effectiveDate -> adjustableDate -> unadjustedDate - or payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> adjustedDate all > effectiveDate -> adjustableDate -> adjustedDate - or payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> relativeDate -> adjustedDate all > effectiveDate -> relativeDate -> adjustedDate - - condition FpML_cd_27: <"FpML validation rule cd-27 - If feeLeg/singlePayment/adjustablePaymentDate exists, and if generalTerms/scheduledTerminationDate exists, then feeLeg/singlePayment/adjustablePaymentDate must be before generalTerms/scheduledTerminationDate/unadjustedDate."> - if payout -> creditDefaultPayout exists - and payout -> cashflow exists - and terminationDate exists - and payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate exists - then payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> unadjustedDate all < terminationDate -> adjustableDate -> unadjustedDate - or payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> adjustedDate all < terminationDate -> adjustableDate -> adjustedDate - or payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> relativeDate -> adjustedDate all < terminationDate -> adjustableDate -> adjustedDate - - condition FpML_cd_30: <"FpML validation rule cd-30 - If feeLeg/periodicPayment/lastRegularPaymentDate exists, and if generalTerms/scheduledTerminationDate exists, then feeLeg/periodicPayment/lastRegularPaymentDate must be before generalTerms/scheduledTerminationDate/unadjustedDate."> - if payout -> interestRatePayout -> paymentDates -> lastRegularPaymentDate exists and terminationDate exists - then payout -> interestRatePayout -> paymentDates -> lastRegularPaymentDate all < terminationDate -> adjustableDate -> unadjustedDate - - condition IndependentCalculationAgent: - if calculationAgent -> calculationAgentParty exists - then calculationAgent -> calculationAgentParty = AncillaryRoleEnum -> CalculationAgentIndependent + effectiveDate AdjustableOrRelativeDate (0..1) <"The first day of the terms of the trade. This day may be subject to adjustment in accordance with a business day convention."> + [docReference ICMA GMRA namingConvention "Purchase Date" + provision "As defined in GMRA paragraph 2(mm) The date on which Purchased Securities are sold or are to be sold by Seller to Buyer."] + [docReference ICMA ERCCBestPractice namingConvention "Purchase Date" + provision "ERCC Guide: Annex II Glossary of repo terminology. The term for the value date of a repo."] + terminationDate AdjustableOrRelativeDate (0..1) <"The last day of the terms of the trade. This date may be subject to adjustments in accordance with the business day convention. It can also be specified in relation to another scheduled date (e.g. the last payment date)."> + [docReference ICMA GMRA namingConvention "Repurchase Date" + provision "As defined in GMRA paragraph 2(qq) The date on which Buyer is to sell Equivalent Securities to Seller."] + [docReference ICMA ERCCBestPractice namingConvention "Repurchase Date" + provision "ERCC Guide: Annex II Glossary of repo terminology. The term for the maturity date of a repo."] + dateAdjustments BusinessDayAdjustments (0..1) <"The business day adjustment convention when it applies across all the payout components. This specification of the business day convention and financial business centers is used for adjusting any calculation period date if it would otherwise fall on a day that is not a business day in the specified business center."> + payout Payout (1..1) <"The payout specifies the future cashflow computation methodology which characterizes a financial product."> + terminationProvision TerminationProvision (0..1) <"Contains optional provisions pertaining to the termination characteristics of a contract."> + calculationAgent CalculationAgent (0..1) <"The ISDA calculation agent responsible for performing duties as defined in the applicable product definitions."> + nonStandardisedTerms boolean (0..1) <"Specifies, when boolean value is True, that additional economic terms exist that have not been included in the product representation."> + // ICMA-P2 + collateral Collateral (0..1) <"Represents the collateral obligations of a party."> + + condition FpML_cd_26_28: <"FpML validation rule cd-26 - If feeLeg/singlePayment/adjustablePaymentDate exists, then feeLeg/singlePayment/adjustablePaymentDate must be after generalTerms/effectiveDate/unadjustedDate. FpML validation rule cd-28 - If feeLeg/periodicPayment/firstPaymentDate exists, then feeLeg/periodicPayment/firstPaymentDate must be after generalTerms/effectiveDate/unadjustedDate. This data rule tackles those two FpML validation rules at once, as the singlePayment and the firstPayment have been represented through the same Payout/cashflow attribute."> + if payout -> creditDefaultPayout exists + and payout -> cashflow exists + and effectiveDate exists + and payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> unadjustedDate exists + and payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> relativeDate is absent + then payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> unadjustedDate all > effectiveDate -> adjustableDate -> unadjustedDate or payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> adjustedDate all > effectiveDate -> adjustableDate -> adjustedDate or payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> relativeDate -> adjustedDate all > effectiveDate -> relativeDate -> adjustedDate + + condition FpML_cd_27: <"FpML validation rule cd-27 - If feeLeg/singlePayment/adjustablePaymentDate exists, and if generalTerms/scheduledTerminationDate exists, then feeLeg/singlePayment/adjustablePaymentDate must be before generalTerms/scheduledTerminationDate/unadjustedDate."> + if payout -> creditDefaultPayout exists + and payout -> cashflow exists + and terminationDate exists + and payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate exists + then payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> unadjustedDate all < terminationDate -> adjustableDate -> unadjustedDate or payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> adjustedDate all < terminationDate -> adjustableDate -> adjustedDate or payout -> cashflow -> settlementTerms -> settlementDate -> adjustableOrRelativeDate -> relativeDate -> adjustedDate all < terminationDate -> adjustableDate -> adjustedDate + + condition FpML_cd_30: <"FpML validation rule cd-30 - If feeLeg/periodicPayment/lastRegularPaymentDate exists, and if generalTerms/scheduledTerminationDate exists, then feeLeg/periodicPayment/lastRegularPaymentDate must be before generalTerms/scheduledTerminationDate/unadjustedDate."> + if payout -> interestRatePayout -> paymentDates -> lastRegularPaymentDate exists + and terminationDate exists + then payout -> interestRatePayout -> paymentDates -> lastRegularPaymentDate all < terminationDate -> adjustableDate -> unadjustedDate + + condition IndependentCalculationAgent: + if calculationAgent -> calculationAgentParty exists + then calculationAgent -> calculationAgentParty = AncillaryRoleEnum -> CalculationAgentIndependent condition AssetPayoutDividendTermsValidation: <"Validates that if the transaction has Dividend Terms specified then it should be a Term trade."> if payout -> assetPayout -> dividendTerms exists then terminationDate exists - condition ExtendibleProvisionExerciseDetails: <"Ensure that the correct details are specified for an extendible contract."> - if payout -> assetPayout is absent then - // Not Security Lending/Repo so must be Interest Rate Swap, which must set an exercise option type - if terminationProvision -> extendibleProvision exists then - (terminationProvision -> extendibleProvision -> americanExercise exists - and terminationProvision -> extendibleProvision -> bermudaExercise is absent - and terminationProvision -> extendibleProvision -> europeanExercise is absent) - or - (terminationProvision -> extendibleProvision -> americanExercise is absent - and terminationProvision -> extendibleProvision -> bermudaExercise exists - and terminationProvision -> extendibleProvision -> europeanExercise is absent) - or - (terminationProvision -> extendibleProvision -> americanExercise is absent - and terminationProvision -> extendibleProvision -> bermudaExercise is absent - and terminationProvision -> extendibleProvision -> europeanExercise exists) - and - terminationProvision -> extendibleProvision -> followUpConfirmation exists + condition ExtendibleProvisionExerciseDetails: <"Ensure that the correct details are specified for an extendible contract."> + if payout -> assetPayout is absent + then // Not Security Lending/Repo so must be Interest Rate Swap, which must set an exercise option type + if terminationProvision -> extendibleProvision exists + then (terminationProvision -> extendibleProvision -> americanExercise exists + and terminationProvision -> extendibleProvision -> bermudaExercise is absent + and terminationProvision -> extendibleProvision -> europeanExercise is absent) + or (terminationProvision -> extendibleProvision -> americanExercise is absent + and terminationProvision -> extendibleProvision -> bermudaExercise exists + and terminationProvision -> extendibleProvision -> europeanExercise is absent) + or (terminationProvision -> extendibleProvision -> americanExercise is absent + and terminationProvision -> extendibleProvision -> bermudaExercise is absent + and terminationProvision -> extendibleProvision -> europeanExercise exists) + and terminationProvision -> extendibleProvision -> followUpConfirmation exists type OptionExercise: <" A class to represent the applicable terms to qualify an option exercise: the option style (e.g. American style option), the exercise procedure (e.g. manual exercise) and the settlement terms (e.g. physical vs. cash)."> - optionStyle OptionStyle (1..1) <"The option exercise can be of American style, Bermuda style or European style. The FpML implementation makes use of a substitution group."> - strike OptionStrike (0..1) <"Specifies the strike of the option on credit default swap."> - exerciseProcedure ExerciseProcedure (0..1) <"The set of parameters defining the procedure associated with the exercise, e.g. manual exercise."> + optionStyle OptionStyle (1..1) <"The option exercise can be of American style, Bermuda style or European style. The FpML implementation makes use of a substitution group."> + strike OptionStrike (0..1) <"Specifies the strike of the option on credit default swap."> + exerciseProcedure ExerciseProcedure (0..1) <"The set of parameters defining the procedure associated with the exercise, e.g. manual exercise."> type OptionPayout extends PayoutBase: <" The option payout specification terms. The associated globalKey denotes the ability to associate a hash value to the respective OptionPayout instantiation for the purpose of model cross-referencing, in support of functionality such as the event effect and the lineage."> - [metadata key] - - buyerSeller BuyerSeller (1..1) - optionType OptionTypeEnum (0..1) <"The type of option transaction. From a usage standpoint, put/call is the default option type, while payer/receiver indicator is used for options on index credit default swaps, consistently with the industry practice. Straddle is used for the case of straddle strategy, that combine a call and a put with the same strike."> - feature OptionFeature (0..1) <"The option feature, such as quanto, Asian, barrier, knock."> - exerciseTerms OptionExercise (1..1) <"The terms for exercising the option, which include the option style (e.g. American style option), the exercise procedure (e.g. manual exercise) and the settlement terms (e.g. physical vs. cash)."> - underlier Product (1..1) <"The product underlying the option, which can be of any type including ContractualProduct or Security."> - observationTerms ObservationTerms (0..1) <"Class containing terms that are associated with observing a price/benchmark/index across either single or multple observations. To be used for option contracts that reference a benchmark price."> - schedule CommoditySchedule (0..1) <"Allows the full representation of a commodity payout by defining a set of schedule periods. It supports standard schedule customization by expressing all the dates, quantities, and pricing data in a non-parametric way."> - - condition ClearedPhysicalSettlementExists: - if settlementTerms -> physicalSettlementTerms exists - and underlier -> contractualProduct -> economicTerms -> payout -> interestRatePayout only exists - and underlier -> contractualProduct -> economicTerms -> payout -> interestRatePayout count = 2 - then settlementTerms -> physicalSettlementTerms -> clearedPhysicalSettlement exists + [metadata key] + + buyerSeller BuyerSeller (1..1) + optionType OptionTypeEnum (0..1) <"The type of option transaction. From a usage standpoint, put/call is the default option type, while payer/receiver indicator is used for options on index credit default swaps, consistently with the industry practice. Straddle is used for the case of straddle strategy, that combine a call and a put with the same strike."> + feature OptionFeature (0..1) <"The option feature, such as quanto, Asian, barrier, knock."> + exerciseTerms OptionExercise (1..1) <"The terms for exercising the option, which include the option style (e.g. American style option), the exercise procedure (e.g. manual exercise) and the settlement terms (e.g. physical vs. cash)."> + underlier Product (1..1) <"The product underlying the option, which can be of any type including ContractualProduct or Security."> + observationTerms ObservationTerms (0..1) <"Class containing terms that are associated with observing a price/benchmark/index across either single or multple observations. To be used for option contracts that reference a benchmark price."> + schedule CommoditySchedule (0..1) <"Allows the full representation of a commodity payout by defining a set of schedule periods. It supports standard schedule customization by expressing all the dates, quantities, and pricing data in a non-parametric way."> + + condition ClearedPhysicalSettlementExists: + if settlementTerms -> physicalSettlementTerms exists + and underlier -> contractualProduct -> economicTerms -> payout -> interestRatePayout only exists + and underlier -> contractualProduct -> economicTerms -> payout -> interestRatePayout count = 2 + then settlementTerms -> physicalSettlementTerms -> clearedPhysicalSettlement exists type SecurityLeg: <" Terms defining a security leg in a securities financing transaction, which can either be the near leg or the far leg and is closely modelled onto the nearLeg and farLeg types in FpML"> - [metadata key] + [metadata key] - buyerSeller BuyerSeller (1..1) <"Whether the leg is a buyer or seller of security"> - settlementDate AdjustableOrRelativeDate (1..1) <"Settlement or Payment Date for the security leg"> - settlementAmount Money (0..1) <"Settlement amount for the security leg"> - settlementCurrency string (0..1) <"Settlement Currency for use where the Settlement Amount cannot be known in advance."> - fxRate ExchangeRate (0..1) <"FX rate in case when cash settlement amount is in a different currency to the security."> - deliveryDate AdjustableOrRelativeDate (0..1) <"Delivery Date for the transaction. Delivery Date can be populated when it is not equal to the Settlement Date."> - deliveryMethod DeliveryMethodEnum (1..1) <"Specifies a delivery method for the security transaction."> + buyerSeller BuyerSeller (1..1) <"Whether the leg is a buyer or seller of security"> + settlementDate AdjustableOrRelativeDate (1..1) <"Settlement or Payment Date for the security leg"> + settlementAmount Money (0..1) <"Settlement amount for the security leg"> + settlementCurrency string (0..1) <"Settlement Currency for use where the Settlement Amount cannot be known in advance."> + fxRate ExchangeRate (0..1) <"FX rate in case when cash settlement amount is in a different currency to the security."> + deliveryDate AdjustableOrRelativeDate (0..1) <"Delivery Date for the transaction. Delivery Date can be populated when it is not equal to the Settlement Date."> + deliveryMethod DeliveryMethodEnum (1..1) <"Specifies a delivery method for the security transaction."> - condition SecurityLegChoice: - required choice settlementAmount, settlementCurrency + condition SecurityLegChoice: + required choice settlementAmount, settlementCurrency type SecurityPayout: <" Security payout specification in case the product payout involves some form of security collateral, as in a securities financing transaction."> - [metadata key] + [metadata key] [deprecated] - securityLeg SecurityLeg (1..*) <"Each SecurityLeg represent a buy/sell at different dates, typically 1 near leg and 1 far leg in a securities financing transaction."> + securityLeg SecurityLeg (1..*) <"Each SecurityLeg represent a buy/sell at different dates, typically 1 near leg and 1 far leg in a securities financing transaction."> initialMargin InitialMargin (0..1) <"RepoDurationEnum."> - repoDuration RepoDurationEnum (0..1) <"A duration code for the repo transaction. This defines a type of a repo transaction with fixed duration."> - securityValuation SecurityValuation (1..*) <"The underlying securities and their valuation for the security leg."> + repoDuration RepoDurationEnum (0..1) <"A duration code for the repo transaction. This defines a type of a repo transaction with fixed duration."> + securityValuation SecurityValuation (1..*) <"The underlying securities and their valuation for the security leg."> type InitialMargin: <" Defines initial margin applied to a repo transaction. Initial margin is an agreed premium to the Purchase Price of a repo to determine the required Market Value of the collateral to be delivered on the Purchase Date. It reflects quality of the collateral. Its aim is to calculate the risk-adjusted or liquidation value of collateral."> [deprecated] - marginType MarginTypeEnum (1..1) <"An element defining the type of assets (cash or securities) specified to apply as margin to the repo transaction. See GMRA 2011 paragraph 2(h) for 'Cash Margin' and GMRA 2011 paragraph 2(cc) for 'Margin Securities'."> - margin InitialMarginCalculation (1..*) <"Initial margin calculation for a collateral asset. Initial margin requirements may be specified for multiple pieces of collateral."> - marginThreshold Money (0..1) <"An element defining a margin threshold which is the Net Exposure of a trade below which parties agree they will not call a margin from each other."> - minimumTransferAmount Money (0..1) <"An element defining a minimum transfer amount which is the minimum margin call parties will make once the margin threshold (or margin ratio threshold / haircut threshold) has been exceeded."> + marginType MarginTypeEnum (1..1) <"An element defining the type of assets (cash or securities) specified to apply as margin to the repo transaction. See GMRA 2011 paragraph 2(h) for 'Cash Margin' and GMRA 2011 paragraph 2(cc) for 'Margin Securities'."> + margin InitialMarginCalculation (1..*) <"Initial margin calculation for a collateral asset. Initial margin requirements may be specified for multiple pieces of collateral."> + marginThreshold Money (0..1) <"An element defining a margin threshold which is the Net Exposure of a trade below which parties agree they will not call a margin from each other."> + minimumTransferAmount Money (0..1) <"An element defining a minimum transfer amount which is the minimum margin call parties will make once the margin threshold (or margin ratio threshold / haircut threshold) has been exceeded."> - condition MarginThreshold: - if marginThreshold exists - then marginThreshold -> value > 0 + condition MarginThreshold: + if marginThreshold exists then marginThreshold -> value > 0 - condition MinimumTransferAmount: - if minimumTransferAmount exists - then minimumTransferAmount -> value > 0 + condition MinimumTransferAmount: + if minimumTransferAmount exists + then minimumTransferAmount -> value > 0 type InitialMarginCalculation: <" Defines the initial margin calculation applicable to a single piece of collateral."> [deprecated] - marginRatio number (0..1) <"An element defining an initial margin expressed as a ratio of the Market Value of the collateral to the Purchase Price. A default value of initial margin ratio of 1.00 means there is no margin and thus no risk related with the collateral. See GMRA 2000 paragraph 2(z) and GMRA 2011 paragraph 2(bb)."> - marginRatioThreshold number (0..2) <"An element defining a margin ratio threshold which is the value above (when it's lower than initial margin ratio) or below (when it's higher than initial margin ratio) which parties agree they will not call a margin from each other."> - haircut number (0..1) <"An element defining a haircut expressed as the percentage difference between the Market Value of the collateral and the Purchase Price of the repo and calculated as 100 multiplied by a ratio of the difference between the Market Value of the collateral and the Purchase Price of the repo to the Market Value of the collateral. Haircut is alternative way to adjust the value of collateral sold in a repurchase agreement to initial margin ratio. Because an initial margin is a percentage of the Purchase Price, while a haircut is a percentage of the Market Value of collateral, the arithmetic of initial margins and haircuts is slightly different. For example, an initial margin of 102% is not equivalent to a haircut of 2%, but to 1.961% (ie 100/102%). See GMRA 2011 paragraph 2(aa)."> - haircutThreshold number (0..2) <"An element defining a haircut percentage threshold which is the value above (when it's lower than initial haircut) or below (when it's higher than initial haircut) which parties agree they will not call a margin from each other."> + marginRatio number (0..1) <"An element defining an initial margin expressed as a ratio of the Market Value of the collateral to the Purchase Price. A default value of initial margin ratio of 1.00 means there is no margin and thus no risk related with the collateral. See GMRA 2000 paragraph 2(z) and GMRA 2011 paragraph 2(bb)."> + marginRatioThreshold number (0..2) <"An element defining a margin ratio threshold which is the value above (when it's lower than initial margin ratio) or below (when it's higher than initial margin ratio) which parties agree they will not call a margin from each other."> + haircut number (0..1) <"An element defining a haircut expressed as the percentage difference between the Market Value of the collateral and the Purchase Price of the repo and calculated as 100 multiplied by a ratio of the difference between the Market Value of the collateral and the Purchase Price of the repo to the Market Value of the collateral. Haircut is alternative way to adjust the value of collateral sold in a repurchase agreement to initial margin ratio. Because an initial margin is a percentage of the Purchase Price, while a haircut is a percentage of the Market Value of collateral, the arithmetic of initial margins and haircuts is slightly different. For example, an initial margin of 102% is not equivalent to a haircut of 2%, but to 1.961% (ie 100/102%). See GMRA 2011 paragraph 2(aa)."> + haircutThreshold number (0..2) <"An element defining a haircut percentage threshold which is the value above (when it's lower than initial haircut) or below (when it's higher than initial haircut) which parties agree they will not call a margin from each other."> - condition InitialMarginCalculationChoice: - required choice marginRatio, haircut + condition InitialMarginCalculationChoice: + required choice marginRatio, haircut type ReturnTerms: <"Specifies the type of return of a performance payout."> - //commodityReturnTerms CommodityPriceReturnTerms (0..1) - priceReturnTerms PriceReturnTerms (0..1) <"Return terms based upon the underlier's observed price."> - dividendReturnTerms DividendReturnTerms (0..1) <"Return terms based upon dividend payments associated to the underlier."> - varianceReturnTerms VarianceReturnTerms (0..1) <"Return terms based upon the observed variance of the underlier's price."> - volatilityReturnTerms VolatilityReturnTerms (0..1) <"Return terms based upon the observed volatility of the underlier's price."> - correlationReturnTerms CorrelationReturnTerms (0..1) <"Return terms based upon the observed correlation between the components of the underlying basket."> + // commodityReturnTerms CommodityPriceReturnTerms (0..1) + priceReturnTerms PriceReturnTerms (0..1) <"Return terms based upon the underlier's observed price."> + dividendReturnTerms DividendReturnTerms (0..1) <"Return terms based upon dividend payments associated to the underlier."> + varianceReturnTerms VarianceReturnTerms (0..1) <"Return terms based upon the observed variance of the underlier's price."> + volatilityReturnTerms VolatilityReturnTerms (0..1) <"Return terms based upon the observed volatility of the underlier's price."> + correlationReturnTerms CorrelationReturnTerms (0..1) <"Return terms based upon the observed correlation between the components of the underlying basket."> condition ReturnTermsExists: <"Checks that the return type label matches the actual return terms structure of the product."> - if priceReturnTerms -> returnType = ReturnTypeEnum -> Total then - (priceReturnTerms, dividendReturnTerms) only exists - else if priceReturnTerms -> returnType = ReturnTypeEnum -> Price then - priceReturnTerms only exists - else - priceReturnTerms only exists + if priceReturnTerms -> returnType = ReturnTypeEnum -> Total + then (priceReturnTerms, dividendReturnTerms) only exists + else if priceReturnTerms -> returnType = ReturnTypeEnum -> Price + then priceReturnTerms only exists + else priceReturnTerms only exists or dividendReturnTerms only exists or varianceReturnTerms only exists or volatilityReturnTerms only exists @@ -199,254 +191,247 @@ type ReturnTerms: <"Specifies the type of return of a performance payout."> type PerformancePayout extends PayoutBase: <"Contains the necessary specifications for all performance payouts, encompassing equity return, dividend, variance, volatility and correlation products."> [metadata key] - observationTerms ObservationTerms (0..1) <"Defines how and when a performance type option or performance type swap is to be observed."> - valuationDates ValuationDates (1..1) <"Defines how and when a performance type option or performance type swap is to be valued, including both interim and final valuation."> - paymentDates PaymentDates (1..1) <"Defines the payment date schedule, as defined by the parameters that are needed to specify it, either in a parametric way or by reference to another schedule of dates (e.g. the valuation dates)."> - underlier Product (0..1)<"Identifies the underlying product that is referenced for pricing of the applicable leg in a swap. Referenced in the '2018 ISDA CDM Equity Confirmation for Security Equity Swap' as Security."> - fxFeature FxFeature (0..*) <"Defines quanto or composite FX features that are included in the swap leg."> - returnTerms ReturnTerms (1..1) <"Specifies the type of return of a performance payout."> - - condition Quantity: <"When there is an OptionPayout the quantity can be expressed as part of the payoutQuantity, or as part of the underlier in the case of a Swaption. For all other payouts that extend PayoutBase the payoutQuantity is a mandatory attribute."> - priceQuantity exists - - condition NoSharePriceDividendAdjustmentIndex: <"If the underlier is an index, sharePriceAdjustment and sharePriceDividendAdjustment cannot exist."> - if underlier -> index exists then - returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment is absent - and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment is absent - - condition NoSharePriceDividendAdjustmentForeignExchange: <"If the underlier is an foreign exchange, sharePriceAdjustment and sharePriceDividendAdjustment cannot exist."> - if underlier -> foreignExchange exists then - returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment is absent - and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment is absent - - condition CorrelationUnderlierOnlyBasket: <"Correlation Return Terms can only have a basket as underlier, since it needs to compute the correlation between two or more products."> - if returnTerms -> correlationReturnTerms exists then - underlier -> basket only exists - - condition EquitySpecificAttributes: <"Equity specific attributes cannot be present in non-equity products."> - if Qualify_UnderlierProduct_Equity( underlier ) = False then - returnTerms -> varianceReturnTerms -> dividendApplicability is absent - and returnTerms -> varianceReturnTerms -> equityUnderlierProvisions is absent - and returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment is absent - and returnTerms -> volatilityReturnTerms -> dividendApplicability is absent - and returnTerms -> volatilityReturnTerms -> equityUnderlierProvisions is absent - and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment is absent - and returnTerms -> correlationReturnTerms -> dividendApplicability is absent - and returnTerms -> correlationReturnTerms -> equityUnderlierProvisions is absent - and returnTerms -> correlationReturnTerms -> sharePriceDividendAdjustment is absent - - //condition UnderlierOrObservable: <"The Performance Payout must reference either an underlier or an observable"> - //underlier exists - //or - //ObservationTerms -> observable exists + observationTerms ObservationTerms (0..1) <"Defines how and when a performance type option or performance type swap is to be observed."> + valuationDates ValuationDates (1..1) <"Defines how and when a performance type option or performance type swap is to be valued, including both interim and final valuation."> + paymentDates PaymentDates (1..1) <"Defines the payment date schedule, as defined by the parameters that are needed to specify it, either in a parametric way or by reference to another schedule of dates (e.g. the valuation dates)."> + underlier Product (0..1) <"Identifies the underlying product that is referenced for pricing of the applicable leg in a swap. Referenced in the '2018 ISDA CDM Equity Confirmation for Security Equity Swap' as Security."> + fxFeature FxFeature (0..*) <"Defines quanto or composite FX features that are included in the swap leg."> + returnTerms ReturnTerms (1..1) <"Specifies the type of return of a performance payout."> + condition Quantity: <"When there is an OptionPayout the quantity can be expressed as part of the payoutQuantity, or as part of the underlier in the case of a Swaption. For all other payouts that extend PayoutBase the payoutQuantity is a mandatory attribute."> + priceQuantity exists + + condition NoSharePriceDividendAdjustmentIndex: <"If the underlier is an index, sharePriceAdjustment and sharePriceDividendAdjustment cannot exist."> + if underlier -> index exists + then returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment is absent + and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment is absent + + condition NoSharePriceDividendAdjustmentForeignExchange: <"If the underlier is an foreign exchange, sharePriceAdjustment and sharePriceDividendAdjustment cannot exist."> + if underlier -> foreignExchange exists + then returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment is absent + and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment is absent + + condition CorrelationUnderlierOnlyBasket: <"Correlation Return Terms can only have a basket as underlier, since it needs to compute the correlation between two or more products."> + if returnTerms -> correlationReturnTerms exists + then underlier -> basket only exists + + condition EquitySpecificAttributes: <"Equity specific attributes cannot be present in non-equity products."> + if Qualify_UnderlierProduct_Equity(underlier) = False + then returnTerms -> varianceReturnTerms -> dividendApplicability is absent + and returnTerms -> varianceReturnTerms -> equityUnderlierProvisions is absent + and returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment is absent + and returnTerms -> volatilityReturnTerms -> dividendApplicability is absent + and returnTerms -> volatilityReturnTerms -> equityUnderlierProvisions is absent + and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment is absent + and returnTerms -> correlationReturnTerms -> dividendApplicability is absent + and returnTerms -> correlationReturnTerms -> equityUnderlierProvisions is absent + and returnTerms -> correlationReturnTerms -> sharePriceDividendAdjustment is absent + +// condition UnderlierOrObservable: <"The Performance Payout must reference either an underlier or an observable"> +// underlier exists +// or +// ObservationTerms -> observable exists type Payout: <"A class to represent the set of future cashflow methodologies in the form of specific payout class(es) that can be associated for the purpose of specifying a financial product. For example, two interest rate payouts can be combined to specify an interest rate swap, or one interest rate payout can be combined with a credit default payout to specify a credit default swap."> [metadata key] - interestRatePayout InterestRatePayout (0..*) <"All of the terms necessary to define and calculate a cash flow based on a fixed, a floating or an inflation index rate. The interest rate payout can be applied to interest rate swaps and FRA (which both have two associated interest rate payouts), credit default swaps (to represent the fee leg when subject to periodic payments) and equity swaps (to represent the funding leg)."> - creditDefaultPayout CreditDefaultPayout (0..1) <"The credit default payout, which provides the details necessary for determining when a credit payout will be triggered as well as the parameters for calculating the payout and the settlement terms."> - optionPayout OptionPayout (0..*) <"The option payout."> - commodityPayout CommodityPayout (0..*) <"Defines the payout for the floating leg of a Commodity Swap."> - forwardPayout ForwardPayout (0..*) <"Represents a forward settling payout. The 'Underlier' attribute captures the underlying payout, which is settled according to the 'SettlementTerms' attribute. Both FX Spot and FX Forward should use this component."> - fixedPricePayout FixedPricePayout (0..*) <"Defines a payout in which one or more payouts are defined as a fixed price."> - securityPayout SecurityPayout (0..*) <"The security payout when the product involves some form of securities, such as collateral in a securities financing transaction"> - [deprecated] - cashflow Cashflow (0..*) <"A cashflow between the parties to the trade. For interest rate and equity products, this corresponds to the FpML additionalPayment element. For credit default swaps, this corresponds to the FpML initialPayment element and the singlePayment element of the fee leg. For option products, it represents the FpML premium element."> - performancePayout PerformancePayout (0..*) <"The performance payout, which encompasses the equity price returns, dividend returns, volatility return, variance return and correlation provisions."> - assetPayout AssetPayout (0..*) <"The security payout when the product involves some form of securities, such as collateral in a securities financing transaction"> - - condition ReturnType_Total_Requires_Dividends: <"A total return implies both a price and a dividend return"> - if performancePayout -> returnTerms -> priceReturnTerms -> returnType all = ReturnTypeEnum -> Total then - performancePayout -> returnTerms -> dividendReturnTerms exists - - condition LastRegularPaymentDate: <"FpML specifies that lastRegularPaymentDate must only be included if there is a final stub. As part of the CDM, this data rule has been adjusted to specify that it only applies to interest rate swaps, as the credit derivatives products can have a specified lastRegularPaymentDate while the stub is typically not applicable to those."> - if interestRatePayout -> paymentDates -> lastRegularPaymentDate exists - and interestRatePayout -> stubPeriod -> finalStub exists - then interestRatePayout count = 2 - - condition PayRelativeTo: <"FpML specifies a required payRelativeTo element as part of the PaymentDates. As standardized CDS don't have such payRelativeTo provision, the cardinality has been relaxed as part of the CDM. This data rule specifies that if the product has two interest rate streams, this provision must exist."> - if interestRatePayout count = 2 - and interestRatePayout -> paymentDates exists - then interestRatePayout -> paymentDates -> payRelativeTo exists - - condition PaymentDatesAdjustments: <"FpML specifies a required paymentDatesAdjustments element as part of the PaymentDates. As standardized CDS don't have such paymentDatesAdjustments provision, the cardinality has been relaxed as part of the CDM. This data rule specifies that if the product has two interest rate streams, this provision must exist."> - if interestRatePayout count = 2 - and interestRatePayout -> paymentDates exists - then interestRatePayout -> paymentDates -> paymentDatesAdjustments exists - - condition PaymentFrequency: <"FpML specifies a required paymentFrequency element as part of the PaymentDates. As standardized CDS may not have such paymentFrequency provision, the cardinality has been relaxed as part of the CDM. This data rule specifies that if the product has two interest rate streams, this provision must exist."> - if interestRatePayout count = 2 - and interestRatePayout -> paymentDates exists - then interestRatePayout -> paymentDates -> paymentFrequency exists - - condition Quantity: <"When there is an OptionPayout the quantity can be expressed as part of the payoutQuantity, or as part of the underlier in the case of a Swaption. For all other payouts that extend PayoutBase the payoutQuantity is a mandatory attribute."> - if optionPayout exists then - optionPayout -> priceQuantity exists - or optionPayout -> underlier -> contractualProduct -> economicTerms -> payout -> interestRatePayout count = 2 - - condition DayCountFraction: <"FpML specifies a required dayCountFraction element as part of the swapStream/calculationPeriodAmount/calculation. As standardized CDS don't have such specified day count fraction, the cardinality has been relaxed as part of the CDM. This data rule specifies that if the product has two interest rate streams, this provision must exist."> - if interestRatePayout count = 2 - then interestRatePayout -> dayCountFraction exists - - condition PaymentDates: <"FpML specifies a required paymentDates element as part of the swapStream. As standardized CDS may not have specified payment dates, the cardinality has been relaxed as part of the CDM. This data rule specifies that if the product has two interest rate streams, this provision must exist."> - if interestRatePayout count = 2 - then interestRatePayout -> dayCountFraction exists - - condition MarketPrice: <"FpML specifies that marketFixedRate and marketPrice only have meaning in a credit index trade"> - if creditDefaultPayout -> generalTerms -> indexReferenceInformation is absent - then creditDefaultPayout -> transactedPrice -> marketFixedRate is absent - and creditDefaultPayout -> transactedPrice -> marketPrice is absent - - condition NotionalResetOnPerformancePayout: <"Notional reset only applies to return swaps, and therefore can only exist on an performancePayout."> - interestRatePayout -> priceQuantity -> reset is absent - and creditDefaultPayout -> priceQuantity -> reset is absent - and optionPayout -> priceQuantity -> reset is absent - and cashflow -> priceQuantity -> reset is absent - - condition NotionalResetInterestRatePayoutExists: <"As the performancePayout->payoutQuantity->reset attribute applies to return swaps, the interestRatePayout needs to be present alongside it."> - if performancePayout -> priceQuantity -> reset contains True - then interestRatePayout exists + interestRatePayout InterestRatePayout (0..*) <"All of the terms necessary to define and calculate a cash flow based on a fixed, a floating or an inflation index rate. The interest rate payout can be applied to interest rate swaps and FRA (which both have two associated interest rate payouts), credit default swaps (to represent the fee leg when subject to periodic payments) and equity swaps (to represent the funding leg)."> + creditDefaultPayout CreditDefaultPayout (0..1) <"The credit default payout, which provides the details necessary for determining when a credit payout will be triggered as well as the parameters for calculating the payout and the settlement terms."> + optionPayout OptionPayout (0..*) <"The option payout."> + commodityPayout CommodityPayout (0..*) <"Defines the payout for the floating leg of a Commodity Swap."> + forwardPayout ForwardPayout (0..*) <"Represents a forward settling payout. The 'Underlier' attribute captures the underlying payout, which is settled according to the 'SettlementTerms' attribute. Both FX Spot and FX Forward should use this component."> + fixedPricePayout FixedPricePayout (0..*) <"Defines a payout in which one or more payouts are defined as a fixed price."> + securityPayout SecurityPayout (0..*) <"The security payout when the product involves some form of securities, such as collateral in a securities financing transaction"> + [deprecated] + cashflow Cashflow (0..*) <"A cashflow between the parties to the trade. For interest rate and equity products, this corresponds to the FpML additionalPayment element. For credit default swaps, this corresponds to the FpML initialPayment element and the singlePayment element of the fee leg. For option products, it represents the FpML premium element."> + performancePayout PerformancePayout (0..*) <"The performance payout, which encompasses the equity price returns, dividend returns, volatility return, variance return and correlation provisions."> + assetPayout AssetPayout (0..*) <"The security payout when the product involves some form of securities, such as collateral in a securities financing transaction"> + + condition ReturnType_Total_Requires_Dividends: <"A total return implies both a price and a dividend return"> + if performancePayout -> returnTerms -> priceReturnTerms -> returnType all = ReturnTypeEnum -> Total + then performancePayout -> returnTerms -> dividendReturnTerms exists + + condition LastRegularPaymentDate: <"FpML specifies that lastRegularPaymentDate must only be included if there is a final stub. As part of the CDM, this data rule has been adjusted to specify that it only applies to interest rate swaps, as the credit derivatives products can have a specified lastRegularPaymentDate while the stub is typically not applicable to those."> + if interestRatePayout -> paymentDates -> lastRegularPaymentDate exists + and interestRatePayout -> stubPeriod -> finalStub exists + then interestRatePayout count = 2 + + condition PayRelativeTo: <"FpML specifies a required payRelativeTo element as part of the PaymentDates. As standardized CDS don't have such payRelativeTo provision, the cardinality has been relaxed as part of the CDM. This data rule specifies that if the product has two interest rate streams, this provision must exist."> + if interestRatePayout count = 2 and interestRatePayout -> paymentDates exists + then interestRatePayout -> paymentDates -> payRelativeTo exists + + condition PaymentDatesAdjustments: <"FpML specifies a required paymentDatesAdjustments element as part of the PaymentDates. As standardized CDS don't have such paymentDatesAdjustments provision, the cardinality has been relaxed as part of the CDM. This data rule specifies that if the product has two interest rate streams, this provision must exist."> + if interestRatePayout count = 2 and interestRatePayout -> paymentDates exists + then interestRatePayout -> paymentDates -> paymentDatesAdjustments exists + + condition PaymentFrequency: <"FpML specifies a required paymentFrequency element as part of the PaymentDates. As standardized CDS may not have such paymentFrequency provision, the cardinality has been relaxed as part of the CDM. This data rule specifies that if the product has two interest rate streams, this provision must exist."> + if interestRatePayout count = 2 and interestRatePayout -> paymentDates exists + then interestRatePayout -> paymentDates -> paymentFrequency exists + + condition Quantity: <"When there is an OptionPayout the quantity can be expressed as part of the payoutQuantity, or as part of the underlier in the case of a Swaption. For all other payouts that extend PayoutBase the payoutQuantity is a mandatory attribute."> + if optionPayout exists + then optionPayout -> priceQuantity exists + or optionPayout -> underlier -> contractualProduct -> economicTerms -> payout -> interestRatePayout count = 2 + + condition DayCountFraction: <"FpML specifies a required dayCountFraction element as part of the swapStream/calculationPeriodAmount/calculation. As standardized CDS don't have such specified day count fraction, the cardinality has been relaxed as part of the CDM. This data rule specifies that if the product has two interest rate streams, this provision must exist."> + if interestRatePayout count = 2 + then interestRatePayout -> dayCountFraction exists + + condition PaymentDates: <"FpML specifies a required paymentDates element as part of the swapStream. As standardized CDS may not have specified payment dates, the cardinality has been relaxed as part of the CDM. This data rule specifies that if the product has two interest rate streams, this provision must exist."> + if interestRatePayout count = 2 + then interestRatePayout -> dayCountFraction exists + + condition MarketPrice: <"FpML specifies that marketFixedRate and marketPrice only have meaning in a credit index trade"> + if creditDefaultPayout -> generalTerms -> indexReferenceInformation is absent + then creditDefaultPayout -> transactedPrice -> marketFixedRate is absent + and creditDefaultPayout -> transactedPrice -> marketPrice is absent + + condition NotionalResetOnPerformancePayout: <"Notional reset only applies to return swaps, and therefore can only exist on an performancePayout."> + interestRatePayout -> priceQuantity -> reset is absent + and creditDefaultPayout -> priceQuantity -> reset is absent + and optionPayout -> priceQuantity -> reset is absent + and cashflow -> priceQuantity -> reset is absent + + condition NotionalResetInterestRatePayoutExists: <"As the performancePayout->payoutQuantity->reset attribute applies to return swaps, the interestRatePayout needs to be present alongside it."> + if performancePayout -> priceQuantity -> reset contains True + then interestRatePayout exists type Product: <"Defines the product that is the subject of a tradable product definition, an underlying product definition, a physical exercise, a position, or other purposes."> - [metadata key] + [metadata key] - contractualProduct ContractualProduct (0..1) <"Specifies the contractual product's economic terms, product identifier, and product taxonomy."> - index Index (0..1) <"Identifies an index by referencing a product identifier."> - loan Loan (0..1) <"Identifies a loan by referencing a product identifier and an optional set of attributes."> - assetPool AssetPool (0..1) <"Identifies an asset pool product for defining pool of assets backing an asset backed security."> - foreignExchange ForeignExchange (0..1) <"Defines a foreign exchange spot or forward transaction."> - commodity Commodity (0..1) <"Identifies a commodity by referencing a product identifier."> - [metadata address "pointsTo"=Observable->commodity] - security Security (0..1) <"Identifies a security by referencing a product identifier and a security type, plus an optional set of attributes."> - basket Basket (0..1) <"Identifies a custom basket by referencing a product identifier and its constituents."> + contractualProduct ContractualProduct (0..1) <"Specifies the contractual product's economic terms, product identifier, and product taxonomy."> + index Index (0..1) <"Identifies an index by referencing a product identifier."> + loan Loan (0..1) <"Identifies a loan by referencing a product identifier and an optional set of attributes."> + assetPool AssetPool (0..1) <"Identifies an asset pool product for defining pool of assets backing an asset backed security."> + foreignExchange ForeignExchange (0..1) <"Defines a foreign exchange spot or forward transaction."> + commodity Commodity (0..1) <"Identifies a commodity by referencing a product identifier."> + [metadata address "pointsTo"=Observable->commodity] + security Security (0..1) <"Identifies a security by referencing a product identifier and a security type, plus an optional set of attributes."> + basket Basket (0..1) <"Identifies a custom basket by referencing a product identifier and its constituents."> - condition: one-of + condition: + one-of type Basket extends ProductBase: <"Defines a custom basket by referencing a product identifier and its consituents."> - basketConstituent Product (1..*) <"Identifies the constituents of the basket"> + basketConstituent Product (1..*) <"Identifies the constituents of the basket"> type TradeLot: <"Specifies the price and quantity of a trade lot, where the same product could be traded multiple times with the same counterparty but in different lots (at a different date, in a different quantity and at a different price). One trade lot combined with a product definition specifies the entire economics of a trade. The lifecycle mechanics of each such trade lot (e.g. cashflow payments) is independent of the other lots."> - lotIdentifier Identifier (0..*) <"Specifies one or more identifiers for the lot, if any."> - priceQuantity PriceQuantity (1..*) <"Specifies the settlement characteristics of a trade lot: price, quantity, observable (optionally) and the settlement terms. This attribute has a multiple cardinality to allow to specify the price, quantity and observable of different legs in a single, composite product (e.g. a Swap)."> + lotIdentifier Identifier (0..*) <"Specifies one or more identifiers for the lot, if any."> + priceQuantity PriceQuantity (1..*) <"Specifies the settlement characteristics of a trade lot: price, quantity, observable (optionally) and the settlement terms. This attribute has a multiple cardinality to allow to specify the price, quantity and observable of different legs in a single, composite product (e.g. a Swap)."> type TradableProduct: <"Definition of a product as ready to be traded, i.e. included in an execution or contract, by associating a specific price and quantity to this product plus an (optional) mechanism for any potential future quantity adjustment."> - product Product (1..1) <"The underlying product to be included in a contract or execution."> - tradeLot TradeLot (1..*) <"Specifies the price, quantity and effective date of each trade lot, when the same product may be traded multiple times in different lots with the same counterparty. In a trade increase, a new trade lot is added to the list, with the corresponding effective date. In a trade decrease, the existing trade lot(s) are decreased of the corresponding quantity (and an unwind fee may have to be settled). The multiple cardinality and the ability to increase existing trades is used for Equity Swaps in particular."> - counterparty Counterparty (2..2) <"Specifies the parties which are the two counterparties to the transaction. The product is agnostic to the actual parties to the transaction, with the party references abstracted away from the product definition and replaced by the counterparty enum (e.g. CounterpartyEnum values Party1 or Party2). The counterparty enum can then be positioned in the product (e.g. to specify which counterparty is the payer, receiver etc) and this counterparties attribute, which is positioned outside of the product definition, allows the counterparty enum to be associated with an actual party reference."> - [docReference ICMA GMRA namingConvention "Party" - provision "Parties entering into GMRA, as specified on page 1 of the GMRA and under 1. (a)."] - ancillaryParty AncillaryParty (0..*) <"Specifies the parties with ancillary roles in the transaction. The product is agnostic to the actual parties involved in the transaction, with the party references abstracted away from the product definition and replaced by the AncillaryRoleEnum. The AncillaryRoleEnum can then be positioned in the product and this AncillaryParty type, which is positioned outside of the product definition, allows the AncillaryRoleEnum to be associated with an actual party reference."> - adjustment NotionalAdjustmentEnum (0..1) <"Specifies the conditions that govern the adjustment to the quantity of a product being traded: e.g. execution, portfolio rebalancing etc. It is typically used in the context of Equity Swaps."> - - condition PriceQuantityTriangulation: <"Check PriceQuantity triangulation for each TradeLot."> - PriceQuantityTriangulation( tradeLot ) = True - - condition NotionalAdjustment: <"As the adjustment attribute applies to return swaps, the equity payout needs to be present alongside it."> - if adjustment exists - then product -> contractualProduct -> economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms exists - or product -> contractualProduct -> economicTerms -> payout -> performancePayout exists - - condition PerformancePayout_ExtraordinaryDividendsParty: - if product -> contractualProduct -> economicTerms -> payout -> performancePayout -> returnTerms -> dividendReturnTerms -> extraordinaryDividendsParty exists - then ancillaryParty -> role contains AncillaryRoleEnum -> ExtraordinaryDividendsParty - and if ancillaryParty -> role contains AncillaryRoleEnum -> ExtraordinaryDividendsParty - then product -> contractualProduct -> economicTerms -> payout -> performancePayout -> returnTerms -> dividendReturnTerms -> extraordinaryDividendsParty exists - - condition OptionPayout_PredeterminedClearingOrganizationParty: - if product -> contractualProduct -> economicTerms -> payout -> optionPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists - then ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty - - condition ForwardPayout_PredeterminedClearingOrganizationParty: - if product -> contractualProduct -> economicTerms -> payout -> forwardPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists - then ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty - - condition PredeterminedClearingOrganizationParty: - if ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty then - product -> contractualProduct -> economicTerms -> payout -> forwardPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists or - product -> contractualProduct -> economicTerms -> payout -> optionPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists - - condition ExerciseNoticeReceiverPartyManual: - if product -> contractualProduct -> economicTerms -> payout -> optionPayout -> exerciseTerms -> exerciseProcedure -> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists - then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual - and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual - then product -> contractualProduct -> economicTerms -> payout -> optionPayout -> exerciseTerms -> exerciseProcedure -> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists - - condition ExerciseNoticeReceiverPartyOptionalEarlyTermination: - if product -> contractualProduct -> economicTerms -> terminationProvision -> earlyTerminationProvision -> optionalEarlyTermination -> exerciseNotice -> exerciseNoticeReceiver exists - then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyOptionalEarlyTermination - and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyOptionalEarlyTermination - then product -> contractualProduct -> economicTerms -> terminationProvision -> earlyTerminationProvision -> optionalEarlyTermination -> exerciseNotice -> exerciseNoticeReceiver exists - - condition ExerciseNoticeReceiverPartyCancelableProvision: - if product -> contractualProduct -> economicTerms -> terminationProvision -> cancelableProvision -> exerciseNotice -> exerciseNoticeReceiver exists - then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyCancelableProvision - and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyCancelableProvision - then product -> contractualProduct -> economicTerms -> terminationProvision -> cancelableProvision -> exerciseNotice -> exerciseNoticeReceiver exists - - condition ExerciseNoticeReceiverPartyExtendibleProvision: - if product -> contractualProduct -> economicTerms -> terminationProvision -> extendibleProvision -> exerciseNotice -> exerciseNoticeReceiver exists - then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyExtendibleProvision - and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyExtendibleProvision - then product -> contractualProduct -> economicTerms -> terminationProvision -> extendibleProvision -> exerciseNotice -> exerciseNoticeReceiver exists - - condition CalculationAgentIndependent: - if product -> contractualProduct -> economicTerms -> calculationAgent -> calculationAgentParty exists - then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentIndependent - and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentIndependent - then product -> contractualProduct -> economicTerms -> calculationAgent -> calculationAgentParty exists - - condition CalculationAgentOptionalEarlyTermination: - if product -> contractualProduct -> economicTerms -> terminationProvision -> earlyTerminationProvision -> optionalEarlyTermination -> calculationAgent -> calculationAgentParty exists - then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentOptionalEarlyTermination - and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentOptionalEarlyTermination - then product -> contractualProduct -> economicTerms -> terminationProvision -> earlyTerminationProvision -> optionalEarlyTermination -> calculationAgent -> calculationAgentParty exists - - condition CalculationAgentMandatoryEarlyTermination: - if product -> contractualProduct -> economicTerms -> terminationProvision -> earlyTerminationProvision -> mandatoryEarlyTermination -> calculationAgent -> calculationAgentParty exists - then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentMandatoryEarlyTermination - and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentMandatoryEarlyTermination - then product -> contractualProduct -> economicTerms -> terminationProvision -> earlyTerminationProvision -> mandatoryEarlyTermination -> calculationAgent -> calculationAgentParty exists + product Product (1..1) <"The underlying product to be included in a contract or execution."> + tradeLot TradeLot (1..*) <"Specifies the price, quantity and effective date of each trade lot, when the same product may be traded multiple times in different lots with the same counterparty. In a trade increase, a new trade lot is added to the list, with the corresponding effective date. In a trade decrease, the existing trade lot(s) are decreased of the corresponding quantity (and an unwind fee may have to be settled). The multiple cardinality and the ability to increase existing trades is used for Equity Swaps in particular."> + counterparty Counterparty (2..2) <"Specifies the parties which are the two counterparties to the transaction. The product is agnostic to the actual parties to the transaction, with the party references abstracted away from the product definition and replaced by the counterparty enum (e.g. CounterpartyEnum values Party1 or Party2). The counterparty enum can then be positioned in the product (e.g. to specify which counterparty is the payer, receiver etc) and this counterparties attribute, which is positioned outside of the product definition, allows the counterparty enum to be associated with an actual party reference."> + [docReference ICMA GMRA namingConvention "Party" + provision "Parties entering into GMRA, as specified on page 1 of the GMRA and under 1. (a)."] + ancillaryParty AncillaryParty (0..*) <"Specifies the parties with ancillary roles in the transaction. The product is agnostic to the actual parties involved in the transaction, with the party references abstracted away from the product definition and replaced by the AncillaryRoleEnum. The AncillaryRoleEnum can then be positioned in the product and this AncillaryParty type, which is positioned outside of the product definition, allows the AncillaryRoleEnum to be associated with an actual party reference."> + adjustment NotionalAdjustmentEnum (0..1) <"Specifies the conditions that govern the adjustment to the quantity of a product being traded: e.g. execution, portfolio rebalancing etc. It is typically used in the context of Equity Swaps."> + + condition PriceQuantityTriangulation: <"Check PriceQuantity triangulation for each TradeLot."> + PriceQuantityTriangulation(tradeLot) = True + + condition NotionalAdjustment: <"As the adjustment attribute applies to return swaps, the equity payout needs to be present alongside it."> + if adjustment exists + then product -> contractualProduct -> economicTerms -> payout -> performancePayout -> returnTerms -> priceReturnTerms exists + or product -> contractualProduct -> economicTerms -> payout -> performancePayout exists + + condition PerformancePayout_ExtraordinaryDividendsParty: + if product -> contractualProduct -> economicTerms -> payout -> performancePayout -> returnTerms -> dividendReturnTerms -> extraordinaryDividendsParty exists + then ancillaryParty -> role contains AncillaryRoleEnum -> ExtraordinaryDividendsParty + and if ancillaryParty -> role contains AncillaryRoleEnum -> ExtraordinaryDividendsParty + then product -> contractualProduct -> economicTerms -> payout -> performancePayout -> returnTerms -> dividendReturnTerms -> extraordinaryDividendsParty exists + + condition OptionPayout_PredeterminedClearingOrganizationParty: + if product -> contractualProduct -> economicTerms -> payout -> optionPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists + then ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty + + condition ForwardPayout_PredeterminedClearingOrganizationParty: + if product -> contractualProduct -> economicTerms -> payout -> forwardPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists + then ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty + + condition PredeterminedClearingOrganizationParty: + if ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty + then product -> contractualProduct -> economicTerms -> payout -> forwardPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists + or product -> contractualProduct -> economicTerms -> payout -> optionPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists + + condition ExerciseNoticeReceiverPartyManual: + if product -> contractualProduct -> economicTerms -> payout -> optionPayout -> exerciseTerms -> exerciseProcedure -> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists + then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual + and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual + then product -> contractualProduct -> economicTerms -> payout -> optionPayout -> exerciseTerms -> exerciseProcedure -> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists + + condition ExerciseNoticeReceiverPartyOptionalEarlyTermination: + if product -> contractualProduct -> economicTerms -> terminationProvision -> earlyTerminationProvision -> optionalEarlyTermination -> exerciseNotice -> exerciseNoticeReceiver exists + then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyOptionalEarlyTermination + and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyOptionalEarlyTermination + then product -> contractualProduct -> economicTerms -> terminationProvision -> earlyTerminationProvision -> optionalEarlyTermination -> exerciseNotice -> exerciseNoticeReceiver exists + + condition ExerciseNoticeReceiverPartyCancelableProvision: + if product -> contractualProduct -> economicTerms -> terminationProvision -> cancelableProvision -> exerciseNotice -> exerciseNoticeReceiver exists + then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyCancelableProvision + and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyCancelableProvision + then product -> contractualProduct -> economicTerms -> terminationProvision -> cancelableProvision -> exerciseNotice -> exerciseNoticeReceiver exists + + condition ExerciseNoticeReceiverPartyExtendibleProvision: + if product -> contractualProduct -> economicTerms -> terminationProvision -> extendibleProvision -> exerciseNotice -> exerciseNoticeReceiver exists + then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyExtendibleProvision + and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyExtendibleProvision + then product -> contractualProduct -> economicTerms -> terminationProvision -> extendibleProvision -> exerciseNotice -> exerciseNoticeReceiver exists + + condition CalculationAgentIndependent: + if product -> contractualProduct -> economicTerms -> calculationAgent -> calculationAgentParty exists + then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentIndependent + and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentIndependent + then product -> contractualProduct -> economicTerms -> calculationAgent -> calculationAgentParty exists + + condition CalculationAgentOptionalEarlyTermination: + if product -> contractualProduct -> economicTerms -> terminationProvision -> earlyTerminationProvision -> optionalEarlyTermination -> calculationAgent -> calculationAgentParty exists + then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentOptionalEarlyTermination + and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentOptionalEarlyTermination + then product -> contractualProduct -> economicTerms -> terminationProvision -> earlyTerminationProvision -> optionalEarlyTermination -> calculationAgent -> calculationAgentParty exists + + condition CalculationAgentMandatoryEarlyTermination: + if product -> contractualProduct -> economicTerms -> terminationProvision -> earlyTerminationProvision -> mandatoryEarlyTermination -> calculationAgent -> calculationAgentParty exists + then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentMandatoryEarlyTermination + and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentMandatoryEarlyTermination + then product -> contractualProduct -> economicTerms -> terminationProvision -> earlyTerminationProvision -> mandatoryEarlyTermination -> calculationAgent -> calculationAgentParty exists type ConstituentWeight: <"A class describing the weight of each of the underlier constituent within the basket, either in absolute or relative terms."> - openUnits number (0..1) <"The number of units (index or securities) that constitute the underlier of the swap. In the case of a basket swap, this element is used to reference both the number of basket units, and the number of each asset components of the basket when these are expressed in absolute terms."> - basketPercentage number (0..1) <"The relative weight of each respective basket constituent, expressed in percentage. A basket percentage of 5% would be represented as 0.05."> + openUnits number (0..1) <"The number of units (index or securities) that constitute the underlier of the swap. In the case of a basket swap, this element is used to reference both the number of basket units, and the number of each asset components of the basket when these are expressed in absolute terms."> + basketPercentage number (0..1) <"The relative weight of each respective basket constituent, expressed in percentage. A basket percentage of 5% would be represented as 0.05."> - condition BasketPercentage: <"FpML specifies basketPercentage as a RestrictedPercentage type, meaning that the value needs to be comprised between 0 and 1."> - if basketPercentage exists - then basketPercentage >= 0.0 and basketPercentage <= 1.0 + condition BasketPercentage: <"FpML specifies basketPercentage as a RestrictedPercentage type, meaning that the value needs to be comprised between 0 and 1."> + if basketPercentage exists + then basketPercentage >= 0.0 and basketPercentage <= 1.0 type ForwardPayout extends PayoutBase: <"Represents a forward settling payout. The underlier attribute captures the underlying payout, which is settled according to the settlementTerms attribute (which is part of PayoutBase). Both FX Spot and FX Forward should use this component."> - [metadata key] + [metadata key] - underlier Product (1..1) <"Underlying product that the forward is written on, which can be of any type: FX, a contractual product, a security, etc."> + underlier Product (1..1) <"Underlying product that the forward is written on, which can be of any type: FX, a contractual product, a security, etc."> deliveryTerm string (0..1) <"Also called contract month or delivery month. However, it's not always a month. It is usually expressed using a code, e.g. Z23 would be the Dec 2023 contract, (Z = December). For crude oil, the corresponding contract might be called CLZ23."> - condition SettlementTerms: <"For foreign exchange contracts, the settlement terms must exist."> - if underlier -> foreignExchange exists - then settlementTerms exists - - condition SettlementDate: <"For foreign exchange contracts, either the settlementDate is set or the cashflowDates, but not both. When the cashflowDates are set, they must be the same for the 2 legs of the currency pair."> - if underlier -> foreignExchange exists then - ( - settlementTerms -> settlementDate -> valueDate exists - and underlier -> foreignExchange -> exchangedCurrency1 -> settlementTerms -> settlementDate -> adjustableOrRelativeDate is absent - and underlier -> foreignExchange -> exchangedCurrency2 -> settlementTerms -> settlementDate -> adjustableOrRelativeDate is absent - ) or - ( - settlementTerms -> settlementDate -> valueDate is absent - and underlier -> foreignExchange -> exchangedCurrency1 -> settlementTerms -> settlementDate -> adjustableOrRelativeDate exists - and underlier -> foreignExchange -> exchangedCurrency2 -> settlementTerms -> settlementDate -> adjustableOrRelativeDate exists - and underlier -> foreignExchange -> exchangedCurrency1 -> settlementTerms -> settlementDate -> adjustableOrRelativeDate = underlier -> foreignExchange -> exchangedCurrency2 -> settlementTerms -> settlementDate -> adjustableOrRelativeDate - ) - - condition FxSettlement: <"For foreign exchange contracts, the settlement type must be either fx non-deliverable settlement or not specified, which implies physical settlement in the case of foreign exchange."> - if underlier -> foreignExchange exists - then settlementTerms -> physicalSettlementTerms is absent + condition SettlementTerms: <"For foreign exchange contracts, the settlement terms must exist."> + if underlier -> foreignExchange exists + then settlementTerms exists + + condition SettlementDate: <"For foreign exchange contracts, either the settlementDate is set or the cashflowDates, but not both. When the cashflowDates are set, they must be the same for the 2 legs of the currency pair."> + if underlier -> foreignExchange exists + then (settlementTerms -> settlementDate -> valueDate exists + and underlier -> foreignExchange -> exchangedCurrency1 -> settlementTerms -> settlementDate -> adjustableOrRelativeDate is absent + and underlier -> foreignExchange -> exchangedCurrency2 -> settlementTerms -> settlementDate -> adjustableOrRelativeDate is absent) + or (settlementTerms -> settlementDate -> valueDate is absent + and underlier -> foreignExchange -> exchangedCurrency1 -> settlementTerms -> settlementDate -> adjustableOrRelativeDate exists + and underlier -> foreignExchange -> exchangedCurrency2 -> settlementTerms -> settlementDate -> adjustableOrRelativeDate exists + and underlier -> foreignExchange -> exchangedCurrency1 -> settlementTerms -> settlementDate -> adjustableOrRelativeDate = underlier -> foreignExchange -> exchangedCurrency2 -> settlementTerms -> settlementDate -> adjustableOrRelativeDate) + + condition FxSettlement: <"For foreign exchange contracts, the settlement type must be either fx non-deliverable settlement or not specified, which implies physical settlement in the case of foreign exchange."> + if underlier -> foreignExchange exists + then settlementTerms -> physicalSettlementTerms is absent type CommoditySchedule: <"A class that allows the full representation of a commodity payout by defining a set of schedule periods. It supports standard schedule customization by expressing all the dates, quantities, and pricing data in a non-parametric way."> - schedulePeriod SchedulePeriod (1..*) <"Defines a period of a commodity schedule structure."> + schedulePeriod SchedulePeriod (1..*) <"Defines a period of a commodity schedule structure."> type SchedulePeriod: <"A class that defines the commodity period of a schedule. The period contains a set of start and end dates, quantities, fixing, and pricing data."> calculationPeriod DateRange (1..1) <"Period for which the payment is generated."> @@ -455,128 +440,127 @@ type SchedulePeriod: <"A class that defines the commodity period of a schedule. deliveryPeriod CommodityDeliveryPeriods (0..1) <"Period and time profile over which the delivery takes place."> type FixedPricePayout extends PayoutBase: <"Represents a fixed price payout. There is no underlier associated with this payout type and is based on fixed pricing per a given unit (e.g. in commodities price per barrel)"> - [metadata key] + [metadata key] - paymentDates PaymentDates (1..1) <"Specifies the parameters to generate the payment date schedule, either through a parametric representation or by reference to specified dates."> + paymentDates PaymentDates (1..1) <"Specifies the parameters to generate the payment date schedule, either through a parametric representation or by reference to specified dates."> fixedPrice FixedPrice (1..1) <"Specifies the fixed price on which fixed forward payments are based."> schedule CommoditySchedule (0..1) <"Allows the full representation of a commodity payout by defining a set of schedule periods. It supports standard schedule customization by expressing all the dates, quantities, and pricing data in a non-parametric way."> - condition Quantity: <"When there is an OptionPayout the quantity can be expressed as part of the payoutQuantity, or as part of the underlier in the case of a Swaption. For all other payouts that extend PayoutBase the payoutQuantity is a mandatory attribute."> - priceQuantity exists + condition Quantity: <"When there is an OptionPayout the quantity can be expressed as part of the payoutQuantity, or as part of the underlier in the case of a Swaption. For all other payouts that extend PayoutBase the payoutQuantity is a mandatory attribute."> + priceQuantity exists type CancelableProvision extends BuyerSeller: <"A data defining: the right of a party to cancel a swap transaction on the specified exercise dates. The provision is for 'walk-away' cancellation (i.e. the fair value of the swap is not paid). A fee payable on exercise can be specified. As a difference from the FpML construct, the canonical model extends the BuyerSeller class."> - americanExercise AmericanExercise (0..1) <"American exercise. FpML implementations consists in an exercise substitution group."> - bermudaExercise BermudaExercise (0..1) <"Bermuda exercise. FpML implementations consists in an exercise substitution group."> - europeanExercise EuropeanExercise (0..1) <"European exercise. FpML implementations consists in an exercise substitution group."> - exerciseNotice ExerciseNotice (0..1) <"Definition of the party to whom notice of exercise should be given."> - followUpConfirmation boolean (1..1) <"A flag to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent."> - cancelableProvisionAdjustedDates CancelableProvisionAdjustedDates (0..1) <"The adjusted dates associated with a cancelable provision. These dates have been adjusted for any applicable business day convention."> - finalCalculationPeriodDateAdjustment FinalCalculationPeriodDateAdjustment (0..*) <"Business date convention adjustment to final payment period per leg (swapStream) upon exercise event. The adjustments can be made in-line with leg level BDC's or they can be specified separately."> - initialFee Transfer (0..1) <"An initial fee for the cancelable option."> - callingParty CallingPartyEnum (0..1) <"The party with right to exercise a cancellation. Allows for buyer, seller or either."> + americanExercise AmericanExercise (0..1) <"American exercise. FpML implementations consists in an exercise substitution group."> + bermudaExercise BermudaExercise (0..1) <"Bermuda exercise. FpML implementations consists in an exercise substitution group."> + europeanExercise EuropeanExercise (0..1) <"European exercise. FpML implementations consists in an exercise substitution group."> + exerciseNotice ExerciseNotice (0..1) <"Definition of the party to whom notice of exercise should be given."> + followUpConfirmation boolean (1..1) <"A flag to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent."> + cancelableProvisionAdjustedDates CancelableProvisionAdjustedDates (0..1) <"The adjusted dates associated with a cancelable provision. These dates have been adjusted for any applicable business day convention."> + finalCalculationPeriodDateAdjustment FinalCalculationPeriodDateAdjustment (0..*) <"Business date convention adjustment to final payment period per leg (swapStream) upon exercise event. The adjustments can be made in-line with leg level BDC's or they can be specified separately."> + initialFee Transfer (0..1) <"An initial fee for the cancelable option."> + callingParty CallingPartyEnum (0..1) <"The party with right to exercise a cancellation. Allows for buyer, seller or either."> earliestDate AdjustableOrRelativeDate (0..1) <"The first day when cancelation is permitted to take effect. A party may give notice prior to this date and taken together with the effective period would be necessary to cancel on this date."> - expirationDate AdjustableOrRelativeDate (0..1) <"The last day within the term of the contract that cancelation is allowed."> - effectiveDate AdjustableOrRelativeDates (0..1) <"The effective date if cancelation is invoked otherwise the cancellation period defines the cancellation date."> - effectivePeriod Period (0..1) <"Effective period for cancelation when notice is given. This is the period after notice is given that cancellation becomes effecticve."> - earliestCancellationTime BusinessCenterTime (0..1) <"The earliest time in a business day that notice of cancelation can be given."> latestCancelationTime BusinessCenterTime (0..1 ) <"The latest time at which notice of cancelation can be given."> + expirationDate AdjustableOrRelativeDate (0..1) <"The last day within the term of the contract that cancelation is allowed."> + effectiveDate AdjustableOrRelativeDates (0..1) <"The effective date if cancelation is invoked otherwise the cancellation period defines the cancellation date."> + effectivePeriod Period (0..1) <"Effective period for cancelation when notice is given. This is the period after notice is given that cancellation becomes effecticve."> + earliestCancellationTime BusinessCenterTime (0..1) <"The earliest time in a business day that notice of cancelation can be given."> + latestCancelationTime BusinessCenterTime (0..1) <"The latest time at which notice of cancelation can be given."> - // condition ExerciseChoice: <"condition to represent an FpML substitution group construct."> - // optional choice americanExercise, bermudaExercise, europeanExercise + // condition ExerciseChoice: <"condition to represent an FpML substitution group construct."> + // optional choice americanExercise, bermudaExercise, europeanExercise + condition EffectiveDate: <"Must select one of predefined cancellation types of effectiveDate or effectivePeriod."> + optional choice effectiveDate, effectivePeriod - condition EffectiveDate: <"Must select one of predefined cancellation types of effectiveDate or effectivePeriod."> - optional choice effectiveDate, effectivePeriod - - condition CancelableProvisionExerciseNoticeReceiverParty: - if exerciseNotice -> exerciseNoticeReceiver exists - then exerciseNotice -> exerciseNoticeReceiver = AncillaryRoleEnum -> ExerciseNoticeReceiverPartyCancelableProvision + condition CancelableProvisionExerciseNoticeReceiverParty: + if exerciseNotice -> exerciseNoticeReceiver exists + then exerciseNotice -> exerciseNoticeReceiver = AncillaryRoleEnum -> ExerciseNoticeReceiverPartyCancelableProvision type CancelableProvisionAdjustedDates: <"A data to: define the adjusted dates for a cancelable provision on a swap transaction."> - cancellationEvent CancellationEvent (1..*) <"The adjusted dates for an individual cancellation date."> + cancellationEvent CancellationEvent (1..*) <"The adjusted dates for an individual cancellation date."> type CancellationEvent: <"The adjusted dates for a specific cancellation date, including the adjusted exercise date and adjusted termination date."> - [metadata key] + [metadata key] - adjustedExerciseDate date (1..1) <"The date on which option exercise takes place. This date should already be adjusted for any applicable business day convention."> - adjustedEarlyTerminationDate date (1..1) <"The early termination date that is applicable if an early termination provision is exercised. This date should already be adjusted for any applicable business day convention."> + adjustedExerciseDate date (1..1) <"The date on which option exercise takes place. This date should already be adjusted for any applicable business day convention."> + adjustedEarlyTerminationDate date (1..1) <"The early termination date that is applicable if an early termination provision is exercised. This date should already be adjusted for any applicable business day convention."> type EarlyTerminationEvent: <"A data to: define the adjusted dates associated with an early termination provision."> - [metadata key] + [metadata key] - adjustedExerciseDate date (1..1) <"The date on which option exercise takes place. This date should already be adjusted for any applicable business day convention."> - adjustedEarlyTerminationDate date (1..1) <"The early termination date that is applicable if an early termination provision is exercised. This date should already be adjusted for any applicable business day convention."> - adjustedCashSettlementValuationDate date (1..1) <"The date by which the cash settlement amount must be agreed. This date should already be adjusted for any applicable business day convention."> - adjustedCashSettlementPaymentDate date (1..1) <"The date on which the cash settlement amount is paid. This date should already be adjusted for any applicable business date convention."> - adjustedExerciseFeePaymentDate date (0..1) <"The date on which the exercise fee amount is paid. This date should already be adjusted for any applicable business day convention."> + adjustedExerciseDate date (1..1) <"The date on which option exercise takes place. This date should already be adjusted for any applicable business day convention."> + adjustedEarlyTerminationDate date (1..1) <"The early termination date that is applicable if an early termination provision is exercised. This date should already be adjusted for any applicable business day convention."> + adjustedCashSettlementValuationDate date (1..1) <"The date by which the cash settlement amount must be agreed. This date should already be adjusted for any applicable business day convention."> + adjustedCashSettlementPaymentDate date (1..1) <"The date on which the cash settlement amount is paid. This date should already be adjusted for any applicable business date convention."> + adjustedExerciseFeePaymentDate date (0..1) <"The date on which the exercise fee amount is paid. This date should already be adjusted for any applicable business day convention."> - condition FpML_ird_39: <"FpML validation rule ird-39 - AdjustedExerciseDate must be before or equal to adjustedEarlyTerminationDate."> - adjustedExerciseDate <= adjustedEarlyTerminationDate + condition FpML_ird_39: <"FpML validation rule ird-39 - AdjustedExerciseDate must be before or equal to adjustedEarlyTerminationDate."> + adjustedExerciseDate <= adjustedEarlyTerminationDate - condition FpML_ird_40: <"FpML validation rule ird-40 - AdjustedExerciseDate must be before or equal to adjustedCashSettlementValuationDate."> - adjustedExerciseDate <= adjustedCashSettlementValuationDate + condition FpML_ird_40: <"FpML validation rule ird-40 - AdjustedExerciseDate must be before or equal to adjustedCashSettlementValuationDate."> + adjustedExerciseDate <= adjustedCashSettlementValuationDate - condition FpML_ird_41: <"FpML validation rule ird-41 - AdjustedCashSettlementValuationDate must be before or equal to adjustedCashSettlementPaymentDate."> - adjustedCashSettlementValuationDate <= adjustedCashSettlementPaymentDate + condition FpML_ird_41: <"FpML validation rule ird-41 - AdjustedCashSettlementValuationDate must be before or equal to adjustedCashSettlementPaymentDate."> + adjustedCashSettlementValuationDate <= adjustedCashSettlementPaymentDate type EarlyTerminationProvision: <"A data defining: an early termination provision for a swap. This early termination is at fair value, i.e. on termination the fair value of the product must be settled between the parties."> - [metadata key] + [metadata key] - mandatoryEarlyTermination MandatoryEarlyTermination (0..1) <"A mandatory early termination provision to terminate the swap at fair value."> - mandatoryEarlyTerminationDateTenor Period (0..1) <"Period after trade date of the mandatory early termination date."> - optionalEarlyTermination OptionalEarlyTermination (0..1) <"An option for either or both parties to terminate the swap at fair value."> - optionalEarlyTerminationParameters ExercisePeriod (0..1) <"Definition of the first early termination date and the frequency of the termination dates subsequent to that. American exercise is defined by having a frequency of one day."> + mandatoryEarlyTermination MandatoryEarlyTermination (0..1) <"A mandatory early termination provision to terminate the swap at fair value."> + mandatoryEarlyTerminationDateTenor Period (0..1) <"Period after trade date of the mandatory early termination date."> + optionalEarlyTermination OptionalEarlyTermination (0..1) <"An option for either or both parties to terminate the swap at fair value."> + optionalEarlyTerminationParameters ExercisePeriod (0..1) <"Definition of the first early termination date and the frequency of the termination dates subsequent to that. American exercise is defined by having a frequency of one day."> - condition MandatoryEarlyTermination: <"The FpML MandatoryEarlyTermination.model specifies a required choice node. The choice node associated with the FpML EarlyTerminationProvision is quite complex and using the data rule provides a more flexible approach than adding complexity to the condition grammar."> - (mandatoryEarlyTermination exists or optionalEarlyTermination exists) - or (mandatoryEarlyTermination exists and optionalEarlyTermination exists) + condition MandatoryEarlyTermination: <"The FpML MandatoryEarlyTermination.model specifies a required choice node. The choice node associated with the FpML EarlyTerminationProvision is quite complex and using the data rule provides a more flexible approach than adding complexity to the condition grammar."> + (mandatoryEarlyTermination exists or optionalEarlyTermination exists) + or (mandatoryEarlyTermination exists and optionalEarlyTermination exists) type ExercisePeriod: <"This defines the time interval to the start of the exercise period, i.e. the earliest exercise date, and the frequency of subsequent exercise dates (if any)."> - [metadata key] + [metadata key] - earliestExerciseDateTenor Period (1..1) <"The time interval to the first (and possibly only) exercise date in the exercise period."> - exerciseFrequency Period (0..1) <"The frequency of subsequent exercise dates in the exercise period following the earliest exercise date. An interval of 1 day should be used to indicate an American style exercise period."> + earliestExerciseDateTenor Period (1..1) <"The time interval to the first (and possibly only) exercise date in the exercise period."> + exerciseFrequency Period (0..1) <"The frequency of subsequent exercise dates in the exercise period following the earliest exercise date. An interval of 1 day should be used to indicate an American style exercise period."> type ExtendibleProvision extends BuyerSeller: <"A data defining: an option to extend an existing swap transaction on the specified exercise dates for a term ending on the specified new termination date. As a difference from FpML, it extends the BuyerSeller class, which represents the BuyerSeller.model."> - americanExercise AmericanExercise (0..1) <"American exercise. FpML implementations consists in an exercise substitution group."> - bermudaExercise BermudaExercise (0..1) <"Bermuda exercise. FpML implementations consists in an exercise substitution group."> - europeanExercise EuropeanExercise (0..1) <"European exercise. FpML implementations consists in an exercise substitution group."> - exerciseNotice ExerciseNotice (0..1) <"Definition of the party to whom notice of exercise should be given."> - followUpConfirmation boolean (0..1) <"A flag to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent."> - extendibleProvisionAdjustedDates ExtendibleProvisionAdjustedDates (0..1) <"The adjusted dates associated with an extendible provision. These dates have been adjusted for any applicable business day convention."> - callingParty CallingPartyEnum (0..1) - - singlePartyOption PartyRole (0..1) <"If the ability to extend the contract is not available to both parties then this component specifies the buyer and seller of the option."> - noticeDeadlinePeriod RelativeDateOffset (0..1) <"Defines the minimum period before a contract is scheduled to terminate that notice can be given that it will terminate beyond the scheduled termination date."> - noticeDeadlineDateTime zonedDateTime (0..1) <"A specific date and time for the notice deadline"> - extensionTerm RelativeDateOffset (0..1) <"The length of each extension period relative to the effective date of the preceding contract."> + americanExercise AmericanExercise (0..1) <"American exercise. FpML implementations consists in an exercise substitution group."> + bermudaExercise BermudaExercise (0..1) <"Bermuda exercise. FpML implementations consists in an exercise substitution group."> + europeanExercise EuropeanExercise (0..1) <"European exercise. FpML implementations consists in an exercise substitution group."> + exerciseNotice ExerciseNotice (0..1) <"Definition of the party to whom notice of exercise should be given."> + followUpConfirmation boolean (0..1) <"A flag to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent."> + extendibleProvisionAdjustedDates ExtendibleProvisionAdjustedDates (0..1) <"The adjusted dates associated with an extendible provision. These dates have been adjusted for any applicable business day convention."> + callingParty CallingPartyEnum (0..1) + singlePartyOption PartyRole (0..1) <"If the ability to extend the contract is not available to both parties then this component specifies the buyer and seller of the option."> + noticeDeadlinePeriod RelativeDateOffset (0..1) <"Defines the minimum period before a contract is scheduled to terminate that notice can be given that it will terminate beyond the scheduled termination date."> + noticeDeadlineDateTime zonedDateTime (0..1) <"A specific date and time for the notice deadline"> + extensionTerm RelativeDateOffset (0..1) <"The length of each extension period relative to the effective date of the preceding contract."> extensionPeriod AdjustableRelativeOrPeriodicDates (0..1) <"The period within which notice can be given that the contract will be extended."> - condition ExtendibleProvisionExerciseNoticeReceiverParty: - if exerciseNotice -> exerciseNoticeReceiver exists - then exerciseNotice -> exerciseNoticeReceiver = AncillaryRoleEnum -> ExerciseNoticeReceiverPartyExtendibleProvision + condition ExtendibleProvisionExerciseNoticeReceiverParty: + if exerciseNotice -> exerciseNoticeReceiver exists + then exerciseNotice -> exerciseNoticeReceiver = AncillaryRoleEnum -> ExerciseNoticeReceiverPartyExtendibleProvision type ExtendibleProvisionAdjustedDates: <"A data defining: the adjusted dates associated with a provision to extend a swap."> - extensionEvent ExtensionEvent (1..*) <"The adjusted dates associated with a single extendible exercise date."> + extensionEvent ExtensionEvent (1..*) <"The adjusted dates associated with a single extendible exercise date."> type ExtensionEvent: <"A data to: define the adjusted dates associated with an individual extension event."> - [metadata key] + [metadata key] - adjustedExerciseDate date (1..1) <"The date on which option exercise takes place. This date should already be adjusted for any applicable business day convention."> - adjustedExtendedTerminationDate date (1..1) <"The termination date if an extendible provision is exercised. This date should already be adjusted for any applicable business day convention."> + adjustedExerciseDate date (1..1) <"The date on which option exercise takes place. This date should already be adjusted for any applicable business day convention."> + adjustedExtendedTerminationDate date (1..1) <"The termination date if an extendible provision is exercised. This date should already be adjusted for any applicable business day convention."> - condition FpML_ird_42: <"FpML validation rule ird-42 - adjustedExerciseDate must be before adjustedExtendedTerminationDate."> - adjustedExerciseDate < adjustedExtendedTerminationDate + condition FpML_ird_42: <"FpML validation rule ird-42 - adjustedExerciseDate must be before adjustedExtendedTerminationDate."> + adjustedExerciseDate < adjustedExtendedTerminationDate type MandatoryEarlyTermination: <"A data to: define an early termination provision for which exercise is mandatory."> - [metadata key] + [metadata key] - mandatoryEarlyTerminationDate AdjustableDate (1..1) <"The early termination date associated with a mandatory early termination of a swap."> - calculationAgent CalculationAgent (1..1) <"The ISDA Calculation Agent responsible for performing duties associated with an optional early termination."> - cashSettlement SettlementTerms (1..1) <"If specified, this means that cash settlement is applicable to the transaction and defines the parameters associated with the cash settlement procedure. If not specified, then physical settlement is applicable."> - mandatoryEarlyTerminationAdjustedDates MandatoryEarlyTerminationAdjustedDates (0..1) <"The adjusted dates associated with a mandatory early termination provision. These dates have been adjusted for any applicable business day convention."> + mandatoryEarlyTerminationDate AdjustableDate (1..1) <"The early termination date associated with a mandatory early termination of a swap."> + calculationAgent CalculationAgent (1..1) <"The ISDA Calculation Agent responsible for performing duties associated with an optional early termination."> + cashSettlement SettlementTerms (1..1) <"If specified, this means that cash settlement is applicable to the transaction and defines the parameters associated with the cash settlement procedure. If not specified, then physical settlement is applicable."> + mandatoryEarlyTerminationAdjustedDates MandatoryEarlyTerminationAdjustedDates (0..1) <"The adjusted dates associated with a mandatory early termination provision. These dates have been adjusted for any applicable business day convention."> condition MandatoryEarlyTerminationCalculationAgent: if calculationAgent -> calculationAgentParty exists @@ -584,33 +568,32 @@ type MandatoryEarlyTermination: <"A data to: define an early termination provis type MandatoryEarlyTerminationAdjustedDates: <"A data defining: the adjusted dates associated with a mandatory early termination provision."> - adjustedEarlyTerminationDate date (1..1) <"The early termination date that is applicable if an early termination provision is exercised. This date should already be adjusted for any applicable business day convention."> - adjustedCashSettlementValuationDate date (1..1) <"The date by which the cash settlement amount must be agreed. This date should already be adjusted for any applicable business day convention."> - adjustedCashSettlementPaymentDate date (1..1) <"The date on which the cash settlement amount is paid. This date should already be adjusted for any applicable business date convention."> + adjustedEarlyTerminationDate date (1..1) <"The early termination date that is applicable if an early termination provision is exercised. This date should already be adjusted for any applicable business day convention."> + adjustedCashSettlementValuationDate date (1..1) <"The date by which the cash settlement amount must be agreed. This date should already be adjusted for any applicable business day convention."> + adjustedCashSettlementPaymentDate date (1..1) <"The date on which the cash settlement amount is paid. This date should already be adjusted for any applicable business date convention."> - condition FpML_ird_44: <"FpML validation rule ird-44 - AdjustedEarlyTerminationDate must be before or equal to adjustedCashSettlementValuationDate must be before or the same as adjustedCashSettlementPaymentDate"> - adjustedEarlyTerminationDate <= adjustedCashSettlementValuationDate - and adjustedCashSettlementValuationDate <= adjustedCashSettlementPaymentDate + condition FpML_ird_44: <"FpML validation rule ird-44 - AdjustedEarlyTerminationDate must be before or equal to adjustedCashSettlementValuationDate must be before or the same as adjustedCashSettlementPaymentDate"> + adjustedEarlyTerminationDate <= adjustedCashSettlementValuationDate and adjustedCashSettlementValuationDate <= adjustedCashSettlementPaymentDate type OptionalEarlyTermination: <"A data defining: an early termination provision where either or both parties have the right to exercise."> - singlePartyOption BuyerSeller (0..1) <"If optional early termination is not available to both parties then this component specifies the buyer and seller of the option. In FpML, this attribute is of type SinglePsrtyOption, which actually consists of the BuyerSeller.model."> - mutualEarlyTermination boolean (0..1) <"Used for specifying whether the Mutual Early Termination Right that is detailed in the Master Confirmation will apply."> - americanExercise AmericanExercise (0..1) <"American exercise. FpML implementations consists in an exercise substitution group."> - bermudaExercise BermudaExercise (0..1) <"Bermuda exercise. FpML implementations consists in an exercise substitution group."> - europeanExercise EuropeanExercise (0..1) <"European exercise. FpML implementations consists in an exercise substitution group."> - exerciseNotice ExerciseNotice (0..*) <"Definition of the party to whom notice of exercise should be given."> - followUpConfirmation boolean (0..1) <"A flag to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent."> - calculationAgent CalculationAgent (0..1) <"The ISDA Calculation Agent responsible for performing duties associated with an optional early termination."> - cashSettlement SettlementTerms (0..1) <"If specified, this means that cash settlement is applicable to the transaction and defines the parameters associated with the cash settlement procedure. If not specified, then physical settlement is applicable."> - optionalEarlyTerminationAdjustedDates OptionalEarlyTerminationAdjustedDates (0..1) <"An early termination provision to terminate the trade at fair value where one or both parties have the right to decide on termination."> + singlePartyOption BuyerSeller (0..1) <"If optional early termination is not available to both parties then this component specifies the buyer and seller of the option. In FpML, this attribute is of type SinglePsrtyOption, which actually consists of the BuyerSeller.model."> + mutualEarlyTermination boolean (0..1) <"Used for specifying whether the Mutual Early Termination Right that is detailed in the Master Confirmation will apply."> + americanExercise AmericanExercise (0..1) <"American exercise. FpML implementations consists in an exercise substitution group."> + bermudaExercise BermudaExercise (0..1) <"Bermuda exercise. FpML implementations consists in an exercise substitution group."> + europeanExercise EuropeanExercise (0..1) <"European exercise. FpML implementations consists in an exercise substitution group."> + exerciseNotice ExerciseNotice (0..*) <"Definition of the party to whom notice of exercise should be given."> + followUpConfirmation boolean (0..1) <"A flag to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent."> + calculationAgent CalculationAgent (0..1) <"The ISDA Calculation Agent responsible for performing duties associated with an optional early termination."> + cashSettlement SettlementTerms (0..1) <"If specified, this means that cash settlement is applicable to the transaction and defines the parameters associated with the cash settlement procedure. If not specified, then physical settlement is applicable."> + optionalEarlyTerminationAdjustedDates OptionalEarlyTerminationAdjustedDates (0..1) <"An early termination provision to terminate the trade at fair value where one or both parties have the right to decide on termination."> - condition ExerciseChoice: <"condition to represent an FpML choice construct."> - optional choice americanExercise, bermudaExercise, europeanExercise + condition ExerciseChoice: <"condition to represent an FpML choice construct."> + optional choice americanExercise, bermudaExercise, europeanExercise - condition OptionalEarlyTerminationExerciseNoticeReceiverParty: - if exerciseNotice -> exerciseNoticeReceiver exists - then exerciseNotice -> exerciseNoticeReceiver contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyOptionalEarlyTermination + condition OptionalEarlyTerminationExerciseNoticeReceiverParty: + if exerciseNotice -> exerciseNoticeReceiver exists + then exerciseNotice -> exerciseNoticeReceiver contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyOptionalEarlyTermination condition MandatoryEarlyTerminationCalculationAgent: if calculationAgent -> calculationAgentParty exists @@ -618,249 +601,252 @@ type OptionalEarlyTermination: <"A data defining: an early termination provisio type OptionalEarlyTerminationAdjustedDates: <"A data defining: the adjusted dates associated with an optional early termination provision."> - earlyTerminationEvent EarlyTerminationEvent (1..*) <"The adjusted dates associated with an individual early termination date."> + earlyTerminationEvent EarlyTerminationEvent (1..*) <"The adjusted dates associated with an individual early termination date."> type Asian: <"As per ISDA 2002 Definitions."> - averagingInOut AveragingInOutEnum (1..1) - strikeFactor number (0..1) <"The factor of strike."> - averagingPeriodIn AveragingPeriod (0..1) <"The averaging in period."> - averagingPeriodOut AveragingPeriod (0..1) <"The averaging out period."> + averagingInOut AveragingInOutEnum (1..1) + strikeFactor number (0..1) <"The factor of strike."> + averagingPeriodIn AveragingPeriod (0..1) <"The averaging in period."> + averagingPeriodOut AveragingPeriod (0..1) <"The averaging out period."> type AveragingCalculation: <"Defines parameters for use in cases when a valuation or other term is based on an average of market observations."> - averagingMethod AveragingCalculationMethod (1..1) <"Specifies enumerations for the type of averaging calculation."> - precision Rounding (1..1) <"Rounding applied to the average calculation. "> + averagingMethod AveragingCalculationMethod (1..1) <"Specifies enumerations for the type of averaging calculation."> + precision Rounding (1..1) <"Rounding applied to the average calculation. "> type AveragingStrikeFeature: <"Defines the terms required to calculate the average observations associated with an averaging strike."> - averagingCalculation AveragingCalculation (1..1) <"Defines parameters for use in cases when a valuation or other term is based on an average of market observations."> - observationTerms ObservationTerms (1..1) <"Class containing terms that are associated with observing a price/benchmark/index across either single or multple observations. "> + averagingCalculation AveragingCalculation (1..1) <"Defines parameters for use in cases when a valuation or other term is based on an average of market observations."> + observationTerms ObservationTerms (1..1) <"Class containing terms that are associated with observing a price/benchmark/index across either single or multple observations. "> type Barrier: <"As per ISDA 2002 Definitions."> - barrierCap TriggerEvent (0..1) <"A trigger level approached from beneath."> - barrierFloor TriggerEvent (0..1) <"A trigger level approached from above."> + barrierCap TriggerEvent (0..1) <"A trigger level approached from beneath."> + barrierFloor TriggerEvent (0..1) <"A trigger level approached from above."> type CalendarSpread: <"A type for defining a calendar spread feature."> - expirationDateTwo AdjustableOrRelativeDate (1..1) + expirationDateTwo AdjustableOrRelativeDate (1..1) type Composite: <"Specifies the conditions to be applied for converting into a reference currency when the actual currency rate is not determined upfront."> - determinationMethod DeterminationMethodEnum (0..1) <"Specifies the method according to which an amount or a date is determined."> - relativeDate RelativeDateOffset (0..1) <"A date specified as some offset to another date (the anchor date)."> - fxSpotRateSource FxSpotRateSource (0..1) <"Specifies the methodology (reference source and, optionally, fixing time) to be used for determining a currency conversion rate."> - fixingTime BusinessCenterTime (0..1) <"The time at which the spot currency exchange rate will be observed. It is specified as a time in a business day calendar location, e.g. 11:00am London time."> + determinationMethod DeterminationMethodEnum (0..1) <"Specifies the method according to which an amount or a date is determined."> + relativeDate RelativeDateOffset (0..1) <"A date specified as some offset to another date (the anchor date)."> + fxSpotRateSource FxSpotRateSource (0..1) <"Specifies the methodology (reference source and, optionally, fixing time) to be used for determining a currency conversion rate."> + fixingTime BusinessCenterTime (0..1) <"The time at which the spot currency exchange rate will be observed. It is specified as a time in a business day calendar location, e.g. 11:00am London time."> type FxFeature: <"A type for defining FX Features."> - referenceCurrency string (1..1) <"Specifies the reference currency of the trade."> - [metadata id] - [metadata scheme] - composite Composite (0..1) <"If 'Composite' is specified as the Settlement Type in the relevant Transaction Supplement, an amount in the Settlement Currency, determined by the Calculation Agent as being equal to the number of Options exercised or deemed exercised, multiplied by: (Settlement Price – Strike Price) / (Strike Price – Settlement Price) x Multiplier provided that if the above is equal to a negative amount the Option Cash Settlement Amount shall be deemed to be zero."> - quanto Quanto (0..1) <"If 'Quanto' is specified as the Settlement Type in the relevant Transaction Supplement, an amount, as determined by the Calculation Agent in accordance with the Section 8.2 of the Equity Definitions."> -crossCurrency Composite (0..1) <"If 'Cross-Currency' is specified as the Settlement Type in the relevant Transaction Supplement, an amount in the Settlement Currency, determined by the Calculation Agent as being equal to the number of Options exercised or deemed exercised, multiplied by: (Settlement Price – Strike Price) / (Strike Price – Settlement Price) x Multiplier x one unit of the Reference Currency converted into an amount in the Settlement Currency using the rate of exchange of the Settlement Currency as quoted on the Reference Price Source on the Valuation Date, provided that if the above is equal to a negative amount the Option Cash Settlement Amount shall be deemed to be zero."> - condition FxFeatureChoice: <" Choice rule to represent an FpML choice construct."> - required choice composite, quanto, crossCurrency + referenceCurrency string (1..1) <"Specifies the reference currency of the trade."> + [metadata id] + [metadata scheme] + composite Composite (0..1) <"If 'Composite' is specified as the Settlement Type in the relevant Transaction Supplement, an amount in the Settlement Currency, determined by the Calculation Agent as being equal to the number of Options exercised or deemed exercised, multiplied by: (Settlement Price – Strike Price) / (Strike Price – Settlement Price) x Multiplier provided that if the above is equal to a negative amount the Option Cash Settlement Amount shall be deemed to be zero."> + quanto Quanto (0..1) <"If 'Quanto' is specified as the Settlement Type in the relevant Transaction Supplement, an amount, as determined by the Calculation Agent in accordance with the Section 8.2 of the Equity Definitions."> + crossCurrency Composite (0..1) <"If 'Cross-Currency' is specified as the Settlement Type in the relevant Transaction Supplement, an amount in the Settlement Currency, determined by the Calculation Agent as being equal to the number of Options exercised or deemed exercised, multiplied by: (Settlement Price – Strike Price) / (Strike Price – Settlement Price) x Multiplier x one unit of the Reference Currency converted into an amount in the Settlement Currency using the rate of exchange of the Settlement Currency as quoted on the Reference Price Source on the Valuation Date, provided that if the above is equal to a negative amount the Option Cash Settlement Amount shall be deemed to be zero."> + condition FxFeatureChoice: <" Choice rule to represent an FpML choice construct."> + required choice composite, quanto, crossCurrency type Knock: <"Knock In means option to exercise comes into existence. Knock Out means option to exercise goes out of existence."> - knockIn TriggerEvent (0..1) <"The knock in."> - knockOut TriggerEvent (0..1) <"The knock out."> + knockIn TriggerEvent (0..1) <"The knock in."> + knockOut TriggerEvent (0..1) <"The knock out."> type OptionFeature: <"Defines additional optional features that can be included in an option contract."> - fxFeature FxFeature (0..*) <"Describes a quanto or composite FX feature."> - strategyFeature StrategyFeature (0..1) <"Defines a simple strategy feature."> - averagingFeature AveragingCalculation (0..1) <"Defines an option feature in which an average market observation price is determined on valuation and compared to the strike to determine a settlement amount."> - barrier Barrier (0..1) <"Specifies a barrier feature."> - knock Knock (0..1) <"Specifies a knock in or knock out feature."> - passThrough PassThrough (0..1) <"Specifies the rules for pass-through payments from the underlier, such as dividends."> + fxFeature FxFeature (0..*) <"Describes a quanto or composite FX feature."> + strategyFeature StrategyFeature (0..1) <"Defines a simple strategy feature."> + averagingFeature AveragingCalculation (0..1) <"Defines an option feature in which an average market observation price is determined on valuation and compared to the strike to determine a settlement amount."> + barrier Barrier (0..1) <"Specifies a barrier feature."> + knock Knock (0..1) <"Specifies a knock in or knock out feature."> + passThrough PassThrough (0..1) <"Specifies the rules for pass-through payments from the underlier, such as dividends."> type TerminationProvision: <"A class for defining option provisions."> - cancelableProvision CancelableProvision (0..1) <"A provision that allows the specification of an embedded option within a swap giving the buyer of the option the right to terminate the swap, in whole or in part, on the early termination date."> - earlyTerminationProvision EarlyTerminationProvision (0..1) <"Parameters specifying provisions relating to the optional and mandatory early termination of a swap transaction."> + cancelableProvision CancelableProvision (0..1) <"A provision that allows the specification of an embedded option within a swap giving the buyer of the option the right to terminate the swap, in whole or in part, on the early termination date."> + earlyTerminationProvision EarlyTerminationProvision (0..1) <"Parameters specifying provisions relating to the optional and mandatory early termination of a swap transaction."> evergreenProvision EvergreenProvision (0..1) <"A data defining: the right of a party to exercise an Evergreen option"> - extendibleProvision ExtendibleProvision (0..1) <"A provision that allows the specification of an embedded option with a swap giving the buyer of the option the right to extend the swap, in whole or in part, to the extended termination date."> + extendibleProvision ExtendibleProvision (0..1) <"A provision that allows the specification of an embedded option with a swap giving the buyer of the option the right to extend the swap, in whole or in part, to the extended termination date."> - condition TerminationProvisionChoice: - required choice cancelableProvision, extendibleProvision, evergreenProvision, earlyTerminationProvision + condition TerminationProvisionChoice: + required choice cancelableProvision, extendibleProvision, evergreenProvision, earlyTerminationProvision type OptionStrike: <"Defines the strike price of an option."> - strikePrice Price (0..1) <"Defines the strike of an option in the form of a price that could be a cash price, interestRate, or other types."> - strikeReference FixedRateSpecification (0..1) <"Defines the strike of an option in reference to the spread of the underlying swap (typical practice in the case of an option on a credit single name swaps)."> - [metadata reference] - referenceSwapCurve ReferenceSwapCurve (0..1) <"Defines the strike of an option when expressed by reference to a swap curve (Typically the case for a convertible bond option)."> - averagingStrikeFeature AveragingStrikeFeature (0..1) <"Defines an option strike that is calculated from an average of observed market prices."> + strikePrice Price (0..1) <"Defines the strike of an option in the form of a price that could be a cash price, interestRate, or other types."> + strikeReference FixedRateSpecification (0..1) <"Defines the strike of an option in reference to the spread of the underlying swap (typical practice in the case of an option on a credit single name swaps)."> + [metadata reference] + referenceSwapCurve ReferenceSwapCurve (0..1) <"Defines the strike of an option when expressed by reference to a swap curve (Typically the case for a convertible bond option)."> + averagingStrikeFeature AveragingStrikeFeature (0..1) <"Defines an option strike that is calculated from an average of observed market prices."> - condition: one-of + condition: + one-of type OptionStyle: <"The qualification of the option style: American, Bermuda or European. FpML implements those features as part of a substitution group."> - americanExercise AmericanExercise (0..1) - bermudaExercise BermudaExercise (0..1) - europeanExercise EuropeanExercise (0..1) - condition: one-of + americanExercise AmericanExercise (0..1) + bermudaExercise BermudaExercise (0..1) + europeanExercise EuropeanExercise (0..1) + + condition: + one-of type PassThrough: <"Type which contains pass through payments."> - passThroughItem PassThroughItem (1..*) <"One to many pass through payment items."> + passThroughItem PassThroughItem (1..*) <"One to many pass through payment items."> type PassThroughItem: <"Class to represent a single pass through payment."> - payerReceiver PayerReceiver (1..1) <"This attribute doesn't exists in the FpML construct, which makes use of the PayerReceiver.model group."> - passThroughPercentage number (1..1) <"Percentage of payments from the underlier which are passed through."> + payerReceiver PayerReceiver (1..1) <"This attribute doesn't exists in the FpML construct, which makes use of the PayerReceiver.model group."> + passThroughPercentage number (1..1) <"Percentage of payments from the underlier which are passed through."> type Quanto: <"Determines the currency rate that the seller of the equity amounts will apply at each valuation date for converting the respective amounts into a currency that is different from the currency denomination of the underlier."> - fxRate FxRate (0..*) <"Specifies a currency conversion rate."> - fxSpotRateSource FxSpotRateSource (0..1) <"Specifies the methodology (reference source and, optionally, fixing time) to be used for determining a currency conversion rate."> - fixingTime BusinessCenterTime (0..1) <"The time at which the spot currency exchange rate will be observed. It is specified as a time in a business day calendar location, e.g. 11:00am London time."> + fxRate FxRate (0..*) <"Specifies a currency conversion rate."> + fxSpotRateSource FxSpotRateSource (0..1) <"Specifies the methodology (reference source and, optionally, fixing time) to be used for determining a currency conversion rate."> + fixingTime BusinessCenterTime (0..1) <"The time at which the spot currency exchange rate will be observed. It is specified as a time in a business day calendar location, e.g. 11:00am London time."> type StrategyFeature: <"A class for defining option strategy features."> - strikeSpread StrikeSpread (0..1) <"Definition of the upper strike in a strike spread."> - calendarSpread CalendarSpread (0..1) <"Definition of the later expiration date in a calendar spread."> + strikeSpread StrikeSpread (0..1) <"Definition of the upper strike in a strike spread."> + calendarSpread CalendarSpread (0..1) <"Definition of the later expiration date in a calendar spread."> type StrikeSpread: <"A class for defining a strike spread feature."> - upperStrike OptionStrike (1..1) <"Upper strike in a strike spread."> - upperStrikeNumberOfOptions number (1..1) <"Number of options at the upper strike price in a strike spread."> + upperStrike OptionStrike (1..1) <"Upper strike in a strike spread."> + upperStrikeNumberOfOptions number (1..1) <"Number of options at the upper strike price in a strike spread."> type AmericanExercise: <"A class defining the exercise period for an American style option together with any rules governing the notional amount of the underlying which can be exercised on any given exercise date and any associated exercise fees."> - [metadata key] - - commencementDate AdjustableOrRelativeDate (1..1) <"The first day of the exercise period for an American style option."> - expirationDate AdjustableOrRelativeDate (1..1) <"The last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period."> - relevantUnderlyingDate AdjustableOrRelativeDates (0..1) <"The effective date on the underlying product if the option is exercised. For example, for a swaption it is the swap effective date, for an option on an FX spot or forward it is the value date for settlement, and in an extendible/cancelable provision it is the swap termination date, which is the date on which the termination is effective.'"> - earliestExerciseTime BusinessCenterTime (0..1) <"The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) to, and including, the expiration date."> - latestExerciseTime BusinessCenterTime (0..1 ) <"For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day."> - expirationTime BusinessCenterTime (1..1) <"The latest time for exercise on expirationDate."> - expirationTimeType ExpirationTimeTypeEnum (0..1) <"The time of day at which the equity option expires, for example the official closing time of the exchange."> - multipleExercise MultipleExercise (0..1) <"As defined in the 2000 ISDA Definitions, Section 12.4. Multiple Exercise, the buyer of the option has the right to exercise all or less than all the unexercised notional amount of the underlying swap on one or more days in the exercise period, but on any such day may not exercise less than the minimum notional amount or more that the maximum notional amount, and if an integral multiple amount is specified, the notional amount exercised must be equal to, or be an integral multiple of, the integral multiple amount."> - exerciseFeeSchedule ExerciseFeeSchedule (0..1) <"The fees associated with an exercise date. The fees are conditional on the exercise occurring. The fees can be specified as actual currency amounts or as percentages of the notional amount being exercised."> + [metadata key] + + commencementDate AdjustableOrRelativeDate (1..1) <"The first day of the exercise period for an American style option."> + expirationDate AdjustableOrRelativeDate (1..1) <"The last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period."> + relevantUnderlyingDate AdjustableOrRelativeDates (0..1) <"The effective date on the underlying product if the option is exercised. For example, for a swaption it is the swap effective date, for an option on an FX spot or forward it is the value date for settlement, and in an extendible/cancelable provision it is the swap termination date, which is the date on which the termination is effective.'"> + earliestExerciseTime BusinessCenterTime (0..1) <"The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) to, and including, the expiration date."> + latestExerciseTime BusinessCenterTime (0..1) <"For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day."> + expirationTime BusinessCenterTime (1..1) <"The latest time for exercise on expirationDate."> + expirationTimeType ExpirationTimeTypeEnum (0..1) <"The time of day at which the equity option expires, for example the official closing time of the exchange."> + multipleExercise MultipleExercise (0..1) <"As defined in the 2000 ISDA Definitions, Section 12.4. Multiple Exercise, the buyer of the option has the right to exercise all or less than all the unexercised notional amount of the underlying swap on one or more days in the exercise period, but on any such day may not exercise less than the minimum notional amount or more that the maximum notional amount, and if an integral multiple amount is specified, the notional amount exercised must be equal to, or be an integral multiple of, the integral multiple amount."> + exerciseFeeSchedule ExerciseFeeSchedule (0..1) <"The fees associated with an exercise date. The fees are conditional on the exercise occurring. The fees can be specified as actual currency amounts or as percentages of the notional amount being exercised."> type AutomaticExercise: <"A type to define automatic exercise of a swaption. With automatic exercise the option is deemed to have exercised if it is in the money by more than the threshold amount on the exercise date."> - thresholdRate number (0..1) <"A threshold rate. The threshold of 0.10% would be represented as 0.001"> - isApplicable boolean (0..1) <"Boolean that indicates if it has an automaticExercise"> + thresholdRate number (0..1) <"A threshold rate. The threshold of 0.10% would be represented as 0.001"> + isApplicable boolean (0..1) <"Boolean that indicates if it has an automaticExercise"> type BermudaExercise: <"A class defining the Bermuda option exercise dates and the expiration date together with any rules governing the notional amount of the underlying which can be exercised on any given exercise date and any associated exercise fee."> - [metadata key] + [metadata key] - bermudaExerciseDates AdjustableOrRelativeDates (1..1) <"The dates that define the Bermuda option exercise dates and the expiration date. The last specified date is assumed to be the expiration date. The dates can either be specified as a series of explicit dates and associated adjustments or as a series of dates defined relative to another schedule of dates, for example, the calculation period start dates. Where a relative series of dates are defined the first and last possible exercise dates can be separately specified."> - relevantUnderlyingDate AdjustableOrRelativeDates (0..1) <"The effective date on the underlying product if the option is exercised. For example, for a swaption it is the swap effective date, for an option on an FX spot or forward it is the value date for settlement, and in an extendible/cancelable provision it is the swap termination date, which is the date on which the termination is effective."> - earliestExerciseTime BusinessCenterTime (1..1) <"The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) on each Bermuda option exercise date and the expiration date."> - latestExerciseTime BusinessCenterTime (0..1 ) <"For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day."> - expirationTime BusinessCenterTime (1..1) <"The latest time for exercise on expirationDate."> - expirationTimeType ExpirationTimeTypeEnum (0..1) <"The time of day at which the equity option expires, for example the official closing time of the exchange."> - multipleExercise MultipleExercise (0..1) <"As defined in the 2000 ISDA Definitions, Section 12.4. Multiple Exercise, the buyer of the option has the right to exercise all or less than all the unexercised notional amount of the underlying swap on one or more days in the exercise period, but on any such day may not exercise less than the minimum notional amount or more that the maximum notional amount, and if an integral multiple amount is specified, the notional amount exercised must be equal to, or be an integral multiple of, the integral multiple amount."> - exerciseFeeSchedule ExerciseFeeSchedule (0..1) <"The fees associated with an exercise date. The fees are conditional on the exercise occurring. The fees can be specified as actual currency amounts or as percentages of the notional amount being exercised."> + bermudaExerciseDates AdjustableOrRelativeDates (1..1) <"The dates that define the Bermuda option exercise dates and the expiration date. The last specified date is assumed to be the expiration date. The dates can either be specified as a series of explicit dates and associated adjustments or as a series of dates defined relative to another schedule of dates, for example, the calculation period start dates. Where a relative series of dates are defined the first and last possible exercise dates can be separately specified."> + relevantUnderlyingDate AdjustableOrRelativeDates (0..1) <"The effective date on the underlying product if the option is exercised. For example, for a swaption it is the swap effective date, for an option on an FX spot or forward it is the value date for settlement, and in an extendible/cancelable provision it is the swap termination date, which is the date on which the termination is effective."> + earliestExerciseTime BusinessCenterTime (1..1) <"The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) on each Bermuda option exercise date and the expiration date."> + latestExerciseTime BusinessCenterTime (0..1) <"For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day."> + expirationTime BusinessCenterTime (1..1) <"The latest time for exercise on expirationDate."> + expirationTimeType ExpirationTimeTypeEnum (0..1) <"The time of day at which the equity option expires, for example the official closing time of the exchange."> + multipleExercise MultipleExercise (0..1) <"As defined in the 2000 ISDA Definitions, Section 12.4. Multiple Exercise, the buyer of the option has the right to exercise all or less than all the unexercised notional amount of the underlying swap on one or more days in the exercise period, but on any such day may not exercise less than the minimum notional amount or more that the maximum notional amount, and if an integral multiple amount is specified, the notional amount exercised must be equal to, or be an integral multiple of, the integral multiple amount."> + exerciseFeeSchedule ExerciseFeeSchedule (0..1) <"The fees associated with an exercise date. The fees are conditional on the exercise occurring. The fees can be specified as actual currency amounts or as percentages of the notional amount being exercised."> type EuropeanExercise: <"A class defining the exercise period for a European style option together with any rules governing the notional amount of the underlying which can be exercised on any given exercise date and any associated exercise fees."> - [metadata key] + [metadata key] - expirationDate AdjustableOrRelativeDate (1..*) <"The last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period."> - relevantUnderlyingDate AdjustableOrRelativeDates (0..1) <"The effective date on the underlying product if the option is exercised. For example, for a swaption it is the swap effective date, for an option on an FX spot or forward it is the value date for settlement, and in an extendible/cancelable provision it is the swap termination date, which is the date on which the termination is effective."> - earliestExerciseTime BusinessCenterTime (0..1) <"The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) on the expiration date."> - expirationTime BusinessCenterTime (1..1) <"The latest time for exercise on expirationDate."> - expirationTimeType ExpirationTimeTypeEnum (0..1) <"The time of day at which the equity option expires, for example the official closing time of the exchange."> - partialExercise PartialExercise (0..1) <"As defined in the 2000 ISDA Definitions, Section 12.3. Partial Exercise, the buyer of the option has the right to exercise all or less than all the notional amount of the underlying swap on the expiration date, but may not exercise less than the minimum notional amount, and if an integral multiple amount is specified, the notional amount exercised must be equal to, or be an integral multiple of, the integral multiple amount."> - exerciseFee ExerciseFee (0..1) <"A fee to be paid on exercise. This could be represented as an amount or a rate and notional reference on which to apply the rate."> + expirationDate AdjustableOrRelativeDate (1..*) <"The last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period."> + relevantUnderlyingDate AdjustableOrRelativeDates (0..1) <"The effective date on the underlying product if the option is exercised. For example, for a swaption it is the swap effective date, for an option on an FX spot or forward it is the value date for settlement, and in an extendible/cancelable provision it is the swap termination date, which is the date on which the termination is effective."> + earliestExerciseTime BusinessCenterTime (0..1) <"The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) on the expiration date."> + expirationTime BusinessCenterTime (1..1) <"The latest time for exercise on expirationDate."> + expirationTimeType ExpirationTimeTypeEnum (0..1) <"The time of day at which the equity option expires, for example the official closing time of the exchange."> + partialExercise PartialExercise (0..1) <"As defined in the 2000 ISDA Definitions, Section 12.3. Partial Exercise, the buyer of the option has the right to exercise all or less than all the notional amount of the underlying swap on the expiration date, but may not exercise less than the minimum notional amount, and if an integral multiple amount is specified, the notional amount exercised must be equal to, or be an integral multiple of, the integral multiple amount."> + exerciseFee ExerciseFee (0..1) <"A fee to be paid on exercise. This could be represented as an amount or a rate and notional reference on which to apply the rate."> type ExerciseFee extends PayerReceiver: <"A class defining the fee payable on exercise of an option. This fee may be defined as an amount or a percentage of the notional exercised. As a difference with FpML, it extends the BuyerSeller class."> - notionalReference Money (1..1) <"A pointer style reference to the associated notional schedule defined elsewhere in the document."> - [metadata reference] - feeAmount number (0..1) <"The amount of fee to be paid on exercise. The fee currency is that of the referenced notional."> - feeRate number (0..1) <"A fee represented as a percentage of some referenced notional. A percentage of 5% would be represented as 0.05."> - feePaymentDate RelativeDateOffset (1..1) <"The date on which exercise fee(s) will be paid. It is specified as a relative date."> + notionalReference Money (1..1) <"A pointer style reference to the associated notional schedule defined elsewhere in the document."> + [metadata reference] + feeAmount number (0..1) <"The amount of fee to be paid on exercise. The fee currency is that of the referenced notional."> + feeRate number (0..1) <"A fee represented as a percentage of some referenced notional. A percentage of 5% would be represented as 0.05."> + feePaymentDate RelativeDateOffset (1..1) <"The date on which exercise fee(s) will be paid. It is specified as a relative date."> - condition ExerciseFeeChoice: <"Choice rule to represent an FpML choice construct."> - required choice feeAmount, feeRate + condition ExerciseFeeChoice: <"Choice rule to represent an FpML choice construct."> + required choice feeAmount, feeRate type ExerciseFeeSchedule extends PayerReceiver: <"A class to define a fee or schedule of fees to be payable on the exercise of an option. This fee may be defined as an amount or a percentage of the notional exercised. As a difference with FpML, it extends the BuyerSeller class."> - notionalReference Money (1..1) <"A pointer style reference to the associated notional schedule defined elsewhere in the document."> - [metadata reference] - feeAmountSchedule AmountSchedule (0..1) <"The exercise fee amount schedule. The fees are expressed as currency amounts. The currency of the fee is assumed to be that of the notional schedule referenced."> - feeRateSchedule Schedule (0..1) <"The exercise free rate schedule. The fees are expressed as percentage rates of the notional being exercised. The currency of the fee is assumed to be that of the notional schedule referenced."> - feePaymentDate RelativeDateOffset (1..1) <"The date on which exercise fee(s) will be paid. It is specified as a relative date."> - - condition ExerciseFeeScheduleChoice: <"Choice rule to represent an FpML choice construct."> - required choice feeAmountSchedule, feeRateSchedule + notionalReference Money (1..1) <"A pointer style reference to the associated notional schedule defined elsewhere in the document."> + [metadata reference] + feeAmountSchedule AmountSchedule (0..1) <"The exercise fee amount schedule. The fees are expressed as currency amounts. The currency of the fee is assumed to be that of the notional schedule referenced."> + feeRateSchedule Schedule (0..1) <"The exercise free rate schedule. The fees are expressed as percentage rates of the notional being exercised. The currency of the fee is assumed to be that of the notional schedule referenced."> + feePaymentDate RelativeDateOffset (1..1) <"The date on which exercise fee(s) will be paid. It is specified as a relative date."> + + condition ExerciseFeeScheduleChoice: <"Choice rule to represent an FpML choice construct."> + required choice feeAmountSchedule, feeRateSchedule type ExerciseNotice: <"Defines to whom and where notice of execution should be given. The exerciseNoticeGiver refers to one or both of the principal parties of the trade. If present the exerciseNoticeReceiver refers to a party, other than the principal party, to whom notice should be given."> - exerciseNoticeGiver ExerciseNoticeGiverEnum (1..1) <"Specifies the principal party of the trade that has the right to exercise."> - exerciseNoticeReceiver AncillaryRoleEnum (0..1) <"Specifies the party to which notice of exercise should be given, e.g. by the buyer of the option. Although in many cases it is the buyer of the option who sends the exercise notice to the seller of the option, this component is reused, e.g. in case of OptionEarlyTermination, either or both parties have the right to exercise."> - businessCenter BusinessCenterEnum (1..1) <"Specifies the location where the exercise must be reported, e.g. where the exercise notice receiver is based."> - [metadata scheme] + exerciseNoticeGiver ExerciseNoticeGiverEnum (1..1) <"Specifies the principal party of the trade that has the right to exercise."> + exerciseNoticeReceiver AncillaryRoleEnum (0..1) <"Specifies the party to which notice of exercise should be given, e.g. by the buyer of the option. Although in many cases it is the buyer of the option who sends the exercise notice to the seller of the option, this component is reused, e.g. in case of OptionEarlyTermination, either or both parties have the right to exercise."> + businessCenter BusinessCenterEnum (1..1) <"Specifies the location where the exercise must be reported, e.g. where the exercise notice receiver is based."> + [metadata scheme] type ExerciseProcedure: <"A class describing how notice of exercise should be given. This can be either manual or automatic."> - manualExercise ManualExercise (0..1) <"Specifies that the notice of exercise must be given by the buyer to the seller or seller's agent."> - automaticExercise AutomaticExercise (0..1) <"If automatic is specified, then the notional amount of the underlying swap not previously exercised under the swaption will be automatically exercised at the expiration time on the expiration date if at such time the buyer is in-the-money, provided that the difference between the settlement rate and the fixed rate under the relevant underlying swap is not less than the specified threshold rate. The term in-the-money is assumed to have the meaning defining in the 2000 ISDA Definitions, Section 17.4 In-the-money."> - followUpConfirmation boolean (1..1) <"A flag to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent."> - limitedRightToConfirm boolean (0..1) <"Has the meaning defined as part of the 1997 ISDA Government Bond Option Definitions, section 4.5 Limited Right to Confirm Exercise. If present, (i) the Seller may request the Buyer to confirm its intent if not done on or before the expiration time on the Expiration date (ii) specific rules will apply in relation to the settlement mode."> - splitTicket boolean (0..1) <"Typically applicable to the physical settlement of bond and convertible bond options. If present, means that the party required to deliver the bonds will divide those to be delivered as notifying party desires to facilitate delivery obligations."> + manualExercise ManualExercise (0..1) <"Specifies that the notice of exercise must be given by the buyer to the seller or seller's agent."> + automaticExercise AutomaticExercise (0..1) <"If automatic is specified, then the notional amount of the underlying swap not previously exercised under the swaption will be automatically exercised at the expiration time on the expiration date if at such time the buyer is in-the-money, provided that the difference between the settlement rate and the fixed rate under the relevant underlying swap is not less than the specified threshold rate. The term in-the-money is assumed to have the meaning defining in the 2000 ISDA Definitions, Section 17.4 In-the-money."> + followUpConfirmation boolean (1..1) <"A flag to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent."> + limitedRightToConfirm boolean (0..1) <"Has the meaning defined as part of the 1997 ISDA Government Bond Option Definitions, section 4.5 Limited Right to Confirm Exercise. If present, (i) the Seller may request the Buyer to confirm its intent if not done on or before the expiration time on the Expiration date (ii) specific rules will apply in relation to the settlement mode."> + splitTicket boolean (0..1) <"Typically applicable to the physical settlement of bond and convertible bond options. If present, means that the party required to deliver the bonds will divide those to be delivered as notifying party desires to facilitate delivery obligations."> - condition ExerciseProcedureChoice: <"Choice rule to represent an FpML choice construct."> - required choice manualExercise, automaticExercise + condition ExerciseProcedureChoice: <"Choice rule to represent an FpML choice construct."> + required choice manualExercise, automaticExercise type ManualExercise: <"A class defining manual exercise, i.e. that the option buyer counterparty must give notice to the option seller of exercise."> - exerciseNotice ExerciseNotice (0..1) <"Definition of the party to whom notice of exercise should be given."> - fallbackExercise boolean (0..1) <"If fallback exercise is specified then the notional amount of the underlying swap, not previously exercised under the swaption, will be automatically exercised at the expiration time on the expiration date if at such time the buyer is in-the-money, provided that the difference between the settlement rate and the fixed rate under the relevant underlying swap is not less than one tenth of a percentage point (0.10% or 0.001). The term in-the-money is assumed to have the meaning defined in the 2000 ISDA Definitions, Section 17.4. In-the-money."> + exerciseNotice ExerciseNotice (0..1) <"Definition of the party to whom notice of exercise should be given."> + fallbackExercise boolean (0..1) <"If fallback exercise is specified then the notional amount of the underlying swap, not previously exercised under the swaption, will be automatically exercised at the expiration time on the expiration date if at such time the buyer is in-the-money, provided that the difference between the settlement rate and the fixed rate under the relevant underlying swap is not less than one tenth of a percentage point (0.10% or 0.001). The term in-the-money is assumed to have the meaning defined in the 2000 ISDA Definitions, Section 17.4. In-the-money."> - condition ManualExerciseNoticeReceiverParty: - if exerciseNotice -> exerciseNoticeReceiver exists - then exerciseNotice -> exerciseNoticeReceiver = AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual + condition ManualExerciseNoticeReceiverParty: + if exerciseNotice -> exerciseNoticeReceiver exists + then exerciseNotice -> exerciseNoticeReceiver = AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual type MultipleExercise extends PartialExercise: <"A class defining multiple exercises. As defined in the 2000 ISDA Definitions, Section 12.4. Multiple Exercise, the buyer of the option has the right to exercise all or less than all the unexercised notional amount of the underlying swap on one or more days in the exercise period, but on any such day may not exercise less than the minimum notional amount or more than the maximum notional amount, and if an integral multiple amount is specified, the notional exercised must be equal to or, be an integral multiple of, the integral multiple amount. In FpML, MultipleExercise is built upon the PartialExercise.model."> - maximumNotionalAmount number (0..1) <"The maximum notional amount that can be exercised on a given exercise date."> - maximumNumberOfOptions int (0..1) <"The maximum number of options that can be exercised on a given exercise date. If the number is not specified, it means that the maximum number of options corresponds to the remaining unexercised options."> + maximumNotionalAmount number (0..1) <"The maximum notional amount that can be exercised on a given exercise date."> + maximumNumberOfOptions int (0..1) <"The maximum number of options that can be exercised on a given exercise date. If the number is not specified, it means that the maximum number of options corresponds to the remaining unexercised options."> - condition MaximumChoice: <"Choice rule to represent an FpML choice construct."> - required choice maximumNotionalAmount, maximumNumberOfOptions + condition MaximumChoice: <"Choice rule to represent an FpML choice construct."> + required choice maximumNotionalAmount, maximumNumberOfOptions - condition MaximumNumberOfOptions: <"FpML MultipleExercise construct specifies the maximumNumberOfOptions as a positive integer."> - if maximumNumberOfOptions exists - then maximumNotionalAmount >= 0 + condition MaximumNumberOfOptions: <"FpML MultipleExercise construct specifies the maximumNumberOfOptions as a positive integer."> + if maximumNumberOfOptions exists + then maximumNotionalAmount >= 0 - condition MinimumNumberOfOptions: <"FpML MultipleExercise construct specifies the minimumNumberOfOptions as a positive integer."> - if minimumNumberOfOptions exists - then minimumNumberOfOptions >= 0 + condition MinimumNumberOfOptions: <"FpML MultipleExercise construct specifies the minimumNumberOfOptions as a positive integer."> + if minimumNumberOfOptions exists + then minimumNumberOfOptions >= 0 type PartialExercise: <"A class defining partial exercise. As defined in the 2000 ISDA Definitions, Section 12.3 Partial Exercise, the buyer of the option may exercise all or less than all the notional amount of the underlying swap but may not be less than the minimum notional amount (if specified) and must be an integral multiple of the integral multiple amount if specified."> - notionaReference Money (1..1) <"A pointer style reference to the associated notional schedule defined elsewhere in the document. This element has been made optional as part of its integration in the OptionBaseExtended, because not required for the options on securities."> - [metadata reference] - integralMultipleAmount number (0..1) <"A notional amount which restricts the amount of notional that can be exercised when partial exercise or multiple exercise is applicable. The integral multiple amount defines a lower limit of notional that can be exercised and also defines a unit multiple of notional that can be exercised, i.e. only integer multiples of this amount can be exercised."> - minimumNotionalAmount number (0..1) <"The minimum notional amount that can be exercised on a given exercise date. See multipleExercise."> - minimumNumberOfOptions int (0..1) <"The minimum number of options that can be exercised on a given exercise date."> + notionaReference Money (1..1) <"A pointer style reference to the associated notional schedule defined elsewhere in the document. This element has been made optional as part of its integration in the OptionBaseExtended, because not required for the options on securities."> + [metadata reference] + integralMultipleAmount number (0..1) <"A notional amount which restricts the amount of notional that can be exercised when partial exercise or multiple exercise is applicable. The integral multiple amount defines a lower limit of notional that can be exercised and also defines a unit multiple of notional that can be exercised, i.e. only integer multiples of this amount can be exercised."> + minimumNotionalAmount number (0..1) <"The minimum notional amount that can be exercised on a given exercise date. See multipleExercise."> + minimumNumberOfOptions int (0..1) <"The minimum number of options that can be exercised on a given exercise date."> - condition MinimumChoice: <"Choice rule to represent an FpML choice construct."> - required choice minimumNotionalAmount, minimumNumberOfOptions + condition MinimumChoice: <"Choice rule to represent an FpML choice construct."> + required choice minimumNotionalAmount, minimumNumberOfOptions type Strike: <"A class describing a single cap or floor rate."> - [metadata key] + [metadata key] - strikeRate number (1..1) <"The rate for a cap or floor."> - [synonym FIX_5_0_SP2 value "StrikePrice" tag 202] - buyer PayerReceiverEnum (0..1) <"The buyer of the option."> - seller PayerReceiverEnum (0..1) <"The party that has sold."> + strikeRate number (1..1) <"The rate for a cap or floor."> + [synonym FIX_5_0_SP2 value "StrikePrice" tag 202] + buyer PayerReceiverEnum (0..1) <"The buyer of the option."> + seller PayerReceiverEnum (0..1) <"The party that has sold."> type StrikeSchedule extends RateSchedule: <"A class describing a schedule of cap or floor rates."> - buyer PayerReceiverEnum (0..1) <"The buyer of the option."> - seller PayerReceiverEnum (0..1) <"The party that has sold."> + buyer PayerReceiverEnum (0..1) <"The buyer of the option."> + seller PayerReceiverEnum (0..1) <"The party that has sold."> type CalculationAgentModel: <"This class corresponds to the FpML CalculationAgent.model."> - [deprecated] - - calculationAgent CalculationAgent (0..1) <"The ISDA calculation agent responsible for performing duties as defined in the applicable product definitions."> - calculationAgentBusinessCenter BusinessCenterEnum (0..1) <"The city in which the office through which ISDA Calculation Agent is acting for purposes of the transaction is located. The short-form confirm for a trade that is executed under a Sovereign or Asia-Pacific Master Confirmation Agreement (MCA), does not need to specify the Calculation Agent. However, the confirm does need to specify the Calculation Agent city. This is due to the fact that the MCA sets the value for Calculation Agent but does not set the value for Calculation Agent city."> + [deprecated] + + calculationAgent CalculationAgent (0..1) <"The ISDA calculation agent responsible for performing duties as defined in the applicable product definitions."> + calculationAgentBusinessCenter BusinessCenterEnum (0..1) <"The city in which the office through which ISDA Calculation Agent is acting for purposes of the transaction is located. The short-form confirm for a trade that is executed under a Sovereign or Asia-Pacific Master Confirmation Agreement (MCA), does not need to specify the Calculation Agent. However, the confirm does need to specify the Calculation Agent city. This is due to the fact that the MCA sets the value for Calculation Agent but does not set the value for Calculation Agent city."> type AssetPayout extends PayoutBase: <"Security finance payout specification in case the product payout involves some form of security collateral, as in a securities financing transaction. Plus additional description for ICMA."> [metadata key] @@ -868,17 +854,17 @@ type AssetPayout extends PayoutBase: <"Security finance payout specification in assetLeg AssetLeg (1..*) <"Defines each asset movement as a buy/sell at different dates, typically 1 near leg and 1 far leg in a securities financing transaction."> securityInformation Product (1..1) <"Specifies the Purchased Security. Within SecurityPayout we include a condition which validates that the product must be a Security (see below condition 'ProductMustBeSecurity')."> durationType Duration (1..1) <"Specifies the Duration Terms of the Security Finance transaction. e.g. Open or Term."> - [deprecated] + [deprecated] minimumFee Money (0..1) <"A contractual minimum amount which the borrower will pay, regardless of the duration of the loan. A mechanism for making sure that a trade generates enough income."> dividendTerms DividendTerms (0..1) <"Specifies the terms under which dividends received by the borrower are passed through to the lender."> condition Quantity: <"When there is an OptionPayout the quantity can be expressed as part of the payoutQuantity, or as part of the underlier in the case of a Swaption. For all other payouts that extend PayoutBase the payoutQuantity is a mandatory attribute."> - priceQuantity exists + priceQuantity exists - condition ProductMustBeSecurity: <"Validates that the Purchased Security must be a security."> + condition ProductMustBeSecurity: <"Validates that the Purchased Security must be a security."> securityInformation -> security exists - condition DividendTermsValidation: <"Validates that if the transaction has Dividend Terms specified then the Duration should be Term."> + condition DividendTermsValidation: <"Validates that if the transaction has Dividend Terms specified then the Duration should be Term."> if dividendTerms exists then durationType -> durationType = DurationTypeEnum -> Term @@ -889,7 +875,7 @@ type DividendTerms: <"Information related to dividends and payments."> type AssetLeg: <"Defines each asset movement of an asset payout."> settlementDate AdjustableOrRelativeDate (1..1) <"Specifies the settlement date of securities. In a repo transaction the purchase date would always be the effective date as specified under Economic Terms, the repurchase date would always be the termination date as specified under Economic Terms."> - deliveryMethod DeliveryMethodEnum (1..1) <"Specifies a delivery method for the security transaction."> + deliveryMethod DeliveryMethodEnum (1..1) <"Specifies a delivery method for the security transaction."> type Duration: <"Specifies the Duration Terms of the Security Financing Transaction, and optionally any Evergreen terms."> [deprecated] @@ -897,9 +883,9 @@ type Duration: <"Specifies the Duration Terms of the Security Financing Transact evergreenProvision EvergreenProvision (0..1) <"A data defining: the right of a party to exercise an Evergreen option"> type EvergreenProvision: <"Specifies a transaction which automatically extends for a specified timeframe until the exercise of an embedded option."> - singlePartyOption PartyRole (0..1) <"If evergreen termination is not available to both parties then this component specifies the buyer and seller of the option."> - noticePeriod RelativeDateOffset (1..1) <"The length of each evergreen extension period relative to the effective date of the preceding contract."> - noticeDeadlinePeriod RelativeDateOffset (0..1) <"Defines the minimum period before an evergreen is scheduled to terminate that notice can be given that it will terminate beyond the scheduled termination date."> - noticeDeadlineDateTime zonedDateTime (0..1) <"A specific date and time for the notice deadline"> + singlePartyOption PartyRole (0..1) <"If evergreen termination is not available to both parties then this component specifies the buyer and seller of the option."> + noticePeriod RelativeDateOffset (1..1) <"The length of each evergreen extension period relative to the effective date of the preceding contract."> + noticeDeadlinePeriod RelativeDateOffset (0..1) <"Defines the minimum period before an evergreen is scheduled to terminate that notice can be given that it will terminate beyond the scheduled termination date."> + noticeDeadlineDateTime zonedDateTime (0..1) <"A specific date and time for the notice deadline"> extensionFrequency AdjustableRelativeOrPeriodicDates (1..1) <"The frequency with which the evergreen contract will be extended if notice is not given."> finalPeriodFeeAdjustment Price (0..1) <"An optional adjustment to the rate for the last period of the evergreen i.e. the period from when notice is given to stop rolling the contract through to the termination date."> diff --git a/rosetta-source/src/main/rosetta/regulation-type.rosetta b/rosetta-source/src/main/rosetta/regulation-type.rosetta index cda094845e..3fb36b248f 100644 --- a/rosetta-source/src/main/rosetta/regulation-type.rosetta +++ b/rosetta-source/src/main/rosetta/regulation-type.rosetta @@ -4,214 +4,212 @@ version "${project.version}" import cdm.mapping.config.* type Document: - - finInstrmRptgTxRpt FinInstrmRptgTxRpt (1..1) - [synonym ISO20022 value "FinInstrmRptgTxRpt"] + + finInstrmRptgTxRpt FinInstrmRptgTxRpt (1..1) + [synonym ISO20022 value "FinInstrmRptgTxRpt"] type FinInstrmRptgTxRpt: - tx Tx (1..1) - [synonym ISO20022 value "Tx"] + tx Tx (1..1) + [synonym ISO20022 value "Tx"] type Tx: - newTx New (1..1) - [synonym ISO20022 value "New"] - tradDt string (1..1) - [synonym ISO20022 value "TradDt"] - tradgCpcty string (1..1) - [synonym ISO20022 value "TradgCpcty"] - qty Qty (1..1) - [synonym ISO20022 value "Qty"] - pric Pric (1..1) - [synonym ISO20022 value "Pric"] - tradVn string (1..1) - [synonym ISO20022 value "TradVn"] - ctryOfBrnch string (1..1) - [synonym ISO20022 value "CtryOfBrnch"] + newTx New (1..1) + [synonym ISO20022 value "New"] + tradDt string (1..1) + [synonym ISO20022 value "TradDt"] + tradgCpcty string (1..1) + [synonym ISO20022 value "TradgCpcty"] + qty Qty (1..1) + [synonym ISO20022 value "Qty"] + pric Pric (1..1) + [synonym ISO20022 value "Pric"] + tradVn string (1..1) + [synonym ISO20022 value "TradVn"] + ctryOfBrnch string (1..1) + [synonym ISO20022 value "CtryOfBrnch"] type New: - txId string (1..1) - [synonym ISO20022 value "TxId"] - exctgPty string (1..1) - [synonym ISO20022 value "ExctgPty"] - invstmtPtyInd string (1..1) - [synonym ISO20022 value "InvstmtPtyInd"] - submitgPty string (1..1) - [synonym ISO20022 value "SubmitgPty"] - buyr Buyr (1..1) - [synonym ISO20022 value "Buyr"] - sellr Sellr (1..1) - [synonym ISO20022 value "Sellr"] - ordrTrnsmssn OrdrTrnsmssn (1..1) - [synonym ISO20022 value "OrdrTrnsmssn"] - tx Tx (1..1) - [synonym ISO20022 value "Tx"] - finInstrm FinInstrm (1..1) - [synonym ISO20022 value "FinInstrm"] - invstmtDcsnPrsn InvstmtDcsnPrsn (1..1) - [synonym ISO20022 value "InvstmtDcsnPrsn"] - exctgPrsn ExctgPrsn (1..1) - [synonym ISO20022 value "ExctgPrsn"] - addtlAttrbts AddtlAttrbts (1..1) - [synonym ISO20022 value "AddtlAttrbts"] + txId string (1..1) + [synonym ISO20022 value "TxId"] + exctgPty string (1..1) + [synonym ISO20022 value "ExctgPty"] + invstmtPtyInd string (1..1) + [synonym ISO20022 value "InvstmtPtyInd"] + submitgPty string (1..1) + [synonym ISO20022 value "SubmitgPty"] + buyr Buyr (1..1) + [synonym ISO20022 value "Buyr"] + sellr Sellr (1..1) + [synonym ISO20022 value "Sellr"] + ordrTrnsmssn OrdrTrnsmssn (1..1) + [synonym ISO20022 value "OrdrTrnsmssn"] + tx Tx (1..1) + [synonym ISO20022 value "Tx"] + finInstrm FinInstrm (1..1) + [synonym ISO20022 value "FinInstrm"] + invstmtDcsnPrsn InvstmtDcsnPrsn (1..1) + [synonym ISO20022 value "InvstmtDcsnPrsn"] + exctgPrsn ExctgPrsn (1..1) + [synonym ISO20022 value "ExctgPrsn"] + addtlAttrbts AddtlAttrbts (1..1) + [synonym ISO20022 value "AddtlAttrbts"] type Sellr: - acctOwnr AcctOwnr (1..1) - [synonym ISO20022 value "AcctOwnr"] + acctOwnr AcctOwnr (1..1) + [synonym ISO20022 value "AcctOwnr"] type Sngl: - isin string (1..1) - [synonym ISO20022 value "ISIN"] - indx Indx (1..1) - [synonym ISO20022 value "Indx"] + isin string (1..1) + [synonym ISO20022 value "ISIN"] + indx Indx (1..1) + [synonym ISO20022 value "Indx"] type OrdrTrnsmssn: - trnsmssnInd string (1..1) - [synonym ISO20022 value "TrnsmssnInd"] + trnsmssnInd string (1..1) + [synonym ISO20022 value "TrnsmssnInd"] type DerivInstrmAttrbts: - xpryDt string (1..1) - [synonym ISO20022 value "XpryDt"] - pricMltplr string (1..1) - [synonym ISO20022 value "PricMltplr"] - undrlygInstrm UndrlygInstrm (1..1) - [synonym ISO20022 value "UndrlygInstrm"] - dlvryTp string (1..1) - [synonym ISO20022 value "DlvryTp"] + xpryDt string (1..1) + [synonym ISO20022 value "XpryDt"] + pricMltplr string (1..1) + [synonym ISO20022 value "PricMltplr"] + undrlygInstrm UndrlygInstrm (1..1) + [synonym ISO20022 value "UndrlygInstrm"] + dlvryTp string (1..1) + [synonym ISO20022 value "DlvryTp"] type UndrlygInstrm: - swp Swp (1..1) - [synonym ISO20022 value "Swp"] + swp Swp (1..1) + [synonym ISO20022 value "Swp"] type AcctOwnr: - id Id (1..1) - [synonym ISO20022 value "Id"] + id Id (1..1) + [synonym ISO20022 value "Id"] type InvstmtDcsnPrsn: - prsn Prsn (1..1) - [synonym ISO20022 value "Prsn"] + prsn Prsn (1..1) + [synonym ISO20022 value "Prsn"] type Buyr: - acctOwnr AcctOwnr (1..1) - [synonym ISO20022 value "AcctOwnr"] + acctOwnr AcctOwnr (1..1) + [synonym ISO20022 value "AcctOwnr"] type Qty: - unit string (1..1) - [synonym ISO20022 value "Unit"] + unit string (1..1) + [synonym ISO20022 value "Unit"] type FinInstrm: - othr Othr (1..1) - [synonym ISO20022 value "Othr"] + othr Othr (1..1) + [synonym ISO20022 value "Othr"] type Pric: - pric Pric (1..1) - [synonym ISO20022 value "Pric"] - bsisPts string (1..1) - [synonym ISO20022 value "BsisPts"] + pric Pric (1..1) + [synonym ISO20022 value "Pric"] + bsisPts string (1..1) + [synonym ISO20022 value "BsisPts"] type Prsn: - ctryOfBrnch string (1..1) - [synonym ISO20022 value "CtryOfBrnch"] - - othr Othr (1..1) - [synonym ISO20022 value "Othr"] + ctryOfBrnch string (1..1) + [synonym ISO20022 value "CtryOfBrnch"] + othr Othr (1..1) + [synonym ISO20022 value "Othr"] type FinInstrmGnlAttrbts: - fullNm string (1..1) - [synonym ISO20022 value "FullNm"] - clssfctnTp string (1..1) - [synonym ISO20022 value "ClssfctnTp"] - ntnlCcy string (1..1) - [synonym ISO20022 value "NtnlCcy"] + fullNm string (1..1) + [synonym ISO20022 value "FullNm"] + clssfctnTp string (1..1) + [synonym ISO20022 value "ClssfctnTp"] + ntnlCcy string (1..1) + [synonym ISO20022 value "NtnlCcy"] type Nm: - refRate RefRate (1..1) - [synonym ISO20022 value "RefRate"] - term Term (1..1) - [synonym ISO20022 value "Term"] + refRate RefRate (1..1) + [synonym ISO20022 value "RefRate"] + term Term (1..1) + [synonym ISO20022 value "Term"] type SwpOut: - sngl Sngl (1..1) - [synonym ISO20022 value "Sngl"] + sngl Sngl (1..1) + [synonym ISO20022 value "Sngl"] type Othr: - finInstrmGnlAttrbts FinInstrmGnlAttrbts (1..1) - [synonym ISO20022 value "FinInstrmGnlAttrbts"] - derivInstrmAttrbts DerivInstrmAttrbts (1..1) - [synonym ISO20022 value "DerivInstrmAttrbts"] - id string (1..1) - [synonym ISO20022 value "Id"] - schmeNm SchmeNm (1..1) - [synonym ISO20022 value "SchmeNm"] + finInstrmGnlAttrbts FinInstrmGnlAttrbts (1..1) + [synonym ISO20022 value "FinInstrmGnlAttrbts"] + derivInstrmAttrbts DerivInstrmAttrbts (1..1) + [synonym ISO20022 value "DerivInstrmAttrbts"] + id string (1..1) + [synonym ISO20022 value "Id"] + schmeNm SchmeNm (1..1) + [synonym ISO20022 value "SchmeNm"] type ExctgPrsn: - prsn Prsn (1..1) - [synonym ISO20022 value "Prsn"] + prsn Prsn (1..1) + [synonym ISO20022 value "Prsn"] type Term: - unit string (1..1) - [synonym ISO20022 value "Unit"] - val string (1..1) - [synonym ISO20022 value "Val"] + unit string (1..1) + [synonym ISO20022 value "Unit"] + val string (1..1) + [synonym ISO20022 value "Val"] type Swp: - swpIn SwpIn (1..1) - [synonym ISO20022 value "SwpIn"] - swpOut SwpOut (1..1) - [synonym ISO20022 value "SwpOut"] + swpIn SwpIn (1..1) + [synonym ISO20022 value "SwpIn"] + swpOut SwpOut (1..1) + [synonym ISO20022 value "SwpOut"] type SchmeNm: - prtry string (1..1) - [synonym ISO20022 value "Prtry"] + prtry string (1..1) + [synonym ISO20022 value "Prtry"] type RefRate: - indx string (1..1) - [synonym ISO20022 value "Indx"] - nm string (1..1) - [synonym ISO20022 value "Nm"] + indx string (1..1) + [synonym ISO20022 value "Indx"] + nm string (1..1) + [synonym ISO20022 value "Nm"] type AddtlAttrbts: - rskRdcgTx string (1..1) - [synonym ISO20022 value "RskRdcgTx"] - sctiesFincgTxInd string (1..1) - [synonym ISO20022 value "SctiesFincgTxInd"] + rskRdcgTx string (1..1) + [synonym ISO20022 value "RskRdcgTx"] + sctiesFincgTxInd string (1..1) + [synonym ISO20022 value "SctiesFincgTxInd"] type SwpIn: - sngl Sngl (1..1) - [synonym ISO20022 value "Sngl"] + sngl Sngl (1..1) + [synonym ISO20022 value "Sngl"] type Indx: - nm Nm (1..1) - [synonym ISO20022 value "Nm"] + nm Nm (1..1) + [synonym ISO20022 value "Nm"] type Id: - lei string (1..1) - [synonym ISO20022 value "LEI"] - + lei string (1..1) + [synonym ISO20022 value "LEI"]