PRICE Function (OpenOffice Calc)
Calculate OpenOffice PRICE for regular coupon bonds. Reconcile discounted coupons, redemption and accrued interest, with verified frequency and day-basis differences.
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: =PRICE(DATE(2024;1;1);DATE(2025;1;1);.05;.06;100;2;0) returned 99.043265152229 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 PRICE returns
PRICE returns a quoted price per 100 face value for a regular coupon security using the implementation’s coupon schedule and day-count fractions. It discounts coupons and redemption, then subtracts accrued coupon interest. It is not a maturity-only interest-price calculation. Release implementation.
Syntax and arguments
PRICE(Settlement;Maturity;Coupon;Yield;Redemption;Frequency[;Basis])
- Settlement, Maturity: chronological regular-schedule dates.
- Coupon, Yield: nonnegative annual decimal rates.
- Redemption: positive redemption amount per 100 face value.
- Frequency: 1, 2 or 4. Basis: optional 0, or 1–4 for the other supported conventions.
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.
| Formula | Native 4.1.16 result | Independent reference |
|---|---|---|
=PRICE(DATE(2024;1;1);DATE(2025;1;1);.05;.06;100;2;0) |
99.043265152229 |
99.043265152229 |
=PRICE(DATE(2024;1;1);DATE(2025;1;1);.05;.06;100;2;1) |
99.043265152229 |
99.043265152229 |
=PRICE(DATE(2024;1;1);DATE(2025;1;1);.05;.06;100;2;2) |
99.010741601306 |
99.010741601306 |
=PRICE(DATE(2024;1;1);DATE(2025;1;1);.05;.06;100;2;3) |
99.05128629972 |
99.05128629972 |
=PRICE(DATE(2024;1;1);DATE(2025;1;1);.05;.06;100;2;4) |
99.043265152229 |
99.043265152229 |
=PRICE(DATE(2024;1;1);DATE(2025;1;1);.05;.06;100;1;0) |
99.056603773585 |
99.056603773585 |
=PRICE(DATE(2024;1;1);DATE(2025;1;1);.05;.06;100;4;0) |
99.036403838112 |
99.036403838112 |
=PRICE(DATE(2024;1;1);DATE(2025;1;1);0;.06;100;2;0) |
94.259590913375 |
94.259590913375 |
Practical worksheet
For January 1, 2024 settlement, January 1, 2025 maturity, coupon 5%, yield 6%, redemption 100, frequency 2 and basis 0, PRICE is approximately 99.043265152229. The two payments are 2.5 and 102.5, discounted by 1.03 and 1.03².
Settlement is on a coupon date in this example, so accrued coupon interest is zero. With coupon zero, the basis-0 result is 100/1.03²≈94.259590913375. Annual payment frequency gives approximately 99.056603773585 for the 5% coupon example.
Advanced interpretation and checks
The general source calculation uses the remaining fraction COUPDAYSNC/COUPDAYS for the first discount exponent, increases exponents by one per coupon, discounts redemption at the last exponent, and subtracts 100*Coupon/Frequency*COUPDAYBS/COUPDAYS.
Those helpers have distinct basis behavior. In the native actual/360 example, the calendar coupon period contains 182 days but its denominator is 180, affecting the first exponent even at a coupon-date settlement. PRICE is approximately 99.010741601306, compared with 99.043265152229 for basis 0. Do not silently replace the helpers with a universal half-year fraction.
Boundaries and troubleshooting
The source checks nonnegative coupon/yield, positive redemption, a valid frequency and settlement before maturity. Native examples use regular ordinary schedules, all five bases and a zero coupon; irregular first/last coupons, negative yields and invalid domains were not executed.
A market quote may use conventions that differ from the implementation’s day helpers. Verify settlement, coupon schedule, clean-versus-accrued presentation and redemption scale before comparing results. DURATION_ADD uses a different fractional-timing construction, so its output should not automatically be treated as the exact derivative of every PRICE basis case.
Related functions
Official evidence and checking scope
- Function-specific release implementation
- getPrice_ pricing helper
- GetCoupdays pricing helper
- GetCoupdaysnc pricing helper
- GetCoupdaybs pricing helper
- GetCoupnum pricing helper
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.