function calculateRentalROI() {
var purchasePrice = parseFloat(document.getElementById('purchasePrice').value);
var downPayment = parseFloat(document.getElementById('downPayment').value);
var interestRate = parseFloat(document.getElementById('interestRate').value) / 100 / 12;
var loanTerm = parseFloat(document.getElementById('loanTerm').value) * 12;
var monthlyRent = parseFloat(document.getElementById('monthlyRent').value);
var propertyTax = parseFloat(document.getElementById('propertyTax').value);
var insurance = parseFloat(document.getElementById('insurance').value);
var maintenance = parseFloat(document.getElementById('maintenance').value);
if (isNaN(purchasePrice) || isNaN(downPayment) || isNaN(monthlyRent)) {
alert("Please enter valid numerical values.");
return;
}
// Mortgage Calculation (P&I)
var loanAmount = purchasePrice – downPayment;
var monthlyMortgage = 0;
if (interestRate > 0) {
monthlyMortgage = loanAmount * (interestRate * Math.pow(1 + interestRate, loanTerm)) / (Math.pow(1 + interestRate, loanTerm) – 1);
} else {
monthlyMortgage = loanAmount / loanTerm;
}
var totalMonthlyExpenses = monthlyMortgage + propertyTax + insurance + maintenance;
var monthlyCashFlow = monthlyRent – totalMonthlyExpenses;
// Annualized
var annualCashFlow = monthlyCashFlow * 12;
var cashOnCashROI = (annualCashFlow / downPayment) * 100;
// Cap Rate Calculation (NOI / Purchase Price)
// NOI excludes mortgage
var monthlyNOI = monthlyRent – (propertyTax + insurance + maintenance);
var annualNOI = monthlyNOI * 12;
var capRate = (annualNOI / purchasePrice) * 100;
// Update UI
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('resROI').innerText = cashOnCashROI.toFixed(2) + "%";
document.getElementById('resCapRate').innerText = capRate.toFixed(2) + "%";
document.getElementById('roi-results').style.display = 'block';
}
Understanding Your Real Estate Investment ROI
Investing in rental property is one of the most proven paths to wealth, but the numbers must make sense before you sign the closing papers. Our Real Estate ROI Calculator helps you break down the complex financial variables of a property investment into easy-to-understand metrics like Cash Flow and Cash-on-Cash Return.
Key Metrics Explained
Monthly Cash Flow: This is the net amount of money moving into your pocket every month after all bills (mortgage, taxes, insurance, and maintenance) are paid. Positive cash flow is essential for long-term sustainability.
Cash-on-Cash ROI: This measures the annual return on the actual cash you invested (your down payment). Unlike simple ROI, this focuses on the performance of the money you actually pulled out of your bank account.
Cap Rate (Capitalization Rate): The Cap Rate is used to compare different real estate investments regardless of how they are financed. It is calculated by dividing the Net Operating Income (NOI) by the purchase price.
Example Calculation
Imagine you purchase a property for $300,000 with a $60,000 (20%) down payment. At a 6.5% interest rate, your mortgage might be around $1,517. If you add $500 for taxes, insurance, and repairs, your total monthly expenses are $2,017. If the property rents for $2,500, your Monthly Cash Flow is $483. Your annual ROI would be roughly 9.6% ($5,796 annual cash flow รท $60,000 down payment).
Why ROI Matters
Calculating ROI allows investors to compare real estate against other asset classes like stocks or bonds. A "good" ROI depends on the market, but many residential investors aim for a Cash-on-Cash return of 8% to 12%. By using this calculator, you can adjust your down payment or offer price to see exactly what it takes to hit your financial goals.