.calc-container {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
@media (max-width: 768px) {
.calc-container {
grid-template-columns: 1fr;
}
}
.calc-input-group {
margin-bottom: 15px;
}
.calc-input-group label {
display: block;
margin-bottom: 5px;
font-weight: 600;
color: #333;
font-size: 14px;
}
.calc-input-group input, .calc-input-group select {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
.calc-input-group input:focus {
border-color: #0073aa;
outline: none;
}
.calc-section-title {
grid-column: 1 / -1;
font-size: 18px;
font-weight: 700;
color: #2c3e50;
margin-top: 10px;
margin-bottom: 10px;
border-bottom: 2px solid #eee;
padding-bottom: 5px;
}
.calc-btn {
grid-column: 1 / -1;
background-color: #0073aa;
color: white;
padding: 15px;
border: none;
border-radius: 4px;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: background 0.3s;
margin-top: 10px;
}
.calc-btn:hover {
background-color: #005177;
}
.calc-results {
grid-column: 1 / -1;
background: #f8f9fa;
padding: 20px;
border-radius: 4px;
margin-top: 20px;
display: none;
border: 1px solid #e2e4e7;
}
.result-row {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
font-size: 16px;
}
.result-row.highlight {
font-weight: bold;
color: #2c3e50;
font-size: 20px;
border-top: 1px solid #ddd;
padding-top: 10px;
margin-top: 10px;
}
.positive { color: #27ae60; }
.negative { color: #c0392b; }
/* Article Styling */
.article-content {
margin-top: 40px;
line-height: 1.6;
color: #333;
}
.article-content h2 { font-size: 24px; margin-bottom: 15px; color: #23282d; }
.article-content h3 { font-size: 20px; margin-top: 20px; margin-bottom: 10px; color: #32373c; }
.article-content p { margin-bottom: 15px; }
.article-content ul { margin-bottom: 15px; padding-left: 20px; }
.article-content li { margin-bottom: 8px; }
function calculateCoC() {
// Get Input Values
var price = parseFloat(document.getElementById('purchasePrice').value) || 0;
var downPmt = parseFloat(document.getElementById('downPayment').value) || 0;
var closing = parseFloat(document.getElementById('closingCosts').value) || 0;
var rate = parseFloat(document.getElementById('interestRate').value) || 0;
var term = parseInt(document.getElementById('loanTerm').value) || 30;
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 hoa = parseFloat(document.getElementById('monthlyHOA').value) || 0;
var vacancy = parseFloat(document.getElementById('vacancyRate').value) || 0;
// 1. Calculate Mortgage Payment
var loanAmount = price – downPmt;
var monthlyRate = rate / 100 / 12;
var numberOfPayments = term * 12;
var mortgagePayment = 0;
if (loanAmount > 0 && rate > 0) {
mortgagePayment = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
} else if (loanAmount > 0 && rate === 0) {
mortgagePayment = loanAmount / numberOfPayments;
}
// 2. Calculate Operating Expenses
var monthlyTax = tax / 12;
var monthlyInsurance = insurance / 12;
var vacancyLoss = rent * (vacancy / 100);
var totalMonthlyExpenses = mortgagePayment + monthlyTax + monthlyInsurance + hoa + vacancyLoss;
// 3. Calculate Cash Flow
var monthlyCashFlow = rent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// 4. Calculate Total Cash Invested
var totalCashInvested = downPmt + closing;
// 5. Calculate CoC Return
var cocReturn = 0;
if (totalCashInvested > 0) {
cocReturn = (annualCashFlow / totalCashInvested) * 100;
}
// Formatting Function
function formatCurrency(num) {
return '$' + num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
}
// Display Results
document.getElementById('displayTotalCash').innerText = formatCurrency(totalCashInvested);
document.getElementById('displayMortgage').innerText = formatCurrency(mortgagePayment);
document.getElementById('displayExpenses').innerText = formatCurrency(totalMonthlyExpenses);
var mcfEl = document.getElementById('displayMonthlyCashFlow');
mcfEl.innerText = formatCurrency(monthlyCashFlow);
mcfEl.className = monthlyCashFlow >= 0 ? 'positive' : 'negative';
var acfEl = document.getElementById('displayAnnualCashFlow');
acfEl.innerText = formatCurrency(annualCashFlow);
acfEl.className = annualCashFlow >= 0 ? 'positive' : 'negative';
var cocEl = document.getElementById('displayCoC');
cocEl.innerText = cocReturn.toFixed(2) + '%';
cocEl.className = cocReturn >= 0 ? 'positive' : 'negative';
// Show Results Section
document.getElementById('resultsArea').style.display = 'block';
}
What is Cash on Cash Return?
Cash on Cash Return (CoC) is a fundamental metric in real estate investing that measures the annual return the investor made on the property in relation to the amount of mortgage paid during the same year. Unlike ROI, which might look at the total value of the asset, CoC specifically focuses on the cash flow relative to the actual cash invested.
For rental property investors, this is often considered the most important "day one" metric because it answers the simple question: "If I put $50,000 into this deal, what percentage of that money will I get back this year in profit?"
How to Calculate Cash on Cash Return
The formula is relatively straightforward but requires accurate expense tracking:
Cash on Cash Return = (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100%
- Annual Cash Flow: This is your Gross Rent minus all expenses (Mortgage, Taxes, Insurance, HOA, Repairs, Vacancy). It is the net profit in your pocket at the end of the year.
- Total Cash Invested: This includes your Down Payment, Closing Costs, and any immediate Repair/Rehab costs required to get the property rented.
Example Scenario
Imagine you purchase a rental property for $200,000. You put 20% down ($40,000) and pay $5,000 in closing costs. Your total cash invested is $45,000.
After paying the mortgage and all operating expenses, the property generates $300 per month in positive cash flow. That is $3,600 per year.
The calculation would be: ($3,600 / $45,000) = 0.08 or 8%.
What is a "Good" CoC Return?
There is no universal standard, as acceptable returns vary by market and investor strategy. However, generally speaking:
- 8-12%: Often considered a solid benchmark for safe, long-term residential rentals.
- 15%+: Considered excellent, though often found in riskier neighborhoods or properties requiring significant work (BRRRR strategy).
- Below 5%: Might be acceptable in high-appreciation markets (like San Francisco or NYC) where the investor is banking on property value increases rather than immediate cash flow.
Why Use This Calculator?
Our Rental Property Cash on Cash Return Calculator helps you quickly analyze deals without getting bogged down in complex spreadsheets. By inputting your purchase price, loan terms, and expected expenses, you can immediately see if a property meets your investment criteria before making an offer.