finance-business · personal-investing · alternatives-accounts

Rental Property Cash Flow Return Calculator

Work out the cash flow, cap rate, cash-on-cash return, debt service coverage and return on the money invested of one rental property, before income tax, then simulate 100 futures of rent growth, vacancy and appreciation inside a seeded, reproducible workbook to see the spread of returns, the share returning less than the mortgage rate and the share with a year of negative cash flow. Estimates for education, not advice.

Last updated

Calculator overview

Inputs and outputs

This summary comes from the calculator's published input and output contract.

Inputs

Repairs and maintenance (required)
About this input

A share of scheduled rent set aside each year for repairs and replacements.

Unit % Default 0.08 Range 0 to 0.5
Selling costs (required)
About this input

Commission and fees as a share of the sale price.

Unit % Default 0.06 Range 0 to 0.15
Rent growth volatility (required)
About this input

How much each year's rent growth swings around the average, as a standard deviation. 0 makes rent growth certain.

Unit % Default 0.02 Range 0 to 0.1
Monthly rent in the first year (required)
About this input

The full scheduled rent per month in the first year, before vacancy.

Unit currency/month Default 2500 Range 0 to 1000000000000
Expected yearly rent growth (required)
About this input

The average yearly change in rent. Rent in the first year is the rent you entered; growth starts in the second year.

Unit % Default 0.03 Range -0.1 to 0.15
Vacancy in a bad year (required)
About this input

See the good-year vacancy. Enter the same value in both to remove vacancy uncertainty.

Unit % Default 0.08 Range 0 to 0.5
Vacancy in a good year (required)
About this input

The simulation draws each year's vacancy evenly between this and the bad-year figure.

Unit % Default 0.02 Range 0 to 0.5
Vacancy and lost rent (required)
About this input

The share of scheduled rent you expect not to collect. Used for the figures at the average assumptions.

Unit % Default 0.05 Range 0 to 0.5
Property tax in the first year (required)
About this input

Yearly property tax in the first year; it grows each year at the cost growth rate.

Unit currency/yr Default 3600 Range 0 to 1000000000000
Loan term (required)
About this input

Years to repay the loan. If you hold longer than the term, the loan is paid off and debt service stops.

Unit years Default 30 Range 1 to 40
Mortgage interest rate (required)
About this input

The fixed yearly rate on the loan. Payments are monthly. The share of futures with a return below this rate is reported.

Unit % Default 0.065 Range 0 to 0.2
Down payment (required)
About this input

Cash paid toward the price. The loan is the price less this. Enter the full price for a cash purchase.

Unit currency Default 60000 Range 0 to 1000000000000
Yearly growth of property tax and insurance
When omitted Blank
About this input

How fast property tax and insurance grow each year. Leave blank to grow them at the same rate as rents.

Unit % Default Not set Range -0.1 to 0.15
Closing costs paid in cash
When omitted Blank
About this input

Fees paid at purchase that are not part of the price. They add to the money invested. Leave blank for none.

Unit currency Default Not set Range 0 to 1000000000000
Expected yearly appreciation (required)
About this input

The average yearly change in the property value, as an arithmetic mean.

Unit % Default 0.035 Range -0.1 to 0.15
Appreciation volatility (required)
About this input

How much each year's change in value swings around the average, as a standard deviation.

Unit % Default 0.08 Range 0 to 0.3
Purchase price (required)
About this input

What you pay for the property. The cap rate divides the first year's net operating income by this.

Unit currency Default 300000 Range 1 to 1000000000000
Random seed
When omitted Blank
About this input

The starting number of the workbook's random-number generator, a whole number from 1 to 2,147,483,646. The same seed and inputs always give the same result, so passing a result's seed again reproduces it. Leave blank for 42, the seed of the published examples. The web page does not show this input: each Simulate press first sets it to the last result's next seed.

Default Not set Range 1 to 2147483646
Property management (required)
About this input

A share of the rent actually collected. Enter 0 if you manage it yourself.

Unit % Default 0.08 Range 0 to 0.5
Years you hold before selling (required)
About this input

How many years you own the property. It is sold at the end of the last year, for its value less selling costs and the loan balance.

Unit years Default 10 Range 1 to 30
Insurance in the first year (required)
About this input

Yearly insurance premium in the first year; it grows each year at the cost growth rate.

Unit currency/yr Default 1500 Range 0 to 1000000000000

Outputs

Next seed in the same stream
About this output

A new seed from the same generator, the start of the next unused stretch of its sequence: a run with it draws fresh futures that share no draw with these. On the web page each Simulate press first enters it as the seed, except the first press after a worked example or Reset.

No unit declared
Net operating income in the first year
About this output

Net operating income in the first year at the average assumptions: the rent collected less management, repairs, property tax and insurance.

Unit currency/yr
Share of futures returning less than the mortgage rate
About this output

The share of the 100 simulated futures whose return is less than the mortgage rate.

Unit %
Mortgage amount (price less down payment)
About this output

The purchase price less the down payment.

Unit currency
90th-percentile return across the simulated futures
About this output

The 90th percentile of the returns across the simulated futures: one future in ten returns more.

Unit %
Model Status
About this output

Whether the inputs describe a property the workbook can work out, any result to notice, or OK. The NOT VALID and CHECK reasons are listed in the methodology.

No unit declared
Monthly loan payment
About this output

The fixed monthly payment of principal and interest.

Unit currency/month
Share of futures with at least one year of negative cash flow
About this output

The share of the simulated futures in which at least one year's cash flow is negative, so you add money that year.

Unit %
Workbook self-check
About this output

PASS when the workbook's model consistency checks hold for this result: the generator states in range, every grid complete and every future counted, the return search bracketing its root, the loan, the first-year bridge and the chart tables consistent, and the percentiles in order. FAIL means the result should not be trusted; please report it.

No unit declared
Futures simulated
About this output

The number of futures this result simulated: always 100.

Unit trials
Year by year at the average assumptions
About this output

Each year of the hold at the average assumptions: the scheduled rent, net operating income, debt service, cash flow, principal paid down, appreciation, loan balance and property value, with the sale proceeds in the last year.

No unit declared
Seed used
About this output

The seed this result used: the seed supplied, or 42 when left blank. Pass it again with the same inputs to reproduce this result exactly.

No unit declared
Share of futures where the owner pays to sell
About this output

The share of the simulated futures in which the sale does not cover the loan and the selling costs, or no return above -99% a year exists; those futures show a return of -99%.

Unit %
Cash from the sale after selling costs and the loan payoff
About this output

At the average assumptions, the value at the end of the hold less selling costs and the loan balance; negative when the owner has to add money to sell.

Unit currency
Sampling error of the shares of futures
About this output

About how far, in percentage points, these shares could sit from the shares that a very large number of futures would give: the 95 percent margin of a share estimated from this many futures, at its widest. 9.8 points at 100 futures. Two runs with different seeds are two such estimates, so the 95 percent range of their difference is wider, about 1.4 times this margin (13.9 points at 100 futures).

Unit percentage points
Debt service coverage in the first year Conditional
About this output

Net operating income in the first year divided by debt service in the first year. Below 1, the property's income does not cover the loan payments. Not shown for a cash purchase.

No unit declared
Money invested
About this output

The down payment plus the closing costs: the money the return is measured on.

Unit currency
Return on the money invested (IRR, before income tax)
About this output

The yearly return on the money invested, before income tax: the rate at which the down payment and closing costs equal the discounted yearly cash flows and the sale, at the average assumptions. It is searched between -99% and 300% a year.

Unit %
Debt service in the first year
About this output

The twelve loan payments of the first year.

Unit currency/yr
Cap rate (first-year net operating income / price)
About this output

Net operating income in the first year divided by the purchase price, before financing.

Unit %
Cash flow in the first year
About this output

Cash flow in the first year at the average assumptions: net operating income less debt service.

Unit currency/yr
Cash-on-cash return in the first year
About this output

Cash flow in the first year divided by the money invested.

Unit %
Highest edge of the return chart
About this output

The highest edge of the return chart: the 98th percentile of the returns drawn on it, or the edge of a narrow range when they are all but equal or none is drawn.

Unit %
10th-percentile return across the simulated futures
About this output

The 10th percentile of the returns across the simulated futures: one future in ten returns less.

Unit %
25th-percentile return across the simulated futures
About this output

The 25th percentile of the returns across the simulated futures: one future in four returns less.

Unit %
75th-percentile return across the simulated futures
About this output

The 75th percentile of the returns across the simulated futures: one future in four returns more.

Unit %
Futures outside the range of the return chart
About this output

Futures whose return lies outside the range of the return chart and is not drawn there: about 4 in 100 by construction.

Unit futures
Lowest edge of the return chart
About this output

The lowest edge of the return chart: the 2nd percentile of the returns drawn on it, or the edge of a narrow range when they are all but equal or none is drawn.

Unit %
Return across the simulated futures, in 20 bins
About this output

The return chart as a table: each of the 20 bins with its lower and upper edge, and the futures in it below and at or above the mortgage rate.

No unit declared
Median return across the simulated futures
About this output

The median of the returns across the simulated futures: half the futures return less.

Unit %
This page is provided by LogicCommons for informational purposes only. Results are model outputs computed from the inputs you supply and are not financial, investment, tax, accounting, or legal advice, and no advisory relationship is created. Verify all inputs and results independently before relying on them in any decision.

LogicCommons is in beta. If a result, label, or reference looks wrong, tell us here; we read every message.

Methodology

Purpose and model boundary

This calculator works out the cash flow and return of one rental property bought with a fixed-rate loan, held for a number of years and sold. The main result is the return on the money invested, the internal rate of return of the down payment and closing costs, the yearly cash flows and the sale, at your average assumptions. Every figure is before income tax. The page also shows the cap rate, the cash-on-cash return and the debt service coverage of the first year. It then simulates 100 possible futures of rent growth, vacancy and property value, and reports the share of futures returning less than the mortgage rate and the share with at least one year of negative cash flow.

For the cost of owning against renting your own home, use the Rent vs Buy Calculator. For the monthly payment with tax and insurance, use the Mortgage Payment PITI Calculator, and for the costs of closing, the Closing Costs Estimator. The Monte Carlo Retirement Success Calculator simulates market returns for a retirement plan with the same seeded generator.

The model is educational. It is not a prediction of rents, prices or interest rates, and it is not financial, investment, tax or legal advice.

Inputs and units

Enter the purchase price, down payment and any closing costs paid in cash; the loan's yearly rate and its term in whole years; the monthly rent in the first year; the share of rent lost to vacancy; property tax and insurance in the first year; repairs as a share of the scheduled rent and management as a share of the rent collected; the yearly growth of rent, of property tax and insurance, and of the property value; the years you hold before selling; and selling costs as a share of the sale price. Amounts are US dollars; rates and shares are percentages.

The uncertainty inputs drive the simulation only: the volatility of rent growth and of appreciation, as standard deviations, and the vacancy in a good year and in a bad year. Closing costs may be left blank for none, and the growth of property tax and insurance blank to grow them with rent.

The workbook always runs 100 futures. Its optional seed defaults to 42 for the worked examples. On the page, Simulate uses the last result's next seed before a repeated run, while the first run after a worked example or Reset uses that example's seed. API and MCP callers can supply a seed to reproduce a run.

Governing relationships

The loan is paid monthly at the fixed rate. With the loan L, the monthly rate i, the term n in years and A(m) = (1 + i)^m − 1, the payment and the balance after t years are

payment = L × i × (1 + A(12 n)) / A(12 n)

balance(t) = L × (A(12 n) − A(12 t)) / A(12 n)

and the loan is paid off once the term is reached. A(m) is worked out from LN and EXP in Kahan's compensated forms of ln(1 + i) and e^x − 1, so a tiny positive rate keeps full accuracy instead of cancelling; a rate of exactly 0 uses the interest-free payment L / (12 n). In year t, with scheduled rent R, vacancy v, property tax and insurance F and debt service DS,

net operating income = R × (1 − v) × (1 − management) − repairs × R − F

cash flow = net operating income − DS

Rent in the first year is twelve times the monthly rent; it grows from the second year. At the end of the hold the property sells for its value less selling costs, and the loan balance is repaid; if that leaves less than nothing, the owner pays the difference. The return r is the yearly rate at which

money invested = Σ cash flow(t) / (1 + r)^t + sale / (1 + r)^years

In each simulated future, each year's rent growth is the expected growth plus the volatility times a standard normal draw, each year's vacancy is drawn evenly between the good-year and bad-year figures, and each year's appreciation is a lognormal draw whose mean and standard deviation match the expected appreciation and its volatility. Everything else follows the same arithmetic as the figures at the average assumptions.

Calculation sequence

The workbook works out the figures at the average assumptions, then calculates 100 futures and derives the percentiles, the shares and the return chart. The return is found without iteration, by halving the range from −99% to 300% a year: 48 times at the average assumptions and 32 times in each future, so it is exact to well under a hundredth of a percentage point. A repeated Simulate action uses the last result's next seed before the new run.

Outputs and interpretation

The return on the money invested is the main result. The cap rate divides the first year's net operating income by the price and ignores financing; the cash-on-cash return divides the first year's cash flow by the money invested; the debt service coverage divides the first year's net operating income by its debt service, and is not shown for a cash purchase. Below 1, the property's income does not cover its loan payments in the first year.

The first chart is a bridge of the first year: gross rent, net operating income and cash flow are bars from zero, and each reduction is a red bar below zero. The second chart shows, for each year of the hold, the cash flow, the principal paid down and the rise in value. The year table gives each of these with the loan balance and value, and the sale in the last year.

The return chart counts the simulated futures in 20 equal bins from the 2nd to the 98th percentile of their returns; red bars return less than the mortgage rate. When even a return of −99% a year cannot break even, the future shows −99% and counts as one where the owner pays to sell; a future above 300% shows 300%. Neither kind, nor the few futures outside the chart's range, is drawn, but every future counts in the shares. The shares from 100 futures carry a sampling error of about ±9.8 percentage points at worst.

Validation and status logic

The workbook evaluates the conditions below from top to bottom and returns the first matching status. This is the workbook's priority order, including warnings that may accompany a computed result.

Priority Condition Returned status
1 Years held are not a whole number in the supported interval NOT VALID: the years you hold must be a whole number from 1 to 30
2 Loan term is not a whole number in the supported interval NOT VALID: the loan term must be a whole number of years from 1 to 40
3 A supplied seed is not a whole number in the supported interval; blank uses the published default 42 NOT VALID: the random seed must be a whole number from 1 to 2,147,483,646
4 Purchase price is outside the supported interval NOT VALID: the purchase price must be from 1 dollar to 1 trillion dollars
5 Down payment, closing costs, rent, property tax or insurance is outside the supported amount interval NOT VALID: the down payment, closing costs, rent, property tax and insurance must be amounts from 0 to 1 trillion dollars
6 Down payment is above the price NOT VALID: the down payment cannot be more than the purchase price
7 Down payment and closing costs together are less than 1 dollar NOT VALID: there is no money invested, so there is no return to measure; enter a down payment or closing costs of at least 1 dollar
8 Mortgage rate is outside the supported interval NOT VALID: the mortgage rate must be between 0% and 20% a year
9 A vacancy, repairs or management share is outside the supported interval NOT VALID: vacancy, the good-year and bad-year vacancy, repairs and management must each be between 0% and 50%
10 Good-year vacancy is above bad-year vacancy NOT VALID: the good-year vacancy cannot be higher than the bad-year vacancy
11 Rent growth or cost growth is outside the supported interval NOT VALID: rent growth and cost growth must be between -10% and 15% a year
12 Appreciation is outside the supported interval NOT VALID: appreciation must be between -10% and 15% a year
13 Selling costs are outside the supported interval NOT VALID: selling costs must be between 0% and 15% of the sale price
14 A volatility is outside its supported interval NOT VALID: rent growth volatility must be between 0% and 10% a year, and appreciation volatility between 0% and 30% a year
15 The 100-future simulation did not complete NOT VALID: the simulation did not complete; this is a defect in the workbook, please report it
16 The workbook's self-check fails CHECK: the self-check of the workbook failed for this result, so do not rely on it; please report it
17 At the average assumptions no return above −99% a year breaks even CHECK: at the average assumptions the owner has to add money to sell, so no return above -99% a year exists and the return shows -99%
18 At the average assumptions the return is above 300% a year CHECK: at the average assumptions the return is above 300% a year, the top of the range searched, so it shows 300%
19 The vacancy entered lies outside the good-year to bad-year range CHECK: the vacancy you entered is outside the good-year to bad-year range, so the simulated futures centre on a different vacancy than the figures at the average assumptions
20 Both volatilities are zero and the two vacancy figures are equal CHECK: nothing is uncertain (both volatilities are 0 and the two vacancy figures are equal), so every simulated future is the same
21 None of the preceding conditions applies OK

NOT VALID is a refusal, not a numeric answer. CHECK may accompany a computable result but calls for the stated review. The self-check is separately reported as arithmetic-integrity evidence; it does not replace this ordered status chain. A negative cash flow or a debt service coverage below 1 is a result, not a warning.

Assumptions and limitations

Every figure is before income tax: the model does not include depreciation, its recapture, tax on the gain at sale or the deductibility of interest, which shape the after-tax return of most rentals. Each year is one period, and the loan has a fixed rate with no refinancing. Rent growth, vacancy and appreciation are drawn independently, so a future with weak rents is no more likely to have weak prices; vacancy in one year does not carry into the next. Capital spending such as a new roof, homeowner association fees and any cost not entered are not modelled. A cash flow pattern that changes sign more than once can have more than one return; the search returns the one within its range. Amounts are nominal.

Restrictions and non-computing states

This calculator enforces its numeric limits before it accepts a result. An optional input left blank takes its stated default; a retained seed remains part of every simulation.

Errors and warnings

A request rejected by the page's input limits is not a computed result. A transport or service failure cannot establish a fresh workbook answer. Review the workbook's References and Disclaimer, and check rents, costs and financing for a real property with a qualified professional before using a result for a real decision.

References

Sources and further reading

The model's prices, rents, costs, rates and growth assumptions come from the inputs, not market data. The workbook's References sheet identifies the calculation sources. The links below explain the methods; they do not endorse this calculator.

  • S. K. Park and K. W. Miller, “Random number generators: good ones are hard to find,” Communications of the ACM 31(10), 1988, and the Park–Miller–Stockmeyer 1993 correspondence describe the generator family. The workbook uses multiplier 48,271 and modulus 2³¹ − 1.
  • The NIST/SEMATECH e-Handbook's lognormal distribution section describes the distribution behind the appreciation draws, and Microsoft Support's NORM.S.INV and PERCENTILE.INC documentation the workbook functions used for the draws and the percentiles.
  • Microsoft Support's IRR documentation defines the internal rate of return the workbook finds by bisection.

This is an educational estimate, not financial, investment, tax or legal advice. Rents, costs, values and financing differ from property to property; check them with a qualified professional.

Results are informational and not professional advice. See our Terms of Use. Powered by SpreadsheetWeb · About · Privacy · Terms