Td Credit Card Interest Rate Calculator

Rental Property Cash on Cash Return Calculator

Rental Property ROI Calculator

Acquisition Costs

Financing Details

Monthly Income & Expenses

(Taxes, Insurance, HOA, Repairs, Vacancy)
Investment Performance
Monthly Cash Flow
$0.00
Cash on Cash Return
0.00%
Mortgage Payment
$0.00

Understanding Rental Property Cash on Cash Return

When investing in real estate, knowing your Cash on Cash Return (CoC) is critical. Unlike a simple "Cap Rate" which looks at the property's yield as if bought with all cash, the CoC Return measures the efficiency of the actual cash you invested, accounting for leverage (your mortgage).

How Is Cash on Cash Return Calculated?

The formula used in this calculator is:

CoC Return = (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100

Where:

  • Annual Pre-Tax Cash Flow: (Monthly Rent – Mortgage Payment – Operating Expenses) × 12.
  • Total Cash Invested: Down Payment + Closing Costs + Any immediate repair costs.

Why This Metric Matters for Investors

Cash on Cash Return tells you how hard your money is working. If you invest $50,000 into a rental property and it generates $5,000 in positive cash flow per year, your CoC return is 10%. This allows you to compare real estate directly against other investment vehicles like stocks (average 7-8%) or bonds.

What is a Good Cash on Cash Return?

While targets vary by market and strategy, many real estate investors aim for a CoC return between 8% and 12%. Returns above 15% are considered excellent but often come with higher risks or require significant "sweat equity" in property rehabilitation.

function calculateRentalROI() { // 1. Get Input Values var price = parseFloat(document.getElementById("rp_price").value); var downPayment = parseFloat(document.getElementById("rp_down").value); var closingCosts = parseFloat(document.getElementById("rp_closing").value); var interestRate = parseFloat(document.getElementById("rp_rate").value); var loanTerm = parseFloat(document.getElementById("rp_term").value); var rent = parseFloat(document.getElementById("rp_rent").value); var expenses = parseFloat(document.getElementById("rp_expenses").value); // 2. Validation if (isNaN(price) || isNaN(downPayment) || isNaN(interestRate) || isNaN(loanTerm) || isNaN(rent) || isNaN(expenses)) { alert("Please enter valid numbers in all fields."); return; } if (downPayment > price) { alert("Down payment cannot exceed purchase price."); return; } // 3. Mortgage Calculation var loanAmount = price – downPayment; var monthlyRate = (interestRate / 100) / 12; var numPayments = loanTerm * 12; // Handle 0% interest edge case, though rare var monthlyMortgage = 0; if (interestRate === 0) { monthlyMortgage = loanAmount / numPayments; } else { monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numPayments)) / (Math.pow(1 + monthlyRate, numPayments) – 1); } // 4. Cash Flow Calculation var totalMonthlyOutflow = monthlyMortgage + expenses; var monthlyCashFlow = rent – totalMonthlyOutflow; var annualCashFlow = monthlyCashFlow * 12; // 5. Cash on Cash Return Calculation var totalCashInvested = downPayment + closingCosts; var cocReturn = 0; if (totalCashInvested > 0) { cocReturn = (annualCashFlow / totalCashInvested) * 100; } // 6. Display Results var resultDiv = document.getElementById("rp_results"); var resCashFlow = document.getElementById("res_cashflow"); var resCoc = document.getElementById("res_coc"); var resMortgage = document.getElementById("res_mortgage"); resultDiv.style.display = "block"; // Currency Formatting resMortgage.innerText = "$" + monthlyMortgage.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2}); // Cash Flow Color Logic (Red if negative) if (monthlyCashFlow < 0) { resCashFlow.style.color = "#c0392b"; resCashFlow.innerText = "-$" + Math.abs(monthlyCashFlow).toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2}); } else { resCashFlow.style.color = "#27ae60"; resCashFlow.innerText = "$" + monthlyCashFlow.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2}); } // CoC Color Logic if (cocReturn < 0) { resCoc.style.color = "#c0392b"; } else { resCoc.style.color = "#2980b9"; } resCoc.innerText = cocReturn.toFixed(2) + "%"; }

Leave a Comment