Contact

FVSCHEDULE Function (Gnumeric)

Financial Intermediate Gnumeric Gnumeric 0.33–0.35 (grouped release notes)

Compound a changing rate schedule with FVSCHEDULE in Gnumeric. Reproduce a period-by-period balance and distinguish blank rates from text and logical inputs.

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

Quick answer: =FVSCHEDULE(1000,H2:H4) has the reference result 1234.2 with the inputs described below. This is an independently checked expectation from Gnumeric’s pinned source, not an observed application result.

Availability and version history

  • Introduced: Recorded as implemented in the grouped Gnumeric 0.33, 0.34 and 0.35 release notes. Those notes do not isolate which of the three releases first contained it, so the precise first version and release date remain unestablished.
  • Documented support: Registered in Gnumeric 1.12.62, in the Financial Functions plugin. No retirement is established.
  • Last functioning version: Unverified for this guide; source presence does not certify an application execution.
  • Scope and dates: English formulas are shown. Official source snapshots were retained from the October 13–14, 2026 audit. This full guide and its reference calculations were checked on October 15, 2026; no newer source retrieval or native run is implied.

What FVSCHEDULE does

FVSCHEDULE multiplies the principal successively by one plus each collected rate. It therefore implements principal*(1+r1)*(1+r2)*.... It does not add deposits, subtract withdrawals, or use a rate as a cash amount. The result is a final value in the same unit as the principal.

The function-specific help and complete callback provide the product-specific contract.

Syntax and arguments

=FVSCHEDULE(principal,schedule)
  • principal: Initial numeric balance.
  • schedule: Required range or array of rates, one rate for each modeled period. Both arguments are required.

The registration was checked alongside the callback; use the exact function name and argument order rather than assuming cross-application equivalence.

Reproducible worksheet

Enter 1000 in B2 and rates 10%, 2% and 10% in C5:C7. In B4 enter =FVSCHEDULE(B2,C5:C7); the reference result is 1234.2. To audit it, put 1000 in D4, enter =D4*(1+C5) in D5 and fill down through D7. The running values are 1100, 1122 and 1234.2. The last running value and the single function result should agree.

Enter rates as percentages or decimal fractions. A cell containing 10 means 1000%, not 10%, and multiplies the balance by eleven. The periods need not be calendar years, but each supplied rate must cover the corresponding period.

Formula and boundary checks

All outputs below are source-derived independent reference results. Decimal outputs are rounded to twelve places where needed. Each row is an independent fixture: clear and rebuild the stated H-column cells before entering its formula. The main practical worksheet uses a separate range.

Formula Independent H-column setup Expected reference result
=FVSCHEDULE(1000,H2:H4) H2 0.1; H3 0.02; H4 0.1 1234.2
=FVSCHEDULE(1000,H2:H3) H2 0.1; H3 -0.1 990
=FVSCHEDULE(1000,H2:H3) H2 0; H3 0 1000
=FVSCHEDULE(1000,H2:H3) H2 -1; H3 0.1 0
=FVSCHEDULE(1000,H2:H2) H2 -1.5 -500
=FVSCHEDULE(0,H2:H3) H2 0.1; H3 0.02 0
=FVSCHEDULE(-1000,H2:H3) H2 0.1; H3 0.02 -1122
=FVSCHEDULE(1000,H2:H3) H2 cleared; H3 0.1 1100
=FVSCHEDULE(1000,H2:H3) H2 cleared; H3 cleared 1000
=FVSCHEDULE(1000,H2:H2) H2 =“0.1” #VALUE!
=FVSCHEDULE(1000,H2:H2) H2 =TRUE() #VALUE!

Advanced application and cross-check

For a principal with no intervening flows, reordering the rate list does not change the exact mathematical product. The cumulative return of the sample is 1234.2/1000-1, or 23.42%. Adding 10%, 2% and 10% gives 22%, which omits compounding. A negative rate is another multiplier: 10% followed by -10% gives 990, a net loss of 1%, rather than restoring 1000.

The callback has no rate-domain guard. A rate of -100% makes the balance zero; rates below -100% can change its sign. These are source-derived arithmetic outcomes, not suggested investment assumptions. If the input series describes observed balances or cash flows rather than rates, this function is the wrong model.

Errors, boundaries and troubleshooting

The source collector is called with COLLECT_IGNORE_BLANKS. A genuinely blank rate cell is skipped. It does not enable text coercion or ignore-text flags; referenced text, including a text-formatted numeric rate, therefore reaches the collector’s #VALUE! branch. Logical values also lack the relevant acceptance flag. These are source-level findings, not native mixed-type test results.

Blank and numeric zero have the same final-product effect here, because zero contributes a factor of one, but they communicate different data quality. Do not replace missing rates with zero without deciding that a no-growth period is intended. An entirely blank range leaves the principal unchanged in the inspected loop. The output does not record how many rates were omitted. Count valid numeric rates separately when completeness matters.

Use actual numeric input cells for the principal and rates. The table states any deliberately mixed-type range separately. No native application-localized formula entry or display formatting was executed.

Official evidence and verification limits

The calculations are an independent reference model, not execution of the full Gnumeric engine, headless application or graphical editor. No exact installed-release behavior, GUI entry, locale handling, import parity or extreme-value outcome is certified beyond the stated source scope. Reproduce a small fixture in the target build before relying on an operational workbook.

FV, RRI, MIRR.