Analyze your real estate deal to determine Cash on Cash Return, Cap Rate, and Monthly Cash Flow.
Purchase Details
Financing Details
30 Years
15 Years
10 Years
Rental Income
Property Expenses
Analysis Results
Total Cash Invested (Upfront)$0.00
Monthly Mortgage (P&I)$0.00
Total Monthly Expenses$0.00
Net Operating Income (Monthly)$0.00
Monthly Cash Flow$0.00
Cap Rate0.00%
Cash on Cash Return0.00%
function calculateRentalROI() {
// 1. Get Inputs with Validation
var price = parseFloat(document.getElementById("rp_price").value);
var closingCosts = parseFloat(document.getElementById("rp_closing").value) || 0;
var downPercent = parseFloat(document.getElementById("rp_down_percent").value);
var interestRate = parseFloat(document.getElementById("rp_rate").value);
var loanYears = parseFloat(document.getElementById("rp_term").value);
var monthlyRent = parseFloat(document.getElementById("rp_rent").value);
var vacancyPercent = parseFloat(document.getElementById("rp_vacancy").value) || 0;
var annualTax = parseFloat(document.getElementById("rp_tax").value) || 0;
var annualInsurance = parseFloat(document.getElementById("rp_insurance").value) || 0;
var monthlyHOA = parseFloat(document.getElementById("rp_hoa").value) || 0;
var maintenancePercent = parseFloat(document.getElementById("rp_maintenance").value) || 0;
// Basic Validation
if (isNaN(price) || isNaN(downPercent) || isNaN(interestRate) || isNaN(monthlyRent)) {
alert("Please fill in all required fields (Price, Down Payment, Rate, Rent) to calculate.");
return;
}
// 2. Financing Calculations
var downPaymentAmount = price * (downPercent / 100);
var loanAmount = price – downPaymentAmount;
// Mortgage Payment Calculation (M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1 ])
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanYears * 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. Expense Calculations
var monthlyTax = annualTax / 12;
var monthlyInsurance = annualInsurance / 12;
var monthlyVacancyCost = monthlyRent * (vacancyPercent / 100);
var monthlyMaintenanceCost = monthlyRent * (maintenancePercent / 100);
// Operating Expenses (Excluding Mortgage)
var monthlyOperatingExpenses = monthlyTax + monthlyInsurance + monthlyHOA + monthlyVacancyCost + monthlyMaintenanceCost;
// Total Expenses (Including Mortgage)
var totalMonthlyExpenses = monthlyOperatingExpenses + monthlyMortgage;
// 4. Income & Return Calculations
var monthlyNOI = monthlyRent – monthlyOperatingExpenses; // Net Operating Income
var annualNOI = monthlyNOI * 12;
var monthlyCashFlow = monthlyRent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
var totalInitialInvestment = downPaymentAmount + closingCosts;
// Metrics
var capRate = (price > 0) ? (annualNOI / price) * 100 : 0;
var cashOnCash = (totalInitialInvestment > 0) ? (annualCashFlow / totalInitialInvestment) * 100 : 0;
// 5. Display Results
document.getElementById("res_total_investment").innerHTML = "$" + totalInitialInvestment.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("res_mortgage").innerHTML = "$" + monthlyMortgage.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("res_total_expenses").innerHTML = "$" + totalMonthlyExpenses.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("res_noi").innerHTML = "$" + monthlyNOI.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
var cfElement = document.getElementById("res_cash_flow");
cfElement.innerHTML = "$" + monthlyCashFlow.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
cfElement.className = monthlyCashFlow >= 0 ? "result-value result-highlight" : "result-value result-bad";
document.getElementById("res_cap_rate").innerHTML = capRate.toFixed(2) + "%";
var cocElement = document.getElementById("res_coc");
cocElement.innerHTML = cashOnCash.toFixed(2) + "%";
cocElement.className = cashOnCash >= 0 ? "result-value result-highlight" : "result-value result-bad";
// Show results container
document.getElementById("rp_results").style.display = "block";
}
Understanding Your Rental Property Analysis
Investing in real estate is one of the most reliable ways to build wealth, but simply buying a property doesn't guarantee profit. Successful investors rely on data, not gut feelings. This Rental Property Cash Flow & ROI Calculator is designed to help you run the numbers on potential deals to ensure they meet your financial goals.
Key Metrics Explained
1. Cash on Cash Return (CoC)
This is arguably the most important metric for rental investors. It measures the annual return on the actual cash you invested (down payment + closing costs), rather than the total price of the home.
Formula: (Annual Cash Flow / Total Cash Invested) × 100
Good Goal: Many investors target a CoC return of 8% to 12%. This beats the average stock market return while providing the safety of a tangible asset.
2. Net Operating Income (NOI)
NOI calculates the profitability of the property irrespective of financing. It is the income left over after paying all operating expenses (taxes, insurance, maintenance) but before paying the mortgage.
3. Cap Rate (Capitalization Rate)
Cap Rate helps you compare the profitability of similar properties in different areas. It represents the return on investment if you paid all cash.
Formula: (Annual NOI / Purchase Price) × 100
Usage: A higher Cap Rate generally implies a better return but may come with higher risk (e.g., a worse neighborhood).
4. Monthly Cash Flow
This is your "walk-away" money every month. It is the rent collected minus every single expense, including the mortgage. Positive cash flow is essential for long-term holding sustainability.
How to Estimate Expenses
One of the biggest mistakes new investors make is underestimating expenses. Use these rules of thumb when filling out the calculator:
Vacancy: Always assume the property will sit empty for a few weeks a year. 5% to 8% is a safe estimate.
Maintenance: Even if the house is new, things break. Set aside 5% to 10% of monthly rent for repairs.
Property Management: If you aren't managing it yourself, expect to pay 8% to 10% of the rent to a manager.
The 1% Rule
A quick screening tool used by investors is the 1% Rule. It states that the monthly rent should be at least 1% of the purchase price. For example, a $200,000 home should rent for at least $2,000. While hard to find in today's market, properties meeting this rule often produce strong cash flow.