Analyze your real estate investment performance accurately.
Purchase & Financing Details
Income & Expenses
Monthly Mortgage (P&I):$0.00
Total Monthly Expenses:$0.00
Monthly Cash Flow:$0.00
Annual Cash Flow:$0.00
Total Cash Invested:$0.00
Cash on Cash Return:0.00%
Understanding Cash on Cash Return in Real Estate
Cash on Cash Return (CoC) is one of the most critical metrics for real estate investors. Unlike Cap Rate, which looks at the property's potential purely based on its purchase price, CoC Return measures the annual return on the actual cash you invested.
This metric allows investors to compare the profitability of a rental property against other investment vehicles, such as stocks or bonds. A higher percentage indicates a better return on your deployed capital.
How This Calculator Works
Our comprehensive Rental Property Calculator breaks down your investment into two main components: cash flow and cash invested.
Cash Flow: This is your net income after all expenses. It starts with your monthly rent, then subtracts the mortgage payment (Principal & Interest), property taxes, insurance, and operating costs like maintenance or HOA fees.
Total Cash Invested: This includes your down payment, closing costs, and any immediate rehab or repair costs required to get the property rent-ready.
The Cash on Cash Return Formula
The calculation used in this tool is:
Cash on Cash Return = (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100
Example Calculation
Imagine you buy a property for $200,000.
Down Payment (20%): $40,000
Closing & Repairs: $5,000
Total Invested: $45,000
If your rental income exceeds your mortgage and expenses by $300 per month, your annual cash flow is $3,600.
Result: ($3,600 / $45,000) = 0.08, or an 8% Cash on Cash Return.
What is a Good Cash on Cash Return?
While "good" is subjective, many real estate investors target a CoC return between 8% and 12%. In highly competitive markets, investors might accept 5-7% anticipating appreciation, while cash-flow-focused investors in tertiary markets might seek 15% or higher.
function calculateROI() {
// Get Inputs
var price = parseFloat(document.getElementById('purchasePrice').value) || 0;
var downPerc = parseFloat(document.getElementById('downPayment').value) || 0;
var rate = parseFloat(document.getElementById('interestRate').value) || 0;
var years = parseFloat(document.getElementById('loanTerm').value) || 0;
var closing = parseFloat(document.getElementById('closingCosts').value) || 0;
var rehab = parseFloat(document.getElementById('rehabCosts').value) || 0;
var rent = parseFloat(document.getElementById('monthlyRent').value) || 0;
var tax = parseFloat(document.getElementById('annualTaxes').value) || 0;
var insurance = parseFloat(document.getElementById('annualInsurance').value) || 0;
var maint = parseFloat(document.getElementById('monthlyMaintenance').value) || 0;
// Calculations
var downPaymentAmt = price * (downPerc / 100);
var loanAmount = price – downPaymentAmt;
// Mortgage Calculation
var monthlyRate = (rate / 100) / 12;
var numPayments = years * 12;
var mortgage = 0;
if (monthlyRate > 0 && numPayments > 0) {
mortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numPayments)) / (Math.pow(1 + monthlyRate, numPayments) – 1);
} else if (years > 0) {
mortgage = loanAmount / numPayments; // 0% interest case
}
// Monthly Expenses
var monthlyTax = tax / 12;
var monthlyIns = insurance / 12;
var totalMonthlyFixed = mortgage + monthlyTax + monthlyIns + maint;
// Cash Flow
var monthlyCashFlow = rent – totalMonthlyFixed;
var annualCashFlow = monthlyCashFlow * 12;
// Total Invested
var totalInvested = downPaymentAmt + closing + rehab;
// CoC Return
var coc = 0;
if (totalInvested > 0) {
coc = (annualCashFlow / totalInvested) * 100;
}
// Formatting currency
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
});
// Update UI
document.getElementById('displayMortgage').innerText = formatter.format(mortgage);
document.getElementById('displayTotalExpenses').innerText = formatter.format(totalMonthlyFixed);
document.getElementById('displayMonthlyCashFlow').innerText = formatter.format(monthlyCashFlow);
document.getElementById('displayAnnualCashFlow').innerText = formatter.format(annualCashFlow);
document.getElementById('displayTotalInvested').innerText = formatter.format(totalInvested);
var cocElement = document.getElementById('displayCoC');
cocElement.innerText = coc.toFixed(2) + "%";
if(coc < 0) {
cocElement.style.color = "#e74c3c"; // Red for negative
} else {
cocElement.style.color = "#27ae60"; // Green for positive
}
// Show results
document.getElementById('resultsSection').style.display = 'block';
}