Includes Taxes, Insurance, HOA, Maintenance, Management
Monthly Cash Flow: $0.00
Cash on Cash ROI
0.00%
Cap Rate
0.00%
NOI (Monthly)
$0.00
Monthly Financial Breakdown
Total Income (Adjusted for Vacancy)$0.00
– Operating Expenses$0.00
– Mortgage Payment (P&I)$0.00
= Net Monthly Cash Flow$0.00
Understanding Rental Property Cash Flow
Investing in real estate is one of the most reliable ways to build wealth, but the difference between a successful investment and a financial burden often comes down to the numbers. This Rental Property Cash Flow Calculator is designed to help investors quickly analyze the profitability of potential real estate deals.
By inputting key financial data such as purchase price, financing terms, rental income, and operating expenses, you can determine if a property will generate positive cash flow or bleed money every month.
Key Metrics Explained
1. Net Operating Income (NOI)
Net Operating Income is the total income a property generates minus all necessary operating expenses. Note: NOI does not include mortgage payments. It is a pure measure of the property's ability to generate revenue from operations. A higher NOI indicates a more profitable asset before debt service.
2. Cash Flow
Cash flow is the money left over after all expenses, including the mortgage, have been paid.
Positive cash flow means the property is putting money in your pocket every month. Negative cash flow means you are paying out of pocket to hold the property.
3. Cash on Cash Return (ROI)
This is arguably the most important metric for investors using leverage (loans). It measures the annual return on the actual cash you invested, not the total property price.
For example, if you invest $50,000 cash to buy a property and it generates $5,000 in annual cash flow, your Cash on Cash ROI is 10%. This allows you to compare real estate returns against other investments like stocks or bonds.
4. Cap Rate (Capitalization Rate)
Cap Rate measures the rate of return on an investment property assuming it was paid for in all cash. It helps compare properties of different sizes and prices on an apples-to-apples basis. It is calculated by dividing the annual NOI by the property's purchase price.
What is a Good ROI for Rental Property?
While "good" is subjective, many investors target a Cash on Cash return of 8% to 12%. In highly appreciative markets (where property values rise quickly), investors might accept lower cash flow (4-6%). In markets with lower appreciation, investors often demand higher cash flow (12%+).
Use this calculator to run different scenarios. Try adjusting the rent, interest rate, or down payment to see how these variables impact your bottom line.
function calculateRentalCashFlow() {
// 1. Get Input Values
var price = parseFloat(document.getElementById('propPrice').value);
var downPercent = parseFloat(document.getElementById('downPayment').value);
var interestRate = parseFloat(document.getElementById('interestRate').value);
var termYears = parseFloat(document.getElementById('loanTerm').value);
var closingCosts = parseFloat(document.getElementById('closingCosts').value);
var rent = parseFloat(document.getElementById('monthlyRent').value);
var otherIncome = parseFloat(document.getElementById('otherIncome').value) || 0;
var vacancyRate = parseFloat(document.getElementById('vacancyRate').value);
var expenses = parseFloat(document.getElementById('monthlyExpenses').value);
// Validate inputs
if (isNaN(price) || isNaN(downPercent) || isNaN(rent) || isNaN(expenses)) {
alert("Please enter valid numbers for Price, Down Payment, Rent, and Expenses.");
return;
}
// 2. Calculate Mortgage (P&I)
var downPaymentAmount = price * (downPercent / 100);
var loanAmount = price – downPaymentAmount;
var monthlyInterest = (interestRate / 100) / 12;
var numPayments = termYears * 12;
var mortgagePayment = 0;
if (interestRate > 0) {
// Standard mortgage formula: M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1]
mortgagePayment = loanAmount * (monthlyInterest * Math.pow(1 + monthlyInterest, numPayments)) / (Math.pow(1 + monthlyInterest, numPayments) – 1);
} else {
mortgagePayment = loanAmount / numPayments;
}
// 3. Calculate Income Logic
var grossIncome = rent + otherIncome;
var vacancyLoss = grossIncome * (vacancyRate / 100);
var effectiveGrossIncome = grossIncome – vacancyLoss;
// 4. Calculate NOI (Net Operating Income)
// NOI = Effective Gross Income – Operating Expenses (excluding mortgage)
var monthlyNOI = effectiveGrossIncome – expenses;
var annualNOI = monthlyNOI * 12;
// 5. Calculate Cash Flow
var monthlyCashFlow = monthlyNOI – mortgagePayment;
var annualCashFlow = monthlyCashFlow * 12;
// 6. Calculate Returns
var totalCashInvested = downPaymentAmount + closingCosts;
var cocRoi = 0;
if (totalCashInvested > 0) {
cocRoi = (annualCashFlow / totalCashInvested) * 100;
}
var capRate = 0;
if (price > 0) {
capRate = (annualNOI / price) * 100;
}
// 7. Update UI
document.getElementById('resultsArea').style.display = 'block';
// Format Currency Helper
var fmt = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });
// Main Result
var cfEl = document.getElementById('monthlyCashFlowDisplay');
cfEl.innerText = fmt.format(monthlyCashFlow);
if(monthlyCashFlow >= 0) {
cfEl.className = "highlight-green";
} else {
cfEl.className = "highlight-red";
}
// Metrics
document.getElementById('cocRoiDisplay').innerText = cocRoi.toFixed(2) + "%";
document.getElementById('capRateDisplay').innerText = capRate.toFixed(2) + "%";
document.getElementById('noiDisplay').innerText = fmt.format(monthlyNOI);
// Breakdown
document.getElementById('adjIncomeDisplay').innerText = fmt.format(effectiveGrossIncome);
document.getElementById('expDisplay').innerText = "-" + fmt.format(expenses);
document.getElementById('mortgageDisplay').innerText = "-" + fmt.format(mortgagePayment);
var smallCfEl = document.getElementById('netCashFlowSmall');
smallCfEl.innerText = fmt.format(monthlyCashFlow);
if(monthlyCashFlow >= 0) {
smallCfEl.style.color = "#38a169";
} else {
smallCfEl.style.color = "#e53e3e";
}
}