Module Daml.Finance.Interface.Instrument.Swap.Fpml.FpmlTypes¶
Data Types¶
data AdjustableDate
A type for defining a date that shall be subject to adjustment if it would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date.
Field Type Description unadjustedDate Date A date subject to adjustment. dateAdjustments BusinessDayAdjustments The business day convention and financial business centers used for adjusting the date if it would otherwise fall on a day that is not a business date in the specified business centers. adjustedDate : Optional IdentifiedDate ^ The date once the adjustment has been performed. (Note that this date may change if the business center holidays change). instance Eq AdjustableDate
instance Show AdjustableDate
data BusinessCenterTime
A type for defining a time with respect to a business day calendar location. For example, 11:00am London time.
Field Type Description hourMinuteTime HourMinuteTime A time specified in hh:mm:ss format where the second component must be ‘00’, e.g., 11am would be represented as 11:00:00. businessCenter Text instance Eq BusinessCenterTime
instance Show BusinessCenterTime
A type defining the business day convention and financial business centers used for adjusting any relevant date if it would otherwise fall on a day that is not a business day in the specified business centers.
Field Type Description businessDayConvention BusinessDayConventionEnum The convention for adjusting a date if it would otherwise fall on a day that is not a business day. businessCenters [Text] instance Eq BusinessDayAdjustments
instance Show BusinessDayAdjustments
data Calculation
The parameters used in the calculation of fixed or floating rate period amounts.
Field Type Description notionalScheduleValue NotionalScheduleValue rateTypeValue RateTypeValue dayCountFraction DayCountConventionEnum compoundingMethodEnum Optional CompoundingMethodEnum instance Eq Calculation
instance Show Calculation
The calculation period amount parameters.
Field Type Description calculation Calculation instance Eq CalculationPeriodAmount
instance Show CalculationPeriodAmount
The calculation periods dates schedule.
Field Type Description id Text effectiveDate AdjustableDate terminationDate AdjustableDate calculationPeriodDatesAdjustments CalculationPeriodDatesAdjustments firstPeriodStartDate Optional AdjustableDate firstRegularPeriodStartDate Optional Date lastRegularPeriodEndDate Optional Date calculationPeriodFrequency CalculationPeriodFrequency instance Eq CalculationPeriodDates
instance Show CalculationPeriodDates
data CalculationPeriodDatesAdjustments
The business day convention to apply to each calculation period end date if it would otherwise fall on a day that is not a business day in the specified financial business centers.
CalculationPeriodDatesAdjustments
Field Type Description businessDayConvention BusinessDayConventionEnum businessCenters [Text] instance Eq CalculationPeriodDatesAdjustments
instance Show CalculationPeriodDatesAdjustments
data CalculationPeriodFrequency
A type defining the frequency at which calculation period end dates occur within the regular part of the calculation period schedule and thier roll date convention. In case the calculation frequency is of value T (term), the period is defined by the swap\swapStream\calculationPerioDates\effectiveDate and the swap\swapStream\calculationPerioDates\terminationDate.
Field Type Description periodMultiplier Int A time period multiplier, e.g., 1, 2 or 3 etc. If the period value is T (Term) then periodMultiplier must contain the value 1. period PeriodExtendedEnum A time period, e.g., a day, week, month, year or term of the stream. rollConvention RollConventionEnum Used in conjunction with a frequency and the regular period start date of a calculation period, determines each calculation period end date within the regular part of a calculation period schedule. instance Eq CalculationPeriodFrequency
instance Show CalculationPeriodFrequency
The compounding calculation method
Flat compounding. Compounding excludes the spread. Note that the first compounding period has it’s interest calculated including any spread then subsequent periods compound this at a rate excluding the spread.No compounding is to be applied.Straight compounding. Compounding includes the spread.Spread Exclusive compounding.instance Eq CompoundingMethodEnum
instance Show CompoundingMethodEnum
data DateOffset
A type defining an offset used in calculating a date when this date is defined in reference to another date through a date offset. The type includes the convention for adjusting the date and an optional sequence element to indicate the order in a sequence of multiple date offsets.
Field Type Description periodMultiplier Int A time period multiplier, e.g. 1, 2 or 3 etc. A negative value can be used when specifying an offset relative to another date, e.g. -2 days. period PeriodEnum A time period, e.g. a day, week, month or year of the stream. If the periodMultiplier value is 0 (zero) then period must contain the value D (day). dayType Optional DayTypeEnum In the case of an offset specified as a number of days, this element defines whether consideration is given as to whether a day is a good business day or not. If a day type of business days is specified then non-business days are ignored when calculating the offset. The financial business centers to use for determination of business days are implied by the context in which this element is used. This element must only be included when the offset is specified as a number of days. If the offset is zero days then the dayType element should not be included. instance Eq DateOffset
instance Show DateOffset
data DateRelativeToEnum
The specification of whether payments/resets occur relative to the first or last day of a calculation period.
Payments/Resets will occur relative to the first day of each calculation period.Payments/Resets will occur relative to the last day of each calculation period.instance Eq DateRelativeToEnum
instance Show DateRelativeToEnum
data DayTypeEnum
A day type classification used in counting the number of days between two dates.
When calculating the number of days between two dates the count includes only business days.When calculating the number of days between two dates the count includes all calendar days.When calculating the number of days between two dates the count includes only commodity business days.When calculating the number of days between two dates the count includes only currency business days.When calculating the number of days between two dates the count includes only stock exchange business days.When calculating the number of days between two dates the count includes only scheduled trading days.instance Eq DayTypeEnum
instance Show DayTypeEnum
data FixedRateSchedule
Specify the fixed rate
Field Type Description initialValue Decimal The initial rate or amount, as the case may be. An initial rate of 5% would be represented as 0.05. step [Step] The schedule of step date and value pairs. On each step date the associated step value becomes effective. A list of steps may be ordered in the document by ascending step date. An FpML document containing an unordered list of steps is still regarded as a conformant document. type_ : Optional SpreadScheduleType instance Eq FixedRateSchedule
instance Show FixedRateSchedule
data FixingDates
Specifies the fixing date relative to the reset date in terms of a business days offset and an associated set of financial business centers.
Field Type Description periodMultiplier Int period PeriodEnum dayType Optional DayTypeEnum businessDayConvention BusinessDayConventionEnum businessCenters [Text] instance Eq FixingDates
instance Show FixingDates
A type defining the floating rate and definitions relating to the calculation of floating rate amounts.
Field Type Description floatingRateIndex Text indexTenor Optional Period The ISDA Designated Maturity, i.e., the tenor of the floating rate. floatingRateMultiplierSchedule : Optional Schedule ^ A rate multiplier or multiplier schedule to apply to the floating rate. A multiplier schedule is expressed as explicit multipliers and dates. In the case of a schedule, the step dates may be subject to adjustment in accordance with any adjustments specified in the calculationPeriodDatesAdjustments. The multiplier can be a positive or negative decimal. This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. spreadSchedule [SpreadSchedule] The ISDA Spread or a Spread schedule expressed as explicit spreads and dates. In the case of a schedule, the step dates may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments. The spread is a per annum rate, expressed as a decimal. For purposes of determining a calculation period amount, if positive the spread will be added to the floating rate and if negative the spread will be subtracted from the floating rate. A positive 10 basis point (0.1%) spread would be represented as 0.001. rateTreatment : Optional RateTreatmentEnum ^ The specification of any rate conversion which needs to be applied to the observed rate before being used in any calculations. The two common conversions are for securities quoted on a bank discount basis which will need to be converted to either a Money Market Yield or Bond Equivalent Yield. See the Annex to the 2000 ISDA Definitions, Section 7.3. Certain General Definitions Relating to Floating Rate Options, paragraphs (g) and (h) for definitions of these terms. capRateSchedule : [StrikeSchedule] ^ The cap rate or cap rate schedule, if any, which applies to the floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. A cap rate schedule is expressed as explicit cap rates and dates and the step dates may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05. floorRateSchedule : [StrikeSchedule] ^ The floor rate or floor rate schedule, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. A floor rate schedule is expressed as explicit floor rates and dates and the step dates may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05. initialRate : Optional Decimal ^ The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. An initial rate of 5% would be represented as 0.05. finalRateRounding Optional Rounding The rounding convention to apply to the final rate used in determination of a calculation period amount. averagingMethod : Optional AveragingMethodEnum ^ If averaging is applicable, this component specifies whether a weighted or unweighted average method of calculation is to be used. The component must only be included when averaging applies. negativeInterestRateTreatment : Optional NegativeInterestRateTreatmentEnum ^ The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate). instance Eq FloatingRateCalculation
instance Show FloatingRateCalculation
The notional amount or notional amount schedule (FX linked).
Field Type Description constantNotionalScheduleReference Text initialValue Optional Decimal varyingNotionalCurrency Text varyingNotionalFixingDates FixingDates fxSpotRateSource FxSpotRateSource instance Eq FxLinkedNotionalSchedule
instance Show FxLinkedNotionalSchedule
data FxSpotRateSource
A type defining the rate source and fixing time for an fx rate.
Field Type Description primaryRateSource InformationSource The primary source for where the rate observation will occur. Will typically be either a page or a reference bank published rate. secondaryRateSource : Optional InformationSource ^ An alternative, or secondary, source for where the rate observation will occur. Will typically be either a page or a reference bank published rate. fixingTime Optional BusinessCenterTime The time at which the spot currency exchange rate will be observed. It is specified as a time in a business day calendar location, e.g., 11:00am London time. instance Eq FxSpotRateSource
instance Show FxSpotRateSource
- type HourMinuteTime
= Text
A type defining a time specified in hh:mm:ss format where the second component must be ‘00’, e.g., 11am would be represented as 11:00:00.
data InformationSource
A type defining the source for a piece of information (e.g. a rate refix or an fx fixing).
Field Type Description rateSource Text An information source for obtaining a market rate. For example, Bloomberg, Reuters, Telerate etc. rateSourcePage : Optional RateSourcePage rateSourcePage Text A specific page for the rate source for obtaining a market rate. rateSourcePageHeading : Optional String ^ The heading for the rate source on a given rate source page. instance Eq InformationSource
instance Show InformationSource
data NotionalSchedule
The notional amount or notional amount schedule.
Field Type Description id Text notionalStepSchedule NotionalStepSchedule instance Eq NotionalSchedule
instance Show NotionalSchedule
Specifies how the notional schedule is defined: either regular or fx linked.
NotionalSchedule_Regular NotionalSchedule
Regular notional schedule.NotionalSchedule_FxLinked FxLinkedNotionalSchedule
FX linked notional schedule.instance Eq NotionalScheduleValue
instance Show NotionalScheduleValue
data NotionalStepSchedule
The notional amount or notional amount schedule expressed as explicit outstanding notional amounts and dates.
instance Eq NotionalStepSchedule
instance Show NotionalStepSchedule
data PaymentDates
The payment dates schedule.
Field Type Description calculationPeriodDatesReference Text paymentFrequency PaymentFrequency firstPaymentDate Optional Date lastRegularPaymentDate Optional Date payRelativeTo DateRelativeToEnum paymentDaysOffset Optional DateOffset paymentDatesAdjustments BusinessDayAdjustments instance Eq PaymentDates
instance Show PaymentDates
data PaymentFrequency
The frequency at which regular payment dates occur. If the payment frequency is equal to the frequency defined in the calculation period dates component then one calculation period contributes to each payment amount. If the payment frequency is less frequent than the frequency defined in the calculation period dates component then more than one calculation period will contribute to the payment amount. A payment frequency more frequent than the calculation period frequency or one that is not a multiple of the calculation period frequency is invalid. If the payment frequency is of value T (term), the period is defined by the swap\swapStream\calculationPerioDates\effectiveDate and the swap\swapStream\calculationPerioDates\terminationDate.
Field Type Description periodMultiplier Int period PeriodExtendedEnum instance Eq PaymentFrequency
instance Show PaymentFrequency
data PeriodExtendedEnum
The period of a schedule, for example the calculation schedule.
instance Eq PeriodExtendedEnum
instance Show PeriodExtendedEnum
data PrincipalExchanges
A type defining which principal exchanges occur for the stream.
Field Type Description initialExchange Bool A true/false flag to indicate whether there is an initial exchange of principal on the effective date. finalExchange Bool A true/false flag to indicate whether there is a final exchange of principal on the termination date. intermediateExchange Bool A true/false flag to indicate whether there are intermediate or interim exchanges of principal during the term of the swap. instance Eq PrincipalExchanges
instance Show PrincipalExchanges
data RateTypeValue
Specifies whether the swapStream has a fixed or a floating rate.
RateType_Fixed FixedRateSchedule
Fixed rate.RateType_Floating FloatingRateCalculation
Floating rate.instance Eq RateTypeValue
instance Show RateTypeValue
data ResetDates
The reset dates schedule. This only applies for a floating rate stream.
Field Type Description calculationPeriodDatesReference Text resetRelativeTo DateRelativeToEnum fixingDates FixingDates resetFrequency ResetFrequency resetDatesAdjustments ResetDatesAdjustments instance Eq ResetDates
instance Show ResetDates
The business day convention to apply to each reset date if it would otherwise fall on a day that is not a business day in the specified financial business centers.
Field Type Description businessDayConvention BusinessDayConventionEnum businessCenters [Text] instance Eq ResetDatesAdjustments
instance Show ResetDatesAdjustments
data ResetFrequency
The frequency at which reset dates occur.
Field Type Description periodMultiplier Int period PeriodExtendedEnum instance Eq ResetFrequency
instance Show ResetFrequency
data Rounding
A type defining a rounding direction and precision to be used in the rounding of a rate.
Field Type Description roundingDirection RoundingDirectionEnum Specifies the rounding direction. precision Int Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7 in the FpML document since the percentage is expressed as a decimal, e.g. 9.876543% (or 0.09876543) being rounded to the nearest 5 decimal places is 9.87654% (or 0.0987654).
The method of rounding a fractional number.
A fractional number will be rounded up to the specified number of decimal places (the precision). For example, 5.21 and 5.25 rounded up to 1 decimal place are 5.3 and 5.3 respectively.A fractional number will be rounded down to the specified number of decimal places (the precision). For example, 5.29 and 5.25 rounded down to 1 decimal place are 5.2 and 5.2 respectively.A fractional number will be rounded either up or down to the specified number of decimal places (the precision) depending on its value. For example, 5.24 would be rounded down to 5.2 and 5.25 would be rounded up to 5.3 if a precision of 1 decimal place were specified.instance Eq RoundingDirectionEnum
instance Show RoundingDirectionEnum
data SpreadSchedule
Adds an optional spread type element to the Schedule to identify a long or short spread value.
Field Type Description initialValue Decimal The initial rate or amount, as the case may be. An initial rate of 5% would be represented as 0.05. step : [Step] ^ The schedule of step date and value pairs. On each step date the associated step value becomes effective. A list of steps may be ordered in the document by ascending step date. An FpML document containing an unordered list of steps is still regarded as a conformant document. type_ : Optional SpreadScheduleType instance Eq SpreadSchedule
instance Show SpreadSchedule
data Step
The schedule of step date and non-negative value pairs. On each step date the associated step value becomes effective. A list of steps may be ordered in the document by ascending step date. An FpML document containing an unordered list of steps is still regarded as a conformant document.
data StubCalculationPeriodAmount
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.
instance Eq StubCalculationPeriodAmount
instance Show StubCalculationPeriodAmount
data StubFloatingRate
The rates to be applied to the initial or final stub may be the linear interpolation of two different rates.
instance Eq StubFloatingRate
instance Show StubFloatingRate
data StubValue
Specifies how the stub amount is calculated. A single floating rate tenor different to that used for the regular part of the calculation periods schedule may be specified, or two floating tenors may be specified. If two floating rate tenors are specified then Linear Interpolation (in accordance with the 2000 ISDA Definitions, Section 8.3. Interpolation) is assumed to apply. Alternatively, an actual known stub rate or stub amount may be specified.
StubValue_FloatingRate [StubFloatingRate]
The rates to be applied to the initial or final stub may be the linear interpolation of two different rates. While the majority of the time, the rate indices will be the same as that specified in the stream and only the tenor itself will be different, it is possible to specift two different rates. For example, a 2 month stub period may use the linear interpolation of a 1 month and 3 month rate. The different rates would be specified in this component. Note that a maximum of two rates can be specified. If a stub period uses the same floating rate index, including tenor, as the regular calculation periods then this should not be specified again within this component, i.e., the stub calculation period amount component may not need to be specified even if there is an initial or final stub period. If a stub period uses a different floating rate index compared to the regular calculation periods then this should be specified within this component. If specified here, they are likely to have id attributes, allowing them to be referenced from within the cashflows component.An actual rate to apply for the initial or final stub period may have been agreed between the principal parties (in a similar way to how an initial rate may have been agreed for the first regular period). If an actual stub rate has been agreed then it would be included in this component. It will be a per annum rate, expressed as a decimal. A stub rate of 5% would be represented as 0.05. | StubValue_StubAmount Money ^ An actual amount to apply for the initial or final stub period may have been agreed between the two parties. If an actual stub amount has been agreed then it would be included in this component.
data SwapStream
The swap streams, describing each leg of the swap.
Field Type Description payerPartyReference Text receiverPartyReference Text calculationPeriodDates CalculationPeriodDates paymentDates PaymentDates resetDates Optional ResetDates calculationPeriodAmount CalculationPeriodAmount stubCalculationPeriodAmount Optional StubCalculationPeriodAmount principalExchanges Optional PrincipalExchanges instance Eq SwapStream
instance Show SwapStream