Skip to content
🛠️ToolsShed

Real Estate ROI Calculator

Calculate return on investment for rental properties including NOI, cap rate, and cash-on-cash return.

$
$
$

Include property tax, insurance, maintenance, vacancy

$
%
yr

About this tool

Real estate investing requires careful financial analysis to evaluate whether a rental property will generate sufficient income to justify the capital investment. This Real Estate ROI Calculator helps property investors calculate three critical metrics: Net Operating Income (NOI), which measures annual profitability after accounting for operating expenses; capitalization rate (cap rate), which expresses annual NOI as a percentage of the property's purchase price; and cash-on-cash return, which shows the actual cash return relative to your upfront capital investment. These metrics allow you to compare different properties, assess investment quality, and make decisions based on consistent financial criteria.

To use this calculator, enter your property's purchase price, annual rental income, and all operating expenses (property taxes, insurance, maintenance, utilities, property management fees, vacancy rate). The calculator automatically computes NOI by subtracting total expenses from gross rental income, then derives the cap rate and cash-on-cash return based on your down payment and financing. A higher cap rate generally indicates a better return for a given price, though cap rates vary significantly by geographic market. Cash-on-cash return directly reflects how much cash income you're earning relative to the out-of-pocket cash you invested, making it particularly useful for evaluating highly leveraged properties.

Real estate professionals, from residential investors evaluating single-family rentals to portfolio managers analyzing commercial properties, rely on these metrics to make portfolio decisions and compare opportunities across markets. Keep in mind that this calculator provides a snapshot based on the first year's assumptions; actual returns depend on property management quality, market appreciation, rental rate growth, and changes in expenses over time. For a comprehensive investment analysis, consider also calculating mortgage paydown, principal appreciation, and tax implications—factors which can substantially enhance total long-term returns.

Frequently Asked Questions

Code Implementation

def calculate_real_estate_roi(
    purchase_price: float,
    down_payment: float,
    monthly_rent: float,
    monthly_expenses: float,
    annual_appreciation: float = 0.03,
    years: int = 5
) -> dict:
    loan_amount = purchase_price - down_payment
    annual_rent = monthly_rent * 12
    annual_expenses = monthly_expenses * 12

    # Net Operating Income
    noi = annual_rent - annual_expenses

    # Cap Rate
    cap_rate = (noi / purchase_price) * 100

    # Cash-on-Cash Return (assumes no mortgage for simplicity)
    cash_on_cash = (noi / down_payment) * 100

    # Property value after appreciation
    future_value = purchase_price * ((1 + annual_appreciation) ** years)
    appreciation_gain = future_value - purchase_price

    # Total return over holding period
    total_cash_flow = noi * years
    total_return = total_cash_flow + appreciation_gain
    roi = (total_return / down_payment) * 100

    return {
        "noi": round(noi, 2),
        "cap_rate": round(cap_rate, 2),
        "cash_on_cash": round(cash_on_cash, 2),
        "future_value": round(future_value, 2),
        "appreciation_gain": round(appreciation_gain, 2),
        "total_return": round(total_return, 2),
        "roi_percent": round(roi, 2),
        "annualized_roi": round(roi / years, 2)
    }

result = calculate_real_estate_roi(
    purchase_price=400000,
    down_payment=80000,
    monthly_rent=2500,
    monthly_expenses=800,
    annual_appreciation=0.03,
    years=5
)
for k, v in result.items():
    print(f"{k}: {v}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.