Analyze your real estate investment returns instantly.
Please enter valid numeric values for all fields.
Purchase Information
Loan Details
Income & Expenses
Monthly Cash Flow$0.00
Monthly Mortgage (P&I)$0.00
Total Monthly Expenses$0.00
Net Operating Income (NOI) / Year$0.00
Cap Rate0.00%
Cash on Cash Return0.00%
Understanding Rental Property Cash Flow
Investing in real estate is one of the most reliable ways to build wealth, but the success of a rental property hinges on the math. Our Rental Property Cash Flow Calculator helps investors determine the viability of a potential deal by analyzing income, expenses, and key return metrics.
What is Cash Flow?
Cash flow is the net amount of money moving in and out of a business or investment. For rental properties, it is calculated as total monthly rental income minus all monthly expenses (mortgage, taxes, insurance, maintenance, etc.). A positive cash flow means the property is generating profit, while negative cash flow implies a monthly loss.
Key Metrics Explained
NOI (Net Operating Income): This is the annual income generated by the property after deducting all operating expenses but before deducting mortgage payments (debt service) and income taxes. It is a raw measure of profitability.
Cap Rate (Capitalization Rate): Calculated as NOI / Purchase Price. This percentage helps compare the return on investment across different properties, regardless of how they are financed.
Cash on Cash Return: This metric measures the annual pre-tax cash flow divided by the total cash invested (Down Payment + Closing Costs). It tells you how hard your actual invested money is working for you.
Example Calculation
Imagine you purchase a property for $250,000 with a $50,000 down payment. You rent it out for $2,200 per month.
After accounting for a mortgage payment of roughly $1,264 (at 6.5%), property taxes, insurance, vacancy reserves (5%), and maintenance, your total monthly expenses might hover around $1,900. This leaves you with a Monthly Cash Flow of $300.
Using a calculator ensures you don't overlook "hidden" costs like vacancy rates (periods where the property sits empty) and maintenance reserves, which are critical for long-term sustainability.
How to Improve Cash Flow
If your calculation shows negative or low cash flow, consider negotiating a lower purchase price to reduce the mortgage, increasing the rent if the market allows, or finding ways to decrease operating expenses like insurance premiums or management fees.
function calculateRental() {
// Get Inputs by ID
var price = parseFloat(document.getElementById('purchasePrice').value);
var down = parseFloat(document.getElementById('downPayment').value);
var closing = parseFloat(document.getElementById('closingCosts').value);
var rate = parseFloat(document.getElementById('interestRate').value);
var term = parseFloat(document.getElementById('loanTerm').value);
var rent = parseFloat(document.getElementById('monthlyRent').value);
var taxYear = parseFloat(document.getElementById('propertyTax').value);
var insYear = parseFloat(document.getElementById('homeInsurance').value);
var hoa = parseFloat(document.getElementById('hoaFees').value);
var maint = parseFloat(document.getElementById('maintenance').value);
var vacancyPct = parseFloat(document.getElementById('vacancyRate').value);
// Error Handling
if (isNaN(price) || isNaN(down) || isNaN(rate) || isNaN(term) || isNaN(rent)) {
document.getElementById('errorMsg').style.display = 'block';
document.getElementById('results').style.display = 'none';
return;
} else {
document.getElementById('errorMsg').style.display = 'none';
}
// Calculations
var loanAmount = price – down;
var annualRate = rate / 100;
var monthlyRate = annualRate / 12;
var totalMonths = term * 12;
// Mortgage P&I
var monthlyPI = 0;
if (rate === 0) {
monthlyPI = loanAmount / totalMonths;
} else {
monthlyPI = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, totalMonths)) / (Math.pow(1 + monthlyRate, totalMonths) – 1);
}
// Operating Expenses
var monthlyTax = taxYear / 12;
var monthlyIns = insYear / 12;
var vacancyCost = rent * (vacancyPct / 100);
// Total Monthly Expenses (including mortgage)
var totalMonthlyExpenses = monthlyPI + monthlyTax + monthlyIns + hoa + maint + vacancyCost;
// Operating Expenses (excluding mortgage) for NOI
var operatingExpenses = monthlyTax + monthlyIns + hoa + maint + vacancyCost;
// Cash Flow
var monthlyCashFlow = rent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// NOI (Annual)
var annualNOI = (rent * 12) – (operatingExpenses * 12);
// Cap Rate
var capRate = (annualNOI / price) * 100;
// Cash on Cash Return
var totalCashInvested = down + closing;
var cocReturn = 0;
if (totalCashInvested > 0) {
cocReturn = (annualCashFlow / totalCashInvested) * 100;
}
// Display Results
document.getElementById('results').style.display = 'block';
document.getElementById('resCashFlow').innerText = formatCurrency(monthlyCashFlow);
document.getElementById('resCashFlow').style.color = monthlyCashFlow >= 0 ? '#2e7d32' : '#c0392b';
document.getElementById('resMortgage').innerText = formatCurrency(monthlyPI);
document.getElementById('resExpenses').innerText = formatCurrency(totalMonthlyExpenses);
document.getElementById('resNOI').innerText = formatCurrency(annualNOI);
document.getElementById('resCapRate').innerText = capRate.toFixed(2) + "%";
document.getElementById('resCoC').innerText = cocReturn.toFixed(2) + "%";
document.getElementById('resCoC').style.color = cocReturn >= 0 ? '#2c3e50' : '#c0392b';
}
function formatCurrency(num) {
return "$" + num.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
}