.calc-container {
max-width: 800px;
margin: 20px auto;
padding: 25px;
background: #f9f9f9;
border: 1px solid #e0e0e0;
border-radius: 8px;
font-family: Arial, sans-serif;
}
.calc-title {
text-align: center;
color: #2c3e50;
margin-bottom: 25px;
font-size: 28px;
}
.calc-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
.calc-input-group {
margin-bottom: 15px;
}
.calc-input-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
color: #34495e;
font-size: 14px;
}
.calc-input-group input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
font-size: 16px;
}
.calc-section-title {
grid-column: 1 / -1;
font-size: 18px;
color: #2980b9;
border-bottom: 2px solid #2980b9;
padding-bottom: 5px;
margin-top: 10px;
margin-bottom: 10px;
}
.calc-btn {
grid-column: 1 / -1;
background-color: #27ae60;
color: white;
padding: 15px;
border: none;
border-radius: 5px;
font-size: 18px;
cursor: pointer;
transition: background 0.3s;
margin-top: 15px;
font-weight: bold;
}
.calc-btn:hover {
background-color: #219150;
}
.calc-results {
grid-column: 1 / -1;
background: #fff;
padding: 20px;
border-radius: 5px;
border: 1px solid #ddd;
margin-top: 20px;
display: none;
}
.result-row {
display: flex;
justify-content: space-between;
padding: 10px 0;
border-bottom: 1px solid #eee;
}
.result-row:last-child {
border-bottom: none;
}
.result-label {
color: #7f8c8d;
}
.result-value {
font-weight: bold;
color: #2c3e50;
font-size: 18px;
}
.highlight-result {
color: #27ae60;
font-size: 22px;
}
.calc-article {
max-width: 800px;
margin: 40px auto;
font-family: Arial, sans-serif;
line-height: 1.6;
color: #333;
}
.calc-article h2 {
color: #2c3e50;
margin-top: 30px;
}
.calc-article h3 {
color: #2980b9;
margin-top: 25px;
}
@media (max-width: 600px) {
.calc-grid {
grid-template-columns: 1fr;
}
}
Understanding Cash on Cash Return for Real Estate Investors
When evaluating rental properties, novice investors often look solely at the cap rate or gross yield. However, experienced real estate investors know that the Cash on Cash Return (CoC) is one of the most critical metrics for measuring the actual performance of the money you have invested. This calculator helps you break down your initial expenses, ongoing costs, and mortgage obligations to find the true profitability of your asset.
What is Cash on Cash Return?
Cash on Cash Return is a percentage that compares the annual pre-tax cash flow of a property to the total amount of cash invested. Unlike Cap Rate, which looks at the property's value regardless of debt, CoC takes into account your mortgage financing. It answers the simple question: "For every dollar I put into this deal, how many cents do I get back this year?"
The formula is:
CoC Return = (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100
Key Inputs Explained
- Purchase Price & Down Payment: These determine your loan amount. A lower down payment increases leverage but also increases monthly mortgage payments.
- Closing & Rehab Costs: Don't forget these! "Cash Invested" isn't just the down payment. It includes title fees, inspections, and immediate repairs needed to make the property rentable.
- Vacancy Rate: No property is occupied 100% of the time. We recommend using at least 5% (approx. 18 days a year) to account for turnover.
- Operating Expenses: This includes taxes, insurance, HOA fees, property management, and maintenance reserves. Underestimating these is the #1 cause of negative cash flow.
Example Calculation
Let's say you buy a property for $200,000 with 20% down ($40,000). Your closing costs and initial repairs total $10,000. Your Total Cash Invested is $50,000.
After paying the mortgage and all operating expenses, the property generates $300 per month in positive cash flow, or $3,600 per year.
Your Cash on Cash Return would be: ($3,600 / $50,000) = 7.2%.
Use the calculator above to run scenarios on potential deals to ensure they meet your investment criteria before making an offer.
function calculateRentalROI() {
// Get Inputs
var price = parseFloat(document.getElementById('purchasePrice').value) || 0;
var downPercent = parseFloat(document.getElementById('downPaymentPercent').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 monthlyRent = parseFloat(document.getElementById('monthlyRent').value) || 0;
var vacancyRate = parseFloat(document.getElementById('monthlyVacancy').value) || 0;
var annualTaxes = parseFloat(document.getElementById('annualTaxes').value) || 0;
var annualInsurance = parseFloat(document.getElementById('annualInsurance').value) || 0;
var monthlyHOA = parseFloat(document.getElementById('monthlyHOA').value) || 0;
// 1. Calculate Initial Investment
var downPaymentAmount = price * (downPercent / 100);
var totalInvested = downPaymentAmount + closingCosts + repairCosts;
// 2. Calculate Mortgage Payment (P&I)
var loanAmount = price – downPaymentAmount;
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
var monthlyMortgage = 0;
if (interestRate > 0 && loanTerm > 0) {
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
} else if (loanTerm > 0) {
monthlyMortgage = loanAmount / numberOfPayments;
}
// 3. Calculate Monthly Expenses
var monthlyTaxes = annualTaxes / 12;
var monthlyInsurance = annualInsurance / 12;
var vacancyCost = monthlyRent * (vacancyRate / 100);
var totalMonthlyExpenses = monthlyMortgage + monthlyTaxes + monthlyInsurance + monthlyHOA + vacancyCost;
// 4. Calculate Cash Flow
var monthlyCashFlow = monthlyRent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// 5. Calculate Cash on Cash Return
var cocReturn = 0;
if (totalInvested > 0) {
cocReturn = (annualCashFlow / totalInvested) * 100;
}
// Display Results with formatting
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2
});
document.getElementById('resTotalInvested').innerText = formatter.format(totalInvested);
document.getElementById('resMortgage').innerText = formatter.format(monthlyMortgage);
document.getElementById('resExpenses').innerText = formatter.format(totalMonthlyExpenses);
var cfElement = document.getElementById('resCashFlow');
cfElement.innerText = formatter.format(monthlyCashFlow);
cfElement.style.color = monthlyCashFlow >= 0 ? '#27ae60' : '#c0392b';
var annualCfElement = document.getElementById('resAnnualCashFlow');
annualCfElement.innerText = formatter.format(annualCashFlow);
annualCfElement.style.color = annualCashFlow >= 0 ? '#27ae60' : '#c0392b';
var cocElement = document.getElementById('resCOC');
cocElement.innerText = cocReturn.toFixed(2) + "%";
cocElement.style.color = cocReturn >= 0 ? '#27ae60' : '#c0392b';
// Show results area
document.getElementById('resultsArea').style.display = 'block';
}