Skip to content

Class: TradableProduct

Definition of a product as ready to be traded, i.e. included in an execution or contract, by associating a specific price and quantity to this product plus an (optional) mechanism for any potential future quantity adjustment.

URI: common_domain_model:TradableProduct

 classDiagram
    class TradableProduct
    click TradableProduct href "../TradableProduct/"
      TradableProduct <|-- Trade
        click Trade href "../Trade/"
      
      TradableProduct : adjustment
        
          
    
        
        
        TradableProduct --> "0..1" NotionalAdjustmentEnum : adjustment
        click NotionalAdjustmentEnum href "../NotionalAdjustmentEnum/"
    

        
      TradableProduct : ancillaryParty
        
          
    
        
        
        TradableProduct --> "*" AncillaryParty : ancillaryParty
        click AncillaryParty href "../AncillaryParty/"
    

        
      TradableProduct : counterparty
        
          
    
        
        
        TradableProduct --> "1..*" Counterparty : counterparty
        click Counterparty href "../Counterparty/"
    

        
      TradableProduct : product
        
          
    
        
        
        TradableProduct --> "1" NonTransferableProduct : product
        click NonTransferableProduct href "../NonTransferableProduct/"
    

        
      TradableProduct : tradeLot
        
          
    
        
        
        TradableProduct --> "1..*" TradeLot : tradeLot
        click TradeLot href "../TradeLot/"
    

        
      
Name Cardinality and Range Description Inheritance
product 1
NonTransferableProduct
The underlying product to be included in a contract or execution direct
tradeLot 1..*
TradeLot
Specifies the price, quantity and effective date of each trade lot, when the … direct
counterparty 1..*
Counterparty
Specifies the parties which are the two counterparties to the transaction direct
ancillaryParty *
AncillaryParty
Specifies the parties with ancillary roles in the transaction direct
adjustment 0..1
NotionalAdjustmentEnum
Specifies the conditions that govern the adjustment to the quantity of a prod… direct
used by used in type used
CounterpartyPosition positionBase range TradableProduct
  • Rosetta condition NotionalAdjustment is not stated in LinkML: if adjustment exists then product -> economicTerms -> payout as PerformancePayout -> returnTerms -> priceReturnTerms exists or product -> economicTerms -> payout as PerformancePayout exists
  • Rosetta condition PerformancePayout_ExtraordinaryDividendsParty is not stated in LinkML: if product -> economicTerms -> payout as PerformancePayout -> returnTerms -> dividendReturnTerms -> extraordinaryDividendsParty exists then ancillaryParty -> role contains AncillaryRoleEnum -> ExtraordinaryDividendsParty and if ancillaryParty -> role contains AncillaryRoleEnum -> ExtraordinaryDividendsParty then product -> economicTerms -> payout as PerformancePayout -> returnTerms -> dividendReturnTerms -> extraordinaryDividendsParty exists
  • Rosetta condition OptionPayout_PredeterminedClearingOrganizationParty is not stated in LinkML: if product -> economicTerms -> payout as OptionPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists then ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty
  • Rosetta condition ForwardPayout_PredeterminedClearingOrganizationParty is not stated in LinkML: if product -> economicTerms -> payout as SettlementPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists then ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty
  • Rosetta condition PredeterminedClearingOrganizationParty is not stated in LinkML: if ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty then product -> economicTerms -> payout as SettlementPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists or product -> economicTerms -> payout as OptionPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists
  • Rosetta condition ExerciseNoticeReceiverPartyManual is not stated in LinkML: if product -> economicTerms -> payout as OptionPayout -> exerciseTerms -> exerciseProcedure -> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual then product -> economicTerms -> payout as OptionPayout -> exerciseTerms -> exerciseProcedure -> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists
  • Rosetta condition ExerciseNoticeReceiverPartyOptionalEarlyTermination is not stated in LinkML: if product -> economicTerms -> terminationProvision -> earlyTerminationProvision -> optionalEarlyTermination -> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyOptionalEarlyTermination and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyOptionalEarlyTermination then product -> economicTerms -> terminationProvision -> earlyTerminationProvision -> optionalEarlyTermination -> exerciseNotice -> exerciseNoticeReceiver exists
  • Rosetta condition ExerciseNoticeReceiverPartyCancelableProvision is not stated in LinkML: if product -> economicTerms -> terminationProvision -> cancelableProvision -> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyCancelableProvision and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyCancelableProvision then product -> economicTerms -> terminationProvision -> cancelableProvision -> exerciseNotice -> exerciseNoticeReceiver exists
  • Rosetta condition ExerciseNoticeReceiverPartyExtendibleProvision is not stated in LinkML: if product -> economicTerms -> terminationProvision -> extendibleProvision -> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyExtendibleProvision and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyExtendibleProvision then product -> economicTerms -> terminationProvision -> extendibleProvision -> exerciseNotice -> exerciseNoticeReceiver exists
  • Rosetta condition CalculationAgentIndependent is not stated in LinkML: if product -> economicTerms -> calculationAgent -> calculationAgentParty exists then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentIndependent and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentIndependent then product -> economicTerms -> calculationAgent -> calculationAgentParty exists
  • Rosetta condition CalculationAgentOptionalEarlyTermination is not stated in LinkML: if product -> economicTerms -> terminationProvision -> earlyTerminationProvision -> optionalEarlyTermination -> calculationAgent -> calculationAgentParty exists then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentOptionalEarlyTermination and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentOptionalEarlyTermination then product -> economicTerms -> terminationProvision -> earlyTerminationProvision -> optionalEarlyTermination -> calculationAgent -> calculationAgentParty exists
  • Rosetta condition CalculationAgentMandatoryEarlyTermination is not stated in LinkML: if product -> economicTerms -> terminationProvision -> earlyTerminationProvision -> mandatoryEarlyTermination -> calculationAgent -> calculationAgentParty exists then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentMandatoryEarlyTermination and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentMandatoryEarlyTermination then product -> economicTerms -> terminationProvision -> earlyTerminationProvision -> mandatoryEarlyTermination -> calculationAgent -> calculationAgentParty exists
Mapping Type Mapped Value
self common_domain_model:TradableProduct
native common_domain_model:TradableProduct
name: TradableProduct
description: Definition of a product as ready to be traded, i.e. included in an execution
or contract, by associating a specific price and quantity to this product plus an
(optional) mechanism for any potential future quantity adjustment.
comments:
- 'Rosetta condition NotionalAdjustment is not stated in LinkML: if adjustment exists
then product -> economicTerms -> payout as PerformancePayout -> returnTerms -> priceReturnTerms
exists or product -> economicTerms -> payout as PerformancePayout exists'
- 'Rosetta condition PerformancePayout_ExtraordinaryDividendsParty is not stated in
LinkML: if product -> economicTerms -> payout as PerformancePayout -> returnTerms
-> dividendReturnTerms -> extraordinaryDividendsParty exists then ancillaryParty
-> role contains AncillaryRoleEnum -> ExtraordinaryDividendsParty and if ancillaryParty
-> role contains AncillaryRoleEnum -> ExtraordinaryDividendsParty then product ->
economicTerms -> payout as PerformancePayout -> returnTerms -> dividendReturnTerms
-> extraordinaryDividendsParty exists'
- 'Rosetta condition OptionPayout_PredeterminedClearingOrganizationParty is not stated
in LinkML: if product -> economicTerms -> payout as OptionPayout -> settlementTerms
-> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists then
ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty'
- 'Rosetta condition ForwardPayout_PredeterminedClearingOrganizationParty is not stated
in LinkML: if product -> economicTerms -> payout as SettlementPayout -> settlementTerms
-> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists then
ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty'
- 'Rosetta condition PredeterminedClearingOrganizationParty is not stated in LinkML:
if ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty
then product -> economicTerms -> payout as SettlementPayout -> settlementTerms ->
physicalSettlementTerms -> predeterminedClearingOrganizationParty exists or product
-> economicTerms -> payout as OptionPayout -> settlementTerms -> physicalSettlementTerms
-> predeterminedClearingOrganizationParty exists'
- 'Rosetta condition ExerciseNoticeReceiverPartyManual is not stated in LinkML: if
product -> economicTerms -> payout as OptionPayout -> exerciseTerms -> exerciseProcedure
-> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty
-> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual and if ancillaryParty
-> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual then product
-> economicTerms -> payout as OptionPayout -> exerciseTerms -> exerciseProcedure
-> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists'
- 'Rosetta condition ExerciseNoticeReceiverPartyOptionalEarlyTermination is not stated
in LinkML: if product -> economicTerms -> terminationProvision -> earlyTerminationProvision
-> optionalEarlyTermination -> exerciseNotice -> exerciseNoticeReceiver exists then
ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyOptionalEarlyTermination
and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyOptionalEarlyTermination
then product -> economicTerms -> terminationProvision -> earlyTerminationProvision
-> optionalEarlyTermination -> exerciseNotice -> exerciseNoticeReceiver exists'
- 'Rosetta condition ExerciseNoticeReceiverPartyCancelableProvision is not stated
in LinkML: if product -> economicTerms -> terminationProvision -> cancelableProvision
-> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty -> role contains
AncillaryRoleEnum -> ExerciseNoticeReceiverPartyCancelableProvision and if ancillaryParty
-> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyCancelableProvision
then product -> economicTerms -> terminationProvision -> cancelableProvision ->
exerciseNotice -> exerciseNoticeReceiver exists'
- 'Rosetta condition ExerciseNoticeReceiverPartyExtendibleProvision is not stated
in LinkML: if product -> economicTerms -> terminationProvision -> extendibleProvision
-> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty -> role contains
AncillaryRoleEnum -> ExerciseNoticeReceiverPartyExtendibleProvision and if ancillaryParty
-> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyExtendibleProvision
then product -> economicTerms -> terminationProvision -> extendibleProvision ->
exerciseNotice -> exerciseNoticeReceiver exists'
- 'Rosetta condition CalculationAgentIndependent is not stated in LinkML: if product
-> economicTerms -> calculationAgent -> calculationAgentParty exists then ancillaryParty
-> role contains AncillaryRoleEnum -> CalculationAgentIndependent and if ancillaryParty
-> role contains AncillaryRoleEnum -> CalculationAgentIndependent then product ->
economicTerms -> calculationAgent -> calculationAgentParty exists'
- 'Rosetta condition CalculationAgentOptionalEarlyTermination is not stated in LinkML:
if product -> economicTerms -> terminationProvision -> earlyTerminationProvision
-> optionalEarlyTermination -> calculationAgent -> calculationAgentParty exists
then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentOptionalEarlyTermination
and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentOptionalEarlyTermination
then product -> economicTerms -> terminationProvision -> earlyTerminationProvision
-> optionalEarlyTermination -> calculationAgent -> calculationAgentParty exists'
- 'Rosetta condition CalculationAgentMandatoryEarlyTermination is not stated in LinkML:
if product -> economicTerms -> terminationProvision -> earlyTerminationProvision
-> mandatoryEarlyTermination -> calculationAgent -> calculationAgentParty exists
then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentMandatoryEarlyTermination
and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentMandatoryEarlyTermination
then product -> economicTerms -> terminationProvision -> earlyTerminationProvision
-> mandatoryEarlyTermination -> calculationAgent -> calculationAgentParty exists'
from_schema: https://w3id.org/lmodel/common-domain-model
attributes:
product:
name: product
description: The underlying product to be included in a contract or execution.
from_schema: https://w3id.org/lmodel/common-domain-model/cdm_product_template
domain_of:
- ExecutionInstruction
- TermsChangeInstruction
- AggregationParameters
- PositionBase
- 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/cdm_product_template
rank: 1000
domain_of:
- TradableProduct
range: TradeLot
required: true
multivalued: true
counterparty:
name: counterparty
annotations:
doc_reference:
tag: doc_reference
value: ICMA GMRA namingConvention Party
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/cdm_product_template
domain_of:
- ExecutionInstruction
- PartyChangeInstruction
- AgreementTerms
- ClauseLibraryClause
- ClauseLibraryClauseVariant
- EligibleCollateralSpecification
- TradableProduct
range: Counterparty
required: true
multivalued: true
minimum_cardinality: 2
maximum_cardinality: 2
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/cdm_product_template
domain_of:
- AncillaryEntity
- ExecutionInstruction
- PartyChangeInstruction
- TermsChangeInstruction
- 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/cdm_product_template
domain_of:
- TermsChangeInstruction
- TradableProduct
range: NotionalAdjustmentEnum
name: TradableProduct
description: Definition of a product as ready to be traded, i.e. included in an execution
or contract, by associating a specific price and quantity to this product plus an
(optional) mechanism for any potential future quantity adjustment.
comments:
- 'Rosetta condition NotionalAdjustment is not stated in LinkML: if adjustment exists
then product -> economicTerms -> payout as PerformancePayout -> returnTerms -> priceReturnTerms
exists or product -> economicTerms -> payout as PerformancePayout exists'
- 'Rosetta condition PerformancePayout_ExtraordinaryDividendsParty is not stated in
LinkML: if product -> economicTerms -> payout as PerformancePayout -> returnTerms
-> dividendReturnTerms -> extraordinaryDividendsParty exists then ancillaryParty
-> role contains AncillaryRoleEnum -> ExtraordinaryDividendsParty and if ancillaryParty
-> role contains AncillaryRoleEnum -> ExtraordinaryDividendsParty then product ->
economicTerms -> payout as PerformancePayout -> returnTerms -> dividendReturnTerms
-> extraordinaryDividendsParty exists'
- 'Rosetta condition OptionPayout_PredeterminedClearingOrganizationParty is not stated
in LinkML: if product -> economicTerms -> payout as OptionPayout -> settlementTerms
-> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists then
ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty'
- 'Rosetta condition ForwardPayout_PredeterminedClearingOrganizationParty is not stated
in LinkML: if product -> economicTerms -> payout as SettlementPayout -> settlementTerms
-> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists then
ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty'
- 'Rosetta condition PredeterminedClearingOrganizationParty is not stated in LinkML:
if ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty
then product -> economicTerms -> payout as SettlementPayout -> settlementTerms ->
physicalSettlementTerms -> predeterminedClearingOrganizationParty exists or product
-> economicTerms -> payout as OptionPayout -> settlementTerms -> physicalSettlementTerms
-> predeterminedClearingOrganizationParty exists'
- 'Rosetta condition ExerciseNoticeReceiverPartyManual is not stated in LinkML: if
product -> economicTerms -> payout as OptionPayout -> exerciseTerms -> exerciseProcedure
-> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty
-> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual and if ancillaryParty
-> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual then product
-> economicTerms -> payout as OptionPayout -> exerciseTerms -> exerciseProcedure
-> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists'
- 'Rosetta condition ExerciseNoticeReceiverPartyOptionalEarlyTermination is not stated
in LinkML: if product -> economicTerms -> terminationProvision -> earlyTerminationProvision
-> optionalEarlyTermination -> exerciseNotice -> exerciseNoticeReceiver exists then
ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyOptionalEarlyTermination
and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyOptionalEarlyTermination
then product -> economicTerms -> terminationProvision -> earlyTerminationProvision
-> optionalEarlyTermination -> exerciseNotice -> exerciseNoticeReceiver exists'
- 'Rosetta condition ExerciseNoticeReceiverPartyCancelableProvision is not stated
in LinkML: if product -> economicTerms -> terminationProvision -> cancelableProvision
-> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty -> role contains
AncillaryRoleEnum -> ExerciseNoticeReceiverPartyCancelableProvision and if ancillaryParty
-> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyCancelableProvision
then product -> economicTerms -> terminationProvision -> cancelableProvision ->
exerciseNotice -> exerciseNoticeReceiver exists'
- 'Rosetta condition ExerciseNoticeReceiverPartyExtendibleProvision is not stated
in LinkML: if product -> economicTerms -> terminationProvision -> extendibleProvision
-> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty -> role contains
AncillaryRoleEnum -> ExerciseNoticeReceiverPartyExtendibleProvision and if ancillaryParty
-> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyExtendibleProvision
then product -> economicTerms -> terminationProvision -> extendibleProvision ->
exerciseNotice -> exerciseNoticeReceiver exists'
- 'Rosetta condition CalculationAgentIndependent is not stated in LinkML: if product
-> economicTerms -> calculationAgent -> calculationAgentParty exists then ancillaryParty
-> role contains AncillaryRoleEnum -> CalculationAgentIndependent and if ancillaryParty
-> role contains AncillaryRoleEnum -> CalculationAgentIndependent then product ->
economicTerms -> calculationAgent -> calculationAgentParty exists'
- 'Rosetta condition CalculationAgentOptionalEarlyTermination is not stated in LinkML:
if product -> economicTerms -> terminationProvision -> earlyTerminationProvision
-> optionalEarlyTermination -> calculationAgent -> calculationAgentParty exists
then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentOptionalEarlyTermination
and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentOptionalEarlyTermination
then product -> economicTerms -> terminationProvision -> earlyTerminationProvision
-> optionalEarlyTermination -> calculationAgent -> calculationAgentParty exists'
- 'Rosetta condition CalculationAgentMandatoryEarlyTermination is not stated in LinkML:
if product -> economicTerms -> terminationProvision -> earlyTerminationProvision
-> mandatoryEarlyTermination -> calculationAgent -> calculationAgentParty exists
then ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentMandatoryEarlyTermination
and if ancillaryParty -> role contains AncillaryRoleEnum -> CalculationAgentMandatoryEarlyTermination
then product -> economicTerms -> terminationProvision -> earlyTerminationProvision
-> mandatoryEarlyTermination -> calculationAgent -> calculationAgentParty exists'
from_schema: https://w3id.org/lmodel/common-domain-model
attributes:
product:
name: product
description: The underlying product to be included in a contract or execution.
from_schema: https://w3id.org/lmodel/common-domain-model/cdm_product_template
owner: TradableProduct
domain_of:
- ExecutionInstruction
- TermsChangeInstruction
- AggregationParameters
- PositionBase
- 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/cdm_product_template
rank: 1000
owner: TradableProduct
domain_of:
- TradableProduct
range: TradeLot
required: true
multivalued: true
counterparty:
name: counterparty
annotations:
doc_reference:
tag: doc_reference
value: ICMA GMRA namingConvention Party
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/cdm_product_template
owner: TradableProduct
domain_of:
- ExecutionInstruction
- PartyChangeInstruction
- AgreementTerms
- ClauseLibraryClause
- ClauseLibraryClauseVariant
- EligibleCollateralSpecification
- TradableProduct
range: Counterparty
required: true
multivalued: true
minimum_cardinality: 2
maximum_cardinality: 2
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/cdm_product_template
owner: TradableProduct
domain_of:
- AncillaryEntity
- ExecutionInstruction
- PartyChangeInstruction
- TermsChangeInstruction
- 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/cdm_product_template
owner: TradableProduct
domain_of:
- TermsChangeInstruction
- TradableProduct
range: NotionalAdjustmentEnum