Vacancy rate is one of the most misunderstood metrics in rental property analysis. Most investors plug in a flat 5% and move on. Here is why that is wrong — and how to calculate it correctly.
The Formula
Vacancy Rate = (Vacant Units × Time Vacant) / (Total Units × Total Time) × 100
For a single-family rental:
Vacancy Rate = Weeks Vacant / 52 × 100
If your property sits empty for 4 weeks between tenants:
4 / 52 × 100 = 7.7% vacancy rate
Not 5%. Not "about 5%." It is 7.7% — and that changes your cash flow projection.
Why Flat 5% Is Wrong
The "use 5%" advice assumes:
- 2.6 weeks of vacancy per year
- Tenant stays 2+ years
- You re-rent within 2 weeks of move-out
- No seasonal slowdown
In reality, vacancy varies dramatically by market:
| Market | Vacancy Rate | Annual Loss ($1,400/mo rent) |
|---|---|---|
| Cleveland (44118) | 4.2% | $705 |
| Indianapolis | 5.8% | $974 |
| Memphis | 7.1% | $1,193 |
| Atlanta | 6.3% | $1,058 |
| Houston | 8.9% | $1,495 |
The Real Cost Formula
Vacancy is not just lost rent. Every turnover has hard costs:
def true_vacancy_cost(monthly_rent, vacancy_rate, turnovers_per_year):
lost_rent = monthly_rent * 12 * (vacancy_rate / 100)
turnover_cost = turnovers_per_year * 1000 # cleaning, repairs, listing
return lost_rent + turnover_cost
# Example: $1,400/mo, 7% vacancy, 0.5 turnovers/year
cost = true_vacancy_cost(1400, 7, 0.5)
print(f"True vacancy cost: ${cost:,.0f}/year")
# True vacancy cost: $1,676/year
That is $140/month — not the $58/month you get from a flat 5%.
Where to Get Real Vacancy Data
- Census ACS — ZIP-level vacancy rates updated annually
- Local property manager — ask for their portfolio vacancy rate
- Zillow/Apartments.com — count listings vs total units in a ZIP
- Your own records — track actual days vacant per property per year
Stress Testing
Never underwrite at the base rate. Stress test at 1.5x to see if the deal survives:
Base vacancy: 6% -> Cash flow: $187/month
Stress test (9%): -> Cash flow: $117/month
Stress test (12%): -> Cash flow: $47/month
If the deal breaks at 1.5x, the margin is too thin.
Bottom Line
Stop using a flat 5% vacancy. Get the real number for your ZIP code, add a turnover buffer, and stress test at 1.5x. The 3-5 minutes this takes can save you thousands in unexpected vacancy losses.
Top comments (0)