Calculate Cash Flow, Cap Rate, and Cash on Cash Return
Please enter valid numeric values.
Monthly Mortgage Payment (P&I):$0.00
Total Monthly Expenses:$0.00
Net Operating Income (NOI) / Mo:$0.00
Monthly Cash Flow:$0.00
Cap Rate:0.00%
Cash on Cash Return:0.00%
Understanding Real Estate Investment Metrics
Investing in rental properties is one of the most reliable ways to build wealth, but simply buying a property doesn't guarantee a profit. To succeed, investors must analyze the numbers thoroughly. This Rental Property ROI Calculator helps you determine the viability of a potential investment using three critical metrics: Cash Flow, Cap Rate, and Cash on Cash Return.
1. Monthly Cash Flow
Cash flow is the net amount of money moving in or out of your investment each month. It is calculated by subtracting your total monthly expenses (mortgage, taxes, insurance, maintenance, vacancy reserves) from your gross rental income. Positive cash flow indicates a profitable property that pays for itself and generates income, while negative cash flow means the property costs you money to hold.
2. Capitalization Rate (Cap Rate)
The Cap Rate measures the property's natural rate of return, independent of debt financing. It is calculated by dividing the Net Operating Income (NOI) by the property's purchase price.
Formula: (Net Operating Income / Purchase Price) × 100
Usage: It allows you to compare the profitability of similar properties in the same market, regardless of how they are purchased (cash vs. loan). Generally, a higher cap rate implies a better return but may carry higher risk.
3. Cash on Cash Return
Perhaps the most important metric for leveraged investors, Cash on Cash Return measures the annual pre-tax cash flow relative to the actual cash invested (down payment + closing costs). This tells you how hard your specific dollars are working for you.
Formula: (Annual Cash Flow / Total Cash Invested) × 100
Benchmark: Many investors look for a Cash on Cash return between 8% and 12%, though this varies by market and strategy.
How to Use This Calculator
Input your purchase details, loan terms, and anticipated operating expenses. Be sure to account for "hidden" costs like vacancy rates (typically 5-8%) and maintenance reserves. The calculator will instantly break down your monthly mortgage obligations and project your annual returns, helping you make data-driven investment decisions.
function calculateRentalROI() {
// Inputs
var price = parseFloat(document.getElementById('purchasePrice').value);
var down = parseFloat(document.getElementById('downPayment').value);
var rate = parseFloat(document.getElementById('interestRate').value);
var term = parseFloat(document.getElementById('loanTerm').value);
var closing = parseFloat(document.getElementById('closingCosts').value);
var rent = parseFloat(document.getElementById('monthlyRent').value);
var taxes = parseFloat(document.getElementById('annualTaxes').value);
var insurance = parseFloat(document.getElementById('annualInsurance').value);
var maintenance = parseFloat(document.getElementById('monthlyMaintenance').value);
var vacancyPct = parseFloat(document.getElementById('vacancyRate').value);
// Validation
if (isNaN(price) || isNaN(down) || isNaN(rate) || isNaN(term) || isNaN(rent) || isNaN(taxes) || isNaN(insurance)) {
document.getElementById('errorMsg').style.display = 'block';
document.getElementById('roiResults').style.display = 'none';
return;
}
document.getElementById('errorMsg').style.display = 'none';
// Mortgage Calculation
var loanAmount = price – down;
var monthlyRate = (rate / 100) / 12;
var numPayments = term * 12;
var mortgagePayment = 0;
if (monthlyRate === 0) {
mortgagePayment = loanAmount / numPayments;
} else {
mortgagePayment = (loanAmount * monthlyRate) / (1 – Math.pow(1 + monthlyRate, -numPayments));
}
// Expense Calculations
var monthlyTaxes = taxes / 12;
var monthlyInsurance = insurance / 12;
var vacancyCost = rent * (vacancyPct / 100);
var totalMonthlyExpenses = mortgagePayment + monthlyTaxes + monthlyInsurance + maintenance + vacancyCost;
var operatingExpensesOnly = monthlyTaxes + monthlyInsurance + maintenance + vacancyCost; // Excluding debt service
// Income Calculations
var grossIncome = rent;
var noiMonthly = grossIncome – operatingExpensesOnly;
var noiAnnual = noiMonthly * 12;
var monthlyCashFlow = grossIncome – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// Investment Metrics
var totalCashInvested = down + closing;
var capRate = 0;
if (price > 0) {
capRate = (noiAnnual / price) * 100;
}
var cashOnCash = 0;
if (totalCashInvested > 0) {
cashOnCash = (annualCashFlow / totalCashInvested) * 100;
}
// Display Results
document.getElementById('resMortgage').innerText = '$' + mortgagePayment.toFixed(2);
document.getElementById('resExpenses').innerText = '$' + totalMonthlyExpenses.toFixed(2);
document.getElementById('resNOI').innerText = '$' + noiMonthly.toFixed(2);
document.getElementById('resCashFlow').innerText = '$' + monthlyCashFlow.toFixed(2);
document.getElementById('resCapRate').innerText = capRate.toFixed(2) + '%';
document.getElementById('resCoC').innerText = cashOnCash.toFixed(2) + '%';
// Visual Styling for Cash Flow
if (monthlyCashFlow >= 0) {
document.getElementById('resCashFlow').style.color = '#27ae60';
} else {
document.getElementById('resCashFlow').style.color = '#c0392b';
}
document.getElementById('roiResults').style.display = 'block';
}