Analyze your potential investment property returns instantly.
Purchase Information
Rental Income
Monthly Expenses
Investment Analysis
Monthly Rental Income (Gross)
Monthly Expenses (Total)
Monthly Cash Flow
Net Operating Income (NOI – Annual)
Cash on Cash Return (ROI)
Cap Rate
Total Cash Needed to Close
function calculateRentalROI() {
// Get Inputs
var price = parseFloat(document.getElementById('rpc_price').value) || 0;
var downPercent = parseFloat(document.getElementById('rpc_down_percent').value) || 0;
var interestRate = parseFloat(document.getElementById('rpc_rate').value) || 0;
var termYears = parseFloat(document.getElementById('rpc_term').value) || 0;
var closingCosts = parseFloat(document.getElementById('rpc_closing_costs').value) || 0;
var rehabCosts = parseFloat(document.getElementById('rpc_rehab').value) || 0;
var rent = parseFloat(document.getElementById('rpc_rent').value) || 0;
var vacancyRate = parseFloat(document.getElementById('rpc_vacancy').value) || 0;
var annualTax = parseFloat(document.getElementById('rpc_tax').value) || 0;
var annualInsurance = parseFloat(document.getElementById('rpc_insurance').value) || 0;
var monthlyHOA = parseFloat(document.getElementById('rpc_hoa').value) || 0;
var maintenanceRate = parseFloat(document.getElementById('rpc_maintenance').value) || 0;
var capexRate = parseFloat(document.getElementById('rpc_capex').value) || 0;
var managementRate = parseFloat(document.getElementById('rpc_management').value) || 0;
// Calculations – Loan
var downPayment = price * (downPercent / 100);
var loanAmount = price – downPayment;
var monthlyRate = (interestRate / 100) / 12;
var numPayments = termYears * 12;
// Mortgage P&I
var monthlyPI = 0;
if (interestRate === 0) {
monthlyPI = loanAmount / numPayments;
} else {
monthlyPI = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numPayments)) / (Math.pow(1 + monthlyRate, numPayments) – 1);
}
if (isNaN(monthlyPI)) monthlyPI = 0;
// Income Calculations
var vacancyLoss = rent * (vacancyRate / 100);
var effectiveIncome = rent – vacancyLoss;
// Operating Expenses
var monthlyTax = annualTax / 12;
var monthlyInsurance = annualInsurance / 12;
var monthlyMaintenance = rent * (maintenanceRate / 100);
var monthlyCapex = rent * (capexRate / 100);
var monthlyManagement = rent * (managementRate / 100);
var operatingExpenses = monthlyTax + monthlyInsurance + monthlyHOA + monthlyMaintenance + monthlyCapex + monthlyManagement;
var totalExpenses = operatingExpenses + monthlyPI;
// Metrics
var monthlyCashFlow = effectiveIncome – totalExpenses;
var annualCashFlow = monthlyCashFlow * 12;
var noi = (effectiveIncome – operatingExpenses) * 12; // Annual NOI
var totalCashNeeded = downPayment + closingCosts + rehabCosts;
// ROI Metrics
var cashOnCash = 0;
if (totalCashNeeded > 0) {
cashOnCash = (annualCashFlow / totalCashNeeded) * 100;
}
var capRate = 0;
if (price > 0) {
capRate = (noi / price) * 100;
}
// Display Results
document.getElementById('res_gross_income').innerText = "$" + rent.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res_total_expenses').innerText = "$" + totalExpenses.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
var cfElement = document.getElementById('res_cash_flow');
cfElement.innerText = "$" + monthlyCashFlow.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
if (monthlyCashFlow >= 0) {
cfElement.className = "rpc-result-value rpc-highlight";
} else {
cfElement.className = "rpc-result-value rpc-highlight-neg";
}
document.getElementById('res_noi').innerText = "$" + noi.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res_coc').innerText = cashOnCash.toFixed(2) + "%";
document.getElementById('res_cap_rate').innerText = capRate.toFixed(2) + "%";
document.getElementById('res_cash_needed').innerText = "$" + totalCashNeeded.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
// Show results div
document.getElementById('rpc_results').style.display = "block";
}
Understanding Rental Property Cash Flow
Investing in real estate is one of the most reliable ways to build wealth, but not every property is a good investment. The key to successful real estate investing lies in the numbers, specifically Cash Flow. Our Rental Property Cash Flow Calculator helps investors determine if a property will generate a profit or become a financial burden.
What is Cash Flow?
Cash flow is the net amount of cash moving into and out of a business. In real estate, positive cash flow means the rental income exceeds all expenses associated with the property (mortgage, taxes, insurance, maintenance). Negative cash flow occurs when expenses exceed income, requiring you to pay out of pocket to keep the property.
This calculator provides several critical metrics to evaluate your deal:
NOI (Net Operating Income): The annual income generated by the property after deducting operating expenses but before deducting mortgage payments. This is crucial for calculating the Cap Rate.
Cash on Cash Return (CoC): This measures the annual return on the actual cash you invested (Down Payment + Closing Costs + Rehab). It is arguably the most important metric for investors using leverage (mortgages).
Cap Rate (Capitalization Rate): The rate of return on a real estate investment property based on the income that the property is expected to generate. It allows you to compare properties regardless of financing.
Example Scenario
Let's say you are looking at a single-family home listed for $250,000. You plan to put 20% down ($50,000).
Rental Income: You expect to rent it for $2,200/month.
Mortgage: At a 6.5% interest rate, your principal and interest payment is roughly $1,264.
Expenses: Taxes, insurance, and maintenance total another $600/month.
If your total expenses (mortgage + operating) are $1,864, and your rent is $2,200, your Monthly Cash Flow is $336. This calculator helps you refine these numbers by including vacancy rates, management fees, and capital expenditures (CapEx) to ensure you aren't caught off guard by hidden costs.
Why Use the 50% Rule?
A common rule of thumb in real estate is the 50% rule, which states that 50% of your rental income will likely go toward operating expenses (excluding the mortgage). While this calculator allows for precise inputs, beginners often underestimate costs like maintenance and vacancy. Always account for CapEx (big repairs like a new roof) and Vacancy (months where the property sits empty) to get a true picture of your ROI.