.calculator-container {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
max-width: 800px;
margin: 0 auto;
background: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.calc-header {
text-align: center;
margin-bottom: 30px;
border-bottom: 2px solid #2c3e50;
padding-bottom: 10px;
}
.calc-header h1 {
color: #2c3e50;
margin: 0;
font-size: 28px;
}
.input-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin-bottom: 25px;
}
@media (max-width: 600px) {
.input-grid {
grid-template-columns: 1fr;
}
}
.input-group {
display: flex;
flex-direction: column;
}
.input-group label {
font-weight: 600;
color: #555;
margin-bottom: 5px;
font-size: 14px;
}
.input-group input {
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 16px;
transition: border-color 0.3s;
}
.input-group input:focus {
border-color: #3498db;
outline: none;
}
.section-title {
grid-column: 1 / -1;
font-size: 18px;
color: #34495e;
margin-top: 10px;
margin-bottom: 5px;
border-left: 4px solid #3498db;
padding-left: 10px;
}
button.calc-btn {
width: 100%;
padding: 15px;
background-color: #27ae60;
color: white;
border: none;
border-radius: 4px;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: background-color 0.3s;
margin-top: 10px;
}
button.calc-btn:hover {
background-color: #219150;
}
#result-area {
margin-top: 30px;
padding: 20px;
background-color: #f8f9fa;
border-radius: 6px;
border: 1px solid #e9ecef;
display: none;
}
.result-row {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
font-size: 16px;
color: #555;
}
.result-row.highlight {
font-weight: bold;
color: #2c3e50;
font-size: 20px;
margin-top: 15px;
padding-top: 15px;
border-top: 1px solid #ddd;
}
.seo-content {
margin-top: 50px;
line-height: 1.6;
color: #333;
}
.seo-content h2 {
color: #2c3e50;
margin-top: 30px;
}
.seo-content p {
margin-bottom: 15px;
}
.error-msg {
color: #e74c3c;
text-align: center;
margin-top: 10px;
display: none;
}
Please enter valid numbers for all fields.
What is Cash-on-Cash Return in Real Estate?
Cash-on-Cash (CoC) return is one of the most important metrics for real estate investors. Unlike Cap Rate, which looks at the property's performance regardless of debt, CoC return measures the annual return on the actual cash you invested in the deal. It answers the fundamental question: "For every dollar I put into this property, how much cash am I getting back this year?"
How to Calculate Cash-on-Cash Return
The formula for calculating Cash-on-Cash return is straightforward but requires accurate inputs regarding your initial outlay and ongoing operations:
Cash-on-Cash Return = (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100%
- Annual Pre-Tax Cash Flow: This is your gross rent minus all operating expenses and debt service (mortgage payments) for the year.
- Total Cash Invested: This includes your down payment, closing costs, and any immediate repair or renovation costs required to get the property rent-ready.
What is a Good Cash-on-Cash Return?
While target returns vary by market and investor strategy, many real estate investors aim for a Cash-on-Cash return between 8% and 12%. A return above 15% is generally considered excellent, while anything below 5% might suggest the property is not generating enough cash flow relative to the capital tied up, unless there is significant potential for appreciation.
Why Use This Calculator?
Using a Rental Property Cash-on-Cash Return Calculator helps you quickly screen potential deals. By isolating the cash yield, you can compare the performance of a rental property against other investment vehicles like stocks or bonds, ensuring your capital is working efficiently for you.
function calculateCoC() {
// Get inputs
var downPayment = parseFloat(document.getElementById("downPayment").value);
var closingCosts = parseFloat(document.getElementById("closingCosts").value);
var rehabCosts = parseFloat(document.getElementById("rehabCosts").value);
var monthlyRent = parseFloat(document.getElementById("monthlyRent").value);
var monthlyMortgage = parseFloat(document.getElementById("monthlyMortgage").value);
var otherExpenses = parseFloat(document.getElementById("otherExpenses").value);
var errorMsg = document.getElementById("error-message");
var resultArea = document.getElementById("result-area");
// Reset error
errorMsg.style.display = "none";
// Default empty fields to 0 for smoother UX, but check core requirements
if (isNaN(downPayment)) downPayment = 0;
if (isNaN(closingCosts)) closingCosts = 0;
if (isNaN(rehabCosts)) rehabCosts = 0;
// Critical fields validation
if (isNaN(monthlyRent) || isNaN(monthlyMortgage) || isNaN(otherExpenses)) {
errorMsg.style.display = "block";
resultArea.style.display = "none";
return;
}
// Calculations
var totalCashInvested = downPayment + closingCosts + rehabCosts;
var totalMonthlyExpenses = monthlyMortgage + otherExpenses;
var monthlyCashFlow = monthlyRent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// Handle division by zero
var cocReturn = 0;
if (totalCashInvested > 0) {
cocReturn = (annualCashFlow / totalCashInvested) * 100;
}
// Formatting Logic
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
});
// Update DOM
document.getElementById("res-total-invested").innerText = formatter.format(totalCashInvested);
var monthlyFlowEl = document.getElementById("res-monthly-flow");
monthlyFlowEl.innerText = formatter.format(monthlyCashFlow);
monthlyFlowEl.style.color = monthlyCashFlow >= 0 ? "#27ae60" : "#e74c3c";
var annualFlowEl = document.getElementById("res-annual-flow");
annualFlowEl.innerText = formatter.format(annualCashFlow);
annualFlowEl.style.color = annualCashFlow >= 0 ? "#27ae60" : "#e74c3c";
var cocEl = document.getElementById("res-coc-percent");
cocEl.innerText = cocReturn.toFixed(2) + "%";
cocEl.style.color = cocReturn >= 0 ? "#27ae60" : "#e74c3c";
resultArea.style.display = "block";
}