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.

AdjustableDate

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.

BusinessCenterTime

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

data BusinessDayAdjustments

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.

BusinessDayAdjustments

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.

Calculation

Field Type Description
notionalScheduleValue NotionalScheduleValue  
rateTypeValue RateTypeValue  
dayCountFraction DayCountConventionEnum  
compoundingMethodEnum Optional CompoundingMethodEnum  

instance Eq Calculation

instance Show Calculation

data CalculationPeriodAmount

The calculation period amount parameters.

CalculationPeriodAmount

Field Type Description
calculation Calculation  

instance Eq CalculationPeriodAmount

instance Show CalculationPeriodAmount

data CalculationPeriodDates

The calculation periods dates schedule.

CalculationPeriodDates

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.

CalculationPeriodFrequency

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

data CompoundingMethodEnum

The compounding calculation method

Flat

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.

NoCompounding

No compounding is to be applied.

Straight

Straight compounding. Compounding includes the spread.

SpreadExclusive

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.

DateOffset

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.

CalculationPeriodStartDate

Payments/Resets will occur relative to the first day of each calculation period.

CalculationPeriodEndDate

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.

Business

When calculating the number of days between two dates the count includes only business days.

Calendar

When calculating the number of days between two dates the count includes all calendar days.

CommodityBusiness

When calculating the number of days between two dates the count includes only commodity business days.

CurrencyBusiness

When calculating the number of days between two dates the count includes only currency business days.

ExchangeBusiness

When calculating the number of days between two dates the count includes only stock exchange business days.

ScheduledTradingDay

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

FixedRateSchedule

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.

FixingDates

Field Type Description
periodMultiplier Int  
period PeriodEnum  
dayType Optional DayTypeEnum  
businessDayConvention BusinessDayConventionEnum  
businessCenters [Text]  

instance Eq FixingDates

instance Show FixingDates

data FloatingRateCalculation

A type defining the floating rate and definitions relating to the calculation of floating rate amounts.

FloatingRateCalculation

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

data FxLinkedNotionalSchedule

The notional amount or notional amount schedule (FX linked).

FxLinkedNotionalSchedule

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.

FxSpotRateSource

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).

InformationSource

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.

NotionalSchedule

Field Type Description
id Text  
notionalStepSchedule NotionalStepSchedule  

instance Eq NotionalSchedule

instance Show NotionalSchedule

data NotionalScheduleValue

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.

NotionalStepSchedule

Field Type Description
initialValue Decimal  
step [Step]  
currency Text  

instance Eq NotionalStepSchedule

instance Show NotionalStepSchedule

data PaymentDates

The payment dates schedule.

PaymentDates

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.

PaymentFrequency

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.

Regular PeriodEnum

T

instance Eq PeriodExtendedEnum

instance Show PeriodExtendedEnum

data PrincipalExchanges

A type defining which principal exchanges occur for the stream.

PrincipalExchanges

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.

ResetDates

Field Type Description
calculationPeriodDatesReference Text  
resetRelativeTo DateRelativeToEnum  
fixingDates FixingDates  
resetFrequency ResetFrequency  
resetDatesAdjustments ResetDatesAdjustments  

instance Eq ResetDates

instance Show ResetDates

data ResetDatesAdjustments

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.

ResetDatesAdjustments

Field Type Description
businessDayConvention BusinessDayConventionEnum  
businessCenters [Text]  

instance Eq ResetDatesAdjustments

instance Show ResetDatesAdjustments

data ResetFrequency

The frequency at which reset dates occur.

ResetFrequency

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.

Rounding

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).

instance Eq Rounding

instance Show Rounding

data RoundingDirectionEnum

The method of rounding a fractional number.

Up

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.

Down

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.

Nearest

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.

SpreadSchedule

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.

Step

Field Type Description
stepDate Date  
stepValue Decimal  

instance Eq Step

instance Show Step

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.

StubCalculationPeriodAmount

Field Type Description
calculationPeriodDatesReference Text  
initialStub Optional StubValue  
finalStub Optional StubValue  

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.

StubFloatingRate

Field Type Description
floatingRateIndex Text  
indexTenor Optional Period  

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.

StubValue_StubRate Decimal

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.

instance Eq StubValue

instance Show StubValue

data SwapStream

The swap streams, describing each leg of the swap.

SwapStream

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