Analyze your real estate investment deal instantly
Purchase Information
30 Years
15 Years
10 Years
5 Years
Income & Expenses
Variable Expenses (%)
Please enter valid numeric values for all fields.
Monthly Cash Flow Analysis
Gross Monthly Income:
Mortgage Payment (P&I):
Fixed Expenses (Tax, Ins, HOA):
Variable Expenses (Vacancy, Maint, CapEx, Mgmt):
Net Monthly Cash Flow:
Cash on Cash ROI
Cap Rate
Annual NOI
Understanding Rental Property Cash Flow
Investing in rental 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 helps you analyze a potential deal by breaking down income, expenses, and returns to ensure you make a data-driven purchasing decision.
What is Cash Flow? Cash flow is the net income from a real estate investment after mortgage payments and operating expenses have been made. Positive cash flow means the property puts money in your pocket every month.
How to Use This Calculator
To get an accurate result, you need to input specific data points regarding the purchase and operation of the property. Here is a breakdown of the key inputs:
Purchase Price & Loan Details: The total cost of the property and the financing terms. Higher interest rates or lower down payments will increase your mortgage payment, reducing cash flow.
Operating Expenses: These are often underestimated. While taxes and insurance are usually known, investors must account for "hidden" costs like vacancy (periods without a tenant), repairs, capital expenditures (big ticket items like roofs or HVAC), and property management fees.
Vacancy Rate: No property is occupied 100% of the time. A standard conservative estimate is 5-8% (about 2-4 weeks of vacancy per year).
CapEx vs. Repairs: Repairs are small, ongoing fixes (leaky faucets). CapEx refers to saving for major replacements (roof, water heater) that happen every 10-20 years.
Key Metrics Explained
1. Cash on Cash ROI (Return on Investment)
This is arguably the most important metric for rental investors. It measures the annual cash return relative to the actual cash invested (down payment + closing costs + rehab costs).
Formula: Annual Cash Flow / Total Cash Invested
Example: If you invest $50,000 cash to buy a property and it generates $5,000 in positive cash flow per year, your Cash on Cash ROI is 10%. A good target is typically 8-12% or higher.
2. Cap Rate (Capitalization Rate)
Cap Rate measures the natural rate of return of the property assuming you paid all cash (no mortgage). It helps compare the profitability of properties regardless of how they are financed.
Formula: Net Operating Income (NOI) / Purchase Price
Example: A property costs $200,000 and generates $14,000 in NOI. The Cap Rate is 7%. In many markets, a higher Cap Rate (6-10%) implies higher risk or better returns, while lower Cap Rates (3-5%) are found in expensive, stable markets.
3. Net Operating Income (NOI)
NOI is the total income generated by the property minus all operating expenses, excluding the mortgage payment. It represents the profitability of the asset itself.
Scenario: The "1% Rule" Check
A common rule of thumb for a quick screening is the 1% rule, which states that the monthly rent should be at least 1% of the purchase price. For example, a $200,000 home should rent for $2,000/month. While this rule is harder to find in today's market, this calculator helps you dive deeper. Even if a property doesn't meet the 1% rule, it may still cash flow positive if expenses are low or the down payment is high.
Why Cash Flow Matters More Than Appreciation
While property appreciation (increase in value over time) builds long-term net worth, cash flow keeps you in business. Positive cash flow ensures you can pay for repairs and withstand market downturns without paying out of pocket. Appreciation is the icing on the cake; cash flow is the cake itself.
function calculateCashFlow() {
// Clear errors
document.getElementById('errorMsg').style.display = 'none';
// Get Input Values
var purchasePrice = parseFloat(document.getElementById('purchasePrice').value);
var closingCosts = parseFloat(document.getElementById('closingCosts').value);
var downPaymentPercent = parseFloat(document.getElementById('downPaymentPercent').value);
var interestRate = parseFloat(document.getElementById('interestRate').value);
var loanTerm = parseFloat(document.getElementById('loanTerm').value);
var monthlyRent = parseFloat(document.getElementById('monthlyRent').value);
var annualTaxes = parseFloat(document.getElementById('annualTaxes').value);
var annualInsurance = parseFloat(document.getElementById('annualInsurance').value);
var hoaFees = parseFloat(document.getElementById('hoaFees').value);
var vacancyRate = parseFloat(document.getElementById('vacancyRate').value);
var maintenanceRate = parseFloat(document.getElementById('maintenanceRate').value);
var capexRate = parseFloat(document.getElementById('capexRate').value);
var managementRate = parseFloat(document.getElementById('managementRate').value);
// Validation
if (isNaN(purchasePrice) || isNaN(monthlyRent) || isNaN(interestRate) || isNaN(downPaymentPercent)) {
document.getElementById('errorMsg').style.display = 'block';
return;
}
// Loan Calculations
var downPaymentAmount = purchasePrice * (downPaymentPercent / 100);
var loanAmount = purchasePrice – downPaymentAmount;
var monthlyRate = (interestRate / 100) / 12;
var totalPayments = loanTerm * 12;
var monthlyMortgage = 0;
if (loanAmount > 0) {
if (interestRate === 0) {
monthlyMortgage = loanAmount / totalPayments;
} else {
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, totalPayments)) / (Math.pow(1 + monthlyRate, totalPayments) – 1);
}
}
// Expense Calculations
var monthlyTaxes = annualTaxes / 12;
var monthlyInsurance = annualInsurance / 12;
var fixedExpenses = monthlyTaxes + monthlyInsurance + hoaFees;
var vacancyCost = monthlyRent * (vacancyRate / 100);
var maintenanceCost = monthlyRent * (maintenanceRate / 100);
var capexCost = monthlyRent * (capexRate / 100);
var managementCost = monthlyRent * (managementRate / 100);
var variableExpenses = vacancyCost + maintenanceCost + capexCost + managementCost;
var totalMonthlyExpenses = fixedExpenses + variableExpenses + monthlyMortgage;
// NOI & Cash Flow
var monthlyNOI = monthlyRent – (fixedExpenses + variableExpenses);
var monthlyCashFlow = monthlyRent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
var annualNOI = monthlyNOI * 12;
// ROI Metrics
var totalCashInvested = downPaymentAmount + closingCosts;
var cashOnCashROI = 0;
if (totalCashInvested > 0) {
cashOnCashROI = (annualCashFlow / totalCashInvested) * 100;
}
var capRate = 0;
if (purchasePrice > 0) {
capRate = (annualNOI / purchasePrice) * 100;
}
// Display Results
var currencyFormatter = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });
var percentFormatter = new Intl.NumberFormat('en-US', { style: 'percent', minimumFractionDigits: 2 });
document.getElementById('resIncome').innerText = currencyFormatter.format(monthlyRent);
document.getElementById('resMortgage').innerText = "-" + currencyFormatter.format(monthlyMortgage);
document.getElementById('resFixedExp').innerText = "-" + currencyFormatter.format(fixedExpenses);
document.getElementById('resVarExp').innerText = "-" + currencyFormatter.format(variableExpenses);
var cfElement = document.getElementById('resCashFlow');
cfElement.innerText = currencyFormatter.format(monthlyCashFlow);
cfElement.style.color = monthlyCashFlow >= 0 ? '#27ae60' : '#c0392b';
document.getElementById('resCoc').innerText = percentFormatter.format(cashOnCashROI / 100);
document.getElementById('resCapRate').innerText = percentFormatter.format(capRate / 100);
document.getElementById('resNOI').innerText = currencyFormatter.format(annualNOI);
document.getElementById('results').style.display = 'block';
}