Financial Derivatives Toolbox    

Interest Rates vs. Discount Factors

Discount factors are coefficients commonly used to find the present value of future cash flows. As such, there is a direct mapping between the rate applicable to a period of time, and the corresponding discount factor. The function disc2rate converts discount rates for a given term (period) into interest rates. The function rate2disc does the opposite; it converts interest rates applicable to a given term (period) into the corresponding discount rates.

Calculating Discount Factors from Rates

As an example, consider these annualized zero coupon bond rates.

From
To
Rate
15 Feb 2000
15 Aug 2000
0.05
15 Feb 2000
15 Feb 2001
0.056
15 Feb 2000
15 Aug 2001
0.06
15 Feb 2000
15 Feb 2002
0.065
15 Feb 2000
15 Aug 2002
0.075

To calculate the discount factors corresponding to these interest rates, call rate2disc using the syntax

where:

Set the variables in MATLAB.

By adding a fourth column to the above rates table to include the corresponding discounts, you can see the evolution of the discount rates.

From
To
Rate
Discount
15 Feb 2000
15 Aug 2000
0.05
0.9756
15 Feb 2000
15 Feb 2001
0.056
0.9463
15 Feb 2000
15 Aug 2001
0.06
0.9151
15 Feb 2000
15 Feb 2002
0.065
0.8799
15 Feb 2000
15 Aug 2002
0.075
0.8319

Optional Time Factor Outputs

The function rate2disc optionally returns two additional output arguments: EndTimes and StartTimes. These vectors of time factors represent the start dates and end dates in discount periodic units. The scale of these units is determined by the value of the input variable Compounding.

To examine the time factor outputs, find the corresponding values in the previous example.

Arrange the two vectors into a single array for easier visualization.

Because the valuation date is equal to the start date for all periods, the StartTimes vector is composed of zeros. Also, since the value of Compounding is 2, the rates are compounded semiannually, which sets the units of periodic discount to six months. The vector EndDates is composed of dates separated by intervals of six months from the valuation date. This explains why the EndTimes vector is a progression of integers from one to five.

Alternative Syntax (rate2disc)

The function rate2disc also accommodates an alternative syntax that uses periodic discount units instead of dates. Since the relationship between discount factors and interest rates is based on time periods and not on absolute dates, this form of rate2disc allows you to work directly with time periods. In this mode, the valuation date corresponds to zero, and the vectors StartTimes and EndTimes are used as input arguments instead of their date equivalents, StartDates and EndDates. This syntax for rate2disc is

Using as input the StartTimes and EndTimes vectors computed previously, you should obtain the previous results for the discount factors.

Calculating Rates from Discounts

The function disc2rate is the complement to rate2disc. It finds the rates applicable to a set of compounding periods, given the discount factor in those periods. The syntax for calling this function is

Each argument to this function has the same meaning as in rate2disc. Use the results found in the previous example to return the rate values you started with.

Alternative Syntax (disc2rate)

As in the case of rate2disc, disc2rate optionally returns StartTimes and EndTimes vectors representing the start and end times measured in discount periodic units. Again, working with the same values as before, you should obtain the same numbers.

Arrange the results in a matrix convenient to display.

As with rate2disc, the relationship between rates and discount factors is determined by time periods and not by absolute dates. Consequently, the alternate syntax for disc2rate uses time vectors instead of dates, and it assumes that the valuation date corresponds to time = 0. The times-based calling syntax is

Using this syntax, we again obtain the original values for the interest rates.


  Using Financial Derivatives Interest Rate Term Conversions