← Back to all sparks
E

EpiNow2

ANALYTICS
Velocity0.0

Estimate Realtime Case Counts and Time-varying Epidemiological Parameters

EpiNow2 unified its model interface, then went back to deepen the estimators behind it

epidemiologybayesian-modellingreproduction-numberr-packageapi-consolidation
Current state
EpiNow2 estimates reproduction numbers, infections and delay distributions from incomplete epidemiological reporting data. 1.8.0 was the structural turning point: every main modelling function now returns a consistent S3 object with `fit`, `args` and `observations`, reachable through shared accessors. The releases either side of it work on estimator quality — accumulation of irregularly reported data in 1.7.0, and a substantial expansion of `estimate_truncation()` in 1.9.0.
Where it's heading
The package spent this window paying down interface debt and is now extending from the tidier base. Options that existed only for `estimate_infections()` have been propagated outward: `estimate_truncation()` gained the full `dist_spec` delay families, `obs_opts()` observation model selection between Poisson and negative binomial, and the `likelihood` and `return_likelihood` settings that make prior-only fits and loo-compatible output possible. Hardcoded assumptions are being replaced by specifiable ones in the same motion — the truncation model's additive noise term was a fixed `sigma ~ normal(0, 1)` prior and is now a `dist_spec` argument.
Prediction
Expect the remaining modelling functions to keep converging on the shared options interface, since the last two releases have each moved another function onto it. A new `estimate_dist()` for interval-censored linelist data suggests delay estimation is the area still gaining surface.

Recent moves

  1. 1mo ago

    estimate_truncation gains full delay and observation options

    `estimate_truncation()` catches up with the rest of the package: all `dist_spec` delay families, `obs_opts()` observation model selection, and the `likelihood`/`return_likelihood` wiring that enables prior-only fits and loo-compatible output. Its previously hardcoded noise prior becomes a specifiable `dist_spec`, it warns when irrelevant `obs_opts()` settings are supplied, and a new `estimate_dist()` fits delay distributions from interval-censored linelist data.

    View source ↗
  2. 6mo ago

    Unified return objects and shared accessors across all models

    ⚡ SPARK

    The release that gave the package one shape instead of four: all main modelling functions return consistent S3 objects reached through shared accessors, discretisation moves to the primarycensored package, and Rt estimates can account for susceptible depletion. The subsequent releases extend this base outward rather than reworking it.

    View source ↗
  3. 1y ago

    Patch for an upstream rstan issue

    A patch released in response to an upstream `rstan` issue flagged in CRAN checks. Maintenance forced from outside the package.

    View source ↗
  4. 1y ago

    Accumulation for irregularly reported data; unified priors

    Introduces accumulation, letting models fit data reported at regular or irregular intervals via `fill_missing()` and an `accumulate` column, with fixed frequencies detected automatically. All priors move onto the internal distribution interface — the groundwork the 1.8.0 unification then built on.

    View source ↗
  5. 1y ago

    Matern kernel spectral density fix and GP prior revert

    Fixes a bug in the spectral densities of Matern kernels of orders other than 3/2, which silently affected results for anyone using them, and reverts the Gaussian Process magnitude prior to HalfNormal(0, 0.05) after users reported unexpected results. Users are now told explicitly that `NA` observations are treated as missing rather than zero.

    View source ↗
  6. 1y ago

    Gaussian Process model improvements and explicit defaults

    Gaussian Process model improvements alongside a broad documentation pass, including making implicit argument defaults explicit and clarifying what settings apply when `rt = NULL`. The delay distribution interface work here precedes the wider prior unification in 1.7.0.

    View source ↗