Contact

IPMT Function (OpenOffice Calc)

Financial Intermediate OpenOffice Calc

Split the interest part of a level payment with OpenOffice IPMT, including native first-payment and annuity-due examples with precise period limits.

Verification status: Eight ordinary reference formulas were recalculated in Apache OpenOffice 4.1.16 on Linux x86-64, Build 9816, through generated native ODF and GUI hard recalculation. Saved identities and results were checked. How formula examples are checked

Quick answer: =IPMT(.01;1;12;1000) returned approximately -10 in the tested Apache OpenOffice 4.1.16 build.

Availability and version history

  • Introduced: First release not established; documented by OpenOffice.org 3.3.
  • Supported in: Apache OpenOffice 4.1.16; this is a verified release, not a final supported version.
  • Scope: Desktop Calc, English function names and semicolon-separated formulas.
  • Checked: October 14, 2026. Eight ordinary reference formulas were recalculated from generated ODF in 4.1.16 on Linux x86-64, Build 9816. Source and independent mathematics were also checked.

What IPMT returns

IPMT returns the interest component of a constant-payment annuity for one period. It uses the payment calculated from the same rate, total count, present value, final target and timing. It does not model an equal-principal schedule; ISPMT is a different arithmetic model. Release implementation.

Syntax and arguments

=IPMT(Rate; Period; NPer; PresentValue [; FutureValue [; Type]])

Rate, Period, NPer and PresentValue are required. FutureValue and Type default to 0. Type=0 means end-period payments; Type=1 means beginning-period payments. The source rejects Period<1 or Period>NPer. For a schedule of actual installments, use whole-number periods and a positive whole total count.

Eight reproducible examples

The native column contains saved 4.1.16 results; the independent column uses high-precision mathematical calculations. Values are displayed to twelve decimal places, so harmless final-place differences remain visible. Rate decimals such as 0.05 represent 5%, not 0.05%.

Formula Native 4.1.16 result Independent reference
=IPMT(.01;1;12;1000) -10 -10
=IPMT(.01;2;12;1000) -9.211512113217 -9.211512113217
=IPMT(.01;12;12;1000) -0.879690977013 -0.879690977013
=IPMT(.01;1;12;1000;0;1) 0 0
=IPMT(.01;2;12;1000;0;1) -9.120309022987 -9.120309022987
=IPMT(0;2;12;1200) 0 0
=IPMT(.01;2;12;-1000) 9.211512113217 9.211512113217
=IPMT(.02;3;5;1000;-500) -16.118400439093 -16.118400439093

Practical worksheet

For a positive loan of 1000 at 1% per period over twelve periods, the first month-end interest component is −10: the starting balance times the rate with an outgoing sign. The second and last interest amounts are smaller in magnitude because principal is being repaid. The native table shows all three positions.

For Type=1, the first payment occurs immediately and its interest component is zero. The second payment has interest on the balance left after that first payment. Do not apply the month-end first-interest formula unchanged to an annuity due.

Advanced interpretation and checks

For an end-period loan with payment p, the outstanding balance before period k is PV×(1+r)^(k−1)+p×((1+r)^(k−1)−1)/r. IPMT is the negative of that balance times r. This identity supplies an independent check on the individual native examples.

At each matching period, PMT=IPMT+PPMT. A beginning-period schedule changes the balance timing, while a nonzero final target changes the constant payment and the interest path. The final example retains a remaining balance rather than fully amortizing to zero.

The zero-rate example returns zero interest. Reversing the signs of the modeled principal and matching final target reverses payment components, but changing only one sign can describe a different transaction.

Boundaries and troubleshooting

The source checks the interval 1≤Period≤NPer but does not require an integral Period. A fractional value can enter its exponential arithmetic; that is not a contractual fractional installment. The source also treats positive nonbinary Type as beginning timing. Validate whole period numbers and Type 0/1 separately for a readable schedule.

Also validate Rate > −1 before calling this function in an ordinary annuity model. The pinned helper calls ScGetZinsZ and then ScGetRmz, whose nonzero-rate branch uses log1p(Rate). Invalid-rate IPMT and PPMT cases were not executed here; this source-based caution does not claim an observed failure for either function.

Official evidence and checking scope

The generated ODF input produced the informational load warning “Not all attributes could be read.” After it was acknowledged, the sheet was hard-recalculated and saved separately. All eight ordinary function identities and results were reconciled; a stale SUM cache changed from 999999 to 3 and an uncached SUM returned 7. This establishes the stated formula examples, not every workbook style or every invalid input. The original XLSX was not executed. Other explanatory calculations are independent mathematical checks; this guide does not claim a fully executed amortization schedule, other releases or all boundary cases.