Skip to contents

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 to daedalus().

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
#> 
#>