Contact

COUPPCD Function (OpenOffice Calc)

Financial Intermediate OpenOffice Calc

Find the previous coupon date with OpenOffice COUPPCD. Check inclusive settlement dates, leap-year month ends and reproducible serial-to-date interpretation.

Verification status: Eight ordinary reference formulas were recalculated in Apache OpenOffice 4.1.16 on Linux x86-64, Build 9816, through generated native ODF and GUI hard recalculation. Saved identities, inputs and results were checked. How formula examples are checked

Quick answer: =COUPPCD(DATE(2024;3;15);DATE(2025;12;31);2;0) returned 45291 in the tested Apache OpenOffice 4.1.16 build.

Availability and version history

  • Introduced: First release not established; documented by OpenOffice.org 3.3.
  • Supported in: Apache OpenOffice 4.1.16; this is a verified release, not a final supported version.
  • Scope: Desktop Calc, English function names and semicolon-separated formulas.
  • Checked: October 14, 2026. Eight ordinary reference formulas were recalculated from generated ODF in 4.1.16 on Linux x86-64, Build 9816. Source and independent arithmetic were checked.

What COUPPCD returns

COUPPCD returns the coupon date at or before settlement on a regular schedule anchored to maturity. Despite “previous” in the name, it can equal settlement. The result is a date serial, not elapsed days. Release implementation.

Syntax and arguments

COUPPCD(Settlement;Maturity;Frequency[;Basis])
  • Settlement: date at which the regular coupon schedule is evaluated.
  • Maturity: later final coupon date; the schedule is anchored to this date.
  • Frequency: 1, 2 or 4 payments per year.
  • Basis: optional, defaults to 0: US 30/360. Other values are 1 actual/actual, 2 actual/360, 3 actual/365 and 4 European 30/360. The functions implement the release-specific rules discussed below.

Eight reproducible examples

The native column contains saved 4.1.16 results; independent references use high-precision arithmetic and the stated source rules. Values are shown to twelve decimal places where needed. Enter DATE expressions directly rather than locale-dependent date text.

Date serials below use the verified December 30, 1899 origin. Calendar interpretations are given in the practical discussion; applying a date format changes presentation, not the stored result.

Formula Native 4.1.16 result Independent reference
=COUPPCD(DATE(2024;3;15);DATE(2025;12;31);2;0) 45291 45291
=COUPPCD(DATE(2024;3;15);DATE(2025;12;31);2;1) 45291 45291
=COUPPCD(DATE(2024;3;15);DATE(2025;12;31);2;2) 45291 45291
=COUPPCD(DATE(2024;3;15);DATE(2025;12;31);2;3) 45291 45291
=COUPPCD(DATE(2024;3;15);DATE(2025;12;31);2;4) 45291 45291
=COUPPCD(DATE(2024;6;30);DATE(2025;12;31);2;1) 45473 45473
=COUPPCD(DATE(2024;3;15);DATE(2025;2;28);1;0) 45351 45351
=COUPPCD(DATE(2024;1;15);DATE(2025;12;31);4;1) 45291 45291

Practical worksheet

With settlement March 15, 2024, maturity December 31, 2025 and semiannual coupons, the previous coupon is December 31, 2023, serial 45291 in the tested date system. All five basis examples return that same date for these inputs.

When settlement is exactly June 30, 2024, COUPPCD returns June 30, 2024, serial 45473. The corresponding elapsed count is zero. Do not subtract another full coupon period merely because the function name says “previous.”

Advanced interpretation and checks

For an annual schedule anchored to February 28, 2025, the previous coupon before March 15, 2024 is February 29, 2024, serial 45351. The maturity date is the last day of its month, so the schedule preserves month-end behavior into a leap year.

For quarterly payments ending December 31, 2025, January 15, 2024 has previous coupon December 31, 2023. Whole-month stepping preserves the schedule; a fixed 90-day or 182-day subtraction is not an equivalent general algorithm.

Boundaries and troubleshooting

The previous-date helper steps backward until the candidate is no later than settlement. The next-date helper instead advances until strictly later. Together they bracket settlement, with the previous endpoint included.

Settlement must be earlier than maturity, frequency must be 1, 2 or 4, and basis must be 0–4. Native checks use ordinary valid dates and the December 30, 1899 origin. Display formatting, other origins, invalid inputs and irregular coupon schedules were not executed. Format the serial as a date for a worksheet report, and use COUPDAYBS when the desired output is an elapsed count.

Official evidence and checking scope

The generated ODF produced the informational load warning “Not all attributes could be read.” The sheet was hard-recalculated and saved separately. All eight ordinary function identities, inputs and results were reconciled; a stale SUM cache changed from 999999 to 3 and an uncached SUM returned 7. This establishes the stated examples, not every workbook style or invalid input. Other explanatory identities are independent calculations. The authoring-tool XLSX was not executed in OpenOffice, and its preview values are not the native results reported here.