InterestRatePayout
Type CDM 7.2.0A class to specify all of the terms necessary to define and calculate a cash flow based on a fixed, a floating or an inflation index rate. The interest rate payout can be applied to interest rate swaps and FRA (which both have two associated interest rate payouts), credit default swaps (to represent the fee leg when subject to periodic payments) and equity swaps (to represent the funding leg). The associated globalKey denotes the ability to associate a hash value to the InterestRatePayout instantiations for the purpose of model cross-referencing, in support of functionality such as the event effect and the lineage.
Attributes
15 declared on InterestRatePayout, 4 inherited. Cardinality in amber is required.
| Name | Type | Card. | Description | From |
|---|---|---|---|---|
| payerReceiver | PayerReceiver | 1..1 | Canonical representation of the payer and receiver parties applicable to each payout leg. | PayoutBase |
| priceQuantity | ResolvablePriceQuantity | 0..1 | 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). | PayoutBase |
| principalPayment | PrincipalPayments | 0..1 | The specification of the principal exchange. Optional as only applicable in the case of cross-currency or zero-coupon swaps with a final payment. | PayoutBase |
| settlementTerms | SettlementTerms | 0..1 | 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. | PayoutBase |
| rateSpecification | RateSpecification | 0..1 | The specification of the rate value(s) applicable to the contract using either a floating rate calculation, a single fixed rate, a fixed rate schedule, or an inflation rate calculation. | — |
| dayCountFraction | DayCountFractionEnum | 0..1 | The day count fraction. The cardinality has been relaxed when compared with the FpML interest rate swap for the purpose of accommodating standardized credit default swaps which DCF is not explicitly stated as part of the economic terms. The data rule InterestRatePayout_dayCountFraction requires that the DCF be stated for interest rate products. | — |
| calculationPeriodDates | CalculationPeriodDates | 0..1 | The parameters used to generate the calculation period dates schedule, including the specification of any initial or final stub calculation periods. | — |
| paymentDates | PaymentDates | 0..1 | 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 reset dates). | — |
| paymentDate | AdjustableDate | 0..1 | The payment date, where only one date is specified, as for the FRA product. | — |
| paymentDelay | boolean | 0..1 | Applicable to CDS on MBS to specify whether payment delays are applicable to the fixed Amount. RMBS typically have a payment delay of 5 days between the coupon date of the reference obligation and the payment date of the synthetic swap. CMBS do not, on the other hand, with both payment dates being on the 25th of each month. | — |
| resetDates | ResetDates | 0..1 | The reset dates schedule, i.e. the dates on which the new observed index value is applied for each period and the interest rate hence begins to accrue. | — |
| discountingMethod | DiscountingMethod | 0..1 | The parameters specifying any discounting conventions that may apply. This element must only be included if discounting applies. | — |
| compoundingMethod | CompoundingMethodEnum | 0..1 | If one or more calculation period contributes to a single payment amount this element specifies whether compounding is applicable and, if so, what compounding method is to be used. This element must only be included when more than one calculation period contributes to a single payment amount. | — |
| cashflowRepresentation | CashflowRepresentation | 0..1 | The cashflow representation of the swap stream. | — |
| stubPeriod | StubPeriod | 0..1 | The stub calculation period amount parameters. This element must only be included if there is an initial or final stub calculation period. Even then, it must only be included if either the stub references a different floating rate tenor to the regular calculation periods, or if the stub is calculated as a linear interpolation of two different floating rate tenors, or if a specific stub rate or stub amount has been negotiated. | — |
| bondReference | BondReference | 0..1 | Reference to a bond underlier to represent an asset swap or Condition Precedent Bond. | — |
| fixedAmount | calculation | 0..1 | Fixed Amount Calculation | — |
| floatingAmount | calculation | 0..1 | Floating Amount Calculation | — |
| spreadCalculationMethod | SpreadCalculationMethodEnum | 0..1 | Method by which spread is calculated. For example on an asset swap: 'ParPar' or 'Proceeds' may be the method indicated. | — |
Conditions
Validation rules the model enforces on this type, in Rune. An instance that breaks one of these is invalid CDM, whatever produced it.
priceQuantity exists optional choice paymentDates, paymentDate if rateSpecification as FixedRateSpecification is absent
then priceQuantity -> futureValueNotional is absent if priceQuantity -> futureValueNotional exists
then priceQuantity -> futureValueNotional -> valueDate = calculationPeriodDates -> terminationDate -> adjustableDate -> adjustedDate if rateSpecification is absent
then priceQuantity -> priceSchedule exists if paymentDates -> firstPaymentDate exists
and calculationPeriodDates -> effectiveDate exists
then paymentDates -> firstPaymentDate > calculationPeriodDates -> effectiveDate -> adjustableDate -> unadjustedDate if stubPeriod -> initialStub exists
then calculationPeriodDates -> firstRegularPeriodStartDate exists if stubPeriod -> finalStub exists
then calculationPeriodDates -> lastRegularPeriodEndDate exists if stubPeriod exists
then stubPeriod -> initialStub exists or stubPeriod -> finalStub exists if settlementTerms -> settlementCurrency exists
and (settlementTerms -> settlementCurrency <> priceQuantity -> quantitySchedule -> unit -> currency
or settlementTerms -> settlementCurrency <> priceQuantity -> quantityMultiplier -> fxLinkedNotionalSchedule -> varyingNotionalCurrency)
then (settlementTerms -> cashSettlementTerms -> valuationMethod exists and settlementTerms -> cashSettlementTerms -> valuationDate exists)
or priceQuantity -> quantityMultiplier -> fxLinkedNotionalSchedule -> fxSpotRateSource exists if paymentDates -> paymentFrequency -> period = calculationPeriodDates -> calculationPeriodFrequency -> period
and paymentDates -> paymentFrequency -> periodMultiplier = calculationPeriodDates -> calculationPeriodFrequency -> periodMultiplier
then (compoundingMethod is absent or compoundingMethod = CompoundingMethodEnum -> None) if (paymentDates -> paymentFrequency -> period exists
and calculationPeriodDates -> calculationPeriodFrequency -> period exists
and paymentDates -> paymentFrequency -> period <> calculationPeriodDates -> calculationPeriodFrequency -> period)
or (paymentDates -> paymentFrequency -> periodMultiplier exists
and calculationPeriodDates -> calculationPeriodFrequency -> periodMultiplier exists
and paymentDates -> paymentFrequency -> periodMultiplier <> calculationPeriodDates -> calculationPeriodFrequency -> periodMultiplier)
then compoundingMethod exists if compoundingMethod exists and compoundingMethod <> CompoundingMethodEnum -> None
then resetDates exists if compoundingMethod exists and compoundingMethod <> CompoundingMethodEnum -> None
then rateSpecification as FixedRateSpecification is absent if compoundingMethod is absent or compoundingMethod = CompoundingMethodEnum -> None
then calculationPeriodDates -> firstCompoundingPeriodEndDate is absent Functions
Model functions that produce or consume this type. These are the CDM's own behaviour — the logic a correct implementation has to match.
| Function | Role | Description |
|---|---|---|
| NewFloatingPayout | returns | Function specification to create the interest rate (floating) payout part of an Equity Swap according to the 2018 ISDA CDM Equity Confirmation template. |
| ExtractFixedLeg | returns | Extract interest rate payout containing fix rate specification. |
| ResolveInterestRateObservationIdentifiers | takes | Defines which attributes on the InterestRatePayout should be used to locate and resolve the underlier's price, for example for the reset process. |
| ResolveInterestRateReset | takes | Defines how to resolve the reset value for an InterestRatePayout. |
| InterestPayoutObligationsFulfilled | takes | Determines whether the obligations defined by the InterestRatePayout have been fulfilled by checking that the total value of cash required has been successfully transferred. |
| Create_CollectFloatingRateOptionInstruction | takes | This function generates the Instruction Composition step instruction necessary to collect the Floating Rate Option data by extracting the floating rate index name from the floating leg. |
| FixedAmountCalculation | takes | Calculates the fixed amount for a calculation period by looking up the notional and the fixed rate and multiplying by the year fraction. |
| GetFixedRate | takes | Look up the fixed rate for a calculation period. |
| FloatingAmountCalculation | takes | Calculate a floating amount for a calculation period by determining the raw floating rate, applying any rate treatments, looking up the calculation period notional, then performing the multiplication of the notional, rate, and year fraction. Floating amount calculations are described in the 2021 ISDA Definitions in Section 6 and 7. |
| ApplyFloatingRateSetting | takes | Calculate a floating amount for a calculation period by determining the raw floating rate, applying any rate treatments, looking up the calculation period notional, then performing the multiplication of the notional, rate, and year fraction. Floating amount calculations are described in the 2021 ISDA Definitions in Section 6 and 7. |
| CalculateFloatingCashFlow | takes | — |
| GetNotionalAmount | takes | Look up the notional amount in effect for a calculation period. |
| CalculateYearFraction | takes | Calculate the year fraction for a single calculation period, by invoking the base year fraction logic |
| DetermineFloatingRateReset | takes | Get the value of a floating rate by either observing it directly or performing a rate calculation. This function works differently depending on the rate category and style, as described in the 2021 ISDA Definitions, Section 6.6. |
Showing 12 of each. All 1286 functions →
In the product library
Canonical products whose JSON instantiates InterestRatePayout. Useful when
you want to see the type populated rather than described.
| Product | Asset class | Family |
|---|---|---|
| CDS 2003 Long Euro Corp Fixed Regular Payment Schedule | Credit | Single-name |
| CDS 2003 Long US Corp Fixed Regular Payment Schedule | Credit | Single-name |
| CDS 2003 Short Asia Corp Fixed Regular Payment Schedule | Credit | Single-name |
| CDS 2003 Short Euro Corp Fixed Regular Payment Schedule | Credit | Single-name |
| CDS 2003 Short US Corp Fixed Regular Payment Schedule | Credit | Single-name |
| CDS Basket | Credit | Basket |
| CDS Basket Tranche | Credit | Tranche |
| CDS Custom Basket | Credit | Basket |
| CDS European Loan Credit Referenceobligation | Credit | Single-name |
| CDS iBoxx OIS | Credit | Index |
| CDS iBoxx Total Return Swap | Credit | Index |
| CDS Independent Amount Short US Corp Fixed Standard Payment Schedule. | Credit | Single-name |
| CDS Index Option | Credit | Swaptions |
| CDS iTraxx Index Option | Credit | Swaptions |
| CDS Loan Reference Obligation | Credit | Single-name |
and 61 more across the library.
Open InterestRatePayout in the Model Browser
Walk the tree and the reference graph interactively, and switch releases to see how the type has changed. Free, no signup.