Skip to content

Class: TermsChangeInstruction

Specifies instructions for terms change consisting of the new transaction terms, and the renegotiation fee.

URI: common_domain_model:TermsChangeInstruction

 classDiagram
    class TermsChangeInstruction
    click TermsChangeInstruction href "../TermsChangeInstruction/"
      TermsChangeInstruction : adjustment





        TermsChangeInstruction --> "0..1" NotionalAdjustmentEnum : adjustment
        click NotionalAdjustmentEnum href "../NotionalAdjustmentEnum/"



      TermsChangeInstruction : ancillaryParty





        TermsChangeInstruction --> "*" AncillaryParty : ancillaryParty
        click AncillaryParty href "../AncillaryParty/"



      TermsChangeInstruction : product





        TermsChangeInstruction --> "0..1" NonTransferableProduct : product
        click NonTransferableProduct href "../NonTransferableProduct/"



Slots

Name Cardinality and Range Description Inheritance
product 0..1
NonTransferableProduct
product to be changed direct
ancillaryParty *
AncillaryParty
ancillary party to be changed direct
adjustment 0..1
NotionalAdjustmentEnum
direct

Usages

used by used in type used
PrimitiveInstruction termsChange range TermsChangeInstruction

Rules

Rule Applied Preconditions Postconditions Elseconditions

In Subsets

Comments

  • Rosetta condition: AtLeastOneOf — (product exists or ancillaryParty exists or adjustment exists)
  • Rosetta func: Create_TermsChange — A specification of the inputs, outputs and constraints when calculating the after tradeState based Terms Change Primitive Instruction.
  • Rosetta func: Create_EffectiveOrTerminationDateTermChangeInstruction — Creates the relevant terms change primitive instruction object for rolling a contractual product, which consists in the same terms as the original contractual product but with different effective and termination dates.
  • Rosetta func: Create_RollTermChangeInstruction — Creates the relevant terms change primitive instruction object for rolling a contractual product, which consists in the same terms as the original contractual product but with different effective and termination dates.
  • Rosetta func: Create_OnDemandRateChangeTermsChangeInstruction — Creates a terms change instruction for an on-demand rate change, based on a new rate provided as a single number. This instruction only updates the effective date but keeps other details of the trade unchanged.
  • Rosetta func: Create_CancellationTermChangeInstruction — Create a terms change instruction for a cancellation that consists in bringing the termination date forward.
  • Rosetta func: Create_SubstitutionInstruction — Creates the terms change instruction that updates the payout with the new substitution payout.

Identifier and Mapping Information

Annotations

property value
rosetta_functions [{"name":"Create_TermsChange","description":"A specification of the inputs, outputs and constraints when calculating the after tradeState based Terms Change Primitive Instruction.","inputs":[{"name":"termsChange","type":"TermsChangeInstruction","cardinality":"1..1"},{"name":"before","type":"TradeState","cardinality":"1..1"}],"output":{"name":"tradeState","type":"TradeState","cardinality":"1..1"}},{"name":"Create_EffectiveOrTerminationDateTermChangeInstruction","description":"Creates the relevant terms change primitive instruction object for rolling a contractual product, which consists in the same terms as the original contractual product but with different effective and termination dates.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"effectiveRollDate","type":"AdjustableOrRelativeDate","cardinality":"0..1"},{"name":"terminationDate","type":"AdjustableOrRelativeDate","cardinality":"0..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}},{"name":"Create_RollTermChangeInstruction","description":"Creates the relevant terms change primitive instruction object for rolling a contractual product, which consists in the same terms as the original contractual product but with different effective and termination dates.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"effectiveRollDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"},{"name":"terminationDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}},{"name":"Create_OnDemandRateChangeTermsChangeInstruction","description":"Creates a terms change instruction for an on-demand rate change, based on a new rate provided as a single number. This instruction only updates the effective date but keeps other details of the trade unchanged.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"effectiveDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}},{"name":"Create_CancellationTermChangeInstruction","description":"Create a terms change instruction for a cancellation that consists in bringing the termination date forward.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"cancellationDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}},{"name":"Create_SubstitutionInstruction","description":"Creates the terms change instruction that updates the payout with the new substitution payout.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"effectiveDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"},{"name":"newCollateralPortfolio","type":"CollateralPortfolio","cardinality":"1..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}}]

Schema Source

Mappings

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

LinkML Source

Direct

name: TermsChangeInstruction
annotations:
  rosetta_functions:
    tag: rosetta_functions
    value: '[{"name":"Create_TermsChange","description":"A specification of the inputs,
      outputs and constraints when calculating the after tradeState based Terms Change
      Primitive Instruction.","inputs":[{"name":"termsChange","type":"TermsChangeInstruction","cardinality":"1..1"},{"name":"before","type":"TradeState","cardinality":"1..1"}],"output":{"name":"tradeState","type":"TradeState","cardinality":"1..1"}},{"name":"Create_EffectiveOrTerminationDateTermChangeInstruction","description":"Creates
      the relevant terms change primitive instruction object for rolling a contractual
      product, which consists in the same terms as the original contractual product
      but with different effective and termination dates.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"effectiveRollDate","type":"AdjustableOrRelativeDate","cardinality":"0..1"},{"name":"terminationDate","type":"AdjustableOrRelativeDate","cardinality":"0..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}},{"name":"Create_RollTermChangeInstruction","description":"Creates
      the relevant terms change primitive instruction object for rolling a contractual
      product, which consists in the same terms as the original contractual product
      but with different effective and termination dates.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"effectiveRollDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"},{"name":"terminationDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}},{"name":"Create_OnDemandRateChangeTermsChangeInstruction","description":"Creates
      a terms change instruction for an on-demand rate change, based on a new rate
      provided as a single number. This instruction only updates the effective date
      but keeps other details of the trade unchanged.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"effectiveDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}},{"name":"Create_CancellationTermChangeInstruction","description":"Create
      a terms change instruction for a cancellation that consists in bringing the
      termination date forward.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"cancellationDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}},{"name":"Create_SubstitutionInstruction","description":"Creates
      the terms change instruction that updates the payout with the new substitution
      payout.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"effectiveDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"},{"name":"newCollateralPortfolio","type":"CollateralPortfolio","cardinality":"1..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}}]'
description: Specifies instructions for terms change consisting of the new transaction
  terms, and the renegotiation fee.
comments:
- 'Rosetta condition: AtLeastOneOf  (product exists or ancillaryParty exists or adjustment
  exists)'
- 'Rosetta func: Create_TermsChange  A specification of the inputs, outputs and constraints
  when calculating the after tradeState based Terms Change Primitive Instruction.'
- 'Rosetta func: Create_EffectiveOrTerminationDateTermChangeInstruction  Creates
  the relevant terms change primitive instruction object for rolling a contractual
  product, which consists in the same terms as the original contractual product but
  with different effective and termination dates.'
- 'Rosetta func: Create_RollTermChangeInstruction  Creates the relevant terms change
  primitive instruction object for rolling a contractual product, which consists in
  the same terms as the original contractual product but with different effective
  and termination dates.'
- 'Rosetta func: Create_OnDemandRateChangeTermsChangeInstruction  Creates a terms
  change instruction for an on-demand rate change, based on a new rate provided as
  a single number. This instruction only updates the effective date but keeps other
  details of the trade unchanged.'
- 'Rosetta func: Create_CancellationTermChangeInstruction  Create a terms change
  instruction for a cancellation that consists in bringing the termination date forward.'
- 'Rosetta func: Create_SubstitutionInstruction  Creates the terms change instruction
  that updates the payout with the new substitution payout.'
in_subset:
- cdm_event_common
from_schema: https://w3id.org/lmodel/common-domain-model
slots:
- product
- ancillaryParty
- adjustment
slot_usage:
  product:
    name: product
    description: product to be changed
    required: false
  ancillaryParty:
    name: ancillaryParty
    description: ancillary party to be changed
    range: AncillaryParty
    multivalued: true
rules:
- postconditions:
    any_of:
    - slot_conditions:
        product:
          name: product
          required: true
    - slot_conditions:
        ancillaryParty:
          name: ancillaryParty
          required: true
    - slot_conditions:
        adjustment:
          name: adjustment
          required: true
  description: AtLeastOneOf

Induced

name: TermsChangeInstruction
annotations:
  rosetta_functions:
    tag: rosetta_functions
    value: '[{"name":"Create_TermsChange","description":"A specification of the inputs,
      outputs and constraints when calculating the after tradeState based Terms Change
      Primitive Instruction.","inputs":[{"name":"termsChange","type":"TermsChangeInstruction","cardinality":"1..1"},{"name":"before","type":"TradeState","cardinality":"1..1"}],"output":{"name":"tradeState","type":"TradeState","cardinality":"1..1"}},{"name":"Create_EffectiveOrTerminationDateTermChangeInstruction","description":"Creates
      the relevant terms change primitive instruction object for rolling a contractual
      product, which consists in the same terms as the original contractual product
      but with different effective and termination dates.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"effectiveRollDate","type":"AdjustableOrRelativeDate","cardinality":"0..1"},{"name":"terminationDate","type":"AdjustableOrRelativeDate","cardinality":"0..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}},{"name":"Create_RollTermChangeInstruction","description":"Creates
      the relevant terms change primitive instruction object for rolling a contractual
      product, which consists in the same terms as the original contractual product
      but with different effective and termination dates.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"effectiveRollDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"},{"name":"terminationDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}},{"name":"Create_OnDemandRateChangeTermsChangeInstruction","description":"Creates
      a terms change instruction for an on-demand rate change, based on a new rate
      provided as a single number. This instruction only updates the effective date
      but keeps other details of the trade unchanged.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"effectiveDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}},{"name":"Create_CancellationTermChangeInstruction","description":"Create
      a terms change instruction for a cancellation that consists in bringing the
      termination date forward.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"cancellationDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}},{"name":"Create_SubstitutionInstruction","description":"Creates
      the terms change instruction that updates the payout with the new substitution
      payout.","inputs":[{"name":"product","type":"NonTransferableProduct","cardinality":"1..1"},{"name":"effectiveDate","type":"AdjustableOrRelativeDate","cardinality":"1..1"},{"name":"newCollateralPortfolio","type":"CollateralPortfolio","cardinality":"1..1"}],"output":{"name":"termsChangeInstruction","type":"TermsChangeInstruction","cardinality":"1..1"}}]'
description: Specifies instructions for terms change consisting of the new transaction
  terms, and the renegotiation fee.
comments:
- 'Rosetta condition: AtLeastOneOf  (product exists or ancillaryParty exists or adjustment
  exists)'
- 'Rosetta func: Create_TermsChange  A specification of the inputs, outputs and constraints
  when calculating the after tradeState based Terms Change Primitive Instruction.'
- 'Rosetta func: Create_EffectiveOrTerminationDateTermChangeInstruction  Creates
  the relevant terms change primitive instruction object for rolling a contractual
  product, which consists in the same terms as the original contractual product but
  with different effective and termination dates.'
- 'Rosetta func: Create_RollTermChangeInstruction  Creates the relevant terms change
  primitive instruction object for rolling a contractual product, which consists in
  the same terms as the original contractual product but with different effective
  and termination dates.'
- 'Rosetta func: Create_OnDemandRateChangeTermsChangeInstruction  Creates a terms
  change instruction for an on-demand rate change, based on a new rate provided as
  a single number. This instruction only updates the effective date but keeps other
  details of the trade unchanged.'
- 'Rosetta func: Create_CancellationTermChangeInstruction  Create a terms change
  instruction for a cancellation that consists in bringing the termination date forward.'
- 'Rosetta func: Create_SubstitutionInstruction  Creates the terms change instruction
  that updates the payout with the new substitution payout.'
in_subset:
- cdm_event_common
from_schema: https://w3id.org/lmodel/common-domain-model
slot_usage:
  product:
    name: product
    description: product to be changed
    required: false
  ancillaryParty:
    name: ancillaryParty
    description: ancillary party to be changed
    range: AncillaryParty
    multivalued: true
attributes:
  product:
    name: product
    description: product to be changed
    from_schema: https://w3id.org/lmodel/common-domain-model
    rank: 1000
    owner: TermsChangeInstruction
    domain_of:
    - ExecutionInstruction
    - TermsChangeInstruction
    - PositionBase
    - AggregationParameters
    - ExcludedProducts
    - TradableProduct
    range: NonTransferableProduct
    required: false
  ancillaryParty:
    name: ancillaryParty
    description: ancillary party to be changed
    from_schema: https://w3id.org/lmodel/common-domain-model
    close_mappings:
    - fpml_5_10:AncillaryEntity.ancillaryParty
    rank: 1000
    owner: TermsChangeInstruction
    domain_of:
    - AncillaryEntity
    - ExecutionInstruction
    - TermsChangeInstruction
    - PartyChangeInstruction
    - TradableProduct
    range: AncillaryParty
    multivalued: true
  adjustment:
    name: adjustment
    from_schema: https://w3id.org/lmodel/common-domain-model
    rank: 1000
    owner: TermsChangeInstruction
    domain_of:
    - TermsChangeInstruction
    - TradableProduct
    range: NotionalAdjustmentEnum
rules:
- postconditions:
    any_of:
    - slot_conditions:
        product:
          name: product
          required: true
    - slot_conditions:
        ancillaryParty:
          name: ancillaryParty
          required: true
    - slot_conditions:
        adjustment:
          name: adjustment
          required: true
  description: AtLeastOneOf