function calculateRental() {
// Get Inputs
var price = parseFloat(document.getElementById('rc_purchasePrice').value) || 0;
var downPercent = parseFloat(document.getElementById('rc_downPaymentPercent').value) || 0;
var interestRate = parseFloat(document.getElementById('rc_interestRate').value) || 0;
var years = parseFloat(document.getElementById('rc_loanTerm').value) || 0;
var rent = parseFloat(document.getElementById('rc_monthlyRent').value) || 0;
var taxYearly = parseFloat(document.getElementById('rc_propertyTax').value) || 0;
var insuranceYearly = parseFloat(document.getElementById('rc_insurance').value) || 0;
var hoaMonthly = parseFloat(document.getElementById('rc_hoa').value) || 0;
var maintPercent = parseFloat(document.getElementById('rc_maintenance').value) || 0;
var vacancyPercent = parseFloat(document.getElementById('rc_vacancy').value) || 0;
var closingCosts = parseFloat(document.getElementById('rc_closingCosts').value) || 0;
// Calculations – Loan
var downPaymentAmt = price * (downPercent / 100);
var loanAmount = price – downPaymentAmt;
var monthlyRate = (interestRate / 100) / 12;
var numPayments = years * 12;
var monthlyMortgage = 0;
if (interestRate > 0 && years > 0) {
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numPayments)) / (Math.pow(1 + monthlyRate, numPayments) – 1);
} else if (interestRate === 0 && years > 0) {
monthlyMortgage = loanAmount / numPayments;
}
// Calculations – Expenses
var monthlyTax = taxYearly / 12;
var monthlyInsurance = insuranceYearly / 12;
var maintenanceCost = rent * (maintPercent / 100);
var vacancyCost = rent * (vacancyPercent / 100);
var totalMonthlyExpenses = monthlyTax + monthlyInsurance + hoaMonthly + maintenanceCost + vacancyCost;
// Calculations – Returns
var noi = rent – totalMonthlyExpenses;
var cashFlow = noi – monthlyMortgage;
var annualCashFlow = cashFlow * 12;
var annualNOI = noi * 12;
var totalInvestment = downPaymentAmt + closingCosts;
var coc = 0;
if (totalInvestment > 0) {
coc = (annualCashFlow / totalInvestment) * 100;
}
var capRate = 0;
if (price > 0) {
capRate = (annualNOI / price) * 100;
}
// Display Results
document.getElementById('results-area').style.display = 'block';
var cfEl = document.getElementById('res_cashFlow');
cfEl.innerText = formatMoney(cashFlow);
cfEl.className = cashFlow < 0 ? 'negative' : '';
var cocEl = document.getElementById('res_coc');
cocEl.innerText = coc.toFixed(2) + "%";
cocEl.className = coc < 0 ? 'negative' : '';
document.getElementById('res_grossIncome').innerText = formatMoney(rent);
document.getElementById('res_mortgage').innerText = formatMoney(monthlyMortgage);
document.getElementById('res_expenses').innerText = formatMoney(totalMonthlyExpenses);
document.getElementById('res_noi').innerText = formatMoney(noi);
document.getElementById('res_investment').innerText = formatMoney(totalInvestment);
document.getElementById('res_capRate').innerText = capRate.toFixed(2) + "%";
}
function formatMoney(amount) {
return '$' + amount.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
}
Rental Property Cash Flow Analysis
Investing in real estate is one of the most reliable ways to build wealth, but simply buying a property and renting it out doesn't guarantee profit. To succeed, investors must analyze the numbers meticulously. This Rental Property Cash Flow Calculator is designed to help you determine if a potential investment will generate positive income every month or drain your wallet.
Why Cash Flow is King
Cash flow represents the net amount of money moving in and out of your rental business. Positive cash flow means your monthly rental income exceeds all your expenses, including the mortgage, taxes, insurance, and maintenance reserves. This is the profit you pocket every month.
Negative cash flow, on the other hand, means you are losing money to hold the property. While some investors accept negative cash flow in hopes of future appreciation, it significantly increases risk. A healthy cash flow ensures your investment is self-sustaining.
Understanding the Key Metrics
When analyzing a deal using our calculator, pay attention to these three critical indicators:
1. Net Operating Income (NOI)
NOI is calculated by subtracting all operating expenses from the total revenue generated by the property. Note that NOI excludes mortgage payments. It is a pure measure of the property's ability to generate revenue.
Formula: Income – Operating Expenses = NOI
2. Cash on Cash Return (CoC)
This is arguably the most important metric for ROI. It measures the annual pre-tax cash flow divided by the total cash invested (down payment + closing costs). It tells you how hard your actual dollars are working for you compared to alternative investments like the stock market.
Formula: (Annual Cash Flow / Total Cash Invested) × 100
3. Cap Rate (Capitalization Rate)
The Cap Rate measures the property's natural rate of return assuming you paid all cash (no mortgage). It helps you compare properties of different sizes or in different areas on an apples-to-apples basis without the influence of financing terms.
Formula: (Annual NOI / Purchase Price) × 100
How to Use This Calculator
Purchase Price: The agreed-upon selling price of the home.
Down Payment & Interest Rate: These determine your monthly mortgage payment (Principal & Interest).
Vacancy Rate: Always account for vacancy. A standard safe estimate is 5-8%, meaning the property might sit empty for a few weeks each year.
Maintenance: Setting aside 5-10% of the rent for future repairs is crucial. Even if you don't spend it this month, you will need it when the water heater breaks.
Use this tool to run scenarios. What happens if the rent is $100 lower? What if the interest rate is 1% higher? Successful investors run these numbers before making an offer.