Rental Property Cash-on-Cash Return Calculator
.re-calculator-container {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
max-width: 800px;
margin: 20px auto;
border: 1px solid #e2e8f0;
border-radius: 8px;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
background-color: #ffffff;
overflow: hidden;
}
.re-calc-header {
background-color: #2c3e50;
color: #ffffff;
padding: 20px;
text-align: center;
}
.re-calc-header h2 {
margin: 0;
font-size: 24px;
}
.re-calc-body {
padding: 20px;
display: flex;
flex-wrap: wrap;
gap: 20px;
}
.re-input-group {
flex: 1 1 300px;
}
.re-input-group h3 {
font-size: 18px;
color: #2d3748;
border-bottom: 2px solid #edf2f7;
padding-bottom: 10px;
margin-bottom: 15px;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
font-size: 14px;
font-weight: 600;
color: #4a5568;
margin-bottom: 5px;
}
.form-group input, .form-group select {
width: 100%;
padding: 10px;
border: 1px solid #cbd5e0;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
.form-group input:focus {
border-color: #4299e1;
outline: none;
box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.2);
}
.calc-btn-container {
width: 100%;
text-align: center;
margin-top: 20px;
}
.calc-btn {
background-color: #48bb78;
color: white;
border: none;
padding: 15px 40px;
font-size: 18px;
font-weight: bold;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.2s;
}
.calc-btn:hover {
background-color: #38a169;
}
.results-container {
width: 100%;
background-color: #f7fafc;
border-top: 1px solid #e2e8f0;
padding: 20px;
margin-top: 20px;
display: none;
}
.result-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
}
.result-card {
background: white;
padding: 15px;
border-radius: 6px;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
text-align: center;
}
.result-label {
font-size: 13px;
color: #718096;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.result-value {
font-size: 24px;
font-weight: 800;
color: #2d3748;
margin-top: 5px;
}
.positive { color: #48bb78; }
.negative { color: #e53e3e; }
.article-section {
max-width: 800px;
margin: 40px auto;
padding: 0 20px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
color: #2d3748;
}
.article-section h2 {
color: #2c3e50;
margin-top: 30px;
}
.article-section p {
margin-bottom: 15px;
}
.article-section ul {
margin-bottom: 20px;
}
.article-section li {
margin-bottom: 8px;
}
Cash-on-Cash Return
0.00%
Monthly Mortgage (P&I)
$0.00
Total Cash Invested
$0.00
function calculateROI() {
// Get Inputs
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 repairCosts = parseFloat(document.getElementById('repairCosts').value) || 0;
var interestRate = parseFloat(document.getElementById('interestRate').value) || 0;
var loanTerm = parseFloat(document.getElementById('loanTerm').value) || 0;
var rentalIncome = parseFloat(document.getElementById('rentalIncome').value) || 0;
var propertyTaxYearly = parseFloat(document.getElementById('propertyTax').value) || 0;
var insuranceYearly = parseFloat(document.getElementById('insurance').value) || 0;
var hoaMonthly = parseFloat(document.getElementById('hoa').value) || 0;
var maintPercent = parseFloat(document.getElementById('maintenance').value) || 0;
var vacancyPercent = parseFloat(document.getElementById('vacancy').value) || 0;
var managementPercent = parseFloat(document.getElementById('management').value) || 0;
// 1. Calculate Mortgage Payment
var loanAmount = purchasePrice – downPayment;
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
var monthlyMortgage = 0;
if (interestRate > 0) {
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
} else {
monthlyMortgage = loanAmount / numberOfPayments;
}
// 2. Calculate Operating Expenses (Monthly)
var vacancyCost = rentalIncome * (vacancyPercent / 100);
var maintenanceCost = rentalIncome * (maintPercent / 100);
var managementCost = rentalIncome * (managementPercent / 100);
var taxMonthly = propertyTaxYearly / 12;
var insuranceMonthly = insuranceYearly / 12;
var totalOperatingExpenses = taxMonthly + insuranceMonthly + hoaMonthly + vacancyCost + maintenanceCost + managementCost;
// 3. Calculate Cash Flow
var totalMonthlyExpenses = totalOperatingExpenses + monthlyMortgage;
var monthlyCashFlow = rentalIncome – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// 4. Calculate Total Initial Investment
var totalInvestment = downPayment + closingCosts + repairCosts;
// 5. Calculate Cash on Cash Return
var cocReturn = 0;
if (totalInvestment > 0) {
cocReturn = (annualCashFlow / totalInvestment) * 100;
}
// Display Results
var cocEl = document.getElementById('cocResult');
var cashFlowEl = document.getElementById('cashFlowResult');
cocEl.innerText = cocReturn.toFixed(2) + "%";
cashFlowEl.innerText = "$" + monthlyCashFlow.toFixed(2);
document.getElementById('mortgageResult').innerText = "$" + monthlyMortgage.toFixed(2);
document.getElementById('investmentResult').innerText = "$" + totalInvestment.toLocaleString();
// Styling for positive/negative numbers
cocEl.className = "result-value " + (cocReturn >= 0 ? "positive" : "negative");
cashFlowEl.className = "result-value " + (monthlyCashFlow >= 0 ? "positive" : "negative");
// Show results container
document.getElementById('resultSection').style.display = "block";
}
Understanding Cash-on-Cash Return in Real Estate
When investing in rental properties, one of the most critical metrics to understand is the Cash-on-Cash (CoC) Return. Unlike simple ROI, which might look at the total value of the asset, CoC specifically measures the annual return you make on the actual cash you invested, rather than the total loan amount.
This metric is essential for investors using leverage (mortgages) because it provides a clear picture of how hard your cash is working for you. A property might appreciate in value, but if the monthly cash flow relative to your down payment is low, your liquidity is tied up inefficiently.
How to Calculate Cash-on-Cash Return
The formula used in our calculator is straightforward but requires accurate inputs for expenses:
- Annual Pre-Tax Cash Flow = (Gross Rental Income – Operating Expenses – Mortgage Debt Service) × 12
- Total Cash Invested = Down Payment + Closing Costs + Rehab Costs
- CoC Return = Annual Pre-Tax Cash Flow / Total Cash Invested
What is a Good Cash-on-Cash Return?
While target returns vary by market and investor strategy, a common benchmark for residential rental properties is between 8% and 12%. This range typically beats the average stock market return while accounting for the illiquidity and effort associated with real estate.
Some aggressive investors look for 15%+ returns, often found in lower-cost markets or properties requiring significant rehabilitation ("fixer-uppers"). Conversely, in high-appreciation markets like San Francisco or New York, investors might accept a lower CoC return (3-5%) banking on long-term property value growth instead of immediate cash flow.
Key Factors Affecting Your Return
1. Vacancy Rates: Always budget for vacancies. Even in hot markets, tenant turnover results in lost income. A standard conservative estimate is 5-8%.
2. Maintenance & CapEx: Many new investors fail to account for maintenance (leaky faucets, painting) and Capital Expenditures (roof replacement, new HVAC). Setting aside 5-10% of rent for these future costs is crucial for an accurate calculation.
3. Leverage: Putting less money down (lower down payment) usually increases your Cash-on-Cash return because your denominator (cash invested) is smaller, provided the rent covers the higher mortgage payment.