← Back to all sparks
S

simulist

ANALYTICS
Velocity0.0

An R package for simulating line lists

simulist stopped simulating clean outbreaks and started simulating the mess real surveillance data arrives in.

epiverse-traceoutbreak-simulationline-listdata-realismepidemiology
Current state
simulist generates synthetic line list and contact-tracing data for outbreak analytics as part of the Epiverse-TRACE stack. It reached stable status in 0.6.0 and was published in JOSS alongside 0.7.0 in February 2026. Its distinguishing feature is no longer the epidemic simulation itself but the post-processing layer that degrades the output into realistic data.
Where it's heading
The scope moved outward in two steps. 0.5.0 added truncate_linelist() and messy_linelist() to produce right-truncated snapshots and data with missingness and inconsistencies; 0.6.0 added censor_linelist() for grouping dates into intervals with a weekend-reporting effect. The simulation core has meanwhile settled — 0.7.0's changes are interface polish: weighted sex sampling and <epiparameter> objects accepted for reporting_delay.
Prediction
Post-processing is where the recent work is, so further realism controls — additional reporting artefacts or interval schemes — are a likelier next step than new epidemic model structures.

Recent moves

  1. 6mo ago

    JOSS paper corrections

    A same-day follow-up to 0.7.0 containing only corrections to the JOSS paper text; the package itself is unchanged.

    View source ↗
  2. 6mo ago

    Weighted sex sampling and epiparameter objects for reporting delays

    The release accompanying the JOSS publication. prob_male makes sex sampling weightable rather than uniform, and reporting_delay now accepts <epiparameter> objects like the other delay arguments, closing an inconsistency in the simulation interface.

    View source ↗
  3. 11mo ago

    censor_linelist() adds interval censoring and a weekend effect

    Dates can now be grouped into daily, weekly or user-defined periods, with an option reproducing the low-reporting weekend pattern. The package also moves from experimental to stable here, signalling a settled API.

    View source ↗
  4. 1y ago

    Post-processing arrives: truncated snapshots and deliberately messy line lists

    ⚡ SPARK

    The turn in the package's scope. truncate_linelist() produces real-time outbreak snapshots with right truncation, messy_linelist() injects the inconsistencies and missingness of empirical data, and a date_reporting column appears alongside a reporting_delay argument.

    View source ↗
  5. 1y ago

    Every sim_*() argument gains a default

    sim_linelist() and its siblings can now be called with no arguments at all, and stop warning when *_risk arguments are left unset with onset_to_* set to NULL. Interface smoothing ahead of the scope expansion in 0.5.0.

    View source ↗
  6. 2y ago

    Infectious period replaces contact interval; time-varying fatality risk added

    The simulation is reparameterised around an infectious period rather than a contact interval, line lists gain date_outcome and outcome columns driven by onset_to_death and onset_to_recovery, and case fatality risk can vary through time via a user-supplied function.

    View source ↗