| Title: | Debt Sustainability Analysis and Fiscal Risk Assessment |
|---|---|
| Description: | Analyses government debt sustainability using the standard debt dynamics framework from Blanchard (1990) <doi:10.1787/budget-v2-art12-en> and the IMF Debt Sustainability Analysis methodology (IMF, 2013) and the Sovereign Risk and Debt Sustainability Framework (IMF, 2022). Projects debt-to-GDP paths, decomposes historical debt changes into interest, growth, and primary balance contributions, and estimates fiscal reaction functions following Bohn (1998) <doi:10.1162/003355398555793>. Produces stochastic fan charts via Monte Carlo simulation, standardised stress tests, and IMF- style heat map risk assessments. Computes S1/S2 sustainability gap indicators used by the European Commission. All methods are pure computation with no external dependencies beyond base R; works with fiscal data from any source. |
| Authors: | Charles Coverdale [aut, cre] |
| Maintainer: | Charles Coverdale <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.3 |
| Built: | 2026-05-30 15:06:56 UTC |
| Source: | https://github.com/charlescoverdale/debtkit |
Estimates the fiscal reaction function following Bohn (1998):
pb(t) = rho * d(t-1) + alpha * Z(t) + epsilon(t),
where pb is the primary balance-to-GDP ratio, d is lagged
debt-to-GDP, and Z is a matrix of control variables.
dk_bohn_test( primary_balance, debt, controls = NULL, method = c("ols", "rolling", "quadratic"), window = NULL, robust_se = FALSE )dk_bohn_test( primary_balance, debt, controls = NULL, method = c("ols", "rolling", "quadratic"), window = NULL, robust_se = FALSE )
primary_balance |
Numeric vector of primary balance-to-GDP ratios. |
debt |
Numeric vector of lagged debt-to-GDP ratios (same length as
|
controls |
Optional data.frame of control variables (same number of
rows as |
method |
Character; |
window |
Integer; rolling window size. Required when
|
robust_se |
Logical; if |
A positive and statistically significant rho indicates that the
government systematically raises the primary surplus in response to
rising debt, satisfying a sufficient condition for debt sustainability.
An S3 object of class dk_bohn with components:
Estimated fiscal response coefficient (full sample or last rolling window).
Standard error of rho.
p-value for the test H0: rho = 0.
Logical; TRUE if rho > 0 and rho_pvalue < 0.05.
The lm object from the full-sample (OLS/quadratic) or
last-window (rolling) regression.
The method used ("ols", "rolling", or "quadratic").
A data.frame with columns index, rho, rho_lower,
rho_upper if method = "rolling"; NULL otherwise.
Logical; whether HAC standard errors were used.
Coefficient on debt squared (only for method = "quadratic").
Standard error of rho2 (quadratic only).
p-value for rho2 (quadratic only).
Debt level where fiscal response peaks,
-rho/(2*rho2) (quadratic only).
Bohn, H. (1998). "The Behavior of U.S. Public Debt and Deficits." Quarterly Journal of Economics, 113(3), 949–963. doi:10.1162/003355398555793
Ghosh, A.R., Kim, J.I., Mendoza, E.G., Ostry, J.D. and Qureshi, M.S. (2013). "Fiscal Fatigue, Fiscal Space and Debt Sustainability in Advanced Economies." The Economic Journal, 123(566), F4–F30.
# Simulate data with positive fiscal response set.seed(42) n <- 50 debt <- cumsum(rnorm(n, 0.01, 0.02)) + 0.6 pb <- 0.04 * debt + rnorm(n, 0, 0.005) result <- dk_bohn_test(pb, debt) print(result)# Simulate data with positive fiscal response set.seed(42) n <- 50 debt <- cumsum(rnorm(n, 0.01, 0.02)) + 0.6 pb <- 0.04 * debt + rnorm(n, 0, 0.005) result <- dk_bohn_test(pb, debt) print(result)
Produces a side-by-side comparison of multiple debt-to-GDP projections, aligning them by year and computing terminal values.
dk_compare(..., metric = "debt")dk_compare(..., metric = "debt")
... |
Named |
metric |
Character. The metric to compare. Currently only |
An S3 object of class dk_comparison containing:
A data.frame with a year column and one column per
scenario, giving the debt-to-GDP path.
Named numeric vector of terminal debt-to-GDP ratios.
d <- dk_sample_data() base <- dk_project(tail(d$debt, 1), 0.03, 0.04, 0.01, horizon = 5) austerity <- dk_project(tail(d$debt, 1), 0.03, 0.04, 0.03, horizon = 5) stimulus <- dk_project(tail(d$debt, 1), 0.03, 0.05, -0.01, horizon = 5) comp <- dk_compare( Baseline = base, Austerity = austerity, Stimulus = stimulus ) comp plot(comp)d <- dk_sample_data() base <- dk_project(tail(d$debt, 1), 0.03, 0.04, 0.01, horizon = 5) austerity <- dk_project(tail(d$debt, 1), 0.03, 0.04, 0.03, horizon = 5) stimulus <- dk_project(tail(d$debt, 1), 0.03, 0.05, -0.01, horizon = 5) comp <- dk_compare( Baseline = base, Austerity = austerity, Stimulus = stimulus ) comp plot(comp)
Breaks down observed year-on-year changes in the debt-to-GDP ratio into four components:
dk_decompose(debt, interest_rate, gdp_growth, primary_balance, years = NULL)dk_decompose(debt, interest_rate, gdp_growth, primary_balance, years = NULL)
debt |
Numeric vector of historical debt-to-GDP ratios. |
interest_rate |
Numeric vector of effective interest rates on
government debt. Must be the same length as |
gdp_growth |
Numeric vector of nominal GDP growth rates. Must be the
same length as |
primary_balance |
Numeric vector of primary balance-to-GDP ratios
(positive = surplus). Must be the same length as |
years |
Optional integer vector of year labels. Must be the same
length as |
Interest effect:
Growth effect:
Primary balance effect:
Stock-flow adjustment (residual): actual change minus the sum of the three identified components.
This is the standard decomposition used by the IMF (2013) and European Commission. The SFA residual captures privatisation receipts, exchange-rate valuation changes, below-the-line operations, and any measurement error.
An S3 object of class dk_decomposition containing:
A data.frame with columns year, debt, change,
interest_effect, growth_effect, snowball_effect,
primary_balance_effect, and sfa.
The year labels used.
Blanchard, O.J. (1990). Suggestions for a New Set of Fiscal Indicators. OECD Economics Department Working Papers, No. 79. doi:10.1787/budget-v2-art12-en
International Monetary Fund (2013). Staff Guidance Note for Public Debt Sustainability Analysis in Market-Access Countries. IMF Policy Paper.
d <- dk_sample_data() dec <- dk_decompose( debt = d$debt, interest_rate = d$interest_rate, gdp_growth = d$gdp_growth, primary_balance = d$primary_balance, years = d$years ) dec plot(dec)d <- dk_sample_data() dec <- dk_decompose( debt = d$debt, interest_rate = d$interest_rate, gdp_growth = d$gdp_growth, primary_balance = d$primary_balance, years = d$years ) dec plot(dec)
Estimates the joint distribution of GDP growth, interest rate, and primary balance shocks for use in stochastic debt sustainability analysis. Three estimation methods are supported: a VAR(1) model (default), residual bootstrap, and a simple multivariate normal fit.
dk_estimate_shocks( gdp_growth, interest_rate, primary_balance, method = c("var", "bootstrap", "normal"), years = NULL )dk_estimate_shocks( gdp_growth, interest_rate, primary_balance, method = c("var", "bootstrap", "normal"), years = NULL )
gdp_growth |
Numeric vector of historical real GDP growth rates. |
interest_rate |
Numeric vector of historical nominal (or real) interest rates. |
primary_balance |
Numeric vector of historical primary balance-to-GDP ratios. |
method |
Character; one of |
years |
Optional numeric vector of year labels (same length as data). |
For method = "var", a VAR(1) is estimated equation-by-equation via OLS
on the lagged system. The residual variance-covariance matrix captures the
joint shock distribution. For method = "bootstrap", the same VAR(1) is
estimated and residuals are stored for block resampling. For
method = "normal", the sample means and covariance of the raw series are
used directly.
An S3 object of class dk_shocks with components:
3x3 variance-covariance matrix with rows/columns named
growth, interest_rate, primary_balance.
Named numeric vector of variable means.
The estimation method used.
Matrix of residuals (for "var" and "bootstrap") or
NULL (for "normal").
VAR(1) coefficient matrix (for "var") or
NULL.
Number of observations used.
set.seed(1) n <- 30 g <- rnorm(n, 0.02, 0.015) r <- rnorm(n, 0.03, 0.01) pb <- rnorm(n, -0.02, 0.01) shocks <- dk_estimate_shocks(g, r, pb) print(shocks)set.seed(1) n <- 30 g <- rnorm(n, 0.02, 0.015) r <- rnorm(n, 0.03, 0.01) pb <- rnorm(n, -0.02, 0.01) shocks <- dk_estimate_shocks(g, r, pb) print(shocks)
Projects debt-to-GDP paths via Monte Carlo simulation using the standard debt dynamics equation. At each step, correlated shocks to growth, the interest rate, and the primary balance are drawn from a multivariate normal distribution and added to the baseline paths. The result is a fan chart showing the distribution of projected debt paths.
dk_fan_chart( debt, interest_rate, gdp_growth, primary_balance, shocks = NULL, shock_vcov = NULL, n_sim = 1000L, horizon = 5L, confidence = c(0.1, 0.25, 0.5, 0.75, 0.9), seed = NULL )dk_fan_chart( debt, interest_rate, gdp_growth, primary_balance, shocks = NULL, shock_vcov = NULL, n_sim = 1000L, horizon = 5L, confidence = c(0.1, 0.25, 0.5, 0.75, 0.9), seed = NULL )
debt |
Numeric scalar; initial debt-to-GDP ratio. |
interest_rate |
Numeric scalar or vector of length |
gdp_growth |
Numeric scalar or vector of length |
primary_balance |
Numeric scalar or vector of length |
shocks |
A |
shock_vcov |
Optional 3x3 variance-covariance matrix (alternative to
|
n_sim |
Integer; number of Monte Carlo simulations (default 1000). |
horizon |
Integer; projection horizon in years (default 5). |
confidence |
Numeric vector of quantile levels for fan bands
(default |
seed |
Optional integer seed for reproducibility. |
An S3 object of class dk_fan with components:
Matrix of dimension n_sim x (horizon + 1)
containing all simulated debt paths.
Matrix of quantiles at each time step, with rows
corresponding to the confidence levels.
Numeric vector of length horizon + 1; the
deterministic baseline debt path.
The quantile levels used.
The projection horizon.
Named list with the probability of debt exceeding 60 percent, 90 percent, and 120 percent of GDP at the terminal year.
set.seed(1) n <- 30 g <- rnorm(n, 0.02, 0.015) r <- rnorm(n, 0.03, 0.01) pb <- rnorm(n, -0.02, 0.01) shocks <- dk_estimate_shocks(g, r, pb) fan <- dk_fan_chart( debt = 0.90, interest_rate = 0.03, gdp_growth = 0.02, primary_balance = -0.02, shocks = shocks, n_sim = 500, horizon = 10, seed = 42 ) print(fan)set.seed(1) n <- 30 g <- rnorm(n, 0.02, 0.015) r <- rnorm(n, 0.03, 0.01) pb <- rnorm(n, -0.02, 0.01) shocks <- dk_estimate_shocks(g, r, pb) fan <- dk_fan_chart( debt = 0.90, interest_rate = 0.03, gdp_growth = 0.02, primary_balance = -0.02, shocks = shocks, n_sim = 500, horizon = 10, seed = 42 ) print(fan)
Computes gross financing needs (GFN) as a share of GDP over a projection horizon. GFN represents the total amount of new borrowing a government requires each year to cover its primary deficit, interest payments, and maturing debt:
dk_gfn(debt, interest_rate, maturity_profile, primary_balance, horizon = 5)dk_gfn(debt, interest_rate, maturity_profile, primary_balance, horizon = 5)
debt |
Numeric scalar. Initial debt-to-GDP ratio. |
interest_rate |
Numeric scalar or vector of length |
maturity_profile |
Numeric vector or scalar. If a vector, gives the
share of GDP maturing in each year of the horizon. If a scalar, interpreted
as the average maturity in years; debt is assumed to mature uniformly at
|
primary_balance |
Numeric scalar or vector of length |
horizon |
Integer scalar. Projection horizon in years. Default |
where is the primary balance (positive = surplus), is the
effective interest rate, is debt-to-GDP, and is maturing
debt as a share of GDP.
A data.frame with columns:
Year index (1 to horizon).
Primary deficit (negative of primary balance).
Interest payments as a share of GDP.
Maturing debt as a share of GDP.
Total gross financing needs as a share of GDP.
International Monetary Fund (2013). Staff Guidance Note for Public Debt Sustainability Analysis in Market-Access Countries. IMF Policy Paper.
# Scalar average maturity of 7 years dk_gfn(debt = 0.90, interest_rate = 0.03, maturity_profile = 7, primary_balance = -0.02) # Explicit maturity profile dk_gfn(debt = 0.90, interest_rate = 0.03, maturity_profile = c(0.15, 0.12, 0.10, 0.08, 0.05), primary_balance = -0.02)# Scalar average maturity of 7 years dk_gfn(debt = 0.90, interest_rate = 0.03, maturity_profile = 7, primary_balance = -0.02) # Explicit maturity profile dk_gfn(debt = 0.90, interest_rate = 0.03, maturity_profile = c(0.15, 0.12, 0.10, 0.08, 0.05), primary_balance = -0.02)
Classifies sovereign debt risk as low, medium, or high based on IMF (2013) thresholds for debt-to-GDP, gross financing needs, and optional debt-profile indicators. Advanced economies and emerging markets use different thresholds.
dk_heat_map( debt, gross_financing_needs, debt_profile = NULL, country_type = c("ae", "em") )dk_heat_map( debt, gross_financing_needs, debt_profile = NULL, country_type = c("ae", "em") )
debt |
Numeric scalar. Debt-to-GDP ratio. |
gross_financing_needs |
Numeric scalar. Gross financing needs as a share of GDP. |
debt_profile |
Optional named list of debt-profile indicators (all as ratios):
|
country_type |
Character. Either |
An S3 object of class dk_heatmap containing:
Named list of risk ratings ("low", "medium", or
"high") for each indicator.
Character. Overall risk level: "high" if any indicator is
high, "medium" if any is medium, otherwise "low".
Named list of input values.
The thresholds used for classification.
The country type used.
International Monetary Fund (2013). Staff Guidance Note for Public Debt Sustainability Analysis in Market-Access Countries. IMF Policy Paper.
International Monetary Fund (2022). Staff Guidance Note on the Sovereign Risk and Debt Sustainability Framework for Market Access Countries. IMF Policy Paper.
hm <- dk_heat_map( debt = 0.90, gross_financing_needs = 0.18, debt_profile = list(fx_share = 0.30, share_st_debt = 0.15), country_type = "ae" ) hmhm <- dk_heat_map( debt = 0.90, gross_financing_needs = 0.18, debt_profile = list(fx_share = 0.30, share_st_debt = 0.15), country_type = "ae" ) hm
Projects a debt-to-GDP ratio forward using the standard debt dynamics equation:
dk_project( debt, interest_rate, gdp_growth, primary_balance, sfa = 0, horizon = 10, date = NULL )dk_project( debt, interest_rate, gdp_growth, primary_balance, sfa = 0, horizon = 10, date = NULL )
debt |
Numeric scalar. Initial debt-to-GDP ratio (e.g., |
interest_rate |
Numeric scalar or vector of length |
gdp_growth |
Numeric scalar or vector of length |
primary_balance |
Numeric scalar or vector of length |
sfa |
Numeric scalar or vector of length |
horizon |
Integer scalar. Number of years to project forward. Default
|
date |
Optional |
where is the debt-to-GDP ratio, is the effective nominal
interest rate on government debt, is nominal GDP growth,
is the primary balance as a share of GDP (positive = surplus),
and captures stock-flow adjustments (e.g. privatisation receipts,
exchange-rate valuation changes, below-the-line operations).
An S3 object of class dk_projection containing:
Numeric vector of length horizon + 1, giving the
debt-to-GDP ratio from the initial period through the terminal period.
A data.frame with columns year, debt,
interest_effect, growth_effect, snowball_effect,
primary_balance_effect, sfa_effect, and change.
The projection horizon.
A list storing all input parameters.
Blanchard, O.J. (1990). Suggestions for a New Set of Fiscal Indicators. OECD Economics Department Working Papers, No. 79. doi:10.1787/budget-v2-art12-en
International Monetary Fund (2013). Staff Guidance Note for Public Debt Sustainability Analysis in Market-Access Countries. IMF Policy Paper.
d <- dk_sample_data() proj <- dk_project( debt = tail(d$debt, 1), interest_rate = 0.03, gdp_growth = 0.04, primary_balance = 0.01 ) proj plot(proj)d <- dk_sample_data() proj <- dk_project( debt = tail(d$debt, 1), interest_rate = 0.03, gdp_growth = 0.04, primary_balance = 0.01 ) proj plot(proj)
Computes the interest rate-growth differential (), a key
indicator of debt sustainability. When , debt grows faster than
the economy (the "snowball effect" is adverse) and a primary surplus is
needed to stabilise the debt ratio. When , the government can
run a primary deficit and still see the debt ratio fall.
dk_rg(interest_rate, gdp_growth, inflation = NULL, debt = NULL)dk_rg(interest_rate, gdp_growth, inflation = NULL, debt = NULL)
interest_rate |
Numeric. Effective nominal interest rate on government debt. Scalar or vector. |
gdp_growth |
Numeric. Nominal GDP growth rate. Scalar or vector (same
length as |
inflation |
Numeric or |
debt |
Numeric or |
If debt is supplied, the function also computes the debt-stabilising
primary balance: the primary surplus (as a share of GDP) required to hold
the debt-to-GDP ratio constant at its current level. This is given by:
If inflation is supplied, the function computes the real
differential by deflating both the interest rate and GDP growth:
and
.
A named list with:
Numeric vector. The nominal
differential.
Numeric vector. The real differential.
Only present if inflation was supplied.
Numeric vector. The debt-stabilising primary
balance as a share of GDP. Only present if debt was supplied.
Blanchard, O.J. (1990). Suggestions for a New Set of Fiscal Indicators. OECD Economics Department Working Papers, No. 79. doi:10.1787/budget-v2-art12-en
Barrett, P. (2018). Interest-Growth Differentials and Debt Limits in Advanced Economies. IMF Working Paper, WP/18/82.
# Simple scalar case dk_rg(interest_rate = 0.04, gdp_growth = 0.03) # With debt: compute stabilising primary balance dk_rg(interest_rate = 0.04, gdp_growth = 0.03, debt = 0.90) # With inflation: compute real r-g dk_rg(interest_rate = 0.04, gdp_growth = 0.05, inflation = 0.02) # Vector case using sample data d <- dk_sample_data() dk_rg( interest_rate = d$interest_rate, gdp_growth = d$gdp_growth, debt = d$debt )# Simple scalar case dk_rg(interest_rate = 0.04, gdp_growth = 0.03) # With debt: compute stabilising primary balance dk_rg(interest_rate = 0.04, gdp_growth = 0.03, debt = 0.90) # With inflation: compute real r-g dk_rg(interest_rate = 0.04, gdp_growth = 0.05, inflation = 0.02) # Vector case using sample data d <- dk_sample_data() dk_rg( interest_rate = d$interest_rate, gdp_growth = d$gdp_growth, debt = d$debt )
Provides built-in sample datasets for running examples and tests without requiring external data.
dk_sample_data(country = c("sample", "high_debt"))dk_sample_data(country = c("sample", "high_debt"))
country |
Character. Which sample dataset to return. Options:
|
A list with components:
Integer vector of years.
Numeric vector of debt-to-GDP ratios.
Numeric vector of effective interest rates on government debt.
Numeric vector of nominal GDP growth rates.
Numeric vector of primary balance-to-GDP ratios (positive = surplus).
d <- dk_sample_data() d$debt d$yearsd <- dk_sample_data() d$debt d$years
Applies six standardised IMF stress-test scenarios to a baseline debt projection using the debt dynamics equation:
dk_stress_test( debt, interest_rate, gdp_growth, primary_balance, horizon = 5, growth_shock = -0.01, interest_shock = 0.02, exchange_shock = 0.15, fx_share = 0, pb_shock = -0.01, contingent_shock = 0.1, calibrate = NULL )dk_stress_test( debt, interest_rate, gdp_growth, primary_balance, horizon = 5, growth_shock = -0.01, interest_shock = 0.02, exchange_shock = 0.15, fx_share = 0, pb_shock = -0.01, contingent_shock = 0.1, calibrate = NULL )
debt |
Numeric scalar. Initial debt-to-GDP ratio. |
interest_rate |
Numeric scalar or vector of length |
gdp_growth |
Numeric scalar or vector of length |
primary_balance |
Numeric scalar or vector of length |
horizon |
Integer scalar. Projection horizon in years. Default |
growth_shock |
Numeric scalar. Percentage-point reduction in GDP growth
applied in the first two years. Default |
interest_shock |
Numeric scalar. Percentage-point increase in the
interest rate. Default |
exchange_shock |
Numeric scalar. Depreciation fraction applied to
foreign-currency debt. Default |
fx_share |
Numeric scalar. Share of debt denominated in foreign
currency. Default |
pb_shock |
Numeric scalar. Percentage-point deterioration in primary
balance in the first two years. Default |
contingent_shock |
Numeric scalar. One-off increase in debt-to-GDP from
contingent liabilities materialising. Default |
calibrate |
Optional named list for data-driven shock calibration.
Should contain numeric vectors |
The six scenarios are:
Growth shock: GDP growth reduced by growth_shock for the first
two years.
Interest rate shock: interest rate increased by interest_shock
for the full horizon.
Exchange rate shock: debt increases by
debt * fx_share * exchange_shock in year 1 (one-off stock-flow
adjustment from currency depreciation).
Primary balance shock: primary balance reduced by pb_shock for
the first two years.
Combined shock: simultaneous growth shock of growth_shock / 2
and interest rate shock of interest_shock / 2.
Contingent liabilities: one-off debt increase of
contingent_shock in year 1.
An S3 object of class dk_stress containing:
A data.frame with columns year, baseline, growth,
interest_rate, exchange_rate, primary_balance, combined, and
contingent.
Named numeric vector of terminal debt-to-GDP under each scenario.
A list storing all input parameters.
International Monetary Fund (2013). Staff Guidance Note for Public Debt Sustainability Analysis in Market-Access Countries. IMF Policy Paper.
International Monetary Fund (2022). Staff Guidance Note on the Sovereign Risk and Debt Sustainability Framework for Market Access Countries. IMF Policy Paper.
st <- dk_stress_test( debt = 0.90, interest_rate = 0.03, gdp_growth = 0.04, primary_balance = 0.01, fx_share = 0.20 ) st plot(st)st <- dk_stress_test( debt = 0.90, interest_rate = 0.03, gdp_growth = 0.04, primary_balance = 0.01, fx_share = 0.20 ) st plot(st)
Computes the S1 and S2 fiscal sustainability gap indicators used by the European Commission to assess the size of the permanent budgetary adjustment required to ensure debt sustainability.
dk_sustainability_gap( debt, structural_balance, gdp_growth, interest_rate, ageing_costs = 0, target_debt = 0.6, target_year = 20, indicator = c("both", "S1", "S2") )dk_sustainability_gap( debt, structural_balance, gdp_growth, interest_rate, ageing_costs = 0, target_debt = 0.6, target_year = 20, indicator = c("both", "S1", "S2") )
debt |
Numeric scalar. Current debt-to-GDP ratio. |
structural_balance |
Numeric scalar. Current structural primary balance as a share of GDP (positive = surplus). |
gdp_growth |
Numeric scalar. Real GDP growth rate. |
interest_rate |
Numeric scalar. Real interest rate. |
ageing_costs |
Numeric scalar. Projected increase in age-related
expenditure as percentage points of GDP. Default |
target_debt |
Numeric scalar. Target debt-to-GDP ratio for S1.
Default |
target_year |
Integer scalar. Number of years to reach the target
debt ratio. Default |
indicator |
Character. Which indicator to compute: |
S1 measures the permanent adjustment in the structural primary balance
needed to bring the debt-to-GDP ratio to target_debt in target_year
years, taking into account projected increases in age-related expenditure.
S2 measures the permanent adjustment needed to stabilise the debt-to-GDP ratio over an infinite horizon, incorporating the full net present value of future increases in age-related spending.
An S3 object of class dk_sgap containing:
The S1 sustainability gap (or NA if not requested).
The S2 sustainability gap (or NA if not requested).
Risk classification for S1: "low", "medium", or
"high".
Risk classification for S2: "low", "medium", or
"high".
The required structural primary balance implied by S1.
The current structural primary balance.
A list storing all input parameters.
European Commission (2012). Fiscal Sustainability Report 2012. European Economy 8/2012, Directorate-General for Economic and Financial Affairs.
dk_sustainability_gap( debt = 0.90, structural_balance = -0.01, gdp_growth = 0.015, interest_rate = 0.025, ageing_costs = 0.02 )dk_sustainability_gap( debt = 0.90, structural_balance = -0.01, gdp_growth = 0.015, interest_rate = 0.025, ageing_costs = 0.02 )