A helper function that post-processes a <daedalus_output>
object to
calculate the costs to a national government (fiscal costs) of responding to
a pandemic. Includes costs of economic support, vaccinations given, and NPIs
administered or implemented.
Usage
get_fiscal_costs(
x,
support_level = 0.2,
price_vax = 1,
price_npi = 1,
uptake_npi = 1,
interest_rate = 4,
tax_rate = 35,
spending_rate = 45,
starting_debt = 0
)
Arguments
- x
A
<daedalus_output>
object.- support_level
The proportion of pandemic-related economic losses that a government compensates, as a proportion.
- price_vax
The per-dose price of vaccination.
- price_npi
The per-day and per-person price of implementing any pandemic response. May include costs such as testing or masks.
- uptake_npi
The extent to which NPIs are taken up by the population; essentially a number that modifies (reduces) the total cost of implementing an NPI.
- interest_rate
The annual interest rate on government borrowing for pandemic response.
- tax_rate
The annual mean tax rate on economic output; used to calculate government revenue.
- spending_rate
The annual mean rate of public spending as a percentage of GDP.
- starting_debt
The value of national starting debt. Currently assumed to be zero while country-specific data are collected.
Value
A two-element list giving:
A list of
fiscal_costs
with elements giving the fiscal costs \(\text{TCG_t}\) and a breakdown of these costs, as well as interest;A list of
public_debt
of the public debt \(b_t\), which is the net of baseline public spending, pandemic response costs, and pandemic-impacted revenue.
Details
Default argument values are intended to be representative. This
function is intended to be called after daedalus()
and parameters
required to compute fiscal costs may need to be bundled along with model
outputs.
Note that all rates (interest rate, spending rate, and tax rate) are given as
annual percentages, and are simply divided by 365 to give the daily
rate.
Public spending
Spending is calculated as: \(G_t = \sigma(\text{GVA}^* - \text{GVA}_t) + Cv_t + Cp_t\)
where \(Cv_t\) is the time-specific cost of vaccination, and is calculated as the cost of new vaccinations in each timestep: \(P_v \times \delta V_t\) .
\(Cp_t\) is the time-specific cost of implementing pandemic response, and is calculated as \(\psi (\bar N - D_t) P_p\), where \(\bar N - D_t\) is the remaining number of individuals in the population, and \(\psi\) is the proportion taking up any protection offered by the response.
The total cost to the public of the pandemic over each day of the pandemic is assumed to be made up of borrowing, and is then \(\text{TCG}_t = G_t + (1 + R_t^T) \text{TCG}_{t - 1}\), where \(R_t^T\) is the daily rate of interest to be paid on the borrowed amount. This rate is currently modelled as being constant over time.
The total public debt at the end of the pandemic \(b_t\) is then the sum of total public spending on the pandemic \(\text{TCG}_t\), existing day-to-day public spending \(\bar G\) which is assumed to be a fraction of daily GDP \(\nu \text{GDP}\), existing debt owed due to past daily spending, interest to be paid on the debt, less the revenues collected \(\mu \text{GVA}_{t-1}\). The daily GVA is the pre-pandemic GVA scaled by the available labour supply during the pandemic, taking into account labour restrictions due to illness-related absences and deaths, and response-related restrictions.
GDP is calculated as the sum of sector-specific daily GVA, and existing debt is currently assumed to be zero and is not included in the equation.
\(b_t = \bar G + \text{TCG}_{t-1} + (1 + R_{t-1}^T) b_{t-1} - \mu \text{GVA}_{t-1} \)
Examples
# get fiscal costs for UK with SARS-CoV-2
# and both closures and vaccinations
o <- daedalus(
"GBR", "sars_cov_2_pre_alpha",
"economic_closures", "high",
time_end = 100
)
fc <- get_fiscal_costs(o)
# also works when no closures are applied
o <- daedalus(
"CAN", "influenza_2009",
time_end = 30
)
get_fiscal_costs(o)
#> $fiscal_costs
#> $fiscal_costs$fiscal_cost
#> [1] 0.000000e+00 8.774001e-05 1.732363e-04 2.886612e-04 4.542043e-04
#> [6] 6.939264e-04 1.041577e-03 1.545872e-03 2.277542e-03 3.339404e-03
#> [11] 4.880950e-03 7.119506e-03 1.037097e-02 1.509446e-02 2.195724e-02
#> [16] 3.192901e-02 4.641897e-02 6.747487e-02 9.807233e-02 1.425350e-01
#> [21] 2.071446e-01 3.010267e-01 4.374359e-01 6.356191e-01 9.235136e-01
#> [26] 1.341650e+00 1.948782e+00 2.829981e+00 4.108224e+00 5.960848e+00
#> [31] 8.642689e+00
#>
#> $fiscal_costs$gva_support
#> [1] 8.774001e-05 8.453478e-05 1.135264e-04 1.623796e-04 2.347445e-04
#> [6] 3.400459e-04 4.928809e-04 7.147282e-04 1.036903e-03 1.504950e-03
#> [11] 2.185066e-03 3.173438e-03 4.609837e-03 6.697363e-03 9.731148e-03
#> [16] 1.414004e-02 2.054720e-02 2.985802e-02 4.338789e-02 6.304756e-02
#> [21] 9.161205e-02 1.331103e-01 1.933893e-01 2.809288e-01 4.080157e-01
#> [26] 5.924288e-01 8.598430e-01 1.247229e+00 1.807603e+00 2.616516e+00
#> [31] 3.780682e+00
#>
#> $fiscal_costs$vax_support
#> [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#>
#> $fiscal_costs$npi_support
#> [1] 0
#>
#> $fiscal_costs$interest_value
#> [1] 15.57916
#>
#>
#> $public_debt
#> $public_debt$public_debt
#> [1] 0.0000 120.1919 241.7010 364.5417 488.7287 614.2768 741.2009
#> [8] 869.5162 999.2380 1130.3818 1262.9636 1396.9993 1532.5054 1669.4986
#> [15] 1807.9961 1948.0160 2089.5768 2232.6985 2377.4024 2523.7121 2671.6542
#> [22] 2821.2600 2972.5666 3125.6206 3280.4814 3437.2273 3595.9638 3756.8355
#> [29] 3920.0433 4085.8687 4254.7082
#>
#> $public_debt$added_public_debt
#> [1] 4254.708
#>
#>