Please enter valid numeric values greater than zero.
function calculateRentalROI() {
// Get Input Values
var price = parseFloat(document.getElementById('calc_price').value);
var downPayment = parseFloat(document.getElementById('calc_down').value);
var closingCosts = parseFloat(document.getElementById('calc_closing').value);
var interestRate = parseFloat(document.getElementById('calc_rate').value);
var loanTerm = parseFloat(document.getElementById('calc_term').value);
var monthlyRent = parseFloat(document.getElementById('calc_rent').value);
var monthlyExpenses = parseFloat(document.getElementById('calc_expenses').value);
// Validation
if (isNaN(price) || isNaN(downPayment) || isNaN(closingCosts) || isNaN(interestRate) || isNaN(loanTerm) || isNaN(monthlyRent) || isNaN(monthlyExpenses)) {
document.getElementById('calc_error').style.display = 'block';
return;
} else {
document.getElementById('calc_error').style.display = 'none';
}
// 1. Calculate Mortgage Payment
var loanAmount = price – downPayment;
var monthlyRate = (interestRate / 100) / 12;
var totalPayments = loanTerm * 12;
var monthlyMortgage = 0;
if (loanAmount > 0) {
if (interestRate === 0) {
monthlyMortgage = loanAmount / totalPayments;
} else {
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, totalPayments)) / (Math.pow(1 + monthlyRate, totalPayments) – 1);
}
}
// 2. Calculate Financial Metrics
var totalMonthlyExpenses = monthlyMortgage + monthlyExpenses;
var monthlyCashFlow = monthlyRent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
var annualNOI = (monthlyRent – monthlyExpenses) * 12;
var totalInvested = downPayment + closingCosts;
// 3. Calculate Returns
var capRate = (annualNOI / price) * 100;
var cashOnCash = 0;
if (totalInvested > 0) {
cashOnCash = (annualCashFlow / totalInvested) * 100;
}
// 4. Update UI
document.getElementById('res_mortgage').innerHTML = '$' + monthlyMortgage.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res_cashflow').innerHTML = '$' + monthlyCashFlow.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res_noi').innerHTML = '$' + annualNOI.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res_invested').innerHTML = '$' + totalInvested.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res_cap').innerHTML = capRate.toFixed(2) + '%';
var cocElement = document.getElementById('res_coc');
cocElement.innerHTML = cashOnCash.toFixed(2) + '%';
// Color coding for negative flow
if (monthlyCashFlow < 0) {
document.getElementById('res_cashflow').style.color = '#c0392b';
cocElement.style.color = '#c0392b';
} else {
document.getElementById('res_cashflow').style.color = '#27ae60';
cocElement.style.color = '#27ae60';
}
}
// Initialize with default values on load
window.onload = function() {
calculateRentalROI();
};
Understanding Cash on Cash Return in Real Estate
When investing in rental properties, knowing the monthly rent is simply not enough. Savvy investors rely on specific metrics to determine the profitability of an asset relative to the actual cash they have invested. The most critical of these metrics is the Cash on Cash (CoC) Return.
Our Rental Property ROI Calculator helps you analyze deal performance by factoring in your mortgage, operating expenses, and initial closing costs to give you a clear picture of your annual percentage return.
What is Cash on Cash Return?
Cash on Cash Return measures the annual pre-tax cash flow generated by the property divided by the total cash invested. Unlike Cap Rate, which looks at the property's potential regardless of financing, CoC Return is specifically focused on the financing structure and your personal liquidity.
Formula:
Cash on Cash Return = (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100
How to Calculate Your Metrics
To use this calculator effectively, you need to understand the inputs:
Purchase Price: The agreed-upon price of the property.
Down Payment: The cash amount you pay upfront (usually 20-25% for investment loans).
Closing Costs & Rehab: Fees paid at closing plus any immediate repairs needed to make the unit rentable. This is part of your total cash invested.
Operating Expenses: These include property taxes, landlord insurance, HOA fees, vacancy reserves, and maintenance. A common rule of thumb is that expenses (excluding mortgage) often run 30-40% of the rent.
Real Estate Investment ROI Example
Let's look at a realistic scenario for a single-family rental:
Item
Value
Purchase Price
$200,000
Down Payment (20%)
$40,000
Closing/Repairs
$5,000
Total Cash Invested
$45,000
Annual Cash Flow (After Expenses & Mortgage)
$3,600
Cash on Cash Return
8.0%
In this example, your money is growing at a rate of 8% per year from cash flow alone, not counting mortgage principal paydown or property appreciation.
What is a Good Cash on Cash Return?
A "good" return varies by investor goals and market location, but generally:
8-12%: Considered a solid return in most stable markets.
15%+: Excellent return, often found in lower-cost areas or properties requiring significant renovation (BRRRR strategy).
Below 5%: Might be acceptable in high-appreciation markets (like California or New York), but risky for cash-flow focused investors.
Cap Rate vs. Cash on Cash
You will notice our calculator provides both metrics. Cap Rate (Capitalization Rate) indicates the return if you bought the property entirely with cash. It measures the property's raw profitability. Cash on Cash measures the return on your specific equity stake, factoring in leverage (loans).