Central Government Debt

Data - OECD


Info

source dataset Title .html .rData
oecd GOV_DEBT Central Government Debt 2026-08-13 2026-08-02

Data on public debt

source dataset Title .html .rData
eurostat ei_mfir_m Interest rates - monthly data 2026-08-13 2026-08-13
eurostat gov_10q_ggdebt Quarterly government debt 2026-08-13 2026-08-12
fred r Interest Rates 2026-08-12 2026-08-12
fred saving Saving - saving 2026-08-12 2026-08-12
gfd debt Debt 2021-08-22 2026-08-01
imf FM Fiscal Monitor (FM) 2026-07-25 2026-08-12
imf GGXCNL_G01_GDP_PT Net lending/borrowing (also referred as overall balance) (% of GDP) 2026-08-12 2026-08-01
imf GGXONLB_G01_GDP_PT Primary net lending/borrowing (also referred as primary balance) (% of GDP) 2026-08-12 2026-08-01
imf GGXWDN_G01_GDP_PT Net debt (% of GDP) 2026-08-12 2026-08-01
imf HPDD NA NA NA
oecd QASA_TABLE7PSD Quarterly Sector Accounts - Public Sector Debt, consolidated, nominal value 2026-08-13 2026-08-02
wdi GC.DOD.TOTL.GD.ZS Central government debt, total (% of GDP) 2026-08-12 2026-08-12
wdi GC.XPN.INTP.CN Interest payments (current LCU) 2026-08-12 2026-08-12
wdi GC.XPN.INTP.RV.ZS Interest payments (% of revenue) 2026-08-12 2026-08-12
wdi GC.XPN.INTP.ZS Interest payments (% of expense) 2026-08-12 2026-08-12

LAST_COMPILE

LAST_COMPILE
2026-08-14

Last

obsTime Nobs
2010 4238

DVAR

Code
GOV_DEBT |>
  left_join(GOV_DEBT_var$DVAR, by = "DVAR") |>
  group_by(DVAR, Dvar) |>
  summarise(Nobs = n()) |>
  print_table_conditional()

LOCATION

Code
GOV_DEBT |>
  left_join(GOV_DEBT_var$COU, by = "COU") |>
  group_by(COU, Cou) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(gsub(" ", "-", Cou))),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

Biggest Debt in $

Code
GOV_DEBT |>
  filter(DVAR == "3",
         UNIT == "USD") |>
  left_join(GOV_DEBT_var$COU, by = "COU") |>
  group_by(COU, Cou) |>
  summarise(year1 = first(obsTime),
            value1 = first(obsValue),
            year2 = last(obsTime),
            value2 = last(obsValue)) |>
  arrange(-value2) %>%
  mutate_at(vars(value1, value2), funs(paste0("$ ", round(./1000), " Tn"))) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(gsub(" ", "-", Cou))),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}