Analyze the profitability of your potential real estate investment.
Analysis Results
Loan Amount:$0.00
Monthly Mortgage Payment (P&I):$0.00
Total Monthly Costs:$0.00
Monthly Cash Flow:$0.00
Annual Cash Flow:$0.00
Cash on Cash ROI:0.00%
Understanding Rental Property ROI
Investing in real estate is a proven strategy for building wealth, but not every property is a "good deal." This Rental Property ROI Calculator helps investors analyze the financial viability of a potential rental unit by breaking down income, expenses, and debt service to reveal the true return on investment.
Key Metrics Explained
Cash Flow: This is the profit you pocket each month after paying the mortgage and all operating expenses. Positive cash flow is essential for a sustainable investment.
Cash on Cash ROI: This metric calculates the annual return you are earning on the actual cash you invested (primarily your down payment and closing costs). It is calculated as: (Annual Cash Flow / Total Cash Invested) × 100.
Operating Expenses: These include property taxes, homeowner's insurance, maintenance reserves, vacancy allowances, and property management fees. Underestimating these is the most common mistake new investors make.
How to Use This Calculator
To get an accurate assessment, gather the following data points:
Purchase Price: The agreed-upon sale price of the home.
Down Payment: The amount of cash you are putting upfront. Typically 20-25% for investment properties.
Loan Details: Your interest rate and loan term (usually 30 years).
Rental Income: Conservative estimate of monthly rent based on comparable properties in the area.
Monthly Expenses: Sum of taxes, insurance, HOA fees, and maintenance. A safe rule of thumb is to budget at least 15-20% of rent for maintenance and vacancy.
Why Cash on Cash Return Matters
Unlike the Cap Rate, which looks at the property's performance without considering the loan, Cash on Cash ROI tells you how hard your money is working. A return of 8-12% is generally considered solid for rental real estate, beating the historical average of the stock market while providing the added benefits of property appreciation and tax depreciation.
function calculateRentalROI() {
// 1. Get Input Values
var purchasePrice = parseFloat(document.getElementById('purchasePrice').value);
var downPayment = parseFloat(document.getElementById('downPayment').value);
var interestRate = parseFloat(document.getElementById('interestRate').value);
var loanTerm = parseFloat(document.getElementById('loanTerm').value);
var monthlyRent = parseFloat(document.getElementById('monthlyRent').value);
var monthlyExpenses = parseFloat(document.getElementById('monthlyExpenses').value);
// 2. Validate Inputs
if (isNaN(purchasePrice) || isNaN(downPayment) || isNaN(interestRate) ||
isNaN(loanTerm) || isNaN(monthlyRent) || isNaN(monthlyExpenses)) {
alert("Please enter valid numbers in all fields.");
return;
}
// 3. Perform Calculations
// Loan Amount
var loanAmount = purchasePrice – downPayment;
// Monthly Mortgage Payment Calculation (Principal + Interest)
// Formula: M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1 ]
// i = monthly interest rate, n = total number of payments
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
var mortgagePayment = 0;
if (monthlyRate > 0) {
mortgagePayment = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) /
(Math.pow(1 + monthlyRate, numberOfPayments) – 1);
} else {
mortgagePayment = loanAmount / numberOfPayments;
}
// Total Monthly Costs
var totalMonthlyCost = mortgagePayment + monthlyExpenses;
// Cash Flow
var monthlyCashFlow = monthlyRent – totalMonthlyCost;
var annualCashFlow = monthlyCashFlow * 12;
// Cash on Cash ROI
// ROI = (Annual Cash Flow / Total Cash Invested) * 100
// Assuming Total Cash Invested is effectively the Down Payment for this simple calc
var cashOnCashROI = 0;
if (downPayment > 0) {
cashOnCashROI = (annualCashFlow / downPayment) * 100;
}
// 4. Update UI with Results
// Helper for formatting currency
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
});
document.getElementById('displayLoanAmount').innerText = formatter.format(loanAmount);
document.getElementById('displayMortgage').innerText = formatter.format(mortgagePayment);
document.getElementById('displayTotalCost').innerText = formatter.format(totalMonthlyCost);
// Handle styling for positive/negative cash flow
var cashFlowEl = document.getElementById('displayCashFlow');
cashFlowEl.innerText = formatter.format(monthlyCashFlow);
if (monthlyCashFlow >= 0) {
cashFlowEl.style.color = "#27ae60"; // Green
} else {
cashFlowEl.style.color = "#c0392b"; // Red
}
document.getElementById('displayAnnualCashFlow').innerText = formatter.format(annualCashFlow);
var roiEl = document.getElementById('displayROI');
roiEl.innerText = cashOnCashROI.toFixed(2) + "%";
if (cashOnCashROI >= 0) {
roiEl.style.color = "#27ae60";
} else {
roiEl.style.color = "#c0392b";
}
// Show the results section
document.getElementById('results').style.display = 'block';
}