Calculate Cash Flow, Cap Rate, and Cash on Cash ROI
Analysis Result
Monthly Mortgage Payment (P&I):$0.00
Total Monthly Expenses:$0.00
Net Operating Income (NOI) / Month:$0.00
Monthly Cash Flow:$0.00
Cash on Cash ROI:0.00%
Cap Rate:0.00%
Understanding Rental Property ROI
Investing in real estate is a powerful way to build wealth, but simply buying a property and renting it out doesn't guarantee a profit. To be a successful investor, you must analyze the numbers accurately. This Rental Property Cash Flow & ROI Calculator helps you determine if a potential investment property will generate positive income or become a financial burden.
Key Metrics Explained
Our calculator breaks down the financial performance of a property using three standard real estate metrics:
Cash Flow: This is the net amount of money moving in or out of the investment each month. It is calculated by subtracting all expenses (mortgage, taxes, insurance, vacancy, repairs) from the rental income. Positive cash flow means the property pays for itself and generates profit.
Cash on Cash ROI (Return on Investment): This percentage measures the annual return on the actual cash you invested (down payment + closing costs). It is a critical metric for comparing the performance of your real estate money against other investments like stocks or bonds.
Cap Rate (Capitalization Rate): This measures the property's natural rate of return assuming you paid all cash (no mortgage). It helps compare the profitability of different properties regardless of financing terms.
How to Use This Calculator
To get an accurate analysis, input realistic numbers for all fields. Don't forget to account for "hidden" costs like vacancy rates (typically 5-10%) and maintenance reserves. The "Monthly Expenses" calculated by this tool include the mortgage principal and interest, property taxes, insurance, HOA fees, and maintenance estimates.
Why Cash Flow Matters
While property appreciation is a nice bonus, experienced investors focus on Cash Flow. A property with positive cash flow provides passive income and financial safety during market downturns. If a property has negative cash flow, you will have to pay out of pocket every month to keep it, which increases your risk.
function calculateROI() {
// 1. Get Input Values
var price = parseFloat(document.getElementById('purchasePrice').value);
var downPercent = parseFloat(document.getElementById('downPaymentPercent').value);
var interestRate = parseFloat(document.getElementById('interestRate').value);
var years = parseFloat(document.getElementById('loanTerm').value);
var rent = parseFloat(document.getElementById('monthlyRent').value);
var vacancyPercent = parseFloat(document.getElementById('vacancyRate').value);
var annualTax = parseFloat(document.getElementById('propertyTax').value);
var annualInsurance = parseFloat(document.getElementById('insurance').value);
var monthlyMaint = parseFloat(document.getElementById('maintenance').value);
var monthlyOther = parseFloat(document.getElementById('otherCosts').value);
// Validation
if (isNaN(price) || isNaN(rent) || isNaN(years) || price 0) {
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
} else {
monthlyMortgage = loanAmount / numberOfPayments;
}
// 3. Calculate Expenses
var monthlyTax = annualTax / 12;
var monthlyInsurance = annualInsurance / 12;
var vacancyCost = rent * (vacancyPercent / 100);
// Total Operating Expenses (Used for NOI – excludes mortgage)
var operatingExpenses = monthlyTax + monthlyInsurance + monthlyMaint + monthlyOther + vacancyCost;
// Total Cash Expenses (Includes mortgage)
var totalMonthlyExpenses = operatingExpenses + monthlyMortgage;
// 4. Calculate Key Metrics
var monthlyCashFlow = rent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// Cash Invested (Assuming Closing costs are approx 2% of price for rough estimate, or just use Downpayment.
// For this specific calculator we will stick to Down Payment to keep it simple but accurate to inputs provided)
var totalCashInvested = downPaymentAmount;
if(totalCashInvested === 0) totalCashInvested = price; // Fallback if 100% financing (unlikely but prevents div/0)
var cashOnCashROI = (annualCashFlow / totalCashInvested) * 100;
// Cap Rate = (Net Operating Income / Current Market Value)
// NOI = Annual Rent – Annual Operating Expenses
var annualNOI = (rent * 12) – (operatingExpenses * 12);
var capRate = (annualNOI / price) * 100;
// 5. Display Results
document.getElementById('resMortgage').innerText = "$" + monthlyMortgage.toFixed(2);
document.getElementById('resExpenses').innerText = "$" + totalMonthlyExpenses.toFixed(2);
document.getElementById('resNOI').innerText = "$" + (annualNOI / 12).toFixed(2); // Monthly NOI
var cashFlowEl = document.getElementById('resCashFlow');
cashFlowEl.innerText = "$" + monthlyCashFlow.toFixed(2);
if(monthlyCashFlow >= 0) {
cashFlowEl.className = "result-value positive-flow";
} else {
cashFlowEl.className = "result-value negative-flow";
}
document.getElementById('resCoC').innerText = cashOnCashROI.toFixed(2) + "%";
document.getElementById('resCapRate').innerText = capRate.toFixed(2) + "%";
// Show result section
document.getElementById('results').style.display = 'block';
}