TLDR
Background
In this report we take cursory look at slot-level COVID appointment availability data as gathered by USDR’s UNIVAF project. The main question we’re looking at is whether this kind of data can be used to identify issues in vaccine access by different demographics. Another question is whether this can help us understand the role of barriers to access, as opposed to more ideological barriers, can help us understand trailing vaccination rates.
Stats:
valid_at
range is from 2021-05-19 15:46:00 to 2021-07-01 19:55:00.slot_time
range is from 2021-05-19 16:30:00 to 2021-06-30 21:45:00.Provider breakdown:
##
## walgreens walmart
## 110234 51722
Roughly, what share of vaccinations can be traced to “bookings” in our appointment availability data? This is a very coarse estimate that smooths over a lot of uncertainties like: when do shots get counted? what about doses? can appointments get overbooked? do they get canceled? Keeping these uncertainties in mind, here is the distribution of the coverage rate by county, as compared to the national distribution:
Here are the number of slots per day (weekend days highlighted), whether they were “booked”, and how long they were available for:
Total number of slots that were ever available, unwrapped by dates. Mondays are highlighted:
Aggregate stats per provider:
Provider | Number of Slots | Avg. hours available | Relative weekend slots |
---|---|---|---|
walgreens | 110234 | 107.6 | 0.66 |
walmart | 51722 | 2.7 | 0.66 |
Average number of hours that slots are available for. More is better as it gives the person more time to book an appointment.
Averaged by hour of day and day of week:
Here are the aggregate statistics for slots at different times. Morning is before 9am, evening is after 5pm.
## # A tibble: 4 x 5
## type n p_booked range last_time_ahead
## <fct> <int> <dbl> <dbl> <dbl>
## 1 workday 8999396 0.593 98.7 9.06
## 2 morning 368560 0.687 67.8 8.94
## 3 evening 2248340 0.312 57.6 5.84
## 4 weekend 2794851 0.475 55.1 7.64
In PA, we see;
We can compare appointment availability by the demographics of the area that the distribution location is in. The most granular level is the zip-code. Of course, people can travel to locations outside of their zip-code, and so a better analysis would, for every zip code, take an average of the nearby locations weighted by their distance.
We do univariate correlations between vulnerability indices like SVI and availability statistics. In this plot, the points represent individual zip-codes in PA. The red line is a linear fit of the relationship between the vulnerability statistic and the availbility statistic. The blue line represents that same relationship for all zipcodes in the US.
For most indices, we see a negative correlation between vulnerability and availability (household SVI excluded), and the trend for PA is a bit worse than the national average.
Note: because we don’t have vaccination data on the zip-code level, we can’t (unlike below for counties) adjust slots/person by coverage, nor can we plot the SVI statistics against vaccination rates on a zip-code level.
How does appointment availability relate to vaccinations? Unfortunately we don’t have vaccination data on the zip-code level, so we’ll do this analysis on a county level. Vaccination counts by county by day are pulled from CovicActNow.org. The outcome we look at is the difference in vaccination rate over the six weeks that we’re looking at. We run a simple linear regression with counties as units. First just the availability statistics, and then taking into account other drivers like hesitancy (taken from this CDC survey and prior vaccination rate).
##
## =====================================================
## Dependent variable:
## -----------------------------
## n_vax/population
## (1) (2) (3)
## -----------------------------------------------------
## Slots/Person (week) 0.592*** 0.580***
## (0.081) (0.085)
## Slots/Person (weekend) 0.013 -0.147
## (0.351) (0.329)
## Average range (hrs) -0.00002 -0.0001*
## (0.00004) (0.00003)
## Share Black 0.001 0.003
## (0.042) (0.026)
## Trump vote share -0.053* -0.034*
## (0.028) (0.018)
## % hesitant (CDC survey) -0.315** 0.134
## (0.130) (0.097)
## Prior vax rate 0.0004 0.0001
## (0.0003) (0.0002)
## Intercept 0.020*** 0.126*** 0.017
## (0.003) (0.033) (0.024)
## -----------------------------------------------------
## Observations 58 58 58
## Adjusted R2 0.834 0.649 0.865
## =====================================================
## Note: *p<0.1; **p<0.05; ***p<0.01