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?
import io
import json
import os
import shutil
import zipfile
import numpy as np
import requests
from epi_vacc import Config, Scenario, PrimaryOutcomeId, UncertaintyScenario, ImmunityModel, OverallModel, \
PrimaryOutcomesModel, PicoResultPlotter
from matplotlib import pyplot as plt
from scipy.integrate import solve_ivpBackground¶
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 Pathogen | Who | Scheme |
|---|---|---|
| Pertussis | 15+ years | 5-annual booster |
| Hepatitis B | 15–60 year old who did not receive a vaccination as child | 3-stage base immunisation |
| Pneumococci | 60+ and risk persons | Single shot |
| Meningokocci | Children until 10 + risk persons from 25 (two different vaccines) | 4-/3-stage base immunisation & 5-annual booster for risk group |
| Tick-borne Encephalitis | All | Base immunisation + 5-/3-annual booster |
| VZV (Varicella) | Children | 2-stage base immunisation |
| VZV (Herpes-Zoster) | 60+ | 2-stage immunisation |
| Influenza | All / 60+ and risk persons | Seasonal booster |
| COVID-19 | 12+ / 60+ and risk persons | Seasonal booster |
| RSV | Pregnant / 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 bicher2026mathmatical):
Remain unbiased in the light of heterogeneous pathogens and diseases.
Depict the complex nature of real vaccination plans.
Limited availability of data and system knowledge.
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. 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.
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.
url = "https://gitlab.tuwien.ac.at/martin.bicher/vacc_eval/-/archive/1.0.1/vacc_eval-1.0.1.zip"
# Download the zip file into memory
response = requests.get(url)
response.raise_for_status()
# the package requires a lot of things to be saved locally for reproducibility reasons
# so we need to make a temporary folder here
localfolder = './temp/'
if not os.path.isdir(localfolder):
os.mkdir(localfolder)
# Load zip from memory and download the config files locally
with zipfile.ZipFile(io.BytesIO(response.content)) as z:
ids = ["INF","HEP"] # ids for influenza and hepatitis
configs = dict()
for id in ids:
fn = id+'.json'
with z.open('vacc_eval-1.0.1/configs/'+fn,'r') as f:
json_format = json.load(f) #load the file in JSON format
json_format["resultFolder"] = localfolder #change the folder where the simulation should save the results
with open(localfolder+fn,'w') as f:
print(os.path.abspath(f.name))
json.dump(json_format,f) #dump locally
config = Config(localfolder+fn) #finally, open it as a config-object
configs[id] = config
print('print some fields to get an idea on what is included in the JSON file:')
print(configs['INF'].file_content.keys())
print(configs['INF'].file_content['vaccinationStages'])2026-06-13 22:07:30 | INFO | Influenza_20260613-220730 | Create config instance from ./temp/INF.json for scenario Influenza
2026-06-13 22:07:30 | INFO | Hepatitis-B_20260613-220730 | Create config instance from ./temp/HEP.json for scenario Hepatitis-B
/builds/cookbooks/private/modelling-and-simulation-cookbook/notebooks/multi_method_modelling/temp/INF.json
/builds/cookbooks/private/modelling-and-simulation-cookbook/notebooks/multi_method_modelling/temp/HEP.json
print some fields to get an idea on what is included in the JSON file:
dict_keys(['resultFolder', 'scenarioName', 'subPopulations', 'vaccinationProperties', 'averageWaningDays', 'population', 'vaccinationStages', 'referenceOutcomes', 'R0', 'secondaryOutcomes'])
{'comparator': [{'id': 'vaccP', 'participantRatio': 0.08, 'years': [0.5, 1.5, 2.5, 3.5, 4.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5, 70.5, 71.5, 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, 78.5, 79.5, 80.5, 81.5, 82.5, 83.5, 84.5, 85.5, 86.5, 87.5, 88.5, 89.5, 90.5, 91.5, 92.5, 93.5, 94.5, 95.5, 96.5, 97.5, 98.5, 99.5]}, {'id': 'vaccP', 'participantRatio': 0.069, 'years': [5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5]}, {'id': 'vaccP', 'participantRatio': 0.0218, 'years': [15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5]}, {'id': 'vaccP', 'participantRatio': 0.0502, 'years': [30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5]}, {'id': 'vaccP', 'participantRatio': 0.0703, 'years': [45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5]}], 'intervention': [{'id': 'vaccI', 'participantRatio': 0.433, 'years': [60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5, 70.5, 71.5, 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, 78.5, 79.5, 80.5, 81.5, 82.5, 83.5, 84.5, 85.5, 86.5, 87.5, 88.5, 89.5, 90.5, 91.5, 92.5, 93.5, 94.5, 95.5, 96.5, 97.5, 98.5, 99.5]}, {'id': 'vaccI', 'participantRatio': 0.13, 'years': [0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5]}], 'fit': [{'id': 'vaccI', 'participantRatio': 0.1422, 'years': [0.5, 1.5, 2.5, 3.5, 4.5]}, {'id': 'vaccI', 'participantRatio': 0.069, 'years': [5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5]}, {'id': 'vaccI', 'participantRatio': 0.0218, 'years': [15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5]}, {'id': 'vaccI', 'participantRatio': 0.0502, 'years': [30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5]}, {'id': 'vaccI', 'participantRatio': 0.0703, 'years': [45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5]}, {'id': 'vaccI', 'participantRatio': 0.1271, 'years': [60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5]}, {'id': 'vaccI', 'participantRatio': 0.2047, 'years': [70.5, 71.5, 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, 78.5, 79.5]}, {'id': 'vaccI', 'participantRatio': 0.2414, 'years': [80.5, 81.5, 82.5, 83.5, 84.5, 85.5, 86.5, 87.5, 88.5, 89.5, 90.5, 91.5, 92.5, 93.5, 94.5, 95.5, 96.5, 97.5, 98.5, 99.5]}]}
Model Input: Vaccination Program¶
Mathematically, we define a vaccination program is interpreted as a list of tuples
whereas each tuple characterises one stage of the program. Hereby,
stands for the recommended administration age of the vaccination shot
refers to the expected participation among the population with age
refers to the effectiveness of the vaccine against a certain outcome, i.e. how well the vaccine protects the individual, and
stands for the costs associated with administering the vaccination stage.
In full detail, is sub-population dependent (e.g. risk population, pregrant,...), depends on the outcome of interest (e.g. infection, symptomatic, severe, ...), and 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.
def visualise_vacc_program(config:Config,scenario:Scenario) -> None:
"""
Visualises the different stages of the configured vaccination program
:param config: instance of the Config class
:param scenario: one of Scenario.FIT,Scenario.COMPARATOR or Scenario.INTERVENTION
"""
pops = config.sub_populations
cmp = plt.get_cmap('viridis')
k = 0
for i,(p,r) in enumerate(pops.items()):
plt.fill_between([0,100],[k,k],[k+r,k+r],color=cmp(i/len(pops.keys())),alpha=0.2,label=p)
k+=r
for stage in config.vaccination_stages[scenario]:
a = stage.get_age()
k = 0
for p,r in pops.items():
plt.plot([a,a],[k,k+stage.get_participant_ratio(p)*r],color='r',linewidth=3)
k+=r
plt.legend()
plt.figure(figsize=(8,6))
plt.subplot(2,1,1)
visualise_vacc_program(configs['HEP'],Scenario.COMPARATOR)
plt.title('Hepatitis-B, Comparator')
plt.xlim([0,100])
plt.ylim([0,1])
plt.subplot(2,1,2)
visualise_vacc_program(configs['HEP'],Scenario.INTERVENTION)
plt.title('Hepatitis-B, Intervention')
plt.xlim([0,100])
plt.ylim([0,1])
plt.tight_layout()
plt.show()
Immunity Model¶
For every individual, we define a stochastic process modeling whether an individual is (1) or is not (0) protected against a certain outcome at precise age due to a vaccination. We furthermore aim to model
henceforth called vaccine-induced-immunity curve.
In the model we assume that is a Markov process: Transition reflects waning of immunity. For our model, we assume that this process is memoryless (Markov process) with rate , meaning that the immunity waning times are exponentially distributed. As a result, for any two
Transition is externally triggered by the vaccination stages. For the -th stage at age we find, that the person has a likelihood of to participate in the program, and a likelihood of to gain immunity from the vaccination stage.
Let define the state of the process right before the vaccination and , then
Combining the two equations provides 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.
cmp = plt.get_cmap('viridis')
for id in ['HEP','INF']:
plt.figure(figsize=(8,3))
for i,outcome in enumerate([PrimaryOutcomeId.SYMPTOMATIC,PrimaryOutcomeId.SEVERE,PrimaryOutcomeId.FATAL]):
imdl = ImmunityModel(configs[id],outcome,Scenario.INTERVENTION,UncertaintyScenario.MAIN)
res, res_supop = imdl.run()
T = np.linspace(0,100,1000)
X = [res.get_immunity(t) for t in T]
plt.plot(T,X,color=cmp(i/2),label=outcome.name.lower())
plt.legend()
plt.xlabel('age')
plt.ylabel('immunity probability')
plt.xlim([0,100])
plt.ylim([0,1])
plt.title('immunity against '+id)
plt.show()

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 and is immunised is representative for the immunisation likeliood of the whole age cohort :
and for the overall population by
whereas stands for size of the age cohorts.
We approximate a yearly cases for a certain age as
whereas 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
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:
Although the model dynamics are too complicated to be solved analytically, its steady-state is. By we find, for example,
whereas and stand for the new infections and total vaccination in the steady state, for the new infections in a system without vaccinations (i.e. ), and for the base reproduction rate of the disease. By splitting the rate into self- and third-party protection, we identify our nonlinearity factor by
which, transferred to our age-dependent framework, leads to
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).
class SIRVSModel:
def __init__(self, beta:float, gamma:float, delta1:float, delta2:float, kappa:float):
"""
Implementation of the SIRVS model
:param beta: infection rate
:param gamma: recovery rate
:param delta1: waning rate for recovered
:param delta2: waning rate for vaccinated
:param kappa: vaccination rate
"""
self.beta = beta
self.gamma = gamma
self.delta1 = delta1
self.delta2 = delta2
self.kappa = kappa
def rhs(self,t:float,x:np.ndarray) -> np.ndarray:
"""
Right hand side of the SIRVS differential equation
:param t: time
:param x: state vector
:return: derivative
"""
y = np.zeros(4)
infs = self.beta*x[0]*x[1]
recs = self.gamma*x[1]
wanes1 = self.delta1*x[2]
wanes2 = self.delta2*x[3]
vaccs = self.kappa*x[0]
y[0]=-infs-vaccs+wanes1+wanes2
y[1]=infs-recs
y[2]=recs-wanes1
y[3]=vaccs-wanes2
return y
def run(self,x0:np.ndarray,tend:float) -> tuple[np.ndarray,np.ndarray]:
"""
Solves the ode using a runge-kutta solver and returns the results of the model
:param x0: initial value
:param tend: simulation end-time
:return: vector of time instants and corresponding vector of states
"""
res = solve_ivp(self.rhs,[0,tend],x0,max_step=1)
return res.t,res.y
beta = 0.6
gamma= 0.2
delta1 = 0.01
delta2 = 0.01
kappa = 0.003
x0 = np.array([0.95, 0.05, 0.0, 0.0])
tend = 1000 # should be enough for a proper "steady state"
plt.figure(figsize=(10,5))
mdl = SIRVSModel(beta, gamma, delta1, delta2, 0.0) # model without vaccinations
tt, xx = mdl.run(x0, tend)
plt.plot(tt, xx[1, :], color=[1.0, 0.0, 0.0], label='infected (without vaccinations)')
iinf0 = xx[1,-1]
mdl = SIRVSModel(beta,gamma,delta1,delta2,kappa) # model with vaccinations
tt, xx = mdl.run(x0, tend)
plt.plot(tt,xx[1,:],color=[0.7,0.0,0.0],label='infected (with vaccinations)')
plt.plot(tt,xx[3,:],color='k',label='vaccinated')
plt.xlabel('time')
plt.ylabel('ratio of the population')
plt.ylim([0,0.14])
plt.xlim([0,tend])
plt.legend()
plt.show()
Outcomes Model and Model Fit¶
With being the immunity against a certain outcome , e.g. symptomatic or severe disease, and being the immunity against infection, we compute
whereas refer to the total infections with and without vaccinations and
whereas stands for the observed cases with outcome . Factor is the age-dependent likelihood that an unvaccinated person of a certain age will develop the more severe outcome .
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)
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 . While the probabilities 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.
cmp = plt.get_cmap('viridis')
for id in ['HEP','INF']:
plt.figure(figsize=(8,4))
for i,po in enumerate([PrimaryOutcomeId.SYMPTOMATIC,PrimaryOutcomeId.SEVERE,PrimaryOutcomeId.FATAL]):
mdl = ImmunityModel(configs[id], po, Scenario.FIT)
imres = mdl.run()[0]
pom = PrimaryOutcomesModel(configs[id].population, imres.get_average_immunity_vector(), None, None)
ref = configs[id].reference_outcomes_specs[po]
reference_values = ref.reference_values
param = pom.fit_to_reference(ref.reference_values, ref.kernels_po[po]) # fits the model to the reference data
plt.plot(*param.get_age_timeline(),color=cmp(i/2),label=po.name.lower())
plt.legend()
plt.xlabel('age')
plt.ylabel('probability for more severe outcome')
plt.title(id)

Secondary Outcomes¶
Finally, we fully exploit the fitted model. We assume, that any outcome of interest can be computed as a linear-combination of the primary outcomes, i.e. infected, symptomatic, severe and fatal cases, i.e.
for some kernel matrices . 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. We refer to the Hepatitis-B case study in the Results section for an example.
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.
cmp = plt.get_cmap('viridis')
results = dict()
for id in ['HEP','INF']:
om = OverallModel(configs[id])
results[id] = om.run_pico()
plotter = PicoResultPlotter(configs[id], results[id])
plotter.plot_secondary_result_pico('hospitalized')
plotter.plot_secondary_result_pico('sickLeaveCosts')
plotter.plot_secondary_result_pico('vaccinations')
plotter.plot_secondary_result_pico('vaccinationCosts_intervention')
plt.show()2026-06-13 22:07:39 | INFO | Hepatitis-B_20260613-220730 | initialises OverallModel with config for scenario Hepatitis-B
2026-06-13 22:07:39 | INFO | Hepatitis-B_20260613-220730 | compute scenario (<Scenario.FIT: 0>, <UncertaintyScenario.MAIN: 1>)
2026-06-13 22:07:39 | INFO | Hepatitis-B_20260613-220730 | run scenario FIT for uncertainty MAIN
2026-06-13 22:07:39 | INFO | Hepatitis-B_20260613-220730 | fit parameters to reference
2026-06-13 22:07:40 | INFO | Hepatitis-B_20260613-220730 | fit SEVERE parameters
2026-06-13 22:07:40 | INFO | Hepatitis-B_20260613-220730 | fit SYMPTOMATIC parameters
2026-06-13 22:07:40 | INFO | Hepatitis-B_20260613-220730 | fit FATAL parameters
2026-06-13 22:07:40 | INFO | Hepatitis-B_20260613-220730 | get already computed immunity curves
2026-06-13 22:07:40 | INFO | Hepatitis-B_20260613-220730 | compute primary results
2026-06-13 22:07:40 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:07:40 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:07:40 | INFO | Hepatitis-B_20260613-220730 | compute primary results for FATAL
2026-06-13 22:07:40 | INFO | Hepatitis-B_20260613-220730 | compute secondary results
2026-06-13 22:07:40 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:07:40 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:07:40 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | create result-object for FIT/MAIN
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | save ScenarioResult for (<Scenario.FIT: 0>, <UncertaintyScenario.MAIN: 1>) to JSON file ./temp/Hepatitis-B_20260613-220730/Scenario_fit_main.json
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | successfully saved
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | compute scenario (<Scenario.COMPARATOR: 1>, <UncertaintyScenario.LOW: 0>)
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | run scenario COMPARATOR for uncertainty LOW
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | get already fitted parameters
2026-06-13 22:07:41 | INFO | Hepatitis-B_20260613-220730 | compute immunity curves
2026-06-13 22:07:43 | INFO | Hepatitis-B_20260613-220730 | compute primary results
2026-06-13 22:07:43 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:07:43 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:07:43 | INFO | Hepatitis-B_20260613-220730 | compute primary results for FATAL
2026-06-13 22:07:43 | INFO | Hepatitis-B_20260613-220730 | compute secondary results
2026-06-13 22:07:43 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:07:43 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:07:43 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:07:43 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:07:43 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:07:43 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:07:43 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:07:44 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:07:44 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:07:44 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:07:44 | INFO | Hepatitis-B_20260613-220730 | create result-object for COMPARATOR/LOW
2026-06-13 22:07:44 | INFO | Hepatitis-B_20260613-220730 | save ScenarioResult for (<Scenario.COMPARATOR: 1>, <UncertaintyScenario.LOW: 0>) to JSON file ./temp/Hepatitis-B_20260613-220730/Scenario_comparator_low.json
2026-06-13 22:07:44 | INFO | Hepatitis-B_20260613-220730 | successfully saved
2026-06-13 22:07:44 | INFO | Hepatitis-B_20260613-220730 | compute scenario (<Scenario.INTERVENTION: 2>, <UncertaintyScenario.LOW: 0>)
2026-06-13 22:07:44 | INFO | Hepatitis-B_20260613-220730 | run scenario INTERVENTION for uncertainty LOW
2026-06-13 22:07:44 | INFO | Hepatitis-B_20260613-220730 | get already fitted parameters
2026-06-13 22:07:44 | INFO | Hepatitis-B_20260613-220730 | compute immunity curves
2026-06-13 22:07:45 | INFO | Hepatitis-B_20260613-220730 | compute primary results
2026-06-13 22:07:45 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:07:45 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:07:45 | INFO | Hepatitis-B_20260613-220730 | compute primary results for FATAL
2026-06-13 22:07:45 | INFO | Hepatitis-B_20260613-220730 | compute secondary results
2026-06-13 22:07:45 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:07:45 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:07:45 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:07:45 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:07:45 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:07:46 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:07:46 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:07:46 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:07:46 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:07:46 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:07:46 | INFO | Hepatitis-B_20260613-220730 | create result-object for INTERVENTION/LOW
2026-06-13 22:07:46 | INFO | Hepatitis-B_20260613-220730 | save ScenarioResult for (<Scenario.INTERVENTION: 2>, <UncertaintyScenario.LOW: 0>) to JSON file ./temp/Hepatitis-B_20260613-220730/Scenario_intervention_low.json
2026-06-13 22:07:46 | INFO | Hepatitis-B_20260613-220730 | successfully saved
2026-06-13 22:07:46 | INFO | Hepatitis-B_20260613-220730 | compute scenario (<Scenario.COMPARATOR: 1>, <UncertaintyScenario.MAIN: 1>)
2026-06-13 22:07:46 | INFO | Hepatitis-B_20260613-220730 | run scenario COMPARATOR for uncertainty MAIN
2026-06-13 22:07:46 | INFO | Hepatitis-B_20260613-220730 | get already fitted parameters
2026-06-13 22:07:46 | INFO | Hepatitis-B_20260613-220730 | compute immunity curves
2026-06-13 22:07:47 | INFO | Hepatitis-B_20260613-220730 | compute primary results
2026-06-13 22:07:47 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:07:47 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:07:47 | INFO | Hepatitis-B_20260613-220730 | compute primary results for FATAL
2026-06-13 22:07:47 | INFO | Hepatitis-B_20260613-220730 | compute secondary results
2026-06-13 22:07:47 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | create result-object for COMPARATOR/MAIN
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | save ScenarioResult for (<Scenario.COMPARATOR: 1>, <UncertaintyScenario.MAIN: 1>) to JSON file ./temp/Hepatitis-B_20260613-220730/Scenario_comparator_main.json
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | successfully saved
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | compute scenario (<Scenario.INTERVENTION: 2>, <UncertaintyScenario.MAIN: 1>)
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | run scenario INTERVENTION for uncertainty MAIN
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | get already fitted parameters
2026-06-13 22:07:48 | INFO | Hepatitis-B_20260613-220730 | compute immunity curves
2026-06-13 22:07:50 | INFO | Hepatitis-B_20260613-220730 | compute primary results
2026-06-13 22:07:50 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:07:50 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:07:50 | INFO | Hepatitis-B_20260613-220730 | compute primary results for FATAL
2026-06-13 22:07:50 | INFO | Hepatitis-B_20260613-220730 | compute secondary results
2026-06-13 22:07:50 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:07:50 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:07:50 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:07:50 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:07:50 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:07:50 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:07:51 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:07:51 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:07:51 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:07:51 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:07:51 | INFO | Hepatitis-B_20260613-220730 | create result-object for INTERVENTION/MAIN
2026-06-13 22:07:51 | INFO | Hepatitis-B_20260613-220730 | save ScenarioResult for (<Scenario.INTERVENTION: 2>, <UncertaintyScenario.MAIN: 1>) to JSON file ./temp/Hepatitis-B_20260613-220730/Scenario_intervention_main.json
2026-06-13 22:07:51 | INFO | Hepatitis-B_20260613-220730 | successfully saved
2026-06-13 22:07:51 | INFO | Hepatitis-B_20260613-220730 | compute scenario (<Scenario.COMPARATOR: 1>, <UncertaintyScenario.HIGH: 2>)
2026-06-13 22:07:51 | INFO | Hepatitis-B_20260613-220730 | run scenario COMPARATOR for uncertainty HIGH
2026-06-13 22:07:51 | INFO | Hepatitis-B_20260613-220730 | get already fitted parameters
2026-06-13 22:07:51 | INFO | Hepatitis-B_20260613-220730 | compute immunity curves
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | compute primary results
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | compute primary results for FATAL
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | compute secondary results
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | create result-object for COMPARATOR/HIGH
2026-06-13 22:07:52 | INFO | Hepatitis-B_20260613-220730 | save ScenarioResult for (<Scenario.COMPARATOR: 1>, <UncertaintyScenario.HIGH: 2>) to JSON file ./temp/Hepatitis-B_20260613-220730/Scenario_comparator_high.json
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | successfully saved
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | compute scenario (<Scenario.INTERVENTION: 2>, <UncertaintyScenario.HIGH: 2>)
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | run scenario INTERVENTION for uncertainty HIGH
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | get already fitted parameters
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | compute immunity curves
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | compute primary results
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | compute primary results for FATAL
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | compute secondary results
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:07:53 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:07:54 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:07:54 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:07:54 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:07:54 | INFO | Hepatitis-B_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:07:54 | INFO | Hepatitis-B_20260613-220730 | create result-object for INTERVENTION/HIGH
2026-06-13 22:07:54 | INFO | Hepatitis-B_20260613-220730 | save ScenarioResult for (<Scenario.INTERVENTION: 2>, <UncertaintyScenario.HIGH: 2>) to JSON file ./temp/Hepatitis-B_20260613-220730/Scenario_intervention_high.json
2026-06-13 22:07:54 | INFO | Hepatitis-B_20260613-220730 | successfully saved
2026-06-13 22:07:54 | INFO | Hepatitis-B_20260613-220730 | make some result plots








2026-06-13 22:08:13 | INFO | Influenza_20260613-220730 | initialises OverallModel with config for scenario Influenza
2026-06-13 22:08:13 | INFO | Influenza_20260613-220730 | compute scenario (<Scenario.FIT: 0>, <UncertaintyScenario.MAIN: 1>)
2026-06-13 22:08:13 | INFO | Influenza_20260613-220730 | run scenario FIT for uncertainty MAIN
2026-06-13 22:08:13 | INFO | Influenza_20260613-220730 | fit parameters to reference
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | fit SEVERE parameters
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | fit SYMPTOMATIC parameters
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | fit FATAL parameters
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | get already computed immunity curves
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | compute primary results
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | compute primary results for FATAL
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | compute secondary results
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | create result-object for FIT/MAIN
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | save ScenarioResult for (<Scenario.FIT: 0>, <UncertaintyScenario.MAIN: 1>) to JSON file ./temp/Influenza_20260613-220730/Scenario_fit_main.json
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | successfully saved
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | compute scenario (<Scenario.COMPARATOR: 1>, <UncertaintyScenario.LOW: 0>)
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | run scenario COMPARATOR for uncertainty LOW
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | get already fitted parameters
2026-06-13 22:08:14 | INFO | Influenza_20260613-220730 | compute immunity curves
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | compute primary results
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | compute primary results for FATAL
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | compute secondary results
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | create result-object for COMPARATOR/LOW
2026-06-13 22:08:15 | INFO | Influenza_20260613-220730 | save ScenarioResult for (<Scenario.COMPARATOR: 1>, <UncertaintyScenario.LOW: 0>) to JSON file ./temp/Influenza_20260613-220730/Scenario_comparator_low.json
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | successfully saved
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | compute scenario (<Scenario.INTERVENTION: 2>, <UncertaintyScenario.LOW: 0>)
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | run scenario INTERVENTION for uncertainty LOW
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | get already fitted parameters
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | compute immunity curves
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | compute primary results
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | compute primary results for FATAL
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | compute secondary results
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:08:16 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | create result-object for INTERVENTION/LOW
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | save ScenarioResult for (<Scenario.INTERVENTION: 2>, <UncertaintyScenario.LOW: 0>) to JSON file ./temp/Influenza_20260613-220730/Scenario_intervention_low.json
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | successfully saved
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | compute scenario (<Scenario.COMPARATOR: 1>, <UncertaintyScenario.MAIN: 1>)
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | run scenario COMPARATOR for uncertainty MAIN
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | get already fitted parameters
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | compute immunity curves
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | compute primary results
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | compute primary results for FATAL
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | compute secondary results
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:08:17 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | create result-object for COMPARATOR/MAIN
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | save ScenarioResult for (<Scenario.COMPARATOR: 1>, <UncertaintyScenario.MAIN: 1>) to JSON file ./temp/Influenza_20260613-220730/Scenario_comparator_main.json
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | successfully saved
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | compute scenario (<Scenario.INTERVENTION: 2>, <UncertaintyScenario.MAIN: 1>)
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | run scenario INTERVENTION for uncertainty MAIN
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | get already fitted parameters
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | compute immunity curves
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | compute primary results
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | compute primary results for FATAL
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | compute secondary results
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:08:18 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | create result-object for INTERVENTION/MAIN
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | save ScenarioResult for (<Scenario.INTERVENTION: 2>, <UncertaintyScenario.MAIN: 1>) to JSON file ./temp/Influenza_20260613-220730/Scenario_intervention_main.json
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | successfully saved
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | compute scenario (<Scenario.COMPARATOR: 1>, <UncertaintyScenario.HIGH: 2>)
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | run scenario COMPARATOR for uncertainty HIGH
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | get already fitted parameters
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | compute immunity curves
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | compute primary results
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | compute primary results for FATAL
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | compute secondary results
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | create result-object for COMPARATOR/HIGH
2026-06-13 22:08:19 | INFO | Influenza_20260613-220730 | save ScenarioResult for (<Scenario.COMPARATOR: 1>, <UncertaintyScenario.HIGH: 2>) to JSON file ./temp/Influenza_20260613-220730/Scenario_comparator_high.json
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | successfully saved
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | compute scenario (<Scenario.INTERVENTION: 2>, <UncertaintyScenario.HIGH: 2>)
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | run scenario INTERVENTION for uncertainty HIGH
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | get already fitted parameters
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | compute immunity curves
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | compute primary results
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | compute primary results for SEVERE
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | compute primary results for SYMPTOMATIC
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | compute primary results for FATAL
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | compute secondary results
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalized
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deaths
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalDays
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for hospitalCosts
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for milds
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for extramuralCosts
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for workingSymptomatic
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveDays
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for sickLeaveCosts
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | attempt to compute secondary results for deathCosts
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | create result-object for INTERVENTION/HIGH
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | save ScenarioResult for (<Scenario.INTERVENTION: 2>, <UncertaintyScenario.HIGH: 2>) to JSON file ./temp/Influenza_20260613-220730/Scenario_intervention_high.json
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | successfully saved
2026-06-13 22:08:20 | INFO | Influenza_20260613-220730 | make some result plots








# close the logger instances
for c in configs.values():
file_handler = c.logger.handlers[0]
file_handler.close()
c.logger.removeHandler(file_handler)
# clean up
try:
shutil.rmtree(localfolder)
print('successfully cleaned up')
except:
print('cleaning up was unsuccessful')successfully cleaned up
- 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 [Techreport]. TU Wien. 10.48436/SQVCQ-QWG65
- 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
- Bicher, M., Urach, C., & Popper, N. (2018, December). GEPOC ABM: A GENERIC AGENT-BASED POPULATION MODEL FOR AUSTRIA. 2018 Winter Simulation Conference (WSC). 10.1109/wsc.2018.8632170