IRR Calculator

Use this IRR Calculator to find the return rate that makes your investment cash flows break even in present value. Choose IRR for equal time steps, or XIRR when you have real dates and uneven timing.

Cash flow (USD)
Del
Tip: A common pattern is an upfront cost (negative) at the start, then future inflows (positive).
Date (YYYY-MM-DD)
Del
If two cash flows happen on the same day, combine them into one row.
Advanced options
Solver
Multiple-IRR scan
Decision check
Did we solve your problem today?

How to use our IRR Calculator

  1. Pick a Mode: choose "IRR (equal periods)" if each cash flow is one equal step apart (like every year or every month), or choose "XIRR (dates)" if timing is uneven.
  2. Enter your cash flows in order in "Cash flows (USD)". Use negative numbers for money you pay out (an investment) and positive numbers for money you receive back.
  3. Make sure you have at least one negative cash flow and at least one positive cash flow. Otherwise IRR usually cannot be found.
  4. If you are in IRR mode, set "Period length (IRR mode)" to match your rows (Annual, Quarterly, or Monthly).
  5. Choose "Show result as" to see either a per-period rate or an annualized rate when using Monthly or Quarterly periods.
  6. If you are in XIRR mode, fill the "Dates (XIRR mode)" table so each cash flow has a date. Dates must be valid and strictly increasing (no duplicates).
  7. Open "Advanced options" if you want to set a starting guess, compare against a hurdle rate, or increase max iterations.
  8. Click Calculate. Read "Notes and warnings" if any output shows N/A or if the sign-change warning says you might have multiple IRRs.

Definitions

Cash flow (CF): Money at a point in time. Negative means you pay money out; positive means you receive money in.

IRR (internal rate of return): The per-period rate that makes the net present value (NPV) of all cash flows equal 0 for equal time steps [1].

XIRR: An IRR-style rate that uses actual dates (uneven spacing), like spreadsheet XIRR [2].

NPV (net present value): The value today of all cash flows after discounting future cash flows by a rate [1].

Hurdle rate (discount rate): Your target annual return used to judge the investment; NPV at this rate shows whether it beats the target.

Starting guess: A rate you provide to help the solver find a solution; different guesses can lead to different IRRs when cash flows are unusual [3].

Sign change: When the cash flow series switches from negative to positive (or positive to negative), ignoring zeros. More than one sign change can mean multiple IRRs.


Methodology

What the calculator solves

IRR is defined as the discount rate that makes NPV equal 0 for a series of cash flows at equal time steps [1]. XIRR does the same idea but uses actual dates (uneven spacing), which is often more realistic [2].

IRR mode (equal periods)

NPV(r) = sum_{t=0..n} ( CF_t / (1 + r)^t )

Find r such that NPV(r) = 0

Here r is the per-period rate (decimal). Period t = 0 is your first row. This calculator requires at least one negative CF and one positive CF, matching common IRR guidance [3].

Annualizing (only when periods are Monthly or Quarterly)

r_annual = (1 + r_period)^(periods_per_year) - 1

periods_per_year is 12 for Monthly, 4 for Quarterly, and 1 for Annual. If you choose "Per-period rate", the calculator shows r_period instead of annualizing.

XIRR mode (irregular dates)

XNPV(r) = sum_{i=0..m} ( CF_i / (1 + r)^((date_i - date_0)/365) )

Find r such that XNPV(r) = 0

The exponent uses a 365-day year fraction, a common XIRR-style convention. Dates must be strictly increasing, and duplicate dates are blocked (combine same-day cash flows into one row).

Numerical solving (iteration) and the guess

The calculator finds the rate by iteration (it tries rates until NPV is close enough to 0), which is why you can set a starting guess and a max-iterations limit [3]. Rates less than or equal to -100% are treated as invalid because (1 + r) would be zero or negative in the discount factor.

Sanity checks and extra outputs

total_net_cash_flow = sum_{t} CF_t

count sign changes in sequence sign(CF_0), sign(CF_1), ... ignoring zeros

The calculator also reports NPV at the computed rate (it should be near 0 if the root is valid) and NPV at your hurdle rate to support a pass/fail decision.

Multiple IRRs (why "Try multiple guesses" exists)

If the cash flows change sign 2 or more times, the NPV curve can cross 0 more than once, so more than one IRR can exist. If you turn on "Try multiple guesses", the calculator starts the solver from several guesses and lists distinct IRR solutions it finds instead of pretending there is only one.


Sources