Logo

DISC

Updated 2024-02-22 20:59:28.967000

Syntax

SELECT [westclintech].[wct].[DISC] (
  <@Settlement, datetime,>
 ,<@Maturity, datetime,>
 ,<@Pr, float,>
 ,<@Redemption, float,>
 ,<@Basis, nvarchar(4000),>)

Description

Use the scalar function DISC to calculate the discount rate for a discount security. The DISC formula is:

\mathrm{DR=\frac{RV-P}{RV}\times{\frac{B}{DSM}}

Where:

{"columns":[{"field":"column 1"},{"field":"column 2"},{"field":"column 3"}],"rows":[{"column 1":"B","column 2":"=","column 3":"Number of days in the year"},{"column 1":"DR","column 2":"=","column 3":"Discount Rate"},{"column 1":"DSM","column 2":"=","column 3":"Number of days from settlement date to maturity date"},{"column 1":"P","column 2":"=","column 3":"Price per 100 par value"},{"column 1":"RV","column 2":"=","column 3":"Redemption Value"}]}

Arguments

@Pr

the security’s price per 100 face value. @Pr is an expression of type float or of a type that can be implicitly converted to float.

@Basis

is the type of day count to use. @Basis is an expression of the character string data type category.

{"columns":[{"field":"@Basis","width":313},{"field":"Day count basis","width":277}],"rows":[{"@Basis":"0 , 'BOND'","Day count basis":"US (NASD) 30/360"},{"@Basis":"1 , 'ACTUAL'","Day count basis":"Actual/Actual"},{"@Basis":"2 , 'A360'","Day count basis":"Actual/360"},{"@Basis":"3 , 'A365'","Day count basis":"Actual/365"},{"@Basis":"4 , '30E/360 (ISDA)' , '30E/360' , 'ISDA' , '30E/360 ISDA' , 'EBOND'","Day count basis":"European 30/360"},{"@Basis":"5 , '30/360' , '30/360 ISDA' , 'GERMAN'","Day count basis":"30/360 ISDA"},{"@Basis":"7 , 'NL/365'","Day count basis":"No Leap Year /365"},{"@Basis":"8 , 'NL/360'","Day count basis":"No Leap Year /360"},{"@Basis":"9 , 'A/364'","Day count basis":"Actual/364"},{"@Basis":"21 , 'Actual/ISDA'","Day count basis":"Actual/ISDA"}]}

@Settlement

the settlement date of the security. @Settlement is an expression that returns a datetime or smalldatetime value, or a character string in date format.

@Maturity

the maturity date of the security. @Maturity is an expression that returns a datetime or smalldatetime value, or a character string in date format.

@Redemption

the security’s redemption value per 100 face value. @Redemption is an expression of type float or of a type that can be implicitly converted to float.

Return Type

float

Remarks

If @Settlement IS NULL then @Settlement = GETDATE().

If @Basis is NULL then @Basis = 0.

If @Basis is invalid then DISC returns an error.

Examples

This is a security maturing on 2014-12-15 with a 100 redemption value and a price of 99.72. The discount rate is quoted using the Actual/365 day-count convention.

SELECT wct.DISC(   '2014-10-07', --@Settlement

                   '2014-12-15', --@Maturity

                   99.72,        --@Pr

                   100,          --@Redemption

                   3             --@Basis

               ) as [Discount Rate];

This produces the following result.

{"columns":[{"field":"Discount Rate","headerClass":"ag-right-aligned-header","cellClass":"ag-right-aligned-cell"}],"rows":[{"Discount Rate":"0.0148115942028987"}]}

This is a security maturing on 2015-02-15 with a 10000 redemption value and a price of 9930.86 . The discount rate is quoted using the Actual/360 day-count convention.

SELECT wct.DISC(   '2014-10-07', --@Settlement

                   '2015-02-15', --@Maturity

                   9930.86,      --@Pr

                   10000,        --@Redemption

                   2             --@Basis

               ) as [Discount Rate];

This produces the following result.

{"columns":[{"field":"Discount Rate","headerClass":"ag-right-aligned-header","cellClass":"ag-right-aligned-cell"}],"rows":[{"Discount Rate":"0.0190003053435114"}]}

This is a security maturing on 2015-04-15 with a 1,000,000 redemption value and a price of 971291.21 . The discount rate is quoted using the Actual/364 day-count convention.

SELECT wct.DISC(   '2014-10-07', --@Settlement

                   '2015-04-15', --@Maturity

                   971291.21,    --@Pr

                   1000000,      --@Redemption

                   9             --@Basis

               ) as [Discount Rate];

This produces the following result.

See Also

DIS - Price, discount rate, and/or yield of a discount security

DISFACTORS - Factors for the price calculation of a discount security

ODDFYIELD - Calculate the YIELD with an odd first period

ODDLYIELD - Calculate the YIELD with an odd last period

OFLYIELD - Yield of a bond with an odd first and an odd last coupon

PRICEDISC - Price of a discount security

YIELD - Yield of a bond paying regular periodic coupon

YIELDDISC - Discount rate of a discount security

YIELDSTEP - Calculate the Yield of a security with step-up rates