Analyze your rental property investment potential instantly.
Net Operating Income (Annual)–
Total Cash Invested–
Monthly Cash Flow–
Cap Rate–
Cash on Cash Return–
Understanding Your Rental Property Returns
Investing in real estate requires more than just guessing; it requires analyzing the numbers to ensure positive cash flow. This Cash on Cash Return Calculator helps real estate investors evaluate the profitability of a potential rental property.
What is Cash on Cash Return?
Cash on Cash Return (CoC) is a metric used to calculate the cash income earned on the cash invested in a property. Unlike ROI, which might account for debt paydown or appreciation, CoC strictly looks at the liquid cash flow relative to your initial cash outlay (Down payment + Closing costs + Rehab costs).
Formula:(Annual Pre-Tax Cash Flow / Total Cash Invested) × 100%
Cap Rate vs. Cash on Cash
While Cash on Cash return calculates your specific return based on financing, the Capitalization Rate (Cap Rate) measures the property's natural rate of return assuming it was bought with all cash. Cap Rate is calculated by dividing the Net Operating Income (NOI) by the Purchase Price. It is excellent for comparing similar properties regardless of financing.
How to Interpret the Results
Positive Cash Flow: Essential for long-term sustainability. This is money left over after all expenses and mortgage payments.
8-12% Cash on Cash: Generally considered a good return for passive real estate investing, though this varies by market.
Net Operating Income (NOI): This is your profitability before the mortgage is paid. Lenders look at this number closely.
Use this calculator to stress-test your deals. Try increasing the vacancy rate or interest rate to see if the property remains profitable under less ideal conditions.
Disclaimer: This calculator is for educational purposes only and does not constitute financial advice. Actual rates and costs may vary.
function calculateROI() {
// 1. Get Input Values
var price = parseFloat(document.getElementById('purchasePrice').value) || 0;
var downPayment = parseFloat(document.getElementById('downPayment').value) || 0;
var closingCosts = parseFloat(document.getElementById('closingCosts').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 vacancyRate = parseFloat(document.getElementById('vacancyRate').value) || 0;
var annualTaxes = parseFloat(document.getElementById('annualTaxes').value) || 0;
var annualInsurance = parseFloat(document.getElementById('annualInsurance').value) || 0;
var monthlyMaintenance = parseFloat(document.getElementById('monthlyMaintenance').value) || 0;
// 2. Perform Calculations
// Loan Calculation
var loanAmount = price – downPayment;
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
var monthlyMortgage = 0;
if (loanAmount > 0 && interestRate > 0) {
// M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1 ]
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
} else if (loanAmount > 0 && interestRate === 0) {
monthlyMortgage = loanAmount / numberOfPayments;
}
var annualDebtService = monthlyMortgage * 12;
// Income Calculation
var grossAnnualIncome = monthlyRent * 12;
var vacancyLoss = grossAnnualIncome * (vacancyRate / 100);
var effectiveGrossIncome = grossAnnualIncome – vacancyLoss;
// Expense Calculation (Operating Expenses)
var annualMaintenance = monthlyMaintenance * 12;
var totalOperatingExpenses = annualTaxes + annualInsurance + annualMaintenance;
// Net Operating Income (NOI)
var noi = effectiveGrossIncome – totalOperatingExpenses;
// Cash Flow
var annualCashFlow = noi – annualDebtService;
var monthlyCashFlow = annualCashFlow / 12;
// Investment Returns
var totalInvested = downPayment + closingCosts;
var capRate = 0;
if (price > 0) {
capRate = (noi / price) * 100;
}
var cashOnCash = 0;
if (totalInvested > 0) {
cashOnCash = (annualCashFlow / totalInvested) * 100;
}
// 3. Display Results
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2
});
var percentFormatter = new Intl.NumberFormat('en-US', {
style: 'percent',
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
document.getElementById('noiDisplay').innerHTML = formatter.format(noi);
document.getElementById('totalInvestedDisplay').innerHTML = formatter.format(totalInvested);
document.getElementById('monthlyCashFlowDisplay').innerHTML = formatter.format(monthlyCashFlow);
document.getElementById('capRateDisplay').innerHTML = percentFormatter.format(capRate / 100);
document.getElementById('cocDisplay').innerHTML = percentFormatter.format(cashOnCash / 100);
// Show results container
document.getElementById('results').style.display = 'block';
// Smooth scroll to results
document.getElementById('results').scrollIntoView({behavior: 'smooth'});
}