Analyze potential real estate investments by calculating Cash on Cash Return, Cap Rate, and Monthly Cash Flow.
Investment Performance
Monthly Cash Flow:
Cash on Cash Return:
Cap Rate:
Net Operating Income (NOI) / Year:
Monthly Mortgage Payment:
Total Monthly Expenses (incl. Mortgage):
function calculateROI() {
// 1. Get Values
var purchasePrice = parseFloat(document.getElementById('purchasePrice').value) || 0;
var downPayment = parseFloat(document.getElementById('downPayment').value) || 0;
var closingCosts = parseFloat(document.getElementById('closingCosts').value) || 0;
var interestRate = parseFloat(document.getElementById('interestRate').value) || 0;
var loanTerm = parseFloat(document.getElementById('loanTerm').value) || 0;
var monthlyRent = parseFloat(document.getElementById('monthlyRent').value) || 0;
var annualTax = parseFloat(document.getElementById('annualTax').value) || 0;
var annualInsurance = parseFloat(document.getElementById('annualInsurance').value) || 0;
var maintenanceRate = parseFloat(document.getElementById('maintenanceRate').value) || 0;
var vacancyRate = parseFloat(document.getElementById('vacancyRate').value) || 0;
// 2. Mortgage Calculation
var loanAmount = purchasePrice – downPayment;
var monthlyInterest = (interestRate / 100) / 12;
var totalPayments = loanTerm * 12;
var monthlyMortgage = 0;
if (loanAmount > 0 && interestRate > 0) {
monthlyMortgage = loanAmount * (monthlyInterest * Math.pow(1 + monthlyInterest, totalPayments)) / (Math.pow(1 + monthlyInterest, totalPayments) – 1);
} else if (loanAmount > 0 && interestRate === 0) {
monthlyMortgage = loanAmount / totalPayments;
}
// 3. Income & Expenses
var grossAnnualIncome = monthlyRent * 12;
var annualVacancyCost = grossAnnualIncome * (vacancyRate / 100);
var annualMaintenanceCost = grossAnnualIncome * (maintenanceRate / 100);
// Operating Expenses (Tax, Insurance, Maintenance, Vacancy) – NOT Mortgage
var annualOperatingExpenses = annualTax + annualInsurance + annualMaintenanceCost + annualVacancyCost;
// Net Operating Income (NOI)
var noi = grossAnnualIncome – annualOperatingExpenses;
// Debt Service
var annualDebtService = monthlyMortgage * 12;
// Cash Flow
var annualCashFlow = noi – annualDebtService;
var monthlyCashFlow = annualCashFlow / 12;
// Returns
var totalInitialInvestment = downPayment + closingCosts;
var cashOnCash = 0;
if (totalInitialInvestment > 0) {
cashOnCash = (annualCashFlow / totalInitialInvestment) * 100;
}
var capRate = 0;
if (purchasePrice > 0) {
capRate = (noi / purchasePrice) * 100;
}
// 4. Update UI
var resSection = document.getElementById('resultsSection');
resSection.style.display = 'block';
// Format Currency Helper
var fmtCurr = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });
var fmtPct = new Intl.NumberFormat('en-US', { style: 'percent', minimumFractionDigits: 2, maximumFractionDigits: 2 });
var cfEl = document.getElementById('resCashFlow');
cfEl.textContent = fmtCurr.format(monthlyCashFlow);
cfEl.className = monthlyCashFlow >= 0 ? "roi-result-value roi-highlight" : "roi-result-value roi-highlight-neg";
var cocEl = document.getElementById('resCoC');
cocEl.innerText = cashOnCash.toFixed(2) + "%";
cocEl.className = cashOnCash >= 0 ? "roi-result-value roi-highlight" : "roi-result-value roi-highlight-neg";
document.getElementById('resCapRate').innerText = capRate.toFixed(2) + "%";
document.getElementById('resNOI').innerText = fmtCurr.format(noi);
document.getElementById('resMortgage').innerText = fmtCurr.format(monthlyMortgage);
var totalMonthlyExpenses = (annualOperatingExpenses / 12) + monthlyMortgage;
document.getElementById('resExpenses').innerText = fmtCurr.format(totalMonthlyExpenses);
}
Understanding Rental Property ROI
Investing in real estate is one of the most popular ways to build wealth, but not every property is a good deal. To ensure your investment is profitable, you must run the numbers accurately. This Rental Property ROI Calculator helps investors analyze the financial performance of potential real estate purchases.
Key Metrics Explained
When evaluating a rental property, there are three critical metrics you should focus on:
Cash Flow: This is the net profit you pocket every month after all expenses (mortgage, taxes, insurance, repairs) are paid. Positive cash flow ensures the property pays for itself.
Cash on Cash Return (CoC): This measures the return on the actual cash you invested (Down Payment + Closing Costs). It is calculated as Annual Cash Flow / Total Cash Invested. A CoC return of 8-12% is generally considered good in many markets.
Cap Rate (Capitalization Rate): This metric evaluates the profitability of a property regardless of how it is financed. It is calculated as Net Operating Income (NOI) / Purchase Price. It helps compare properties apples-to-apples without debt factors.
Estimating Expenses Correctly
New investors often overestimate profit by underestimating expenses. Beyond the mortgage, you must account for:
Vacancy Rate: Properties won't be rented 100% of the time. Budgeting 5-8% of rent for vacancy is prudent.
Maintenance & Repairs: Things break. Setting aside 5-10% of monthly rent for future repairs ensures you aren't caught off guard by a broken water heater or roof leak.
Operating Expenses: These include property taxes, landlord insurance, and HOA fees if applicable.
The Power of Leverage
Real estate allows you to use leverage (other people's money) to increase returns. By taking out a mortgage, you can control a large asset with a smaller upfront investment. While this increases your potential Cash on Cash return, it also introduces risk. Use this calculator to simulate different interest rates and down payments to see how they impact your bottom line.
How to Use This Calculator
Enter the purchase details, loan terms, expected rental income, and anticipated expenses above. The calculator will automatically compute your monthly cash flow, NOI, and return metrics. Use these results to determine if the property meets your investment criteria or if you need to negotiate a lower purchase price.