Skip to content

Class: CommodityPayout

Payout based on the averaged price of a referenced underlier. (e.g. Commodities). Can represent both average (average of many) & bullet (average of 1) pricing

URI: common_domain_model:CommodityPayout

 classDiagram
    class CommodityPayout
    click CommodityPayout href "../CommodityPayout/"
      PayoutBase <|-- CommodityPayout
        click PayoutBase href "../PayoutBase/"

      CommodityPayout : averagingFeature





        CommodityPayout --> "0..1" AveragingCalculation : averagingFeature
        click AveragingCalculation href "../AveragingCalculation/"



      CommodityPayout : calculationPeriodDates





        CommodityPayout --> "0..1" CalculationPeriodDates : calculationPeriodDates
        click CalculationPeriodDates href "../CalculationPeriodDates/"



      CommodityPayout : commodityPriceReturnTerms





        CommodityPayout --> "0..1" CommodityPriceReturnTerms : commodityPriceReturnTerms
        click CommodityPriceReturnTerms href "../CommodityPriceReturnTerms/"



      CommodityPayout : delivery





        CommodityPayout --> "0..1" AssetDeliveryInformation : delivery
        click AssetDeliveryInformation href "../AssetDeliveryInformation/"



      CommodityPayout : fxFeature





        CommodityPayout --> "0..1" FxFeature : fxFeature
        click FxFeature href "../FxFeature/"



      CommodityPayout : payerReceiver





        CommodityPayout --> "1" PayerReceiver : payerReceiver
        click PayerReceiver href "../PayerReceiver/"



      CommodityPayout : paymentDates





        CommodityPayout --> "1" PaymentDates : paymentDates
        click PaymentDates href "../PaymentDates/"



      CommodityPayout : priceQuantity





        CommodityPayout --> "0..1" ResolvablePriceQuantity : priceQuantity
        click ResolvablePriceQuantity href "../ResolvablePriceQuantity/"



      CommodityPayout : pricingDates





        CommodityPayout --> "1" PricingDates : pricingDates
        click PricingDates href "../PricingDates/"



      CommodityPayout : principalPayment





        CommodityPayout --> "0..1" PrincipalPayments : principalPayment
        click PrincipalPayments href "../PrincipalPayments/"



      CommodityPayout : schedule





        CommodityPayout --> "0..1" CalculationSchedule : schedule
        click CalculationSchedule href "../CalculationSchedule/"



      CommodityPayout : settlementTerms





        CommodityPayout --> "0..1" SettlementTerms : settlementTerms
        click SettlementTerms href "../SettlementTerms/"



      CommodityPayout : underlier





        CommodityPayout --> "1" Underlier : underlier
        click Underlier href "../Underlier/"



Inheritance

Slots

Name Cardinality and Range Description Inheritance
averagingFeature 0..1
AveragingCalculation
Indicates if the averaging calculation, when applicable, is weighted or unwei... direct
commodityPriceReturnTerms 0..1
CommodityPriceReturnTerms
Defines parameters in which the commodity price is assessed direct
pricingDates 1
PricingDates
Specifies specific dates or parametric rules for the dates on which the price... direct
schedule 0..1
CalculationSchedule
Allows the full representation of a payout by defining a set of schedule peri... direct
calculationPeriodDates 0..1
CalculationPeriodDates
Defines the calculation period dates schedule direct
paymentDates 1
PaymentDates
Defines the payment date schedule, as defined by the parameters that are need... direct
underlier 1
Underlier or 
Observable or 
Product
Identifies the underlying product that is referenced for pricing of the appli... direct
fxFeature 0..1
FxFeature
Defines quanto or composite FX features that are included in the swap leg direct
delivery 0..1
AssetDeliveryInformation
Contains the information relative to the delivery of the asset direct
payerReceiver 1
PayerReceiver
Canonical representation of the payer and receiver parties applicable to each... PayoutBase
priceQuantity 0..1
ResolvablePriceQuantity
Each payout leg must implement the quantity concept as a 'resolvable' type, w... PayoutBase
principalPayment 0..1
PrincipalPayments
The specification of the principal exchange PayoutBase
settlementTerms 0..1
SettlementTerms
Each payout leg must specifies its settlement terms, including the delivery t... PayoutBase

Usages

used by used in type used
ResetInstruction payout any_of[range] CommodityPayout
CalculateTransferInstruction payout any_of[range] CommodityPayout
ScheduledTransfer payoutReference any_of[range] CommodityPayout
EconomicTerms payout any_of[range] CommodityPayout

Rules

Rule Applied Preconditions Postconditions Elseconditions

Rule Applied Preconditions Postconditions Elseconditions

In Subsets

Comments

  • Rosetta condition: Quantity — priceQuantity exists
  • Rosetta condition: CalculationPeriod — required choice schedule, calculationPeriodDates
  • Rosetta condition: CommodityUnderlier — if underlier -> Observable exists then ObservableIsCommodity(underlier -> Observable) else if underlier -> Product -> TransferableProduct -> economicTerms -> payout only-element -> OptionPayout exists then ObservableIsCommodity( underlier -> Product -> TransferableProduct -> economicTerms -> payout only-element -> OptionPayout -> underlier -> Observable ) // Commodity Option else if underlier -> Product -> TransferableProduct -> economicTerms -> payout only-element -> SettlementPayout exists then ObservableIsCommodity( underlier -> Product -> TransferableProduct -> economicTerms -> payout only-element -> SettlementPayout -> underlier -> Observable ) // Commodity Future else False
  • Rosetta condition: DeliveryCapacity — if delivery -> deliveryCapacity exists then schedule -> schedulePeriod -> deliveryPeriod -> deliveryCapacity is absent and delivery -> periods -> profile -> block -> deliveryCapacity is absent and schedule -> schedulePeriod -> deliveryPeriod -> profile -> block -> deliveryCapacity is absent else if schedule -> schedulePeriod -> deliveryPeriod -> deliveryCapacity exists then delivery -> deliveryCapacity is absent and delivery -> periods -> profile -> block -> deliveryCapacity is absent and schedule -> schedulePeriod -> deliveryPeriod -> profile -> block -> deliveryCapacity is absent else if delivery -> periods -> profile -> block -> deliveryCapacity exists then schedule -> schedulePeriod -> deliveryPeriod -> deliveryCapacity is absent and schedule -> schedulePeriod -> deliveryPeriod -> profile -> block -> deliveryCapacity is absent else if schedule -> schedulePeriod -> deliveryPeriod -> profile -> block -> deliveryCapacity exists then delivery -> deliveryCapacity is absent and schedule -> schedulePeriod -> deliveryPeriod -> deliveryCapacity is absent and delivery -> periods -> profile -> block -> deliveryCapacity is absent
  • Rosetta condition: PriceTimeIntervalQuantity — if schedule -> schedulePeriod -> deliveryPeriod -> priceTimeIntervalQuantity exists then delivery -> periods -> profile -> block -> priceTimeIntervalQuantity is absent and schedule -> schedulePeriod -> deliveryPeriod -> profile -> block -> priceTimeIntervalQuantity is absent else if delivery -> periods -> profile -> block -> priceTimeIntervalQuantity exists then schedule -> schedulePeriod -> deliveryPeriod -> priceTimeIntervalQuantity is absent and schedule -> schedulePeriod -> deliveryPeriod -> profile -> block -> priceTimeIntervalQuantity is absent else if schedule -> schedulePeriod -> deliveryPeriod -> profile -> block -> priceTimeIntervalQuantity exists then schedule -> schedulePeriod -> deliveryPeriod -> priceTimeIntervalQuantity is absent and delivery -> periods -> profile -> block -> priceTimeIntervalQuantity is absent

Identifier and Mapping Information

Annotations

property value
metadata_key True

Schema Source

Mappings

Mapping Type Mapped Value
self common_domain_model:CommodityPayout
native common_domain_model:CommodityPayout
close fpml_5_10:CommodityPayout

LinkML Source

Direct

name: CommodityPayout
annotations:
  metadata_key:
    tag: metadata_key
    value: true
description: Payout based on the averaged price of a referenced underlier. (e.g. Commodities).
  Can represent both average (average of many) & bullet (average of 1) pricing
comments:
- 'Rosetta condition: Quantity  priceQuantity exists'
- 'Rosetta condition: CalculationPeriod  required choice schedule, calculationPeriodDates'
- 'Rosetta condition: CommodityUnderlier  if underlier -> Observable exists then
  ObservableIsCommodity(underlier -> Observable) else if underlier -> Product -> TransferableProduct
  -> economicTerms -> payout only-element -> OptionPayout exists then ObservableIsCommodity(
  underlier -> Product -> TransferableProduct -> economicTerms -> payout only-element
  -> OptionPayout -> underlier -> Observable ) // Commodity Option else if underlier
  -> Product -> TransferableProduct -> economicTerms -> payout only-element -> SettlementPayout
  exists then ObservableIsCommodity( underlier -> Product -> TransferableProduct ->
  economicTerms -> payout only-element -> SettlementPayout -> underlier -> Observable
  ) // Commodity Future else False'
- 'Rosetta condition: DeliveryCapacity  if delivery -> deliveryCapacity exists then
  schedule -> schedulePeriod -> deliveryPeriod -> deliveryCapacity is absent and delivery
  -> periods -> profile -> block -> deliveryCapacity is absent and schedule -> schedulePeriod
  -> deliveryPeriod -> profile -> block -> deliveryCapacity is absent else if schedule
  -> schedulePeriod -> deliveryPeriod -> deliveryCapacity exists then delivery ->
  deliveryCapacity is absent and delivery -> periods -> profile -> block -> deliveryCapacity
  is absent and schedule -> schedulePeriod -> deliveryPeriod -> profile -> block ->
  deliveryCapacity is absent else if delivery -> periods -> profile -> block -> deliveryCapacity
  exists then schedule -> schedulePeriod -> deliveryPeriod -> deliveryCapacity is
  absent and schedule -> schedulePeriod -> deliveryPeriod -> profile -> block -> deliveryCapacity
  is absent else if schedule -> schedulePeriod -> deliveryPeriod -> profile -> block
  -> deliveryCapacity exists then delivery -> deliveryCapacity is absent and schedule
  -> schedulePeriod -> deliveryPeriod -> deliveryCapacity is absent and delivery ->
  periods -> profile -> block -> deliveryCapacity is absent'
- 'Rosetta condition: PriceTimeIntervalQuantity  if schedule -> schedulePeriod ->
  deliveryPeriod -> priceTimeIntervalQuantity exists then delivery -> periods -> profile
  -> block -> priceTimeIntervalQuantity is absent and schedule -> schedulePeriod ->
  deliveryPeriod -> profile -> block -> priceTimeIntervalQuantity is absent else if
  delivery -> periods -> profile -> block -> priceTimeIntervalQuantity exists then
  schedule -> schedulePeriod -> deliveryPeriod -> priceTimeIntervalQuantity is absent
  and schedule -> schedulePeriod -> deliveryPeriod -> profile -> block -> priceTimeIntervalQuantity
  is absent else if schedule -> schedulePeriod -> deliveryPeriod -> profile -> block
  -> priceTimeIntervalQuantity exists then schedule -> schedulePeriod -> deliveryPeriod
  -> priceTimeIntervalQuantity is absent and delivery -> periods -> profile -> block
  -> priceTimeIntervalQuantity is absent'
in_subset:
- cdm_product_asset
from_schema: https://w3id.org/lmodel/common-domain-model
close_mappings:
- fpml_5_10:CommodityPayout
is_a: PayoutBase
slots:
- averagingFeature
- commodityPriceReturnTerms
- pricingDates
- schedule
- calculationPeriodDates
- paymentDates
- underlier
- fxFeature
- delivery
slot_usage:
  schedule:
    name: schedule
    description: Allows the full representation of a payout by defining a set of schedule
      periods. It supports standard schedule customization by expressing all the dates,
      quantities, and pricing data in a non-parametric way.
    range: CalculationSchedule
    multivalued: false
  underlier:
    name: underlier
    description: Identifies the underlying product that is referenced for pricing
      of the applicable leg in a swap. Referenced in the '2018 ISDA CDM Equity Confirmation
      for Security Equity Swap' as Security.
rules:
- postconditions:
    slot_conditions:
      priceQuantity:
        name: priceQuantity
        required: true
  description: When there is an OptionPayout the quantity can be expressed as part
    of the payoutQuantity, or as part of the underlier in the case of a Swaption.  For
    all other payouts that extend PayoutBase the payoutQuantity is a mandatory attribute.
- postconditions:
    exactly_one_of:
    - slot_conditions:
        schedule:
          name: schedule
          required: true
    - slot_conditions:
        calculationPeriodDates:
          name: calculationPeriodDates
          required: true
  description: The calculation periods are either specified parametrically via CalculationPeriodDates
    or non-parametrically via SchedulePeriod.

Induced

name: CommodityPayout
annotations:
  metadata_key:
    tag: metadata_key
    value: true
description: Payout based on the averaged price of a referenced underlier. (e.g. Commodities).
  Can represent both average (average of many) & bullet (average of 1) pricing
comments:
- 'Rosetta condition: Quantity  priceQuantity exists'
- 'Rosetta condition: CalculationPeriod  required choice schedule, calculationPeriodDates'
- 'Rosetta condition: CommodityUnderlier  if underlier -> Observable exists then
  ObservableIsCommodity(underlier -> Observable) else if underlier -> Product -> TransferableProduct
  -> economicTerms -> payout only-element -> OptionPayout exists then ObservableIsCommodity(
  underlier -> Product -> TransferableProduct -> economicTerms -> payout only-element
  -> OptionPayout -> underlier -> Observable ) // Commodity Option else if underlier
  -> Product -> TransferableProduct -> economicTerms -> payout only-element -> SettlementPayout
  exists then ObservableIsCommodity( underlier -> Product -> TransferableProduct ->
  economicTerms -> payout only-element -> SettlementPayout -> underlier -> Observable
  ) // Commodity Future else False'
- 'Rosetta condition: DeliveryCapacity  if delivery -> deliveryCapacity exists then
  schedule -> schedulePeriod -> deliveryPeriod -> deliveryCapacity is absent and delivery
  -> periods -> profile -> block -> deliveryCapacity is absent and schedule -> schedulePeriod
  -> deliveryPeriod -> profile -> block -> deliveryCapacity is absent else if schedule
  -> schedulePeriod -> deliveryPeriod -> deliveryCapacity exists then delivery ->
  deliveryCapacity is absent and delivery -> periods -> profile -> block -> deliveryCapacity
  is absent and schedule -> schedulePeriod -> deliveryPeriod -> profile -> block ->
  deliveryCapacity is absent else if delivery -> periods -> profile -> block -> deliveryCapacity
  exists then schedule -> schedulePeriod -> deliveryPeriod -> deliveryCapacity is
  absent and schedule -> schedulePeriod -> deliveryPeriod -> profile -> block -> deliveryCapacity
  is absent else if schedule -> schedulePeriod -> deliveryPeriod -> profile -> block
  -> deliveryCapacity exists then delivery -> deliveryCapacity is absent and schedule
  -> schedulePeriod -> deliveryPeriod -> deliveryCapacity is absent and delivery ->
  periods -> profile -> block -> deliveryCapacity is absent'
- 'Rosetta condition: PriceTimeIntervalQuantity  if schedule -> schedulePeriod ->
  deliveryPeriod -> priceTimeIntervalQuantity exists then delivery -> periods -> profile
  -> block -> priceTimeIntervalQuantity is absent and schedule -> schedulePeriod ->
  deliveryPeriod -> profile -> block -> priceTimeIntervalQuantity is absent else if
  delivery -> periods -> profile -> block -> priceTimeIntervalQuantity exists then
  schedule -> schedulePeriod -> deliveryPeriod -> priceTimeIntervalQuantity is absent
  and schedule -> schedulePeriod -> deliveryPeriod -> profile -> block -> priceTimeIntervalQuantity
  is absent else if schedule -> schedulePeriod -> deliveryPeriod -> profile -> block
  -> priceTimeIntervalQuantity exists then schedule -> schedulePeriod -> deliveryPeriod
  -> priceTimeIntervalQuantity is absent and delivery -> periods -> profile -> block
  -> priceTimeIntervalQuantity is absent'
in_subset:
- cdm_product_asset
from_schema: https://w3id.org/lmodel/common-domain-model
close_mappings:
- fpml_5_10:CommodityPayout
is_a: PayoutBase
slot_usage:
  schedule:
    name: schedule
    description: Allows the full representation of a payout by defining a set of schedule
      periods. It supports standard schedule customization by expressing all the dates,
      quantities, and pricing data in a non-parametric way.
    range: CalculationSchedule
    multivalued: false
  underlier:
    name: underlier
    description: Identifies the underlying product that is referenced for pricing
      of the applicable leg in a swap. Referenced in the '2018 ISDA CDM Equity Confirmation
      for Security Equity Swap' as Security.
attributes:
  averagingFeature:
    name: averagingFeature
    description: Indicates if the averaging calculation, when applicable, is weighted
      or unweighted.
    from_schema: https://w3id.org/lmodel/common-domain-model
    close_mappings:
    - fpml_5_10:CommodityPayout.averagingFeature
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - CommodityPayout
    - OptionFeature
    range: AveragingCalculation
  commodityPriceReturnTerms:
    name: commodityPriceReturnTerms
    description: Defines parameters in which the commodity price is assessed.
    from_schema: https://w3id.org/lmodel/common-domain-model
    close_mappings:
    - fpml_5_10:CommodityPayout.commodityPriceReturnTerms
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - CommodityPayout
    range: CommodityPriceReturnTerms
  pricingDates:
    name: pricingDates
    description: Specifies specific dates or parametric rules for the dates on which
      the price will be determined.
    from_schema: https://w3id.org/lmodel/common-domain-model
    close_mappings:
    - fpml_5_10:CommodityPayout.pricingDates
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - CommodityPayout
    range: PricingDates
    required: true
  schedule:
    name: schedule
    description: Allows the full representation of a payout by defining a set of schedule
      periods. It supports standard schedule customization by expressing all the dates,
      quantities, and pricing data in a non-parametric way.
    from_schema: https://w3id.org/lmodel/common-domain-model
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - TriggerEvent
    - CommodityPayout
    - AveragingPeriod
    - OptionPayout
    - SettlementPayout
    - FixedPricePayout
    range: CalculationSchedule
    multivalued: false
    inlined: true
    inlined_as_list: true
  calculationPeriodDates:
    name: calculationPeriodDates
    description: Defines the calculation period dates schedule.
    from_schema: https://w3id.org/lmodel/common-domain-model
    close_mappings:
    - fpml_5_10:CommodityPayout.calculationPeriodDates
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - CommodityPayout
    - InterestRatePayout
    - ObservationTerms
    range: CalculationPeriodDates
  paymentDates:
    name: paymentDates
    description: Defines the payment date schedule, as defined by the parameters that
      are needed to specify it, either in a parametric way or by reference to another
      schedule of dates (e.g. the valuation dates).
    from_schema: https://w3id.org/lmodel/common-domain-model
    close_mappings:
    - fpml_5_10:CommodityPayout.paymentDates
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - CommodityPayout
    - InterestRatePayout
    - PerformancePayout
    - FixedPricePayout
    range: PaymentDates
    required: true
  underlier:
    name: underlier
    description: Identifies the underlying product that is referenced for pricing
      of the applicable leg in a swap. Referenced in the '2018 ISDA CDM Equity Confirmation
      for Security Equity Swap' as Security.
    from_schema: https://w3id.org/lmodel/common-domain-model
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - CorporateAction
    - CommodityPayout
    - OptionPayout
    - PerformancePayout
    - PortfolioReturnTerms
    - SettlementPayout
    - AssetPayout
    range: Underlier
    required: true
    any_of:
    - range: Observable
    - range: Product
  fxFeature:
    name: fxFeature
    description: Defines quanto or composite FX features that are included in the
      swap leg.
    from_schema: https://w3id.org/lmodel/common-domain-model
    close_mappings:
    - fpml_5_10:CommodityPayout.fxFeature
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - CommodityPayout
    - PerformancePayout
    - OptionFeature
    range: FxFeature
  delivery:
    name: delivery
    description: Contains the information relative to the delivery of the asset.
    from_schema: https://w3id.org/lmodel/common-domain-model
    close_mappings:
    - fpml_5_10:CommodityPayout.delivery
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - CommodityPayout
    - OptionPayout
    - SettlementPayout
    range: AssetDeliveryInformation
  payerReceiver:
    name: payerReceiver
    description: Canonical representation of the payer and receiver parties applicable
      to each payout leg.
    from_schema: https://w3id.org/lmodel/common-domain-model
    close_mappings:
    - fpml_5_10:CalculateTransferInstruction.payerReceiver
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - CalculateTransferInstruction
    - TransferBase
    - CollateralBalance
    - FeaturePayment
    - AssetFlow
    - PayoutBase
    - PrincipalPayment
    - PortfolioReturnTerms
    - PassThroughItem
    range: PayerReceiver
    required: true
  priceQuantity:
    name: priceQuantity
    description: Each payout leg must implement the quantity concept as a 'resolvable'
      type, which allows for different payout legs to be linked to each other (e.g.
      in the case of cross-curreny products).
    from_schema: https://w3id.org/lmodel/common-domain-model
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - ExecutionInstruction
    - IndexTransitionInstruction
    - PositionBase
    - PayoutBase
    - TradeLot
    range: ResolvablePriceQuantity
    required: false
    multivalued: false
    inlined: true
    inlined_as_list: true
  principalPayment:
    name: principalPayment
    description: The specification of the principal exchange. Optional as only applicable
      in the case of cross-currency or zero-coupon swaps with a final payment.
    from_schema: https://w3id.org/lmodel/common-domain-model
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - PayoutBase
    range: PrincipalPayments
  settlementTerms:
    name: settlementTerms
    description: Each payout leg must specifies its settlement terms, including the
      delivery type (i.e. cash vs physical, and their respective terms), the transfer
      type (DvP etc.) and settlement date, if any.
    from_schema: https://w3id.org/lmodel/common-domain-model
    rank: 1000
    owner: CommodityPayout
    domain_of:
    - EquitySwapMasterConfirmation2018
    - PayoutBase
    range: SettlementTerms
    required: false
rules:
- postconditions:
    slot_conditions:
      priceQuantity:
        name: priceQuantity
        required: true
  description: When there is an OptionPayout the quantity can be expressed as part
    of the payoutQuantity, or as part of the underlier in the case of a Swaption.  For
    all other payouts that extend PayoutBase the payoutQuantity is a mandatory attribute.
- postconditions:
    exactly_one_of:
    - slot_conditions:
        schedule:
          name: schedule
          required: true
    - slot_conditions:
        calculationPeriodDates:
          name: calculationPeriodDates
          required: true
  description: The calculation periods are either specified parametrically via CalculationPeriodDates
    or non-parametrically via SchedulePeriod.