Data & Methods

We aim to reliably estimate the instantaneous reproduction number $R_t$ across local authorities in the UK with appropriately quantified uncertainties.


We use publicly available Pillar 1+2 daily counts of positive PCR swab tests by specimen date, for:

  • 312 lower-tier local authorities (LTLA) in England (here),
  • 14 NHS Health Board level in Scotland (each covering multiple local authorities) (here), and
  • 22 Unitary local authorities in Wales (here).

Other data sources:

  • UK 2011 Census commuter flow data (here),
  • ONS UK population estimates from mid 2019 (here).


At its core, our Bayesian method uses a renewal equation formulation of epidemic dynamics within each local authority, building on the methods of Cori et al (2013) and Flaxman et al (2020).

Specific extensions that we have employed to adapt the renewal equation approach to our local-level model:

  • Correlations in effective $R_t$ across neighbouring local authorities and across neighbouring points in time are modelled using a spatio-temporal Gaussian process. This allows for sharing of statistical strengths.
  • Potential infections that cross local authority boundaries are accounted for using a cross-coupled metapopulation approach. In order to do so, we incorporate real commuter data from the UK 2011 Census (here).
  • Problems associated with noise in the case reporting process, outliers in case counts and delays in the testing and reporting system are alleviated by modelling the epidemic using a latent process with associated observation model for reported cases, following Flaxman et al (2020).
  • We use the No-U-Turn Sampler inplemented in the Stan probabilistic programming system for posterior inference.
  • Because of the computational cost of posterior simulation in the resulting complex model, we split the posterior simulation into two phases: an initial phase which infers the latent epidemic process in each local authority, and a second phase which infers the $R_t$ and metapopulation model parameters.

Detailed description of the method along with additional experiments can be found in this report.

The source code for this project can be found on github.


The raw outputs from the daily runs, including all historic runs, can be found on the deployed branch of the public github repository for this project here.