Real Estate Absorption Rate Calculator
The absorption rate in real estate indicates how quickly homes are selling in a given market over a specific period. It's a crucial metric for both buyers and sellers to understand market dynamics, pricing strategies, and potential investment opportunities. A higher absorption rate suggests a seller's market, while a lower rate indicates a buyer's market.
Your Absorption Rate Result:
Understanding the Absorption Rate
The absorption rate is calculated using a simple formula:
Absorption Rate = (Number of Homes Sold) / (Number of Active Listings)
While this gives you a monthly rate, it's often more practical to view it over a specific period, like six months or a year. To determine how many months of inventory are available, you can use the following:
Months of Inventory = (Number of Active Listings) / (Average Monthly Sales)
Where Average Monthly Sales = (Number of Homes Sold) / (Number of Months in Period)
Interpreting the Results:
- Absorption Rate > 1: This indicates that more homes are selling than new listings are coming on the market, suggesting a strong seller's market. Properties tend to sell faster, and prices may increase.
- Absorption Rate = 1: This is generally considered a balanced market where the supply and demand are relatively equal.
- Absorption Rate < 1: This suggests a buyer's market, where there are more homes for sale than buyers. Properties may take longer to sell, and prices might be stagnant or declining.
For example, if 150 homes sold in a 6-month period and there were 300 active listings at the end of that period, your absorption rate is 0.5 (150 homes sold / 300 listings = 0.5). This would mean that at the current pace, it would take 12 months to sell all the currently listed homes (300 listings / (150 homes sold / 6 months) = 300 / 25 = 12 months of inventory).
var calculateAbsorptionRate = function() {
var homesSoldInput = document.getElementById("homesSold");
var activeListingsInput = document.getElementById("activeListings");
var periodInMonthsInput = document.getElementById("periodInMonths");
var absorptionRateResultElement = document.getElementById("absorptionRateResult");
var marketAnalysisElement = document.getElementById("marketAnalysis");
var homesSold = parseFloat(homesSoldInput.value);
var activeListings = parseFloat(activeListingsInput.value);
var periodInMonths = parseFloat(periodInMonthsInput.value);
if (isNaN(homesSold) || isNaN(activeListings) || isNaN(periodInMonths) || homesSold < 0 || activeListings < 0 || periodInMonths 0) {
absorptionRate = averageMonthlySales / activeListings;
} else if (homesSold > 0) {
absorptionRate = Infinity; // If there are sales but no listings, it's an extremely fast market.
} else {
absorptionRate = 0; // No sales and no listings.
}
var monthsOfInventory = 0;
if (averageMonthlySales > 0) {
monthsOfInventory = activeListings / averageMonthlySales;
} else if (activeListings > 0) {
monthsOfInventory = Infinity; // Listings exist but no sales means infinite inventory time.
}
var resultString = "The absorption rate is approximately " + absorptionRate.toFixed(2) + " (meaning " + averageMonthlySales.toFixed(0) + " homes sold per month on average).";
resultString += "This indicates " + monthsOfInventory.toFixed(2) + " months of inventory.";
absorptionRateResultElement.innerHTML = resultString;
var analysis = "";
if (monthsOfInventory < 0) { // Should not happen with valid inputs, but as a safeguard
analysis = "Market analysis is not applicable with negative inventory.";
} else if (monthsOfInventory <= 3) {
analysis = "
Market Analysis: This indicates a strong seller's market. Homes are likely selling quickly, and prices may be rising.";
} else if (monthsOfInventory > 3 && monthsOfInventory <= 6) {
analysis = "
Market Analysis: This indicates a relatively balanced market. There's a healthy supply and demand.";
} else if (monthsOfInventory > 6) {
analysis = "
Market Analysis: This indicates a buyer's market. Homes may take longer to sell, and prices might be stabilizing or decreasing.";
} else { // Handles Infinity or NaN case where averageMonthlySales is 0 and activeListings > 0
analysis = "
Market Analysis: With current sales trends and active listings, it would take an infinite amount of time to sell all available properties, indicating a significant buyer's market or a stalled market.";
}
marketAnalysisElement.innerHTML = analysis;
};