We describe a number of observables that are computed by the oscovida python package and presented on the OSCOVIDA webpages.

The discussion below refers to one region, such as a country, state or district.

The discussion below is focused on cases as a function of time, but the same observables can be computed for deaths as a fuction of time to gain additional insights.

Total number of infections


Total number $n$ of infections as a function of time $t$. These are all reported infections accumulated up to time $t$. (The number $n(t)$ does not decrease when infected people recover or die, i.e. $n(t)$ does not represent the "active cases".)

Within OSCOVIDA, time $t$ is dealt in days (i.e. at most one data point associated to a day). Where we have data series, the index is a pandas DateTimeIndex.

We take the numbers $n(t)$ of diagnosed cases as reported by the Johns Hopkins University and the Robert Koch Institute. We use the terms 'cases' and 'infections' interchangably for this number.

New infections per day

The number of new infections $n_\mathrm{daily}(t_i)$ for day $t_i$ is computed using

$$ n_\mathrm{daily}({t_i}) = n(t_{i}) - n(t_{i-1}) $$

where $t_i$ is the $i$-th day in the sequence.

Example: to compute the daily new infections reported yesterday, we take the total number of infections reported up to yesterday, and substract the total number of infections reported up to the day before yesterday.

Growth factor

The growth factor $g(t_i)$ is the ratio of new cases on day $t_i$ to the new cases the day before $t_{i-1}$:

$$ g(t_i) = \frac{n_\mathrm{daily}(t_i)}{n_\mathrm{daily}(t_{i-1})} $$

Reproduction number

We assume a model of exponential growth following $$ n(t) = n_0 R^{t/\tau} $$ where

  • $n_0$ is the number of initial cases at $t=t_0$
  • $\tau$ is the time between successive cases in a chain of transmission (i.e. the time it takes for the infection to spread from one person to the next (serial interval [1])
  • $R$ is the reproduction number, which is the average number of infected people cause by one infected person [2]

Doubling time

The doubling time $T_\mathrm{double}$ is the time over which some entity $x(t)$ doubles: $$ x(t + T_\mathrm{double}) = 2 x(t) $$

The doubling time $T_\mathrm{double}$ can be time dependent, but we have omitted this in the equation above for simplicity.

To estimate the doubling time of a time series, we assume exponential growth of the time series $x(t)$.

In the context of CovSars2, we can look at two different doubling times:

  1. The doubling time of the total accumulated cases $n(t)$.

  2. The doubling time of the daily new cases $n_\mathrm{daily}$.

In the pre-computed plots on the OSCOVIDA site we show the doubling time of the total accumulated cases.

7-day incidence

The $p$-day incidence $r_p(t_i)$ for day $t_i$ over a period of $p$ previous days is a cumulative number of daily new infections $n_\mathrm{daily}$ over this period of $p$ days, normalised by the population $N_\mathrm{population}$ and multiplied by $c$, where $c = 10^5$ is a common choice and what is used in OSCOVIDA:

$$ r_p (t_i) = \frac{c}{N_\mathrm{population}} \sum_{k=1}^{p} n_\mathrm{daily}(t_{i-k})$$

For the 7-day incidence we have $$ r_7 (t_i) = \frac{c}{N_\mathrm{population}} \sum_{k=1}^{7} n_\mathrm{daily}(t_{i-k})$$

The 7-day incidence number tells us how many new cases have occured in the last week, per 100,000 people.

Note that we can calculate this number for any particular region only if we know both $n_\mathrm{daily}$ and the population of this particular region.

We treat the population as a time-independent constant in OSCOVIDA, not taking into account natural fluctuations nor effects of COVID19.

We compute incidence rates for two period values: $r_7$ and $r_{14}$. One may also compute this rate for an arbitrary date in the past.

Related material:

Discussion of example data

We discuss the observables described above on this page.