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
- PayoutBase
- PerformancePayout
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
- from schema: https://w3id.org/lmodel/common-domain-model
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.