# accrfrac

Fraction of coupon period before settlement

## Syntax

``Fraction = accrfrac(Settle,Maturity)``
``Fraction = accrfrac(___,Period,Basis,EndMonthRule,IssueDate,FirstCouponDate,LastCouponDate)``

## Description

example

````Fraction = accrfrac(Settle,Maturity)` returns the fraction of the coupon period before settlement. Use `accrfrac` for computing accrued interest. `accrfrac` calculates accrued interest for bonds with regular or odd first or last coupon periods.Required input arguments must be number of bonds, `NUMBONDS`-by-`1` or `1`-by-`NUMBONDS`, conforming vectors or scalars.```

example

````Fraction = accrfrac(___,Period,Basis,EndMonthRule,IssueDate,FirstCouponDate,LastCouponDate)` returns the fraction of the coupon period before settlement with optional inputs.Optional input arguments must be either `NUMBONDS`-by-`1` or `1`-by-`NUMBONDS` conforming vectors, scalars, or empty matrices.```

## Examples

collapse all

This example shows how to find the accrued interest for given bond data.

```Settle = '14-Mar-1997'; Maturity = ['30-Nov-2000' '31-Dec-2000' '31-Jan-2001']; Period = 2; Basis = 0; EndMonthRule = 1; Fraction = accrfrac(Settle, Maturity, Period, Basis,... EndMonthRule)```
```Fraction = 3×1 0.5714 0.4033 0.2320 ```

This example shows how to find the accrued interest for a given bond's data using a datetime array.

`Fraction = accrfrac(datetime('14-Mar-1997', 'Locale', 'en_US'), ['30-Nov-2000'; '31-Dec-2000'; '31-Jan-2001'], 2, 0,1)`
```Fraction = 3×1 0.5714 0.4033 0.2320 ```

## Input Arguments

collapse all

Settlement date, specified as a scalar or an `NUMBONDS`-by-`1` vector of serial date numbers, date character vectors, or a datetime array. `Settle` must be earlier than `Maturity`.

Data Types: `double` | `char` | `datetime`

Maturity date, specified as a scalar or an `NUMBONDS`-by-`1` vector of serial date numbers, date character vectors, or a datetime array.

Data Types: `double` | `char` | `datetime`

Coupons per year of the bond, specified as a scalar or an `NUMBONDS`-by-`1` vector of positive integers from the set `[1,2,3,4,6,12]`.

Data Types: `single` | `double`

Day-count basis of the instrument, specified as a scalar integer with a value of `0` through `13` or a `NUMBONDS`-by-`1` vector of integers with values of `0` through `13`.

• 0 = actual/actual (default)

• 1 = 30/360 (SIA)

• 2 = actual/360

• 3 = actual/365

• 4 = 30/360 (BMA)

• 5 = 30/360 (ISDA)

• 6 = 30/360 (European)

• 7 = actual/365 (Japanese)

• 8 = actual/actual (ICMA)

• 9 = actual/360 (ICMA)

• 10 = actual/365 (ICMA)

• 11 = 30/360E (ICMA)

• 12 = actual/365 (ISDA)

• 13 = BUS/252

Data Types: `single` | `double`

End-of-month rule flag for month having 30 or fewer days, specified as a scalar nonnegative integer or an `NUMBONDS`-by-`1` vector of values. This rule applies only when `Maturity` is an end-of-month date for a month having 30 or fewer days.

• `0` = Ignore rule, meaning that a bond’s coupon payment date is always the same numerical day of the month.

• `1` = Set rule on, meaning that a bond’s coupon payment date is always the last actual day of the month.

Data Types: `logical`

Bond issue date, specified as a scalar or an `NUMBONDS`-by-`1` vector of serial date numbers, date character vectors, or a datetime array.

Data Types: `double` | `char` | `datetime`

Date when a bond makes its first coupon payment, specified as a scalar or an `NUMBONDS`-by-`1` vector of serial date numbers, date character vectors, or a datetime array.

`FirstCouponDate` is used when a bond has an irregular first coupon period. When `FirstCouponDate` and `LastCouponDate` are both specified, `FirstCouponDate` takes precedence in determining the coupon payment structure. If you do not specify a `FirstCouponDate`, the cash flow payment dates are determined from other inputs.

Data Types: `double` | `char` | `datetime`

Last coupon date of a bond before maturity date, specified as a scalar or an `NUMBONDS`-by-`1` vector of serial date numbers, date character vectors, or a datetime array.

`LastCouponDate` is used when a bond has an irregular last coupon period. In the absence of a specified `FirstCouponDate`, a specified `LastCouponDate` determines the coupon structure of the bond. The coupon structure of a bond is truncated at the `LastCouponDate`, regardless of where it falls, and is followed only by the bond's maturity cash flow date. If you do not specify a `LastCouponDate`, the cash flow payment dates are determined from other inputs.

Data Types: `double` | `char` | `datetime`

## Output Arguments

collapse all

Fraction of the coupon period before settlement, returned as an `NUMBONDS`-by-`1` vector.

## Version History

Introduced before R2006a