Logo

SQL Server BONDINT Function

Updated 2023-10-06 13:40:21.493000

Description

Use the scalar function BONDINT to calculate the accrued interest on a bond that pays regular, periodic interest.

Syntax

SELECT [westclintech].[wct].[BONDINT] (
  <@Settlement, datetime,>
 ,<@Maturity, datetime,>
 ,<@Rate, float,>
 ,<@Par, float,>
 ,<@Frequency, float,>
 ,<@Basis, nvarchar(4000),>)

Arguments

@Settlement

the settlement date occurring within the coupon period 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.

@Rate

the coupon rate of the security expressed in decimal terms. @Rate is an expression of type float or of a type that can be implicitly converted to float.

@Par

the par value of the security. @Par is an expression of type float or of a type that can be implicitly converted to float.

@Frequency

the number of coupon payments per year. For annual payments, @Frequency = 1; for semi-annual, @Frequency = 2; for quarterly, @Frequency = 4; for bimonthly @Frequency = 6; for monthly @Frequency = 12. For bonds with @Basis = 'A/364' or 9, you can enter 364 for payments made every 52 weeks, 182 for payments made every 26 weeks, 91 for payments made every 13 weeks, 28 for payments made every 4 weeks, 14 for payments made every 2 weeks, and 7 for weekly payments. @Frequency 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.

@BasisDay count basis
0 , 'BOND'US (NASD) 30/360
1 , 'ACTUAL'Actual/Actual
2 , 'A360'Actual/360
3 , 'A365'Actual/365
4 , '30E/360 (ISDA)' , '30E/360' , 'ISDA' , '30E/360 ISDA' , 'EBOND'European 30/360
5 , '30/360' , '30/360 ISDA' , 'GERMAN'30/360 ISDA
6 , 'NL/ACT'No Leap Year/ACT
7 , 'NL/365'No Leap Year /365
8 , 'NL/360'No Leap Year /360
9 , 'A/364'Actual/364
10 , 'BOND NON-EOM'US (NASD) 30/360 non-end-of-month
11 , 'ACTUAL NON-EOM'Actual/Actual non-end-of-month
12 , 'A360 NON-EOM'Actual/360 non-end-of-month
13 , 'A365 NON-EOM'Actual/365 non-end-of-month
14 , '30E/360 NON-EOM' , '30E/360 ICMA NON-EOM' , 'EBOND NON-EOM'European 30/360 non-end-of-month
15 , '30/360 NON-EOM' , '30/360 ISDA NON-EOM' , 'GERMAN NON-EOM'30/360 ISDA non-end-of-month
16 , 'NL/ACT NON-EOM'No Leap Year/ACT non-end-of-month
17 , 'NL/365 NON-EOM'No Leap Year/365 non-end-of-month
18 , 'NL/360 NON-EOM'No Leap Year/360 non-end-of-month
19 , 'A/364 NON-EOM'Actual/364 non-end-of-month

Return Type

Remarks

If @Frequency is any number other than 1, 2, 4, 6 or 12, or for @Basis = 'A/364' any number other than 1, 2, 4, 6 or 12 as well as 7, 14, 28, 91, 182 or 364 BONDINT returns an error.

Examples

select wct.BONDINT('1/15/2006', '12/15/2010', .04, 100, 2, 1);

Here is the result set.

----------------------
0.340659340659341

This is an example of a bond paying interest every 26 weeks.

SELECT wct.BONDINT(   '2014-10-01', --@Settlement
                      '2023-03-13', --@Maturity
                      0.1250,       --@Rate
                      100,          --@Par
                      182,          --@Frequency
                      9             --@Basis
                  ) as [Accrued Interest];

This produces the following result.

      Accrued Interest
----------------------
     0.309065934065934

See Also

ACCRINT - Calculate the accrued interest for a security that pays periodic interest.

ACCRINTM - Calculate the accrued interest for a security that pays interest at maturity.

AIFACTOR - Calculate the Accrued Interest Factor

AIFACTOR_IAM - Calculate the Accrued Interest Factor for an Interest-at-Maturity security

AIFACTOR_OFC - Calculate the Accrued Interest Factor for a bond during its odd first coupon period

AIFACTOR_OLC - Calculate the Accrued Interest Factor for a bond during its odd last coupon period

AIFACTOR_RPI - Calculate the Accrued Interest Factor for a Regular Periodic Interest period

COMPINT - Calculate the accrued interest for a security where interest is compounded periodically and paid at maturity

ODDCOMPINT - Calculate the accrued interest in first coupon period for a bond with an odd first coupon and a par value of 100

ODDFINT - Accrued interest for a bond with an odd first coupon

ODDLINT - Accrued interest for a bond with an odd last coupon

PRICE - Price of a bond paying regular periodic interest

RPI - Calculate the price and/or yield of a bond with regular periodic coupons

RPICONVEXITY - Convexity of a bond paying regular periodic interest

RPIDURATION - Duration of a bond paying regular periodic interest

RPIFACTORS - Factors for the calculation of the price of a bond that pays regular periodic interest

RPIMDURATION - Modified duration of a bond paying regular period interest

YIELD - Yield of a bond paying regular periodic coupon