XIRR Function (OpenOffice Calc)
Calculate dated cash-flow returns with Apache OpenOffice XIRR. Verify actual-day timing, the fixed 365 denominator, guesses and an XNPV residual.
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, inputs and results were checked. How formula examples are checked
Quick answer: =XIRR(F10:F14;G10:G14) returned 0.272768799283 in the tested Apache OpenOffice 4.1.16 build. Use the numeric worksheet setup below for these range addresses.
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 arithmetic were checked.
What XIRR returns
XIRR seeks an annualized rate that makes a dated cash-flow sum zero. Each exponent uses the actual difference from the first date divided by 365, including intervals spanning leap days. This timing model differs from the equal-period model in IRR. Release implementation.
Syntax and arguments
=XIRR(Values;Dates[;Guess])
- Values: numeric cash-flow range with payments and receipts carrying opposite signs.
- Dates: equally sized numeric-date range, paired with Values row by row.
- Guess: optional starting rate, default 0.1; the release rejects a starting guess at or below −1.
- Supply at least two matched entries and verify the date serial origin.
Numeric worksheet setup
Enter the values in the stated cells. G contains numeric date serials with the December 30, 1899 origin. A dash marks an unused cell, not a zero to enter.
| Row | F: ordinary flows | G: date serial and interpretation | H: delayed receipt | I: two investments | J: two flows | K: three receipts |
|---|---|---|---|---|---|---|
| 10 | −1000 | 45292 (2024-01-01) | −1000 | −1000 | −1000 | −1000 |
| 11 | 200 | 45474 (2024-07-01) | 0 | −100 | 1100 | 400 |
| 12 | 300 | 45658 (2025-01-01) | 0 | 300 | — | 400 |
| 13 | 400 | 45839 (2025-07-01) | 0 | 500 | — | 400 |
| 14 | 500 | 46023 (2026-01-01) | 1500 | 700 | — | — |
IRR treats successive numeric entries as equal periods; XIRR uses their actual paired dates. Keep the timing models distinct.
Eight reproducible examples
The native column contains saved 4.1.16 results; independent references use high-precision arithmetic and the stated source rules. Values are shown to twelve decimal places where needed. The range examples use the numeric setup above.
| Formula | Native 4.1.16 result | Independent reference |
|---|---|---|
=XIRR(F10:F14;G10:G14) |
0.272768799283 |
0.272768799283 |
=XIRR(F10:F14;G10:G14;.05) |
0.272768799283 |
0.272768799283 |
=XIRR(F10:F14;G10:G14;.2) |
0.272768799283 |
0.272768799283 |
=XIRR(H10:H14;G10:G14) |
0.224405252748 |
0.224405252748 |
=XIRR(I10:I14;G10:G14) |
0.217425129684 |
0.217425129684 |
=XIRR(J10:J11;G10:G11) |
0.210633821537 |
0.210633821537 |
=XIRR(K10:K13;G10:G13) |
0.20343248278 |
0.20343248278 |
=XIRR(K10:K13;G10:G13;.05) |
0.20343248278 |
0.20343248278 |
Practical worksheet
Using F10:F14 and G10:G14 gives approximately 0.272768799283, or 27.2768799283% annually. The actual offsets from January 1, 2024 are 0, 182, 366, 547 and 731 days. Those are not four equal annual periods, so the result differs from IRR on the same amounts.
For J10:J11 paired with the first two dates, −1000 becomes 1100 after 182 days. The annualized result is 1.1^(365/182)-1, approximately 0.210633821537. A ten-percent return over that interval is not itself a ten-percent annual rate.
Advanced interpretation and checks
Check a candidate r with XNPV(r;F10:F14;G10:G14). Independently, sum each value divided by (1+r)^((date-first_date)/365). This residual check tests the exact fixed-365 model rather than a YEARFRAC convention chosen separately.
The default, 0.05 and 0.2 guesses converge to the same root for the ordinary F schedule. That agreement is useful for this input but does not prove uniqueness for arbitrary cash flows. Keep dates and amounts paired when sorting; sorting only one range changes the problem.
Boundaries and troubleshooting
The function checks that the ranges have equal counts of at least two and validates the initial guess. Its Newton calculation allows up to fifty iterations, with rate-change and residual criteria. A result should still be checked against the original dated cash flows, especially when the sequence changes sign repeatedly.
The native examples use numeric values and dates in chronological order. Text dates, mismatched ranges, blank entries, unsuccessful searches and invalid guesses were not executed. A date displayed in a familiar format can still be text; confirm that it is a numeric date serial before using it.
Related functions
Official evidence and checking scope
- Function-specific release implementation
- lcl_sca_XirrResult calculation
- lcl_sca_XirrResult_Deriv1 calculation
The generated ODF produced the informational load warning “Not all attributes could be read.” The sheet was hard-recalculated and saved separately. All eight ordinary function identities, inputs and results were reconciled; a stale SUM cache changed from 999999 to 3 and an uncached SUM returned 7. This establishes the stated examples, not every workbook style or invalid input. Other explanatory identities are independent calculations. The authoring-tool XLSX was not executed in OpenOffice, and its preview values are not the native results reported here.