Analyze your potential real estate investment returns instantly.
Purchase & Loan Details
Monthly Income
Monthly Expenses
Analysis Results
Monthly Mortgage (P&I):$0.00
Total Monthly Expenses (w/o Mortgage):$0.00
Net Operating Income (NOI – Monthly):$0.00
Monthly Cash Flow:$0.00
Cap Rate:0.00%
Cash on Cash Return:0.00%
Understanding Rental Property Cash Flow Analysis
Investing in real estate requires more than just guessing; it requires precise mathematical analysis to ensure profitability. This Rental Property Cash Flow Calculator helps investors determine if a property will generate income or drain resources.
Key Metrics Explained
Net Operating Income (NOI): This is your total revenue minus all necessary operating expenses (vacancy, taxes, insurance, maintenance) before paying the mortgage. It measures the raw profitability of the asset itself.
Cash Flow: The net amount of cash moving in or out of the business after all expenses and debt service (mortgage) are paid. Positive cash flow means profit in your pocket every month.
Cap Rate (Capitalization Rate): Calculated as (Annual NOI / Purchase Price). It represents the rate of return on the property if you paid all cash. It helps compare properties regardless of financing.
Cash on Cash Return: Calculated as (Annual Cash Flow / Total Cash Invested). This measures the return on the actual cash you put into the deal (down payment + closing costs).
How to Calculate Rental Cash Flow
To accurately calculate cash flow manually, follow this formula:
Cash Flow = Gross Income - (Operating Expenses + Vacancy + Capital Expenditures + Mortgage Payment)
Common mistakes include underestimating vacancy rates (typically 5-8% annually) or forgetting to budget for maintenance (commonly 1% of property value per year). By inputting realistic figures into the fields above, you can mitigate risk and identify high-performing investment opportunities.
What is a Good ROI?
While targets vary by investor, a generally accepted benchmark for Cash on Cash Return is 8-12%, while many seek a minimum of $100-$200 per door in monthly positive cash flow. Cap rates usually range from 4% to 10% depending on the location and risk profile of the asset class.
function calculateRPC() {
// 1. Get Inputs
var price = parseFloat(document.getElementById('rpc_price').value);
var closingCosts = parseFloat(document.getElementById('rpc_closing').value);
var downPercent = parseFloat(document.getElementById('rpc_down_percent').value);
var interestRate = parseFloat(document.getElementById('rpc_rate').value);
var loanTermYears = parseFloat(document.getElementById('rpc_term').value);
var grossRent = parseFloat(document.getElementById('rpc_rent').value);
var otherIncome = parseFloat(document.getElementById('rpc_other_income').value);
var annualTax = parseFloat(document.getElementById('rpc_tax').value);
var annualInsurance = parseFloat(document.getElementById('rpc_insurance').value);
var monthlyHoa = parseFloat(document.getElementById('rpc_hoa').value);
var monthlyMaintenance = parseFloat(document.getElementById('rpc_maintenance').value);
var vacancyRate = parseFloat(document.getElementById('rpc_vacancy').value);
var managementFeeRate = parseFloat(document.getElementById('rpc_management').value);
// Validation
if (isNaN(price) || isNaN(downPercent) || isNaN(interestRate) || isNaN(grossRent)) {
return;
}
// 2. Loan Calculations
var downPaymentAmount = price * (downPercent / 100);
var loanAmount = price – downPaymentAmount;
var monthlyRate = (interestRate / 100) / 12;
var totalMonths = loanTermYears * 12;
var monthlyMortgage = 0;
if (interestRate > 0) {
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, totalMonths)) / (Math.pow(1 + monthlyRate, totalMonths) – 1);
} else {
monthlyMortgage = loanAmount / totalMonths;
}
// 3. Income Calculations
var totalMonthlyIncome = grossRent + otherIncome;
var vacancyCost = totalMonthlyIncome * (vacancyRate / 100);
var effectiveGrossIncome = totalMonthlyIncome – vacancyCost;
// 4. Expense Calculations (Monthly)
var monthlyTax = annualTax / 12;
var monthlyInsurance = annualInsurance / 12;
var managementCost = effectiveGrossIncome * (managementFeeRate / 100);
var totalOperatingExpenses = monthlyTax + monthlyInsurance + monthlyHoa + monthlyMaintenance + managementCost;
// 5. Profit Metrics
var monthlyNOI = effectiveGrossIncome – totalOperatingExpenses;
var monthlyCashFlow = monthlyNOI – monthlyMortgage;
var annualCashFlow = monthlyCashFlow * 12;
var annualNOI = monthlyNOI * 12;
var totalCashInvested = downPaymentAmount + closingCosts;
var capRate = (price > 0) ? (annualNOI / price) * 100 : 0;
var cashOnCash = (totalCashInvested > 0) ? (annualCashFlow / totalCashInvested) * 100 : 0;
// 6. Display Results
document.getElementById('rpc_results').style.display = 'block';
document.getElementById('res_mortgage').innerText = formatCurrency(monthlyMortgage);
document.getElementById('res_operating_expenses').innerText = formatCurrency(totalOperatingExpenses);
document.getElementById('res_noi').innerText = formatCurrency(monthlyNOI);
var cfElement = document.getElementById('res_cashflow');
cfElement.innerText = formatCurrency(monthlyCashFlow);
if (monthlyCashFlow >= 0) {
cfElement.className = "rpc-result-value rpc-highlight";
} else {
cfElement.className = "rpc-result-value rpc-highlight-neg";
}
document.getElementById('res_cap_rate').innerText = capRate.toFixed(2) + "%";
document.getElementById('res_coc').innerText = cashOnCash.toFixed(2) + "%";
}
function formatCurrency(num) {
return "$" + num.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
}