Floating Rate Notes with Averaging (muni / tax-exempt market)

Overview

The suites of functions described in this document calculate cash flows, price, and yield for FRNs (or Variable Rate Bonds) whose payments are based upon the arithmetic average of the reset rates.  This is in contrast to functions such as aaFRN and aaFRN_cfm_FRN, which use compounded reset rates.  For example, if a payment period is comprised of exactly two reset periods, with reset rates r’ and r’’, then the payment on an average rate coupon is based upon (r’+r’’)/2, whereas the payment on a compounded coupon is based upon (1+r’)(1+r’’)-1.  The average rate is actually calculated as a weighted average, using the notional times the length of each reset period as the weight.

There are three sets of functions available for average rate FRNs.  The first set of functions, aaFRNavg and aaFRNavg_cf, generate the coupon dates and the reset period dates, and use an accruing curve and a discounting curve to calculate cash flows, price, and yield to maturity.  There is also a function, aaFRNavg_Tables, which can be used to calculate the active reset dates, which are needed as an input table to the above functions.

In the second set of functions, aaFRNavg_fs and aaFRNavg_fs_cf, the coupon dates, reset dates, notional dates, and fixed payment dates are completely user defined (freestyle), allowing for totally arbitrary periods to be defined.  The notional table and fixed payment table allow for an amortizing notional.  The functions take in an accruing curve for calculating future reset rates, and a discounting curve for discounting cash flows, and calculate cash flows, price, and yield to maturity.  The function aaFNRavg_Tables_fs can be used to calculate the coupon dates, reset dates, and amortization dates needed for the input tables to the above functions.

In the third set of functions, aaFRNavg_FixFwds_fs_cf, aaFRNavg_FixFwds_fs_p, and aaFRNavg_FixFwds_y, the coupon dates, reset dates, notional dates, and fixed payment dates are also completely user defined (freestyle), allowing for totally arbitrary periods.  These functions, however, do not take in an accruing curve or a discounting curve.  Active and future reset rates can be given in the input reset table, where rates that are not given are assumed to be equal to the previous rate given in the reset table.  The behavior of the reset table is described in more detail in the Formulas & Technical Details section below.  For pricing the FRN or floating leg of a swap, cash flows are priced using the given yield, rate basis, and accrual method.  The function aaFRNavg_Tables_fs can be used to calculate the dates for the input tables for these functions.

Formulas & Technical Details

Reset rate calculation

For the functions aaFRNavg, aaFRNavg_cf, aaFRNavg_fs, and aaFRNavg_fs_cf, active reset rates are entered in the reset table, and future reset rates are calculated using forward rates from a given accruing curve.

For the  reset period, let:

  be the forward rate

  be the accrual factor from the effective date to the terminating date of the reset period calculated using acc_reset

  be the discount factor from the accruing curve at the terminating date of the reset period

 be the discount factor from the accruing curve at the effective date of the reset period

Then:

Equation 1

For the functions aaFRNavg_FixFwds_fs_p, aaFRNavg_FixFwds_fs_y, and aaFRNavg_FixFwds_fs_y, no accruing curve is used, and active and future reset rates can be given in the input reset table.  For periods where the rate is not given or is equal to 0, the previous non-zero rate given will be used.  This is described in more detail below.

Average rate calculation

For a particular coupon period, for the  reset period, let:

 be the accrual factor from the effective date to the terminating date of the reset period calculated using acc_pay

  be the notional principal amount

  be the spread over the reset

The difference between the subscript  and subscript  is that subscript  counts split reset periods (in cases where a coupon date or an amortization date occurs within a reset period), whereas subscript  refers to complete reset periods.

Then:

’

Equation 2

and:

.

Equation 3

Hence the average rate is the weighted average of the reset rates (or forward rates), using the quantity  as the weight.  This quantity is shown in column 8 of the Reset Table (table_type = 2) that is output by aaFRNavg_cf, aaFRNavg_fs_cf, and aaFRNavg_FixFwds_fs_cf.

If the margin () is constant for all periods (as it is in aaFRNavg and aaFRNavg_cf), then the formula for the average rate reduces to:

.

Equation 4

 

aaFRNavg_FixFwds_fs_* reset rates

This set of functions does not take in an accruing curve for calculating future reset rates.  Instead, the future rates can be given in the input reset table.  Reset rates are taken from the reset table using the following rules:

1.       For a given reset period, if the rate is given in the reset table (for active or future resets), then the given rate and margin are used for that period

2.       For a given reset period, if the reset rate is not given or is equal to 0, then the previous non-zero rate given will be used for this period

3.       For a given reset period, if a non-zero margin is given, this margin will be used regardless of whether or not the rate was given for this period

4.       For a given reset period, if the margin is not given or is equal to 0, then the previously used margin will be used for this period

5.       If the terminating date of the last reset period given is prior to the last coupon payment date, then the function will insert a reset period effective from the last reset period terminating date given to the last coupon payment date.  The reset rate for this period will be the previous non-zero rate given

The actual reset rates that are used by the functions can be verified by examining the Reset Table (table_type = 2) that is output by the function aaFRNavg_FixFwds_fs_cf.

aaFRNavg_FixFwds_fs_* risk statistic calculations

The price and yield functions output several risk statistics: Duration, Modified Duration, Convexity, Basis Point Value, and Effective Duration.  Some of these statistics are calculated using a finite difference method.  The reset rates for periods that reset after the value date will be bumped by a small amount.  The yield, rate basis, and accrual method being used to price the cash flows can be used to calculate a forward rate for each coupon period.  These forward rates are bumped by the same small amount as the reset rates.  These bumped forward rates are then used to discount cash flows that are calculated using the bumped future reset rates.  A central difference approximation is used to calculate Effective Duration and Convexity, as follows:

Equation 5

 

Equation 6

where

 is the size of the bump,

 is the dirty price,

 is the dirty price using bumped up rates, and

 is the dirty price using bumped down rates.

These statistics are used to calculate Basis Point Value (BPV):

Equation 7

where .

Duration and Modified duration are calculated from the cash flows (which are generated using the function FRNavg_FixFwds_cf) similar to the way duration and modified duration are calculated for bonds (see the General Bond Functions FINCAD Math Reference document).

FINCAD Functions

aaFRNavg(d_v, d_dated, d_m, d_f_cpn, d_l_cpn, freq, d_rul_pay, d_reset_cycle, reset_freq, d_rul_reset, reset_mktdays, reset_tbl, mgn, npa, redemp_val, hl, df_crv_acc, df_crv_disc, acc_rt, acc_pay, intrp, position, stat)

Calculates the fair value, accrued interest and various yields for an average-rate FRN or floating leg with regular coupons and resets.  The coupons may be annual, semi-annual, quarterly, monthly, biweekly, weekly and 35 days.  The resets can be on a separate cycle at any of those frequencies plus daily.  The function allows the input of separate accruing and discounting curves.

 

aaFRNavg_cf(d_v, d_dated, d_m, d_f_cpn, d_l_cpn, freq, d_rul_pay, d_reset_cycle, reset_freq, d_rul_reset, reset_mktdays, reset_tbl, mgn, npa, redemp_val, hl, df_crv_acc, df_crv_disc, acc_rt, acc_pay, intrp, position, table_type)

Calculates the future cash flows, present value of future cash flows and reset rates for average-rate FRNs with regular coupons and resets.

 

aaFRNavg_Tables(d_v, d_dated, d_m, d_f_cpn, d_l_cpn, freq, d_rul_pay, d_reset_cycle, reset_freq, d_rul_reset, reset_mktdays, hl, table_type)

Calculates various dates related to average-rate FRNs with regular coupons and resets.  For instance, it calculates the dates for all active resets.  This is a utility function which helps set up the input tables for calls to aaFRNavg and aaFRNavg_cf.

 

aaFRNavg_fs(d_v, payperiod, npa_tbl, reset_tbl, flleg_fixpay, df_crv_acc, df_crv_disc, acc_rt, acc_pay, intrp, position, stat)

Calculates the fair value, accrued interest and various yields for an average-rate FRN or floating leg with user specified coupon dates, reset dates, notional schedule, and notional payments. The function allows the input of separate accruing and discounting curves.

 

aaFRNavg_fs_cf(d_v, payperiod, npa_tbl, reset_tbl, flleg_fixpay, df_crv_acc, df_crv_disc, acc_rt, acc_pay, intrp, position, stat)

Calculates the future cash flows, present value of future cash flows and reset rates for an average-rate FRN or floating leg with user specified coupon dates, reset dates, notional schedule, and notional payments.

 

aaFRNavg_Tables_fs(d_v, d_dated, d_m, d_f_cpn, d_l_cpn, freq, d_rul_pay, d_reset_cycle, reset_freq, d_rul_reset, reset_mktdays, d_f_amort, d_l_amort, amort_freq, d_rul_amort, amort_type, hl, table_type)

Calculates various dates related to average-rate FRNs with user specified coupon dates, reset dates, notional schedule and notional payments.  This is a utility function which helps set up the input tables for calls to aaFRNavg_fs, aaFRNavg_fs_cf, and aaFRNavg_FixFwds_fs_*.

*       Note:  Examples of how to use the above functions are contained in the FINCAD pre-built workbooks.

 

aaFRNavg_FixFwds_fs_cf(d_v, payperiod, npa_tbl, reset_tbl, flleg_fixpay, acc_pay, position, table_type)

Calculates the future cash flows and reset rates for an average-rate FRN or floating leg with user specified coupon dates, reset dates, notional schedule, and notional payments.  Active and future reset rates are taken from the input reset table.  If a rate is missing or 0 for a given period, the previous known rate in the table will be used.

 

aaFRNavg_FixFwds_fs_p(d_v, payperiod, npa_tbl, reset_tbl, flleg_fixpay, yield, yield_basis, acc_pay, position, stat)

Calculates price given a yield and rate basis for an average-rate FRN or floating leg with user specified coupon dates, reset dates, notional schedule, and notional payments.  Active and future reset rates are taken from the input reset table.  If a rate is missing or 0 for a given period, the previous known rate in the table will be used.

 

aaFRNavg_FixFwds_fs_y(d_v, payperiod, npa_tbl, reset_tbl, flleg_fixpay, price, acc_pay, position, stat)

Calculates yield given price for an average-rate FRN or floating leg with user specified coupon dates, reset dates, notional schedule, and notional payments.  Active and future reset rates are taken from the input reset table.  If a rate is missing or 0 for a given period, the previous known rate in the table will be used.

Description of Inputs

aaFRNavg, aaFRNavg_cf, aaFRNavg_Tables

Input Argument

Description

d_v

value (settlement) date

d_dated

dated date - date from which accrued interest is calculated on newly issued securities

d_m

maturity date

d_f_cpn

date of first coupon after dated date

d_l_cpn

date of last coupon prior to maturity date

freq

cash flow frequency

d_rul_pay

business day convention for payment dates

d_reset_cycle

any reset period effective date.  Is used to establish the reset period cycle.

reset_freq

reset period frequency

d_rul_reset

business day convention for reset dates *

reset_mktdays

number of business days prior to the reset date that the rate is fixed

reset_tbl

table containing active reset information.  Dates may be calculated using aaFRNavg_Tables.

mgn

margin above or below a floating rate

npa

notional principal amount

redemp_val

redemption value at maturity (per 100 notional)

hl

holiday list

df_crv_acc

discount factor curve for accruing rates

df_crv_disc

discount factor curve for discounting rates

acc_rt

accrual method for reset rates

acc_pay

accrual method for coupon payments

intrp

interpolation method

position

trade position - long or short

table_type

output table type selection

stat

output statistic(s) selection

aaFRNavg_fs, aaFRNavg_fs_cf

Input Argument

Description

d_v

value (settlement) date

payperiod

table defining the coupon payment dates

npa_tbl

table specifying the amortization schedule for the notional principal amount

reset_tbl

table defining the reset periods

flleg_fixpay

table of fixed payment dates (e.g. exchange of principal)

df_crv_acc

discount factor curve for accruing rates

df_crv_disc

discount factor curve for discounting rates

acc_rt

accrual method for reset rates

acc_pay

accrual method for coupon payments

intrp

interpolation method

position

trade position - long or short

table_type

output table type selection

stat

output statistic(s) selection

aaFRNavg_fs_Tables

Input Argument

Description

d_v

value (settlement) date

d_dated

dated date - date from which accrued interest is calculated on newly issued securities

d_m

maturity date

d_f_cpn

date of first coupon after dated date

d_l_cpn

date of last coupon prior to maturity date

freq

cash flow frequency

d_rul_pay

business day convention for payment dates

d_reset_cycle

any reset period effective date that is used to establish the reset period cycle.

reset_freq

reset period frequency

d_rul_reset

business day convention for reset dates *

reset_mktdays

number of business days prior to the reset date that the rate is fixed

d_f_amort

first amortization after dated date (optional)

d_l_amort

last amortization before maturity (optional)

amort_freq

amortization frequency

d_rul_amort

business day convention for amortizations

amort_type

defines whether or not the amortization is independent of coupon dates

hl

holiday list

table_type

table type

aaFRNavg_FixFwds_fs_cf, aaFRNavg_FixFwds_fs_p, aaFRNavg_FixFwds_fs_y

Input Argument

Description

d_v

value (settlement) date

payperiod

table defining the coupon payment dates

npa_tbl

table specifying the amortization schedule for the notional principal amount

reset_tbl

table defining the reset periods

flleg_fixpay

table of fixed payment dates (e.g. exchange of principal)

yield

yield to maturity

yield_basis

rate basis of yield to maturity

price

clean price

acc_pay

accrual method for coupon payments

position

trade position - long or short

table_type

output table type selection

stat

output statistic(s) selection

(*) The “Third Wednesday” setting is included in this switch for standardization with other functions; however this setting is not recommended and does not have a practical application for this instrument class.

Description of Outputs

Pricing functions

aaFRNavg and aaFRNavg_fs

Statistics

Description

pricing statistics:

fair value, accrued interest, and fair value + accrued interest

yield to maturity statistics:

annually compounded, semi-annually compounded, …

aaFRNavg_FixFwds_fs_p

Statistics

Description

pricing statistics:

fair value, accrued interest, and fair value + accrued interest

risk statistics:

duration, modified duration, effective duration, convexity, basis point value

 

Yield functions

aaFRNavg_FixFwds_fs_y

Statistics

Description

yield statistics:

annually compounded, semi-annually compounded, …

risk statistics:

duration, modified duration, effective duration, convexity, basis point value

 

Cash flow functions

aaFRNavg_cf, aaFRNavg_fs_cf, and aaFRNavg_FixFwds_fs_cf

These functions output three different tables:

Output Table

Description

Cash flows:

contains all future cash flow information (interest payments, principal payments, accrued interest).

Reset table:

contains all information related to the reset periods.  The date of associated coupon is given in the first column.  A reset period will be split if a coupon date or an amortization date occurs within it.

Interest summary table:

contains information related to the coupons, (e.g. average rate, interest payment, accrued interest)

aaFRNavg, aaFRNavg_fs

Output Statistics

Description

1

fair value

2

accrued interest

3

value of future cash flows (fair value + accrued)

4

annually compounded yield

5

semi-annually compounded yield

6

quarterly compounded yield

7

monthly compounded yield

aaFRNavg_cf, aaFRNavg_fs_cf

Table Type

Description

1

Cash Flows - 8 col: date, interest, principal, total cash flow, PV interest, PV principal, PV total cash flow, accrued interest

2

Reset Table - 10 col: payment date, rate fixing date, rate effective date, rate terminating date, notional, rate, rate + margin, weight, interest, accrued interest

3

Interest Summary Table - 4 col: payment date, average coupon, interest, accrued interest

aaFRNavg_Tables

Table Type

Description

1

Payment Dates Table (effective date, terminating date )

2

Reset Dates Table (rate fixing date, rate effective date, rate terminating date)

3

Active Reset Table (rate fixing date, rate effective date, rate terminating date)

aaFRNavg_Tables_fs

Table Type

Description

1

Payment Dates Table (effective date, terminating date )

2

Reset Dates Table (rate fixing date, rate effective date, rate terminating date)

3

Active Reset Table (rate fixing date, rate effective date, rate terminating date)

4

Notional Table (effective date, terminating date)

aaFRNavg_FixFwds_fs_p

Output Statistics

Description

1

fair value

2

accrued interest

3

fair value + accrued interest

4

duration

5

modified duration

6

convexity

7

basis point value

8

number of days of accrued interest

9

effective duration

aaFRNavg_FixFwds_fs_y

Output Statistics

Description

1

annually compounded yield

2

semi-annually compounded yield

3

quarterly compounded yield

4

monthly compounded yield

5

simple yield

6

accrued interest

7

fair value + accrued interest

8

duration

9

modified duration

10

convexity

11

basis point value

12

number of days of accrued interest

13

effective duration

aaFRNavg_FixFwds_fs_cf

Table Type

Description

1

Cash Flows - 5 col: date, interest, principal, total cash flow, accrued interest

2

Reset Table - 10 col: payment date, rate fixing date, rate effective date, rate terminating date, notional, rate, rate + margin, weight, interest, accrued interest

3

Interest Summary Table - 4 col: payment date, average coupon, interest, accrued interest

 

Examples

Example 1:  aaFRNavg and aaFRNavg_cf

Suppose today is 14-Feb-2005, and we want to calculate the cash flows, price, and yield to maturity of an FRN using average rate coupons.  The FRN was issued on 24-Feb-2004, and will mature on 24-Feb-2006.  Coupons are paid monthly, and the rates are reset weekly on Wednesday, effective on Thursday.  There is a 1% margin above the floating rate.

The first step is to construct a reset table containing the dates and reset rates for the active reset periods.  The active reset dates can be calculated using the function aaFRNavg_Tables with the following inputs.

aaFRNavg_Tables

Argument

Description

Example Data

Switch

d_v

value (settlement) date

14-Feb-2005

 

d_dated

dated date

 

 

d_m

maturity date

24-Feb-2006

 

d_f_cpn

date of first coupon after dated date

 

 

d_l_cpn

date of last coupon prior to maturity date

 

 

freq

cash flow frequency

4

monthly

d_rul_pay

business day convention for payment dates

1

no adjustment

d_reset_cycle

reset cycle date

17-Feb-2005

 

reset_freq

reset frequency

6

weekly

d_rul_reset

business day convention for reset dates

1

no adjustment

reset_mktdays

number of business days prior to the reset date that the rate is fixed

1

 

hl

holiday list (not needed in this example since no date adjustments are made)

0

 

table_type

table type

3

active reset table

This gives us the following active reset table:

reset date

effective date

terminating date

19-Jan-2005

20-Jan-2005

27-Jan-2005

26-Jan-2005

27-Jan-2005

3-Feb-2005

2-Feb-2005

3-Feb-2005

10-Feb-2005

9-Feb-2005

10-Feb-2005

17-Feb-2005

We must then add a fourth column to this table, in which we specify the known active reset rates.  This four column reset table will then be used as input into aaFRNavg and aaFRNavg_cf.

reset date

effective date

terminating date

reset rate

19-Jan-2005

20-Jan-2005

27-Jan-2005

5.00%

26-Jan-2005

27-Jan-2005

3-Feb-2005

5.05%

2-Feb-2005

3-Feb-2005

10-Feb-2005

5.10%

9-Feb-2005

10-Feb-2005

17-Feb-2005

5.15%

Next, we need a discount factor curve that will be used for accruing rates.  This curve will be used to calculate the forward rates for all future reset periods.  For this example, we will use the following curve:

date

discount factor

14-Feb-2005

1

15-May-2005

0.987342

15-Aug-2005

0.974088

15-Nov-2005

0.960392

15-Feb-2006

0.945762

15-May-2006

0.932451

We also need a discount factor curve that will be used to discount the cash flows to the value date.  For simplicity, in this example we will assume that the accruing curve and the discounting curve are the same.

We can now call aaFRNavg_cf and aaFRNavg to calculate the cash flows, price and yield to maturity of the FRN:

aaFRNavg_cf and aaFRNavg

Argument

Description

Example Data

Switch

d_v

value (settlement) date

14-Feb-2005

 

d_dated

dated date

 

 

d_m

maturity date

24-Feb-2006

 

d_f_cpn

date of first coupon after dated date

 

 

d_l_cpn

date of last coupon prior to maturity date

 

 

freq

cash flow frequency

4

monthly

d_rul_pay

business day convention for payment dates

1

no adjustment

d_reset_cycle

reset cycle date

17-Feb-2005

 

reset_freq

reset frequency

6

weekly

d_rul_reset

business day convention for reset dates

1

no adjustment

reset_mktdays

number of business days prior to the reset date that the rate is fixed

1

 

reset_tbl

active reset table

see above

 

mgn

margin above or below a floating rate

1%

 

npa

notional principal amount

100,000

 

redemp_val

redemption value (per 100 notional)

100

 

hl

holiday list (not needed in this example since no date adjustments are made)

0

 

df_crv_acc

discount factor curve for accruing rates

see above

 

df_crv_disc

discount factor curve for discounting rates

see above

 

acc_rt

accrual method for reset rates

1

actual/365 (fixed)

acc_pay

accrual method for coupon payments

1

actual/365 (fixed)

intrp

interpolation method

3

exponential

position

trade position

1

long

table_type

table type (cash flow function)

1

cash flows

stat

output statistic(s) (price and yield function)

{1, 2, …, 7}

 

Results:  aaFRNavg_cf

date

interest

principal payment

total cash flow

present value of interest

present value of principal payment

present value total of cash flows

accrued interest

24-Feb-2005

519.70

0

519.70

518.96

0

518.96

349.73

24-Mar-2005

477.70

0

477.70

475.11

0

475.11

0

24-Apr-2005

528.88

0

528.88

523.68

0

523.68

0

24-May-2005

515.58

0

515.58

508.31

0

508.31

0

24-Jun-2005

540.55

0

540.55

530.50

0

530.50

0

24-Jul-2005

523.11

0

523.11

511.13

0

511.13

0

24-Aug-2005

547.57

0

547.57

532.56

0

532.56

0

24-Sep-2005

562.32

0

562.32

544.31

0

544.31

0

24-Oct-2005

544.18

0

544.18

524.32

0

524.32

0

24-Nov-2005

575.27

0

575.27

551.56

0

551.56

0

24-Dec-2005

583.03

0

583.03

556.21

0

556.21

0

24-Jan-2006

602.46

0

602.46

571.79

0

571.79

0

24-Feb-2006

594.87

100,000.00

100,594.87

561.71

94,425.72

94,987.44

0

Results:  aaFRnavg

Statistic

Description

Value

1

fair value

100,986.15

2

accrued interest

349.73

3

value of future cash flows (fair value + accrued)

101,335.88

4

annually compounded yield

5.735%

5

semi-annually compounded yield

5.655%

6

quarterly compounded yield

5.616%

7

monthly compounded yield

5.590%

 

Example 2:  aaFRNavg_FixFwds_p and aaFRNavg_FixFwds_cf

Suppose today is 5-Feb-2005, and we want to evaluate an FRN based on average rate coupons, but do want to use an accruing curve or a discounting curve.  The FRN was issued on 1-Jan-2005, and matures on 1-Jul-2007.  The notional is fixed at $100,000, which will be paid on the maturity date of 1-Jul-2007.  Coupons are paid quarterly, and rates reset semi-annually.  The first reset date was 1-Jan-2005, at which time the rate reset at 5%.  Suppose we want all future reset rates to be 5.5%.  If we are using the aaFRNavg_FixFwds_* functions, future rates can be specified in the input reset table.  Future rates that are not given are set equal to the previous known rate in the table.  Thus, for the 1-Jul-2005 reset date, the rate of 5.5% can be specified in the table, and all future reset periods will also use 5.5%.

Since these are user defined (freestyle) functions, dates must be given in the input tables for the coupon periods, reset periods, notional amounts, and fixed payments.  The notional is constant, and there is only one fixed payment, at maturity, so the notional table and fixed payment table will each contain only one date.  The coupon payment table and reset table can be constructed using the function aaFRNavg_Tables_fs, given the following inputs:

aaFRNavg_Tables_fs

Argument

Description

Example Data

Switch

d_v

value (settlement) date

5-Feb-2005

 

d_dated

dated date

 

 

d_m

maturity date

1-Jul-2007

 

d_f_cpn

date of first coupon after dated date

 

 

d_l_cpn

date of last coupon prior to maturity date

 

 

freq

cash flow frequency

3

quarterly

d_rul_pay

business day convention for payment dates

1

no adjustment

d_reset_cycle

reset cycle date

1-Jan-2005

 

reset_freq

reset frequency

2

semi-annual

d_rul_reset

business day convention for reset dates

1

no adjustment

reset_mktdays

number of business days prior to the reset date that the rate is fixed

0

 

d_f_amort

first amortization after dated date (optional)

 

 

d_l_amort

last amortization before maturity (optional)

 

 

amort_freq

amortization frequency

1

annual

d_rul_amort

business day convention for amortizations

1

no adjustment

amort_type

amortization rule

1

independent of payments

hl

holiday list (not needed in this example since no date adjustments are made)

0

 

table_type

table type

1, 2

payment and reset tables

 

This function will output both the coupon payment dates table, and the reset dates table.  The coupon dates table can  be used as is by the aaFRNavg_FixFwds_fs_* functions, but the reset table needs two extra columns; one for the reset rate, and one for the margin above or below the reset rate.  All four tables needed by aaFRNavg_FixFwds_fs_* for this example are given below:

Payment Periods Table (table_type = 1)

effective date

terminating date

1-Jan-2005

1-Apr-2005

1-Apr-2005

1-Jul-2005

1-Jul-2005

1-Oct-2005

1-Oct-2005

1-Jan-2006

1-Jan-2006

1-Apr-2006

1-Apr-2006

1-Jul-2006

1-Jul-2006

1-Oct-2006

1-Oct-2006

1-Jan-2007

1-Jan-2007

1-Apr-2007

1-Apr-2007

1-Jul-2007

Notional Table

date

notional principal amount

1-Feb-2005

100,000

Reset Table (table_type = 2 = all reset periods)

reset date

effective date

terminating date

reset rate

margin

1-Jan-2005

1-Jan-2005

1-Jul-2005

5.000%

0.000%

1-Jul-2005

1-Jul-2005

1-Jan-2006

5.500%

0.000%

1-Jan-2006

1-Jan-2006

1-Jul-2006

 

 

1-Jul-2006

1-Jul-2006

1-Jan-2007

 

 

1-Jan-2007

1-Jan-2007

1-Jul-2007

 

 

Note that these functions do not require all of the reset periods to be defined in the reset table.  The last rate given, 5.5% in this case, is going to be used for all periods where no rate is entered.  If a reset table that only contained the first 2 reset periods is used, the function will add one extra reset period from the last given terminating date to the maturity date, and the last rate given will apply to the additional period.  Thus, a reset table consisting of only the first two periods will give the same results as the table shown.

Fixed Payment Table

payment date

fixed payment amount

1-Jul-2007

100,000

 

The function aaFRNavg_FixFwds_fs_cf can be called using the above tables, and the inputs below, to calculate the cash flows, as well as output a reset table showing the rate used, the notional amount, interest, and accrued interest for each reset period.

Argument

Description

Example Data

Switch

d_v

value (settlement) date

5-Feb-2005

 

payperiod

pay periods

see above

 

npa_tbl

notional table

see above

 

reset_tbl

reset table

see above

 

flleg_fixpay

fixed payment table

see above

 

acc_pay

accrual method for coupon payments

1

actual/365 (fixed)

position

trade position

1

long

table_type

table type

1,2,3

cash flow, reset, and interest summary tables

Results: Cash Flow Table (table_type = 1)

date

interest

principal payment

total cash flow

accrued interest

1-Apr-2005

1,232.88

0

1,232.88

479.45

1-Jul-2005

1,246.58

0

1,246.58

0

1-Oct-2005

1,386.30

0

1,386.30

0

1-Jan-2006

1,386.30

0

1,386.30

0

1-Apr-2006

1,356.16

0

1,356.16

0

1-Jul-2006

1,371.23

0

1,371.23

0

1-Oct-2006

1,386.30

0

1,386.30

0

1-Jan-2007

1,386.30

0

1,386.30

0

1-Apr-2007

1,356.16

0

1,356.16

0

1-Jul-2007

1,371.23

100,000

101,371.23

0

Results: Reset Table (table_type = 2)

payment date

reset date

effective date

terminating date

notional

rate

rate + mgn

weight

interest

accrued

1-Apr-2005

1-Jan-2005

1-Jan-2005

1-Feb-2005

100,000

5.0%

5.0%

8493

424.66

424.66

1-Apr-2005

1-Jan-2005

1-Feb-2005

1-Apr-2005

100,000

5.0%

5.0%

16164

808.22

54.79

1-Jul-2005

1-Jan-2005

1-Apr-2005

1-Jul-2005

100,000

5.0%

5.0%

24932

1,246.58

0

1-Oct-2005

1-Jul-2005

1-Jul-2005

1-Oct-2005

100,000

5.5%

5.5%

25205

1,386.30

0

1-Jan-2006

1-Jul-2005

1-Oct-2005

1-Jan-2006

100,000

5.5%

5.5%

25205

1,386.30

0

1-Apr-2006

1-Jan-2006

1-Jan-2006

1-Apr-2006

100,000

5.5%

5.5%

24658

1,356.16

0

1-Jul-2006

1-Jan-2006

1-Apr-2006

1-Jul-2006

100,000

5.5%

5.5%

24932

1,371.23

0

1-Oct-2006

1-Jul-2006

1-Jul-2006

1-Oct-2006

100,000

5.5%

5.5%

25205

1,386.30

0

1-Jan-2007

1-Jul-2006

1-Oct-2006

1-Jan-2007

100,000

5.5%

5.5%

25205

1,386.30

0

1-Apr-2007

1-Jan-2007

1-Jan-2007

1-Apr-2007

100,000

5.5%

5.5%

24658

1,356.16

0

1-Jul-2007

1-Jan-2007

1-Apr-2007

1-Jul-2007

100,000

5.5%

5.5%

24932

1,371.23

0

Results: Interest Summary Table (table_type = 3)

payment date

avg cpn

interest

accrued

1-Apr-2005

5.000%

1,232.88

479.45

1-Jul-2005

5.000%

1,246.58

0

1-Oct-2005

5.500%

1,386.30

0

1-Jan-2006

5.500%

1,386.30

0

1-Apr-2006

5.500%

1,356.16

0

1-Jul-2006

5.500%

1,371.23

0

1-Oct-2006

5.500%

1,386.30

0

1-Jan-2007

5.500%

1,386.30

0

1-Apr-2007

5.500%

1,356.16

0

1-Jul-2007

5.500%

1,371.23

0

The function aaFRNavg_FixFwds_fs_p can be used to calculate the price of the FRN given a yield and the rate basis of that yield.  Several risk statistics are also calculated, including Duration, Modified Duration, Convexity, and Basis Point Value.

aaFRNavg_FixFwds_fs_p

Argument

Description

Example Data

Switch

d_v

value (settlement) date

5-Feb-2005

 

payperiod

pay periods

see above

 

npa_tbl

notional table

see above

 

reset_tbl

reset table

see above

 

flleg_fixpay

fixed payment table

see above

 

yield

yield to maturity

4.65%

 

yield_basis

rate basis of yield to maturity

3

quarterly

acc_pay

accrual method for coupon payments

1

actual/365 (fixed)

position

trade position

1

long

stat

statistic

{1, 2, …, 9}

 

Results

Statistic

Description

Value

1

fair value

101,721.14

2

accrued interest

479.45

3

value of future cash flows (fair value + accrued)

102,200.59

4

duration

2.259791

5

modified duration

2.233822

6

convexity

0.279005

7

basis point value

-4.1917

8

number of days of accrued interest

35

9

effective duration

0.410158

 

 

Disclaimer

 

With respect to this document, FinancialCAD Corporation (“FINCAD”) makes no warranty either express or implied, including, but not limited to, any implied warranty of merchantability or fitness for a particular purpose. In no event shall FINCAD be liable to anyone for special, collateral, incidental, or consequential damages in connection with or arising out of the use of this document or the information contained in it. This document should not be relied on as a substitute for your own independent research or the advice of your professional financial, accounting or other advisors.

 

This information is subject to change without notice. FINCAD assumes no responsibility for any errors in this document or their consequences and reserves the right to make changes to this document without notice.

 

Copyright

 

Copyright © FinancialCAD Corporation 2008. All rights reserved.