Rental Property Cash-on-Cash Return Calculator
.roi-calc-wrapper {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
max-width: 800px;
margin: 0 auto;
padding: 20px;
background: #f9f9f9;
border: 1px solid #e0e0e0;
border-radius: 8px;
}
.roi-calc-header {
text-align: center;
margin-bottom: 25px;
}
.roi-calc-header h2 {
margin: 0;
color: #2c3e50;
}
.roi-inputs {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
.roi-input-group {
margin-bottom: 15px;
}
.roi-input-group label {
display: block;
margin-bottom: 5px;
font-weight: 600;
color: #555;
}
.roi-input-group input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
.roi-input-group span.unit {
position: absolute;
right: 10px;
top: 35px;
color: #777;
}
.roi-btn-container {
grid-column: 1 / -1;
text-align: center;
margin-top: 10px;
}
button.calc-btn {
background-color: #27ae60;
color: white;
border: none;
padding: 12px 30px;
font-size: 18px;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s;
}
button.calc-btn:hover {
background-color: #219150;
}
.roi-results {
margin-top: 30px;
background: #fff;
padding: 20px;
border-radius: 6px;
border-left: 5px solid #27ae60;
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
display: none; /* Hidden by default */
}
.result-row {
display: flex;
justify-box: space-between;
justify-content: space-between;
padding: 10px 0;
border-bottom: 1px solid #eee;
}
.result-row:last-child {
border-bottom: none;
}
.result-label {
color: #555;
}
.result-value {
font-weight: bold;
color: #2c3e50;
}
.highlight-result {
font-size: 1.2em;
color: #27ae60;
}
.seo-content {
max-width: 800px;
margin: 40px auto;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
color: #333;
}
.seo-content h2 {
color: #2c3e50;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
margin-top: 30px;
}
.seo-content h3 {
color: #34495e;
margin-top: 25px;
}
.seo-content ul {
margin-bottom: 20px;
}
.seo-content li {
margin-bottom: 8px;
}
@media (max-width: 600px) {
.roi-inputs {
grid-template-columns: 1fr;
}
}
Total Cash Invested:
–
Monthly Mortgage Payment (P&I):
–
Total Monthly Expenses (w/ Mortgage):
–
Monthly Cash Flow:
–
Annual Cash Flow:
–
Cash on Cash Return:
–
function calculateRentalROI() {
// Get Input Values
var price = parseFloat(document.getElementById('purchasePrice').value);
var downPayment = parseFloat(document.getElementById('downPayment').value);
var closingCosts = parseFloat(document.getElementById('closingCosts').value);
var interestRate = parseFloat(document.getElementById('interestRate').value);
var loanTerm = parseFloat(document.getElementById('loanTerm').value);
var rent = parseFloat(document.getElementById('monthlyRent').value);
var expenses = parseFloat(document.getElementById('monthlyExpenses').value);
// Validation: Ensure no inputs are empty or NaN
if (isNaN(price) || isNaN(downPayment) || isNaN(interestRate) || isNaN(loanTerm) || isNaN(rent) || isNaN(expenses)) {
alert("Please fill in all fields with valid numbers.");
return;
}
// Handle optional closing costs defaulting to 0 if empty/NaN
if (isNaN(closingCosts)) {
closingCosts = 0;
}
// 1. Calculate Loan Details
var loanAmount = price – downPayment;
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
// Mortgage Calculation Formula: M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1 ]
var mortgagePayment = 0;
if (loanAmount > 0 && interestRate > 0) {
mortgagePayment = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
} else if (loanAmount > 0 && interestRate === 0) {
mortgagePayment = loanAmount / numberOfPayments;
}
// 2. Calculate Expenses and Cash Flow
var totalMonthlyExpenses = mortgagePayment + expenses;
var monthlyCashFlow = rent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// 3. Calculate Cash on Cash Return
// CoC = Annual Pre-Tax Cash Flow / Total Cash Invested
var totalCashInvested = downPayment + closingCosts;
var cocReturn = 0;
if (totalCashInvested > 0) {
cocReturn = (annualCashFlow / totalCashInvested) * 100;
}
// 4. Display Results
document.getElementById('resultsBox').style.display = 'block';
document.getElementById('res_totalInvested').innerText = '$' + totalCashInvested.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res_mortgage').innerText = '$' + mortgagePayment.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res_totalExpenses').innerText = '$' + totalMonthlyExpenses.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
// Color code cash flow (Red for negative, Green for positive)
var cashFlowEl = document.getElementById('res_monthlyCashflow');
cashFlowEl.innerText = '$' + monthlyCashFlow.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
cashFlowEl.style.color = monthlyCashFlow >= 0 ? '#27ae60' : '#c0392b';
var annualFlowEl = document.getElementById('res_annualCashflow');
annualFlowEl.innerText = '$' + annualCashFlow.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
annualFlowEl.style.color = annualCashFlow >= 0 ? '#27ae60' : '#c0392b';
var cocEl = document.getElementById('res_cocReturn');
cocEl.innerText = cocReturn.toFixed(2) + '%';
cocEl.style.color = cocReturn >= 0 ? '#27ae60' : '#c0392b';
}
Understanding Cash-on-Cash Return in Real Estate
When analyzing a rental property investment, the purchase price isn't the only number that matters. To truly understand the performance of your money, seasoned investors rely on the Cash-on-Cash (CoC) Return metric. Unlike generic ROI, which might look at total potential gains including equity buildup, CoC Return focuses strictly on the cash flow generated relative to the actual cash you put into the deal.
How the Calculation Works
The formula used in our calculator above is the industry standard for evaluating immediate liquidity and yield:
- Annual Cash Flow: This is your gross annual rental income minus all operating expenses (taxes, insurance, HOA, vacancy, repairs) and debt service (mortgage payments).
- Total Cash Invested: This includes your down payment, closing costs, and any immediate renovation or rehab costs required to get the property rentable.
- Formula: (Annual Cash Flow / Total Cash Invested) × 100 = CoC Return %
Why This Metric Matters
Imagine you purchase a property for $200,000. If you pay all cash, your return is simply the rent minus expenses divided by $200,000. However, most investors use leverage (loans). If you only put $40,000 down, your denominator is much smaller.
For example, if a property generates $3,000 in positive cash flow per year:
- All Cash ($200k invested): 1.5% Return (Low)
- Mortgage ($40k invested): 7.5% Return (Moderate)
This calculator helps you determine if your capital is working hard enough for you, or if it would be better invested in the stock market or a different property.
What is a "Good" Cash-on-Cash Return?
While target returns vary by market and investor goals, here are general benchmarks for residential real estate:
- 8-12%: Generally considered a solid return in most stable markets.
- 15%+: Excellent return, often found in higher-risk neighborhoods or value-add deals (fixer-uppers).
- Below 5%: Often considered speculative; investors accepting this low yield usually count on high property appreciation rather than cash flow.
Using This Calculator for Your Next Deal
Input your projected numbers above to see the viability of a potential rental unit. Be sure to be conservative with your expense estimates. A common mistake is underestimating maintenance and vacancy costs. A safe rule of thumb is to allocate at least 5-10% of monthly rent for maintenance and another 5% for vacancy, ensuring your calculated return reflects reality.