Analyze your real estate investment deal instantly.
Purchase & Loan Details
$
%
%
yrs
Income & Expenses
$
$
$
$
%
%
Monthly Cash Flow
$0.00
Cash on Cash Return
0.00%
Cap Rate
0.00%
Monthly NOI
$0.00
Total Monthly Mortgage Payment: $0.00
How to Analyze a Rental Property Deal
Investing in real estate is a powerful way to build wealth, but simply buying a property and renting it out doesn't guarantee a profit. Successful investors rely on specific metrics to determine if a property will be an asset or a liability. This Rental Property Cash Flow Calculator helps you break down the numbers to see the true potential of an investment.
Understanding the Key Metrics
1. Monthly Cash Flow
Cash Flow is the net amount of money moving into or out of your pocket every month. It is calculated by taking your total income (rent) and subtracting all expenses, including the mortgage. Positive cash flow means the property pays for itself and generates income. Negative cash flow means you are losing money every month just to hold the property.
2. Cash-on-Cash Return (CoC)
The Cash-on-Cash Return measures the efficiency of the cash you actually invested. While Cap Rate looks at the total value, CoC looks at your down payment and closing costs. It answers the question: "For every dollar I put into this deal, how much am I getting back this year?" Most investors aim for 8-12% or higher.
3. Cap Rate (Capitalization Rate)
Cap Rate is used to compare different real estate investments regardless of how they are financed. It is calculated by dividing the Net Operating Income (NOI) by the purchase price. It represents the percentage return an investor would receive on an all-cash purchase. A higher Cap Rate generally implies a better return but may come with higher risk.
Common Expenses Often Overlooked
When calculating rental property returns, beginners often underestimate expenses. Ensure you account for:
Vacancy Rate: Properties won't be occupied 365 days a year. Budgeting 5-8% for vacancy ensures you aren't caught off guard during turnover.
Maintenance & CapEx: Roofs leak, toilets break, and water heaters fail. Setting aside 5-10% of monthly rent creates a safety fund for these inevitable costs.
Property Management: Even if you plan to self-manage, it's wise to run the numbers as if you were paying a manager (typically 8-10% of rent) to ensure the deal still makes sense if you decide to outsource later.
How to Improve Your ROI
If the numbers in the calculator aren't meeting your goals, consider these strategies:
Negotiate Purchase Price: A lower entry price reduces your mortgage and boosts cash flow.
Increase Rents: Can you add value with minor renovations to justify higher rent?
Reduce Operating Costs: Shop around for cheaper insurance or challenge your property tax assessment.
function calculateRental() {
// 1. Get Input Values
var price = parseFloat(document.getElementById('propPrice').value) || 0;
var downPercent = parseFloat(document.getElementById('downPaymentPercent').value) || 0;
var interestRate = parseFloat(document.getElementById('interestRate').value) || 0;
var years = parseFloat(document.getElementById('loanTerm').value) || 0;
var monthlyRent = parseFloat(document.getElementById('monthlyRent').value) || 0;
var yearlyTax = parseFloat(document.getElementById('propertyTax').value) || 0;
var yearlyIns = parseFloat(document.getElementById('homeInsurance').value) || 0;
var monthlyHOA = parseFloat(document.getElementById('hoaFee').value) || 0;
var vacancyPercent = parseFloat(document.getElementById('vacancyRate').value) || 0;
var maintPercent = parseFloat(document.getElementById('maintenanceRate').value) || 0;
// 2. Calculate Mortgage (Principal & Interest)
var downPayment = price * (downPercent / 100);
var loanAmount = price – downPayment;
var monthlyRate = (interestRate / 100) / 12;
var totalMonths = years * 12;
var monthlyPI = 0;
if (interestRate > 0) {
monthlyPI = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, totalMonths)) / (Math.pow(1 + monthlyRate, totalMonths) – 1);
} else {
monthlyPI = loanAmount / totalMonths;
}
// 3. Calculate Monthly Expenses
var monthlyTax = yearlyTax / 12;
var monthlyIns = yearlyIns / 12;
var vacancyCost = monthlyRent * (vacancyPercent / 100);
var maintCost = monthlyRent * (maintPercent / 100);
// Total Operating Expenses (Does NOT include Mortgage)
var operatingExpenses = monthlyTax + monthlyIns + monthlyHOA + vacancyCost + maintCost;
// 4. Calculate Key Metrics
// Net Operating Income (NOI) = Gross Rent – Operating Expenses
var monthlyNOI = monthlyRent – operatingExpenses;
var yearlyNOI = monthlyNOI * 12;
// Cash Flow = NOI – Mortgage Payment
var monthlyCashFlow = monthlyNOI – monthlyPI;
var yearlyCashFlow = monthlyCashFlow * 12;
// Cap Rate = (Yearly NOI / Purchase Price) * 100
var capRate = (yearlyNOI / price) * 100;
// Cash on Cash Return = (Yearly Cash Flow / Total Cash Invested) * 100
// Assuming closing costs roughly 3% of price for estimation if not specified,
// but for this calculator we usually just use Down Payment to keep it simple or allow a field.
// We will use Down Payment for the denominator here to be standard.
var totalCashInvested = downPayment; // + Closing costs would go here
var cocReturn = 0;
if (totalCashInvested > 0) {
cocReturn = (yearlyCashFlow / totalCashInvested) * 100;
}
// 5. Update DOM
// Format Currency Helper
var fmtMoney = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });
document.getElementById('resCashFlow').innerHTML = fmtMoney.format(monthlyCashFlow);
document.getElementById('resNOI').innerHTML = fmtMoney.format(monthlyNOI);
document.getElementById('resMortgage').innerHTML = fmtMoney.format(monthlyPI);
document.getElementById('resCoC').innerHTML = cocReturn.toFixed(2) + "%";
document.getElementById('resCapRate').innerHTML = capRate.toFixed(2) + "%";
// Style negative numbers
var cfElement = document.getElementById('resCashFlow');
if (monthlyCashFlow < 0) {
cfElement.classList.add('negative-result');
} else {
cfElement.classList.remove('negative-result');
}
// Show results
document.getElementById('resultsArea').style.display = 'block';
}