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,
productivity_loss_infection = 1
)
Arguments
- x
A
<daedalus_output>
object from a call todaedalus()
.- 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.
- productivity_loss_infection
A single number in the range \([0, 1]\) giving the loss in productivity associated with symptomatic infection. Currently defaults to 1.0 for compatibility with earlier function versions.
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. Only the interest rate is converted to an daily value
from an annual one for use in compounding.
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.
Interest on spending and fiscal cost
We assume that the government borrows to spend on pandemic mitigation measures outlined above such that the total cost to the public 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.
The interest rate is modelled as being constant over time. Users pass the
annual rate of interest as a percentage, and this is converted to a daily
rate using the internal function annual_rate_daily()
as
\((1 + R_t^T)^{1 / 365} - 1\).
Total public debt
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 (including on pandemic mitigation), and interest to be paid on the debt,
less the revenues collected from taxation, \(\mu \text{GVA}_{t-1}\), where \(\mu\) is the mean rate of taxation.
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
)
# Compare public debt added estimates with other estimates from Covid-19:
# https://www.ctf.ca/EN/EN/Newsletters/Perspectives/2020/3/200302.aspx
get_fiscal_costs(o)
#> $fiscal_costs
#> $fiscal_costs$fiscal_cost
#> [1] 0.000000e+00 8.774001e-05 1.637731e-04 2.527975e-04 3.702200e-04
#> [6] 5.331939e-04 7.647128e-04 1.097227e-03 1.577351e-03 2.272517e-03
#> [11] 3.280548e-03 4.743503e-03 6.867779e-03 9.953286e-03 1.443585e-02
#> [16] 2.094880e-02 3.041249e-02 4.416432e-02 6.414765e-02 9.318621e-02
#> [21] 1.353825e-01 1.966964e-01 2.857841e-01 4.152152e-01 6.032345e-01
#> [26] 8.763103e-01 1.272810e+00 1.848284e+00 2.683027e+00 3.892817e+00
#> [31] 5.643996e+00
#>
#> $fiscal_costs$gva_support
#> [1] 8.774001e-05 7.602367e-05 8.900678e-05 1.173954e-04 1.629341e-04
#> [6] 2.314616e-04 3.324317e-04 4.800060e-04 6.949972e-04 1.007787e-03
#> [11] 1.462603e-03 2.123766e-03 3.084769e-03 4.481493e-03 6.511402e-03
#> [16] 9.461440e-03 1.374856e-02 1.997859e-02 2.903166e-02 4.218631e-02
#> [21] 6.129933e-02 8.906659e-02 1.294004e-01 1.879747e-01 2.730109e-01
#> [26] 3.964052e-01 5.753371e-01 8.345448e-01 1.209501e+00 1.750762e+00
#> [31] 2.529729e+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] 9.980435
#>
#>
#> $public_debt
#> $public_debt$public_debt
#> [1] 0.0000 438.7002 877.4476 1316.2421 1755.0839 2193.9729
#> [7] 2632.9092 3071.8930 3510.9243 3950.0033 4389.1302 4828.3054
#> [13] 5267.5293 5706.8028 6146.1269 6585.5030 7024.9334 7464.4213
#> [19] 7903.9714 8343.5905 8783.2883 9223.0793 9662.9842 10103.0332
#> [25] 10543.2700 10983.7583 11424.5900 11865.8985 12307.8765 12750.8020
#> [31] 13195.0740
#>
#> $public_debt$added_public_debt
#> [1] 13195.07
#>
#>