Cash-on-cash return and internal rate of return answer two different questions, and the gap between them matters most to the people the usual articles ignore: landlords who buy a duplex, hold it for a decade or longer, and have no exit on the calendar. Cash-on-cash asks what this year's after-mortgage cash flow earned on the cash you put in. It is a one-year snapshot, and the cash-on-cash guide works the formula in full, so this page does not re-teach it. IRR asks something larger and stranger: across the entire life of the deal, every dollar in and every dollar out on the date it moved, what single annual rate would make the whole thing balance to zero.
That second question sounds more sophisticated, and for a sponsor raising money against a five-year exit it is. For a long-term holder it quietly smuggles in an assumption you may never act on: a sale. IRR cannot be computed without one. The number it gives you is only as real as the sale price you invented to feed it. This page builds a ten-year hold cash flow by cash flow, computes the IRR honestly, then makes the case that for an open-ended hold, the simpler number is often the more useful one.
What each metric actually measures
Cash-on-cash is a ratio of two numbers from a single year. The numerator is after-mortgage cash flow, principal payment included, because that money left your account. The denominator is the cash you invested to get the property rented: down payment, closing costs, and make-ready. Divide one by the other and you have a percentage you can compare against last year, against another property, or against what the same cash would earn in a treasury.
IRR is not a ratio. It is the discount rate that sets the net present value of a dated stream of cash flows to zero. Feed it your invested cash as a negative number at year zero, each year of cash flow as it arrives, and the net proceeds from a sale at the end, and it solves for the one rate that ties the timeline together. Because it weighs every dollar by when it shows up, IRR captures three things cash-on-cash never sees: loan paydown that becomes real only at sale, appreciation, and the time value of money itself.
IRR is the rate r where the sum of each cash flow ÷ (1 + r) raised to its year equals zero, including the negative outflow at year zero.
A ten-year hold, worked out
Say you buy a duplex for $340,000 with 25% down on a 30-year loan at 7% on the remaining $255,000. Total cash invested is $98,500: the $85,000 down payment, $7,400 in closing costs, and $6,100 of make-ready before the first tenant. In year one the property throws off $5,886 of pre-tax cash flow, the honest figure from the cash-on-cash guide, a 6.0% cash-on-cash return.
Hold it ten years. Assume rent and expenses both grow about 3% a year, so net cash flow grows with them, and assume the property appreciates 3% a year as well. Here is the cash-flow timeline, rounded:
- Year 0: −$98,500 (cash invested at close)
- Year 1: $5,886
- Year 2: $6,180
- Year 3: $6,490
- Year 4: $6,820
- Year 5: $7,160
- Year 6: $7,520
- Year 7: $7,900
- Year 8: $8,290
- Year 9: $8,710
- Year 10: $9,150 of cash flow plus the net sale proceeds
The sale is where the hidden value lands. At 3% appreciation the $340,000 duplex is worth about $456,900 after ten years. Selling costs at 8%, roughly $36,600, leave $420,300. The loan balance after ten years of payments on that 7% note is about $218,800, because early payments are mostly interest and principal builds slowly. Pay that off and you walk away with roughly $201,500 before taxes. So the year-ten line is $9,150 of cash flow plus $201,500 of sale proceeds, or $210,650.
Drop that timeline into the XIRR function in any spreadsheet and the internal rate of return on this hold is about 11.6%. The first year's cash-on-cash was 6.0%. Both numbers are correct. They disagree because IRR is counting the loan paydown and appreciation that the annual cash return, by design, never books until the day you sell.
These figures are illustrative and rounded to show the method, not a forecast. Real appreciation, rent growth, and selling costs vary, and small changes in the assumed sale price swing IRR sharply. Build the timeline with your own numbers before you trust a single IRR.
Compute it in a spreadsheet, not by hand
You can see from the formula why nobody derives IRR by hand. Solving for r means finding the root of a tenth-degree polynomial, and there is no clean algebra for that. Every practitioner uses a function instead. Put your dates in one column and the matching cash flows in the next, with year zero negative, and call XIRR on the two ranges. XIRR handles irregular dates; the plain IRR function assumes evenly spaced periods, which is fine for an annual model like the one above.
Two caveats come with the convenience. First, IRR carries a reinvestment assumption baked in: it implicitly treats every interim cash flow as if you could reinvest it at the same IRR, which for an 11.6% deal is optimistic. That is why a high IRR on a deal with large early distributions can flatter reality. Second, a cash-flow series that changes sign more than once, say a big roof and HVAC year that pushes a mid-hold year negative, can produce two mathematically valid IRRs. When that happens the single number stops being meaningful, and you read the cash flows and equity directly instead.
Why IRR loses its edge on an open-ended hold
IRR was built for deals with a planned exit. A syndicator buys, runs a business plan, sells in five years, and reports IRR to limited partners because the whole point was the round trip. Strip out the exit and the metric starts floating. On the duplex above, roughly $191,000 of the IRR's appeal lives in that single year-ten sale line. Move the assumed sale price 10% in either direction and the IRR swings by more than a full point off a number you made up.
If you are holding for income with no sale on the horizon, that exit assumption is doing most of the work in a calculation you cannot act on. The decisions a long-term holder actually faces are different: whether this year's cash return is holding up, and whether the equity piling up inside the property is still earning its keep. The first is cash-on-cash. The second is return on equity, which is where when to sell a rental picks up the thread. Neither needs an invented sale price to mean something today.
When IRR is still the right call
IRR earns its keep the moment timing genuinely differs between your choices. Three cases come up for small landlords:
- Comparing deals with different exit horizons. A flip-and-redeploy at three years and a hold at ten are not comparable on cash-on-cash, because that metric ignores time entirely. IRR puts them on one axis.
- Deciding whether to sell now or hold. Modeling the IRR of the remaining years versus selling and redeploying the equity is a clean way to test the return-on-equity question with the time value of money included.
- Underwriting against a seller's pro forma. When a listing quotes a glossy IRR, rebuilding it from your own assumptions exposes which line is carrying the number. Pro forma vs actuals covers that discipline.
Outside those cases, reach for the simpler metric first. A worked deal analysis leans on cash-on-cash and cash flow precisely because they describe what you can verify each month, and you can run the year-one return in seconds with the cash-on-cash calculator.
The inputs are the hard part, not the math
Whichever metric you choose, the function is the easy part. XIRR runs in a cell. The work is assembling a true cash-flow history, every year of rent collected and every expense paid, captured and categorized, plus an honest read on what your equity is right now. Get one $2,400 capital outlay in the wrong year and the IRR shifts; miss a season of repairs and the cash-on-cash inflates. The numbers are only as good as the ledger underneath them.
I self-manage my own small portfolio from two time zones away and close the books on the 5th of each month, and I built rents.ai because a spreadsheet kept losing exactly those entries. Its cash-on-cash analytics and portfolio equity tracking give you the year-by-year cash-flow history and the current equity that an IRR model needs as inputs, and the ledger exports to CSV so you can drop those flows into a spreadsheet's XIRR yourself. What it will not do is compute IRR for you or guess your sale price, because the exit is your assumption to own. A 6% you can verify is worth more than an 11.6% that hinges on a number you invented.