Analyze the profitability of your real estate investment
Purchase & Loan Details
Rental Income
Recurring Expenses
Investment Analysis
Monthly Mortgage (P&I):$0.00
Total Monthly Expenses:$0.00
Net Operating Income (NOI) / Year:$0.00
Cap Rate:0.00%
Cash on Cash Return:0.00%
Monthly Cash Flow:$0.00
function calculateCashFlow() {
// 1. Get Inputs
var price = parseFloat(document.getElementById('rpPrice').value) || 0;
var downPercent = parseFloat(document.getElementById('rpDownPayment').value) || 0;
var interestRate = parseFloat(document.getElementById('rpInterest').value) || 0;
var termYears = parseFloat(document.getElementById('rpTerm').value) || 0;
var rent = parseFloat(document.getElementById('rpRent').value) || 0;
var vacancyPercent = parseFloat(document.getElementById('rpVacancy').value) || 0;
var taxAnnual = parseFloat(document.getElementById('rpTaxes').value) || 0;
var insuranceAnnual = parseFloat(document.getElementById('rpInsurance').value) || 0;
var hoaMonthly = parseFloat(document.getElementById('rpHOA').value) || 0;
var repairPercent = parseFloat(document.getElementById('rpRepairs').value) || 0;
var mgmtPercent = parseFloat(document.getElementById('rpManagement').value) || 0;
// 2. Calculate Mortgage (Principal and Interest)
var downPaymentAmount = price * (downPercent / 100);
var loanAmount = price – downPaymentAmount;
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = termYears * 12;
var monthlyMortgage = 0;
if (interestRate === 0) {
monthlyMortgage = loanAmount / numberOfPayments;
} else {
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
}
// 3. Calculate Monthly Operating Expenses
var monthlyTax = taxAnnual / 12;
var monthlyInsurance = insuranceAnnual / 12;
var vacancyCost = rent * (vacancyPercent / 100);
var repairCost = rent * (repairPercent / 100);
var mgmtCost = rent * (mgmtPercent / 100);
var totalOperatingExpenses = monthlyTax + monthlyInsurance + hoaMonthly + vacancyCost + repairCost + mgmtCost;
var totalMonthlyExpenses = totalOperatingExpenses + monthlyMortgage;
// 4. Calculate Key Metrics
var monthlyCashFlow = rent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// Net Operating Income (Annual) = (Annual Gross Income – Vacancy) – Annual Operating Expenses (Excluding Mortgage)
var annualGrossPotential = rent * 12;
var annualVacancy = annualGrossPotential * (vacancyPercent / 100);
var annualEffectiveIncome = annualGrossPotential – annualVacancy;
var annualOperatingExpenses = (monthlyTax + monthlyInsurance + hoaMonthly + repairCost + mgmtCost) * 12; // Re-calculate to ensure accuracy excluding mortgage
var noi = annualEffectiveIncome – annualOperatingExpenses;
// Cap Rate = (NOI / Purchase Price) * 100
var capRate = (noi / price) * 100;
// Cash on Cash Return = (Annual Cash Flow / Total Cash Invested) * 100
// Simplifying cash invested to just Down Payment for this specific calculator level,
// though typically it includes closing costs.
var cashInvested = downPaymentAmount;
// Prevent division by zero
var cashOnCash = 0;
if(cashInvested > 0) {
cashOnCash = (annualCashFlow / cashInvested) * 100;
}
// 5. Update UI
document.getElementById('resMortgage').innerText = formatCurrency(monthlyMortgage);
document.getElementById('resExpenses').innerText = formatCurrency(totalMonthlyExpenses);
document.getElementById('resNOI').innerText = formatCurrency(noi);
document.getElementById('resCapRate').innerText = capRate.toFixed(2) + '%';
var cocElement = document.getElementById('resCoC');
cocElement.innerText = cashOnCash.toFixed(2) + '%';
if (cashOnCash < 0) {
cocElement.className = "rp-result-value rp-highlight-neg";
} else {
cocElement.className = "rp-result-value rp-highlight";
}
var cfElement = document.getElementById('resCashFlow');
cfElement.innerText = formatCurrency(monthlyCashFlow);
if (monthlyCashFlow < 0) {
cfElement.className = "rp-result-value rp-highlight-neg";
} else {
cfElement.className = "rp-result-value rp-highlight";
}
document.getElementById('rpResults').style.display = 'block';
}
function formatCurrency(num) {
return '$' + num.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
}
Understanding Rental Property Cash Flow
Successful real estate investing hinges on the math. Whether you are analyzing a single-family home, a duplex, or a multi-unit apartment complex, the Rental Property Cash Flow Calculator helps you determine if a property is an asset or a liability.
What is Cash Flow?
Cash flow is the net amount of money moving into and out of your rental business. Positive cash flow means the property generates more income than it costs to operate, putting money in your pocket every month. Negative cash flow means you are losing money to hold the property.
The formula is simple:
Cash Flow = Total Income – Total Expenses
Key Metrics Explained
NOI (Net Operating Income): This represents the profitability of the property before factoring in financing (mortgage). It is calculated by subtracting operating expenses from revenue. It helps compare properties regardless of how they are financed.
Cap Rate (Capitalization Rate): A measure of the rate of return on a real estate investment property based on the income that the property is expected to generate. It is calculated as NOI / Purchase Price. Higher cap rates generally imply higher risk or higher return potential.
Cash on Cash Return: This metric calculates the cash income earned on the cash invested in a property. It differs from standard ROI because it only looks at the actual cash money you put into the deal (down payment), not the total loan amount.
Vacancy Rate: No property is occupied 100% of the time. A conservative estimate (usually 5-8%) ensures you have funds set aside for turnover periods.
What is a Good Cash on Cash Return?
While "good" is subjective and depends on the local market and interest rates, many investors target a Cash on Cash return of 8% to 12%. In highly appreciative markets, investors might accept lower cash flow (4-6%) in exchange for future equity growth. In stagnant markets, investors typically demand higher cash flow (10%+) to offset the lack of appreciation.
How to Improve Cash Flow
If the calculator shows negative or low cash flow, consider these adjustments:
Negotiate a lower purchase price: This reduces your loan amount and monthly mortgage payment.
Increase the rent: Ensure your rent aligns with current market rates.
Decrease expenses: Shop for cheaper insurance or manage the property yourself to save on management fees.
Increase the down payment: Putting more money down reduces the mortgage payment, instantly boosting monthly cash flow.
Frequently Asked Questions (FAQ)
Should I include maintenance costs if the house is new?
Yes. Even new homes require upkeep. It is best practice to budget 5-10% of the rent for repairs and capital expenditures (CapEx) like a future roof or HVAC replacement.
Does this calculator include principal paydown?
This calculator focuses on cash flow. While principal paydown is a form of profit (equity buildup), it is not "cash in pocket" until you sell or refinance. Therefore, it is not included in the monthly cash flow figure.