Is Your Rental Property a Good Investment?
Analyzing a potential real estate deal comes down to the numbers. While appreciation is a nice bonus, seasoned investors focus primarily on Cash Flow—the net profit you pocket every month after all expenses are paid. A property with positive cash flow pays for itself and provides passive income, while negative cash flow creates a liability that drains your bank account.
This Rental Property Cash Flow Calculator goes beyond simple mortgage estimates. It factors in the crucial "hidden" costs of being a landlord, including vacancy rates, annual maintenance reserves, property taxes, and insurance. By accounting for these variables, you can calculate your true Cash-on-Cash Return (CoC) and Cap Rate to determine if a property meets your investment goals.
Key Investment Metrics Explained
- Net Operating Income (NOI): The total income the property generates minus all operating expenses (excluding mortgage payments). This measures the property's raw profitability.
- Cash Flow: Your actual take-home profit after paying the mortgage (principal & interest) and all operating expenses.
- Cash-on-Cash Return: A percentage measuring the return on the actual cash you invested (down payment + closing costs), not the total loan amount.
- Cap Rate: The rate of return on the property based on its income relative to its price, assuming you bought it in cash. It helps compare properties regardless of financing.
.rp-calc-wrapper {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
max-width: 800px;
margin: 0 auto;
padding: 20px;
color: #333;
line-height: 1.6;
}
.rp-calculator-box {
background-color: #f9f9f9;
border: 1px solid #e0e0e0;
border-radius: 8px;
padding: 30px;
margin-top: 30px;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}
.rp-form-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
@media (max-width: 600px) {
.rp-form-grid {
grid-template-columns: 1fr;
}
}
.rp-input-group {
margin-bottom: 15px;
}
.rp-input-group label {
display: block;
font-weight: 600;
margin-bottom: 5px;
font-size: 0.9em;
color: #555;
}
.rp-input-group input, .rp-input-group select {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
.rp-input-group input:focus {
border-color: #2c7be5;
outline: none;
box-shadow: 0 0 0 2px rgba(44, 123, 229, 0.2);
}
.rp-section-title {
grid-column: 1 / -1;
font-size: 1.1em;
color: #2c7be5;
border-bottom: 2px solid #2c7be5;
padding-bottom: 5px;
margin-bottom: 15px;
margin-top: 10px;
}
.rp-btn-container {
grid-column: 1 / -1;
text-align: center;
margin-top: 20px;
}
button#rp-calculate-btn {
background-color: #2c7be5;
color: white;
border: none;
padding: 12px 30px;
font-size: 18px;
font-weight: bold;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.2s;
}
button#rp-calculate-btn:hover {
background-color: #1a68d1;
}
#rp-results {
display: none;
grid-column: 1 / -1;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 6px;
padding: 20px;
margin-top: 25px;
}
.rp-result-row {
display: flex;
justify-content: space-between;
padding: 10px 0;
border-bottom: 1px solid #eee;
}
.rp-result-row:last-child {
border-bottom: none;
}
.rp-result-label {
font-weight: 500;
}
.rp-result-value {
font-weight: 700;
}
.rp-highlight {
color: #2c7be5;
font-size: 1.1em;
}
.rp-highlight-green {
color: #28a745;
font-size: 1.2em;
}
.rp-highlight-red {
color: #dc3545;
font-size: 1.2em;
}
.rp-disclaimer {
font-size: 0.8em;
color: #888;
margin-top: 20px;
text-align: center;
}
Calculations are estimates for educational purposes only. Actual costs and rates may vary.
function calculateRentalCashFlow() {
// Get inputs
var price = parseFloat(document.getElementById('rp_price').value);
var downPercent = parseFloat(document.getElementById('rp_down_percent').value);
var interestRate = parseFloat(document.getElementById('rp_interest_rate').value);
var termYears = parseInt(document.getElementById('rp_loan_term').value);
var closingCosts = parseFloat(document.getElementById('rp_closing_costs').value);
var monthlyRent = parseFloat(document.getElementById('rp_rent').value);
var annualTax = parseFloat(document.getElementById('rp_property_tax').value);
var annualIns = parseFloat(document.getElementById('rp_insurance').value);
var monthlyHoa = parseFloat(document.getElementById('rp_hoa').value);
var vacancyPercent = parseFloat(document.getElementById('rp_vacancy').value);
// Validation defaults
if (isNaN(price)) price = 0;
if (isNaN(downPercent)) downPercent = 0;
if (isNaN(interestRate)) interestRate = 0;
if (isNaN(closingCosts)) closingCosts = 0;
if (isNaN(monthlyRent)) monthlyRent = 0;
if (isNaN(annualTax)) annualTax = 0;
if (isNaN(annualIns)) annualIns = 0;
if (isNaN(monthlyHoa)) monthlyHoa = 0;
if (isNaN(vacancyPercent)) vacancyPercent = 0;
if (price === 0 || monthlyRent === 0) {
alert("Please enter at least the Purchase Price and Monthly Rent to calculate.");
return;
}
// Calculations
var downPaymentAmount = price * (downPercent / 100);
var loanAmount = price – downPaymentAmount;
// Mortgage Calculation (M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1])
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = termYears * 12;
var monthlyMortgage = 0;
if (interestRate > 0) {
monthlyMortgage = loanAmount * (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments)) / (Math.pow(1 + monthlyRate, numberOfPayments) – 1);
} else {
monthlyMortgage = loanAmount / numberOfPayments;
}
// Operating Expenses
var monthlyTax = annualTax / 12;
var monthlyIns = annualIns / 12;
var monthlyVacancyRepairs = monthlyRent * (vacancyPercent / 100);
var totalOperatingExpenses = monthlyTax + monthlyIns + monthlyHoa + monthlyVacancyRepairs;
// Total Monthly Outflow (Mortgage + Op Ex)
var totalMonthlyExpenses = monthlyMortgage + totalOperatingExpenses;
// Cash Flow
var monthlyCashFlow = monthlyRent – totalMonthlyExpenses;
var annualCashFlow = monthlyCashFlow * 12;
// Net Operating Income (NOI) = Income – Operating Expenses (Excluding Mortgage)
var annualNOI = (monthlyRent * 12) – (totalOperatingExpenses * 12);
// Cap Rate = NOI / Price
var capRate = (annualNOI / price) * 100;
// Cash on Cash Return = Annual Cash Flow / Total Cash Invested
var totalCashInvested = downPaymentAmount + closingCosts;
var cashOnCash = 0;
if (totalCashInvested > 0) {
cashOnCash = (annualCashFlow / totalCashInvested) * 100;
}
// Display Results
document.getElementById('res_mortgage').innerHTML = "$" + monthlyMortgage.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res_expenses').innerHTML = "$" + totalMonthlyExpenses.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
var cashFlowEl = document.getElementById('res_cashflow');
cashFlowEl.innerHTML = "$" + monthlyCashFlow.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
// Styling positive/negative cash flow
if (monthlyCashFlow >= 0) {
cashFlowEl.className = "rp-result-value rp-highlight-green";
} else {
cashFlowEl.className = "rp-result-value rp-highlight-red";
}
document.getElementById('res_noi').innerHTML = "$" + annualNOI.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res_caprate').innerHTML = capRate.toFixed(2) + "%";
document.getElementById('res_coc').innerHTML = cashOnCash.toFixed(2) + "%";
// Show results div
document.getElementById('rp-results').style.display = "block";
}
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "What is a good Cash on Cash return for rental property?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Many real estate investors target a Cash on Cash (CoC) return between 8% and 12%. However, this varies by market. Some investors accept lower returns (4-6%) in high-appreciation areas, while others demand 15%+ in riskier or lower-cost markets."
}
}, {
"@type": "Question",
"name": "How is Cap Rate different from Cash on Cash return?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Cap Rate measures the property's natural rate of return assuming it was bought with all cash. It is useful for comparing the profitability of different properties. Cash on Cash return measures the return on the specific amount of money you invested (down payment), factoring in your mortgage leverage."
}
}, {
"@type": "Question",
"name": "What expenses should I include in the calculator?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Beyond the mortgage, always include property taxes, landlord insurance, HOA fees, and a percentage for vacancy and repairs (typically 5-10% of rent). Forgetting these expenses often leads to negative cash flow surprises."
}
}]
}