Calculating cash flow is the single most important step in evaluating a rental property investment. Unlike speculative appreciation, cash flow represents the tangible profit you pocket every month after all expenses are paid. A property with positive cash flow pays for itself and provides passive income, while a negative cash flow property drains your resources.
What is Rental Cash Flow?
Rental cash flow is the difference between your rental income and the property's expenses. It is calculated as:
Cash Flow = Total Income – Total Expenses
However, accurate calculation requires accounting for more than just the mortgage and rent. You must factor in vacancy rates, repairs, capital expenditures (CapEx), property management fees, taxes, and insurance. Ignoring these "hidden" costs is the most common mistake new investors make.
Key Metrics Explained
NOI (Net Operating Income): This is your income minus operating expenses, excluding the mortgage payment. It measures the profitability of the property itself, regardless of financing.
Cash on Cash Return (CoC): This measures the return on the actual cash you invested (down payment + closing costs). A CoC of 8-12% is generally considered a solid investment in real estate.
Cap Rate: This is the NOI divided by the property's purchase price. It helps compare the profitability of different properties irrespective of how they are financed.
How to Use This Calculator
This calculator is designed to give you a realistic view of a potential investment. Start by entering the purchase price and your financing details. Next, input your expected rental income. Be sure to be conservative with your estimates; it is better to be pleasantly surprised than financially stressed.
In the expenses section, don't skip the percentage-based fields. Even if you plan to manage the property yourself, allocating a percentage for management (typically 8-10%) ensures you are "paying yourself" for your time. Similarly, always set aside funds for maintenance (5%) and major capital expenditures (5%) like a new roof or HVAC system.
The 1% Rule
A quick rule of thumb used by investors is the 1% rule, which suggests that the monthly rent should be at least 1% of the purchase price. For example, a $200,000 home should rent for at least $2,000/month. While not a hard rule, it serves as a quick filter to identify properties that are likely to generate positive cash flow.
function calculateRentalCashFlow() {
// 1. Get Values
var purchasePrice = parseFloat(document.getElementById('purchasePrice').value) || 0;
var downPayment = parseFloat(document.getElementById('downPayment').value) || 0;
var closingCosts = parseFloat(document.getElementById('closingCosts').value) || 0;
var monthlyRent = parseFloat(document.getElementById('monthlyRent').value) || 0;
var otherIncome = parseFloat(document.getElementById('otherIncome').value) || 0;
var vacancyRate = parseFloat(document.getElementById('vacancyRate').value) || 0;
var mortgage = parseFloat(document.getElementById('mortgagePayment').value) || 0;
var tax = parseFloat(document.getElementById('propertyTax').value) || 0;
var insurance = parseFloat(document.getElementById('insurance').value) || 0;
var hoa = parseFloat(document.getElementById('hoaFees').value) || 0;
var repairRate = parseFloat(document.getElementById('repairRate').value) || 0;
var capexRate = parseFloat(document.getElementById('capexRate').value) || 0;
var managementRate = parseFloat(document.getElementById('managementRate').value) || 0;
// 2. Calculate Income
var grossPotentialIncome = monthlyRent + otherIncome;
var vacancyCost = grossPotentialIncome * (vacancyRate / 100);
var effectiveGrossIncome = grossPotentialIncome – vacancyCost;
// 3. Calculate Variable Expenses
var repairCost = grossPotentialIncome * (repairRate / 100);
var capexCost = grossPotentialIncome * (capexRate / 100);
var managementCost = grossPotentialIncome * (managementRate / 100);
// 4. Calculate Totals
var operatingExpenses = tax + insurance + hoa + repairCost + capexCost + managementCost + vacancyCost;
// Note: Vacancy is often treated as contra-revenue, but for cash flow math, subtracting it from gross or adding to expenses yields same net.
// Logic Adjustment: Effective Gross Income already subtracted Vacancy. So Operating Expenses should NOT include vacancy again if we subtract Operating Expenses from Effective Gross.
// Let's reset Operating Expenses strictly:
var trueOperatingExpenses = tax + insurance + hoa + repairCost + capexCost + managementCost;
var noi = effectiveGrossIncome – trueOperatingExpenses;
var totalExpenses = trueOperatingExpenses + mortgage;
var monthlyCashFlow = effectiveGrossIncome – totalExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// 5. Calculate ROI Metrics
var totalInitialInvestment = downPayment + closingCosts;
var cashOnCash = 0;
if (totalInitialInvestment > 0) {
cashOnCash = (annualCashFlow / totalInitialInvestment) * 100;
}
var capRate = 0;
if (purchasePrice > 0) {
var annualNOI = noi * 12;
capRate = (annualNOI / purchasePrice) * 100;
}
// 6. Display Results
document.getElementById('res_gross').innerHTML = '$' + effectiveGrossIncome.toFixed(2);
document.getElementById('res_expenses').innerHTML = '$' + totalExpenses.toFixed(2);
document.getElementById('res_noi').innerHTML = '$' + noi.toFixed(2);
var cfElement = document.getElementById('res_cashflow');
cfElement.innerHTML = '$' + monthlyCashFlow.toFixed(2);
// Color coding for cash flow
if (monthlyCashFlow >= 0) {
cfElement.className = "result-val highlight-positive";
} else {
cfElement.className = "result-val highlight-negative";
}
document.getElementById('res_coc').innerHTML = cashOnCash.toFixed(2) + '%';
document.getElementById('res_cap').innerHTML = capRate.toFixed(2) + '%';
// Show result box
document.getElementById('rentalResults').style.display = 'block';
}