Class: SettlementPayout
Represents a forward settling payout. The underlier attribute captures the underlying payout, which is settled according to the settlementTerms attribute (which is part of PayoutBase). Both FX Spot and FX Forward should use this component.
URI: common_domain_model:SettlementPayout
classDiagram
class SettlementPayout
click SettlementPayout href "../SettlementPayout/"
PayoutBase <|-- SettlementPayout
click PayoutBase href "../PayoutBase/"
SettlementPayout : delivery
SettlementPayout --> "0..1" AssetDeliveryInformation : delivery
click AssetDeliveryInformation href "../AssetDeliveryInformation/"
SettlementPayout : deliveryTerm
SettlementPayout : payerReceiver
SettlementPayout --> "1" PayerReceiver : payerReceiver
click PayerReceiver href "../PayerReceiver/"
SettlementPayout : priceQuantity
SettlementPayout --> "0..1" ResolvablePriceQuantity : priceQuantity
click ResolvablePriceQuantity href "../ResolvablePriceQuantity/"
SettlementPayout : principalPayment
SettlementPayout --> "0..1" PrincipalPayments : principalPayment
click PrincipalPayments href "../PrincipalPayments/"
SettlementPayout : schedule
SettlementPayout --> "0..1" CalculationSchedule : schedule
click CalculationSchedule href "../CalculationSchedule/"
SettlementPayout : settlementTerms
SettlementPayout --> "0..1" SettlementTerms : settlementTerms
click SettlementTerms href "../SettlementTerms/"
SettlementPayout : underlier
SettlementPayout --> "1" Underlier : underlier
click Underlier href "../Underlier/"
Inheritance
- PayoutBase
- SettlementPayout
Slots
| Name | Cardinality and Range | Description | Inheritance |
|---|---|---|---|
| underlier | 1 Underlier or Observable or Product |
The underlying financial product that will be physically or cash settled, whi... | direct |
| deliveryTerm | 0..1 string |
Also called contract month or delivery month | direct |
| delivery | 0..1 AssetDeliveryInformation |
Contains the information relative to the delivery of the asset | direct |
| schedule | 0..1 CalculationSchedule |
Allows the full representation of a payout by defining a set of schedule peri... | 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] | SettlementPayout |
| CalculateTransferInstruction | payout | any_of[range] | SettlementPayout |
| ScheduledTransfer | payoutReference | any_of[range] | SettlementPayout |
| EconomicTerms | payout | any_of[range] | SettlementPayout |
In Subsets
Comments
- Rosetta condition: Underlier — underlier -> Product -> NonTransferableProduct is absent
- Rosetta condition: Basket — if underlier -> Observable -> Basket exists then (underlier -> Observable -> Basket -> basketConstituent extract Asset exists ) all = True
- Rosetta condition: Index — if underlier -> Observable -> Index exists then settlementTerms -> cashSettlementTerms exists
- Rosetta condition: SettlementTerms — if underlier -> Observable -> Asset -> Cash exists then settlementTerms exists
- 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
- Rosetta func: Create_AssetFlowFromSettlementPayout — Generates two opposite cashflows that correspond to a settlement payout. One leg is the asset leg, that settles the asset according to the quantity, direction and date defined in the settlement payout. The other is the price leg, that settles the price as a currency amount going in the opposite direction. The function's applicability is limited on purpose to a single asset with a single price and quantity specified.
- Rosetta func: FXFarLeg — Extracts the far leg of an FX swap (deliverable or not) based on two criteria: the forward payout with the latest value date or the forward payout with the latest settlement date.
Identifier and Mapping Information
Annotations
| property | value |
|---|---|
| rosetta_functions | [{"name":"Create_AssetFlowFromSettlementPayout","description":"Generates two opposite cashflows that correspond to a settlement payout. One leg is the asset leg, that settles the asset according to the quantity, direction and date defined in the settlement payout. The other is the price leg, that settles the price as a currency amount going in the opposite direction. The function's applicability is limited on purpose to a single asset with a single price and quantity specified.","inputs":[{"name":"payout","type":"SettlementPayout","cardinality":"1..1"}],"output":{"name":"cashflows","type":"AssetFlow","cardinality":"2..2"}},{"name":"FXFarLeg","description":"Extracts the far leg of an FX swap (deliverable or not) based on two criteria: the forward payout with the latest value date or the forward payout with the latest settlement date.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"}],"output":{"name":"nearLegPayout","type":"SettlementPayout","cardinality":"0..1"}}] |
Schema Source
- from schema: https://w3id.org/lmodel/common-domain-model
Mappings
| Mapping Type | Mapped Value |
|---|---|
| self | common_domain_model:SettlementPayout |
| native | common_domain_model:SettlementPayout |
LinkML Source
Direct
name: SettlementPayout
annotations:
rosetta_functions:
tag: rosetta_functions
value: '[{"name":"Create_AssetFlowFromSettlementPayout","description":"Generates
two opposite cashflows that correspond to a settlement payout. One leg is the
asset leg, that settles the asset according to the quantity, direction and date
defined in the settlement payout. The other is the price leg, that settles the
price as a currency amount going in the opposite direction. The function''s
applicability is limited on purpose to a single asset with a single price and
quantity specified.","inputs":[{"name":"payout","type":"SettlementPayout","cardinality":"1..1"}],"output":{"name":"cashflows","type":"AssetFlow","cardinality":"2..2"}},{"name":"FXFarLeg","description":"Extracts
the far leg of an FX swap (deliverable or not) based on two criteria: the forward
payout with the latest value date or the forward payout with the latest settlement
date.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"}],"output":{"name":"nearLegPayout","type":"SettlementPayout","cardinality":"0..1"}}]'
description: Represents a forward settling payout. The underlier attribute captures
the underlying payout, which is settled according to the settlementTerms attribute
(which is part of PayoutBase). Both FX Spot and FX Forward should use this component.
comments:
- 'Rosetta condition: Underlier — underlier -> Product -> NonTransferableProduct is
absent'
- 'Rosetta condition: Basket — if underlier -> Observable -> Basket exists then (underlier
-> Observable -> Basket -> basketConstituent extract Asset exists ) all = True'
- 'Rosetta condition: Index — if underlier -> Observable -> Index exists then settlementTerms
-> cashSettlementTerms exists'
- 'Rosetta condition: SettlementTerms — if underlier -> Observable -> Asset -> Cash
exists then settlementTerms exists'
- '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'
- 'Rosetta func: Create_AssetFlowFromSettlementPayout — Generates two opposite cashflows
that correspond to a settlement payout. One leg is the asset leg, that settles the
asset according to the quantity, direction and date defined in the settlement payout.
The other is the price leg, that settles the price as a currency amount going in
the opposite direction. The function''s applicability is limited on purpose to a
single asset with a single price and quantity specified.'
- 'Rosetta func: FXFarLeg — Extracts the far leg of an FX swap (deliverable or not)
based on two criteria: the forward payout with the latest value date or the forward
payout with the latest settlement date.'
in_subset:
- cdm_product_template
from_schema: https://w3id.org/lmodel/common-domain-model
is_a: PayoutBase
slots:
- underlier
- deliveryTerm
- delivery
- schedule
slot_usage:
underlier:
name: underlier
description: The underlying financial product that will be physically or cash
settled, which can be of any type, eg an asset such as cash or a security, or
the cash settlement of an index rate.
deliveryTerm:
name: deliveryTerm
description: Also called contract month or delivery month. However, it's not always
a month. It is usually expressed using a code, e.g. Z23 would be the Dec 2023
contract, (Z = December). For crude oil, the corresponding contract might be
called CLZ23.
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
Induced
name: SettlementPayout
annotations:
rosetta_functions:
tag: rosetta_functions
value: '[{"name":"Create_AssetFlowFromSettlementPayout","description":"Generates
two opposite cashflows that correspond to a settlement payout. One leg is the
asset leg, that settles the asset according to the quantity, direction and date
defined in the settlement payout. The other is the price leg, that settles the
price as a currency amount going in the opposite direction. The function''s
applicability is limited on purpose to a single asset with a single price and
quantity specified.","inputs":[{"name":"payout","type":"SettlementPayout","cardinality":"1..1"}],"output":{"name":"cashflows","type":"AssetFlow","cardinality":"2..2"}},{"name":"FXFarLeg","description":"Extracts
the far leg of an FX swap (deliverable or not) based on two criteria: the forward
payout with the latest value date or the forward payout with the latest settlement
date.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"}],"output":{"name":"nearLegPayout","type":"SettlementPayout","cardinality":"0..1"}}]'
description: Represents a forward settling payout. The underlier attribute captures
the underlying payout, which is settled according to the settlementTerms attribute
(which is part of PayoutBase). Both FX Spot and FX Forward should use this component.
comments:
- 'Rosetta condition: Underlier — underlier -> Product -> NonTransferableProduct is
absent'
- 'Rosetta condition: Basket — if underlier -> Observable -> Basket exists then (underlier
-> Observable -> Basket -> basketConstituent extract Asset exists ) all = True'
- 'Rosetta condition: Index — if underlier -> Observable -> Index exists then settlementTerms
-> cashSettlementTerms exists'
- 'Rosetta condition: SettlementTerms — if underlier -> Observable -> Asset -> Cash
exists then settlementTerms exists'
- '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'
- 'Rosetta func: Create_AssetFlowFromSettlementPayout — Generates two opposite cashflows
that correspond to a settlement payout. One leg is the asset leg, that settles the
asset according to the quantity, direction and date defined in the settlement payout.
The other is the price leg, that settles the price as a currency amount going in
the opposite direction. The function''s applicability is limited on purpose to a
single asset with a single price and quantity specified.'
- 'Rosetta func: FXFarLeg — Extracts the far leg of an FX swap (deliverable or not)
based on two criteria: the forward payout with the latest value date or the forward
payout with the latest settlement date.'
in_subset:
- cdm_product_template
from_schema: https://w3id.org/lmodel/common-domain-model
is_a: PayoutBase
slot_usage:
underlier:
name: underlier
description: The underlying financial product that will be physically or cash
settled, which can be of any type, eg an asset such as cash or a security, or
the cash settlement of an index rate.
deliveryTerm:
name: deliveryTerm
description: Also called contract month or delivery month. However, it's not always
a month. It is usually expressed using a code, e.g. Z23 would be the Dec 2023
contract, (Z = December). For crude oil, the corresponding contract might be
called CLZ23.
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
attributes:
underlier:
name: underlier
description: The underlying financial product that will be physically or cash
settled, which can be of any type, eg an asset such as cash or a security, or
the cash settlement of an index rate.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: SettlementPayout
domain_of:
- CorporateAction
- CommodityPayout
- OptionPayout
- PerformancePayout
- PortfolioReturnTerms
- SettlementPayout
- AssetPayout
range: Underlier
required: true
any_of:
- range: Observable
- range: Product
deliveryTerm:
name: deliveryTerm
description: Also called contract month or delivery month. However, it's not always
a month. It is usually expressed using a code, e.g. Z23 would be the Dec 2023
contract, (Z = December). For crude oil, the corresponding contract might be
called CLZ23.
from_schema: https://w3id.org/lmodel/common-domain-model
rank: 1000
owner: SettlementPayout
domain_of:
- ListedDerivative
- SettlementPayout
range: string
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: SettlementPayout
domain_of:
- CommodityPayout
- OptionPayout
- SettlementPayout
range: AssetDeliveryInformation
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: SettlementPayout
domain_of:
- TriggerEvent
- CommodityPayout
- AveragingPeriod
- OptionPayout
- SettlementPayout
- FixedPricePayout
range: CalculationSchedule
multivalued: false
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: SettlementPayout
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: SettlementPayout
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: SettlementPayout
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: SettlementPayout
domain_of:
- EquitySwapMasterConfirmation2018
- PayoutBase
range: SettlementTerms
required: false