Purpose
Return value
Syntax
=COUPDAYSNC(settlement,maturity,frequency,[basis])
- settlement - Settlement date of the security.
- maturity - Maturity date of the security.
- frequency - Number of coupon payments per year (annual = 1, semi-annual = 2, quarterly = 4).
- basis - [optional] Day count basis (see below, default =0).
How to use
Historically, bonds were printed on paper with detachable coupons. The coupons were presented to the bond issuer by the bondholder to collect periodic interest payments. The Excel COUPDAYSNC function returns the number of days from the settlement date to the next coupon date.
The settlement date is the date the investor takes possession of a security. The maturity date is the date when the investment ends and the principle plus accrued interest is returned to the investor. The frequency is the number of interest payments per year. Basis specifies the method used to count days (see below). In the example shown, the formula in F6 is:
=COUPDAYSNC(C6,C7,C10,C11)
COUPDAYSNC returns an integer, so use a number format and not a date format to display properly.
Entering dates
In Excel, dates are serial numbers. Generally, the best way to enter valid dates is to use cell references, as shown in the example. To enter valid dates directly, you can use the DATE function. Below is the formula in F6 reworked with hardcoded values and the DATE function:
=COUPDAYSNC(DATE(2019,2,15),DATE(2024,1,1),2,0)
With these inputs, COUPDAYSNC returns the same result as above.
Basis
The basis argument controls how days are counted. The COUPDAYSNC function allows 5 options (0-4) and defaults to zero, which specifies US 30/360 basis. This article on wikipedia provides a detailed explanation of available conventions.
Basis | Day count |
---|---|
0 or omitted | US (NASD) 30/360 |
1 | Actual/actual |
2 | Actual/360 |
3 | Actual/365 |
4 | European 30/360 |
Notes
- In Excel, dates are serial numbers.
- All arguments are truncated to integers, so for example, time is ignored.
- If settlement or maturity dates are not valid, COUPDAYSNC returns #VALUE!
- If basis is out-of-range , COUPDAYSNC returns #NUM!
- If maturity date is not later than settlement date, COUPDAYSNC returns #NUM!