Investment Studio > Expressions > Functions > Financial > INTRATE

float intrate(date settlement_date, date maturity_date, float investment, float redemption, integer day_count_basis = 0)

Returns the annual interest rate for a fully invested security.

settlement_date is the date (in the range [issue date, maturity_date[) when the security is traded.

maturity_date is the date when the security expires and the interest is paid.

Automatic type conversion allows the use of date strings as arguments instead of explicit date values.

investment is the amount invested in the security.

redemption is the total ammount received on maturity_date.

day_count_basis specifies the calendar convention used to count days and compute the corresponding fraction of a year:

day_count_basis Interpretation
0 US (NASD) 30/360: If the start date is the 31st of a month, it's set to the 30th of the same month. If the end date is the 31st of a month, it's set to the 30th of the same month unless the start date is less than the 30th of a month, in which case the end date is set to the 1st of the next month.

The denominator used to compute the fraction of a year is 360.

1 Actual calendar days are counted and used to compute the fraction of a year.
2 Actual calendar days are counted. The denominator used to compute the fraction of a year is 360.
3 Actual calendar days are counted. The denominator used to compute the fraction of a year is 365.
4 European 30/360: Start and end dates that occur on the 31st of a month are set to the 30th of the same month. The denominator used to compute the fraction of a year is 360.

If day_count_basis is omitted, it defaults to 0 (NASD-style 360/30).

The annual interest rate is given by the expression

intrate = (redemption / investment - 1) * (days in a year / days from settlement to maturity)

Example

Consider a bond with the following properties:

Assuming standard US date format settings, the interest rate is

=intrate("6/15/2002", "10/30/2005", 100, 115, 2)

» 4.38%.

See also received.