Class: 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.
URI: common_domain_model:Trade
classDiagram
class Trade
click Trade href "../Trade/"
TradableProduct <|-- Trade
click TradableProduct href "../TradableProduct/"
Trade : account
Trade --> "*" Account : account
click Account href "../Account/"
Trade : adjustment
Trade --> "0..1" NotionalAdjustmentEnum : adjustment
click NotionalAdjustmentEnum href "../NotionalAdjustmentEnum/"
Trade : ancillaryParty
Trade --> "*" AncillaryParty : ancillaryParty
click AncillaryParty href "../AncillaryParty/"
Trade : clearedDate
Trade : collateral
Trade --> "0..1" Collateral : collateral
click Collateral href "../Collateral/"
Trade : contractDetails
Trade --> "0..1" ContractDetails : contractDetails
click ContractDetails href "../ContractDetails/"
Trade : counterparty
Trade --> "1..*" Counterparty : counterparty
click Counterparty href "../Counterparty/"
Trade : executionDetails
Trade --> "0..1" ExecutionDetails : executionDetails
click ExecutionDetails href "../ExecutionDetails/"
Trade : party
Trade --> "*" Party : party
click Party href "../Party/"
Trade : partyRole
Trade --> "*" PartyRole : partyRole
click PartyRole href "../PartyRole/"
Trade : product
Trade --> "1" NonTransferableProduct : product
click NonTransferableProduct href "../NonTransferableProduct/"
Trade : tradeDate
Trade : tradeIdentifier
Trade --> "1..*" TradeIdentifier : tradeIdentifier
click TradeIdentifier href "../TradeIdentifier/"
Trade : tradeLot
Trade --> "1..*" TradeLot : tradeLot
click TradeLot href "../TradeLot/"
Trade : tradeTime
Trade --> "0..1" TimeZone : tradeTime
click TimeZone href "../TimeZone/"
Inheritance
- TradableProduct
- Trade
Slots
| Name | Cardinality and Range | Description | Inheritance |
|---|---|---|---|
| tradeIdentifier | 1..* TradeIdentifier |
Represents the identifier(s) that uniquely identify a trade for an identity i... | direct |
| tradeDate | 1 date |
Specifies the date which the trade was agreed | direct |
| tradeTime | 0..1 TimeZone |
Denotes the trade time and timezone as agreed by the parties to the trade | direct |
| party | * Party |
Represents the parties to the trade | direct |
| partyRole | * PartyRole |
Represents the role each specified party takes in the trade | direct |
| executionDetails | 0..1 ExecutionDetails |
Represents information specific to trades that arose from executions | direct |
| contractDetails | 0..1 ContractDetails |
Represents information specific to trades involving contractual products | direct |
| clearedDate | 0..1 date |
Specifies the date on which a trade is cleared (novated) through a central co... | direct |
| collateral | 0..1 Collateral |
Represents the collateral obligations of a party | direct |
| account | * Account |
Represents a party's granular account information, which may be used in subse... | direct |
| product | 1 NonTransferableProduct |
The underlying product to be included in a contract or execution | TradableProduct |
| tradeLot | 1..* TradeLot |
Specifies the price, quantity and effective date of each trade lot, when the ... | TradableProduct |
| counterparty | 1..* Counterparty |
Specifies the parties which are the two counterparties to the transaction | TradableProduct |
| ancillaryParty | * AncillaryParty |
Specifies the parties with ancillary roles in the transaction | TradableProduct |
| adjustment | 0..1 NotionalAdjustmentEnum |
Specifies the conditions that govern the adjustment to the quantity of a prod... | TradableProduct |
Usages
| used by | used in | type | used |
|---|---|---|---|
| TradeState | trade | range | Trade |
| Lineage | tradeReference | range | Trade |
| TradePricingReport | trade | range | Trade |
| AggregationParameters | tradeReference | range | Trade |
Rules
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'clearedDate': {'required': True}} |
In Subsets
Comments
- Rosetta condition: SettlementPayout — if SettlementPayoutOnlyExists(product -> economicTerms -> payout) then partyRole -> role contains PartyRoleEnum -> Buyer and partyRole -> role contains PartyRoleEnum -> Seller and tradeLot -> priceQuantity -> price exists
- Rosetta condition: PackageTrade — if executionDetails -> packageReference exists then executionDetails -> packageReference -> componentId -> assignedIdentifier contains tradeIdentifier -> assignedIdentifier
- Rosetta condition: DeliverableObligationsPhysicalSettlementMatrix — if (contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType is absent) and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations exists then (product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notSubordinated exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> specifiedCurrency exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notSovereignLender exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notDomesticCurrency exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notDomesticLaw exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notContingent exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notDomesticIssuance exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> assignableLoan exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> consentRequiredLoan exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> transferable exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> maximumMaturity exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> notBearer exists) and (product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> fullFaithAndCreditObLiability exists or product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> generalFundObligationLiability exists or product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> revenueObligationLiability exists)
- Rosetta condition: ObligationsPhysicalSettlementMatrix — if (contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType is absent) and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> obligations exists then (product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> obligations -> notSubordinated exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> obligations -> notSovereignLender exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> obligations -> notDomesticLaw exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> obligations -> notDomesticIssuance exists) and (product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> obligations -> fullFaithAndCreditObLiability exists or product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> obligations -> generalFundObligationLiability exists or product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> obligations -> revenueObligationLiability exists)
- Rosetta condition: CreditEventsPhysicalSettlementMatrix — if (contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType is absent) and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents exists then (product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> bankruptcy exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> obligationDefault exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> obligationAcceleration exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> repudiationMoratorium exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> governmentalIntervention exists)
- Rosetta condition: RestructuringPhysicalSettlementMatrix — if (contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix -> matrixType is absent) and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> restructuring exists then product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> restructuring -> multipleHolderObligation exists
- Rosetta condition: AdditionalFixedPaymentsMortgages — if ((product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> securityType any = Debt and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> debtType -> debtEconomics -> secured -> securedType any = AssetBacked) or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum -> CDSonMBS) and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> floatingAmountEvents exists then (product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> floatingAmountEvents -> additionalFixedPayments -> interestShortfallReimbursement exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> floatingAmountEvents -> additionalFixedPayments -> principalShortfallReimbursement exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> floatingAmountEvents -> additionalFixedPayments -> writedownReimbursement exists)
- Rosetta condition: FloatingAmountEventsMortgages — if ((product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> securityType any = Debt and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> debtType -> debtEconomics -> secured -> securedType any = AssetBacked) or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum -> CDSonMBS) and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> floatingAmountEvents exists then (product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> floatingAmountEvents -> failureToPayPrincipal exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> floatingAmountEvents -> writedown exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> floatingAmountEvents -> impliedWritedown exists)
- Rosetta condition: CreditEventsMortgages — if ((product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> securityType any = Debt and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation -> security -> debtType -> debtEconomics -> secured -> securedType any = AssetBacked) or contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum -> CDSonMBS) and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents exists then (product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> failureToPayPrincipal exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> failureToPayInterest exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> distressedRatingsDowngrade exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> maturityExtension exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> writedown exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> impliedWritedown exists)
- Rosetta condition: HedgingParty — if partyRole -> role contains PartyRoleEnum -> HedgingParty then FilterPartyRole(partyRole, PartyRoleEnum -> HedgingParty) count <= 2
- Rosetta condition: DeterminingParty — if partyRole -> role contains PartyRoleEnum -> DeterminingParty then FilterPartyRole(partyRole, PartyRoleEnum -> DeterminingParty) count <= 2
- Rosetta condition: BarrierDerterminationAgent — if partyRole -> role contains PartyRoleEnum -> BarrierDeterminationAgent then FilterPartyRole(partyRole, PartyRoleEnum -> BarrierDeterminationAgent) count <= 1
- Rosetta condition: ClearedDate — if clearedDate exists then clearedDate >= tradeDate
- Rosetta condition: FpML_cd_1 — if product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation exists then tradeDate < product -> economicTerms -> effectiveDate -> adjustableDate -> unadjustedDate or tradeDate < product -> economicTerms -> effectiveDate -> adjustableDate -> adjustedDate
- Rosetta condition: FpML_cd_7 — if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation exists then product -> economicTerms -> payout -> InterestRatePayout -> calculationPeriodDates -> effectiveDate -> adjustableDate -> dateAdjustments exists or tradeDate < product -> economicTerms -> effectiveDate -> adjustableDate -> adjustedDate
- Rosetta condition: FpML_cd_8 — if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation exists then product -> economicTerms -> terminationDate -> adjustableDate -> dateAdjustments exists
- Rosetta condition: FpML_cd_11 — if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation exists and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum -> ISDA2003CreditDerivatives then product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> allGuarantees exists
- Rosetta condition: FpML_cd_19 — if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum -> ISDA1999CreditDerivatives then product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> creditEventNotice -> businessCenter is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> restructuring -> multipleHolderObligation is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> restructuring -> multipleCreditEventNotices is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> allGuarantees is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> indexReferenceInformation is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> substitution is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> modifiedEquityDelivery is absent
- Rosetta condition: FpML_cd_20 — if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum -> ISDA2003CreditDerivatives then product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> obligations -> notContingent is absent
- Rosetta condition: FpML_cd_23 — if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation exists then product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> cashSettlementTerms exists or product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms exists
- Rosetta condition: FpML_cd_24 — if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation exists then product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> creditEventNotice exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> obligations exists and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> referencePrice exists
- Rosetta condition: FpML_cd_25 — if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms exists then product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> settlementCurrency exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> physicalSettlementPeriod exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> escrow exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> accruedInterest exists
- Rosetta condition: FpML_cd_32 — if contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> masterConfirmationType is absent and contractDetails -> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation exists and product -> economicTerms -> payout -> InterestRatePayout -> priceQuantity exists and tradeLot -> priceQuantity -> quantity -> value exists then product -> economicTerms -> payout -> InterestRatePayout -> dayCountFraction exists
- Rosetta condition: FpML_ird_8 — if product -> economicTerms -> payout -> InterestRatePayout exists then FpmlIrd8(item, account) = True
- Rosetta condition: ExtraordinaryEvents — if contractDetails -> documentation -> agreementTerms -> agreement -> transactionAdditionalTerms -> equityAdditionalTerms -> extraordinaryEvents exists then (product -> economicTerms -> payout -> PerformancePayout -> returnTerms -> priceReturnTerms exists or product -> economicTerms -> payout -> OptionPayout exists) and Qualify_AssetClass_Equity(product -> economicTerms)
- Rosetta condition: DisruptionEventsDeterminingParty — if contractDetails -> documentation -> agreementTerms -> agreement -> transactionAdditionalTerms -> equityAdditionalTerms -> extraordinaryEvents -> additionalDisruptionEvents -> determiningParty exists then ancillaryParty -> role contains AncillaryRoleEnum -> DisruptionEventsDeterminingParty and if ancillaryParty -> role contains AncillaryRoleEnum -> DisruptionEventsDeterminingParty then contractDetails -> documentation -> agreementTerms -> agreement -> transactionAdditionalTerms -> equityAdditionalTerms -> extraordinaryEvents -> additionalDisruptionEvents -> determiningParty exists
- Rosetta 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.
- Rosetta func: TradeNoExecutionDetails
- Rosetta func: ExtractBeforeTrade
- Rosetta func: ExtractAfterTrade
Identifier and Mapping Information
Annotations
| property | value |
|---|---|
| metadata_key | True |
| rosetta_functions | [{"name":"EquityPerformance","description":"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":[{"name":"trade","type":"Trade","cardinality":"1..1"},{"name":"observation","type":"Price","cardinality":"1..1"},{"name":"date","type":"date","cardinality":"1..1"}],"output":{"name":"equityPerformance","type":"number","cardinality":"1..1"}},{"name":"TradeNoExecutionDetails","inputs":[{"name":"trade","type":"Trade","cardinality":"1..1"}],"output":{"name":"newTrade","type":"Trade","cardinality":"1..1"}},{"name":"ExtractBeforeTrade","inputs":[{"name":"businessEvent","type":"BusinessEvent","cardinality":"1..1"}],"output":{"name":"trade","type":"Trade","cardinality":"0..1"}},{"name":"ExtractAfterTrade","inputs":[{"name":"businessEvent","type":"BusinessEvent","cardinality":"1..1"}],"output":{"name":"trade","type":"Trade","cardinality":"0..1"}}] |
Schema Source
- from schema: https://w3id.org/lmodel/common-domain-model
Mappings
| Mapping Type | Mapped Value |
|---|---|
| self | common_domain_model:Trade |
| native | common_domain_model:Trade |
| close | gist:Transaction |
LinkML Source
Direct
name: Trade
annotations:
metadata_key:
tag: metadata_key
value: true
rosetta_functions:
tag: rosetta_functions
value: '[{"name":"EquityPerformance","description":"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":[{"name":"trade","type":"Trade","cardinality":"1..1"},{"name":"observation","type":"Price","cardinality":"1..1"},{"name":"date","type":"date","cardinality":"1..1"}],"output":{"name":"equityPerformance","type":"number","cardinality":"1..1"}},{"name":"TradeNoExecutionDetails","inputs":[{"name":"trade","type":"Trade","cardinality":"1..1"}],"output":{"name":"newTrade","type":"Trade","cardinality":"1..1"}},{"name":"ExtractBeforeTrade","inputs":[{"name":"businessEvent","type":"BusinessEvent","cardinality":"1..1"}],"output":{"name":"trade","type":"Trade","cardinality":"0..1"}},{"name":"ExtractAfterTrade","inputs":[{"name":"businessEvent","type":"BusinessEvent","cardinality":"1..1"}],"output":{"name":"trade","type":"Trade","cardinality":"0..1"}}]'
description: 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.
comments:
- 'Rosetta condition: SettlementPayout — if SettlementPayoutOnlyExists(product ->
economicTerms -> payout) then partyRole -> role contains PartyRoleEnum -> Buyer
and partyRole -> role contains PartyRoleEnum -> Seller and tradeLot -> priceQuantity
-> price exists'
- 'Rosetta condition: PackageTrade — if executionDetails -> packageReference exists
then executionDetails -> packageReference -> componentId -> assignedIdentifier contains
tradeIdentifier -> assignedIdentifier'
- 'Rosetta condition: DeliverableObligationsPhysicalSettlementMatrix — if (contractDetails
-> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix
-> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualMatrix -> matrixType is absent) and product -> economicTerms -> payout
-> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations
exists then (product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms
-> physicalSettlementTerms -> deliverableObligations -> notSubordinated exists and
product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms ->
physicalSettlementTerms -> deliverableObligations -> specifiedCurrency exists and
product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms ->
physicalSettlementTerms -> deliverableObligations -> notSovereignLender exists and
product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms ->
physicalSettlementTerms -> deliverableObligations -> notDomesticCurrency exists
and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms
-> physicalSettlementTerms -> deliverableObligations -> notDomesticLaw exists and
product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms ->
physicalSettlementTerms -> deliverableObligations -> notContingent exists and product
-> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms
-> deliverableObligations -> notDomesticIssuance exists and product -> economicTerms
-> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms ->
deliverableObligations -> assignableLoan exists and product -> economicTerms ->
payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations
-> consentRequiredLoan exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> transferable
exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms
-> physicalSettlementTerms -> deliverableObligations -> maximumMaturity exists and
product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms ->
physicalSettlementTerms -> deliverableObligations -> notBearer exists) and (product
-> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms
-> deliverableObligations -> fullFaithAndCreditObLiability exists or product ->
economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms
-> deliverableObligations -> generalFundObligationLiability exists or product ->
economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms
-> deliverableObligations -> revenueObligationLiability exists)'
- 'Rosetta condition: ObligationsPhysicalSettlementMatrix — if (contractDetails ->
documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix
-> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualMatrix -> matrixType is absent) and product -> economicTerms -> payout
-> CreditDefaultPayout -> protectionTerms -> obligations exists then (product ->
economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> obligations
-> notSubordinated exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> obligations -> notSovereignLender exists and product -> economicTerms
-> payout -> CreditDefaultPayout -> protectionTerms -> obligations -> notDomesticLaw
exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> obligations -> notDomesticIssuance exists) and (product -> economicTerms -> payout
-> CreditDefaultPayout -> protectionTerms -> obligations -> fullFaithAndCreditObLiability
exists or product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> obligations -> generalFundObligationLiability exists or product -> economicTerms
-> payout -> CreditDefaultPayout -> protectionTerms -> obligations -> revenueObligationLiability
exists)'
- 'Rosetta condition: CreditEventsPhysicalSettlementMatrix — if (contractDetails ->
documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix
-> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualMatrix -> matrixType is absent) and product -> economicTerms -> payout
-> CreditDefaultPayout -> protectionTerms -> creditEvents exists then (product ->
economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents
-> bankruptcy exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> creditEvents -> obligationDefault exists and product -> economicTerms
-> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> obligationAcceleration
exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> creditEvents -> repudiationMoratorium exists and product -> economicTerms ->
payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> governmentalIntervention
exists)'
- 'Rosetta condition: RestructuringPhysicalSettlementMatrix — if (contractDetails
-> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix
-> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualMatrix -> matrixType is absent) and product -> economicTerms -> payout
-> CreditDefaultPayout -> protectionTerms -> creditEvents -> restructuring exists
then product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> creditEvents -> restructuring -> multipleHolderObligation exists'
- 'Rosetta condition: AdditionalFixedPaymentsMortgages — if ((product -> economicTerms
-> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation
-> security -> securityType any = Debt and product -> economicTerms -> payout ->
CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation
-> security -> debtType -> debtEconomics -> secured -> securedType any = AssetBacked)
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum
-> CDSonMBS) and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> floatingAmountEvents exists then (product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> floatingAmountEvents -> additionalFixedPayments -> interestShortfallReimbursement
exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> floatingAmountEvents -> additionalFixedPayments -> principalShortfallReimbursement
exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> floatingAmountEvents -> additionalFixedPayments -> writedownReimbursement exists)'
- 'Rosetta condition: FloatingAmountEventsMortgages — if ((product -> economicTerms
-> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation
-> security -> securityType any = Debt and product -> economicTerms -> payout ->
CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation
-> security -> debtType -> debtEconomics -> secured -> securedType any = AssetBacked)
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum
-> CDSonMBS) and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> floatingAmountEvents exists then (product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> floatingAmountEvents -> failureToPayPrincipal exists and product
-> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> floatingAmountEvents
-> writedown exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> floatingAmountEvents -> impliedWritedown exists)'
- 'Rosetta condition: CreditEventsMortgages — if ((product -> economicTerms -> payout
-> CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation
-> security -> securityType any = Debt and product -> economicTerms -> payout ->
CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation
-> security -> debtType -> debtEconomics -> secured -> securedType any = AssetBacked)
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum
-> CDSonMBS) and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> creditEvents exists then (product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> creditEvents -> failureToPayPrincipal exists and product ->
economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents
-> failureToPayInterest exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> creditEvents -> distressedRatingsDowngrade exists and product
-> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents
-> maturityExtension exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> creditEvents -> writedown exists and product -> economicTerms
-> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> impliedWritedown
exists)'
- 'Rosetta condition: HedgingParty — if partyRole -> role contains PartyRoleEnum ->
HedgingParty then FilterPartyRole(partyRole, PartyRoleEnum -> HedgingParty) count
<= 2'
- 'Rosetta condition: DeterminingParty — if partyRole -> role contains PartyRoleEnum
-> DeterminingParty then FilterPartyRole(partyRole, PartyRoleEnum -> DeterminingParty)
count <= 2'
- 'Rosetta condition: BarrierDerterminationAgent — if partyRole -> role contains PartyRoleEnum
-> BarrierDeterminationAgent then FilterPartyRole(partyRole, PartyRoleEnum -> BarrierDeterminationAgent)
count <= 1'
- 'Rosetta condition: ClearedDate — if clearedDate exists then clearedDate >= tradeDate'
- 'Rosetta condition: FpML_cd_1 — if product -> economicTerms -> payout -> CreditDefaultPayout
-> generalTerms -> referenceInformation exists then tradeDate < product -> economicTerms
-> effectiveDate -> adjustableDate -> unadjustedDate or tradeDate < product -> economicTerms
-> effectiveDate -> adjustableDate -> adjustedDate'
- 'Rosetta condition: FpML_cd_7 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists then product -> economicTerms -> payout -> InterestRatePayout
-> calculationPeriodDates -> effectiveDate -> adjustableDate -> dateAdjustments
exists or tradeDate < product -> economicTerms -> effectiveDate -> adjustableDate
-> adjustedDate'
- 'Rosetta condition: FpML_cd_8 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists then product -> economicTerms -> terminationDate ->
adjustableDate -> dateAdjustments exists'
- 'Rosetta condition: FpML_cd_11 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists and contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum
-> ISDA2003CreditDerivatives then product -> economicTerms -> payout -> CreditDefaultPayout
-> generalTerms -> referenceInformation -> allGuarantees exists'
- 'Rosetta condition: FpML_cd_19 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum
-> ISDA1999CreditDerivatives then product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> creditEvents -> creditEventNotice -> businessCenter is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> creditEvents -> restructuring -> multipleHolderObligation is absent and product
-> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents
-> restructuring -> multipleCreditEventNotices is absent and product -> economicTerms
-> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> allGuarantees
is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms
-> indexReferenceInformation is absent and product -> economicTerms -> payout ->
CreditDefaultPayout -> generalTerms -> substitution is absent and product -> economicTerms
-> payout -> CreditDefaultPayout -> generalTerms -> modifiedEquityDelivery is absent'
- 'Rosetta condition: FpML_cd_20 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum
-> ISDA2003CreditDerivatives then product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> obligations -> notContingent is absent'
- 'Rosetta condition: FpML_cd_23 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists then product -> economicTerms -> payout -> CreditDefaultPayout
-> settlementTerms -> cashSettlementTerms exists or product -> economicTerms ->
payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms exists'
- 'Rosetta condition: FpML_cd_24 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists then product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> creditEvents -> creditEventNotice exists and product -> economicTerms
-> payout -> CreditDefaultPayout -> protectionTerms -> obligations exists and product
-> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation
-> referencePrice exists'
- 'Rosetta condition: FpML_cd_25 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> settlementTerms -> physicalSettlementTerms exists then product -> economicTerms
-> payout -> CreditDefaultPayout -> settlementTerms -> settlementCurrency exists
and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms
-> physicalSettlementTerms -> physicalSettlementPeriod exists and product -> economicTerms
-> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms ->
escrow exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms
-> physicalSettlementTerms -> deliverableObligations -> accruedInterest exists'
- 'Rosetta condition: FpML_cd_32 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists and product -> economicTerms -> payout -> InterestRatePayout
-> priceQuantity exists and tradeLot -> priceQuantity -> quantity -> value exists
then product -> economicTerms -> payout -> InterestRatePayout -> dayCountFraction
exists'
- 'Rosetta condition: FpML_ird_8 — if product -> economicTerms -> payout -> InterestRatePayout
exists then FpmlIrd8(item, account) = True'
- 'Rosetta condition: ExtraordinaryEvents — if contractDetails -> documentation ->
agreementTerms -> agreement -> transactionAdditionalTerms -> equityAdditionalTerms
-> extraordinaryEvents exists then (product -> economicTerms -> payout -> PerformancePayout
-> returnTerms -> priceReturnTerms exists or product -> economicTerms -> payout
-> OptionPayout exists) and Qualify_AssetClass_Equity(product -> economicTerms)'
- 'Rosetta condition: DisruptionEventsDeterminingParty — if contractDetails -> documentation
-> agreementTerms -> agreement -> transactionAdditionalTerms -> equityAdditionalTerms
-> extraordinaryEvents -> additionalDisruptionEvents -> determiningParty exists
then ancillaryParty -> role contains AncillaryRoleEnum -> DisruptionEventsDeterminingParty
and if ancillaryParty -> role contains AncillaryRoleEnum -> DisruptionEventsDeterminingParty
then contractDetails -> documentation -> agreementTerms -> agreement -> transactionAdditionalTerms
-> equityAdditionalTerms -> extraordinaryEvents -> additionalDisruptionEvents ->
determiningParty exists'
- 'Rosetta 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.'
- 'Rosetta func: TradeNoExecutionDetails'
- 'Rosetta func: ExtractBeforeTrade'
- 'Rosetta func: ExtractAfterTrade'
in_subset:
- cdm_event_common
from_schema: https://w3id.org/lmodel/common-domain-model
close_mappings:
- gist:Transaction
is_a: TradableProduct
slots:
- tradeIdentifier
- tradeDate
- tradeTime
- party
- partyRole
- executionDetails
- contractDetails
- clearedDate
- collateral
- account
slot_usage:
tradeIdentifier:
name: tradeIdentifier
description: 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:
name: tradeDate
description: Specifies the date which the trade was agreed.
party:
name: party
description: 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.
range: Party
multivalued: true
partyRole:
name: partyRole
description: Represents the role each specified party takes in the trade. further
to the principal roles, payer and receiver.
multivalued: true
executionDetails:
name: executionDetails
description: Represents information specific to trades that arose from executions.
required: false
collateral:
name: collateral
description: Represents the collateral obligations of a party.
account:
name: account
description: Represents a party's granular account information, which may be used
in subsequent internal processing.
deprecated: Deprecated in CDM
multivalued: true
rules:
- preconditions:
slot_conditions:
clearedDate:
name: clearedDate
required: true
description: If the cleared date exists, it needs to be on or after the trade date.
comments:
- 'Rosetta comparison: clearedDate >= tradeDate'
Induced
name: Trade
annotations:
metadata_key:
tag: metadata_key
value: true
rosetta_functions:
tag: rosetta_functions
value: '[{"name":"EquityPerformance","description":"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":[{"name":"trade","type":"Trade","cardinality":"1..1"},{"name":"observation","type":"Price","cardinality":"1..1"},{"name":"date","type":"date","cardinality":"1..1"}],"output":{"name":"equityPerformance","type":"number","cardinality":"1..1"}},{"name":"TradeNoExecutionDetails","inputs":[{"name":"trade","type":"Trade","cardinality":"1..1"}],"output":{"name":"newTrade","type":"Trade","cardinality":"1..1"}},{"name":"ExtractBeforeTrade","inputs":[{"name":"businessEvent","type":"BusinessEvent","cardinality":"1..1"}],"output":{"name":"trade","type":"Trade","cardinality":"0..1"}},{"name":"ExtractAfterTrade","inputs":[{"name":"businessEvent","type":"BusinessEvent","cardinality":"1..1"}],"output":{"name":"trade","type":"Trade","cardinality":"0..1"}}]'
description: 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.
comments:
- 'Rosetta condition: SettlementPayout — if SettlementPayoutOnlyExists(product ->
economicTerms -> payout) then partyRole -> role contains PartyRoleEnum -> Buyer
and partyRole -> role contains PartyRoleEnum -> Seller and tradeLot -> priceQuantity
-> price exists'
- 'Rosetta condition: PackageTrade — if executionDetails -> packageReference exists
then executionDetails -> packageReference -> componentId -> assignedIdentifier contains
tradeIdentifier -> assignedIdentifier'
- 'Rosetta condition: DeliverableObligationsPhysicalSettlementMatrix — if (contractDetails
-> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix
-> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualMatrix -> matrixType is absent) and product -> economicTerms -> payout
-> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations
exists then (product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms
-> physicalSettlementTerms -> deliverableObligations -> notSubordinated exists and
product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms ->
physicalSettlementTerms -> deliverableObligations -> specifiedCurrency exists and
product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms ->
physicalSettlementTerms -> deliverableObligations -> notSovereignLender exists and
product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms ->
physicalSettlementTerms -> deliverableObligations -> notDomesticCurrency exists
and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms
-> physicalSettlementTerms -> deliverableObligations -> notDomesticLaw exists and
product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms ->
physicalSettlementTerms -> deliverableObligations -> notContingent exists and product
-> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms
-> deliverableObligations -> notDomesticIssuance exists and product -> economicTerms
-> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms ->
deliverableObligations -> assignableLoan exists and product -> economicTerms ->
payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms -> deliverableObligations
-> consentRequiredLoan exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> settlementTerms -> physicalSettlementTerms -> deliverableObligations -> transferable
exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms
-> physicalSettlementTerms -> deliverableObligations -> maximumMaturity exists and
product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms ->
physicalSettlementTerms -> deliverableObligations -> notBearer exists) and (product
-> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms
-> deliverableObligations -> fullFaithAndCreditObLiability exists or product ->
economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms
-> deliverableObligations -> generalFundObligationLiability exists or product ->
economicTerms -> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms
-> deliverableObligations -> revenueObligationLiability exists)'
- 'Rosetta condition: ObligationsPhysicalSettlementMatrix — if (contractDetails ->
documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix
-> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualMatrix -> matrixType is absent) and product -> economicTerms -> payout
-> CreditDefaultPayout -> protectionTerms -> obligations exists then (product ->
economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> obligations
-> notSubordinated exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> obligations -> notSovereignLender exists and product -> economicTerms
-> payout -> CreditDefaultPayout -> protectionTerms -> obligations -> notDomesticLaw
exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> obligations -> notDomesticIssuance exists) and (product -> economicTerms -> payout
-> CreditDefaultPayout -> protectionTerms -> obligations -> fullFaithAndCreditObLiability
exists or product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> obligations -> generalFundObligationLiability exists or product -> economicTerms
-> payout -> CreditDefaultPayout -> protectionTerms -> obligations -> revenueObligationLiability
exists)'
- 'Rosetta condition: CreditEventsPhysicalSettlementMatrix — if (contractDetails ->
documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix
-> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualMatrix -> matrixType is absent) and product -> economicTerms -> payout
-> CreditDefaultPayout -> protectionTerms -> creditEvents exists then (product ->
economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents
-> bankruptcy exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> creditEvents -> obligationDefault exists and product -> economicTerms
-> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> obligationAcceleration
exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> creditEvents -> repudiationMoratorium exists and product -> economicTerms ->
payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> governmentalIntervention
exists)'
- 'Rosetta condition: RestructuringPhysicalSettlementMatrix — if (contractDetails
-> documentation -> legalAgreementIdentification -> agreementName -> contractualMatrix
-> matrixType all <> MatrixTypeEnum -> CreditDerivativesPhysicalSettlementMatrix
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualMatrix -> matrixType is absent) and product -> economicTerms -> payout
-> CreditDefaultPayout -> protectionTerms -> creditEvents -> restructuring exists
then product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> creditEvents -> restructuring -> multipleHolderObligation exists'
- 'Rosetta condition: AdditionalFixedPaymentsMortgages — if ((product -> economicTerms
-> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation
-> security -> securityType any = Debt and product -> economicTerms -> payout ->
CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation
-> security -> debtType -> debtEconomics -> secured -> securedType any = AssetBacked)
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum
-> CDSonMBS) and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> floatingAmountEvents exists then (product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> floatingAmountEvents -> additionalFixedPayments -> interestShortfallReimbursement
exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> floatingAmountEvents -> additionalFixedPayments -> principalShortfallReimbursement
exists and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> floatingAmountEvents -> additionalFixedPayments -> writedownReimbursement exists)'
- 'Rosetta condition: FloatingAmountEventsMortgages — if ((product -> economicTerms
-> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation
-> security -> securityType any = Debt and product -> economicTerms -> payout ->
CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation
-> security -> debtType -> debtEconomics -> secured -> securedType any = AssetBacked)
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum
-> CDSonMBS) and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> floatingAmountEvents exists then (product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> floatingAmountEvents -> failureToPayPrincipal exists and product
-> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> floatingAmountEvents
-> writedown exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> floatingAmountEvents -> impliedWritedown exists)'
- 'Rosetta condition: CreditEventsMortgages — if ((product -> economicTerms -> payout
-> CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation
-> security -> securityType any = Debt and product -> economicTerms -> payout ->
CreditDefaultPayout -> generalTerms -> referenceInformation -> referenceObligation
-> security -> debtType -> debtEconomics -> secured -> securedType any = AssetBacked)
or contractDetails -> documentation -> legalAgreementIdentification -> agreementName
-> contractualTermsSupplement -> contractualTermsSupplementType contains ContractualSupplementTypeEnum
-> CDSonMBS) and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> creditEvents exists then (product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> creditEvents -> failureToPayPrincipal exists and product ->
economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents
-> failureToPayInterest exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> creditEvents -> distressedRatingsDowngrade exists and product
-> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents
-> maturityExtension exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> creditEvents -> writedown exists and product -> economicTerms
-> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents -> impliedWritedown
exists)'
- 'Rosetta condition: HedgingParty — if partyRole -> role contains PartyRoleEnum ->
HedgingParty then FilterPartyRole(partyRole, PartyRoleEnum -> HedgingParty) count
<= 2'
- 'Rosetta condition: DeterminingParty — if partyRole -> role contains PartyRoleEnum
-> DeterminingParty then FilterPartyRole(partyRole, PartyRoleEnum -> DeterminingParty)
count <= 2'
- 'Rosetta condition: BarrierDerterminationAgent — if partyRole -> role contains PartyRoleEnum
-> BarrierDeterminationAgent then FilterPartyRole(partyRole, PartyRoleEnum -> BarrierDeterminationAgent)
count <= 1'
- 'Rosetta condition: ClearedDate — if clearedDate exists then clearedDate >= tradeDate'
- 'Rosetta condition: FpML_cd_1 — if product -> economicTerms -> payout -> CreditDefaultPayout
-> generalTerms -> referenceInformation exists then tradeDate < product -> economicTerms
-> effectiveDate -> adjustableDate -> unadjustedDate or tradeDate < product -> economicTerms
-> effectiveDate -> adjustableDate -> adjustedDate'
- 'Rosetta condition: FpML_cd_7 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists then product -> economicTerms -> payout -> InterestRatePayout
-> calculationPeriodDates -> effectiveDate -> adjustableDate -> dateAdjustments
exists or tradeDate < product -> economicTerms -> effectiveDate -> adjustableDate
-> adjustedDate'
- 'Rosetta condition: FpML_cd_8 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists then product -> economicTerms -> terminationDate ->
adjustableDate -> dateAdjustments exists'
- 'Rosetta condition: FpML_cd_11 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists and contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum
-> ISDA2003CreditDerivatives then product -> economicTerms -> payout -> CreditDefaultPayout
-> generalTerms -> referenceInformation -> allGuarantees exists'
- 'Rosetta condition: FpML_cd_19 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum
-> ISDA1999CreditDerivatives then product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> creditEvents -> creditEventNotice -> businessCenter is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms
-> creditEvents -> restructuring -> multipleHolderObligation is absent and product
-> economicTerms -> payout -> CreditDefaultPayout -> protectionTerms -> creditEvents
-> restructuring -> multipleCreditEventNotices is absent and product -> economicTerms
-> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation -> allGuarantees
is absent and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms
-> indexReferenceInformation is absent and product -> economicTerms -> payout ->
CreditDefaultPayout -> generalTerms -> substitution is absent and product -> economicTerms
-> payout -> CreditDefaultPayout -> generalTerms -> modifiedEquityDelivery is absent'
- 'Rosetta condition: FpML_cd_20 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> contractualDefinitionsType any = ContractualDefinitionsEnum
-> ISDA2003CreditDerivatives then product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> obligations -> notContingent is absent'
- 'Rosetta condition: FpML_cd_23 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists then product -> economicTerms -> payout -> CreditDefaultPayout
-> settlementTerms -> cashSettlementTerms exists or product -> economicTerms ->
payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms exists'
- 'Rosetta condition: FpML_cd_24 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists then product -> economicTerms -> payout -> CreditDefaultPayout
-> protectionTerms -> creditEvents -> creditEventNotice exists and product -> economicTerms
-> payout -> CreditDefaultPayout -> protectionTerms -> obligations exists and product
-> economicTerms -> payout -> CreditDefaultPayout -> generalTerms -> referenceInformation
-> referencePrice exists'
- 'Rosetta condition: FpML_cd_25 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists and product -> economicTerms -> payout -> CreditDefaultPayout
-> settlementTerms -> physicalSettlementTerms exists then product -> economicTerms
-> payout -> CreditDefaultPayout -> settlementTerms -> settlementCurrency exists
and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms
-> physicalSettlementTerms -> physicalSettlementPeriod exists and product -> economicTerms
-> payout -> CreditDefaultPayout -> settlementTerms -> physicalSettlementTerms ->
escrow exists and product -> economicTerms -> payout -> CreditDefaultPayout -> settlementTerms
-> physicalSettlementTerms -> deliverableObligations -> accruedInterest exists'
- 'Rosetta condition: FpML_cd_32 — if contractDetails -> documentation -> legalAgreementIdentification
-> agreementName -> masterConfirmationType is absent and contractDetails -> documentation
-> legalAgreementIdentification -> agreementName -> contractualMatrix is absent
and product -> economicTerms -> payout -> CreditDefaultPayout -> generalTerms ->
referenceInformation exists and product -> economicTerms -> payout -> InterestRatePayout
-> priceQuantity exists and tradeLot -> priceQuantity -> quantity -> value exists
then product -> economicTerms -> payout -> InterestRatePayout -> dayCountFraction
exists'
- 'Rosetta condition: FpML_ird_8 — if product -> economicTerms -> payout -> InterestRatePayout
exists then FpmlIrd8(item, account) = True'
- 'Rosetta condition: ExtraordinaryEvents — if contractDetails -> documentation ->
agreementTerms -> agreement -> transactionAdditionalTerms -> equityAdditionalTerms
-> extraordinaryEvents exists then (product -> economicTerms -> payout -> PerformancePayout
-> returnTerms -> priceReturnTerms exists or product -> economicTerms -> payout
-> OptionPayout exists) and Qualify_AssetClass_Equity(product -> economicTerms)'
- 'Rosetta condition: DisruptionEventsDeterminingParty — if contractDetails -> documentation
-> agreementTerms -> agreement -> transactionAdditionalTerms -> equityAdditionalTerms
-> extraordinaryEvents -> additionalDisruptionEvents -> determiningParty exists
then ancillaryParty -> role contains AncillaryRoleEnum -> DisruptionEventsDeterminingParty
and if ancillaryParty -> role contains AncillaryRoleEnum -> DisruptionEventsDeterminingParty
then contractDetails -> documentation -> agreementTerms -> agreement -> transactionAdditionalTerms
-> equityAdditionalTerms -> extraordinaryEvents -> additionalDisruptionEvents ->
determiningParty exists'
- 'Rosetta 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.'
- 'Rosetta func: TradeNoExecutionDetails'
- 'Rosetta func: ExtractBeforeTrade'
- 'Rosetta func: ExtractAfterTrade'
in_subset:
- cdm_event_common
from_schema: https://w3id.org/lmodel/common-domain-model
close_mappings:
- gist:Transaction
is_a: TradableProduct
slot_usage:
tradeIdentifier:
name: tradeIdentifier
description: 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:
name: tradeDate
description: Specifies the date which the trade was agreed.
party:
name: party
description: 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.
range: Party
multivalued: true
partyRole:
name: partyRole
description: Represents the role each specified party takes in the trade. further
to the principal roles, payer and receiver.
multivalued: true
executionDetails:
name: executionDetails
description: Represents information specific to trades that arose from executions.
required: false
collateral:
name: collateral
description: Represents the collateral obligations of a party.
account:
name: account
description: Represents a party's granular account information, which may be used
in subsequent internal processing.
deprecated: Deprecated in CDM
multivalued: true
attributes:
tradeIdentifier:
name: tradeIdentifier
description: 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).
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- ExecutionInstruction
- Trade
range: TradeIdentifier
required: true
multivalued: true
inlined: true
inlined_as_list: true
tradeDate:
name: tradeDate
description: Specifies the date which the trade was agreed.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- ExecutionInstruction
- Trade
range: date
required: true
tradeTime:
name: tradeTime
description: Denotes the trade time and timezone as agreed by the parties to the
trade.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- ExecutionInstruction
- Trade
range: TimeZone
party:
name: party
description: 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.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- DebtRedemption
- Trade
- MarginCallBase
- CounterpartyPosition
- AggregationParameters
- AvailableInventory
- WorkflowStepApproval
- WorkflowStep
- UmbrellaAgreementParty
- UmbrellaAgreementSet
- AdditionalRepresentationElection
- CalculationAgentTerms
- CalculationCurrencyElection
- ValuationCalculationDateLocationElection
- CollateralManagementAgreementElection
- ControlAgreementElections
- ControlAgreementNecEventElection
- CustodianElection
- CustodianRiskElection
- ElectiveAmountElection
- FrenchLawAddendumElection
- HoldingAndUsingPostedCollateralElection
- NotificationTimeElection
- PostingObligationsElection
- RecalculationOfValueElection
- RegimeTerms
- PledgeeRepresentativeRider
- SecuredPartyRightsEventElection
- SecurityProviderRightsEventElection
- SensitivityMethodologiesPartyElection
- SubstitutedRegimeTerms
- SubstitutionPartyElection
- TerminationCurrencyElection
- AdditionalObligations
- SecurityInterestForObligations
- SinglePostingParty
- ThresholdElection
- MinimumTransferAmountElection
- ValuationAgent
- LegacyExposureScopeElection
- CreditSupportDocumentElection
- CreditSupportProviderElection
- SpecifiedOrAccessConditionPartyElection
- LegacyIndependentAmountParty
- AutomaticEarlyTerminationElection
- PartyTerminationCurrencySelection
- SpecifiedEntity
- EventsOfDefaultElection
- EligibleCollateralSpecification
range: Party
multivalued: true
partyRole:
name: partyRole
description: Represents the role each specified party takes in the trade. further
to the principal roles, payer and receiver.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- PartyChangeInstruction
- Trade
- MarginCallBase
- CounterpartyPosition
- AvailableInventory
- AvailableInventoryRecord
- UmbrellaAgreementParty
- EligibleCollateralSpecification
range: PartyRole
multivalued: true
executionDetails:
name: executionDetails
description: Represents information specific to trades that arose from executions.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- ExecutionInstruction
- Trade
- ContractBase
range: ExecutionDetails
required: false
contractDetails:
name: contractDetails
description: Represents information specific to trades involving contractual products.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- Trade
- ContractBase
range: ContractDetails
clearedDate:
name: clearedDate
description: Specifies the date on which a trade is cleared (novated) through
a central counterparty clearing service.
deprecated: Deprecated in CDM
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- Trade
range: date
collateral:
name: collateral
description: Represents the collateral obligations of a party.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- ExecutionInstruction
- Trade
- ContractBase
- AvailableInventoryRecord
- GlobalMasterSecuritiesLendingAgreement
- EconomicTerms
range: Collateral
account:
name: account
description: Represents a party's granular account information, which may be used
in subsequent internal processing.
deprecated: Deprecated in CDM
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- Party
- Trade
- WorkflowStep
- TransferContactInformation
range: Account
multivalued: true
product:
name: product
description: The underlying product to be included in a contract or execution.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- ExecutionInstruction
- TermsChangeInstruction
- PositionBase
- AggregationParameters
- ExcludedProducts
- TradableProduct
range: NonTransferableProduct
required: true
tradeLot:
name: tradeLot
description: 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.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- TradableProduct
range: TradeLot
required: true
multivalued: true
inlined: true
inlined_as_list: true
counterparty:
name: counterparty
description: 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.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- ExecutionInstruction
- PartyChangeInstruction
- AgreementTerms
- MasterAgreementClause
- MasterAgreementClauseVariant
- EligibleCollateralSpecification
- TradableProduct
range: Counterparty
required: true
multivalued: true
ancillaryParty:
name: ancillaryParty
description: 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.
from_schema: https://w3id.org/lmodel/common-domain-model
close_mappings:
- fpml_5_10:AncillaryEntity.ancillaryParty
rank: 1000
owner: Trade
domain_of:
- AncillaryEntity
- ExecutionInstruction
- TermsChangeInstruction
- PartyChangeInstruction
- TradableProduct
range: AncillaryParty
multivalued: true
adjustment:
name: adjustment
description: '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.'
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: Trade
domain_of:
- TermsChangeInstruction
- TradableProduct
range: NotionalAdjustmentEnum
rules:
- preconditions:
slot_conditions:
clearedDate:
name: clearedDate
required: true
description: If the cleared date exists, it needs to be on or after the trade date.
comments:
- 'Rosetta comparison: clearedDate >= tradeDate'