Contact

PPMT Function (Gnumeric)

Financial Intermediate Gnumeric

Calculate the principal component of a regular loan payment in Gnumeric and reconcile it with total payments and interest.

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

Gnumeric’s PPMT returns the principal part of a fixed annuity installment for one payment period. It is useful in an amortization table: as the loan balance decreases with equal end-of-period payments, interest typically declines and the principal part increases. The official manual’s short heading mistakenly says “interest payment for period,” but its description and source code explicitly identify the principal component. [G1, G3]

Exact syntax and inputs

=PPMT(rate,per,nper,pv,[fv],[type])

The square brackets are documentation notation for optional inputs, not literal formula characters. Gnumeric registers ffff|ff, so there are four required numeric arguments and two optional numeric arguments. [G3]

Argument Position Type / default Meaning
rate 1 Required number Interest rate for one payment period.
per 2 Required number Period whose principal portion is needed, counted starting at 1.
nper 3 Required number Total number of repayment periods.
pv 4 Required number Present value / original principal.
fv 5 Optional number; defaults to 0 Future value target.
type 6 Optional numeric flag; defaults to 0 0 end-of-period or 1 beginning-of-period timing.

The source checks per < 1 and per >= nper+1, returning #NUM! in either case. Its calculation calls the periodic total-payment helper and subtracts IPMT to isolate the principal component. [G3]

Reproduce the worked loan example

Create a blank worksheet and enter these values without rounding intermediate calculations:

Cell Enter Meaning
B2 12000 Loan received / present value (currency units)
B3 6% Illustrative nominal annual rate, divided monthly below
B4 12 Number of monthly payments
B5 =B3/12 Periodic rate: 0.005 = 0.5% per month
B6 0 Target future balance (zero)
B7 0 Payment at the end of each month
B8 1 Period number for interest/principal detail

The formula arguments use a periodic interest rate because the Gnumeric implementation compounds rate each period. Do not pass 6% directly as the rate for a monthly twelve-period example: 6%/12 is the intended illustrative monthly rate here. The sample uses a nominal annual rate evenly split into 12 monthly periods; an effective annual 6% rate would instead need (1+6%)^(1/12)-1. The cash-flow sign is negative for repayments, because the present-value loan receipt is positive. This sign convention is visible in the upstream formula. [G1, G3]

Formula entered into any blank cell Expected result (displayed) What it checks
=PMT(B5,B4,B2,B6,B7) -1032.80 Monthly payment, full precision about -1032.797156484968
=IPMT(B5,B8,B4,B2,B6,B7) -60.00 Interest component in month 1
=PPMT(B5,B8,B4,B2,B6,B7) -972.80 Principal component in month 1
=IPMT(B5,6,B4,B2,B6,B7) -35.44 Interest component in month 6
=PPMT(B5,6,B4,B2,B6,B7) -997.36 Principal component in month 6
=PMT(0,12,12000) -1000.00 Zero-interest payment, 12 equal periods

How outputs were checked: Values were independently calculated with decimal arithmetic from the formula shown by Gnumeric’s public source. They are expected worksheet results, not observed output from a running Gnumeric application. Display rounding is to two decimals; do not round formula cells to two decimals when testing reconciliation. [G3]

Interpret the principal portion

For the example, =PPMT(B5,1,B4,B2,B6,B7) independently works out to approximately -972.797156484968 (display -972.80). Month 6 gives approximately -997.361503725690 and month 12 approximately -1027.658862174097. These values represent repayment of principal, not interest expense. [G3]

Gnumeric’s source calculates the principal component with an exact relationship to its two other annuity helpers:

PPMT(rate,per,nper,pv,fv,type)
    = PMT(rate,nper,pv,fv,type)
    - IPMT(rate,per,nper,pv,fv,type)

The signs reconcile: month 1 -1032.797156484968 - (-60) = -972.797156484968. When the interest rate is zero and the twelve monthly payments are equal, =PPMT(0,6,12,12000) is independently -1000, entirely principal. [G3]

Check boundaries and compare components

Formula Independent expectation Reason
=PPMT(B5,1,B4,B2) -972.80 End-of-period default, original principal.
=PPMT(B5,2,B4,B2) -977.661142267393… Larger principal component in month 2.
=PPMT(B5,12,B4,B2) -1027.658862174097… Last monthly principal component.
=PPMT(0,6,12,12000) -1000.00 Without interest, all of the payment is principal.
=PPMT(B5,0,B4,B2) #NUM! Period below 1 is rejected by the source.
=PPMT(B5,13,B4,B2) #NUM! Period after number of installments is rejected.

=PPMT(B5,6,B4,B2)+IPMT(B5,6,B4,B2) should independently equal =PMT(B5,B4,B2) (up to floating-point display precision). These are documentation/source checks plus independent arithmetic, not application test results. [G3]

Advanced example: build a twelve-row amortization audit

With the inputs from the table above, create the following headers in row 11: A11 = Period, B11 = Total payment, C11 = Interest, D11 = Principal, and E11 = Remaining balance. Then enter:

Cell Formula / value Purpose
A12 1 First month
A13 =A12+1 Copy downward through period 12
B12 =PMT($B$5,$B$4,$B$2,$B$6,$B$7) Fixed installment
C12 =IPMT($B$5,A12,$B$4,$B$2,$B$6,$B$7) Period-specific interest
D12 =PPMT($B$5,A12,$B$4,$B$2,$B$6,$B$7) Period-specific principal
E12 =$B$2+SUM($D$12:D12) Loan received plus cumulative negative principal payments

Copy B12:E12 through row 23, and A13 through row 23. Expect B12 to remain near -1032.80 each row, while the interest amount moves from -60.00 in period 1 to approximately -5.14 in period 12; the principal amount moves from approximately -972.80 to -1027.66. The unrounded balance in E23 should be approximately zero. The reconciliation check =B12-(C12+D12) should also be approximately zero. [G1, G3]

Use the actual full-precision numeric cells for sums. Formatting the results as currency does not round the underlying amortization, whereas physically rounding each row’s value would introduce a small cumulative difference. The model assumes a fixed rate and fixed payment schedule; changed rates, real lender day-count rules, additional payments and fees require an adjusted model.

Errors, edge cases and troubleshooting

Symptom Explanation grounded in Gnumeric’s references What to do
Results are dramatically too large or too small rate and nper must use the same time unit; the source applies rate once per period. [G3] Use an appropriate periodic rate and the matching number of periods.
Payment shows a negative amount This is normal for money paid out when pv is positive; the source cash-flow formula has the minus sign. [G3] Use =-PMT(...) (or negate an individual component) for positive reporting; do not silently invert the loan inputs.
A formula doesn’t parse under a different locale Gnumeric’s syntax and presentation interact with language/locale settings; the English documentation examples use commas. [G1, G4] Check the active locale/decimal and argument separator instead of importing another spreadsheet application’s convention as fact.
Values appear inconsistent when individually rounded Each calculated component may include fractional cents. Format cells as currency, keep their calculation precision, and compare with a small tolerance.
Formula is used for variable-rate or irregular cash flows These functions are defined for a periodic constant-rate annuity. [G1, G3] Recalculate after a rate change or use a cash-flow model appropriate to the actual contract.
Zero periods, invalid input, or a mathematically undefined power Outside supported practical domains the underlying financial expressions can become singular or undefined. [G3] Check nper>0, finite numeric inputs, reasonable rate, and that the output remains meaningful. An exact error token is not asserted without native execution.

Compatibility and software/version evidence

  • Gnumeric, not Excel: These are Gnumeric formulas. The official Gnumeric 1.12 Finance manual documents the names and argument order. Gnumeric’s public catalogue labels the function a Complete implementation with Basic upstream testing; that status does not verify this tutorial’s specific cells or cross-application import. [G1, G2]
  • Source check: The implementation and registration were reviewed in plugins/fn-financial/functions.c from the checksum-verified official Gnumeric 1.12.62 source archive. Source inspection does not establish execution or every packaged platform’s behavior. [G3]
  • Release/platform scope: The GNOME 1.12 release directory establishes availability of Gnumeric 1.12 source releases, but no installed Linux, Windows or macOS Gnumeric build was started here. Packaging, plugin activation, and localized parsing were not tested. [G5]
  • Payment timing: The official manual documents type=0 for payments at the end of a period (default) and type=1 at the beginning. Gnumeric source maps a nonzero numeric type to 1, but use explicit 0 or 1 for clarity. For type=1, IPMT is specifically computed from its type-0 helper and divided by (1+rate); do not substitute another spreadsheet application’s assumptions. The example table above uses only type=0. [G1, G3]
  • Locale: The manual’s formulas are shown using commas. Gnumeric’s localization documentation explains the environment’s locale-dependent conventions; the syntax in a configured installation should be confirmed in that installation before promising copied formulas will parse unchanged. [G1, G4]
  • PMT — related financial calculation.
  • IPMT — interest component.
  • CUMPRINC — related financial calculation.
  • PV — related financial calculation.
  • NPER — related financial calculation.

Primary references and validation record

Sources checked 13 October 2026 (UTC). The bracketed evidence keys above refer to the following claim-level primary sources:

Validation scope: Official manual and verified 1.12.62 source were reviewed; listed examples were independently calculated. Native Gnumeric execution, screenshots and locale/platform regression tests were not performed. The implementation compounds the supplied rate once per payment period, which controls the 6%/12 conversion. [G1, G3]