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/"
Inheritance
- TradableProduct
Slots
| 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 |
Usages
| used by | used in | type | used |
|---|---|---|---|
| CounterpartyPosition | positionBase | range | TradableProduct |
In Subsets
Comments
- Rosetta condition: PriceQuantityTriangulation — PriceQuantityTriangulation(tradeLot) = True
- Rosetta condition: NotionalAdjustment — if adjustment exists then product -> economicTerms -> payout -> PerformancePayout -> returnTerms -> priceReturnTerms exists or product -> economicTerms -> payout -> PerformancePayout exists
- Rosetta condition: PerformancePayout_ExtraordinaryDividendsParty — if product -> economicTerms -> payout -> PerformancePayout -> returnTerms -> dividendReturnTerms -> extraordinaryDividendsParty exists then ancillaryParty -> role contains AncillaryRoleEnum -> ExtraordinaryDividendsParty and if ancillaryParty -> role contains AncillaryRoleEnum -> ExtraordinaryDividendsParty then product -> economicTerms -> payout -> PerformancePayout -> returnTerms -> dividendReturnTerms -> extraordinaryDividendsParty exists
- Rosetta condition: OptionPayout_PredeterminedClearingOrganizationParty — if product -> economicTerms -> payout -> OptionPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists then ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty
- Rosetta condition: ForwardPayout_PredeterminedClearingOrganizationParty — if product -> economicTerms -> payout -> SettlementPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists then ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty
- Rosetta condition: PredeterminedClearingOrganizationParty — if ancillaryParty -> role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty then product -> economicTerms -> payout -> SettlementPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists or product -> economicTerms -> payout -> OptionPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty exists
- Rosetta condition: ExerciseNoticeReceiverPartyManual — if product -> economicTerms -> payout -> OptionPayout -> exerciseTerms -> exerciseProcedure -> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual and if ancillaryParty -> role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual then product -> economicTerms -> payout -> OptionPayout -> exerciseTerms -> exerciseProcedure -> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists
- Rosetta condition: ExerciseNoticeReceiverPartyOptionalEarlyTermination — 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 — 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 — 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 — 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 — 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 — 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
- Rosetta func: AddTradeLot — Add a TradeLot to an existing list of TradeLots.
Identifier and Mapping Information
Annotations
| property | value |
|---|---|
| rosetta_functions | [{"name":"AddTradeLot","description":"Add a TradeLot to an existing list of TradeLots.","inputs":[{"name":"tradableProduct","type":"TradableProduct","cardinality":"1..1"},{"name":"newTradeLot","type":"TradeLot","cardinality":"1..1"}],"output":{"name":"updatedTradableProduct","type":"TradableProduct","cardinality":"1..1"}}] |
Schema Source
- from schema: https://w3id.org/lmodel/common-domain-model
Mappings
| Mapping Type | Mapped Value |
|---|---|
| self | common_domain_model:TradableProduct |
| native | common_domain_model:TradableProduct |
| close | gist:ProductSpecification |
LinkML Source
Direct
name: TradableProduct
annotations:
rosetta_functions:
tag: rosetta_functions
value: '[{"name":"AddTradeLot","description":"Add a TradeLot to an existing list
of TradeLots.","inputs":[{"name":"tradableProduct","type":"TradableProduct","cardinality":"1..1"},{"name":"newTradeLot","type":"TradeLot","cardinality":"1..1"}],"output":{"name":"updatedTradableProduct","type":"TradableProduct","cardinality":"1..1"}}]'
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: PriceQuantityTriangulation — PriceQuantityTriangulation(tradeLot)
= True'
- 'Rosetta condition: NotionalAdjustment — if adjustment exists then product -> economicTerms
-> payout -> PerformancePayout -> returnTerms -> priceReturnTerms exists or product
-> economicTerms -> payout -> PerformancePayout exists'
- 'Rosetta condition: PerformancePayout_ExtraordinaryDividendsParty — if product ->
economicTerms -> payout -> PerformancePayout -> returnTerms -> dividendReturnTerms
-> extraordinaryDividendsParty exists then ancillaryParty -> role contains AncillaryRoleEnum
-> ExtraordinaryDividendsParty and if ancillaryParty -> role contains AncillaryRoleEnum
-> ExtraordinaryDividendsParty then product -> economicTerms -> payout -> PerformancePayout
-> returnTerms -> dividendReturnTerms -> extraordinaryDividendsParty exists'
- 'Rosetta condition: OptionPayout_PredeterminedClearingOrganizationParty — if product
-> economicTerms -> payout -> OptionPayout -> settlementTerms -> physicalSettlementTerms
-> predeterminedClearingOrganizationParty exists then ancillaryParty -> role contains
AncillaryRoleEnum -> PredeterminedClearingOrganizationParty'
- 'Rosetta condition: ForwardPayout_PredeterminedClearingOrganizationParty — if product
-> economicTerms -> payout -> SettlementPayout -> settlementTerms -> physicalSettlementTerms
-> predeterminedClearingOrganizationParty exists then ancillaryParty -> role contains
AncillaryRoleEnum -> PredeterminedClearingOrganizationParty'
- 'Rosetta condition: PredeterminedClearingOrganizationParty — if ancillaryParty ->
role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty then product
-> economicTerms -> payout -> SettlementPayout -> settlementTerms -> physicalSettlementTerms
-> predeterminedClearingOrganizationParty exists or product -> economicTerms ->
payout -> OptionPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty
exists'
- 'Rosetta condition: ExerciseNoticeReceiverPartyManual — if product -> economicTerms
-> payout -> OptionPayout -> exerciseTerms -> exerciseProcedure -> manualExercise
-> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty -> role contains
AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual and if ancillaryParty ->
role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual then product
-> economicTerms -> payout -> OptionPayout -> exerciseTerms -> exerciseProcedure
-> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists'
- 'Rosetta condition: ExerciseNoticeReceiverPartyOptionalEarlyTermination — 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 — 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 — 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 — 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 — 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 — 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'
- 'Rosetta func: AddTradeLot — Add a TradeLot to an existing list of TradeLots.'
in_subset:
- cdm_product_template
from_schema: https://w3id.org/lmodel/common-domain-model
close_mappings:
- gist:ProductSpecification
slots:
- product
- tradeLot
- counterparty
- ancillaryParty
- adjustment
slot_usage:
product:
name: product
description: The underlying product to be included in a contract or execution.
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.
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.
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.'
Induced
name: TradableProduct
annotations:
rosetta_functions:
tag: rosetta_functions
value: '[{"name":"AddTradeLot","description":"Add a TradeLot to an existing list
of TradeLots.","inputs":[{"name":"tradableProduct","type":"TradableProduct","cardinality":"1..1"},{"name":"newTradeLot","type":"TradeLot","cardinality":"1..1"}],"output":{"name":"updatedTradableProduct","type":"TradableProduct","cardinality":"1..1"}}]'
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: PriceQuantityTriangulation — PriceQuantityTriangulation(tradeLot)
= True'
- 'Rosetta condition: NotionalAdjustment — if adjustment exists then product -> economicTerms
-> payout -> PerformancePayout -> returnTerms -> priceReturnTerms exists or product
-> economicTerms -> payout -> PerformancePayout exists'
- 'Rosetta condition: PerformancePayout_ExtraordinaryDividendsParty — if product ->
economicTerms -> payout -> PerformancePayout -> returnTerms -> dividendReturnTerms
-> extraordinaryDividendsParty exists then ancillaryParty -> role contains AncillaryRoleEnum
-> ExtraordinaryDividendsParty and if ancillaryParty -> role contains AncillaryRoleEnum
-> ExtraordinaryDividendsParty then product -> economicTerms -> payout -> PerformancePayout
-> returnTerms -> dividendReturnTerms -> extraordinaryDividendsParty exists'
- 'Rosetta condition: OptionPayout_PredeterminedClearingOrganizationParty — if product
-> economicTerms -> payout -> OptionPayout -> settlementTerms -> physicalSettlementTerms
-> predeterminedClearingOrganizationParty exists then ancillaryParty -> role contains
AncillaryRoleEnum -> PredeterminedClearingOrganizationParty'
- 'Rosetta condition: ForwardPayout_PredeterminedClearingOrganizationParty — if product
-> economicTerms -> payout -> SettlementPayout -> settlementTerms -> physicalSettlementTerms
-> predeterminedClearingOrganizationParty exists then ancillaryParty -> role contains
AncillaryRoleEnum -> PredeterminedClearingOrganizationParty'
- 'Rosetta condition: PredeterminedClearingOrganizationParty — if ancillaryParty ->
role contains AncillaryRoleEnum -> PredeterminedClearingOrganizationParty then product
-> economicTerms -> payout -> SettlementPayout -> settlementTerms -> physicalSettlementTerms
-> predeterminedClearingOrganizationParty exists or product -> economicTerms ->
payout -> OptionPayout -> settlementTerms -> physicalSettlementTerms -> predeterminedClearingOrganizationParty
exists'
- 'Rosetta condition: ExerciseNoticeReceiverPartyManual — if product -> economicTerms
-> payout -> OptionPayout -> exerciseTerms -> exerciseProcedure -> manualExercise
-> exerciseNotice -> exerciseNoticeReceiver exists then ancillaryParty -> role contains
AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual and if ancillaryParty ->
role contains AncillaryRoleEnum -> ExerciseNoticeReceiverPartyManual then product
-> economicTerms -> payout -> OptionPayout -> exerciseTerms -> exerciseProcedure
-> manualExercise -> exerciseNotice -> exerciseNoticeReceiver exists'
- 'Rosetta condition: ExerciseNoticeReceiverPartyOptionalEarlyTermination — 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 — 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 — 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 — 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 — 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 — 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'
- 'Rosetta func: AddTradeLot — Add a TradeLot to an existing list of TradeLots.'
in_subset:
- cdm_product_template
from_schema: https://w3id.org/lmodel/common-domain-model
close_mappings:
- gist:ProductSpecification
slot_usage:
product:
name: product
description: The underlying product to be included in a contract or execution.
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.
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.
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.'
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
rank: 1000
owner: TradableProduct
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: TradableProduct
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: TradableProduct
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: TradableProduct
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: TradableProduct
domain_of:
- TermsChangeInstruction
- TradableProduct
range: NotionalAdjustmentEnum