Calculates the total number of days in the coupon period that contains the settlement date for a fixed-income security.
Syntax
COUPDAYS(Settlement; Maturity; Frequency; Basis)
Arguments
| Argument | Required | Description | Valid Values |
| Settlement | Yes | Date of ownership transfer | Valid Excel date |
| Maturity | Yes | Bond repayment date | Must be after Settlement |
| Frequency | Yes | Interest payments per year | 1 (annual), 2 (semi-annual), 4 (quarterly) |
| Basis | No | Day-count convention | 0-4 (default=0) |
Day-Count Basis Methods (Table 1)
| Basis | Method | Description |
| 0 | 30/360 (NASD) | 30-day months, 360-day year |
| 1 | Actual/Actual | Exact calendar days |
| 2 | Actual/360 | Actual days/360-day year |
| 3 | Actual/365 | Actual days/365-day year |
| 4 | 30/360 (European) | European 30-day convention |
Requirements & Error Handling
- Dates must be valid (time components are ignored)
- Frequency and Basis are converted to integers
- Returns #VALUE! for:
- Invalid date formats
- Text instead of dates
- Returns #NUM! for:
- Invalid Frequency (not 1, 2, or 4)
- Invalid Basis (not 0-4)
- Settlement date later than Maturity date
Background
- Determines the length of the current coupon period
- Essential for calculating:
- Accrued interest
- Day-count fractions for yield calculations
- Different day-count methods produce slightly different results
- Used in conjunction with other coupon functions (COUPDAYBS, COUPDAYSNC)
Example Applications

Key Notes
- For US corporate bonds: Typically Basis=0 (30/360)
- For government bonds: Typically Basis=1 (Actual/Actual)
- Always verify Settlement date precedes Maturity date
- Combine with COUPNUM() and COUPPCD() for complete coupon analysis
- Critical for accurate dirty price calculations in bond trading