CUMPRINC function

CUMPRINC returns the cumulative principal paid on a loan between two specified periods, enabling amortization analysis for financing scenarios.

=CUMPRINC(rate, nper, pv, start_period, end_period, type)

Generate a CUMPRINC formula

Describe what you need. The generator will reach for CUMPRINC where CUMPRINC 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 CUMPRINC reads its arguments
raterequirednperrequiredpvrequiredstart_periodrequiredend_periodrequiredtyperequiredCUMPRINC
ArgumentRequiredDescription
rateRequiredInterest rate per period as a decimal (e.g., 0.005 for 0.5% monthly). Must be a positive number; rates are always annual divided by payment frequency.
nperRequiredTotal number of payment periods for the loan; must be a positive integer representing months, quarters, or years depending on your rate basis.
pvRequiredPresent value (loan amount); the initial principal borrowed, typically a positive number representing the subscription cost or upfront fee being financed.
start_periodRequiredFirst period to include in the cumulative calculation; must be an integer from 1 to nper, representing the earliest month/quarter to sum.
end_periodRequiredLast period to include; must be an integer from start_period to nper, defining the final period of the range.
typeRequiredPayment timing convention: 0 for end-of-period payments (default, standard for subscriptions), 1 for beginning-of-period payments.

Returns

A negative number representing the total principal paid down between the specified periods.

Availability

Excel: All · Google Sheets: Supported

Worked examples

1. Calculate first-year principal on enterprise subscription financing

CustomerPlanAnnual ValueLoan AmountRate/YearTerm (months)
Acme CorpEnterprise$12,000$12,0006%24
TechStart IncProfessional$6,000$6,0006%24
DataViz SolutionsEnterprise$24,000$24,0007.2%36
SmallBiz ProStandard$3,600$3,6006%24
=CUMPRINC(0.005, 24, 12000, 1, 12, 0)

Result: -6,061.36

Acme Corp financed their $12,000 annual enterprise fee over 24 months at 6% annual (0.5% monthly). In the first 12 months, $6,061.36 of principal is paid down, with the remaining payment amount going to interest. CUMPRINC returns negative because it represents money paid out.

2. Compare second-year principal payment on the same loan

CustomerPlanAnnual ValueLoan AmountRate/YearTerm (months)
Acme CorpEnterprise$12,000$12,0006%24
TechStart IncProfessional$6,000$6,0006%24
DataViz SolutionsEnterprise$24,000$24,0007.2%36
SmallBiz ProStandard$3,600$3,6006%24
=CUMPRINC(0.005, 24, 12000, 13, 24, 0)

Result: -5,938.64

Months 13–24 of the same Acme loan pay down $5,938.64 in principal. Because interest decreases as the balance shrinks, later periods have larger principal portions of each payment. The first 12 months ($6,061.36) plus the second 12 months ($5,938.64) sum to the original $12,000 loan.

3. Calculate principal for a longer enterprise plan with higher interest rate

CustomerPlanAnnual ValueLoan AmountRate/YearTerm (months)
Acme CorpEnterprise$12,000$12,0006%24
TechStart IncProfessional$6,000$6,0006%24
DataViz SolutionsEnterprise$24,000$24,0007.2%36
SmallBiz ProStandard$3,600$3,6006%24
=CUMPRINC(0.006, 36, 24000, 1, 12, 0)

Result: -7,029.15

DataViz Solutions financed $24,000 over 36 months at 7.2% annual (0.6% monthly). The first 12 months accrue $7,029.15 in principal—more than Acme's $6,061.36 in absolute terms because the loan amount is larger, but the longer term (36 vs. 24 months) spreads the total principal differently across each period.

Common errors

Which CUMPRINC error are you seeing?
CUMPRINC returned an error#NUM!
Ensure start_period ≤ end_period. For example, write =CUMPRINC(0.005, 24, 12000, 1, 12, 0) not =CUMPRINC(0.005, 24, 12000, 12, 1, 0).
#NUM!
Verify both periods are positive integers between 1 and nper inclusive. Use =CUMPRINC(0.005, 24, 12000, 1, 24, 0) not (1, 25, ...).
#VALUE!
Ensure all six arguments are valid numbers. If referencing a text cell, wrap it with VALUE(): =CUMPRINC(VALUE(A1), nper, pv, start_period, end_period, type).
ErrorWhy it happensHow to fix it
#NUM!start_period is greater than end_period; CUMPRINC cannot calculate principal when the period range is inverted or logically invalid.Ensure start_period ≤ end_period. For example, write =CUMPRINC(0.005, 24, 12000, 1, 12, 0) not =CUMPRINC(0.005, 24, 12000, 12, 1, 0).
#NUM!start_period or end_period is outside the valid range 1 to nper; e.g., specifying period 25 when nper=24, or period 0.Verify both periods are positive integers between 1 and nper inclusive. Use =CUMPRINC(0.005, 24, 12000, 1, 24, 0) not (1, 25, ...).
#VALUE!One or more required arguments is non-numeric, such as rate, pv, start_period, or end_period containing text, blank cells, or unsupported data types.Ensure all six arguments are valid numbers. If referencing a text cell, wrap it with VALUE(): =CUMPRINC(VALUE(A1), nper, pv, start_period, end_period, type).

Tips and when to use something else

  • CUMPRINC returns a negative number by convention—principal paid out is negative cash flow. Wrap in ABS() to display as positive for financial reports: =ABS(CUMPRINC(...)).
  • Use CUMIPMT to calculate cumulative interest paid over the same period. Verify your amortization: Principal + Interest should equal Total Payments, so =ABS(CUMPRINC(...)) + ABS(CUMIPMT(...)) ≈ PMT(...) × number of periods.
  • If you only need the principal for a single period (one month or one quarter), use PPMT instead: =PPMT(rate, period, nper, pv). PPMT is simpler and avoids the start/end period logic.
  • Type 0 (default) assumes payments at the end of each period and is standard for subscription and loan payments. Change to type 1 only if your model collects fees at the beginning of each billing cycle.

Frequently asked questions

Why does CUMPRINC always return a negative number?
CUMPRINC represents principal flowing out (being paid down), which is negative cash flow in financial accounting convention. To display as positive for reporting, wrap in ABS(): =ABS(CUMPRINC(...)). This sign convention aligns with other amortization functions like PMT and CUMIPMT.
How do CUMPRINC and CUMIPMT work together?
CUMPRINC returns cumulative principal paid over a range of periods; CUMIPMT returns cumulative interest paid. Together they sum to the total amount paid: =ABS(CUMPRINC(...)) + ABS(CUMIPMT(...)) equals the total cash outflow for that period range.
Can I use CUMPRINC for subscription financing models?
Yes. If your business model allows customers to finance annual subscription fees via installment loans (e.g., paying $12,000/year over 24 monthly installments), CUMPRINC tracks how much principal is paid each year or quarter. This is useful for revenue recognition, cash flow forecasting, and accounting compliance.
What's the practical difference between type 0 and type 1?
Type 0 (default) assumes payments are due at the end of each period; type 1 assumes payments at the beginning. For most subscriptions and loans, use type 0. Type 1 shifts the principal distribution slightly earlier, resulting in more principal paid in the first periods and less in later ones.

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