Skip to content

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

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

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