ISPMT Function (OpenOffice Calc)
Use OpenOffice ISPMT’s equal-principal interest model, with native zero-index and endpoint examples that distinguish it from level-payment IPMT.
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: =ISPMT(.1;0;10;1000) returned approximately -100 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 ISPMT returns
ISPMT evaluates PresentValue×Rate×(Period/TotalPeriods−1). It describes the interest on a linearly declining principal balance, rather than the constant-total-payment annuity used by IPMT. The source equation is explicit and has no payment-timing or future-value argument. Release implementation.
Syntax and arguments
=ISPMT(Rate; Period; TotalPeriods; PresentValue)
All four arguments are required. Rate is per modeled interest interval, TotalPeriods is the number of equal principal reductions, and Period indexes the elapsed reductions. In this model Period=0 uses the original principal, while Period=TotalPeriods is the zero-balance endpoint.
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 |
|---|---|---|
=ISPMT(.1;0;10;1000) |
-100 |
-100 |
=ISPMT(.1;1;10;1000) |
-90 |
-90 |
=ISPMT(.1;5;10;1000) |
-50 |
-50 |
=ISPMT(.1;9;10;1000) |
-10 |
-10 |
=ISPMT(.1;10;10;1000) |
0 |
0 |
=ISPMT(.1;1;10;-1000) |
90 |
90 |
=ISPMT(0;2;10;1000) |
0 |
0 |
=ISPMT(.1;2.5;10;1000) |
-75 |
-75 |
Practical worksheet
With principal 1000, rate 10% per period and ten equal principal reductions, =ISPMT(0.1;0;10;1000) gives −100. After one reduction, index 1 gives −90; index 9 gives −10. Index 10 is zero because the principal has been fully reduced. These deliberately simple inputs illustrate indexing, not a recommended borrowing rate.
The ten interest-bearing intervals are indexes 0 through 9. Do not interpret the zero at index 10 as an eleventh payment. For each actual interval, the equal principal reduction is 100, and total outgoing payment combines that principal with the declining interest.
Advanced interpretation and checks
The difference between adjacent interest outputs is PresentValue×Rate/TotalPeriods. Here it is 10, so the signed interest moves from −100 to −90, then toward zero. Summing the ten interest intervals gives −550 by the arithmetic-series formula; that sum is an independent model calculation.
IPMT instead derives interest from a level total payment and an exponentially evolving balance. Its usual payment periods begin at 1. Passing the same period number to both functions does not make their balance models equivalent.
The fractional index 2.5 is accepted in the ordinary numerical table and gives −75 by linear interpolation. That is an arithmetic evaluation, not proof that the contract has a payment halfway through an interval.
Boundaries and troubleshooting
The core routine does not enforce a positive TotalPeriods or restrict Period to the intended schedule. Validate those requirements yourself: for interest-bearing intervals, use an integer index from 0 through TotalPeriods−1 and a positive integer count. A total count of zero introduces division by zero. Negative or beyond-end indexes may produce algebraic results without describing a sensible loan.
Related functions
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.