Contact

COUPPCD Function (Gnumeric)

Financial Intermediate Gnumeric Gnumeric 1.0.2

For settlement May 15, 2026, maturity December 31, 2028 and two payments per year, COUPPCD identifies December 31, 2025. On a coupon date, the source returns that settlement date itself as the period start.

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, COUPPCD identifies December 31, 2025. On a coupon date, the source returns that settlement date itself as the period start.

Availability and evidence

  • Release history: NEWS explicitly implements COUPPCD in Gnumeric 1.0.2. 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

=COUPPCD(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 =COUPPCD($B$2,$B$3,$B$4,$B$5,$B$6). The reference date is 2025-12-31. The callback returns a date serial and attaches a default date format; choose a clear date display when inspecting it.

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 previous coupon boundary

The schedule is constructed backward from maturity, not forward from settlement. For the original semiannual inputs, the coupon interval begins December 31, 2025 and ends June 30, 2026. COUPPCD returns its beginning.

Despite the help’s shorthand “before settlement,” the source loop accepts a coupon boundary equal to settlement. The operative condition is previous coupon at or before settlement. This exact-boundary behavior is essential when using the date as the start of an elapsed-period calculation.

Reference controls

Controlled inputs Independent reference result
=COUPPCD($B$2,$B$3,$B$4,$B$5,$B$6) 2025-12-31
Original setup, basis 0 2025-12-31
Original setup, basis 1 2025-12-31
Original setup, basis 2 2025-12-31
Original setup, basis 3 2025-12-31
Original setup, basis 4 2025-12-31
Original setup, basis 5 2025-12-31
Original setup, annual frequency 2025-12-31
Original setup, quarterly frequency 2026-03-31
Settlement June 15, 2026 2025-12-31
Settlement June 30, 2026 2026-06-30
2002-11-29 to 2004-02-29, frequency4, basis0, eom TRUE 2002-08-31
Same historical dates, eom FALSE 2002-11-29
Frequency 3 rejected #NUM!
Basis 6 rejected #NUM!
Settlement equals maturity #NUM!
Failed date conversion #VALUE!

Dates are shown in ISO form to identify the calendar day, without asserting a native display style. Compare a date result to a DATE formula in the same workbook rather than to a copied raw serial number.

Advanced: pair the boundary with elapsed days

For the original fixture, actual calendar subtraction from December 31, 2025 to May 15, 2026 gives 135. COUPDAYBS under basis 0 also gives 135 here, but other intervals can differ because 30/360 is not ordinary date subtraction.

Move settlement to June 15. COUPPCD stays December 31, 2025. The actual elapsed count is now 166, whereas basis-zero COUPDAYBS is 165. The unchanged previous date does not imply an unchanged accrued fraction.

At settlement June 30, COUPPCD becomes June 30 itself and COUPDAYBS becomes zero. The next coupon advances to December 31. The three functions describe the same newly started period when all their arguments agree.

Advanced: inspect frequency and date conventions separately

With frequency 1, the original previous boundary remains December 31, 2025. With frequency 4 it becomes March 31, 2026. The quarterly period begins later, even though its next coupon June 30 matches the semiannual next date.

The date helper does not consult basis when constructing coupon boundaries, though the wrapper still rejects invalid basis values. Accepted basis changes do not change the previous date if settlement, maturity, frequency and eom stay fixed.

This distinguishes date scheduling from the later conversion of a date interval into convention days. A formula returning a previous date cannot itself tell you which numerator or denominator another financial calculation uses.

Advanced: reproduce the help’s end-of-month distinction

Use settlement November 29, 2002, maturity February 29, 2004 and quarterly frequency. With eom TRUE, the previous coupon is August 31, 2002 because the following month-end coupon November 30 has not yet occurred.

With eom FALSE, the previous coupon is November 29, 2002, equal to settlement. The next boundary is February 28, 2003 after clipping the maturity day to a shorter month. This explains the companion COUPDAYBS change from 89 to zero under basis 0.

These controls demonstrate a change of interval, not just a date display difference. Record the fifth Gnumeric argument whenever reproducing an end-of-month example.

Advanced: do not infer an issuance history

A regular backward schedule can produce a previous coupon date earlier than an actual instrument’s issue date. For example, the original fixture’s December 31, 2025 boundary still follows from the supplied arguments even if an unrelated record says the instrument was issued in January 2026.

COUPPCD has no issue-date argument and cannot resolve an irregular first period from that missing information. Use the returned boundary as part of its stated regular schedule, not as evidence that a real payment occurred on that date.

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.

COUPDAYBS, COUPDAYS, COUPDAYSNC.