IRR Calculator
Find the internal rates of return for equally spaced cash flows. Exact root counting distinguishes multiple rates, repeated roots and a proved absence of admissible solutions.
Rates are per selected period, not silently annualized. Unequal dates, automatic tax/FX adjustments and personalized investment recommendations are outside this model.
IRR per year
Enter every period, then calculate, or load a verified example. Solver code loads locally on first calculation.
Exact integer root counting; 50-digit decimal conversion and half-even display rounding. Arithmetic, size, subdivision and worker limits fail as inconclusive. Inputs stay in browser memory. After the solver loads, calculation works offline.
Understand the root count
One guessed rate can conceal another answer. This tool reports every distinct admissible real root when isolation completes, flags repeated roots, and shows inconclusive rather than a partial result if it reaches a resource limit.
Read the complete IRR guideFormula and methodology
NPV(r) = Σ[t=0…n] C_t / (1+r)^t = 0
x = 1/(1+r) > 0; P(x) = Σ C_t x^t
Displayed IRR (%) = 100r per period
C_t is the signed flow at period t. Period 0 is now and is not discounted. Payments are negative, receipts positive. Only finite real rates greater than −100% are admissible here. Exact integer polynomial arithmetic, square-free reduction and Sturm sign variations count and isolate positive discount-factor roots. A GCD check detects repeated roots. Successful isolation covers every admissible root; no guessed preferred rate is selected.
Verified worked examples
−100 now and +110 one period later: −100 + 110/1.1 = 0, giving 10% per period. With monthly spacing it is a monthly rate. For −100, +230, −132, both 10% and 20% make NPV zero: −100 + 230/1.1 − 132/1.1² = 0; −100 + 230/1.2 − 132/1.2² = 0.
−100, +200, −100 gives −100(x−1)²: one distinct 0% IRR with a repeated root. −100, +50, −100 has no real IRR because the polynomial discriminant is negative. All-zero flows are indeterminate, not a 0% answer. Keeping a zero matters: −100, 0, +121 gives 10%, while −100, +121 gives 21% per period.
Inputs and interpretation
- Choose one currency display and one equal interval. No FX conversion occurs.
- Enter every signed cash flow in time order, including explicit zero amounts. Do not omit an elapsed period.
- Add up to 25 entries. Removing the last period changes the timeline and clears the previous result.
- Calculate in the local worker. Editing, clearing or cancelling invalidates active work; old responses cannot overwrite the new scenario.
- Read the category first: roots, no admissible root, indeterminate, invalid or inconclusive. Multiple roots mean no unique IRR.
A large IRR does not establish low risk, causal benefits or the best use of capital. Changing every sign leaves the roots unchanged while reversing the perspective. Compare cash amounts, timing and relevant alternatives alongside any rate.
Assumptions and numerical limits
2–25 entries, each absolute magnitude at most 10^12, up to 8 fractional places and 32 characters. Zero and negative amounts are valid; missing values, grouping separators, scientific notation, dates, NaN and Infinity are rejected. All flows use the same equally spaced interval and currency basis. No day counts, annualization, reinvestment, inflation, automatic tax or fee calculations.
The exact solver has 200,000 counted arithmetic operations, an 8,192-bit monitored integer limit and 4,096 subdivisions. The worker has a five-second deadline. Exhaustion or loading failure produces inconclusive, never a claim of no IRR or a partial rate list. On success, refinement checks 10^−10 percentage-point interval width, 10^−16 relative discount-factor width and near-zero sign/relative resolution. Conversion uses 50 significant digits and half-even display rounding. Very close distinct rates can look equal at low display precision; the distinct-root count remains visible.
Financial amounts stay in browser memory, including worker messages. Solver assets load on first calculation; after loading, the worker can calculate offline. No main-thread or server fallback submits financial data. Independent CAS reference checks do not imply professional financial review or formal verification. Educational use only.
Frequently asked questions
What period does the IRR percentage represent?
How should I enter a period with no cash flow?
Why are several rates shown?
What does a repeated-root warning mean?
Is inconclusive the same as no IRR?
Are my cash flows sent, stored or used for exchange rates?
Sources and related methods
Source and methodology review: . No guaranteed returns or personalized advice.
- Microsoft: periodic IRR
- MathWorks: IRR and multiple rates
- FLINT: exact root counting
- SymPy: independent root isolation
- How to Calculate IRR: Cash-Flow Timing and Multiple Roots
- ROI Calculator
- How to Calculate ROI: Costs, Net Profit and Limits
- CAGR Calculator
- How to Calculate CAGR: Formula, Examples and Key Limits
- Absolute Return Calculator
- Absolute Return: Formula, Cash Distributions and Losses
- All tools
- All guides
- Financial Disclaimer
- XIRR Calculator
- XIRR Explained: Dates, Leap Years and Multiple Returns