body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
color: #333;
max-width: 800px;
margin: 0 auto;
padding: 20px;
background-color: #f9f9f9;
}
.calculator-wrapper {
background: #ffffff;
padding: 30px;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0,0,0,0.08);
margin-bottom: 40px;
border: 1px solid #e1e1e1;
}
.calc-header {
text-align: center;
margin-bottom: 25px;
}
.calc-header h2 {
margin: 0;
color: #2c3e50;
font-size: 24px;
}
.input-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
@media (max-width: 600px) {
.input-grid {
grid-template-columns: 1fr;
}
}
.input-group {
margin-bottom: 15px;
}
.input-group label {
display: block;
font-weight: 600;
margin-bottom: 5px;
font-size: 14px;
color: #555;
}
.input-group input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 6px;
font-size: 16px;
box-sizing: border-box;
transition: border-color 0.2s;
}
.input-group input:focus {
border-color: #007bff;
outline: none;
}
.section-title {
grid-column: 1 / -1;
font-weight: bold;
color: #007bff;
border-bottom: 2px solid #f0f0f0;
padding-bottom: 5px;
margin-top: 10px;
margin-bottom: 15px;
}
.calc-btn {
grid-column: 1 / -1;
background-color: #007bff;
color: white;
border: none;
padding: 15px;
font-size: 18px;
font-weight: bold;
border-radius: 6px;
cursor: pointer;
transition: background-color 0.2s;
margin-top: 10px;
width: 100%;
}
.calc-btn:hover {
background-color: #0056b3;
}
#resultsArea {
grid-column: 1 / -1;
background-color: #f0f8ff;
border: 1px solid #cce5ff;
border-radius: 8px;
padding: 20px;
margin-top: 20px;
display: none;
}
.result-row {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
padding-bottom: 10px;
border-bottom: 1px solid #dae0e5;
}
.result-row:last-child {
border-bottom: none;
margin-bottom: 0;
padding-bottom: 0;
}
.result-label {
font-weight: 600;
color: #444;
}
.result-value {
font-weight: 700;
color: #2c3e50;
}
.highlight-result {
color: #28a745;
font-size: 1.2em;
}
.content-article {
background: #fff;
padding: 30px;
border-radius: 12px;
border: 1px solid #e1e1e1;
}
.content-article h2 {
color: #2c3e50;
margin-top: 0;
}
.content-article h3 {
color: #007bff;
margin-top: 25px;
}
.content-article ul {
padding-left: 20px;
}
.content-article li {
margin-bottom: 10px;
}
.example-box {
background: #fdfdfd;
border-left: 4px solid #28a745;
padding: 15px;
margin: 20px 0;
font-style: italic;
}
Understanding Cash-on-Cash Return in Real Estate
For real estate investors, the Cash-on-Cash (CoC) Return is arguably the most critical metric for evaluating the performance of a rental property. Unlike simple ROI (Return on Investment), which might look at the total value of the asset, CoC specifically measures the annual return on the actual cash you invested in the deal.
This metric is particularly powerful because it accounts for the power of leverage (debt). By using a mortgage, you can acquire a high-value asset with a smaller amount of cash, and CoC tells you how hard that specific cash is working for you.
How to Calculate Cash-on-Cash Return
The formula for Cash-on-Cash return is relatively straightforward, but getting the inputs right is crucial for an accurate prediction.
Cash-on-Cash Return = (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100%
1. Determine Total Cash Invested
This isn't just your down payment. To get an accurate picture, you must include all costs required to get the property operational:
- Down Payment: The equity portion of the purchase price.
- Closing Costs: Title fees, origination fees, recording fees, etc.
- Rehab/Repairs: Any immediate money spent to make the unit rentable.
2. Calculate Annual Pre-Tax Cash Flow
This is your "Net Operating Income" (NOI) minus debt service (mortgage payments). To find this:
- Gross Income: Total annual rent collected.
- Operating Expenses: Property taxes, insurance, HOA fees, maintenance, vacancy reserves, and property management.
- Debt Service: Your annual principal and interest payments.
Realistic Example
Scenario: You buy a duplex for $200,000.
- Down payment (25%): $50,000
- Closing costs & minor repairs: $5,000
- Total Cash Invested: $55,000
The property rents for $2,000/month ($24,000/year). Your expenses (taxes, insurance, maintenance, vacancy) total $8,000/year. Your mortgage payments are $10,000/year.
- Net Cash Flow = $24,000 (Rent) – $8,000 (Exp) – $10,000 (Mortgage) = $6,000/year
- CoC Return = $6,000 / $55,000 = 10.9%
What is a "Good" Cash-on-Cash Return?
While target returns vary by investor and market, generally:
- 8-12%: Considered a solid return in most stable residential markets.
- 15%+: Excellent return, often found in lower-cost markets or properties requiring significant "sweat equity" (rehab).
- Under 5%: Typically considered poor for cash flow investing, though investors might accept this if they are banking on high appreciation.
Why Use This Calculator?
Using a dedicated Rental Property Calculator helps you avoid emotion-based buying. By inputting realistic estimates for vacancy (usually 5-8%) and maintenance (10-15%), you protect yourself from negative cash flow surprises. Always overestimate expenses and underestimate rent to build a margin of safety.
function calculateROI() {
// Helper function to get float value safely
function getVal(id) {
var val = document.getElementById(id).value;
return val ? parseFloat(val) : 0;
}
// Get Inputs
var purchasePrice = getVal("purchasePrice");
var downPayment = getVal("downPayment");
var closingCosts = getVal("closingCosts");
var rehabCosts = getVal("rehabCosts");
var monthlyRent = getVal("monthlyRent");
var monthlyMortgage = getVal("monthlyMortgage");
var propertyTaxAnnual = getVal("propertyTax");
var insuranceAnnual = getVal("insurance");
var vacancyRate = getVal("vacancyRate");
var capexRate = getVal("capexRate");
var managementFeeRate = getVal("managementFee");
// Calculations – Total Investment (Denominator)
var totalInvestment = downPayment + closingCosts + rehabCosts;
// Validation to prevent divide by zero
if (totalInvestment 0 ? (annualNOI / purchasePrice) * 100 : 0;
// Format Money
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
});
// Display Results
document.getElementById("resTotalInvestment").innerText = formatter.format(totalInvestment);
document.getElementById("resMonthlyExpenses").innerText = formatter.format(totalMonthlyExpenses);
document.getElementById("resCashFlow").innerText = formatter.format(monthlyCashFlow);
document.getElementById("resAnnualCashFlow").innerText = formatter.format(annualCashFlow);
document.getElementById("resCoC").innerText = cocReturn.toFixed(2) + "%";
document.getElementById("resCapRate").innerText = capRate.toFixed(2) + "%";
// Styling for positive/negative flow
var cashFlowEl = document.getElementById("resCashFlow");
if(monthlyCashFlow >= 0) {
cashFlowEl.style.color = "#28a745";
} else {
cashFlowEl.style.color = "#dc3545";
}
var cocEl = document.getElementById("resCoC");
if(cocReturn >= 0) {
cocEl.style.color = "#28a745";
} else {
cocEl.style.color = "#dc3545";
}
document.getElementById("resultsArea").style.display = "block";
}