Analyze your real estate investment deals instantly. Input your property details, financing terms, and expenses to calculate Cash Flow, Cap Rate, and Cash on Cash Return.
Purchase & Financing
Income
Expenses
Monthly Cash Flow
–
Cash on Cash Return
–
Cap Rate
–
Monthly Breakdown
Gross Rent:–
– Vacancy Loss:–
– Total Expenses:–
– Mortgage Payment:–
Net Monthly Profit:–
function calculateRental() {
// 1. Get Inputs
var price = parseFloat(document.getElementById('purchasePrice').value);
var downPercent = parseFloat(document.getElementById('downPayment').value);
var interest = parseFloat(document.getElementById('interestRate').value);
var termYears = parseFloat(document.getElementById('loanTerm').value);
var rent = parseFloat(document.getElementById('monthlyRent').value);
var vacancyRate = parseFloat(document.getElementById('vacancyRate').value);
var taxYearly = parseFloat(document.getElementById('propertyTax').value);
var insuranceYearly = parseFloat(document.getElementById('insurance').value);
var maintRate = parseFloat(document.getElementById('maintenance').value);
var mgmtRate = parseFloat(document.getElementById('management').value);
var capexRate = parseFloat(document.getElementById('capex').value);
// Validation
if (isNaN(price) || isNaN(rent) || isNaN(interest) || isNaN(downPercent)) {
alert("Please fill in all required fields with valid numbers.");
return;
}
// 2. Calculations
// Financing
var downAmount = price * (downPercent / 100);
var loanAmount = price – downAmount;
var monthlyInterest = interest / 100 / 12;
var totalPayments = termYears * 12;
// Mortgage P&I
var mortgagePayment = 0;
if (interest === 0) {
mortgagePayment = loanAmount / totalPayments;
} else {
mortgagePayment = loanAmount * (monthlyInterest * Math.pow(1 + monthlyInterest, totalPayments)) / (Math.pow(1 + monthlyInterest, totalPayments) – 1);
}
// Monthly Income & Vacancy
var vacancyAmount = rent * (vacancyRate / 100);
var effectiveGrossIncome = rent – vacancyAmount;
// Monthly Expenses
var taxMonthly = taxYearly / 12;
var insuranceMonthly = insuranceYearly / 12;
var maintAmount = rent * (maintRate / 100);
var mgmtAmount = rent * (mgmtRate / 100);
var capexAmount = rent * (capexRate / 100);
var totalOpExpenses = taxMonthly + insuranceMonthly + maintAmount + mgmtAmount + capexAmount;
// Metrics
var noi = effectiveGrossIncome – totalOpExpenses; // Net Operating Income (Monthly)
var cashFlow = noi – mortgagePayment;
var annualCashFlow = cashFlow * 12;
var annualNOI = noi * 12;
// Returns
var totalInvestment = downAmount; // Simplified (could add closing costs)
var coc = (annualCashFlow / totalInvestment) * 100;
var cap = (annualNOI / price) * 100;
// 3. Update UI
// Helper for formatting currency
var fmt = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });
document.getElementById('monthlyCashFlow').innerText = fmt.format(cashFlow);
document.getElementById('cocReturn').innerText = coc.toFixed(2) + "%";
document.getElementById('capRate').innerText = cap.toFixed(2) + "%";
// Color coding results
document.getElementById('monthlyCashFlow').className = 'result-value ' + (cashFlow >= 0 ? 'positive' : 'negative');
document.getElementById('cocReturn').className = 'result-value ' + (coc >= 0 ? 'positive' : 'negative');
// Breakdown values
document.getElementById('displayRent').innerText = fmt.format(rent);
document.getElementById('displayVacancy').innerText = fmt.format(vacancyAmount);
document.getElementById('displayExpenses').innerText = fmt.format(totalOpExpenses);
document.getElementById('displayMortgage').innerText = fmt.format(mortgagePayment);
document.getElementById('displayNetProfit').innerText = fmt.format(cashFlow);
// Show results container
document.getElementById('results').style.display = 'block';
}
Why Use a Rental Property Calculator?
Investing in real estate is a numbers game. Emotions should never dictate a purchase decision; the data should. This Rental Property Cash Flow Calculator helps investors accurately estimate the profitability of a potential rental property before signing a contract. By factoring in mortgage payments, operating expenses, and vacancy rates, you can determine if a property will generate positive cash flow or drain your bank account.
Pro Tip: Always overestimate your expenses and underestimate your income. If the deal still works with conservative numbers, it's likely a solid investment.
Understanding Key Investment Metrics
1. Monthly Cash Flow
Cash Flow is the net amount of money moving in or out of your business (the property) each month. It is calculated by taking your gross rent and subtracting all expenses, including the mortgage. Positive cash flow means the property pays for itself and generates profit. Negative cash flow means you are paying out of pocket to hold the property.
2. Cash on Cash Return (CoC)
This is arguably the most important metric for new investors. It measures the annual return on the actual cash you invested (down payment + closing costs + rehab costs). Unlike Cap Rate, CoC takes debt service into account.
Formula: (Annual Cash Flow / Total Cash Invested) × 100
Good Target: 8% to 12% is generally considered a good return in many markets, though this varies by strategy.
3. Cap Rate (Capitalization Rate)
Cap Rate measures the natural rate of return of the property assuming it was bought entirely with cash (no loan). It helps compare the profitability of different properties regardless of how they are financed.
Formula: (Net Operating Income / Purchase Price) × 100
Good Target: 4% to 10%, depending on the risk level and location of the asset.
What Expenses Should You Include?
Many beginners make the mistake of only calculating "Rent minus Mortgage." To get an accurate picture, you must include:
Vacancy: Properties won't be occupied 365 days a year. Budget 5-8% for turnover periods.
Maintenance: Things break. Set aside 5-10% of rent for repairs.
CapEx (Capital Expenditures): Big ticket items like roofs and HVAC systems will eventually need replacement.
Property Management: Even if you self-manage now, account for the 8-10% cost of a manager so your deal works if you decide to outsource later.