Calculate Cash Flow, Cap Rate, and Cash on Cash Return
Purchase Information
Loan Details
Income & Expenses
Please enter valid positive numbers for all fields.
Monthly Mortgage Payment (P&I):–
Total Cash Invested (Upfront):–
Monthly Cash Flow:–
Annual Cash Flow:–
Cap Rate:–
Cash on Cash ROI:–
Understanding Your Rental Property ROI
Investing in real estate is one of the most reliable ways to build wealth, but analyzing a deal correctly is crucial to your success. Our Rental Property ROI Calculator helps investors determine the profitability of a potential purchase by analyzing key metrics like Cash Flow, Cap Rate, and Cash on Cash Return.
Key Metrics Explained
Monthly Cash Flow: This is the net profit you pocket every month after all expenses and mortgage payments are made. Positive cash flow is essential for long-term sustainability.
Cap Rate (Capitalization Rate): This percentage represents the rate of return on a real estate investment property based on the income that the property is expected to generate, excluding mortgage financing. It helps compare properties regardless of how they are paid for.
Cash on Cash Return: Perhaps the most important metric for leveraged investors. It measures the annual pre-tax cash flow divided by the total cash invested (Down Payment + Closing Costs). It tells you exactly how hard your actual dollars are working for you.
How to Use This Calculator
To get accurate results, ensure you estimate your Annual Operating Expenses realistically. This should include Property Taxes, Landlord Insurance, HOA fees (if applicable), Maintenance reserves (typically 5-10% of rent), and Vacancy reserves (typically 5-8%).
If your Cash on Cash ROI is below 8-10%, you may want to re-evaluate the deal or negotiate a lower purchase price. A negative cash flow indicates the property is a liability rather than an asset in the short term.
function calculateRentalROI() {
// 1. Get Input Values
var price = parseFloat(document.getElementById("purchasePrice").value);
var downPayPercent = parseFloat(document.getElementById("downPaymentPercent").value);
var closingCosts = parseFloat(document.getElementById("closingCosts").value);
var interestRate = parseFloat(document.getElementById("interestRate").value);
var loanTerm = parseFloat(document.getElementById("loanTerm").value);
var monthlyRent = parseFloat(document.getElementById("monthlyRent").value);
var annualExpenses = parseFloat(document.getElementById("annualExpenses").value);
var errorMsg = document.getElementById("calcError");
var resultsDiv = document.getElementById("resultsArea");
// 2. Validation
if (isNaN(price) || isNaN(downPayPercent) || isNaN(interestRate) ||
isNaN(loanTerm) || isNaN(monthlyRent) || isNaN(annualExpenses) ||
price <= 0 || loanTerm = 0 ? "#27ae60" : "#c0392b";
var acfElement = document.getElementById("resAnnualCashFlow");
acfElement.innerHTML = fmtMoney.format(annualCashFlow);
acfElement.style.color = annualCashFlow >= 0 ? "#2c3e50" : "#c0392b";
document.getElementById("resCapRate").innerHTML = capRate.toFixed(2) + "%";
var cocElement = document.getElementById("resCashOnCash");
cocElement.innerHTML = cashOnCash.toFixed(2) + "%";
cocElement.style.color = cashOnCash >= 0 ? "#27ae60" : "#c0392b";
}