Calculate your Cash on Cash Return and Cap Rate to evaluate the profitability of a real estate investment.
1. Acquisition Costs
2. Financing Details
3. Rental Income
4. Operating Expenses (Monthly)
Investment Analysis
Total Cash Invested (Upfront):–
Monthly Net Operating Income (NOI):–
Monthly Mortgage Payment:–
Monthly Cash Flow:–
Annual Cash Flow:–
Cap Rate (Capitalization Rate):–
Cash on Cash Return:–
function calculateROR() {
// 1. Get Values
var purchasePrice = parseFloat(document.getElementById('purchasePrice').value) || 0;
var closingCosts = parseFloat(document.getElementById('closingCosts').value) || 0;
var rehabCosts = parseFloat(document.getElementById('rehabCosts').value) || 0;
var downPaymentPercent = parseFloat(document.getElementById('downPaymentPercent').value) || 0;
var interestRate = parseFloat(document.getElementById('interestRate').value) || 0;
var loanTerm = parseFloat(document.getElementById('loanTerm').value) || 30;
var monthlyRent = parseFloat(document.getElementById('monthlyRent').value) || 0;
var otherIncome = parseFloat(document.getElementById('otherIncome').value) || 0;
var propertyTax = parseFloat(document.getElementById('propertyTax').value) || 0;
var insurance = parseFloat(document.getElementById('insurance').value) || 0;
var hoaFees = parseFloat(document.getElementById('hoaFees').value) || 0;
var vacancyRate = parseFloat(document.getElementById('vacancyRate').value) || 0;
var maintenanceRate = parseFloat(document.getElementById('maintenanceRate').value) || 0;
var managementRate = parseFloat(document.getElementById('managementRate').value) || 0;
// 2. Calculate Upfront Costs (Total Cash Invested)
var downPaymentAmount = purchasePrice * (downPaymentPercent / 100);
var loanAmount = purchasePrice – downPaymentAmount;
var totalCashInvested = downPaymentAmount + closingCosts + rehabCosts;
// 3. Calculate Monthly Mortgage Payment (PI)
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
var monthlyMortgage = 0;
if (loanAmount > 0 && monthlyRate > 0) {
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
} else if (loanAmount > 0 && monthlyRate === 0) {
monthlyMortgage = loanAmount / numberOfPayments;
}
// 4. Calculate Income
var grossMonthlyIncome = monthlyRent + otherIncome;
// 5. Calculate Operating Expenses (Variable expenses based on rent)
var vacancyCost = grossMonthlyIncome * (vacancyRate / 100);
var maintenanceCost = grossMonthlyIncome * (maintenanceRate / 100);
var managementCost = grossMonthlyIncome * (managementRate / 100);
var totalMonthlyExpenses = propertyTax + insurance + hoaFees + vacancyCost + maintenanceCost + managementCost;
// 6. Calculate NOI and Cash Flow
var monthlyNOI = grossMonthlyIncome – totalMonthlyExpenses;
var monthlyCashFlow = monthlyNOI – monthlyMortgage;
var annualCashFlow = monthlyCashFlow * 12;
var annualNOI = monthlyNOI * 12;
// 7. Calculate Returns
var capRate = 0;
var cashOnCash = 0;
if (purchasePrice > 0) {
capRate = (annualNOI / purchasePrice) * 100;
}
if (totalCashInvested > 0) {
cashOnCash = (annualCashFlow / totalCashInvested) * 100;
}
// 8. Display Results
document.getElementById('results-area').style.display = 'block';
document.getElementById('resTotalInvested').innerText = '$' + totalCashInvested.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resNOI').innerText = '$' + monthlyNOI.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resMortgage').innerText = '$' + monthlyMortgage.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
var cashFlowEl = document.getElementById('resMonthlyCashFlow');
cashFlowEl.innerText = '$' + monthlyCashFlow.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
cashFlowEl.style.color = monthlyCashFlow >= 0 ? '#27ae60' : '#c0392b';
var annualCashFlowEl = document.getElementById('resAnnualCashFlow');
annualCashFlowEl.innerText = '$' + annualCashFlow.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
annualCashFlowEl.style.color = annualCashFlow >= 0 ? '#27ae60' : '#c0392b';
document.getElementById('resCapRate').innerText = capRate.toFixed(2) + '%';
var cocEl = document.getElementById('resCashOnCash');
cocEl.innerText = cashOnCash.toFixed(2) + '%';
cocEl.style.color = cashOnCash >= 0 ? '#27ae60' : '#c0392b';
}
How to Calculate Rate of Return for Rental Property
Understanding how to calculate the rate of return for rental property is the cornerstone of successful real estate investing. Unlike standard stock market investments where you look at simple growth, real estate requires analyzing cash flow, debt service, and operating expenses. This calculator focuses on the two most critical metrics: Cash on Cash Return and Cap Rate.
1. Cash on Cash Return
This is arguably the most important metric for rental property investors. It measures the annual return on the actual cash you invested, rather than the total value of the property. This is crucial because most real estate is purchased with leverage (a mortgage).
Formula:
Cash on Cash Return = (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100
Your Total Cash Invested includes your down payment, closing costs, and any immediate repair or rehab costs. A healthy Cash on Cash return usually ranges from 8% to 12% depending on the market.
2. Cap Rate (Capitalization Rate)
The Cap Rate measures the property's natural profitability, independent of how you financed it. It assumes you bought the property with 100% cash. This allows you to compare the profitability of one building against another without the distortion of different loan terms.
Formula:
Cap Rate = (Net Operating Income / Purchase Price) × 100
Net Operating Income (NOI) is your total income minus all operating expenses (taxes, insurance, maintenance) but excluding mortgage payments.
3. Key Inputs for Accurate Calculation
Vacancy Rate: Always budget for vacancy. Even in hot markets, you will have turnover. 5% to 8% is a standard conservative estimate (representing about 2-3 weeks empty per year).
Maintenance & Repairs: Houses degrade. Budgeting 5% to 10% of monthly rent ensures you have funds for broken water heaters or roof patches.
Property Management: Even if you manage it yourself, account for this cost (typically 8-10%) so you know the value of your time or can afford to hire a manager later.
Why Cash Flow is King
While appreciation (the property increasing in value) is great, it is speculative. Cash flow is the money left over every month after all bills are paid. Positive cash flow ensures the property pays for itself and puts money in your pocket, reducing your risk significantly.