ForHosting KIT · Developer Utilities

Internal Rate of Return Calculator

The internal rate of return calculator estimates the periodic discount rate that makes the net present value of a cash-flow series equal to zero.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Enter the initial investment and every later receipt or expense in chronological order, using negative numbers for money paid and positive numbers for money received. The result includes IRR as a decimal and percentage, the residual NPV at the computed rate, and diagnostic details. It is useful for comparing projects while keeping the timing of their cash flows visible.

Enter a complete, consistently spaced cash-flow series

Start with the cash flow at period zero, which is commonly the initial investment and therefore a negative number. Add each later inflow or outflow in chronological order. Every position represents one equal period: if the entries are monthly, the result is a monthly IRR; if they are annual, the result is an annual IRR. Include zero when a period has no cash movement, because removing that position changes timing and therefore changes the answer. The calculator requires at least one negative and one positive value. That requirement reflects the economic meaning of an investment crossing between money committed and money returned. Values can represent any currency, provided every entry uses the same currency and scale. Do not mix monthly and annual positions, nominal and inflation-adjusted amounts, or dollars and thousands of dollars within one series. IRR is driven by both amount and timing, so a clean timeline is more important than the currency label. The optional guess is a starting percentage, not a guaranteed answer, and the default is suitable for many conventional projects.

Understand how the estimate is found

For a candidate rate, the calculator discounts each cash flow by its period and adds the discounted values to obtain net present value. It searches for a rate above negative one hundred percent where that sum reaches zero. The solver first uses a fast derivative-based iteration near the supplied guess. If that attempt does not converge, it scans a wide logarithmic range, identifies sign-changing intervals, and refines the interval with bisection. This fallback is slower but stable near the lower rate boundary and does not depend on random choices. When several sign-changing roots are detected, the calculator selects the one whose bracket is closest to the supplied guess. That rule makes the selection deterministic, but it does not remove the underlying ambiguity of unconventional cash flows. The returned residual NPV shows how closely the estimated rate satisfies the equation, while the iteration count is a diagnostic rather than a measure of investment quality. Final displayed values are rounded only after solving, so display precision does not drive convergence. If no supported root can be bracketed or refined, the request returns an input error instead of presenting a misleading rate.

Interpret IRR alongside scale, risk, and alternative returns

IRR expresses a periodic percentage return implied by the entered cash flows. For a conventional project with one initial outlay followed by benefits, a higher IRR generally indicates more return relative to the timing of capital. A common decision rule compares IRR with a required rate of return: the project may be attractive when IRR exceeds that hurdle, assuming the forecasts and risk assumptions are credible. However, IRR alone does not reveal how many dollars of value a project creates. A small project can have a high IRR while adding less total value than a larger project with a lower rate, so compare net present value at an appropriate discount rate as well. Multiple sign changes can create multiple mathematical IRRs, and mutually exclusive projects can rank differently under IRR and NPV. The measure also embeds a reinvestment interpretation that may be unrealistic. Treat this result as an estimate from a forecast, not a promise. Stress-test important receipts, costs, delays, terminal values, taxes, and financing assumptions. For irregular calendar dates, use a date-aware XIRR method rather than treating uneven intervals as equal periods.

Screen a capital project

Estimate the return implied by an initial outlay and forecast operating cash flows before comparing it with the company's hurdle rate.

Compare investment scenarios

Change costs, receipts, or timing assumptions and observe how the project's periodic IRR responds under each scenario.

Check a spreadsheet model

Recalculate IRR from the model's exported cash-flow row and compare the rate and residual NPV with the spreadsheet result.

What does the calculator cost?

Each API request costs $0.002. The price is per calculation, not per cash-flow period.

Is the result annual or monthly?

It uses the same period as the cash-flow spacing. Monthly inputs produce a monthly IRR, while annual inputs produce an annual IRR.

Why must the cash flows contain both signs?

An IRR root normally requires money to move in opposing directions. A series containing only inflows or only outflows cannot cross zero NPV in the supported rate range.

Can a project have more than one IRR?

Yes. Cash flows that change sign more than once can produce multiple roots. When multiple sign-changing roots are detected, this calculator chooses the one closest to the supplied guess.

What does NPV at IRR mean?

It is the net present value recalculated at the estimated IRR. It should be very close to zero; a tiny residual can remain because computers use finite-precision arithmetic.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/finance/irr

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/finance/irr \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cash_flows":[-100000,30000,40000,50000]}'
{
  "cash_flows": [
    -100000,
    30000,
    40000,
    50000
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "finance.irr",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →