Investing in real estate is one of the most proven ways to build long-term wealth, but success depends on "buying right." To determine if a property is a good investment, you need to look beyond the purchase price and analyze the potential Return on Investment (ROI).
Key Real Estate Metrics Explained
Our calculator focuses on three primary metrics used by professional real estate investors:
Cash Flow: This is the net amount of cash entering your pocket each month after every single expense (mortgage, taxes, insurance, repairs) has been paid.
Cap Rate (Capitalization Rate): This measures the property's natural yield excluding financing. It is calculated by dividing the Net Operating Income (NOI) by the purchase price. It allows you to compare different properties regardless of how they are financed.
Cash-on-Cash Return (CoC): Often considered the most important metric for financed deals, this is the ratio of annual cash flow to the actual amount of cash you invested (your down payment).
Realistic ROI Example
Imagine you buy a property for $300,000 with a 20% down payment ($60,000). If the monthly rent is $2,500 and your total expenses (including mortgage, taxes, and maintenance) come to $2,100, your monthly cash flow is $400. Over a year, that is $4,800. To find your Cash-on-Cash return, you divide $4,800 by your $60,000 investment, resulting in an 8% ROI.
What is a "Good" ROI for Rental Property?
Most investors aim for a Cash-on-Cash return of 8% to 12%. However, this varies by market. In high-growth areas (like Austin or Seattle), investors might accept a lower 4-5% ROI because they expect the property's value to appreciate significantly over time. In stable "cash flow" markets (like the Midwest), investors often demand 10% or higher.
Don't Forget the "Hidden" Expenses
Many novice landlords fail because they only account for the mortgage. To get an accurate ROI, you must factor in:
Vacancy Rate: Properties aren't always occupied. Factoring in a 5% vacancy rate (about 2-3 weeks a year) is standard.
Capital Expenditures (CapEx): Big-ticket items like a new roof or HVAC system eventually need replacement. Setting aside 5-10% of rent for these items is vital.
Property Management: Even if you manage it yourself now, you should factor in the cost (typically 8-10% of rent) in case you hire someone later.
function calculateRentalROI() {
var purchasePrice = parseFloat(document.getElementById('purchasePrice').value);
var downPayment = parseFloat(document.getElementById('downPayment').value);
var interestRate = parseFloat(document.getElementById('interestRate').value);
var loanTerm = parseFloat(document.getElementById('loanTerm').value);
var monthlyRent = parseFloat(document.getElementById('monthlyRent').value);
var annualTax = parseFloat(document.getElementById('annualTax').value);
var annualInsurance = parseFloat(document.getElementById('annualInsurance').value);
var maintenancePerc = parseFloat(document.getElementById('maintenancePerc').value);
if (isNaN(purchasePrice) || isNaN(downPayment) || isNaN(monthlyRent)) {
alert("Please enter valid numbers for price, down payment, and rent.");
return;
}
// Mortgage Calculation
var loanAmount = purchasePrice – downPayment;
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
var monthlyMortgage = 0;
if (loanAmount > 0) {
if (interestRate > 0) {
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
} else {
monthlyMortgage = loanAmount / numberOfPayments;
}
}
// Expense Calculations
var monthlyTax = annualTax / 12;
var monthlyInsurance = annualInsurance / 12;
var monthlyMaintenance = (maintenancePerc / 100) * monthlyRent;
var totalMonthlyExpenses = monthlyMortgage + monthlyTax + monthlyInsurance + monthlyMaintenance;
// Profit Metrics
var monthlyCashFlow = monthlyRent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// Net Operating Income (Excludes Mortgage)
var annualNOI = (monthlyRent * 12) – (annualTax + annualInsurance + (monthlyMaintenance * 12));
var capRate = (annualNOI / purchasePrice) * 100;
// Cash on Cash Return
var cocReturn = (annualCashFlow / downPayment) * 100;
// Display Results
document.getElementById('resMortgage').innerText = "$" + monthlyMortgage.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resExpenses').innerText = "$" + totalMonthlyExpenses.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resCashFlow').innerText = "$" + monthlyCashFlow.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resCapRate').innerText = capRate.toFixed(2) + "%";
document.getElementById('resCoC').innerText = cocReturn.toFixed(2) + "%";
document.getElementById('roiResults').style.display = "block";
// Visual feedback for negative cash flow
if (monthlyCashFlow < 0) {
document.getElementById('resCashFlow').style.color = "#e74c3c";
} else {
document.getElementById('resCashFlow').style.color = "#27ae60";
}
}