COUPNCD Function (Gnumeric)
For settlement May 15, 2026, maturity December 31, 2028 and two payments per year, COUPNCD identifies June 30, 2026, the next scheduled coupon date strictly after settlement.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: For settlement May 15, 2026, maturity December 31, 2028 and two payments per year, COUPNCD identifies June 30, 2026, the next scheduled coupon date strictly after settlement.
Availability and evidence
- Release history: NEWS explicitly implements COUPNUM and COUPNCD in Gnumeric 0.57. This is release-history evidence, not a native test of that old version.
- Source support: Registered in the Gnumeric 1.12.62 financial plugin. No retirement is established. The last functioning native application version is unverified.
- Evidence dates: Gnumeric source retained October 13–14, 2026 was reviewed October 15. The official GOffice 0.10.61 archive was retrieved October 15 and its coupon helpers reviewed that day. Gregorian calendar and exact-rational checks are independent reference calculations; no native Gnumeric, compiled GOffice, headless application or GUI execution occurred.
Syntax and convention inputs
=COUPNCD(settlement,maturity,frequency[,basis[,eom]])
Settlement and maturity are dates; maturity must be strictly later. Use DATE formulas instead of ambiguous text dates. Frequency is 1 for annual, 2 for semiannual or 4 for quarterly payments. Basis defaults to 0, and the Gnumeric-specific end-of-month flag eom defaults to TRUE.
The documented bases are 0 US 30/360, 1 actual/actual, 2 actual/360, 3 actual/365 and 4 European 30/360. The inspected implementation also accepts 5 and maps it to the GOffice 30E+/360 rule; that source extension should not be mistaken for a universally portable option. Use explicit documented integer conventions in ordinary work.
The schedule is anchored backward from maturity in steps of 12/frequency months. If eom is TRUE and maturity is its month’s final day, intermediate coupon dates are moved to their month ends. Otherwise the maturity day is retained where possible and clipped for a shorter month. This is a scheduled-date calculation, without holiday or business-day adjustment.
Complete reproducible inputs
Create CouponControls and enter:
| Cell | Meaning | Entry |
|---|---|---|
| B2 | Settlement | =DATE(2026,5,15) |
| B3 | Maturity | =DATE(2028,12,31) |
| B4 | Frequency | 2 |
| B5 | Basis | 0 |
| B6 | End of month | Boolean TRUE |
In D2 enter =COUPNCD($B$2,$B$3,$B$4,$B$5,$B$6). The reference date is 2026-06-30. The callback returns a date serial and attaches a default date format; the exact displayed date style depends on the workbook locale.
The surrounding period runs from December 31, 2025 through June 30, 2026. The previous boundary is at or before settlement; the next is strictly after it. Keep frequency, maturity and eom consistent when comparing members of the coupon-function family.
Trace the next scheduled date
Starting at December 31, 2028 and moving backward in six-month steps produces December 31 and June 30 dates. The two boundaries surrounding May 15, 2026 are December 31, 2025 and June 30, 2026. COUPNCD selects the latter.
The result is a date value, not the number of days remaining and not a text string containing a month name. Compare it with =DATE(2026,6,30) rather than with a guessed literal serial number from another workbook’s date system.
Reference controls
| Controlled inputs | Independent reference result |
|---|---|
| =COUPNCD($B$2,$B$3,$B$4,$B$5,$B$6) | 2026-06-30 |
| Original setup, basis 0 | 2026-06-30 |
| Original setup, basis 1 | 2026-06-30 |
| Original setup, basis 2 | 2026-06-30 |
| Original setup, basis 3 | 2026-06-30 |
| Original setup, basis 4 | 2026-06-30 |
| Original setup, basis 5 | 2026-06-30 |
| Original setup, annual frequency | 2026-12-31 |
| Original setup, quarterly frequency | 2026-06-30 |
| Settlement June 15, 2026 | 2026-06-30 |
| Settlement June 30, 2026 | 2026-12-31 |
| 2002-11-29 to 2004-02-29, frequency4, basis0, eom TRUE | 2002-11-30 |
| Same historical dates, eom FALSE | 2003-02-28 |
| Frequency 3 rejected | #NUM! |
| Basis 6 rejected | #NUM! |
| Settlement equals maturity | #NUM! |
| Failed date conversion | #VALUE! |
ISO dates in the table identify the intended calendar dates independently of display formatting. They are source-model expectations, not screenshots or a certification of a particular native locale.
Advanced: a next date is strictly after settlement
Move B2 to June 15, 2026 in a copy. COUPNCD remains June 30. Move it to June 29 and the same next date remains one day away.
At settlement exactly June 30, the next result becomes December 31, 2026. A coupon occurring on settlement is not selected as the next coupon. This matters when a workbook transitions through a payment boundary.
For the original settlement, subtracting the two DATE values gives 46 actual days to June 30. That differs from the basis-zero COUPDAYSNC count 45. A date difference and a convention-day count are separate calculations.
Advanced: change frequency without changing maturity
With frequency 1, the next coupon for May 15, 2026 is December 31, 2026. With frequency 4 it is June 30, 2026, but the previous coupon is now March 31 rather than December 31.
The same next date under two frequencies does not mean the entire schedule is the same. Inspect both boundaries and the total number of remaining coupons when validating a schedule-based model.
Basis is still validated by the shared wrapper, but the coupon-date helper does not use it to construct dates. Changing basis from 0 to any accepted basis therefore leaves the next date unchanged for fixed dates, frequency and eom. An invalid basis can still produce an error before scheduling.
Advanced: separate end-of-month convention from clipping
For settlement November 29, 2002, maturity February 29, 2004 and frequency 4, eom TRUE yields next coupon November 30, 2002. With eom FALSE the next coupon is February 28, 2003.
The FALSE schedule retains maturity day 29 where possible; February 2003 is shorter, so that boundary clips to day 28. TRUE instead uses month ends because the maturity date is itself a month end. These are different rules even when they occasionally produce the same date.
If maturity is not a month-end date, toggling eom does not activate the special month-end adjustment. For example, an annual schedule maturing December 15 retains December 15 boundaries under either flag.
Advanced: preserve the schedule assumptions
There is no issue-date, first-coupon or holiday-calendar argument. The result is the regular maturity-anchored schedule implied by the supplied frequency, not proof of a security’s actual first or last irregular payment.
Keep those contractual details separately if they matter. Copying the next date into another workbook can also change its displayed representation if the date system or format is different; no file-transfer test was performed here.
Errors and verification limits
The shared wrapper returns #VALUE! when its date conversion fails, and #NUM! for an invalid frequency/basis or settlement greater than or equal to maturity. Explicit frequency 3 and basis 6 are rejected. Numeric frequency/basis processing includes truncation and bounds checks; use the documented integer settings rather than relying on fractional or locale-sensitive coercion.
The examples use modern DATE values, complete regular schedules and separately controlled changes. Date-system conversion, malformed text, extreme dates, native final-digit behavior and file transfers are not certified. Source review and independent calendar arithmetic do not establish actual GUI or native-library execution.
Sources and related guides
- Function help and worksheet callback
- Shared coupon validation and defaults, frequency/basis conversion, and coupon count/date wrappers
- Official GOffice 0.10.61 source archive: goffice/utils/datetime.c lines 281–417 for day-count rules and 422–547 for coupon scheduling and denominators; datetime.h lines 78–85 for basis codes.
- Documented basis descriptions
- Gnumeric official function catalogue