Investing in real estate is a powerful way to build wealth, but simply buying a property doesn't guarantee a profit. Successful investors rely on specific metrics to determine if a property is a "deal" or a money pit. Our Rental Property ROI Calculator helps you crunch the numbers instantly.
Key Metrics Explained
When analyzing a rental property, there are three main numbers you should focus on:
Cash Flow: This is your profit after all expenses are paid. It is calculated as Gross Rent – (Mortgage + Taxes + Insurance + Maintenance). Positive cash flow ensures the property pays for itself.
Cash on Cash ROI: This measures the return on the actual cash you invested (down payment + closing costs). It is the most important metric for understanding the efficiency of your capital. A good CoC return is typically above 8-10%.
Cap Rate (Capitalization Rate): This measures the property's natural rate of return assuming you paid all cash. It helps compare properties regardless of financing. Calculated as Net Operating Income / Purchase Price.
Example Calculation
Let's say you purchase a property for $250,000 with 20% down ($50,000). You secure a 30-year loan at 6.5% interest.
If you rent the property for $2,200/month and your operating expenses (taxes, insurance, repairs) average $800/month, here is how the math works out:
Loan Payment: ~$1,264/month
Total Expenses: $2,064/month ($1,264 Mortgage + $800 Ops)
In this scenario, while cash flow is positive, the ROI is low, suggesting you might need to negotiate a lower price or find a property with higher rent potential.
function calculateRentalROI() {
// 1. Get Input Values
var priceStr = document.getElementById('purchasePrice').value;
var downPercentStr = document.getElementById('downPaymentPercent').value;
var interestRateStr = document.getElementById('interestRate').value;
var termStr = document.getElementById('loanTerm').value;
var rentStr = document.getElementById('monthlyRent').value;
var expensesStr = document.getElementById('monthlyExpenses').value;
// 2. Parse and Validate
var price = parseFloat(priceStr);
var downPercent = parseFloat(downPercentStr);
var rate = parseFloat(interestRateStr);
var years = parseFloat(termStr);
var rent = parseFloat(rentStr);
var opsExpenses = parseFloat(expensesStr);
if (isNaN(price) || isNaN(downPercent) || isNaN(rate) || isNaN(years) || isNaN(rent) || isNaN(opsExpenses)) {
alert("Please enter valid numbers in all fields.");
return;
}
// 3. Calculation Logic
var downPayment = price * (downPercent / 100);
var loanAmount = price – downPayment;
// Mortgage Calculation (Monthly PI)
var monthlyRate = (rate / 100) / 12;
var numberOfPayments = years * 12;
var mortgagePayment = 0;
if (rate === 0) {
mortgagePayment = loanAmount / numberOfPayments;
} else {
mortgagePayment = loanAmount * monthlyRate * (Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
}
// Total Monthly Expenses (Mortgage + Ops)
var totalMonthlyExpenses = mortgagePayment + opsExpenses;
// Cash Flow
var monthlyCashFlow = rent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// Net Operating Income (NOI) = Revenue – Operating Expenses (Excluding Mortgage)
var annualNOI = (rent – opsExpenses) * 12;
// Cap Rate = NOI / Purchase Price
var capRate = (annualNOI / price) * 100;
// Cash on Cash ROI = Annual Cash Flow / Total Cash Invested (Assuming just down payment for simplicity here)
var cashInvested = downPayment;
var cocRoi = (annualCashFlow / cashInvested) * 100;
// 4. Update UI
document.getElementById('resMortgage').innerText = "$" + mortgagePayment.toFixed(2);
document.getElementById('resTotalExp').innerText = "$" + totalMonthlyExpenses.toFixed(2);
var cashFlowEl = document.getElementById('resCashFlow');
cashFlowEl.innerText = "$" + monthlyCashFlow.toFixed(2);
// Style Cash Flow (Red if negative, Green if positive)
if(monthlyCashFlow < 0) {
cashFlowEl.className = "rp-negative";
} else {
cashFlowEl.className = "rp-highlight";
}
document.getElementById('resCoc').innerText = cocRoi.toFixed(2) + "%";
document.getElementById('resCapRate').innerText = capRate.toFixed(2) + "%";
// Show Results
document.getElementById('resultsSection').style.display = "block";
}
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "What is a good Cash on Cash ROI for rental property?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most investors aim for a Cash on Cash ROI between 8% and 12%. However, in high-appreciation markets, investors may accept a lower ROI (around 4-6%) in exchange for long-term property value growth."
}
}, {
"@type": "Question",
"name": "How do you calculate Rental Cash Flow?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Rental Cash Flow is calculated by taking the total monthly rental income and subtracting all monthly expenses, including the mortgage payment, property taxes, insurance, HOA fees, and maintenance costs."
}
}, {
"@type": "Question",
"name": "What is the difference between Cap Rate and Cash on Cash Return?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Cap Rate measures the return of the property as if it were bought with all cash, focusing on the property's performance alone. Cash on Cash Return measures the return on the actual money you invested (down payment), factoring in the leverage of the loan."
}
}]
}