Dai's Blog

San Diego Housing

Since we are moving to San Diego in July, figured would play around with Zillow data to check out the market in our zip code.

Some metrics that I pulled:

Inventory Seasonally Adjusted: I pulled inventory both for greater SD and our zip code. Both show the story of rapidly shrinking inventory.

In [105]:
fig, ax1 = plt.subplots()

ax2 = ax1.twinx()

ax1.plot(inventory, 'g')
ax2.plot(sdinventory, 'b')

ax1.set_xlabel('Year')
ax1.set_ylabel('92130 Inventory', color='g')
ax2.set_ylabel('SD Inventory', color='b')

plt.show()

Prices: Small available inventory leads to rising prices. I pulled the Zillow 5BR Home Price Index and looked at the median sales and listing prices on a PSF basis.

In [166]:
ZillowHVI5BR = q.get('ZILLOW/Z92130_ZHVI5B')
In [167]:
plt.plot(ZillowHVI5BR)
plt.show()
In [66]:
psf = q.get('ZILLOW/Z92130_MSPFAH')
medianlistingpsf4br = q.get('ZILLOW/Z92130_MLPF4B')
medianlistingpsf5br = q.get('ZILLOW/Z92130_MLPF5B')
In [141]:
plt.plot(psf, 'r') # Median Sale Price PSF (All Homes) 
plt.plot(medianlistingpsf4br, 'b') # Median List Price PSF (4BR) 
plt.plot(medianlistingpsf5br, 'g') # Median List Price PSF (5BR)
plt.show()

Rental Yield: Zillow has a price to rent Index (Home value divided by 12 times its estimated monthly rent price.) We plot the inverse of this to look at the rental yield (or cap rate in RE lingo).

In [142]:
pricetorent = q.get('ZILLOW/Z92130_PRRAH')
caprate = 1/pricetorent
In [148]:
plt.plot(caprate)
plt.show()

❦
Tagged: housing