Include taxes, insurance, maintenance, and management fees.
Please enter valid positive numbers for all fields.
Gross Income:
Effective Gross Income (adjusted for vacancy):
Total Expenses:
Net Operating Income (NOI):
Capitalization Rate:
What is Capitalization Rate (Cap Rate)?
The Capitalization Rate, or Cap Rate, is one of the most fundamental metrics used in real estate investing to evaluate the profitability and return potential of an investment property. It represents the ratio between the Net Operating Income (NOI) produced by the asset and its current market value or purchase price.
Unlike other metrics that might factor in mortgage financing (like Cash-on-Cash Return), Cap Rate strictly measures the natural rate of return of the property as if it were purchased entirely with cash. This makes it an excellent tool for comparing the relative value of different properties regardless of how they are financed.
How to Calculate Cap Rate
The formula for calculating Cap Rate is relatively straightforward, but accuracy depends on using precise input data. The formula is:
Cap Rate = (Net Operating Income / Property Value) × 100
To use this formula efficiently, you must first calculate the Net Operating Income (NOI):
Determine Gross Income: Sum all potential rental income for the year.
Subtract Vacancy Losses: Account for periods where the unit sits empty (typically 5-10%).
Subtract Operating Expenses: Deduct costs such as property taxes, insurance, maintenance, property management fees, and utilities. Do not include mortgage payments or capital expenditures in this specific calculation.
Example Calculation
Let's say you are looking to purchase a duplex for $500,000. The property generates $60,000 in gross annual rent.
Next, divide by the purchase price: $40,000 / $500,000 = 0.08.
Finally, multiply by 100 to get the percentage: The Cap Rate is 8.0%.
What is a "Good" Cap Rate?
A "good" Cap Rate is subjective and depends heavily on the location, property class, and current interest rates. Generally, a higher Cap Rate implies a higher return but often comes with higher risk (e.g., a property in a declining neighborhood). Conversely, a lower Cap Rate suggests a safer asset with lower returns (e.g., a Class A building in a prime city center).
Historically, investors often target Cap Rates between 4% and 10%. However, in high-demand markets, Cap Rates may compress to 3-4%, while in rural or high-risk areas, they might exceed 10%. Use our calculator above to quickly analyze deals and ensure they meet your specific investment criteria.
function calculateCapRate() {
// Get input values using var
var priceInput = document.getElementById('propertyPrice');
var incomeInput = document.getElementById('grossRentalIncome');
var expenseInput = document.getElementById('operatingExpenses');
var vacancyInput = document.getElementById('vacancyRate');
var errorDiv = document.getElementById('errorDisplay');
var resultDiv = document.getElementById('resultsDisplay');
// Parse values
var price = parseFloat(priceInput.value);
var income = parseFloat(incomeInput.value);
var expense = parseFloat(expenseInput.value);
var vacancyPercent = parseFloat(vacancyInput.value);
// Validation
if (isNaN(price) || isNaN(income) || isNaN(expense) || isNaN(vacancyPercent) || price <= 0) {
errorDiv.style.display = 'block';
resultDiv.style.display = 'none';
return;
}
// Reset error
errorDiv.style.display = 'none';
// Calculation Logic
// 1. Calculate Vacancy Loss
var vacancyAmount = income * (vacancyPercent / 100);
// 2. Calculate Effective Gross Income
var effectiveIncome = income – vacancyAmount;
// 3. Calculate Net Operating Income (NOI)
var noi = effectiveIncome – expense;
// 4. Calculate Cap Rate
var capRate = (noi / price) * 100;
// Display Results
// Helper function for currency formatting
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 0
});
document.getElementById('resGross').innerHTML = formatter.format(income);
document.getElementById('resEffective').innerHTML = formatter.format(effectiveIncome);
document.getElementById('resExpenses').innerHTML = formatter.format(expense);
document.getElementById('resNOI').innerHTML = formatter.format(noi);
// Color code the Cap Rate
var capRateElement = document.getElementById('resCapRate');
capRateElement.innerHTML = capRate.toFixed(2) + '%';
if(capRate = 4 && capRate < 8) {
capRateElement.style.color = '#f39c12'; // Orange for average
} else {
capRateElement.style.color = '#27ae60'; // Green for high return
}
resultDiv.style.display = 'block';
}