function calculateCoC() {
// Get inputs
var price = parseFloat(document.getElementById("propPrice").value);
var down = parseFloat(document.getElementById("downPayment").value);
var closing = parseFloat(document.getElementById("closingCosts").value);
var rate = parseFloat(document.getElementById("interestRate").value);
var term = parseFloat(document.getElementById("loanTerm").value);
var rent = parseFloat(document.getElementById("monthlyRent").value);
var expenses = parseFloat(document.getElementById("monthlyExp").value);
// Validation
if (isNaN(price) || isNaN(down) || isNaN(closing) || isNaN(rate) || isNaN(term) || isNaN(rent) || isNaN(expenses)) {
alert("Please enter valid numbers in all fields.");
return;
}
// Calculations
var loanAmount = price – down;
var monthlyRate = (rate / 100) / 12;
var numPayments = term * 12;
// Mortgage Calculation
var mortgagePayment = 0;
if (loanAmount > 0) {
if (rate === 0) {
mortgagePayment = loanAmount / numPayments;
} else {
mortgagePayment = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numPayments)) / (Math.pow(1 + monthlyRate, numPayments) – 1);
}
}
// Cash Flow Calculations
var totalMonthlyExpenses = expenses + mortgagePayment;
var monthlyCashFlow = rent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// NOI Calculation (Income – Expenses excluding mortgage)
var annualNOI = (rent – expenses) * 12;
// Total Cash Invested
var totalInvested = down + closing;
// CoC Return Formula: (Annual Cash Flow / Total Cash Invested) * 100
var cocReturn = 0;
if (totalInvested > 0) {
cocReturn = (annualCashFlow / totalInvested) * 100;
}
// Display Results
document.getElementById("resTotalInvested").innerText = "$" + totalInvested.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resMortgage").innerText = "$" + mortgagePayment.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resMonthlyCashFlow").innerText = "$" + monthlyCashFlow.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resNOI").innerText = "$" + annualNOI.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resAnnualCashFlow").innerText = "$" + annualCashFlow.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resCoC").innerText = cocReturn.toFixed(2) + "%";
// Show results div
document.getElementById("resultsArea").style.display = "block";
}
Understanding Cash on Cash Return
When investing in rental real estate, one of the most critical metrics for success is the Cash on Cash (CoC) Return. Unlike simple ROI, which might account for future appreciation or loan paydown, CoC Return focuses strictly on the cash income generated by the property relative to the actual cash you initially invested.
This calculator helps investors determine the efficiency of their capital. A high CoC return means your money is working hard for you, generating significant cash flow relative to your upfront costs.
Annual Cash Flow: This is your total rental income minus all expenses (taxes, insurance, maintenance, HOA) and minus your mortgage debt service.
Total Cash Invested: This includes your down payment, closing costs, and any immediate repair or renovation costs required to get the property rentable.
Example Calculation
Let's say you purchase a property for $250,000.
Down Payment: $50,000 (20%)
Closing/Rehab Costs: $8,000
Total Cash Invested: $58,000
If the property generates $2,200 in monthly rent, and your total monthly expenses (including the mortgage) are $1,800, your monthly cash flow is $400.