function calculateCoC() {
// 1. Get Inputs
var purchasePrice = parseFloat(document.getElementById("purchasePrice").value) || 0;
var downPaymentPercent = parseFloat(document.getElementById("downPayment").value) || 0;
var closingCosts = parseFloat(document.getElementById("closingCosts").value) || 0;
var rehabCosts = parseFloat(document.getElementById("rehabCosts").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 annualTaxes = parseFloat(document.getElementById("annualTaxes").value) || 0;
var annualInsurance = parseFloat(document.getElementById("annualInsurance").value) || 0;
var monthlyMaint = parseFloat(document.getElementById("monthlyMaint").value) || 0;
// 2. Calculate Initial Investment
var downPaymentAmount = purchasePrice * (downPaymentPercent / 100);
var totalInvested = downPaymentAmount + closingCosts + rehabCosts;
// 3. Calculate Mortgage
var loanAmount = purchasePrice – downPaymentAmount;
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
var mortgagePayment = 0;
if (loanAmount > 0 && interestRate > 0 && loanTerm > 0) {
mortgagePayment = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
} else if (loanAmount > 0 && interestRate === 0) {
mortgagePayment = loanAmount / numberOfPayments;
}
// 4. Calculate Expenses
var monthlyTax = annualTaxes / 12;
var monthlyIns = annualInsurance / 12;
var totalMonthlyExpenses = mortgagePayment + monthlyTax + monthlyIns + monthlyMaint;
// 5. Calculate Cash Flow
var monthlyCashFlow = monthlyRent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// 6. Calculate CoC Return
var cocReturn = 0;
if (totalInvested > 0) {
cocReturn = (annualCashFlow / totalInvested) * 100;
}
// 7. Update UI
document.getElementById("resTotalInvested").textContent = formatCurrency(totalInvested);
document.getElementById("resMortgage").textContent = formatCurrency(mortgagePayment);
document.getElementById("resTotalExpenses").textContent = formatCurrency(totalMonthlyExpenses);
var monthlyCFElement = document.getElementById("resMonthlyCF");
monthlyCFElement.textContent = formatCurrency(monthlyCashFlow);
monthlyCFElement.style.color = monthlyCashFlow >= 0 ? "#27ae60" : "#c0392b";
var annualCFElement = document.getElementById("resAnnualCF");
annualCFElement.textContent = formatCurrency(annualCashFlow);
annualCFElement.style.color = annualCashFlow >= 0 ? "#27ae60" : "#c0392b";
var cocElement = document.getElementById("resCoC");
cocElement.textContent = cocReturn.toFixed(2) + "%";
cocElement.style.color = cocReturn >= 0 ? "#27ae60" : "#c0392b";
document.getElementById("resultsArea").style.display = "block";
}
function formatCurrency(num) {
return "$" + num.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
}
Understanding Cash on Cash Return in Real Estate
For real estate investors, the Cash on Cash (CoC) Return is one of the most critical metrics for evaluating the performance of a rental property. Unlike standard Return on Investment (ROI) which might account for loan paydown or appreciation, Cash on Cash Return focuses strictly on the liquid cash you earn relative to the cash you initially invested.
How is Cash on Cash Return Calculated?
The formula is relatively straightforward but requires accurate data regarding your income and expenses:
Annual Cash Flow: This is your Gross Rental Income minus all operating expenses and debt service (mortgage payments).
Total Cash Invested: This is the total amount of liquid capital you used to acquire the property. It includes your down payment, closing costs, and any immediate renovation or repair costs.
The calculation is: (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100 = CoC Return %.
Why Use This Calculator?
Whether you are analyzing a turnkey property or a "fixer-upper" (BRRRR strategy), knowing your CoC return helps you compare different investment opportunities apples-to-apples. A property might have a high cap rate, but if the financing terms are poor, your actual cash return could be low. This calculator breaks down monthly expenses, mortgage obligations, and upfront costs to give you a clear picture of your first-year profitability.
What is a "Good" Cash on Cash Return?
Investors have varying benchmarks, but generally:
8-12%: Often considered a solid return in stable markets.
15%+: Considered excellent, though often associated with higher-risk properties or those requiring significant management.
Below 5%: Might be acceptable in high-appreciation markets (like coastal cities) where investors bank on long-term equity growth rather than immediate cash flow.
Tips to Improve Your Return
If your calculation shows a lower return than desired, consider these levers:
Reduce Initial Cash: Lower your down payment (if cash flow permits) or negotiate for the seller to pay closing costs.
Increase Income: Look for opportunities to raise rent, add amenities (like laundry or storage), or reduce vacancy.
Lower Expenses: Shop for cheaper insurance, appeal property taxes, or manage the property yourself to save on management fees.