Please check your inputs. Values must be positive.
Performance Metrics
Total Cash Needed
Monthly Mortgage Payment
Monthly Cash Flow
Net Operating Income (Annual)
Cap Rate
Cash on Cash Return (ROI)
function calculateROI() {
// 1. Get Values
var price = parseFloat(document.getElementById("purchasePrice").value);
var downPercent = parseFloat(document.getElementById("downPayment").value);
var rate = parseFloat(document.getElementById("interestRate").value);
var term = parseFloat(document.getElementById("loanTerm").value);
var closing = parseFloat(document.getElementById("closingCosts").value);
var repairs = parseFloat(document.getElementById("repairCosts").value);
var rent = parseFloat(document.getElementById("monthlyRent").value);
var expenses = parseFloat(document.getElementById("monthlyExpenses").value);
// 2. Validation
if (isNaN(price) || isNaN(downPercent) || isNaN(rate) || isNaN(term) ||
isNaN(closing) || isNaN(repairs) || isNaN(rent) || isNaN(expenses)) {
document.getElementById("errorMsg").style.display = "block";
document.getElementById("results").style.display = "none";
return;
}
document.getElementById("errorMsg").style.display = "none";
// 3. Calculation Logic
// Loan Calculations
var downAmount = price * (downPercent / 100);
var loanAmount = price – downAmount;
// Monthly Mortgage (Principal + Interest)
// Formula: M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1 ]
var monthlyRate = (rate / 100) / 12;
var numPayments = term * 12;
var mortgagePayment = 0;
if (rate === 0) {
mortgagePayment = loanAmount / numPayments;
} else {
mortgagePayment = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numPayments)) / (Math.pow(1 + monthlyRate, numPayments) – 1);
}
// Cash Requirements
var totalCashInvested = downAmount + closing + repairs;
// Income & Expenses
var totalMonthlyExpenses = mortgagePayment + expenses;
var monthlyCashFlow = rent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// Net Operating Income (NOI) = (Annual Rent – Annual Operating Expenses NOT including mortgage)
var annualOperatingExpenses = expenses * 12;
var annualGrossIncome = rent * 12;
var noi = annualGrossIncome – annualOperatingExpenses;
// Returns
var capRate = (noi / price) * 100;
var cashOnCash = (annualCashFlow / totalCashInvested) * 100;
// 4. Display Results
// Helper for formatting currency
var fmtMoney = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });
var fmtPct = new Intl.NumberFormat('en-US', { style: 'percent', minimumFractionDigits: 2, maximumFractionDigits: 2 });
document.getElementById("resTotalCash").innerText = fmtMoney.format(totalCashInvested);
document.getElementById("resMortgage").innerText = fmtMoney.format(mortgagePayment);
document.getElementById("resCashFlow").innerText = fmtMoney.format(monthlyCashFlow);
document.getElementById("resNOI").innerText = fmtMoney.format(noi);
document.getElementById("resCapRate").innerText = capRate.toFixed(2) + "%";
document.getElementById("resCOC").innerText = cashOnCash.toFixed(2) + "%";
// Show result box
document.getElementById("results").style.display = "block";
}
Understanding Rental Property ROI
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. To succeed, investors need to rigorously analyze the numbers before signing a contract. This Rental Property ROI Calculator helps you evaluate the potential profitability of an investment by focusing on two critical metrics: Cash Flow and Cash on Cash Return.
What is Cash on Cash Return?
Cash on Cash Return (CoC) is widely considered the most important metric for rental property investors. Unlike a standard Return on Investment (ROI) calculation which might look at the total value of the asset, CoC specifically measures the annual return you make on the actual cash you invested.
The formula is:
Cash on Cash Return = (Annual Pre-Tax Cash Flow / Total Cash Invested) × 100
For example, if you invest $50,000 in down payments and closing costs, and the property generates $4,000 in net profit per year, your Cash on Cash return is 8%. This allows you to compare real estate performance directly against other investments like stocks or bonds.
Understanding Cap Rate vs. Cash Flow
While Cash on Cash return tells you how hard your money is working, the Cap Rate (Capitalization Rate) measures the property's natural profitability regardless of financing. It is calculated by dividing the Net Operating Income (NOI) by the property's purchase price.
NOI (Net Operating Income): Total income minus operating expenses (excluding mortgage payments).
Cash Flow: Total income minus all expenses (including mortgage payments).
A high Cap Rate usually indicates a better deal, but it does not account for the leverage of a mortgage. A property might have a modest Cap Rate but a fantastic Cash on Cash return if the financing terms are favorable.
Key Inputs for Accurate Calculation
To get the most out of this calculator, ensure your inputs are realistic:
Purchase Price: The agreed-upon price of the property.
Down Payment: Typically 20-25% for investment properties to avoid private mortgage insurance (PMI).
Monthly Expenses: Do not underestimate these. Include property taxes, landlord insurance, HOA fees, potential vacancy rates (usually 5-10%), and maintenance reserves (usually 10% of rent).
Closing & Repair Costs: These are the "sunk costs" required to get the property operational. They significantly increase your "Total Cash Invested" denominator, temporarily lowering your ROI in the first year.
What is a "Good" ROI for Rental Property?
While targets vary by investor and market strategy, many seasoned investors look for a Cash on Cash return of 8% to 12%. However in high-appreciation markets, investors might accept a lower cash flow return (e.g., 4-6%) banking on the long-term increase in property value. Conversely, in stable markets with little appreciation, investors often demand higher immediate cash flow (10%+).