covid-policy-modelling / web-ui

Frontend for COVID modeling
MIT License
0 stars 2 forks source link

Add additional metrics to external schema #32

Open steven-cd opened 2 years ago

steven-cd commented 2 years ago

With covid-policy-modelling/covid-policy-modelling#56, we released a first draft of an export. There are a number of metrics that we omitted however, that we should now investigate adding:

Value Description Possible Calculation
prevalence % of the population who would test positive for COVID-19 (Nowcast) Mild + ILI + SARI + Critical + CritRecov / population (which we'd have to lookup)?
prevalence_mtp % of the population who would test positive for COVID-19 (MTP) Uncertain of difference to prevalance
weekly_cases_per_100k Number of weekly cases per 100,000 people incMild + incILI + incSARI + incCritical + incCritRecov for the last week * 100000 / population?
community_prev Number of current infections in the community Is this Mild + ILI + SARI + Critical + CritRecov, although unsure if there is some meaning to "community", e.g. may be just Mild + ILI?
type28_death_inc_line New daily deaths by date of death within 28 days of first positive specimen date (Forecast) This is deaths after a positive test, whereas most of the models just do deaths, so not sure we'll be able to support this
num_positive_tests The number of positive tests This should take into account the fact that not all cases are tested, so again not sure if models produce this number
incidence Daily incidence estimate incMild + incILI + incSARI + incCritical + incCritRecov, although it's not clear from the description if this should then be given as a proportion, e.g. of population
mean_generation_time Mean of the generation interval Would need to be added to output schema, e.g. WSS assumes it's 5
var_generation_time Variance of the generation time Might need to be added to output schema, e.g. WSS assumes generation time is constant
kappa Variance of the generation time Same as var_generation_time?
growth_rate Daily rate of exponential growth Might need to be added to output schema, e.g. WSS assumes it's exp[(R-1)/mean_generation_time], but that might not be universal
doubling_time Number of days between doubling Might need to be added to output schema, e.g. WSS assumes it's log2 * genTime / (R-1), but that might not be universal

I do not think we need to support all the values. If there is one that we do not have the information in the output schema to produce (and it can't be looked up from some data source like population), we can decide whether we need to update our schema, or just choose to ignore that value.

We can potentially go back to ask questions about the external schema if things aren't clear, although I don't know how quickly we'd get a response.

This may get split into separate issues, as some are more complex than others.

Definitions

We define the following metrics for each day in our output schema:

Metric Description
Mild Current number of mild cases on this day
ILI Current number of influenza-like illness cases on this day (assume represents GP demand)
SARI Current number of Severe Acute Respiratory Illness cases on this day (assume represents hospital demand)
Critical Current number of critical cases on this day (assume represents ICU demand)
CritRecov Current number of critical cases on this day who are well enough to leave the ICU but still need a hospital bed
R R-number on this day
incDeath Number of deaths occurring on this day

For the first five, we also define cumulative versions representing total numbers since the start of the pandemic (cumMild, cumILI, cumSARI, cumCritical & cumCritRecov). By taking the difference between two consecutive days, the UI also determines the numbers of new cases on a given day (which I'll refer to as incMild, incILI, incSARI, incCritical & incCritRecov).

gjackland commented 2 years ago

The Mild, ILI SARI etc. outputs come from CovidSim and are adopted in WSS. I think we should include the CrystalCast "valuetypes". There is a mapping between these (for WSS at least), so I wonder if the interface can populate the ones which aren't directly produced.
There are some tricky issues, e.g. in WSS R, mean_generation_time, and growth_rate are related by a simple equation, but on other codes they are fully independent.