Employee social security contribution rates - TABLE_III1

Data - OECD

SCHED

Code
TABLE_III1_var %>%
  pluck("SCHED") %>%
  {if (is_html_output()) print_table(.) else .}
id label
SCHED_01 1
SCHED_02 2
SCHED_03 3

TAX_BASE

Code
TABLE_III1_var %>%
  pluck("TAX_BASE") %>%
  {if (is_html_output()) print_table(.) else .}
id label
WGE Weekly gross earnings
MGE Monthly gross earnings
AGE Annual gross earnings
TY Taxable income measured for central government tax purposes
TYS Taxable income modified for sub-central government purposes

RATE_THRESH

Code
TABLE_III1_var %>%
  pluck("RATE_THRESH") %>%
  {if (is_html_output()) print_table(.) else .}
id label
LUMP_SUM Lump sum charge
01_MR 01 Marginal rate
01_LOW_TH 01 Lower threshold
01_UP_TH 01 Upper threshold
02_MR 02 Marginal rate
02_LOW_TH 02 Lower threshold
02_UP_TH 02 Upper threshold
03_MR 03 Marginal rate
03_LOW_TH 03 Lower threshold
03_UP_TH 03 Upper threshold
04_MR 04 Marginal rate
04_LOW_TH 04 Lower threshold
04_UP_TH 04 Upper threshold
05_MR 05 Marginal rate
05_LOW_TH 05 Lower threshold
05_UP_TH 05 Upper threshold
06_MR 06 Marginal rate
06_LOW_TH 06 Lower threshold
06_UP_TH 06 Upper threshold
07_MR 07 Marginal rate
07_LOW_TH 07 Lower threshold
07_UP_TH 07 Upper threshold
MAX_CONTR Maximum contribution
DEDUC_BASE % of payment given as relief from personal income tax

Germany

Code
TABLE_III1 %>%
  filter(COU == "DEU") %>%
  year_to_date %>%
  left_join(TABLE_III1_var %>% pluck("RATE_THRESH"), by = c("RATE_THRESH" = "id")) %>%
  rename(RATE_THRESH_desc = label) %>%
  mutate(obsValue = obsValue/100) %>%
  filter(grepl("rate", RATE_THRESH_desc)) %>%
  ggplot() + geom_line(aes(x = date, y = obsValue, color = RATE_THRESH_desc)) +
  scale_color_manual(values = viridis(3)[1:2]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%y")) +
  theme(legend.position = c(0.65, 0.6),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 70, 1)) + 
  ylab("Tax Rate (%)") + xlab("")