Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Binder

EpiVacc is a multi-method model to simulate the impact of vaccine interventions against endemic diseases. This case study illustrates how the different modelling approaches work together and create an impact.

Topics:

  • Multi Method Modelling

Objectives:

  • How to model vaccine interventions and their impact?

  • What outcomes can be regarded and how can they be put in contrast?

  • How does hybrid / multi-method modelling enable this?

Background

Whether a vaccination program is funded by the health care system is an important and complex decision. The costs of purchasing and administering vaccines must be put in contrast with the population’s higher immune competence, the corresponding improved public health, and the related savings from a payer’s perspective due to the reduced burden of the disease. While the decision on whether one vaccination program should be funded by the system is already complex and multifaceted, it becomes particularly challenging when a decision for individual programs must be made at the expense of others due to financial constraints.

In the summer of 2024, the Federal Ministry of Health commissioned the TU Wien to carry out a study Bicher et al. (2025) analysing which vaccination programs would deliver the greatest benefit to the population for the 2025/2026 vaccination season. The aim of this study was to determine how the available budget could best be used to fund vaccinations programs (i.e. by reimbursing vaccination costs). The MoH, supported by their vaccination board (Nationales Impfgremium) proposed 15 different vaccination programs against 9 different pathogens:

Target PathogenWhoScheme
Pertussis15+ years5-annual booster
Hepatitis B15–60 year old who did not receive a vaccination as child3-stage base immunisation
Pneumococci60+ and risk personsSingle shot
MeningokocciChildren until 10 + risk persons from 25 (two different vaccines)4-/3-stage base immunisation & 5-annual booster for risk group
Tick-borne EncephalitisAllBase immunisation + 5-/3-annual booster
VZV (Varicella)Children2-stage base immunisation
VZV (Herpes-Zoster)60+2-stage immunisation
InfluenzaAll / 60+ and risk personsSeasonal booster
COVID-1912+ / 60+ and risk personsSeasonal booster
RSVPregnant / infants / 60+Single shot

At this point, there was little to no evidence on which of them they could afford with the given budget, and which would have the most benefit - and what could be regarded as benefit after all.

PICO Questions

In collaboration with the MoH the programs were translated into 70 PICO (Population-Intervention-Comparator-Outcomes) questions (see, Engen et al. (2024)). These questions clearly specified the target population (e.g. children, 60+, risk-persons), the planned intervention (e.g. seasonal booster shot against Influenza), the comparator in the absence of the intervention (no vaccinations, continued status-quo, all vaccinations paid privately) and the investigated outcomes (e.g. vaccination costs, mild/severe/death cases, treatment/hospitalisation costs). For most of the 15 programs, different PICO questions with different assumptions on the adherence of the target population, i.e. how many persons would take the vaccinations, were formulated. For more details, we refer to the published project report Bicher et al. (2025).

Modelling Challenges

At first, the problem seems to be a perfect application for epidemiological models, and indeed, the evaluation of vaccinations is one of the core application areas of these models. However, upon closer examination of the task, one finds oneself entering a rabbit hole, confronted with a multitude of challenges that quickly render a perfectly reasonable case study impossible. The most important are likely (see also Bicher et al. (2026)):

  1. Remain unbiased in the light of heterogeneous pathogens and diseases.

  2. Depict the complex nature of real vaccination plans.

  3. Limited availability of data and system knowledge.

  4. Finding a representative evaluation time interval.

As a result, initial attempts to model the system using an agent-based approach, based on the GEPOC ABM population model (see Bicher et al. (2018)) failed. A more simplistic yet more applicable approach was found using a multi-method approach.

Conceptual and Implemented Model

The overall model strategy is depicted in Figure 1 and published in Bicher et al. (2026). We will not go into the details of each model here but only point out that the overall model structure consists of Markov-model type immunity model, a SIRVS-type epidemiologcal compartment model, and linear, static Primary and Secondary Outcomes models.

Multi-method concept of the EpiVacc model. Results from an immunity model (Markov-model), and from a SIRVS-type compartment model (differential equation model) feed into a Primary and Secondary Outcomes model (linear, static) to compute the impact of vaccination programs.

Figure 1:Multi-method concept of the EpiVacc model. Results from an immunity model (Markov-model), and from a SIRVS-type compartment model (differential equation model) feed into a Primary and Secondary Outcomes model (linear, static) to compute the impact of vaccination programs.

The model, henceforth referred to as EpiVacc is implemented in Python3 and found as package epi_vacc publicly in this git repository. We will iteratively explain how the model/package works and is used.

Model Configuration

Any experiment with the model requires the setup of a config-file in JSON format. This file contains all information about the PICO question and parameter values. The git repository provides two sample config files, one for a PICO related to Influenza vaccinations, one related to Hepatitis-B. We have a quick look into them.

Model Input: Vaccination Program

Mathematically, we define a vaccination program is interpreted as a list vj,j∈{1,…,M}v_j,j\in \{1,\dots,M\} of tuples

vj:=(tj,rj,ej,cj),v_j:=(t_j,r_j,e_j,c_j),

whereas each tuple characterises one stage of the program. Hereby,

  • tj∈R0+t_j\in \mathbb{R}^+_0 stands for the recommended administration age of the vaccination shot

  • rj∈[0,1]r_j\in [0,1] refers to the expected participation among the population with age tjt_j

  • ej∈[0,1]e_j\in [0,1] refers to the effectiveness of the vaccine against a certain outcome, i.e. how well the vaccine protects the individual, and

  • cj∈R0+c_j \in \mathbb{R}^+_0 stands for the costs associated with administering the vaccination stage.

In full detail, rjr_j is sub-population dependent (e.g. risk population, pregrant,...), eje_j depends on the outcome of interest (e.g. infection, symptomatic, severe, ...), and cjc_j depends on the payer or payment program (e.g. privately paid, child-vaccination budget, ...).

Below we illustrate the comparator and intervention program against Hepatitis-B. The program is depicted with three sub-populations: base12 refers to the part of the population who get the first dose as a child with the age of 0 and the booster shot with 7. Those in base1 had the first one, but missed out the booster shot. The other show vaccination stages depict a refreshment vaccinations for those which could or did not want to participante in the (full) base immunisation program. To depict that the refreshment can be taken any time between age 16 and 60, multiple vaccination events with reduced participation are depicted. In the comparator, which should depict the status-quo, the refreshment is only taken by the base1 sub-population and is currently paid privatey, in the intervention, also the others subpopulation may get the vaccine and it is reimbursed.

Immunity Model

For every individual, we define a stochastic process X(t)X(t) modeling whether an individual is (1) or is not (0) protected against a certain outcome at precise age tt due to a vaccination. We furthermore aim to model

μ:R+→[0,1]:t↦μ(t):=P(X(t)=1),\mu:\mathbb{R}^+\rightarrow [0,1]:t\mapsto \mu(t):=P(X(t)=1),

henceforth called vaccine-induced-immunity curve.

In the model we assume that XX is a Markov process: Transition 1→01\rightarrow 0 reflects waning of immunity. For our model, we assume that this process is memoryless (Markov process) with rate α\alpha, meaning that the immunity waning times are exponentially distributed. As a result, for any two t2>t1t_2>t_1

μ(t2)=P(X(t2)=1)=P(X(t2)=1∣X(t1)=1)P(X(t1)=1)=exp⁡(−α(t2−t1))μ(t1).\mu(t_2)=P(X(t_2)=1) = P(X(t_2)=1|X(t_1)=1)P(X(t_1)=1)=\exp(-\alpha(t_2-t_1))\mu(t_1).

Transition 0→10\rightarrow 1 is externally triggered by the vaccination stages. For the jj-th stage at age tjt_j we find, that the person has a likelihood of rjr_j to participate in the program, and a likelihood of eje_j to gain immunity from the vaccination stage.

Let Xj−:=lim⁡t→tj−X(t)X_j^-:=\lim_{t\rightarrow t_j^-}X(t) define the state of the process right before the vaccination and μj−:=P(Xj−=1)\mu^{-}_j:=P(X_j^-=1), then

μ(tj)=P(X(tj)=1)=P(X(tj)=1∣Xj−=1)μj−+P(X(tj)=1∣Xj−=0)(1−μj−)=μj−+rjej(1−μj−).\mu(t_j)=P(X(t_j)=1)=P(X(t_j)=1|X_j^-=1)\mu^{-}_j+P(X(t_j)=1|X_j^-=0)(1-\mu^{-}_j) = \mu^{-}_j+r_je_j(1-\mu^{-}_j).

Combining the two equations provides μ\mu for arbitrary points in time.

We compute some immunity curves for different outcomes below. For Hepatitis-B we asumed no difference in protectivity against different outcomes, for Influena, however, data shows a declining protection against symptomatic disease for the elderly. In general protection levels against Influena can be seen on a much lower level due to (a) much faster waning, (b) smaller participant ratios, and (c) lower estimates for vaccine effectiveness.

Steady-State Property

To quantify the impact of the immunity level on the disease outcomes, we apply a steady-state assumption. I.e. we assume, that the population size (per age= remains constant and that the vaccination program (comparator or intervention) is sufficiently long in place to cause the same level of annual infections/cases and the same level of immunity. As a result, the average likelihood that a person between age aa and a+1a+1 is immunised is representative for the immunisation likeliood of the whole age cohort aa:

∀a∈{0,1,… }:Ia:=∫aa+1μ(t)dt,\forall a\in \{0,1,\dots\}: \mathcal{I}_{a}:=\int_{a}^{a+1}\mu(t)dt,

and for the overall population by

Itot:=N⃗⋅(I)a=0100∥N⃗∥1,\mathcal{I}^{tot}:=\frac{\vec{N}\cdot (\mathcal{I})_{a=0}^{100}}{\lVert\vec{N}\rVert_1},

whereas N⃗=(Na)a=0N\vec{N}=(N_a)_{a=0}^{N} stands for size of the age cohorts.

We approximate a yearly cases OaO_a for a certain age aa as

Oa=(1−Ia)Oa0,O_a=(1-\mathcal{I}_{a})O_a^0,

whereas Oa0O_a^0 stands for the yearly incidence in a naive population without vaccination - which need to be found in a calibration process.

Unfortunately, this solely linear approach neglects nonlinear herd-immunity effects in case the vaccine protects agains infection and transmission (which is not always given). Thus, we slightly extend this formula to

Oa=(1−Ia)Ξ(⋅)Oa0,O_a=(1-\mathcal{I}_{a})\Xi(\cdot)O_a^0,

SIRVS-Model

The SIRVS-model (susceptible-infectious-recovered-vaccinated-susceptible) is a well known epidemic compartmental model based on the famous SIR-model by Kermack and McKendrick and unites the SIRS model with the SIRV model. It can be regarded at the simplest model considering herd-immunity effects, immunity-waning, and vaccinations at the same time and is defined by the following system of four coupled differential equations:

S˙(t)=−βS(t)I(t)+δ1R(t)+δ2V(t)−κS(t)I˙(t)=βS(t)I(t)−γI(t)R˙(t)=γI(t)−δ1R(t)V˙(t)=−δ2V(t)+κS(t)\begin{array}{cccccc} \dot{S}(t)&=&-\beta S(t)I(t)&&+\delta_1R(t)+\delta_2V(t)&-\kappa S(t)\\ \dot{I}(t)&=&\beta S(t)I(t)&-\gamma I(t)&&\\ \dot{R}(t)&=&&\gamma I(t)&-\delta_1 R(t)&\\ \dot{V}(t)&=&&&-\delta_2 V(t)&+\kappa S(t)\\ \end{array}

Although the model dynamics are too complicated to be solved analytically, its steady-state is. By S˙=I˙=R˙=V˙=0\dot{S}=\dot{I}=\dot{R}=\dot{V}=0 we find, for example,

n(∞)=n0(∞)(1−R0R0−1V(∞)),n(\infty)=n_0(\infty)\left(1-\frac{R_0}{R_0-1}V(\infty)\right),

whereas n(∞)n(\infty) and V(∞)V(\infty) stand for the new infections n(t)=βS(t)I(t)n(t)=\beta S(t)I(t) and total vaccination in the steady state, n0n_0 for the new infections in a system without vaccinations (i.e. κ=0\kappa=0), and R0R_0 for the base reproduction rate R0=βγR_0=\frac{\beta}{\gamma} of the disease. By splitting the rate into self- and third-party protection, we identify our nonlinearity factor FF by

n(∞)=n0(∞)(1−V(∞))1−BV(∞)1−V(∞)⏟Fn(\infty)=n_0(\infty)(1-V(\infty))\underbrace{\frac{1-BV(\infty)}{1-V(\infty)}}_{F}

which, transferred to our age-dependent framework, leads to

Ξ(R0,Itot)=1−R0R0−1Itot1−Itot.\Xi(R_0,\mathcal{I}^{tot})=\frac{1-\frac{R_0}{R_0-1}\mathcal{I}^{tot}}{1-\mathcal{I}^{tot}}.

We illustrate this factor with the SIRVS model below. It corresponds to the ratio between the two red lines in their steady state (i.e. to the right of the picture).

Outcomes Model and Model Fit

With Iak\mathcal{I}^k_a being the immunity against a certain outcome kk, e.g. symptomatic or severe disease, and Iai\mathcal{I}^i_a being the immunity against infection, we compute

Oai=(1−Iai)Ξ(Itot,i,R0)Oa0,i,O_a^i=(1-\mathcal{I}^i_{a})\Xi(\mathcal{I}^{tot,i},R_0)O_a^{0,i},

whereas Oai,Oa0,iO_a^i,O_a^{0,i} refer to the total infections with and without vaccinations and

Oak=(1−(Iak−Iai))ΨakOai,O_a^k=(1-(\mathcal{I}^k_a-\mathcal{I}^i_a))\Psi_a^kO_a^{i},

whereas OakO_a^k stands for the observed cases with outcome kk. Factor Ψak\Psi_a^k is the age-dependent likelihood that an unvaccinated person of a certain age will develop the more severe outcome kk.

Given a certain status-quo vaccination program (in addition to the comparatpor and intervention) we may calibrate the missing factors to given surveillance data for the corresponding diseases (see Figure 2). To be precise, we fit the values of the products ΨakΘa\Psi_a^k\Theta_a, whereas Θa:=Oa0,iPa\Theta_a:=\frac{O_a^{0,i}}{P_a} is the per-person likelihood for getting infected in the course of a year in the absence of vaccinations. Hence, the fitted product ΨakΘa\Psi_a^k\Theta_a can be interpreted as the overall yearly per-person probability for for getting outcome kk in the absence of vaccinations.

Strategy to fit the model with a status-quo vaccination program and data on certain reference outcomes.

Figure 2:Strategy to fit the model with a status-quo vaccination program and data on certain reference outcomes.

Below we fit the outcomes model given a set of immunity models and show the fitted probabilities ΨakΘa\Psi_a^k\Theta_a. While they are somewhat in the same range for Hepatitis-B, they differ heavily for Influenza. For the latter, the likelihood for symptomatic disease is much higher than for more severe outcomes.

Primary Outcomes

With the fitted parameters, we can compute the primary outcomes for different immunisation profiles, i.e. the comparator and intervention vaccination plans. We may incorporate parameter uncertainty w.r. to vaccine effectiveness. Since the regarded vaccination plans only differ a little, the differences of the absolute outcomes are very subtle. Nevertheless, the benfit of the intervention is clearly visible.

Secondary Outcomes

Finally, we fully exploit the fitted model. We assume, that any outcome of interest QmQ^m can be computed as a linear-combination of the primary outcomes, i.e. infected, symptomatic, severe and fatal cases, i.e.

Qm=∑kTm,kOkQ^m=\sum_{k}T^{m,k}O^k

for some kernel matrices TkT^k. This specification offers lots of freedom for defining outcomes: A zero-matrix will make the result independent of the corresponding primary. A diagonal matrix will create a proportional age-dependent relation, e.g., well suited to model age-dependent treatment costs. Finally, using a triangular matrix makes it possible to model a time-delay between primary and secondary outcome. This is nicely visible for Hepatitis-B (see plots below) for which hospitalized and severe (or milds) have clearly different age distribution.

Comparing these outcomes for the comparator and the intervention program gives estimates for the benefits. However, one should not forget that different interventions are associated with different costs. So it is important to also contrast the benefits with the costs.

References
  1. Bicher, M., Brodersen, J., Erber, A., Geier, P., Jeleff, M., Popper, N., Rippinger, C., Urach, C., Zauner, G., Zechmeister, M., & Zimmermann, C. (2025). Impactevaluierung von Priorisierten Impfungen. TU Wien. 10.48436/sqvcq-qwg65
  2. van Engen, A., Krüger, R., Parnaby, A., Rotaru, M., Ryan, J., Samaha, D., & Tzelis, D. (2024). The impact of additive population (s), intervention, comparator (s), and outcomes in a European joint clinical health technology assessment. Value in Health, 27(12), 1722–1731. 10.1016/j.jval.2024.07.024
  3. Bicher, M., Rippinger, C., Urach, C., Zauner, G., Zechmeister, M., & Niki, P. (2026, June). Mathematical Modeling Framework for Comparison of Vaccination Strategies for Different Diseases. Proceedings of the 40th ACM SIGSIM Conference on Principles of Advanced Discrete Simulation.
  4. Bicher, M., Urach, C., & Popper, N. (2018). Gepoc ABM: a generic agent-based population model for Austria. 2018 Winter Simulation Conference (WSC), 2656–2667. 10.1109/WSC.2018.8632170
  5. Bicher, M., Rippinger, C., Urach, C., Zauner, G., Zechmeister, M., & Popper, N. (2026). Mathematical Modeling Framework for Comparison of Vaccination Strategies for Different Diseases. Proceedings of the 40th ACM SIGSIM International Conference on Principles of Advanced Discrete Simulation, 116–126. 10.48436/sqvcq-qwg65