Rental Property Cash on Cash Return Calculator
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
color: #333;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
background-color: #f4f7f6;
}
.calculator-container {
background: #ffffff;
padding: 30px;
border-radius: 12px;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
margin-bottom: 40px;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 30px;
}
@media (max-width: 768px) {
.calculator-container {
grid-template-columns: 1fr;
}
}
.input-section h3, .results-section h3 {
margin-top: 0;
color: #2c3e50;
border-bottom: 2px solid #3498db;
padding-bottom: 10px;
margin-bottom: 20px;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
font-weight: 600;
margin-bottom: 5px;
font-size: 0.9rem;
color: #555;
}
.form-group input {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 6px;
font-size: 1rem;
box-sizing: border-box;
}
.form-group input:focus {
border-color: #3498db;
outline: none;
}
.calc-btn {
background-color: #3498db;
color: white;
border: none;
padding: 12px 20px;
border-radius: 6px;
cursor: pointer;
font-size: 1rem;
font-weight: bold;
width: 100%;
margin-top: 10px;
transition: background-color 0.2s;
}
.calc-btn:hover {
background-color: #2980b9;
}
.result-card {
background-color: #f8f9fa;
padding: 15px;
border-radius: 8px;
margin-bottom: 15px;
border-left: 5px solid #3498db;
}
.result-card.highlight {
background-color: #e8f4fc;
border-left-color: #27ae60;
}
.result-label {
font-size: 0.9rem;
color: #666;
}
.result-value {
font-size: 1.5rem;
font-weight: 700;
color: #2c3e50;
}
.article-content {
background: white;
padding: 40px;
border-radius: 12px;
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
.article-content h2 {
color: #2c3e50;
margin-top: 30px;
}
.article-content p {
margin-bottom: 15px;
}
.article-content ul {
margin-bottom: 20px;
padding-left: 20px;
}
.error-msg {
color: #e74c3c;
font-size: 0.9rem;
display: none;
margin-top: 5px;
}
Investment Analysis
Cash on Cash Return
0.00%
Total Cash Invested
$0.00
Monthly Mortgage Payment
$0.00
Understanding Cash on Cash Return in Real Estate
For real estate investors, calculating the Cash on Cash (CoC) Return is one of the most critical steps in evaluating the profitability of a rental property. Unlike a simple Return on Investment (ROI) calculation which might look at the total value of the asset, CoC Return focuses strictly on the cash income earned on the cash invested.
How is Cash on Cash Return Calculated?
The formula for Cash on Cash Return is straightforward but powerful. It is calculated by dividing the annual pre-tax cash flow by the total cash invested.
CoC Return = (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100
To use this calculator effectively, you need to understand the components:
- Annual Cash Flow: This is your gross rental income minus all operating expenses and debt service (mortgage payments). It represents the actual profit entering your pocket every year.
- Total Cash Invested: This isn't just the down payment. It includes closing costs, rehab or repair costs, and any other upfront fees required to get the property operational.
Why Use a Cash on Cash Return Calculator?
This metric is essential because it removes the "noise" of leverage. A $500,000 property might appreciate in value, but if you only put $100,000 down, your actual return should be measured against that $100,000, not the full property value. This allows investors to compare different investment vehicles—like stocks vs. real estate—on an apples-to-apples basis.
What is a Good Cash on Cash Return?
While "good" is subjective and depends on the market and risk profile, many investors aim for a CoC return between 8% and 12%. In highly competitive markets, investors might accept 4-6% hoping for appreciation, while in riskier or cash-flow-heavy markets, investors might demand 15% or higher.
Use the Rental Property Cash on Cash Return Calculator above to run scenarios on potential deals. Adjusting the rent, purchase price, or financing terms can drastically change your return profile, helping you make data-driven investment decisions.
function calculateCoC() {
// Get input values
var purchasePrice = parseFloat(document.getElementById('purchasePrice').value);
var downPayment = parseFloat(document.getElementById('downPayment').value);
var interestRate = parseFloat(document.getElementById('interestRate').value);
var loanTerm = parseFloat(document.getElementById('loanTerm').value);
var closingCosts = parseFloat(document.getElementById('closingCosts').value);
var rehabCosts = parseFloat(document.getElementById('rehabCosts').value);
var monthlyRent = parseFloat(document.getElementById('monthlyRent').value);
var monthlyExpenses = parseFloat(document.getElementById('monthlyExpenses').value);
var errorMsg = document.getElementById('errorMsg');
// Validation
if (isNaN(purchasePrice) || isNaN(downPayment) || isNaN(interestRate) ||
isNaN(loanTerm) || isNaN(closingCosts) || isNaN(rehabCosts) ||
isNaN(monthlyRent) || isNaN(monthlyExpenses)) {
errorMsg.style.display = 'block';
return;
} else {
errorMsg.style.display = 'none';
}
// 1. Calculate Mortgage Payment
var loanAmount = purchasePrice – downPayment;
var monthlyMortgage = 0;
if (loanAmount > 0) {
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
// Formula: M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1 ]
if (interestRate === 0) {
monthlyMortgage = loanAmount / numberOfPayments;
} else {
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
}
}
// 2. Calculate Cash Flow
var totalMonthlyExpenses = monthlyMortgage + monthlyExpenses;
var monthlyCashFlow = monthlyRent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// 3. Calculate Total Invested
var totalInvested = downPayment + closingCosts + rehabCosts;
// 4. Calculate Cash on Cash Return
var cocReturn = 0;
if (totalInvested > 0) {
cocReturn = (annualCashFlow / totalInvested) * 100;
}
// Formatting currency and percentage
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
});
// Update DOM
document.getElementById('mortgagePayment').innerHTML = formatter.format(monthlyMortgage);
document.getElementById('monthlyCashFlow').innerHTML = formatter.format(monthlyCashFlow);
document.getElementById('annualCashFlow').innerHTML = formatter.format(annualCashFlow);
document.getElementById('totalInvested').innerHTML = formatter.format(totalInvested);
document.getElementById('cocResult').innerHTML = cocReturn.toFixed(2) + "%";
// Styling for negative cash flow
if (monthlyCashFlow < 0) {
document.getElementById('monthlyCashFlow').style.color = '#e74c3c';
document.getElementById('annualCashFlow').style.color = '#e74c3c';
document.getElementById('cocResult').style.color = '#e74c3c';
} else {
document.getElementById('monthlyCashFlow').style.color = '#27ae60';
document.getElementById('annualCashFlow').style.color = '#27ae60';
document.getElementById('cocResult').style.color = '#27ae60';
}
}
// Run calculation on load to show initial valid state
window.onload = function() {
calculateCoC();
};