Analyze the profitability of your real estate investment
Investment Summary
Monthly Mortgage
$0.00
Monthly Cash Flow
$0.00
Cap Rate
0.00%
Cash-on-Cash Return
0.00%
How to Calculate Rental Property ROI
Investing in real estate is one of the most reliable ways to build long-term wealth, but not every property is a good deal. To separate a "money pit" from a profitable asset, you need to understand the key financial metrics provided by this ROI calculator.
Key Real Estate Metrics Explained
Cap Rate (Capitalization Rate): This measures the property's natural rate of return without considering financing. It is calculated by dividing the Net Operating Income (NOI) by the purchase price.
Cash-on-Cash Return: This is arguably the most important metric for investors using leverage (mortgages). It measures the annual cash flow relative to the actual cash you invested (down payment).
Monthly Cash Flow: The amount of money left over after all expenses, including the mortgage, have been paid.
A Realistic ROI Example
Imagine you buy a condo for $250,000. You put 20% ($50,000) down and secure a mortgage at 6.5% interest. Your monthly mortgage payment would be approximately $1,264. If you rent the unit for $2,000 a month and have $400 in other expenses (taxes, insurance, HOA), your calculation would look like this:
Total Monthly Expenses: $1,264 (Mortgage) + $400 (Misc) = $1,664
Monthly Cash Flow: $2,000 – $1,664 = $336
Annual Cash Flow: $4,032
Cash-on-Cash Return: ($4,032 / $50,000) = 8.06%
A "good" ROI depends on your market, but many investors aim for a Cash-on-Cash return of 8-12%.
function calculateRentalROI() {
// Get Input Values
var price = parseFloat(document.getElementById('purchasePrice').value);
var downPercent = parseFloat(document.getElementById('downPaymentPercent').value);
var rate = parseFloat(document.getElementById('interestRate').value);
var term = parseFloat(document.getElementById('loanTerm').value);
var rent = parseFloat(document.getElementById('monthlyRent').value);
var expenses = parseFloat(document.getElementById('monthlyExpenses').value);
// Validate Inputs
if (isNaN(price) || isNaN(rent) || price 0) {
monthlyMortgage = loanAmount * (monthlyInterest * Math.pow(1 + monthlyInterest, totalPayments)) / (Math.pow(1 + monthlyInterest, totalPayments) – 1);
} else {
monthlyMortgage = loanAmount / totalPayments;
}
// ROI Calculations
var totalMonthlyOutgo = monthlyMortgage + expenses;
var monthlyCashFlow = rent – totalMonthlyOutgo;
var annualCashFlow = monthlyCashFlow * 12;
// Net Operating Income (Income – Expenses, excluding mortgage)
var annualNOI = (rent – expenses) * 12;
// Cap Rate
var capRate = (annualNOI / price) * 100;
// Cash on Cash Return
var cocReturn = (annualCashFlow / downPayment) * 100;
// Display Results
document.getElementById('resMortgage').innerHTML = '$' + monthlyMortgage.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resCashFlow').innerHTML = '$' + monthlyCashFlow.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resCapRate').innerHTML = capRate.toFixed(2) + '%';
document.getElementById('resCoC').innerHTML = cocReturn.toFixed(2) + '%';
document.getElementById('resultsArea').style.display = 'block';
// Smooth scroll to results
document.getElementById('resultsArea').scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}