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-wrapper {
background: #ffffff;
border-radius: 8px;
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
padding: 30px;
margin-bottom: 40px;
display: flex;
flex-wrap: wrap;
gap: 30px;
}
.calc-column {
flex: 1;
min-width: 300px;
}
.input-group {
margin-bottom: 15px;
}
.input-group label {
display: block;
margin-bottom: 5px;
font-weight: 600;
font-size: 0.9em;
color: #2c3e50;
}
.input-group input {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
.input-group input:focus {
border-color: #3498db;
outline: none;
}
.section-title {
font-size: 1.1em;
color: #3498db;
border-bottom: 2px solid #eee;
padding-bottom: 5px;
margin-bottom: 15px;
margin-top: 0;
font-weight: 700;
}
.btn-calc {
width: 100%;
padding: 15px;
background-color: #2ecc71;
color: white;
border: none;
border-radius: 4px;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: background 0.3s;
margin-top: 20px;
}
.btn-calc:hover {
background-color: #27ae60;
}
.results-box {
background-color: #f8f9fa;
border: 1px solid #e9ecef;
border-radius: 6px;
padding: 20px;
height: 100%;
}
.result-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 0;
border-bottom: 1px solid #eee;
}
.result-item:last-child {
border-bottom: none;
}
.result-label {
color: #666;
font-size: 0.95em;
}
.result-value {
font-weight: 800;
font-size: 1.1em;
color: #2c3e50;
}
.highlight-result {
background-color: #e8f6f3;
padding: 15px;
border-radius: 5px;
margin-top: 10px;
margin-bottom: 10px;
border: 1px solid #d4efdf;
}
.highlight-result .result-label {
color: #16a085;
font-size: 1.1em;
font-weight: bold;
}
.highlight-result .result-value {
color: #16a085;
font-size: 1.8em;
display: block;
margin-top: 5px;
}
.article-content {
background: #fff;
padding: 40px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.article-content h2 {
color: #2c3e50;
margin-top: 30px;
}
.article-content p {
color: #555;
margin-bottom: 15px;
}
.article-content ul {
margin-bottom: 20px;
padding-left: 20px;
color: #555;
}
.article-content li {
margin-bottom: 8px;
}
@media (max-width: 768px) {
.calculator-wrapper {
flex-direction: column;
}
}
function calculateReturns() {
// Get Input Values
var price = parseFloat(document.getElementById('purchasePrice').value) || 0;
var downPct = parseFloat(document.getElementById('downPaymentPct').value) || 0;
var closing = parseFloat(document.getElementById('closingCosts').value) || 0;
var rehab = parseFloat(document.getElementById('rehabCosts').value) || 0;
var rate = parseFloat(document.getElementById('interestRate').value) || 0;
var years = parseFloat(document.getElementById('loanTerm').value) || 30;
var rent = parseFloat(document.getElementById('monthlyRent').value) || 0;
var otherInc = parseFloat(document.getElementById('otherIncome').value) || 0;
var taxAnnual = parseFloat(document.getElementById('propertyTax').value) || 0;
var insAnnual = parseFloat(document.getElementById('insurance').value) || 0;
var hoa = parseFloat(document.getElementById('hoa').value) || 0;
var maintPct = parseFloat(document.getElementById('maintenance').value) || 0;
var vacancyPct = parseFloat(document.getElementById('vacancy').value) || 0;
var mgmtPct = parseFloat(document.getElementById('management').value) || 0;
// Calculations
// 1. Initial Investment
var downPaymentAmount = price * (downPct / 100);
var loanAmount = price – downPaymentAmount;
var totalCashInvested = downPaymentAmount + closing + rehab;
// 2. Mortgage Payment (Principal + Interest)
// M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1 ]
var monthlyRate = rate / 100 / 12;
var numberOfPayments = years * 12;
var mortgagePayment = 0;
if (rate > 0) {
mortgagePayment = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
} else {
mortgagePayment = loanAmount / numberOfPayments;
}
// 3. Operating Income
var grossMonthlyIncome = rent + otherInc;
var grossAnnualIncome = grossMonthlyIncome * 12;
// 4. Operating Expenses
var vacancyCost = rent * (vacancyPct / 100);
var maintCost = rent * (maintPct / 100);
var mgmtCost = rent * (mgmtPct / 100);
var taxMonthly = taxAnnual / 12;
var insMonthly = insAnnual / 12;
var totalMonthlyExpensesOp = taxMonthly + insMonthly + hoa + vacancyCost + maintCost + mgmtCost;
var totalMonthlyExpensesAll = totalMonthlyExpensesOp + mortgagePayment;
// 5. Net Operating Income (NOI)
var monthlyNOI = grossMonthlyIncome – totalMonthlyExpensesOp;
var annualNOI = monthlyNOI * 12;
// 6. Cash Flow
var monthlyCashFlow = monthlyNOI – mortgagePayment;
var annualCashFlow = monthlyCashFlow * 12;
// 7. Returns
var cocReturn = 0;
if (totalCashInvested > 0) {
cocReturn = (annualCashFlow / totalCashInvested) * 100;
}
var capRate = 0;
if (price > 0) {
capRate = (annualNOI / price) * 100;
}
// Formatting Helper
function formatMoney(num) {
return '$' + num.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
}
// Update DOM
document.getElementById('res_coc').innerText = cocReturn.toFixed(2) + '%';
// Color coding for CoC
var cocEl = document.getElementById('res_coc');
if(cocReturn < 0) cocEl.style.color = '#e74c3c';
else cocEl.style.color = '#16a085';
document.getElementById('res_monthly_cf').innerText = formatMoney(monthlyCashFlow);
document.getElementById('res_annual_cf').innerText = formatMoney(annualCashFlow);
document.getElementById('res_total_invested').innerText = formatMoney(totalCashInvested);
document.getElementById('res_monthly_noi').innerText = formatMoney(monthlyNOI);
document.getElementById('res_expenses').innerText = formatMoney(totalMonthlyExpensesAll);
document.getElementById('res_cap_rate').innerText = capRate.toFixed(2) + '%';
}
// Initialize on load
window.onload = function() {
calculateReturns();
};
What is Cash on Cash Return?
Cash on Cash Return (CoC) is a metric widely used in real estate transactions to calculate the cash income earned on the cash invested in a property. Unlike ROI (Return on Investment), which might look at the total value of the asset including loans, Cash on Cash Return measures only the return on the actual cash you put out of pocket (down payment, closing costs, and rehab costs).
This metric is critical for rental property investors because it provides a realistic picture of how their capital is performing relative to other investment opportunities like the stock market or bonds.
How is Cash on Cash Return Calculated?
The formula for Cash on Cash Return is relatively straightforward:
Cash on Cash Return = (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100
Here is a breakdown of the components:
- Annual Pre-Tax Cash Flow: This is your Gross Rental Income minus all operating expenses (taxes, insurance, HOA, maintenance, vacancy, property management) and minus your annual mortgage debt service.
- Total Cash Invested: This is the total liquid capital used to acquire the property. It includes your Down Payment, Closing Costs, and any immediate Repair/Rehab costs required to get the property rented.
Why Use This Calculator?
Real estate investing involves many variables. A property might look profitable based on the rental price, but once you factor in vacancy rates (typically 5-10%), maintenance reserves (5-10%), and property management fees (8-10%), the cash flow can diminish significantly.
This calculator helps you stress-test your deal. By adjusting the "Vacancy Rate" or "Maintenance" fields, you can see how sensitive your return is to unexpected costs. It separates the Cap Rate (unleveraged return) from the Cash on Cash Return (leveraged return), allowing you to see the power of leverage in your investment.
What is a Good Cash on Cash Return?
While "good" is subjective and depends on the risk profile of the asset, many real estate investors aim for a Cash on Cash return of 8% to 12%. In highly appreciative markets (like coastal cities), investors might accept lower cash flow (4-6%) banking on long-term appreciation. In cash-flow markets (like the Midwest), investors often seek 10% or higher.
Example Calculation
Imagine you buy a property for $200,000.
- You put 20% down ($40,000).
- Closing costs and repairs total $7,000.
- Total Cash Invested: $47,000.
After paying the mortgage and all expenses, the property generates $300 per month in positive cash flow.
- Annual Cash Flow: $300 × 12 = $3,600.
- CoC Return: ($3,600 / $47,000) × 100 = 7.66%.
Use the inputs above to run your own scenarios and determine if a property fits your investment criteria.