FpML IRD WG

Proposals

1 November 2004

Draft 1.0

Revision history

Version / Change Description / Owner
0.1 / Initial Draft / Steven Lord
0.2 / Revised RelativeSwap following feedback from the working group / Steven Lord
0.3 / -0added discountFactor element to PrincipalExchange
-1changed stubPeriod to stubPeriodType
-2changed stubPeriodEnum to stubPeriodTypeEnum
-3updated various element descriptions / Steven Lord
0.4 / Incorporated early termination proposal and condition precendent bond proposal / Steven Lord
1.0 / Incorporated final comments. / Steven Lord

Outstanding Questions

1. fpml-ird-4-1.xsd references the type Bond which currently is in fpml-asset-4-1.xsd does this mean the type should be moved into the shared schema ?

Contents

1.Pricing / Calculation details in IRS cash flow structure...... 3

1.1Background...... 3

1.2Proposed Solution...... 3

2.Relative Swap...... 7

2.1Background...... 7

2.2Proposed Solution...... 7

3.Parameterized form of Early Termination Dates...... 10

3.1Background...... 10

3.2Proposed Solution...... 10

4.Condition Precedent Bond Reference...... 13

4.1Background...... 13

4.2Proposed Solution...... 13

5.Schema Changes...... 15

5.1Relative Swap Proposal...... 15

5.2For cashflows proposal...... 19

5.3Changes for Early Termination Provision...... 30

5.4Changes for condition precendent bond...... 33

1.Pricing / Calculation details in IRS cash flow structure

1.1Background

The FpML Pricing and Risk working group is interested in adding the capability to represent pricing calculations in interest rate swap cash flows. The idea would be to add optional elements to a number of the cash flow structures to allow various intermediate values (e.g. forecast rates and flows, and discount factors) to be recorded with the swap. This would be usable for communicating the details of a swap valuation operation.

1.2Proposed Solution

The proposal is to add the following optional elements:

1.2.1To the PaymentCalculationPeriod type (fpml-ird-4-1.xsd):

discountFactor: A decimal value representing the discount factor used to calculate the present value of the cash flow.

forecastPaymentAmount: A monetary amount representing the forecast of the future value of the payment.

presentValueAmount: A monetary amount representing the present value of the forecast payment.

1.2.2To the CalculationPeriod type (fpml-ird-4-1.xsd):

dayCountYearFraction: The year fraction of the calculation period. The result of applying the ISDA rules for the day count fraction defined in the ISDA Annex

forecastAmount: The amount representing the forecast of the accrued value of the calculation period. An intermediate value used to generate the forecastPaymentAmount in the PaymentCalculationPeriod.

forecastRate: A value representing the forecast rate used to calculate the forecast future value of the accrual period. This is a calculated rate determined based on averaging the rates in the rateObservation elements, and incorporates all of the rate treatment and averaging rules.A value of 1% should be represented as 0.01.

1.2.3To the rateObservation element (fpml-shared-4-1.xsd):

forecastRate: The value representing the forecast rate used to calculate the forecast future value of the accrual period. A value of 1% should be represented as 0.01.

treatedForecastRate: The value representing the forecast rate after applying rate treatment rules. A value of 1% should be represented as 0.01.

1.2.4To the Payment structure (fpml-shared-4-1.xsd):

discountFactor: The value representing the discount factor used to calculate the present value of the payment amount.

presentValueAmount: The amount representing the present value of the payment amount.

1.2.5To the principalExchange structure (fpml-ird-4-1.xsd):

discountFactor: The value representing the discount factor used to calculate the present value of the principal exchange amount.

presentValuePrincipalExchangeAmount: The amount representing the present value of the principal exchange.

2.Relative Swap

2.1Background

The pricing and valuation working group requires product definitions in order to support:

1Pricing requests

2Curve definitions

The current FpML standard provides product definitions as required for confirmations. These not only include information that is not essential for the above but also explicitly states the dates of the product.

To support the above the Pricing and Valuation Working Group requires a ‘Relative Swap’ – ie a swap where the dates are specified as periods relative to some other date. Eg – effective date is spot and the termination date is 5y after the effective date.

2.2Proposed Solution

The working group considered including a separate product and extending the existing product. The group decided that many of the features of a relative swap could be very useful within the normal swap definition. Also, providing an separate product would add ambiguity in the standard allowing two ways to represent some products. As such is was decided to extend the existing InterestRateStream to include relative swap features.

To fully define any swap using relative dates then all places where a date is specified in the standard would need to be replaced by a relative date type. The group considered this but agreed that the initial proposal should limit the work to extending the calculation period dates to cover relative dates. This would cover the requirements of the Pricing and Valuation WG since it allows the definition of relatively simple swaps as relative. If a requirement arises to define more complex swaps (eg compounding with payment stubs) then the standard can be extended at that point.

The following changes maintain backward compatibility with the existing standard and are all limited to changes to the CalculationPeriodDates (fpML-ird-4-1.xsd) component.

2.2.1Changes to EffectiveDate

Change effectiveDate to be a choice between effectiveDate (of type AdjustableDate) and relativeEffectiveDate (of type RelativeDateOffset)

2.2.2Changes to TerminationDate

Change terminationDate to be a choice between terminationDate (of type AdjustableDate) and relativeTerminationDate (of type RelativeDateOffset)

2.2.3StubPeriodType Definition

An optional stubPeriodType element has been added to allow the definition of how any irregular period should be handled. This element can be present along with the explicit dates but if this is the case there is a rule that the dates generated using the stubPeriodType should be consistent with the dates present within calculationPeriodDates.

Enumeration:

ShortInitial / If there is an irregular period remaining it is left shorter than the regular period length implied by the stream’s calculation period frequency and is placed at the start of the stream as the initial calculation period.
ShortFinal / If there is an irregular period remaining it is left shorter than the regular period length implied by the stream’s calculation period frequency and is placed at the end of the stream as the final calculation period.
LongInitial / If there is an irregular period remaining it is placed at the start of the stream and is combined with the following calculation period to give a longer initial calculation period than the regular period length implied by the stream’s calculation period frequency.
LongFinal / If there is an irregular period remaining it is placed at the end of the stream and is combined with the preceding calculation period to give a longer final calculation period than the regular period implied by the stream’s calculation period frequency.

Implied Rules

The following rules are required:

1.If the stubPeriod element is present together with any of the optional stub dates, namely:

-firstPeriodStartDate

-firstRegularPeriodStartDate

-lastRegularPeriodEndDate

Then those dates must match the unadjusted calculation period dates calculated using the stubPeriod element.

3.Parameterized form of Early Termination Dates

3.1Background

The Broker Working Group defined the requirement to be able to define early termination dates in a parametric form: “ At X years and every Y years thereafter “. The current FpML Specification quotes the actual unadjusted dates.

For example.

FpML early termination dates:

10-Nov-2008, 10-Nov-2009, 10-Nov-2010, 10-Nov-2011

Assuming trade date was 10-Nov-2004 we would want “At 4 years and every year thereafter”.

3.2Proposed Solution

Add new elements mandatoryEarlyTerminationDateTenor and optionalEarlyTerminationParameters into the earlyTerminationProvision component. These allow specification of the mandatory early termination date in terms of a tenor, e.g. 5 years, or for optional early termination (mutual puts) the specification of the earliest termination date in terms of a tenor and a subsequent exercise frequency (in the case of Bermudan or American style early termination). American style exercise would be indicated by stating an exercise frequency of 1 day. European style exercise would omit the exercise frequency altogether.

The schema structure within earlyTerminationProvision is designed to allow:

1EITHER

oMandatoryEarlyTermination, OR

oMandatoryEarlyTerminationDateTenor, OR

oFor both elements to be present

2OR

oOptionalEarlyTermination, OR

oOptionalEarlyTerminationParameters, OR

oFor both elements to be present

3.2.1Changes to EarlyTerminationProvision (fpml-ird-4-1.xsd)

The following additional choices have been made:

1Include mandatoryEarlyTerminationDateTenor (of type Interval) optionally together with mandatoryEarlyTermination (of type MandatoryEarlyTermination).

2Include optionalEarlyTerminationParameters (of type ExercisePeriod) optionally together with optionalEarlyTermination (of type OptionalEarlyTermination)

Element descriptions

3MandatoryEarlyTerminationDateTenor - period after trade date of the mandatory early termination date.

4OptionalEarlyTerminationParameters - definition of the first early termination date and the frequency of the dates subsequent to that. American exercise is defined by having a frequency of one day.

3.2.2New Complex type ExercisePeriod (fpml-ird-4-1.xsd)

This defines the time interval to the start of the exercise period, i.e. the earliest exercise date, and the frequency of subsequent possible exercise dates (if any).

  • EaliestExerciseDateTenor type: Interval – the time interval to the first (and possibly only) exercise date in the exercise period.
  • ExerciseFrequency type:Interval – the frequency of subsequent exercise dates in the exercise period following the earliest exercise date. An interval of 1 day should be used to indicate an American style exercise period.

4.Condition Precedent Bond Reference

4.1Background

A requirement has been put forward to be able to reference a bond that is driving the values in the fixed leg of a swap. Were there to be any dispute, the referenced bond would prevail. Also, should the bond not be issued then the swap contract would not exist.

4.2Proposed Solution

In order to provide for other additional terms like this in future releases an additionalTerms element will be added to the swap product. Within this the only element that will be defined is conditionPrecedentBond that will be of type bond. The expectation is that as other such terms are defined they will be added into the additionalTerms element to give a list of optional elements.

4.2.1Changes to fpML-ird-4-1.xsd

1Addition of new complex type – SwapAdditionalTerms containing a single optional element conditionPrecendentBond of type Bond

2Addition of optional element additionalTerms of type SwapAdditionalTerms to Swap

5.Schema Changes

5.1Relative Swap Proposal

5.1.1in fpml-enum-4-0.xsd

<xsd:simpleType

name="StubPeriodTypeEnum">

<xsd:annotation>

<xsd:documentation source=" xml:lang="en">

Element to define how to deal with a none standard calculation period within a swap stream.

</xsd:documentation>

</xsd:annotation>

<xsd:restriction base="xsd:normalizedString">

<xsd:enumeration value="ShortInitial">

<xsd:annotation>

<xsd:documentation source=" xml:lang="en">If there is a non regular period remaining it is left shorter than the streams calculation period frequency and placed at the start of the stream</xsd:documentation>

</xsd:annotation>

</xsd:enumeration>

<xsd:enumeration value="ShortFinal">

<xsd:annotation>

<xsd:documentation source=" xml:lang="en">If there is a non regular period remaining it is left shorter than the streams calculation period frequency and placed at the end of the stream</xsd:documentation>

</xsd:annotation>

</xsd:enumeration>

<xsd:enumeration value="LongInitial">

<xsd:annotation>

<xsd:documentation source=" xml:lang="en">If there is a non regular period remaining it is placed at the start of the stream and combined with the adjacent calculation period to give a long first calculation period</xsd:documentation>

</xsd:annotation>

</xsd:enumeration>

<xsd:enumeration value="LongFinal">

<xsd:annotation>

<xsd:documentation source=" xml:lang="en">If there is a non regular period remaining it is placed at the end of the stream and combined with the adjacent calculation period to give a long last calculation period</xsd:documentation>

</xsd:annotation>

</xsd:enumeration>

</xsd:restriction>

</xsd:simpleType>

5.1.2in fpml-ird-4-0.xsd

<xsd:complexType name="CalculationPeriodDates">

<xsd:annotation>

<xsd:documentation xml:lang="en">A type defining the parameters used to generate the calculation period dates schedule, including the specification of any initial or final stub calculation periods. A calculation perod schedule consists of an optional initial stub calculation period, one or more regular calculation periods and an optional final stub calculation period. In the absence of any initial or final stub calculation periods, the regular part of the calculation period schedule is assumed to be between the effective date and the termination date. No implicit stubs are allowed, i.e. stubs must be explicitly specified using an appropriate combination of firstPeriodStateDate, firstRegularPeriodStartDate and lastRegularPeriodEndDate.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:choice>

<xsd:element name="effectiveDate" type="AdjustableDate">

<xsd:annotation>

<xsd:documentation xml:lang="en">The first day of the term of the trade. This day may be subject to adjustment in accordance with a business day convention.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<!-- ADDITION -->

<xsd:element name="relativeEffectiveDate" type="RelativeDateOffset" >

<xsd:annotation>

<xsd:documentation xml:lang="en">Defines the effective date.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<!-- END OF ADDITION -->

</xsd:choice>

<xsd:choice>

<xsd:element name="terminationDate" type="AdjustableDate">

<xsd:annotation>

<xsd:documentation xml:lang="en">The last day of the term of the trade. This day may be subject to adjustment in accordance with a business day convention.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<!-- ADDITION -->

<xsd:element name="relativeTerminationDate" type="RelativeDateOffset" >

<xsd:annotation>

<xsd:documentation xml:lang="en">The term/maturity of the swap, express as a tenor (typically in years). </xsd:documentation>

</xsd:annotation>

</xsd:element>

<!-- END OF ADDITION -->

</xsd:choice>

<xsd:element name="calculationPeriodDatesAdjustments" type="BusinessDayAdjustments">

<xsd:annotation>

<xsd:documentation xml:lang="en">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.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="firstPeriodStartDate" type="AdjustableDate" minOccurs="0">

<xsd:annotation>

<xsd:documentation xml:lang="en">The start date of the calculation period if the date falls before the effective date. It must only be specified if it is not equal to the effective date. This date may be subject to adjustment in accordance with a business day convention.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="firstRegularPeriodStartDate" type="xsd:date" minOccurs="0">

<xsd:annotation>

<xsd:documentation xml:lang="en">The start date of the regular part of the calculation period schedule. It must only be specified if there is an initial stub calculation period. This day may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="lastRegularPeriodEndDate" type="xsd:date" minOccurs="0">

<xsd:annotation>

<xsd:documentation xml:lang="en">The end date of the regular part of the calculation period schedule. It must only be specified if there is a final stub calculation period. This day may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<!-- ADDITION -->

<xsd:element name = "stubPeriodType" type = "StubPeriodTypeEnum" minOccurs = "0">

<xsd:annotation>

<xsd:documentation xml:lang="en">Method to allocate any irregular period remaining after regular periods have been allocated between the effective and termination date.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<!-- END OF ADDITION -->

<xsd:element name="calculationPeriodFrequency" type="CalculationPeriodFrequency">

<xsd:annotation>

<xsd:documentation xml:lang="en">The frequency at which calculation period end dates occur with the regular part of the calculation period schedule and their roll date convention.</xsd:documentation>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="id" type="xsd:ID" use="required"/>

</xsd:complexType>

5.2For cashflows proposal

5.2.1in fpml-ird-4-1.xsd

<xsd:complexType name="PaymentCalculationPeriod">

<xsd:annotation>

<xsd:documentation xml:lang="en">A type defining the adjusted payment date and associated calculation period parameters required to calculate the actual or projected payment amount. This type forms part of the cashflow representation of a swap stream.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="unadjustedPaymentDate" type="xsd:date" minOccurs="0"/>

<xsd:element name="adjustedPaymentDate" type="xsd:date" minOccurs="0">

<xsd:annotation>

<xsd:documentation xml:lang="en">The adjusted payment date. This date should already be adjusted for any applicable business day convention. This component is not intended for use in trade confirmation but my be specified to allow the fee structure to also serve as a cashflow type component (all dates the the Cashflows type are adjusted payment dates).</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:choice>

<xsd:element name="calculationPeriod" type="CalculationPeriod" maxOccurs="unbounded">

<xsd:annotation>

<xsd:documentation xml:lang="en">The parameters used in the calculation of a fixed or floating rate calculation period amount. A list of calculation period elements may be ordered in the document by ascending start date. An FpML document which contains an unordered list of calcularion periods is still regarded as a conformant document.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="fixedPaymentAmount" type="xsd:decimal">

<xsd:annotation>

<xsd:documentation xml:lang="en">A known fixed payment amount.</xsd:documentation>

</xsd:annotation>

</xsd:element>

</xsd:choice>

<!-- ADDITION -->

<xsd:element name="discountFactor" type="xsd:decimal" minOccurs="0">

<xsd:annotation>

<xsd:documentation xml:lang="en">A decimal value representing the discount factor used to calculate the present value of cash flow.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="forecastPaymentAmount" type="Money" minOccurs="0">

<xsd:annotation>

<xsd:documentation xml:lang="en">A monetary amount representing the forecast of the future value of the payment.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="presentValueAmount" type="Money" minOccurs="0">

<xsd:annotation>

<xsd:documentation xml:lang="en">A monetary amount representing the present value of the forecast payment.</xsd:documentation>