COUPDAYS Function in ONLYOFFICE Spreadsheet Editor: Syntax and Examples
Find the coupon-period denominator, including actual/actual lengths and fixed 360 or 365 day conventions.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer
COUPDAYS returns the day-count length assigned to the coupon period containing settlement. For the example below, =COUPDAYS(DATE(2026,4,15),DATE(2028,12,15),2,1) is expected to return 182. Changing basis to 3 gives 182.5, illustrating that this result need not be an integer count of calendar days.
Syntax and argument rules
=COUPDAYS(settlement, maturity, frequency, [basis])
| Argument | Meaning and permitted inputs |
|---|---|
settlement |
Settlement date; use a numeric date created with DATE or a cell containing one |
maturity |
Maturity date, strictly later than settlement |
frequency |
Payments per year: 1 annual, 2 semiannual or 4 quarterly |
basis |
Optional day-count code, default 0 in the inspected implementation |
The official COUPDAYS reference lists basis 0 as US (NASD) 30/360, 1 as actual/actual, 2 as actual/360, 3 as actual/365 and 4 as European 30/360. Brackets indicate an optional argument; do not type them. Use integer frequency and basis values deliberately rather than relying on input conversion.
These functions infer a regular schedule from maturity and frequency. They do not take an issue date, first coupon date, holiday calendar or irregular-period flag. A contractual payment schedule with odd first/last coupons or business-day adjustments needs separate treatment.
Reproducible worksheet setup
Enter the following in a new worksheet. DATE avoids ambiguity between month/day and day/month date text.
| Cell | Input | Meaning |
|---|---|---|
| A2 | =DATE(2026,4,15) |
Settlement, April 15, 2026 |
| B2 | =DATE(2028,12,15) |
Maturity, December 15, 2028 |
| C2 | 2 |
Semiannual coupons |
| D2 | 1 |
Actual/actual basis |
Put =COUPDAYS(A2,B2,C2,D2) in E2. The expected regular schedule around settlement runs from December 15, 2025 to June 15, 2026. All examples in this guide are documentation/source-derived expectations with independent calendar arithmetic; none was tested in the application or its calculation engine.
Worked results: calendar length versus convention
| Formula | Expected result | Interpretation |
|---|---|---|
=COUPDAYS(A2,B2,2,0) |
180 | 360/2 |
=COUPDAYS(A2,B2,2,1) |
182 | Actual December 15 to June 15 interval |
=COUPDAYS(A2,B2,2,2) |
180 | 360/2, even though the basis name begins “actual” |
=COUPDAYS(A2,B2,2,3) |
182.5 | 365/2 |
=COUPDAYS(A2,B2,2,4) |
180 | 360/2 |
=COUPDAYS(A2,B2,2) |
180 | Default basis 0 |
The source helper calculates the adjacent coupon-date difference only for basis 1. Other bases use the year-length convention divided by frequency. Thus basis 2 does not mean that this particular function returns the actual period’s 182 days.
With frequency 4, =COUPDAYS(A2,B2,4,1) is expected to return 92, the March 15–June 15 period; basis 0 gives 90, and basis 3 gives 91.25. For settlement April 15, 2024 and maturity December 15, 2025, semiannual basis 1 gives 183, because the December-to-June interval includes leap day.
Practical extension
Do not assume COUPDAYBS + COUPDAYSNC always equals COUPDAYS. In this example, basis 2 gives 121 elapsed days and 61 remaining days, totaling 182, but COUPDAYS returns 180. Under basis 3 the same sum is 182 while COUPDAYS is 182.5. Basis 1 gives the consistent actual-period identity 121+61=182; the two 30/360 bases give 120+60=180 for these uncomplicated dates.
When building an accrual model, retain separate labels for “elapsed numerator,” “remaining numerator” and “period denominator.” Rounding 182.5 to 183 merely to make it look like a calendar count changes the convention. Choose display precision without changing the stored result, and select the basis required by the intended model.
Errors, date inputs and schedule boundaries
The 10.0.0.169 coupon wrappers floor numeric date serials, frequency and basis before validation. Thus a time fraction is discarded. This does not mean malformed text or fractional settings are recommended inputs.
- Settlement equal to or later than maturity returns
#NUM!in the inspected source. For example, with A2 and B2 from the setup,=COUPDAYS(B2,B2,2,1)follows that guard. - An unsupported frequency such as 3 or basis such as 5 returns
#NUM!after integer conversion. - Boolean scalar arguments and multi-cell ranges are rejected with
#VALUE!in these wrappers. Use individual input cells. - An empty required scalar input is handled as
#N/A; omitted basis defaults to 0. Do not assume a blank referenced basis cell has the same treatment as omitting the argument. - Dates before the supported serial range and locale-dependent date-text coercion require separate checking. The examples use modern DATE values rather than historical serial edge cases.
Month-end and leap-day schedules deserve special attention. The date helper preserves month end when adding months from a month-end date, while year changes use a UTC year setter. A February 29 maturity and an arbitrary month-end sequence should therefore be checked against the contract rather than inferred from a fixed number of days. The 15th-of-month examples avoid those edge cases. No holiday or weekend adjustment is made by the inspected coupon helpers.
Availability and compatibility
Checked October 18, 2026 against the current official help and SDKJS source tagged v10.0.0.169. Desktop Editors 10.0 was released October 13, 2026. The sources do not establish this function’s first introduction version, and do not mark it retired or deprecated.
The source tag matches the installed version/build designation; it does not establish native execution or byte-for-byte identity of the entire application. Older versions, mobile clients, server deployments and imported-workbook behavior were not tested. Formula examples use English names and comma separators; adapt separators to your editor’s settings. Date serial examples, where shown, assume the 1900 date system; a different workbook date system changes the raw serial, not the intended calendar label.