Contact

ODDFPRICE in Collabora Office: Implementation Limits

Financial Advanced Collabora Office Calc

Documented odd-first price syntax, the inspected throwing helper and a separately labelled manual valuation example.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

Compatibility notice: Collabora’s help documents ODDFPRICE for pricing a security with an irregular first coupon. At the inspected Collabora co-26.04 source pin, the public financial add-in path reaches an unconditionally throwing helper. This article explains that documentation/source conflict; it does not supply a verified working ODDFPRICE example.

Documented syntax, not an execution recipe

ODDFPRICE(Settlement; Maturity; Issue; FirstCoupon; Rate; Yield; Redemption; Frequency [; Basis])

The documented purpose is a price per 100 currency units of par. Yield is the annual yield input. All arguments except Basis are required. Merely having syntactically appropriate arguments does not resolve the implementation limitation.

Documented arguments and conventions

Settlement is the purchase/settlement date; Maturity is the maturity date; Issue is the issue date; FirstCoupon is the first coupon date. Rate is the annual coupon rate, not the yield. Redemption is the amount repaid per 100 units of par. Frequency is the documented annual coupon count: 1, 2 or 4. Rates are decimal fractions or percentages.

Basis is optional: omitted or 0 means US/NASD 30/360; 1 means actual/actual; 2 actual/360; 3 actual/365; 4 European 30/360. These are documented argument meanings, not evidence that the inspected odd-first helper computes them. Use date cells or DATE when preserving a workbook formula; locale-dependent date text adds a separate migration risk.

Exact source scope and unresolved runtime behavior

The archived branch response identifies distro/collabora/co-26.04 at commit c1013fad0d38683630b48c01b6d5208b8d81181e in the LibreOffice/core repository. The source is therefore inspected as a Collabora distribution pin, rather than inferred from another application’s behavior. The financial add-in registry includes the function name.

The public entrypoint checks arguments first. Both odd-first entrypoints reject invalid frequency or dates outside Issue < Settlement < FirstCoupon < Maturity. ODDFPRICE rejects negative coupon rate or yield; ODDFYIELD rejects negative coupon rate or a nonpositive price. After input/date-mode handling, the inspected helper ignores its arguments and unconditionally throws uno::RuntimeException; the caller comments explicitly acknowledge the throwing helper.

This establishes a limitation in that specific inspected implementation path. An earlier invalid-argument rejection would not prove successful operation for valid inputs. It does not establish which worksheet error appears, whether a particular installed build follows an alternate path, or whether a desktop, Online or mobile deployment behaves the same way. No crash behavior or universal product failure is claimed.

No native Collabora execution occurred. The Help and main financial-source snapshots were retrieved October 17, 2026 and reviewed October 19. This is not a fresh branch-head check or a binary test. First introduced release, last working release/build and current working deployment boundaries remain unknown. A throwing stub is not proof of retirement; no retirement date is established.

Independent alternative: explicitly specified cash flows

When reviewing a valuation, start from agreed cash amounts and payment timing rather than treating another function’s output as ODDFPRICE evidence. The following is a deliberately simplified mathematical model, not a bond-market convention or a recommended investment valuation.

Assume a valuation instant with no accrued interest, payments of 3 units after half a year and 103 units after one year (including 100 redemption), and an effective annual discount rate of 8%. Time is supplied explicitly in years; no basis code or coupon accrual is inferred. The present value is:

=3/(1+8%)^0.5+103/(1+8%)

Independent arithmetic gives 98.257121716318499… units. Rounded to two decimals, that is 98.26. There is no ODDFPRICE call here. In a worksheet layout, put 0.5 and 1 in A2:A3, 3 and 103 in B2:B3, and 8% in D2. C2 is =B2/(1+$D$2)^A2; fill down to C3, then add =C2+C3.

The first discounted amount is approximately 2.886751345948; the second is 95.370370370370. This model values specified cash flows. It does not derive a short/long first coupon, subtract accrued interest, implement US/NASD conventions, or establish the nominal annual bond yield associated with a stated payment frequency. Those omissions are intentional assumptions, and they prevent labeling 98.257121716318499… as an ODDFPRICE expected return.

For a real irregular coupon, obtain the contractual cash-flow schedule and price convention first. If you choose an effective-annual discount model, document that choice; if a benchmark uses nominal coupon-period compounding, use its separately justified convention. Matching a few numbers is not proof of functional equivalence.

Compatibility decisions and next steps

Keep a copy of the original workbook before changing formulas. Record product edition, exact build, formula, dates, basis, coupon schedule, price convention and any independently obtained benchmark. Do not infer working support from a function-list entry or the help page alone. Resolving this conflict requires build-specific evidence of an implemented path or an authoritative explanation of alternate dispatch; the evidence here supplies neither.

For genuinely regular coupon periods, examine the separately documented PRICE and YIELD guides. Those regular-period functions are not drop-in substitutes for an irregular first coupon. Likewise, an odd-last-coupon calculation addresses a different contract. A manual cash-flow model must explicitly choose accrual, coupon fractions, discount timing, clean-versus-dirty price and annualization before any comparison is meaningful.

This article provides implementation-limit coverage, not a working-function tutorial or a successful ODDF output. No automatic conversion or equivalence is asserted.

References