Calculate IRR from periodic cash flows
The internal rate of return, or IRR, is the single rate that makes a series of cash flows worth exactly zero today. Enter the flows in order, one row per period, starting with period 0. Money you pay out is negative, such as an initial investment or a later deposit, and money you receive is positive, such as a payout or a final sale. The rows must be equally spaced: each one is a period after the row above it, and a row you type as 0 is still a real period.
The example on the page is a hypothetical project that costs 50,000 now, costs another 10,000 a year later, then returns 30,000 and 50,000. Its IRR is 12.4464% per period. Because the period is a year, that is also the annual rate. Choose a different number of periods per year and the same rate is reported both per period and as an effective annual rate, with each labelled so that neither is mistaken for the other.
Rows can run from period 0 to period 1,200. A blank row in the middle of the list is rejected rather than silently closing the gap, because moving a cash flow one period changes the answer.
Fixed deposits, withdrawals and terminal value
The second tab covers a common case without typing a row for every period: an initial investment, regular deposits or withdrawals of one size, and a final balance. Enter the starting amount, the ending balance, the holding period in years and months, the size and frequency of the regular amount, and whether it is deposited or withdrawn.
Timing matters. With payments at the end of each period the first one falls a period after the start; with payments at the beginning the first falls at time zero. The ending balance is a valuation at the end of the holding period, not another payment. When the holding period is not a whole number of payment periods, the last partial period gets no invented payment: only scheduled dates that fall inside the holding period count.
The default case invests 10,000, withdraws 100 a month for 30 months and ends with a balance of 15,000. That is 30 withdrawals totalling 3,000.00, a net profit of 8,000.00 and an annual IRR of 29.768%. For 2.5 years of 100 deposits against the same 10,000 start and 15,000 end, annual deposits at the end of each year make 2 deposits and give 16.8691%; at the beginning of each year they make 3 deposits and give 16.4079%; monthly deposits at period end make 30 deposits and give 6.6739%.
A fixed-payment contract with no ending balance works too. Paying 10,000 now to receive 400 a month for 30 months returns 12,000 in total, and the page reports an annual IRR of 15.6508%. That is the rate at which the 30 payments are worth exactly the 10,000 paid, which is how an annuity or a loan is priced.
IRR formula and the NPV check
Net present value discounts every flow back to today: NPV = CF0 + CF1 / (1 + r) + CF2 / (1 + r)^2 + and so on. The IRR is the rate r at which that sum equals zero. For the simplest case, paying 100 now and receiving 110 a year later, the equation is -100 + 110 / (1 + r) = 0, so r = 10%.
The NPV tells you what happens at any other rate. At 8% the same flows are worth 1.85 today, because 110 received later is discounted by less than the 10% that exactly cancels the 100. At 12% they are worth -1.79. For conventional flows NPV falls as the rate rises and crosses zero once, which is why a single IRR exists.
The page shows a table of discount factors and discounted values at the discount rate you enter, and the values add up to the NPV. It also checks its own answer: discounting the flows at the reported IRR must leave a result of zero, measured against the size of the discounted flows. If that check fails, the page says the result is unavailable instead of showing a rate it cannot support.
You can verify any result by hand. Discounting the example's flows at its IRR of 12.4464% gives -50,000.00, -8,893.12, 23,726.30 and 35,166.82. They add up to -0.00, which is the defining property of an internal rate of return. If a spreadsheet gives a different answer for the same rows, compare the period spacing and the signs first.
Monthly IRR versus annualized IRR
A period is whatever one row represents. If the rows are months, the IRR is a rate per month. A 10% monthly IRR is not 120% a year: compounding twelve months gives 1.10^12 - 1 = 213.8428% a year. Multiplying a period rate by the number of periods understates the growth and is not what this page does.
The conversion in the other direction works the same way. An annual effective rate a corresponds to a period rate of (1 + a)^(1/f) - 1 for f periods a year. Whenever a result is shown, check the label: per period, or annual effective. Comparing a monthly IRR with an annual hurdle rate without converting one of them is one of the most common mistakes with this measure.
The same conversion applies to any period length. A monthly IRR of 1% compounds to 12.6825% a year, not 12%, and a weekly IRR of 0.2% compounds over 52 weeks to 10.9485%. If your hurdle is an annual effective 8%, its monthly equivalent is 0.6434%, and that is the figure a monthly IRR should be compared with. Converting one side, rather than comparing mismatched units, keeps the comparison honest.
Multiple IRRs and unavailable results
Cash flows that change sign more than once can have more than one IRR. Take -100 now, +230 after one period and -132 after two. Discounting at 10% gives an NPV of 0.00, and discounting at 20% also gives 0.00, so both are internal rates of return. At 5% the NPV is -0.68, at 15% it is 0.19 and at 30% it is -1.18, so the sign of NPV flips around both roots.
The page counts the sign changes after combining flows that fall at the same time and ignoring zeros. With one change a unique rate exists and it is reported. With more than one it says that no unique rate is reported and keeps the NPV, which is well defined at any discount rate. It does not pick the root a search happens to find first.
Some results are unavailable for other reasons. If every flow is an outflow, or every flow is an inflow, or the flows cancel, no rate can balance them. If the only rate that works lies outside -99.9999% to 10,000%, the page says none was found in the supported range, which is different from proving no rate exists anywhere. A total loss with no positive flow has no finite IRR.
A sign-change count is a useful guide rather than a proof of how many rates exist. It limits how many positive roots there can be: one sign change guarantees a single rate, while two or more allow several. Typical sources of a second sign change are a clean-up or restoration cost at the end of a project and a large refurbishment in the middle of a property's life. In both cases a single IRR hides the real shape of the cash flows, which is why the NPV table stays visible.
Compare IRR, NPV and ROI
ROI is the total gain divided by the amount invested; it ignores timing. IRR uses timing but returns a rate, not an amount. NPV returns an amount at a discount rate you choose, but depends on that choice. Each answers a different question, and none of them measures risk.
Scale matters. Project A pays 120 a year after an outlay of 100, an IRR of 20%. Project B pays 1,150 a year after an outlay of 1,000, an IRR of 15%. At a 10% discount rate A has an NPV of 9.09 and B has 45.45. The higher IRR belongs to the smaller project, and the larger project adds more value in money terms. Neither number automatically says accept or reject; compare them with the alternatives, the risk and the money available.
IRR also assumes that money released along the way can be reinvested at the IRR itself, while NPV assumes reinvestment at the discount rate. For a long project with a very high IRR that is an optimistic assumption, and it is one reason to read the two measures together. ROI hides timing completely: 1,000 growing to 1,150 is a 15% ROI whether it takes one year or three, yet the IRR falls from 15% to 4.7690% a year when it takes three.
When dates matter
Periodic mode treats every period as equal in length. Real deposits and withdrawals fall on real days, and a leap year changes the spacing slightly. For flows on exact dates, use the XIRR calculator for dated cash flows, which counts the actual days between dates.
The gap can be small but it is real. 100 invested on 2024-01-01 and 110 received on 2025-01-01 is 366 days. Treated as one yearly period the IRR is 10.0000%, while the actual-days calculation gives 9.9714%. Irregular spacing matters more: a deposit on the first of one month and another on the fifteenth of the next cannot be placed on equal periods without distorting the answer, so use dated flows for those.
Assumptions and reproducible calculations
All inputs are hypothetical amounts you supply. The page ignores taxes, fees, inflation and any reinvestment of interim cash flows, and it does not forecast or recommend anything. Calculations use full precision internally and round only for display. A result is produced only when you press Calculate, and any edit hides the previous result so that an old answer cannot be mistaken for a new one.
The exported CSV lists every event with its time, cash flow, discount factor and discounted value, so you can reproduce the NPV in a spreadsheet. To compare the answer with total return, compare total ROI; to see how long recovery takes, check simple and discounted payback; and for level-payment problems with a quoted rate, solve a level-payment TVM problem.
Rates are shown to four decimals and money to two, while the CSV carries more digits so that a spreadsheet check matches. The example flows are hypothetical and are not a recommendation of any investment or financing decision.
IRR questions
What makes an IRR annual?
The cash-flow period and the annualization convention do. A rate per period becomes an annual effective rate by compounding it over the periods in a year, so always read which of the two numbers you are looking at. This page shows both and labels each.
Can the amounts be uneven?
Yes. Each period can carry a different amount, including zero. What must stay regular is the spacing: every row is one period after the one above it. For flows on exact calendar dates use the dated XIRR calculator instead.
Is IRR the same as ROI?
No. ROI divides the total gain by the amount invested and ignores when money moved. IRR uses the timing of every flow, so two investments with the same ROI can have very different IRRs if one returns its money sooner.
Why can there be more than one IRR?
Several sign changes in the cash flows can produce several rates that make NPV zero. When that happens the page withholds a single headline rate and keeps the NPV, which stays well defined at any discount rate you choose.
Does an IRR above the hurdle always mean accept?
No. Compare NPV, scale, risk and the alternatives, and be careful with unconventional flows where the shortcut can point the wrong way. A higher IRR on a small project can add less value than a lower IRR on a large one.
Can I enter exact transaction dates?
Not here. Periodic mode assumes equal periods. Use the XIRR calculator for dated deposits and withdrawals; it counts the actual days between dates over a 365-day year, so a leap year is handled as it really falls.