COUPNUM in WPS Spreadsheet: Count Remaining Coupon Payments
Count remaining regular coupon payments through maturity and separate payment count from years remaining.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: COUPNUM returns the number of coupon payments between settlement and maturity, rounded up to a whole count. With settlement April 20, 2026, maturity November 15, 2027, semiannual coupons and basis 1, the independent regular-schedule expectation is 4 payments.
Availability and evidence scope
The official WPS COUPNUM 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
=COUPNUM(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
=COUPNUM(B1,B2,B3,B4)
The expected 4 payments comes from enumerating May 15 and November 15 in both 2026 and 2027. This is not the number of whole years until maturity and does not count the previous coupon in 2025.
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 has a separate published control: January 25, 2007 settlement, November 15, 2008 maturity, frequency 2 and basis 1 return 4. This supports the intended payment-count interpretation without establishing every boundary case.
Advanced example: estimate undiscounted coupon cash flow
Suppose this model pays 30 currency units per regular semiannual coupon. Put 30 in B6:
=COUPNUM(B1,B2,B3,B4)*B6
The model gives 4 × 30 = 120 in remaining coupon cash flow. The four assumed payment dates are May 15, 2026; November 15, 2026; May 15, 2027; and November 15, 2027. The maturity-date coupon is included in this enumeration.
If principal of 1,000 is entered in B7 and is assumed repaid at maturity, =COUPNUM(B1,B2,B3,B4)*B6+B7 gives 1,120 of undiscounted contractual cash flow under those assumptions. This is not present value, a quoted bond price or a yield calculation; neither discounting nor accrued-interest settlement is included.
A frequency sensitivity check gives 2 annual, 4 semiannual and 7 quarterly remaining payments for these dates. Those are independent schedule counts. Do not multiply them all by the same coupon amount when comparing actual instruments: the amount per payment normally depends on the contract.
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 payment count. COUPNCD returns the next date; COUPDAYS returns the length of the current period. A count of four payments does not imply four years remaining.
References and verification
- Official WPS COUPNUM 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.