Analyze your real estate investment deal instantly.
Purchase & Loan Details
Income & Expenses (Monthly)
Variable Expenses
Net Monthly Cash Flow$0.00
Cash on Cash Return (ROI)0.00%
Cap Rate0.00%
Monthly Mortgage (P&I)$0.00
Total Monthly Expenses$0.00
Net Operating Income (NOI) – Annual$0.00
Understanding Rental Property Cash Flow
Investing in real estate is one of the most reliable ways to build wealth, but the success of an investment hinges on one critical metric: Cash Flow. This calculator is designed to help real estate investors, landlords, and agents quickly analyze the profitability of a potential rental property before signing on the dotted line.
What is Cash Flow?
Cash flow represents the net amount of money moving into and out of your rental business. Positive cash flow occurs when your gross rental income exceeds all of your expenses, including the mortgage, taxes, insurance, and maintenance reserves. Negative cash flow means the property costs you money to hold every month.
Key Metrics Calculated
Net Monthly Cash Flow: The actual profit in your pocket every month after all bills are paid. Aim for at least $100-$200 per door for single-family homes.
Cash on Cash Return (CoC ROI): This measures the return on the actual cash you invested (down payment + closing costs). It is calculated as (Annual Cash Flow / Total Cash Invested) * 100. A CoC return of 8-12% is generally considered good in many markets.
Cap Rate (Capitalization Rate): This metric evaluates the profitability of a property regardless of financing. It is calculated as (Net Operating Income / Purchase Price) * 100. It helps compare properties as if they were bought with all cash.
Net Operating Income (NOI): This is your annual income minus operating expenses, excluding the mortgage payments.
Why Variable Expenses Matter
Many novice investors make the mistake of only calculating the mortgage, taxes, and insurance (PITI). However, successful investors always account for Vacancy (the time the property sits empty between tenants) and Repairs/CapEx (saving for a new roof, water heater, or painting). This calculator defaults to 5% for each, which is a prudent baseline for modern properties.
How to Use This Calculator
Enter the purchase price and your financing details first. Then, input your projected rental income and fixed monthly costs like HOA and taxes. Finally, adjust your vacancy and repair reserves based on the property's age and condition. The tool will instantly provide a breakdown of your financial performance.
function calculateRental() {
// 1. Get Input Values
var price = parseFloat(document.getElementById('purchasePrice').value);
var downPercent = parseFloat(document.getElementById('downPayment').value);
var rate = parseFloat(document.getElementById('interestRate').value);
var years = parseFloat(document.getElementById('loanTerm').value);
var rent = parseFloat(document.getElementById('monthlyRent').value);
var taxes = parseFloat(document.getElementById('propertyTax').value);
var insurance = parseFloat(document.getElementById('insurance').value);
var hoa = parseFloat(document.getElementById('hoa').value);
var vacancyPercent = parseFloat(document.getElementById('vacancyRate').value);
var repairsPercent = parseFloat(document.getElementById('repairsRate').value);
// Validation
if (isNaN(price) || isNaN(downPercent) || isNaN(rate) || isNaN(years) || isNaN(rent)) {
alert("Please enter valid numbers in all fields.");
return;
}
// 2. Calculate Mortgage (P&I)
var downPaymentAmount = price * (downPercent / 100);
var loanAmount = price – downPaymentAmount;
var monthlyRate = (rate / 100) / 12;
var numberOfPayments = years * 12;
var mortgagePayment = 0;
if (rate === 0) {
mortgagePayment = loanAmount / numberOfPayments;
} else {
mortgagePayment = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
}
// 3. Calculate Variable Expenses
var vacancyCost = rent * (vacancyPercent / 100);
var repairsCost = rent * (repairsPercent / 100);
// 4. Calculate Totals
var totalFixedExpenses = taxes + insurance + hoa;
var totalVariableExpenses = vacancyCost + repairsCost;
var totalOperatingExpenses = totalFixedExpenses + totalVariableExpenses; // Excludes mortgage for NOI
var totalMonthlyExpenses = totalOperatingExpenses + mortgagePayment;
// 5. Calculate Metrics
var monthlyCashFlow = rent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
var annualNOI = (rent * 12) – (totalOperatingExpenses * 12);
// Cash on Cash ROI
// Assuming 3% closing costs estimated for calculation if not provided,
// but to keep it simple we usually just use down payment or ask for closing costs.
// We will stick to Down Payment as the denominator for simplicity in this specific scope
var totalCashInvested = downPaymentAmount;
var cocRoi = 0;
if (totalCashInvested > 0) {
cocRoi = (annualCashFlow / totalCashInvested) * 100;
}
// Cap Rate
var capRate = 0;
if (price > 0) {
capRate = (annualNOI / price) * 100;
}
// 6. Display Results
document.getElementById('results').style.display = 'block';
// Helper function for formatting currency
var fmtMoney = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });
document.getElementById('resCashFlow').innerHTML = fmtMoney.format(monthlyCashFlow);
document.getElementById('resCashFlow').style.color = monthlyCashFlow >= 0 ? '#27ae60' : '#c0392b';
document.getElementById('resCoc').innerHTML = cocRoi.toFixed(2) + "%";
document.getElementById('resCoc').style.color = cocRoi >= 0 ? '#333' : '#c0392b';
document.getElementById('resCapRate').innerHTML = capRate.toFixed(2) + "%";
document.getElementById('resMortgage').innerHTML = fmtMoney.format(mortgagePayment);
document.getElementById('resTotalExpenses').innerHTML = fmtMoney.format(totalMonthlyExpenses);
document.getElementById('resNOI').innerHTML = fmtMoney.format(annualNOI);
}