When investing in rental properties, determining the profitability of a potential deal is crucial. While metrics like "Cap Rate" and "ROI" are often thrown around, the Cash on Cash (CoC) Return is arguably the most practical metric for investors using leverage (mortgages).
This calculator helps you determine exactly how hard your actual invested dollars are working for you, separating the property's performance from the financing structure.
What is Cash on Cash Return?
Cash on Cash Return measures the annual pre-tax cash flow generated by the property divided by the total cash invested. Unlike ROI, which might include principal paydown or appreciation, CoC looks strictly at the liquid cash entering your pocket relative to the cash that left your pocket to acquire the asset.
The Formula: Cash on Cash Return = (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100%
How to Use This Calculator
To get an accurate result, ensure you input realistic numbers for your specific market:
Purchase Price: The contract price of the property.
Closing & Repair Costs: Don't forget to include inspection fees, title insurance, loan origination fees, and any immediate repairs needed to make the unit rentable.
Down Payment: The percentage of the purchase price you are paying upfront in cash.
Monthly Expenses: This should include property taxes, landlord insurance, HOA fees, property management (even if you self-manage, it's wise to budget for it), vacancy reserves, and maintenance/CapEx budgets.
What is a "Good" Cash on Cash Return?
There is no one-size-fits-all answer, as acceptable returns vary by market and risk tolerance. However, general benchmarks include:
8-12%: Often considered a solid return in stable, appreciation-heavy markets.
15%+: Considered an excellent return, often found in cash-flow-heavy markets with lower appreciation potential.
Below 5%: Generally considered poor for a leveraged investment, as you might find better risk-adjusted returns in index funds or bonds.
Why Cash Flow Matters
While appreciation creates long-term wealth, cash flow keeps you in the game. A property with positive cash flow covers its own expenses and debt service, reducing your risk of default during market downturns. Use this calculator to ensure your next investment puts money in your pocket every month.
function calculateCoC() {
// 1. Get Inputs
var price = parseFloat(document.getElementById('coc-price').value);
var closingCosts = parseFloat(document.getElementById('coc-closing').value);
var downPercent = parseFloat(document.getElementById('coc-down').value);
var interestRate = parseFloat(document.getElementById('coc-rate').value);
var termYears = parseFloat(document.getElementById('coc-term').value);
var monthlyRent = parseFloat(document.getElementById('coc-rent').value);
var otherExpenses = parseFloat(document.getElementById('coc-expenses').value);
// Validation
if (isNaN(price) || isNaN(monthlyRent) || isNaN(downPercent)) {
alert("Please enter valid numbers for Price, Down Payment, and Rent.");
return;
}
// 2. Calculate Loan Details
var downPaymentAmount = price * (downPercent / 100);
var loanAmount = price – downPaymentAmount;
var totalCashInvested = downPaymentAmount + closingCosts;
// 3. Calculate Mortgage Payment (PI)
// Formula: M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1 ]
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = termYears * 12;
var mortgagePayment = 0;
if (interestRate === 0) {
mortgagePayment = loanAmount / numberOfPayments;
} else {
mortgagePayment = loanAmount * (
(monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) /
(Math.pow(1 + monthlyRate, numberOfPayments) – 1)
);
}
// 4. Calculate Cash Flow
var totalMonthlyExpenses = mortgagePayment + otherExpenses;
var monthlyCashFlow = monthlyRent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// 5. Calculate CoC Return
var cocReturn = 0;
if (totalCashInvested > 0) {
cocReturn = (annualCashFlow / totalCashInvested) * 100;
}
// 6. Display Results
document.getElementById('coc-results-area').style.display = 'block';
// Helper to format currency
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 0,
maximumFractionDigits: 0,
});
document.getElementById('res-invested').innerHTML = formatter.format(totalCashInvested);
document.getElementById('res-mortgage').innerHTML = formatter.format(mortgagePayment) + "/mo";
document.getElementById('res-total-exp').innerHTML = formatter.format(totalMonthlyExpenses) + "/mo";
var mCashFlowEl = document.getElementById('res-m-cashflow');
mCashFlowEl.innerHTML = formatter.format(monthlyCashFlow);
if(monthlyCashFlow >= 0) {
mCashFlowEl.style.color = "#27ae60";
} else {
mCashFlowEl.style.color = "#c0392b";
}
document.getElementById('res-a-cashflow').innerHTML = formatter.format(annualCashFlow);
var cocEl = document.getElementById('res-coc');
cocEl.innerHTML = cocReturn.toFixed(2) + "%";
if(cocReturn >= 0) {
cocEl.style.color = "#27ae60";
} else {
cocEl.style.color = "#c0392b";
}
}