The absorption rate is a key metric in real estate that indicates how quickly homes are selling in a particular market during a specific period. It's calculated by dividing the number of homes sold by the number of homes available for sale over a given timeframe. This rate helps buyers and sellers gauge market conditions, predict trends, and make informed decisions.
What Does Absorption Rate Tell You?
High Absorption Rate (Market Seller's Market): Indicates strong demand relative to supply. Homes are selling quickly, and prices may be rising.
Low Absorption Rate (Market Buyer's Market): Suggests weak demand relative to supply. Homes are taking longer to sell, and prices may be falling or stagnant.
Balanced Market: A moderate absorption rate suggests a healthy equilibrium between buyers and sellers.
How to Calculate Absorption Rate
The formula is straightforward:
Absorption Rate = (Number of Homes Sold) / (Number of Homes Available for Sale)
The result is typically expressed as a percentage or as months of inventory. For example, an absorption rate of 10% means 10% of the available homes were sold that month. Alternatively, if 20 homes sold in a month and 50 were available, it would take 2.5 months to sell all available inventory at that rate (50 homes / 20 homes sold = 2.5 months).
Calculate Your Market's Absorption Rate
function calculateAbsorptionRate() {
var homesSoldInput = document.getElementById("homesSold");
var homesAvailableInput = document.getElementById("homesAvailable");
var resultDiv = document.getElementById("result");
var homesSold = parseFloat(homesSoldInput.value);
var homesAvailable = parseFloat(homesAvailableInput.value);
if (isNaN(homesSold) || isNaN(homesAvailable) || homesSold < 0 || homesAvailable < 0) {
resultDiv.innerHTML = "Please enter valid non-negative numbers for both fields.";
return;
}
if (homesAvailable === 0) {
resultDiv.innerHTML = "Cannot calculate absorption rate when no homes are available for sale.";
return;
}
var absorptionRate = (homesSold / homesAvailable) * 100;
var monthsOfInventory = homesAvailable / homesSold;
var formattedAbsorptionRate = absorptionRate.toFixed(2);
var formattedMonthsOfInventory = (homesSold === 0) ? "Infinite" : monthsOfInventory.toFixed(2);
resultDiv.innerHTML = "
Results:
" +
"Absorption Rate: " + formattedAbsorptionRate + "% of available homes sold in the period." +
"Months of Inventory: " + formattedMonthsOfInventory + " months (at the current sales pace).";
if (absorptionRate > 20) {
resultDiv.innerHTML += "This indicates a strong seller's market where demand is high relative to supply.";
} else if (absorptionRate < 10) {
resultDiv.innerHTML += "This indicates a buyer's market where supply is high relative to demand.";
} else {
resultDiv.innerHTML += "This suggests a balanced market.";
}
}
.calculator-container {
border: 1px solid #ccc;
padding: 20px;
margin-top: 20px;
background-color: #f9f9f9;
border-radius: 8px;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
.form-group input[type="number"] {
width: calc(100% – 22px);
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
button {
background-color: #4CAF50;
color: white;
padding: 10px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
}
button:hover {
background-color: #45a049;
}
.result-container {
margin-top: 20px;
padding: 15px;
border: 1px solid #d4edda;
background-color: #d4edda;
color: #155724;
border-radius: 4px;
}
.result-container h3 {
margin-top: 0;
}