Class: 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._
URI: common_domain_model:EconomicTerms
classDiagram
class EconomicTerms
click EconomicTerms href "../EconomicTerms/"
EconomicTerms : calculationAgent
EconomicTerms --> "0..1" CalculationAgent : calculationAgent
click CalculationAgent href "../CalculationAgent/"
EconomicTerms : collateral
EconomicTerms --> "0..1" Collateral : collateral
click Collateral href "../Collateral/"
EconomicTerms : dateAdjustments
EconomicTerms --> "0..1" BusinessDayAdjustments : dateAdjustments
click BusinessDayAdjustments href "../BusinessDayAdjustments/"
EconomicTerms : effectiveDate
EconomicTerms --> "0..1" AdjustableOrRelativeDate : effectiveDate
click AdjustableOrRelativeDate href "../AdjustableOrRelativeDate/"
EconomicTerms : effectiveTime
EconomicTerms --> "0..1" DirectOrRelativeTime : effectiveTime
click DirectOrRelativeTime href "../DirectOrRelativeTime/"
EconomicTerms : nonStandardisedTerms
EconomicTerms : payout
EconomicTerms --> "1..*" Payout : payout
click Payout href "../Payout/"
EconomicTerms : terminationDate
EconomicTerms --> "0..1" AdjustableOrRelativeDate : terminationDate
click AdjustableOrRelativeDate href "../AdjustableOrRelativeDate/"
EconomicTerms : terminationProvision
EconomicTerms --> "0..1" TerminationProvision : terminationProvision
click TerminationProvision href "../TerminationProvision/"
EconomicTerms : terminationTime
EconomicTerms --> "0..1" DirectOrRelativeTime : terminationTime
click DirectOrRelativeTime href "../DirectOrRelativeTime/"
Slots
| Name | Cardinality and Range | Description | Inheritance |
|---|---|---|---|
| effectiveDate | 0..1 AdjustableOrRelativeDate |
The first day of the terms of the trade | direct |
| effectiveTime | 0..1 DirectOrRelativeTime |
The time and zone of the first day of the terms of the trade | direct |
| terminationDate | 0..1 AdjustableOrRelativeDate |
The last day of the terms of the trade | direct |
| terminationTime | 0..1 DirectOrRelativeTime |
The time and zone of the last day of the terms of the trade | direct |
| dateAdjustments | 0..1 BusinessDayAdjustments |
The business day adjustment convention when it applies across all the payout ... | direct |
| payout | 1..* Payout or AssetPayout or CommodityPayout or CreditDefaultPayout or FixedPricePayout or InterestRatePayout or OptionPayout or PerformancePayout or SettlementPayout |
The payout specifies the future cashflow computation methodology which charac... | direct |
| terminationProvision | 0..1 TerminationProvision |
Contains optional provisions pertaining to the termination characteristics of... | direct |
| calculationAgent | 0..1 CalculationAgent |
The ISDA calculation agent responsible for performing duties as defined in th... | direct |
| nonStandardisedTerms | 0..1 Boolean |
Specifies, when boolean value is True, that additional economic terms exist t... | direct |
| collateral | 0..1 Collateral |
Represents the collateral obligations of a party | direct |
Usages
| used by | used in | type | used |
|---|---|---|---|
| TransferableProduct | economicTerms | range | EconomicTerms |
| NonTransferableProduct | economicTerms | range | EconomicTerms |
In Subsets
Comments
- Rosetta condition: ReturnType_Total_Requires_Dividends — if payout -> PerformancePayout -> returnTerms -> priceReturnTerms -> returnType all = ReturnTypeEnum -> Total then payout -> PerformancePayout -> returnTerms -> dividendReturnTerms exists
- Rosetta condition: LastRegularPaymentDate — if payout -> InterestRatePayout -> paymentDates -> lastRegularPaymentDate exists and payout -> InterestRatePayout -> stubPeriod -> finalStub exists then payout -> InterestRatePayout count = 2
- Rosetta condition: PayRelativeTo — if payout -> InterestRatePayout count = 2 and payout -> InterestRatePayout -> paymentDates exists then payout -> InterestRatePayout -> paymentDates -> payRelativeTo exists
- Rosetta condition: PaymentDatesAdjustments — if payout -> InterestRatePayout count = 2 and payout -> InterestRatePayout -> paymentDates exists then payout -> InterestRatePayout -> paymentDates -> paymentDatesAdjustments exists
- Rosetta condition: PaymentFrequency — if payout -> InterestRatePayout count = 2 and payout -> InterestRatePayout -> paymentDates exists then payout -> InterestRatePayout -> paymentDates -> paymentFrequency exists
- Rosetta condition: Quantity — if payout -> OptionPayout exists then payout -> OptionPayout -> priceQuantity exists or payout -> OptionPayout -> underlier -> Product ->> economicTerms -> payout -> InterestRatePayout count = 2
- Rosetta condition: DayCountFraction — if payout -> InterestRatePayout count = 2 then payout -> InterestRatePayout -> dayCountFraction exists
- Rosetta condition: PaymentDates — if payout -> InterestRatePayout count = 2 then payout -> InterestRatePayout -> dayCountFraction exists
- Rosetta condition: MarketPrice — if payout -> CreditDefaultPayout -> generalTerms -> indexReferenceInformation is absent then payout -> CreditDefaultPayout -> transactedPrice -> marketFixedRate is absent and payout -> CreditDefaultPayout -> transactedPrice -> marketPrice is absent
- Rosetta condition: NotionalResetOnPerformancePayout — payout -> CreditDefaultPayout -> priceQuantity -> reset is absent and payout -> AssetPayout -> priceQuantity -> reset is absent and payout -> CommodityPayout -> priceQuantity -> reset is absent and payout -> FixedPricePayout -> priceQuantity -> reset is absent and payout -> SettlementPayout -> priceQuantity -> reset is absent and payout -> OptionPayout -> priceQuantity -> reset is absent
- Rosetta condition: NotionalResetInterestRatePayoutExists — if payout -> PerformancePayout -> priceQuantity -> reset contains True then payout -> InterestRatePayout exists
- Rosetta condition: FpML_cd_26_28 — // Cashflow is no longer part of the product so this condition cannot be tested at the economic terms level. // Consider adding a generic validation at the trade state level that any cashflow must be between effective and termination dates. True
- Rosetta condition: FpML_cd_27 — // Cashflow is no longer part of the product so this condition cannot be tested at the economic terms level. // Consider adding a generic validation at the trade state level that any cashflow must be between effective and termination dates. True
- Rosetta condition: FpML_cd_30 — if payout -> InterestRatePayout -> paymentDates -> lastRegularPaymentDate exists and terminationDate exists then payout -> InterestRatePayout -> paymentDates -> lastRegularPaymentDate all < terminationDate -> adjustableDate -> unadjustedDate or payout -> InterestRatePayout -> paymentDates -> lastRegularPaymentDate all < terminationDate -> adjustableDate -> adjustedDate
- Rosetta condition: IndependentCalculationAgent — if calculationAgent -> calculationAgentParty exists then calculationAgent -> calculationAgentParty = AncillaryRoleEnum -> CalculationAgentIndependent
Identifier and Mapping Information
Schema Source
- from schema: https://w3id.org/lmodel/common-domain-model
Mappings
| Mapping Type | Mapped Value |
|---|---|
| self | common_domain_model:EconomicTerms |
| native | common_domain_model:EconomicTerms |
LinkML Source
Direct
name: EconomicTerms
description: ' 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.'
comments:
- 'Rosetta condition: ReturnType_Total_Requires_Dividends — if payout -> PerformancePayout
-> returnTerms -> priceReturnTerms -> returnType all = ReturnTypeEnum -> Total then
payout -> PerformancePayout -> returnTerms -> dividendReturnTerms exists'
- 'Rosetta condition: LastRegularPaymentDate — if payout -> InterestRatePayout ->
paymentDates -> lastRegularPaymentDate exists and payout -> InterestRatePayout ->
stubPeriod -> finalStub exists then payout -> InterestRatePayout count = 2'
- 'Rosetta condition: PayRelativeTo — if payout -> InterestRatePayout count = 2 and
payout -> InterestRatePayout -> paymentDates exists then payout -> InterestRatePayout
-> paymentDates -> payRelativeTo exists'
- 'Rosetta condition: PaymentDatesAdjustments — if payout -> InterestRatePayout count
= 2 and payout -> InterestRatePayout -> paymentDates exists then payout -> InterestRatePayout
-> paymentDates -> paymentDatesAdjustments exists'
- 'Rosetta condition: PaymentFrequency — if payout -> InterestRatePayout count = 2
and payout -> InterestRatePayout -> paymentDates exists then payout -> InterestRatePayout
-> paymentDates -> paymentFrequency exists'
- 'Rosetta condition: Quantity — if payout -> OptionPayout exists then payout -> OptionPayout
-> priceQuantity exists or payout -> OptionPayout -> underlier -> Product ->> economicTerms
-> payout -> InterestRatePayout count = 2'
- 'Rosetta condition: DayCountFraction — if payout -> InterestRatePayout count = 2
then payout -> InterestRatePayout -> dayCountFraction exists'
- 'Rosetta condition: PaymentDates — if payout -> InterestRatePayout count = 2 then
payout -> InterestRatePayout -> dayCountFraction exists'
- 'Rosetta condition: MarketPrice — if payout -> CreditDefaultPayout -> generalTerms
-> indexReferenceInformation is absent then payout -> CreditDefaultPayout -> transactedPrice
-> marketFixedRate is absent and payout -> CreditDefaultPayout -> transactedPrice
-> marketPrice is absent'
- 'Rosetta condition: NotionalResetOnPerformancePayout — payout -> CreditDefaultPayout
-> priceQuantity -> reset is absent and payout -> AssetPayout -> priceQuantity ->
reset is absent and payout -> CommodityPayout -> priceQuantity -> reset is absent
and payout -> FixedPricePayout -> priceQuantity -> reset is absent and payout ->
SettlementPayout -> priceQuantity -> reset is absent and payout -> OptionPayout
-> priceQuantity -> reset is absent'
- 'Rosetta condition: NotionalResetInterestRatePayoutExists — if payout -> PerformancePayout
-> priceQuantity -> reset contains True then payout -> InterestRatePayout exists'
- 'Rosetta condition: FpML_cd_26_28 — // Cashflow is no longer part of the product
so this condition cannot be tested at the economic terms level. // Consider adding
a generic validation at the trade state level that any cashflow must be between
effective and termination dates. True'
- 'Rosetta condition: FpML_cd_27 — // Cashflow is no longer part of the product so
this condition cannot be tested at the economic terms level. // Consider adding
a generic validation at the trade state level that any cashflow must be between
effective and termination dates. True'
- 'Rosetta condition: FpML_cd_30 — if payout -> InterestRatePayout -> paymentDates
-> lastRegularPaymentDate exists and terminationDate exists then payout -> InterestRatePayout
-> paymentDates -> lastRegularPaymentDate all < terminationDate -> adjustableDate
-> unadjustedDate or payout -> InterestRatePayout -> paymentDates -> lastRegularPaymentDate
all < terminationDate -> adjustableDate -> adjustedDate'
- 'Rosetta condition: IndependentCalculationAgent — if calculationAgent -> calculationAgentParty
exists then calculationAgent -> calculationAgentParty = AncillaryRoleEnum -> CalculationAgentIndependent'
in_subset:
- cdm_product_template
from_schema: https://w3id.org/lmodel/common-domain-model
slots:
- effectiveDate
- effectiveTime
- terminationDate
- terminationTime
- dateAdjustments
- payout
- terminationProvision
- calculationAgent
- nonStandardisedTerms
- collateral
slot_usage:
effectiveDate:
name: effectiveDate
description: The first day of the terms of the trade. This day may be subject
to adjustment in accordance with a business day convention.
range: AdjustableOrRelativeDate
effectiveTime:
name: effectiveTime
description: The time and zone of the first day of the terms of the trade. It
can also be specified in relation to another time.
range: DirectOrRelativeTime
dateAdjustments:
name: dateAdjustments
description: 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:
name: payout
description: The payout specifies the future cashflow computation methodology
which characterizes a financial product.
collateral:
name: collateral
description: Represents the collateral obligations of a party.
Induced
name: EconomicTerms
description: ' 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.'
comments:
- 'Rosetta condition: ReturnType_Total_Requires_Dividends — if payout -> PerformancePayout
-> returnTerms -> priceReturnTerms -> returnType all = ReturnTypeEnum -> Total then
payout -> PerformancePayout -> returnTerms -> dividendReturnTerms exists'
- 'Rosetta condition: LastRegularPaymentDate — if payout -> InterestRatePayout ->
paymentDates -> lastRegularPaymentDate exists and payout -> InterestRatePayout ->
stubPeriod -> finalStub exists then payout -> InterestRatePayout count = 2'
- 'Rosetta condition: PayRelativeTo — if payout -> InterestRatePayout count = 2 and
payout -> InterestRatePayout -> paymentDates exists then payout -> InterestRatePayout
-> paymentDates -> payRelativeTo exists'
- 'Rosetta condition: PaymentDatesAdjustments — if payout -> InterestRatePayout count
= 2 and payout -> InterestRatePayout -> paymentDates exists then payout -> InterestRatePayout
-> paymentDates -> paymentDatesAdjustments exists'
- 'Rosetta condition: PaymentFrequency — if payout -> InterestRatePayout count = 2
and payout -> InterestRatePayout -> paymentDates exists then payout -> InterestRatePayout
-> paymentDates -> paymentFrequency exists'
- 'Rosetta condition: Quantity — if payout -> OptionPayout exists then payout -> OptionPayout
-> priceQuantity exists or payout -> OptionPayout -> underlier -> Product ->> economicTerms
-> payout -> InterestRatePayout count = 2'
- 'Rosetta condition: DayCountFraction — if payout -> InterestRatePayout count = 2
then payout -> InterestRatePayout -> dayCountFraction exists'
- 'Rosetta condition: PaymentDates — if payout -> InterestRatePayout count = 2 then
payout -> InterestRatePayout -> dayCountFraction exists'
- 'Rosetta condition: MarketPrice — if payout -> CreditDefaultPayout -> generalTerms
-> indexReferenceInformation is absent then payout -> CreditDefaultPayout -> transactedPrice
-> marketFixedRate is absent and payout -> CreditDefaultPayout -> transactedPrice
-> marketPrice is absent'
- 'Rosetta condition: NotionalResetOnPerformancePayout — payout -> CreditDefaultPayout
-> priceQuantity -> reset is absent and payout -> AssetPayout -> priceQuantity ->
reset is absent and payout -> CommodityPayout -> priceQuantity -> reset is absent
and payout -> FixedPricePayout -> priceQuantity -> reset is absent and payout ->
SettlementPayout -> priceQuantity -> reset is absent and payout -> OptionPayout
-> priceQuantity -> reset is absent'
- 'Rosetta condition: NotionalResetInterestRatePayoutExists — if payout -> PerformancePayout
-> priceQuantity -> reset contains True then payout -> InterestRatePayout exists'
- 'Rosetta condition: FpML_cd_26_28 — // Cashflow is no longer part of the product
so this condition cannot be tested at the economic terms level. // Consider adding
a generic validation at the trade state level that any cashflow must be between
effective and termination dates. True'
- 'Rosetta condition: FpML_cd_27 — // Cashflow is no longer part of the product so
this condition cannot be tested at the economic terms level. // Consider adding
a generic validation at the trade state level that any cashflow must be between
effective and termination dates. True'
- 'Rosetta condition: FpML_cd_30 — if payout -> InterestRatePayout -> paymentDates
-> lastRegularPaymentDate exists and terminationDate exists then payout -> InterestRatePayout
-> paymentDates -> lastRegularPaymentDate all < terminationDate -> adjustableDate
-> unadjustedDate or payout -> InterestRatePayout -> paymentDates -> lastRegularPaymentDate
all < terminationDate -> adjustableDate -> adjustedDate'
- 'Rosetta condition: IndependentCalculationAgent — if calculationAgent -> calculationAgentParty
exists then calculationAgent -> calculationAgentParty = AncillaryRoleEnum -> CalculationAgentIndependent'
in_subset:
- cdm_product_template
from_schema: https://w3id.org/lmodel/common-domain-model
slot_usage:
effectiveDate:
name: effectiveDate
description: The first day of the terms of the trade. This day may be subject
to adjustment in accordance with a business day convention.
range: AdjustableOrRelativeDate
effectiveTime:
name: effectiveTime
description: The time and zone of the first day of the terms of the trade. It
can also be specified in relation to another time.
range: DirectOrRelativeTime
dateAdjustments:
name: dateAdjustments
description: 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:
name: payout
description: The payout specifies the future cashflow computation methodology
which characterizes a financial product.
collateral:
name: collateral
description: Represents the collateral obligations of a party.
attributes:
effectiveDate:
name: effectiveDate
description: The first day of the terms of the trade. This day may be subject
to adjustment in accordance with a business day convention.
from_schema: https://w3id.org/lmodel/common-domain-model
close_mappings:
- fpml_5_10:CodeValue.effectiveDate
rank: 1000
owner: EconomicTerms
domain_of:
- CodeValue
- CounterpartyPositionBusinessEvent
- IndexTransitionInstruction
- StockSplitInstruction
- ClosedState
- EventInstruction
- LegalAgreementBase
- MinimumTransferAmountAmendment
- TerminationCurrencyAmendment
- PriceQuantity
- FallbackRateParameters
- CalculationPeriodDates
- EconomicTerms
- CancelableProvision
range: AdjustableOrRelativeDate
effectiveTime:
name: effectiveTime
description: The time and zone of the first day of the terms of the trade. It
can also be specified in relation to another time.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: EconomicTerms
domain_of:
- EventInstruction
- EconomicTerms
range: DirectOrRelativeTime
terminationDate:
name: terminationDate
description: 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).
from_schema: https://w3id.org/lmodel/common-domain-model
close_mappings:
- fpml_5_10:CalculationPeriodDates.terminationDate
rank: 1000
owner: EconomicTerms
domain_of:
- CalculationPeriodDates
- EconomicTerms
range: AdjustableOrRelativeDate
terminationTime:
name: terminationTime
description: The time and zone of the last day of the terms of the trade. It can
also be specified in relation to another time.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: EconomicTerms
domain_of:
- EconomicTerms
range: DirectOrRelativeTime
dateAdjustments:
name: dateAdjustments
description: 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.
from_schema: https://w3id.org/lmodel/common-domain-model
close_mappings:
- fpml_5_10:AdjustableDate.dateAdjustments
rank: 1000
owner: EconomicTerms
domain_of:
- AdjustableDate
- AdjustableDates
- AdjustableOrAdjustedDate
- AdjustableOrAdjustedOrRelativeDate
- DividendPeriod
- ObservationSchedule
- EconomicTerms
range: BusinessDayAdjustments
payout:
name: payout
annotations:
metadata_reference:
tag: metadata_reference
value: true
description: The payout specifies the future cashflow computation methodology
which characterizes a financial product.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: EconomicTerms
domain_of:
- ResetInstruction
- CalculateTransferInstruction
- EconomicTerms
range: Payout
required: true
multivalued: true
inlined: true
inlined_as_list: true
any_of:
- range: AssetPayout
- range: CommodityPayout
- range: CreditDefaultPayout
- range: FixedPricePayout
- range: InterestRatePayout
- range: OptionPayout
- range: PerformancePayout
- range: SettlementPayout
terminationProvision:
name: terminationProvision
description: Contains optional provisions pertaining to the termination characteristics
of a contract.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: EconomicTerms
domain_of:
- EconomicTerms
range: TerminationProvision
calculationAgent:
name: calculationAgent
description: The ISDA calculation agent responsible for performing duties as defined
in the applicable product definitions.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: EconomicTerms
domain_of:
- EconomicTerms
- MandatoryEarlyTermination
- OptionalEarlyTermination
range: CalculationAgent
nonStandardisedTerms:
name: nonStandardisedTerms
description: Specifies, when boolean value is True, that additional economic terms
exist that have not been included in the product representation.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: EconomicTerms
domain_of:
- EconomicTerms
range: boolean
collateral:
name: collateral
description: Represents the collateral obligations of a party.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: EconomicTerms
domain_of:
- ExecutionInstruction
- Trade
- ContractBase
- AvailableInventoryRecord
- GlobalMasterSecuritiesLendingAgreement
- EconomicTerms
range: Collateral