Contact

NPER Function (Gnumeric)

Financial Intermediate Gnumeric

Calculate the number of payment periods in Gnumeric using a constant rate, fixed payments and consistent cash-flow signs.

Verification status: Official documentation referenced; example outcomes independently reasoned or arithmetically checked where stated. Not executed in Gnumeric. How formula examples are checked

NPER solves for the number of equal intervals needed for a constant-rate, constant-payment cash-flow model to reach an ending balance. It is useful for asking how long repayment might take or how many periods of compounding are needed to double a lump sum. NPER does not return calendar dates, and its numerical answer is not necessarily a whole number of monthly payments [G1][G3].

The checked source confirms that the argument order is rate,pmt,pv,fv,type, with optional fv=0 and type=0 [G3]. The per-period rate must correspond to the period represented by pmt: a nominal annual 6% rate with monthly payments is commonly modelled as 6%/12, subject to the actual product’s compounding terms.

Scope, evidence and status

This is a Gnumeric-specific guide of a function registered in the Gnumeric Finance family. The official manual gives its exact argument order [G1], the project function catalogue calls its implementation Complete with Basic upstream testing [G2], and the current public GNOME source registers it in the finance plugin [G3]. Those are three different checks: a documentation entry, a catalogue classification, and source inspection. None establishes that the examples on this page were run in a native Gnumeric session.

The publicly listed 1.12.62 stable source release is dated 21 September 2026 [G4]. This article was researched 13 October 2026 against the accessible manual/catalogue and checksum-verified official GNOME Gnumeric 1.12.62 source. Source inspection is not a substitute for testing the installed package; availability can also depend on spreadsheet build and plugin configuration. Examples use English function names, decimal points and comma argument separators; a decimal-comma locale may require semicolons [G5]. Use the Function Selector to avoid guessing separators.

All example outputs below are independently calculated expected values, not screenshots or measured outputs from the application. Use the complete cell inputs to reproduce them, and check formatted rounding separately from stored precision.

Syntax and argument order

=NPER(rate,pmt,pv,[fv],[type])
Argument Expected input Required/default Interpretation
rate Number Required Interest per period; write 6%/12 for a monthly nominal-6%-annual-rate example.
pmt Number Required Constant periodic payment (often negative for a borrower).
pv Number Required Present value of the loan/investment.
fv Number Optional; 0 Required remaining balance; 0 is full payoff.
type Number Optional; 0 0 is payment at period end; 1 at period beginning [G1].

Square brackets above are documentation notation for optional arguments; do not type square brackets into the actual formula. The authoritative argument order is from Gnumeric’s official Finance manual [G1] and the explicit required/optional separation is confirmed by the GNOME finance-plugin registration [G3].

What Gnumeric calculates

For nonzero r, the checked source evaluates a logarithmic ratio equivalent to NPER = LN((pmt×(1+r×type)−fv×r)/(pv×r+pmt×(1+r×type)))/LN(1+r) [G3]. It checks whether that ratio is positive before evaluating the logarithm. At r=0, a separate source branch returns −(fv+pv)/pmt when pmt≠0 [G3].

NPER can yield a non-integer (for example 44.74 periods). That is the algebraic model’s fractional time to the target, not evidence that a loan contract supports a 0.74-month final payment or that its last bill will equal the standard payment.

Reproducible worksheet examples

Worked example 1: how many months to repay $12,000 at $300/month?

Cell Label Enter
A2 / B2 Monthly rate 6%/12
A3 / B3 Monthly cash outflow -300
A4 / B4 Current balance 12000
A5 / B5 Desired remaining balance 0
A6 / B6 Pay at end of period 0
A8 / B8 Number of periods =NPER(B2,B3,B4,B5,B6)

Expected B8: 44.740189294. This is approximately 44.74 monthly periods. Planning 45 calendar payment dates is a separate operational decision; the final payment should be recalculated from the balance rather than automatically charging $300 for all 45 months. The model has no fees, missed payments or changing interest rates.

Worked example 2: validate against a one-year loan

In B11 enter 6%/12, in B12 12, and in B13 12000; in B14 enter =PMT(B11,B12,B13) (about -1,032.797156). Then =NPER(B11,B14,B13,0,0) is expected to return 12 within floating tolerance. If you type -1032.80 instead of referring to B14, the result changes slightly because the calculation is no longer using the exact constant payment.

Worked example 3: doubling a balance with no periodic payments

=NPER(6%,0,-10000,20000,0) is expected to yield 11.895661046 years/periods when 6% is applied once per period. The negative sign on the initial amount and positive sign on the eventual amount represent opposite cash-flow directions. Compare with =LN(2)/LN(1.06) as an independent arithmetic check.

Worked example 4: zero-interest repayments

=NPER(0,-1000,12000,0,0) has expected result 12. The checked source explicitly calculates −(0+12000)/(−1000) in this case. =NPER(0,0,12000,0,0) instead has a documented #DIV/0! source path because payment is zero [G3].

Precision: expected results use independent arithmetic on underlying values; a currency format showing two decimals does not change the stored number. Values are not observations from a Gnumeric runtime.

Advanced use and model checks

Plan a payoff schedule without pretending a fractional payment date exists

Use =ROUNDUP(NPER(B2,B3,B4,B5,B6),0) to estimate how many monthly payment opportunities are needed, then compute the exact last amount from an amortization schedule. This step is a planning calculation, not Gnumeric’s promise that every NPER value should be rounded up in all situations. When rates vary or a borrower prepays, use the evolving balance and actual amounts instead.

What if the fixed payment is too small?

With positive loan PV and monthly rate, a payment whose absolute value is not enough to cover the period’s interest may never amortize the debt. Test ABS(pmt) > pv×rate before relying on a finite payoff time for this simplified positive-rate, end-of-period loan model. For 12000×0.005, first-period interest is $60; a fixed payment of $50 does not meet that basic interest coverage condition.

Beginning- versus end-of-period payments

Set type=1 only when your cash flows actually occur at the start of each period. The source includes 1+r×type in the logarithmic ratio [G3]. A due payment may reduce the number of periods compared with end-of-period timing, holding other parameters fixed. Entering 1 because payments happen on the first of a calendar month is not sufficient without checking when the modeled accrual period begins.

Errors, unusual inputs and troubleshooting

Check Source-backed outcome / limitation
rate=0 and pmt=0 Checked source explicitly returns #DIV/0! [G3].
rate<=-100% when rate is nonzero Checked source explicitly returns #NUM! [G3].
No mathematically valid positive logarithm ratio Checked source returns #VALUE! when its intermediate ratio is <=0 [G3]; avoid assuming every infeasible cash-flow set returns the same other-spreadsheet error.
Small positive payment and positive loan Payoff may never occur in the constant-rate model. Check whether payment covers interest.
Unreasonable negative or fractional answer Verify the signs, the target fv, type, period matching and whether a continuous mathematical solution is sensible as a calendar duration.
Nonzero payment timing type Official instructions define 0/1; current source’s numeric paytype helper maps nonzero to 1 [G3]. Use only 0 and 1 for clarity.
Rate or payments change over time NPER assumes constant inputs; make a period-by-period schedule instead.

For text or blank cells in required numeric arguments, the public manual alone does not establish every coercion or error for every installed build. Use numeric inputs, review Formula Error feedback in the actual software, and do not transplant undocumented Excel or LibreOffice rules into Gnumeric.

Gnumeric version, locales and compatibility

  • Project evidence: public Finance manual plus GNOME finance-plugin source and public catalogue, all reviewed on 13 October 2026 [G1][G2][G3]. The upstream catalogue’s Complete / Basic label is a project classification, not an execution log for this tutorial.
  • Release scope: 1.12.62 is listed in the upstream stable release archive (21 September 2026) [G4]. The code reviewed for behavior is from the checksum-verified official 1.12.62 source archive, not a native application run.
  • Platform: Gnumeric is a GNOME desktop spreadsheet application. This research does not assert Windows/macOS package feature parity or test any packaged Linux distribution. Confirm your installed version and available functions.
  • Formula input: the English documentation uses a period for decimals and a comma to separate arguments. In a decimal-comma locale, a semicolon separator may be required; a GNOME project contributor documents that distinction and recommends the function insertion UI [G5].
  • Interchange: mathematical analogues may exist in Excel/LibreOffice, but no cross-import round-trip, XLSX rewrite or ODF execution was performed. Compare results and optional-argument behavior in both applications before relying on interoperability.

PMT finds the equal payment when time and rate are known, FV finds the ending balance, PV finds the starting balance, RATE infers the per-period rate, and IPMT / PPMT split a known period’s payment.

Verification and evidence register

Claim / check What was actually checked Evidence
Canonical name, documented arguments, related functions Gnumeric official Finance manual [G1]
Catalogue status Official function catalogue: Complete / Basic [G2]
Default arguments and formula/error branches Official 1.12.62 plugins/fn-financial/functions.c [G3]
Stable release listing GNOME download archive, 1.12.62 on 2026-09-21 [G4]
Locale syntax caveat GNOME project mailing-list answer about separators [G5]
Numeric examples Independent arithmetic/financial equations on these input values Independent calculation from the displayed inputs
Native Gnumeric calculation / screenshots Not performed No runtime observations

Dated official references