← Back to all sparks
D

daedalus

INFRA · APIS
Velocity0.0

Model Health, Social, and Economic Costs of a Pandemic

An epidemic-economic model teaching its interventions to react to the outbreak itself.

epidemic-modellinghealth-economicsnpi-policyode-solversrcppsimulation
Current state
daedalus couples an infectious-disease model to sector-level economic costs, letting users test non-pharmaceutical interventions against both epidemic and fiscal outcomes. Over autumn 2025 the intervention layer went from a single fixed closure to sequential timed NPIs and then to closures that lift in response to the model's own instantaneous reproduction number. Alongside that, the cost functions were reworked so illness states map more carefully onto lost productivity.
Where it's heading
The arc is toward a model that behaves like a policy simulator rather than a scenario calculator: interventions now have their own state machine, R_t is computed inside the ODE system, and event handling has been pulled out of the output object. Correction releases sit between the feature ones, including an indexing fix the maintainers flag as required for accurate projections. The versioning is patch-level but the changes are structural.
Prediction
With R_t and the next-generation matrix now available in-model, the likely next step is richer response rules keyed to those quantities; the entries give no signal on when a stable 1.0 arrives.

Recent moves

  1. 9mo ago

    Version bump for a symposium preview build

    Cut for a Jameel Institute symposium preview, this release adjusts what the NPI openness accessor returns and otherwise fixes vignette formatting, a flaky epidemic-size test, and the readme. A packaging milestone rather than a modelling one.

    View source ↗
  2. 9mo ago

    Interventions now lift in response to live R_t

    ⚡ SPARK

    This is the release where interventions stop being scheduled and start being reactive: the ODE class becomes a mixed-time system so closures can end on the instantaneous R_t, and R_t plus the next-generation matrix become available inside the model. It completes the intervention rework that the timed-NPI release began a month earlier.

    View source ↗
  3. 10mo ago

    Within-sector contact scaling corrected to quadratic

    Closures now scale worker-to-worker contact rates quadratically rather than linearly, which increases the modelled impact of any response strategy. A small change in text and a large one in output — every published comparison of strategies against baseline shifts with it.

    View source ↗
  4. 10mo ago

    Illness-driven absence reworked in the cost model

    Only hospitalised and dead are now counted as fully absent, symptomatic workers are treated as present but unproductive via a tunable loss parameter, and the fiscal side corrects interest, spending and tax rates from percentages to rates. The economic half of the model gets the same scrutiny the epidemic half has been getting.

    View source ↗
  5. 10mo ago

    Multiple sequential time-limited closures

    daedalus_timed_npi() adds interventions with several non-overlapping start and end times and per-window openness coefficients, splitting scheduled closures away from state-responsive ones. This is the groundwork the reactive-lifting release a month later builds on.

    View source ↗
  6. 11mo ago

    State array indexing corrections; earlier projections unreliable

    The maintainers flag this version as the minimum for accurate projections, which makes it a correctness boundary rather than a routine patch. Results produced with anything between v0.2.24 and this release should be regenerated.

    View source ↗