FV_ANNUITY Function (Calligra Sheets)
Calculate end-of-period annuity future value with Calligra FV_ANNUITY. Reconcile individual payments and see the important zero-rate division limitation.
Verification status: 22 selected formulas were executed through the Calligra Sheets 25.04.2 calculation engine library. Exact outputs, mathematical references and source limitations are documented separately. Version 26.08.2 was source-checked only; no GUI-cell or import claim. How formula examples are checked
Zero-rate limitation: the tested Calligra 25.04.2 engine returns #DIV/0! at rate zero, even though the mathematical annuity limit is payment×periods. The inspected 26.08.2 callback has the same division and no special zero-rate branch.
Quick answer: =FV_ANNUITY(100;.1;3) gives approximately 331 in the tested Calligra calculation engine.
Availability and version history
- Introduced: First release not established; the name is present in Calligra 2.4.0 source.
- Supported in: Calligra Sheets 26.08.2, with no retirement established.
- Scope: Desktop Sheets with the Financial module. Examples use English semicolon-separated formulas.
- Checked: October 14, 2026. Selected formulas ran through the official 25.04.2 engine library. Source and independent mathematics were checked. This is engine evidence, with no GUI-cell or import verification; 26.08.2 was source-checked only.
What FV_ANNUITY returns
FV_ANNUITY gives the accumulated value of equal payments made at each period end. Its formula is payment×((1+rate)^periods−1)/rate. The sign follows the payment rather than automatically reversing the cash-flow sign. Function-specific official reference.
Syntax and arguments
=FV_ANNUITY(payment;ratePerPeriod;periods)
Exactly three arguments are required: payment amount, rate per payment period, and number of periods. Use matching units and a nonnegative integer period count for an ordinary payment schedule. Rate zero needs separate handling. Registration and implementation.
Reproducible engine examples
The engine and mathematical columns are separate. Results are rounded to twelve decimal places, or thirteen significant digits in scientific notation for very small or large values. This is a display choice, not an accuracy guarantee.
| Formula | Engine result | Independent mathematical reference |
|---|---|---|
=FV_ANNUITY(100;.1;3) |
331 |
331 |
=FV_ANNUITY(100;.05;5) |
552.563125 |
552.563125 |
=FV_ANNUITY(100;.1;1) |
100 |
100 |
=FV_ANNUITY(100;.1;0) |
0 |
0 |
=FV_ANNUITY(100;.01;12) |
1268.250301319697 |
1268.250301319697 |
=FV_ANNUITY(500;.02;10) |
5474.860499868928 |
5474.860499868928 |
=FV_ANNUITY(0;.1;3) |
0 |
0 |
=FV_ANNUITY(250;.08;4) |
1126.528 |
1126.528 |
Practical worksheet
Three end-of-period payments of 100 at 10% accumulate to 331 at the end of period three. The first payment earns two periods of interest, the second earns one, and the third earns none: 100*(1.1^2+1.1+1)=331.
At 5%, five payments of 100 give 552.563125. This is the final accumulated amount, not just interest earned. The total payments are 500, so the independent interest calculation is 552.563125−500=52.563125.
Advanced interpretation and checks
For payments at each period beginning instead, the same ordinary cash flows gain one additional period of growth; multiply the ordinary-annuity value by 1+rate. For the three-payment example, the independent annuity-due value is 364.1. There is no Type argument in FV_ANNUITY itself.
At nonzero rate, zero periods returns zero. As rate approaches zero, the mathematical limit is payment×periods, but entering exactly zero reaches the implementation’s division-by-zero branch. For a validated zero-rate model, calculate that product explicitly.
The executed advanced check was:
=FV_ANNUITY(100;.1;3)-100*(1+1.1+1.1^2)
Its engine result was -2.667310816662E-14.
Boundaries and troubleshooting
The source does not enforce a nonnegative integer number of periods. Negative and fractional values are evaluated algebraically, so a finite output does not prove there is a realizable payment schedule. Rates below −1 combined with fractional powers can produce numeric NaN without an engine error flag.
Negative payments retain their sign. Numeric payment text is parsed; nonnumeric payment text became zero, while nonnumeric rate text triggered #DIV/0!. Wrong arity gives #VALUE!. The table and source comparison establish these selected cases, without GUI-cell or workbook-import verification.
| Formula | Engine result |
|---|---|
=FV_ANNUITY(100;0;3) |
#DIV/0! |
=FV_ANNUITY(100;0;0) |
#DIV/0! |
=FV_ANNUITY(100;-.1;3) |
271 |
=FV_ANNUITY(100;-1;3) |
100 |
=FV_ANNUITY(100;-2;2.5) |
NaN |
=FV_ANNUITY(100;.1;-2) |
-173.553719008264 |
=FV_ANNUITY(100;.1;2.5) |
269.058706285883 |
=FV_ANNUITY(-100;.1;3) |
-331 |
=FV_ANNUITY("100";.1;3) |
331 |
=FV_ANNUITY("abc";.1;3) |
0 |
=FV_ANNUITY(100;"abc";3) |
#DIV/0! |
=FV_ANNUITY(100;.1) |
#VALUE! |
=FV_ANNUITY(100;.1;3;0) |
#VALUE! |
Official evidence and precision scope
- Function-specific implementation
- Versioned function help
- Arithmetic helper
- Power helper
- Conversion helper
The financial module and value-calculation helpers are byte-identical between the inspected 25.04.2 and 26.08.2 sources. That comparison supports the source discussion but does not establish later-version execution, GUI-cell behavior or other locales.