Skip to content

Class: PerformancePayout

Contains the necessary specifications for all performance payouts, encompassing equity return, dividend, variance, volatility and correlation products.

URI: common_domain_model:PerformancePayout

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

      PerformancePayout : finalValuationPrice





        PerformancePayout --> "*" PriceSchedule : finalValuationPrice
        click PriceSchedule href "../PriceSchedule/"



      PerformancePayout : fxFeature





        PerformancePayout --> "*" FxFeature : fxFeature
        click FxFeature href "../FxFeature/"



      PerformancePayout : initialValuationPrice





        PerformancePayout --> "*" PriceSchedule : initialValuationPrice
        click PriceSchedule href "../PriceSchedule/"



      PerformancePayout : interimValuationPrice





        PerformancePayout --> "*" PriceSchedule : interimValuationPrice
        click PriceSchedule href "../PriceSchedule/"



      PerformancePayout : observationTerms





        PerformancePayout --> "0..1" ObservationTerms : observationTerms
        click ObservationTerms href "../ObservationTerms/"



      PerformancePayout : payerReceiver





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



      PerformancePayout : paymentDates





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



      PerformancePayout : portfolioReturnTerms





        PerformancePayout --> "*" PortfolioReturnTerms : portfolioReturnTerms
        click PortfolioReturnTerms href "../PortfolioReturnTerms/"



      PerformancePayout : priceQuantity





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



      PerformancePayout : principalPayment





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



      PerformancePayout : returnTerms





        PerformancePayout --> "0..1" ReturnTerms : returnTerms
        click ReturnTerms href "../ReturnTerms/"



      PerformancePayout : settlementTerms





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



      PerformancePayout : underlier





        PerformancePayout --> "0..1" Underlier : underlier
        click Underlier href "../Underlier/"



      PerformancePayout : valuationDates





        PerformancePayout --> "1" ValuationDates : valuationDates
        click ValuationDates href "../ValuationDates/"



Inheritance

Slots

Name Cardinality and Range Description Inheritance
observationTerms 0..1
ObservationTerms
Defines how and when a performance type option or performance type swap is to... direct
valuationDates 1
ValuationDates
Defines how and when a performance type option or performance type swap is to... direct
paymentDates 1
PaymentDates
Defines the payment date schedule, as defined by the parameters that are need... direct
underlier 0..1
Underlier or 
Observable or 
Product
Identifies the underlying product that is referenced for pricing of the appli... direct
fxFeature *
FxFeature
Defines quanto or composite FX features that are included in the swap leg direct
returnTerms 0..1
ReturnTerms
Specifies the type of return of a performance payout direct
portfolioReturnTerms *
PortfolioReturnTerms
Specifies an individual type of return of a Performance Payout, when such ind... direct
initialValuationPrice *
PriceSchedule
Specifies the net initial valuation price(s) of the underlier at Performance ... direct
interimValuationPrice *
PriceSchedule
Specifies the net initial valuation price(s) of the underlier at Performance ... direct
finalValuationPrice *
PriceSchedule
Specifies the net final valuation price(s) of the underlier at Performance Pa... 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] PerformancePayout
CalculateTransferInstruction payout any_of[range] PerformancePayout
ScheduledTransfer payoutReference any_of[range] PerformancePayout
EconomicTerms payout any_of[range] PerformancePayout

Rules

Rule Applied Preconditions Postconditions Elseconditions

Rule Applied Preconditions Postconditions Elseconditions

In Subsets

Comments

  • Rosetta condition: Underlier — underlier -> Observable exists
  • Rosetta condition: PortfolioOrStraightReturn — required choice returnTerms, portfolioReturnTerms
  • Rosetta condition: PortfolioReturnIsMultipleReturns — if portfolioReturnTerms exists then portfolioReturnTerms count > 1
  • Rosetta condition: UnderlierOfPortfolioIsBasket — if portfolioReturnTerms -> priceReturnTerms exists then underlier -> Observable -> Basket exists
  • Rosetta condition: Quantity — priceQuantity exists
  • Rosetta condition: NoSharePriceDividendAdjustmentIndex — if underlier -> Observable -> Index exists then returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment is absent and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment is absent
  • Rosetta condition: NoSharePriceDividendAdjustmentForeignExchange — if underlier -> Observable -> Index -> ForeignExchangeRateIndex exists then returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment is absent and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment is absent
  • Rosetta condition: CorrelationUnderlierOnlyBasket — if returnTerms -> correlationReturnTerms exists then underlier -> Observable -> Basket exists
  • Rosetta condition: EquitySpecificAttributes — if Qualify_UnderlierObservable_Equity(underlier -> Observable) = False then returnTerms -> varianceReturnTerms -> dividendApplicability is absent and returnTerms -> varianceReturnTerms -> equityUnderlierProvisions is absent and returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment is absent and returnTerms -> volatilityReturnTerms -> dividendApplicability is absent and returnTerms -> volatilityReturnTerms -> equityUnderlierProvisions is absent and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment is absent and returnTerms -> correlationReturnTerms -> dividendApplicability is absent and returnTerms -> correlationReturnTerms -> equityUnderlierProvisions is absent and returnTerms -> correlationReturnTerms -> sharePriceDividendAdjustment is absent

Identifier and Mapping Information

Schema Source

Mappings

Mapping Type Mapped Value
self common_domain_model:PerformancePayout
native common_domain_model:PerformancePayout

LinkML Source

Direct

name: PerformancePayout
description: Contains the necessary specifications for all performance payouts, encompassing
  equity return, dividend, variance, volatility and correlation products.
comments:
- 'Rosetta condition: Underlier  underlier -> Observable exists'
- 'Rosetta condition: PortfolioOrStraightReturn  required choice returnTerms, portfolioReturnTerms'
- 'Rosetta condition: PortfolioReturnIsMultipleReturns  if portfolioReturnTerms exists
  then portfolioReturnTerms count > 1'
- 'Rosetta condition: UnderlierOfPortfolioIsBasket  if portfolioReturnTerms -> priceReturnTerms
  exists then underlier -> Observable -> Basket exists'
- 'Rosetta condition: Quantity  priceQuantity exists'
- 'Rosetta condition: NoSharePriceDividendAdjustmentIndex  if underlier -> Observable
  -> Index exists then returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment
  is absent and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment
  is absent'
- 'Rosetta condition: NoSharePriceDividendAdjustmentForeignExchange  if underlier
  -> Observable -> Index -> ForeignExchangeRateIndex exists then returnTerms -> varianceReturnTerms
  -> sharePriceDividendAdjustment is absent and returnTerms -> volatilityReturnTerms
  -> sharePriceDividendAdjustment is absent'
- 'Rosetta condition: CorrelationUnderlierOnlyBasket  if returnTerms -> correlationReturnTerms
  exists then underlier -> Observable -> Basket exists'
- 'Rosetta condition: EquitySpecificAttributes  if Qualify_UnderlierObservable_Equity(underlier
  -> Observable) = False then returnTerms -> varianceReturnTerms -> dividendApplicability
  is absent and returnTerms -> varianceReturnTerms -> equityUnderlierProvisions is
  absent and returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment is
  absent and returnTerms -> volatilityReturnTerms -> dividendApplicability is absent
  and returnTerms -> volatilityReturnTerms -> equityUnderlierProvisions is absent
  and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment is absent
  and returnTerms -> correlationReturnTerms -> dividendApplicability is absent and
  returnTerms -> correlationReturnTerms -> equityUnderlierProvisions is absent and
  returnTerms -> correlationReturnTerms -> sharePriceDividendAdjustment is absent'
in_subset:
- cdm_product_template
from_schema: https://w3id.org/lmodel/common-domain-model
is_a: PayoutBase
slots:
- observationTerms
- valuationDates
- paymentDates
- underlier
- fxFeature
- returnTerms
- portfolioReturnTerms
- initialValuationPrice
- interimValuationPrice
- finalValuationPrice
slot_usage:
  observationTerms:
    name: observationTerms
    description: Defines how and when a performance type option or performance type
      swap is to be observed.
  valuationDates:
    name: valuationDates
    description: Defines how and when a performance type option or performance type
      swap is to be valued, including both interim and final valuation.
  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.
    required: false
  fxFeature:
    name: fxFeature
    multivalued: true
  initialValuationPrice:
    name: initialValuationPrice
    description: Specifies the net initial valuation price(s) of the underlier at
      Performance Payout level. This price can be expressed either as an actual amount/currency,
      as a determination method, or by reference to another value specified in the
      swap document.
  interimValuationPrice:
    name: interimValuationPrice
    description: Specifies the net initial valuation price(s) of the underlier at
      Performance Payout level. This price can be expressed either as an actual amount/currency,
      as a determination method, or by reference to another value specified in the
      swap document.
  finalValuationPrice:
    name: finalValuationPrice
    description: Specifies the net final valuation price(s) of the underlier at Performance
      Payout level. This price can be expressed either as an actual amount/currency,
      as a determination method, or by reference to another value specified in the
      swap document.
rules:
- postconditions:
    exactly_one_of:
    - slot_conditions:
        returnTerms:
          name: returnTerms
          required: true
    - slot_conditions:
        portfolioReturnTerms:
          name: portfolioReturnTerms
          required: true
  description: PortfolioOrStraightReturn
- 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.

Induced

name: PerformancePayout
description: Contains the necessary specifications for all performance payouts, encompassing
  equity return, dividend, variance, volatility and correlation products.
comments:
- 'Rosetta condition: Underlier  underlier -> Observable exists'
- 'Rosetta condition: PortfolioOrStraightReturn  required choice returnTerms, portfolioReturnTerms'
- 'Rosetta condition: PortfolioReturnIsMultipleReturns  if portfolioReturnTerms exists
  then portfolioReturnTerms count > 1'
- 'Rosetta condition: UnderlierOfPortfolioIsBasket  if portfolioReturnTerms -> priceReturnTerms
  exists then underlier -> Observable -> Basket exists'
- 'Rosetta condition: Quantity  priceQuantity exists'
- 'Rosetta condition: NoSharePriceDividendAdjustmentIndex  if underlier -> Observable
  -> Index exists then returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment
  is absent and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment
  is absent'
- 'Rosetta condition: NoSharePriceDividendAdjustmentForeignExchange  if underlier
  -> Observable -> Index -> ForeignExchangeRateIndex exists then returnTerms -> varianceReturnTerms
  -> sharePriceDividendAdjustment is absent and returnTerms -> volatilityReturnTerms
  -> sharePriceDividendAdjustment is absent'
- 'Rosetta condition: CorrelationUnderlierOnlyBasket  if returnTerms -> correlationReturnTerms
  exists then underlier -> Observable -> Basket exists'
- 'Rosetta condition: EquitySpecificAttributes  if Qualify_UnderlierObservable_Equity(underlier
  -> Observable) = False then returnTerms -> varianceReturnTerms -> dividendApplicability
  is absent and returnTerms -> varianceReturnTerms -> equityUnderlierProvisions is
  absent and returnTerms -> varianceReturnTerms -> sharePriceDividendAdjustment is
  absent and returnTerms -> volatilityReturnTerms -> dividendApplicability is absent
  and returnTerms -> volatilityReturnTerms -> equityUnderlierProvisions is absent
  and returnTerms -> volatilityReturnTerms -> sharePriceDividendAdjustment is absent
  and returnTerms -> correlationReturnTerms -> dividendApplicability is absent and
  returnTerms -> correlationReturnTerms -> equityUnderlierProvisions is absent and
  returnTerms -> correlationReturnTerms -> sharePriceDividendAdjustment is absent'
in_subset:
- cdm_product_template
from_schema: https://w3id.org/lmodel/common-domain-model
is_a: PayoutBase
slot_usage:
  observationTerms:
    name: observationTerms
    description: Defines how and when a performance type option or performance type
      swap is to be observed.
  valuationDates:
    name: valuationDates
    description: Defines how and when a performance type option or performance type
      swap is to be valued, including both interim and final valuation.
  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.
    required: false
  fxFeature:
    name: fxFeature
    multivalued: true
  initialValuationPrice:
    name: initialValuationPrice
    description: Specifies the net initial valuation price(s) of the underlier at
      Performance Payout level. This price can be expressed either as an actual amount/currency,
      as a determination method, or by reference to another value specified in the
      swap document.
  interimValuationPrice:
    name: interimValuationPrice
    description: Specifies the net initial valuation price(s) of the underlier at
      Performance Payout level. This price can be expressed either as an actual amount/currency,
      as a determination method, or by reference to another value specified in the
      swap document.
  finalValuationPrice:
    name: finalValuationPrice
    description: Specifies the net final valuation price(s) of the underlier at Performance
      Payout level. This price can be expressed either as an actual amount/currency,
      as a determination method, or by reference to another value specified in the
      swap document.
attributes:
  observationTerms:
    name: observationTerms
    description: Defines how and when a performance type option or performance type
      swap is to be observed.
    from_schema: https://w3id.org/lmodel/common-domain-model
    rank: 1000
    owner: PerformancePayout
    domain_of:
    - OptionPayout
    - PerformancePayout
    - AveragingStrikeFeature
    range: ObservationTerms
  valuationDates:
    name: valuationDates
    description: Defines how and when a performance type option or performance type
      swap is to be valued, including both interim and final valuation.
    from_schema: https://w3id.org/lmodel/common-domain-model
    rank: 1000
    owner: PerformancePayout
    domain_of:
    - EquitySwapMasterConfirmation2018
    - PerformanceValuationDates
    - PerformancePayout
    range: ValuationDates
    required: true
  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: PerformancePayout
    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: PerformancePayout
    domain_of:
    - CorporateAction
    - CommodityPayout
    - OptionPayout
    - PerformancePayout
    - PortfolioReturnTerms
    - SettlementPayout
    - AssetPayout
    range: Underlier
    required: false
    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: PerformancePayout
    domain_of:
    - CommodityPayout
    - PerformancePayout
    - OptionFeature
    range: FxFeature
    multivalued: true
  returnTerms:
    name: returnTerms
    description: Specifies the type of return of a performance payout.
    from_schema: https://w3id.org/lmodel/common-domain-model
    rank: 1000
    owner: PerformancePayout
    domain_of:
    - PerformancePayout
    range: ReturnTerms
  portfolioReturnTerms:
    name: portfolioReturnTerms
    description: Specifies an individual type of return of a Performance Payout, when
      such individual return is part of an aggregation of multiple similar returns,
      at Performance Payout level
    from_schema: https://w3id.org/lmodel/common-domain-model
    rank: 1000
    owner: PerformancePayout
    domain_of:
    - PerformancePayout
    range: PortfolioReturnTerms
    multivalued: true
    inlined: true
    inlined_as_list: true
  initialValuationPrice:
    name: initialValuationPrice
    description: Specifies the net initial valuation price(s) of the underlier at
      Performance Payout level. This price can be expressed either as an actual amount/currency,
      as a determination method, or by reference to another value specified in the
      swap document.
    from_schema: https://w3id.org/lmodel/common-domain-model
    close_mappings:
    - fpml_5_10:BasketConstituent.initialValuationPrice
    rank: 1000
    owner: PerformancePayout
    domain_of:
    - BasketConstituent
    - PerformancePayout
    - PortfolioReturnTerms
    range: PriceSchedule
    multivalued: true
    inlined: true
    inlined_as_list: true
  interimValuationPrice:
    name: interimValuationPrice
    description: Specifies the net initial valuation price(s) of the underlier at
      Performance Payout level. This price can be expressed either as an actual amount/currency,
      as a determination method, or by reference to another value specified in the
      swap document.
    from_schema: https://w3id.org/lmodel/common-domain-model
    close_mappings:
    - fpml_5_10:BasketConstituent.interimValuationPrice
    rank: 1000
    owner: PerformancePayout
    domain_of:
    - BasketConstituent
    - PerformancePayout
    - PortfolioReturnTerms
    range: PriceSchedule
    multivalued: true
    inlined: true
    inlined_as_list: true
  finalValuationPrice:
    name: finalValuationPrice
    description: Specifies the net final valuation price(s) of the underlier at Performance
      Payout level. This price can be expressed either as an actual amount/currency,
      as a determination method, or by reference to another value specified in the
      swap document.
    from_schema: https://w3id.org/lmodel/common-domain-model
    close_mappings:
    - fpml_5_10:BasketConstituent.finalValuationPrice
    rank: 1000
    owner: PerformancePayout
    domain_of:
    - BasketConstituent
    - PerformancePayout
    - PortfolioReturnTerms
    range: PriceSchedule
    multivalued: true
    inlined: true
    inlined_as_list: true
  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: PerformancePayout
    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: PerformancePayout
    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: PerformancePayout
    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: PerformancePayout
    domain_of:
    - EquitySwapMasterConfirmation2018
    - PayoutBase
    range: SettlementTerms
    required: false
rules:
- postconditions:
    exactly_one_of:
    - slot_conditions:
        returnTerms:
          name: returnTerms
          required: true
    - slot_conditions:
        portfolioReturnTerms:
          name: portfolioReturnTerms
          required: true
  description: PortfolioOrStraightReturn
- 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.