Central Government Debt

Data - OECD


Info

source dataset Title .html .rData
oecd GOV_DEBT Central Government Debt 2026-01-15 2023-09-27

Data on public debt

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

LAST_COMPILE

LAST_COMPILE
2026-01-16

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 .}