The Capitalization Rate, or Cap Rate, is one of the most fundamental metrics used in commercial and residential real estate investing. It helps investors evaluate the profitability of an investment property independent of financing. Essentially, the Cap Rate represents the percentage return an investor would receive on an all-cash purchase.
How to Calculate Cap Rate
The formula for calculating Cap Rate is relatively straightforward but requires accurate inputs to be meaningful:
Cap Rate = (Net Operating Income / Current Market Value) × 100
Key Components of the Calculation
Net Operating Income (NOI): This is your annual revenue minus all necessary operating expenses. It includes rental income and other income (like parking fees) but excludes mortgage payments, capital expenditures, and depreciation.
Operating Expenses: These are costs required to run the property, such as property taxes, insurance, management fees, repairs, utilities, and landscaping.
Vacancy Rate: No property is occupied 100% of the time. A prudent investor always factors in a vacancy loss (typically 5-10%) to account for turnover periods.
Real-World Example
Let's say you are looking to buy a duplex for $300,000.
The property generates $3,000 per month in rent. After accounting for a 5% vacancy rate and annual expenses like taxes and insurance totaling $10,000, your calculation would look like this:
Gross Annual Income: $36,000 ($3,000 × 12)
Vacancy Loss: $1,800 (5% of $36,000)
Effective Gross Income: $34,200
Less Expenses: $10,000
Net Operating Income (NOI): $24,200
Cap Rate: ($24,200 / $300,000) = 8.06%
What is a Good Cap Rate?
A "good" Cap Rate is subjective and depends heavily on the location and asset class. In high-demand city centers (Tier 1 markets), a Cap Rate of 4-5% might be considered excellent due to low risk and high appreciation potential. In secondary markets or riskier neighborhoods, investors typically demand a higher Cap Rate (8-12%) to compensate for the increased risk.
function calculateCapRate() {
// 1. Get Input Values
var price = document.getElementById('propertyPrice').value;
var rent = document.getElementById('monthlyRent').value;
var expenses = document.getElementById('annualExpenses').value;
var vacancy = document.getElementById('vacancyRate').value;
// 2. Validate Inputs
if (price === "" || rent === "" || expenses === "") {
alert("Please fill in all required fields (Price, Rent, and Expenses).");
return;
}
// Convert strings to floats
var priceVal = parseFloat(price);
var rentVal = parseFloat(rent);
var expensesVal = parseFloat(expenses);
var vacancyVal = parseFloat(vacancy);
if (isNaN(vacancyVal)) {
vacancyVal = 0;
}
if (priceVal <= 0) {
alert("Property Price must be greater than zero.");
return;
}
// 3. Perform Calculations
// Annual Gross Rent
var annualGrossIncome = rentVal * 12;
// Calculate Vacancy Loss
var vacancyLoss = annualGrossIncome * (vacancyVal / 100);
// Effective Gross Income
var effectiveGrossIncome = annualGrossIncome – vacancyLoss;
// Net Operating Income (NOI)
var noi = effectiveGrossIncome – expensesVal;
// Cap Rate Calculation
var capRate = (noi / priceVal) * 100;
// 4. Update UI
// Helper function to format currency
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 0,
maximumFractionDigits: 0,
});
document.getElementById('resGrossIncome').innerHTML = formatter.format(annualGrossIncome);
document.getElementById('resVacancyLoss').innerHTML = "-" + formatter.format(vacancyLoss);
document.getElementById('resEffectiveIncome').innerHTML = formatter.format(effectiveGrossIncome);
document.getElementById('resNOI').innerHTML = formatter.format(noi);
// Format Cap Rate with 2 decimal places
document.getElementById('resCapRate').innerHTML = capRate.toFixed(2) + "%";
// Show the results div
document.getElementById('results').style.display = 'block';
}