data = aq.fromCSV(
await (await fetch(`https://api.covidactnow.org/v2/states.timeseries.csv?apiKey=${API_KEY}`)).text()
)
.join(statesSummary.select(['state', 'population']), ['state', 'state'])
.groupby('state')
.derive({
casesPer100k: aq.rolling(d => op.average(d['actuals.newCases']) * 100000 / d['population'], [-6, 0]),
deathsPer5m: aq.rolling(d => op.average(d['actuals.newDeaths']) * 5000000 / d['population'], [-6, 0]),
hospitalizationsPer250k: d => d['actuals.hospitalBeds.currentUsageCovid'] * 250000 / d['population'],
laggedDate: aq.escape(d => d3.timeDay.offset(d.date, -lagDays)),
vaccineRatio: d => op.fill_down(d['metrics.vaccinationsInitiatedRatio'], 0),
vaccineRatio2: d=> op.fill_down(d['metrics.vaccinationsCompletedRatio'], 0),
})
.ungroup()