Air quality in Hayes Valley under stay-at-home

Ben Zotto
4 min readApr 17, 2020

Usually a hub of freeway ramp traffic, data shows a central neighborhood now approaches San Francisco’s average.

So much of the outdoors has changed for the better since the gloom of pandemic arrived: quieter streets, more birds. The air quality in Hayes Valley has been so notcieably good since the city’s shelter-in-place order went into effect back in mid-March that I wanted to see how much better it really was.

Map showing approximate area of Hayes Valley neighborhood. Central Freeway on/off traffic patterns marked.

Hayes Valley is a central neighborhood, once the site of a huge double-decker freeway bypass and today a traffic sewer of cars backed up Oak and Octavia to get on the 101 and backed up on Octavia and Fell to get off it. Add high volume north/south transit on Laguna and Buchanan and it’s easy to see why tailpipe emissions accumulate here.

The coronavirus situation has created an incredible natural experiment opportunity. I used the hyper-local data available from Purple Air’s excellent citizen-contributed sensor map to create two sets of data streams: one representing the city overall through the average of many outdoor sensors from around the city; and another representing Hayes Valley through the average of several local sensors. (Disclaimer: I’m not a scientist or statistician, see methodology at the end if you want to know more.)

Here’s a moving average PM2.5 particulate concentration across the whole city translated into EPA-standard Air Quality Index (AQI), from June 1, 2019 through April 15, 2020:

Moving average AQI (5/1/2019 to 4/15/2020), across San Francisco overall. Lower is better.

It’s quite variable. The huge spike in the fall was smoke from the Kincade fire in Sonoma. But notice that in the last month or two, the wiggles have fallen closer to the baseline in a more consistent way than usual. There are confounding factors here (rain, for example) but it’s not crazy to see that dip, which we don’t see previously, as being related to the shelter-in-place.

Here’s the same graph but with the Hayes Valley sensor data overlaid onto it: