ODDLPRICE Function (LibreOffice Calc)
Use LibreOffice Calc ODDLPRICE for an irregular final coupon period, with clean-price examples, accrued interest and a source-based frequency comparison.
Verification status: Eight ordinary ODDLPRICE formulas were recalculated through XLSX import and separate ODS export in LibreOfficeDev 26.8.0.0.alpha0, build 2c87e51eeaa2b413ff4ae097b2705eea1995d8e5, using a forced-recalculation profile. Saved identities, numeric results and both controls were checked. This is headless development-build evidence; no stable-release, 26.8.1.1 or GUI execution is claimed. How formula examples are checked
Quick answer: =ODDLPRICE(DATE(2025;10;1);DATE(2026;1;15);DATE(2025;7;1);.05;.06;100;2;0) returned 99.694735692442 in the scoped LibreOffice development-build check below.
Availability and version history
- Introduced: First release not established; documented by LibreOffice 3.3.
- Supported in: LibreOffice 26.8 Help and 26.8.1.1 source. No retirement is established.
- Scope: English desktop Calc formulas with semicolon separators; execution below used a development build.
- Checked: October 14, 2026. Eight ordinary formulas were recalculated headlessly in LibreOfficeDev 26.8.0.0.alpha0, build 2c87e51eeaa2b413ff4ae097b2705eea1995d8e5. No stable-release or GUI execution is claimed.
What ODDLPRICE calculates
ODDLPRICE calculates a quoted price per 100 units of face value when the final coupon interval is irregular. Supply the last coupon date before the final payment, not the issue date or the next regular coupon date. The calculation discounts the final redemption-plus-interest amount and subtracts accrued interest to obtain the quoted clean price. Function-specific Help.
Syntax and arguments
ODDLPRICE(Settlement; Maturity; LastInterest; Rate; Yield; Redemption; Frequency [; Basis])
- Settlement / Maturity / LastInterest: Spreadsheet dates. The examples use
LastInterest < Settlement < Maturity. - Rate / Yield: Annual coupon rate and annual yield, entered as decimals.
- Redemption: Redemption amount per 100 face value;
100represents redemption at par. - Frequency:
1,2or4payments per year. - Basis: Optional day-count convention, default
0.
| Basis | Day-count convention |
|---|---|
| 0 or omitted | US 30/360 (NASD) |
| 1 | Actual/actual |
| 2 | Actual/360 |
| 3 | Actual/365 |
| 4 | European 30/360 |
Eight reproducible examples
All eight formulas were recalculated in the exact development build above. The independent column uses high-precision arithmetic; the final column is separately rounded from the saved native numeric value. Values are shown to at most twelve decimal places, so a last-place display difference is possible.
| Formula | Independent reference | Saved development-build result |
|---|---|---|
=ODDLPRICE(DATE(2025;10;1);DATE(2026;1;15);DATE(2025;7;1);.05;.06;100;2;0) |
99.694735692442 |
99.694735692442 |
=ODDLPRICE(DATE(2025;10;1);DATE(2026;1;15);DATE(2025;7;1);.05;.06;100;2;1) |
99.692978935626 |
99.692978935626 |
=ODDLPRICE(DATE(2025;10;1);DATE(2026;1;15);DATE(2025;7;1);.05;.06;100;2;2) |
99.688484914656 |
99.688484914656 |
=ODDLPRICE(DATE(2025;10;1);DATE(2026;1;15);DATE(2025;7;1);.05;.06;100;2;3) |
99.692978935626 |
99.692978935626 |
=ODDLPRICE(DATE(2025;10;1);DATE(2026;1;15);DATE(2025;7;1);.05;.06;100;2;4) |
99.694735692442 |
99.694735692442 |
=ODDLPRICE(DATE(2025;10;1);DATE(2026;1;15);DATE(2025;7;1);.05;.06;100;1;0) |
99.694735692442 |
99.694735692442 |
=ODDLPRICE(DATE(2025;10;1);DATE(2026;1;15);DATE(2025;7;1);.05;.06;100;4;0) |
99.694735692442 |
99.694735692442 |
=ODDLPRICE(DATE(2025;10;1);DATE(2026;1;15);DATE(2025;7;1);.05;.06;100;2) |
99.694735692442 |
99.694735692442 |
Practical worksheet
Use A2=DATE(2025;10;1), B2=DATE(2026;1;15), C2=DATE(2025;7;1), D2=0.05, E2=0.06, F2=100 and G2=2. The worksheet formula =ODDLPRICE(A2;B2;C2;D2;E2;F2;G2;0) matches the first tested case and returns approximately 99.694735692442 per 100 face value.
For this basis-0 example, accrued interest is 100*0.05*90/360 = 1.25. Adding it to the quoted price gives approximately 100.944735692442 per 100. Keep the quoted clean price and the amount including accrued interest in separately labeled cells; adding accrued interest twice changes the economics.
Advanced interpretation and checks
Let T be the year fraction from last coupon to maturity, U from settlement to maturity and A from last coupon to settlement. The inspected helper reduces algebraically to:
CleanPrice = (Redemption + 100*Rate*T)/(1 + Yield*U) - 100*Rate*A
For the basis-0 case, T=194/360, U=104/360 and A=90/360. The formula explains both the final payment and the accrued-interest subtraction. It also explains a potentially surprising result: the helper multiplies these fractions by frequency and then divides by frequency again. Frequencies 1, 2 and 4 consequently produce the same result in the tested cases. This is the inspected algorithm, not a claim that coupon frequency is irrelevant to all bond-pricing functions.
Use the paired ODDLYIELD relationship to check price/yield consistency while retaining identical dates, basis and redemption. An independent substitution of this price recovers the original yield 0.06; that additional round trip was mathematical, not another native execution. Inspected implementation.
Boundaries and troubleshooting
Choose a consistent day-count basis and supply dates as dates. The Actual/365 result differs from US 30/360 because the actual interval contains 106 remaining days rather than the 104-day 30/360 count.
Do not substitute ODDFPRICE for an irregular final coupon: it describes a different schedule. Do not assume successful calculation of this last-period function establishes odd-first support. Complete current financial-wrapper guards were not inspected; invalid dates, nonpositive denominators and other invalid-domain cases were not executed.
Related functions
Official evidence and checking scope
The XLSX formulas were recalculated with a forced-recalculation profile and exported to a separate ODS file. The deliberately stale SUM cache changed to 3, and the uncached SUM returned 7. All eight function identities and numeric results were checked against the saved XML and independent calculations. The execution was headless in the exact development build named above; the separately inspected 26.8.1.1 source was not executed. Invalid-domain cases were not tested. The complete current financial wrapper was not available for inspection; the cited helper, registration, Help and successful ordinary cases do not establish every validation or coercion branch.