COUPPCD in WPS Spreadsheet: Locate the Previous Coupon Date
Find the regular coupon date before settlement and keep numeric dates usable for accrual checks.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: COUPPCD returns a date serial representing the previous coupon date before settlement. With settlement April 20, 2026, maturity November 15, 2027, semiannual coupons and basis 1, the independent regular-schedule expectation is November 15, 2025 when the result is formatted as a date.
Availability and evidence scope
The official WPS COUPPCD lesson documents this function for WPS Office for Windows Personal. The source was checked on October 19, 2026. It does not establish the first release, the last supported release, or an exact installed build. Availability in Mac, Linux, web, mobile and other editions remains unverified.
Examples below distinguish documented behavior from independently calculated controls. No results were captured from a new WPS execution for this guide. No native screenshot or cross-client compatibility test is claimed.
Syntax and arguments
=COUPPCD(settlement,maturity,frequency,[basis])
| Argument | Required? | Meaning |
|---|---|---|
settlement |
Yes | Date the buyer acquires the security; use a real spreadsheet date. |
maturity |
Yes | Security’s maturity date, later than settlement. |
frequency |
Yes | Coupon payments per year: 1 annual, 2 semiannual, 4 quarterly. |
basis |
No | Day-count convention; omitted means 0, US (NASD) 30/360. |
The documented basis values are 0 (US/NASD 30/360), 1 (actual/actual), 2 (actual/360), 3 (actual/365), and 4 (European 30/360). Set this explicitly when comparing workbooks. The common examples use basis 1 so the calendar-day arithmetic is transparent. A basis is a financial convention, not a date-display format.
Use DATE rather than ambiguous date text. The official lessons say arguments are truncated to integers; this guide deliberately uses whole-day dates and integer frequency/basis values. Fractional-input validation order and settlement exactly on a coupon date still need target-build testing.
Reproducible input sheet
Enter labels in A1:A4 and these values in B1:B4:
| Cell | Label | Enter |
|---|---|---|
| B1 | Settlement | =DATE(2026,4,20) |
| B2 | Maturity | =DATE(2027,11,15) |
| B3 | Payments per year | 2 |
| B4 | Basis | 1 |
For the independent model, assume a regular semiannual schedule anchored on maturity, with coupons every May 15 and November 15. Around settlement, the previous coupon is November 15, 2025 and the next is May 15, 2026. These deliberately non-month-end dates avoid assuming any special end-of-month roll convention.
Example: calculate and explain the result
=COUPPCD(B1,B2,B3,B4)
Format the formula cell as a date. The expected date is November 15, 2025. The result identifies the start of this regular coupon period; it does not return the elapsed day count.
These expectations are calculated from the stated calendar model, not from native WPS execution. The model anchors regular coupons on maturity and steps backward by 12/frequency months. It counts actual date differences without adding an extra day for both endpoints.
The official lesson supplies another control: settlement January 25, 2011, maturity November 15, 2011, frequency 2 and basis 1 produce November 15, 2010. That is a vendor-published date result, not a new execution here.
For a final display-only label, TEXT can format the result as shown in the WPS lesson:
=TEXT(COUPPCD(B1,B2,B3,B4),"yyyy/m/dd")
Keep the unwrapped formula in a separate cell if later formulas need a numeric date.
Advanced example: cross-check elapsed days
Put =COUPPCD(B1,B2,B3,B4) in B6 and keep it as a numeric date. With basis 1 and the stated non-boundary regular schedule:
=B1-B6
The independently calculated result is 156 days. A second control is =COUPDAYBS(B1,B2,B3,B4), also expected to be 156 under this model. This makes a useful paired check: one result locates the period start; the other counts elapsed convention days.
If frequency changes to 4, the modeled previous coupon becomes February 15, 2026 and ordinary subtraction gives 64 actual days. That is a different coupon period, not a change to the settlement date.
Keep this subtraction check limited to actual-day assumptions. A 30/360 financial count can differ from the number of actual calendar days between the same dates. Also avoid treating the previous coupon as the purchase date or issue date: none of those dates is interchangeable.
Errors, limits and troubleshooting
| Symptom | Documented rule or practical check |
|---|---|
#VALUE! |
The lesson identifies invalid settlement or maturity dates. Replace date text with DATE formulas before investigating the bond calculation. |
#NUM! |
Check that frequency is 1, 2 or 4, basis is within 0–4, and settlement is earlier than maturity. |
| A plausible result differs from another workbook | Compare the actual stored dates, payment frequency and explicit basis, not just the displayed labels. |
| Formula is not recognized | Confirm the function in the target installation; the lesson does not guarantee every build or client. |
A regular coupon calculation does not reconstruct an irregular first or final coupon from issue-date information: there is no issue-date argument here. Nor does the function model business-day holidays, negotiated payment-date adjustments or a changing coupon schedule through the four arguments. Reconcile the assumed schedule with the security’s terms before using the result in a financial model.
Keep basis-1 calendar checks separate from 30/360 checks. Do not treat ordinary date subtraction as a universal substitute for a financial day-count convention. Month ends, leap days, settlement exactly on a coupon date and fractional arguments are useful additional native test cases, but no result for those untested boundaries is asserted here.
Choose the right coupon result
Use this function for the previous date. COUPDAYBS supplies elapsed days from that boundary and COUPNCD identifies the next boundary. Preserve dates and counts in separate labeled columns.
References and verification
- Official WPS COUPPCD lesson (Chinese; Windows Personal documentation).
The documentation establishes the syntax and stated behavior. Original examples were checked independently under the assumptions stated alongside them; target-build execution remains a separate check. Version boundaries have not been inferred from another spreadsheet product.