PPMT function

Returns the principal payment for a given period of a loan or investment, given constant periodic payments and a constant interest rate.

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

Generate a PPMT formula

Describe what you need. The generator will reach for PPMT where PPMT is the right tool, and tell you when it is not.

How to get a better answer
  • Name your columns by letter and by header: "column F (Net Value)" beats "the amount column".
  • State every condition, including the negatives — "not cancelled" changes the formula's shape.
  • Say where the data starts if it is not row 1, and whether it will grow.
  • Check the settings above match your spreadsheet: the wrong argument separator is a syntax error on your machine.

Arguments

How PPMT reads its arguments
raterequiredperrequirednperrequiredpvrequiredfvoptionaltypeoptionalPPMT
ArgumentRequiredDescription
rateRequiredThe interest rate per period as a decimal (e.g., 0.01 for 1% per month). Required; must be numeric and non-negative.
perRequiredThe period number for which to calculate principal payment, ranging from 1 to nper. Required; must be an integer within valid range.
nperRequiredThe total number of payment periods in the loan or investment. Required; must be a positive integer.
pvRequiredThe present value (initial loan amount or principal). Required; conventionally negative for loans to return positive principal results.
fvOptionalThe future value or remaining balance after all payments; optional, defaults to 0 (fully repaid at end).
typeOptionalTiming of payments: 0 for end of period, 1 for beginning of period. Optional; defaults to 0.

Returns

A number representing the principal portion of the payment for the specified period, expressed in the same currency units as pv.

Availability

Excel: All · Google Sheets: Supported

Worked examples

1. Find principal paid in first month of a financed order

Order IDRegionRepUnitsUnit PriceOrder TotalMonthly RateMonths
001NorthAlice1005050000.0112
=PPMT(0.01, 1, 12, -5000)

Result: 383.26

Order 001 totals $5,000. Financed at 1% monthly over 12 months, the first $433.23 payment contains $383.26 principal and $49.97 interest. Early payments are heavily weighted toward interest due to the large remaining balance.

2. Compare principal in early vs. late payment periods

PeriodPrincipal PaidInterest PaidTotal PaymentRemaining Balance
1383.2649.97433.234616.74
6416.5216.71433.232277.71
=PPMT(0.01, 6, 12, -5000)

Result: 416.52

By month 6, the balance has shrunk, so interest charges fall from $49.97 to $16.71, and principal portion rises from $383.26 to $416.52. This demonstrates how amortization schedules front-load interest in early periods.

3. Calculate total principal paid in first half of financing

Order ID1H Principal Paid1H Interest Paid1H Total Payments
0012400.041598.353998.39
=SUMPRODUCT(PPMT(0.01,ROW(INDIRECT("1:6")),12,-5000))

Result: 2400.04

Summing PPMT for periods 1–6 shows approximately $2,400 of principal reduction in the first six months, while $1,598 goes toward interest. This illustrates how the first half of a loan's life emphasizes interest over balance reduction.

Common errors

Which PPMT error are you seeing?
PPMT returned an error#NUM!
Verify per is between 1 and nper inclusive. Use ROW(INDIRECT("1:12")) or similar array if iterating across all periods.
#VALUE!
Convert all arguments to numeric format. Use 0.01 for 1%, ensure per/nper/pv/fv are numbers (not text references or dates).
#NUM!
Ensure nper is a positive integer ≥ 1. The loan or investment must span at least one payment period.
ErrorWhy it happensHow to fix it
#NUM!The per argument is outside the valid range (less than 1 or greater than nper). Example: =PPMT(0.01, 13, 12, -5000) requests period 13 when only 12 periods exist.Verify per is between 1 and nper inclusive. Use ROW(INDIRECT("1:12")) or similar array if iterating across all periods.
#VALUE!An argument is non-numeric or wrong type. Example: =PPMT("1%", 1, 12, -5000) passes rate as text instead of decimal 0.01.Convert all arguments to numeric format. Use 0.01 for 1%, ensure per/nper/pv/fv are numbers (not text references or dates).
#NUM!The nper argument is zero or negative. Example: =PPMT(0.01, 1, 0, -5000) specifies zero periods, which is invalid.Ensure nper is a positive integer ≥ 1. The loan or investment must span at least one payment period.

Tips and when to use something else

  • PPMT returns principal only; use IPMT to find interest paid, and PMT for the total payment. Remember: PPMT + IPMT = PMT in each period.
  • Use negative pv (standard accounting convention) to get positive principal results. Positive pv reverses the sign of PPMT output.
  • Combine PPMT with SUMPRODUCT or array formulas to build full amortization schedules, showing principal/interest for every period at once.
  • For loans with irregular payments, variable rates, or missing periods, use NPV or XIRR instead of PPMT, which assumes fixed amounts.

Frequently asked questions

What's the difference between PPMT and IPMT?
PPMT returns the principal paid in a period; IPMT returns interest paid. Together they sum to the total payment (PMT). Over the life of a loan, PPMT increases while IPMT decreases as the balance shrinks.
Why do I need to use a negative pv value?
By accounting convention, loans are represented as negative (cash leaving your account). Using negative pv makes PPMT return a positive principal payment. Positive pv still works but reverses signs, which is unconventional.
Can I use PPMT for investments or savings plans, not just loans?
Yes. PPMT works for any fixed-payment annuity: mortgages, bonds, leases, and structured savings. It separates principal from interest in any regular-payment stream.
How do I build a full amortization table with PPMT?
Create columns for Period, Principal (PPMT), Interest (IPMT), and Total (PMT). Use row references for period numbers and verify PPMT + IPMT = PMT. Array formulas or SUMPRODUCT speed this up across many rows.

Need a different formula?

The full generator is not scoped to one function — describe any spreadsheet problem and it will pick.

Open the formula generator

Reviewed 2026-09-17