Investment Studio > Expressions > Functions > Financial > DISC

float disc(date settlement_date, date maturity_date, float price_per_100_face_value, float redemption_value_per_100_face_value, integer day_count_basis = 0)

Returns the discount rate of a bond.

settlement_date is the date (>= the issue date) when the bond is traded.

maturity_date is the date when the bond expires.

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

price_per_100_face_value is the price for a face value of 100.

redemption_value_per_100_face_value is the price paid on redemption for a face value of 100.

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 discount rate is given by the expression

discount rate = ((redemption - face value) / face value) * (days in year / days from settlement to maturity)

Example

Consider a bond with the following properties:

Assuming standard US date format settings, the discount rate is

=disc("6/15/2002", "10/30/2005", 91.7, 100, 2)

» 2.42%.

See also pricedisc.