PDURATION Function (LibreOffice Calc)
Learn the PDURATION function in LibreOffice Calc: Duration. Calculates the number of periods required by an investment to attain the desired value.
Verification status: Official documentation referenced; example outcomes independently reasoned or arithmetically checked where stated. Not executed in LibreOffice Calc. How formula examples are checked
Historical validation scope: Native observations refer to saved LibreOffice Calc 25.2.3.2 Linux evidence dated 13 October 2026 at 09:07 UTC. Both saved conversion logs report success and all 89 final CSV/JSON results agree. However, 86 intermediate-workbook cells still contain #NAME? rather than the final reported value or error; no final recalculated workbook was preserved. This review independently recalculated 55 normal numeric cases and three worked checks. Historical diagnostics below are reported final CSV results, not independently confirmed cross-artifact execution. Calc was not rerun.
What does PDURATION tell you?
PDURATION returns the number of compounding periods needed for a positive starting balance to reach a positive future target with a constant positive growth rate per period and no additional contributions or withdrawals. Its output is often fractional because it solves a continuous exponent equation for a discrete compounding model. For instance, at 10% per period, a balance doubles in approximately 7.27 periods; reaching or exceeding the target at whole period boundaries requires 8 completed periods.
The “duration” here is a count of investment growth periods, not the Macaulay duration of a bond and not the length of a loan with regular repayments. For scheduled deposits, withdrawals or loan payments, PMT, NPER or a cash-flow model may be appropriate instead. LibreOffice Help calls PDURATION a function for the time until an investment reaches a desired value, with the example below. LibreOffice 26.8 Calc Help — Financial Functions Part Two, PDURATION (accessed 2026-10-13); OpenFormula 1.3 §6.12.35 PDURATION.
Exact LibreOffice Calc syntax
=PDURATION(Rate; PV; FV)
| Argument | Required? | Definition | Documented constraint / default |
|---|---|---|---|
Rate |
Yes | Growth/interest rate for one period, expressed as decimal (0.05 for 5%) or as percentage (5%) |
Positive (Rate > 0); no default |
PV |
Yes | Present value: current positive investment amount | Positive (PV > 0); no default |
FV |
Yes | Future value: positive target amount | Positive (FV > 0); no default |
There are exactly three required arguments: no optional Type, basis, payment, or date. The rate is per period, so using 6% implies 6% for each period you mean, not automatically 6% annually. If the rate is annual and you are modeling monthly compounding with a nominal annual rate, use 6%/12 and read the output as months. For a stated effective annual interest rate, an exact equivalent monthly rate is (1+AnnualEffectiveRate)^(1/12)-1, not simply AnnualEffectiveRate/12; this distinction follows compound-interest mathematics and is not a different built-in PDURATION option. LibreOffice PDURATION Help; OpenFormula 1.3 (accessed 2026-10-13).
Locale note: The ; separators and decimal points below reflect English-language Calc formula examples. LibreOffice may translate names or use comma-decimal notation based on locale/settings. The percent operator % converts an entered percent to its decimal fraction.
Reproduce LibreOffice’s official investment example
LibreOffice’s Help gives an initial value of 25,000, a target of 1,000,000, and a positive interest rate of 4.75%. In Calc, enter:
=PDURATION(4.75%;25000;1000000)
Independently checked result matching the final CSV: 79.4907946994014 periods, displayed to two decimal places as 79.49. The independent mathematical calculation yielded the same value to floating-point precision. LibreOffice’s current Help gives the rounded 79.49 result. Official PDURATION example, accessed 2026-10-13.
Do not treat the official Help’s accompanying discussion of a “payment” as evidence that PDURATION models periodic contributions. Its OpenFormula definition uses an initial value and a single growth rate without a payment argument. Likewise, PDURATION does not calculate a monetary payment by dividing the future value by the returned number of periods. OpenFormula 1.3 §6.12.35.
Build the example as a reusable sheet
| Cell | Label / formula | Enter or expected result |
|---|---|---|
| A1 | Rate per period |
label |
| B1 | 4.75% |
input |
| A2 | Current value |
label |
| B2 | 25000 |
input |
| A3 | Target value |
label |
| B3 | 1000000 |
input |
| A4 | Fractional periods |
label |
| B4 | =PDURATION(B1;B2;B3) |
approximately 79.4907946994 |
| A5 | Complete periods needed |
label |
| B5 | =ROUNDUP(B4;0) |
80 (whole periods; mathematical consequence) |
| A6 | Value after 80 periods |
label |
| B6 | =B2*(1+B1)^B5 |
exceeds 1,000,000 (mathematical check) |
Validation labels: B4 matches the independent calculation and final saved CSV; B5 and B6 are transparent follow-on arithmetic examples and were independently reasoned mathematically, not included in the 27-case native PDURATION assertion count. Round up to a whole number of periods only if interest credits occur at complete period boundaries and “at least the target” is what you need. With a continuously monitored growth process the model would be different.
Checked formulas and outputs
The final saved CSV attributes these results to LibreOffice Calc 25.2.3.2. Independent Python calculations of logarithmic growth periods agreed with the numeric results shown. Use standard English formula names and ; separators.
| Exact Calc formula | Independently checked result (rounded) | How to read it |
|---|---|---|
=PDURATION(10%;1000;2000) |
7.27254089734172 |
Periods to double at 10% each period |
=PDURATION(5%;1000;2000) |
14.2066990828905 |
Doubling takes longer at 5% |
=PDURATION(8%;1000;3000) |
14.2749145860032 |
Periods to triple at 8% |
=PDURATION(6%/12;5000;10000) |
138.975721610694 |
Months, if 6% nominal per year / 12 |
=PDURATION(8%/4;5000;10000) |
35.0027887811465 |
Quarters, if 8% nominal per year / 4 |
=PDURATION(5%;1000;1000) |
0 |
Target already equals starting value |
=PDURATION(5%;1000;500) |
-14.2066990828905 |
Negative result: target lies below current amount mathematically |
=PDURATION(100%;100;800) |
3 |
Three periods at 100% growth per period |
=PDURATION(1%;10000;11000) |
9.57859403981317 |
10% overall target gain at 1% per period |
=PDURATION(0.01%;1000;1100) |
953.14945233894 |
Small period rate produces large count |
=PDURATION(4.5%;20000;35000) |
12.7136616468134 |
Annual periods when 4.5% is an annual effective rate |
Important: 0.01% is 0.0001 as a decimal. The distinct 1% rate is 0.01. Currency symbols do not belong inside numeric formula arguments; format the input cells as currency if needed. Percent formatting applied to the output would be misleading: PDURATION returns periods, not an interest percentage.
Why PDURATION works: independent formula
Compound growth at a constant periodic rate follows:
FutureValue = PresentValue * (1 + Rate)^N
Solve this equation for the unknown count of periods N:
N = LN(FutureValue / PresentValue) / LN(1 + Rate)
That logarithmic formula is the mathematical rule specified by OpenFormula 1.3. For a working comparison in Calc:
=PDURATION(5%;1000;2000)
=LN(2000/1000)/LN(1+5%)
The saved PDURATION doubling case produced approximately 14.2066990828905; the saved logarithm diagnostic used the equivalent ratio 200/100 and produced the same result. The LN comparison was observed as a diagnostic native formula, separate from the 27 PDURATION numeric assertions. The underlying logarithmic equation is independently calculable in Python or by hand. OASIS OpenFormula 1.3 §6.12.35 PDURATION (accessed 2026-10-13).
Why the answer is fractional
If N=7.2725, then seven completed compounding periods are insufficient to reach an exact doubling at 10%, while eight are enough; ROUNDUP gives the first whole period boundary meeting the target. But if you are reporting the model’s mathematical implied growth period, the unrounded fractional PDURATION result is the correct output. An exact period of 10 days or a payment-date schedule must be modeled separately.
Advanced use: interest-rate scenarios and target planning
Rate sensitivity table. Put an initial amount in B1=5000 and target in B2=10000, with scenario rates in A5:A9 (1%, 2%, 5%, 10%, 25%). In B5 enter:
=PDURATION(A5;$B$1;$B$2)
Fill down through B9. Because the rate is per period, each row gives comparable counts of the same period unit. If these are annual rate scenarios, results represent years; if monthly, results represent months. The mixed-absolute references ($B$1, $B$2) hold the starting value and target fixed while the scenario rate changes. These cells and copy-down layout are an independently reproducible planning pattern; the saved suite included 2%, 5%, 10% and 25% doubling examples; its 1% example used a 10% overall gain, not doubling. This full cell-addressed scenario sheet was not separately native-tested.
Annual to monthly rates. With an effective annual rate in A1, write the mathematically equivalent monthly rate in A2:
=(1+A1)^(1/12)-1
Then calculate =PDURATION(A2;B1;B2) to obtain months. Contrast this with =PDURATION(A1/12;B1;B2), which assumes A1 is a nominal annual rate compounded monthly. The formulas represent different financial assumptions; the choice matters when calculating months for multi-year horizons.
Target already achieved. For a positive growth rate and a target less than or equal to the current balance, the function may return zero or a negative number (verified native examples above). If your operational question is “how many future complete periods are necessary from now?”, a guarded independently reasoned formula is:
=IF(OR(B1<=0;B2<=0;B3<=0);"Check positive inputs";IF(B3<=B2;0;ROUNDUP(PDURATION(B1;B2;B3);0)))
where B1 is the periodic rate, B2 is the current investment and B3 is the target. This pattern assumes numeric, error-free inputs and checks their positive domain; it does not validate arbitrary text or upstream errors. It is not a native test of its IF/OR branches; verify it in your workbook before business use. An early target result of 0 is not a substitute for accounting for fees, taxes, inflation, contributions or withdrawal policies.
What PDURATION omits. It does not model varying interest rates, deposits, debt payments, interim cash flows, exchange rate changes, reinvestment taxes or financial risks. The result is deterministic given the rate assumption and should not be described as a promised investment outcome.
Errors, limits and troubleshooting
| Input or symptom | Requirement / observed behavior | Troubleshooting step |
|---|---|---|
=PDURATION(0;100;200) |
Err:502 in Calc 25.2.3.2; OpenFormula requires Rate>0 |
Enter a positive period rate; if growth is exactly zero, target never grows above PV |
=PDURATION(-5%;100;200) |
Err:502 in the tested build; negative Rate violates the OpenFormula constraint |
Treat declining investments with a different signed-growth model; do not feed negative rates here |
=PDURATION(5%;0;200) |
Err:502; PV must be positive |
Check for blank/zero original principal |
=PDURATION(5%;100;0) |
Err:502; FV must be positive |
Enter a positive future target |
=PDURATION(5%;100;200) |
Valid, about 14.2066990828905 |
If unexpected, check which interest-rate unit was assumed |
=PDURATION(5%;100) |
Err:511 in Calc 25.2.3.2; missing required argument |
Supply exactly Rate, PV and FV |
=PDURATION(5%;100;200;0) |
Err:504 in the tested build; too many arguments |
Remove unsupported fourth argument |
=PDURATION("rate";100;200) |
Tested build returned #VALUE! |
Use numeric percent input, not free-form text |
| Numeric-looking text imported from CSV | Native diagnostics showed some text-to-number coercion in PDURATION; behavior should not be relied on | Convert data to genuine numbers and validate scale |
| Unreasonably long periods | A tiny positive Rate makes the count very large |
Check 0.05 versus 5% and nominal versus effective compounding |
#NAME? |
May arise from wrong spelling, locale, version, or import | Select PDURATION using Calc’s Function Wizard |
Reported diagnostic details: In Calc 25.2.3.2, a quoted number such as "0.05" supplied for the rate could be coerced successfully, and text "200" used as FV could also be interpreted numerically. Yet an invalid text literal produced #VALUE!. That is observed version-specific coercion, not a recommendation to store interest rates as text or a cross-platform compatibility guarantee. The native tests also returned Err:502 when PV and FV were negative, including when both were negative, consistent with OpenFormula’s strictly positive constraints.
Near-zero positive rates can amplify the numerical answer: a diagnostic case with Rate=1E-12, PV=100 and FV=200 produced roughly 6.93147180560E11 periods. This is mathematically plausible but highly sensitive to assumptions and floating-point precision. Avoid false date-level precision in long-run forecasts.
Frequently asked questions
Does PDURATION return a date? No. It returns a count of rate periods. To estimate a calendar date, you need an explicit initial date, a periodic calendar rule, and a policy for fractional periods. Simply adding 79.49 to a date treats periods as days and is usually wrong.
Does PDURATION calculate a loan’s payment schedule? No. It lacks a payment parameter and assumes a single growing balance. A mortgage, amortization or retirement drawdown plan generally needs a different cash-flow model; use PMT for a fixed payment where appropriate.
Why is the output negative when the target is smaller than PV? The ratio FV/PV lies between 0 and 1, so its logarithm is negative while LN(1+Rate) is positive. The formula is solving for a past theoretical period count, not predicting a negative future waiting time.
What if money doubles at different compounding frequencies? Express Rate for the corresponding period. For example, an annual effective rate means annual periods; an equivalent monthly effective rate returns monthly periods. Never divide or multiply the result without first identifying the period convention.
Is PDURATION the same as DURATION? No. DURATION is a bond-duration function with settlement, maturity and coupon/yield arguments. PDURATION has only three growth arguments. Mixing their meanings produces invalid financial explanations.
Compatibility, release scope and related guides
| Scope | Verified statement |
|---|---|
| Native Calc | LibreOffice 25.2.3.2 on Linux was used for all 27 independent numerical PDURATION assertions and 18 additional diagnostics |
| Current official documentation | Online LibreOffice 26.8 Help documents PDURATION(Rate; PV; FV) and the 4.75% example; 26.8 was not installed/tested |
| OpenDocument | The OpenFormula v1.3 standard includes the PDURATION name and Rate>0, PV>0, FV>0 requirements; this is a documentation compatibility claim |
| Excel and Google Sheets | No native run or file-exchange test was performed; do not infer matching semantics merely from a function with the same name elsewhere |
| Localization | English Help formula syntax is shown; translated names, decimal separators and function argument display settings can differ |
See FV for future-value calculations with specified period counts; LN for the underlying logarithm; ROUNDUP for whole-period planning; PMT for fixed periodic payments; and DURATION for a different finance concept.
Validation and official claim-level sources
Historical evidence (2026-10-13): The fixture workbook was loaded and recalculated by LibreOffice Calc 25.2.3.2 (Linux, isolated user profile), saved as ODS, and exported to CSV for independent comparison. Separately, Python computed log(FV/PV)/log1p(Rate) expectations. 27/27 PDURATION numerical assertions passed. 18 more diagnostic observations logged version-specific results/errors, without counting them as assertion passes. The source test scripts, fixture, recalculated ODS and detailed case results are archived in the saved validation package. The preserved conversion logs report execution; the intermediate-workbook discrepancy described above limits cross-artifact confirmation.
- LibreOffice 26.8 Help — Financial Functions Part Two, §PDURATION: official syntax, meanings of three arguments and 4.75%-to-79.49 example, accessed 2026-10-13.
- OASIS OpenDocument v1.3 OpenFormula §6.12.35 PDURATION: formula and three positive-domain constraints, OpenDocument Committee Specification 02 dated 2020-10-30, checked 2026-10-13.