Contact

DURATION Function (OpenOffice Calc)

Financial Intermediate OpenOffice Calc

Use the three-argument OpenOffice DURATION to find compound-growth periods. Distinguish it from bond DURATION_ADD and its PDURATION storage name.

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. The stored formula identity was source-mapped PDURATION. How formula examples are checked

Quick answer: =DURATION(.1;100;200) returned 7.272540897342 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 DURATION returns

In Apache OpenOffice’s English function names, DURATION is the three-argument compound-growth period calculation. It returns LN(FutureValue/PresentValue)/LN(1+Rate). It is not the six-argument bond duration function; that separate English name is DURATION_ADD. Release implementation.

Syntax and arguments

DURATION(Rate;PresentValue;FutureValue)
  • Rate: growth rate per period. Use a positive rate for the ordinary growth examples.
  • PresentValue, FutureValue: positive amounts on the same scale.
  • Exactly three arguments are required. There are no periodic payments, coupon dates or compounding-frequency argument.

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.

The native ODF formulas use PDURATION, the verified storage name of English OpenOffice DURATION. The displayed formulas below use the English function name.

Formula Native 4.1.16 result Independent reference
=DURATION(.1;100;200) 7.272540897342 7.272540897342
=DURATION(1;100;800) 3 3
=DURATION(.05;100;100) 0 0
=DURATION(.01;1000;1100) 9.578594039813 9.578594039813
=DURATION(.02;500;1000) 35.002788781146 35.002788781147
=DURATION(.1;100;300) 11.526704607248 11.526704607248
=DURATION(.5;100;225) 2 2
=DURATION(.025;1000;2000) 28.071034525939 28.071034525939

Practical worksheet

Growing 100 to 200 at 10% per period takes approximately 7.272540897342 periods. If 10% is an annual rate, the unit is years; if it is a monthly rate, the unit is months.

At 100% per period, 100 grows to 800 in exactly 3 periods because 100×2³=800. At 50%, growth from 100 to 225 takes 2 periods. Equal present and future values return zero periods in the positive-rate example.

Advanced interpretation and checks

The fractional result solves the exponential equation exactly in the model. It does not mean a product permits redemption at a fractional period. At 10%, 7 whole periods give approximately 194.87171 and 8 give 214.358881, so reaching at least 200 at whole-period boundaries requires 8 periods.

The stored ODF function name is PDURATION, mapped to the same core opcode as English DURATION. The native evidence used that verified storage identity. Bond DURATION_ADD instead maps to ODF DURATION. Keep the displayed product name, storage name and financial meaning distinct when inspecting exported files.

Boundaries and troubleshooting

The implementation directly applies logarithms; it does not add a full financial-domain validation layer. Require positive present/future values and a rate whose logarithm is defined and nonzero. The native fixture uses positive rates and amounts; zero/negative rates, zero amounts and invalid logarithm domains were not executed.

This function assumes constant compound growth with no intermediate cash flows. For periodic payments, NPER is a different model; for coupon-weighted bond timing, use DURATION_ADD. Native ODF execution verifies the mapped calculation, not manual entry of every localized English spelling.

Official evidence and checking scope

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.