LEVEL_COUPON Function (Calligra Sheets)
Price a level-coupon cash-flow model with Calligra LEVEL_COUPON. Verify five-argument order, coupon frequency, redemption discounting and zero-yield limits.
Verification status: 19 selected formulas were executed through the Calligra Sheets 25.04.2 calculation engine library. Exact outputs, mathematical references and source limitations are documented separately. Version 26.08.2 was source-checked only; no GUI-cell or import claim. How formula examples are checked
Zero-yield limitation: the tested 25.04.2 engine returns #DIV/0! when marketRate is zero. The ordinary mathematical limit is faceValue+faceValuecouponRateyears; the unchanged 26.08.2 source has no special branch.
Quick answer: =LEVEL_COUPON(1000;.05;2;5;.05) gives approximately 1000 in the tested Calligra calculation engine.
Availability and version history
- Introduced: First release not established; the name is present in Calligra 2.4.0 source.
- Supported in: Calligra Sheets 26.08.2, with no retirement established.
- Scope: Desktop Sheets with the Financial module. Examples use English semicolon-separated formulas.
- Checked: October 14, 2026. Selected formulas ran through the official 25.04.2 engine library. Source and independent mathematics were checked. This is engine evidence, with no GUI-cell or import verification; 26.08.2 was source-checked only.
What LEVEL_COUPON returns
LEVEL_COUPON returns the present value of equal coupons plus redemption of face value. Coupon payment is faceValue×couponRate/couponsPerYear; the discount rate per coupon is marketRate/couponsPerYear. It returns a value amount, not an effective interest rate. Function-specific official reference.
Syntax and arguments
=LEVEL_COUPON(faceValue;couponRate;couponsPerYear;years;marketRate)
All five arguments are required in the order shown. Coupon and market rates are decimal annual nominal rates with the stated frequency. For an ordinary schedule, use a positive integer frequency and a positive integer total number of coupon periods. Registration and implementation.
Reproducible engine examples
The engine and mathematical columns are separate. Results are rounded to twelve decimal places, or thirteen significant digits in scientific notation for very small or large values. This is a display choice, not an accuracy guarantee.
| Formula | Engine result | Independent mathematical reference |
|---|---|---|
=LEVEL_COUPON(1000;.05;2;5;.05) |
1000 |
1000 |
=LEVEL_COUPON(1000;.05;2;5;.06) |
957.348985816121 |
957.348985816121 |
=LEVEL_COUPON(1000;.05;2;5;.04) |
1044.912925031211 |
1044.912925031211 |
=LEVEL_COUPON(100;.05;1;1;.06) |
99.056603773585 |
99.056603773585 |
=LEVEL_COUPON(1000;0;2;5;.06) |
744.093914896725 |
744.093914896725 |
=LEVEL_COUPON(1000;.08;4;3;.07) |
1026.848874221065 |
1026.848874221065 |
=LEVEL_COUPON(1000;.05;2;0;.06) |
1000 |
1000 |
=LEVEL_COUPON(1000;.05;2;2.5;.06) |
977.101464064027 |
977.101464064027 |
Practical worksheet
For face value 1000, 5% annual coupon, two coupons per year, five years and 6% annual market rate, the price is approximately 957.348985816121. There are ten coupons of 25, discounted at 3% per half-year, plus 1000 redemption at the tenth period.
At a matching 5% market rate the price is 1000. At a 4% market rate it rises to approximately 1044.912925031211. These examples use complete regular periods; settlement dates, accrued interest and day-count conventions are absent.
Advanced interpretation and checks
The independent reconstruction is 25*SUM(1.03^(-k),k=1..10)+1000/1.03^10, where the summation is mathematical notation, not literal spreadsheet syntax. A worksheet can put period numbers 1–10 in A2:A11 and use =25/1.03^A2, then add the discounted redemption.
With a zero coupon rate, the result reduces to discounted redemption. The executed comparison below matches that amount to ZERO_COUPON using periodic rate 0.03 and ten periods. At zero market yield, calculate the stated undiscounted coupon total separately after validating the schedule.
The executed advanced check was:
=LEVEL_COUPON(1000;0;2;5;.06)-ZERO_COUPON(1000;.03;10)
Its engine result was 0.
Boundaries and troubleshooting
Zero frequency or zero market rate gives #DIV/0!. Fractional or negative frequency is not rejected, so a finite result alone does not establish a valid coupon schedule. Negative discount bases raised to fractional powers can produce numeric NaN without an error flag.
Numeric face-value text is parsed; nonnumeric face text becomes zero. Wrong arity gives #VALUE!. The stale implementation comment describes an interest-rate conversion, but the actual body and versioned help calculate coupon price. This function does not establish a market quotation or handle irregular first/last coupons.
| Formula | Engine result |
|---|---|
=LEVEL_COUPON(1000;.05;2;5;0) |
#DIV/0! |
=LEVEL_COUPON(1000;.05;0;5;.06) |
#DIV/0! |
=LEVEL_COUPON(1000;.05;1.5;5;.06) |
957.526787123208 |
=LEVEL_COUPON(1000;.05;-2;5;.06) |
956.237354482488 |
=LEVEL_COUPON(1000;.05;2;5;-.1) |
2005.27385517264 |
=LEVEL_COUPON(1000;.05;1;.5;-2) |
NaN |
=LEVEL_COUPON("1000";.05;2;5;.06) |
957.348985816121 |
=LEVEL_COUPON("abc";.05;2;5;.06) |
0 |
=LEVEL_COUPON(1000;.05;2;5) |
#VALUE! |
=LEVEL_COUPON(1000;.05;2;5;.06;0) |
#VALUE! |
Official evidence and precision scope
- Function-specific implementation
- Versioned function help
- Arithmetic helper
- Power helper
- Conversion helper
The financial module and value-calculation helpers are byte-identical between the inspected 25.04.2 and 26.08.2 sources. That comparison supports the source discussion but does not establish later-version execution, GUI-cell behavior or other locales.
Related guides
PV-ANNUITY, POWER, SUM.