Statutory corporate income tax rate - TABLE_II1

Data - OECD

CORP_TAX

Code
TABLE_II1 |>
  left_join(TABLE_II1_var$CORP_TAX, by = "CORP_TAX") |>
  group_by(CORP_TAX, Corp_tax) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
CORP_TAX Corp_tax Nobs
CIT_RATE Corporate income tax rate 931
COMB_CIT_RATE Combined corporate income tax rate 931
CIT_RATE_LESS_SUB_NAT Corporate income tax rate less deductions for sub-national taxes 907
SUB_CENT_GOV_CIT_RATE Sub-central government corporate income tax rate 263
CIT_RATE_EXCL_SURTAX Corporate income tax rate exclusive of surtax 174

COU

Code
TABLE_II1 |>
  left_join(TABLE_II1_var$COU |>
              setNames(c("COU", "Cou")), by = "COU") |>
  group_by(COU, Cou) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Germany

Code
TABLE_II1 |>
  filter(COU == "DEU") |>
  year_to_date() |>
  left_join(TABLE_II1_var$CORP_TAX, by = "CORP_TAX") |>
  ggplot() + theme_minimal() + ylab("Corporate Tax Rate (%)") + xlab("") +
  geom_line(aes(x = date, y = obsValue/100, color = Corp_tax)) +
  scale_color_manual(values = viridis(6)[1:5]) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.85),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 60, 5),
                     labels = percent_format(accuracy = 1),
                     limits = c(0, 0.6))

France

Code
TABLE_II1 |>
  filter(COU == "FRA") |>
  year_to_date() |>
  left_join(TABLE_II1_var$CORP_TAX, by = "CORP_TAX") |>
  ggplot() + theme_minimal() + ylab("Corporate Tax Rate (%)") + xlab("") +
  geom_line(aes(x = date, y = obsValue/100, color = Corp_tax)) +
  scale_color_manual(values = viridis(6)[1:5]) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.65, 0.85),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 60, 5),
                     labels = percent_format(accuracy = 1),
                     limits = c(0, 0.6))

United States

Code
TABLE_II1 |>
  filter(COU == "USA") |>
  year_to_date() |>
  left_join(TABLE_II1_var$CORP_TAX, by = "CORP_TAX") |>
  ggplot() + theme_minimal() + ylab("Corporate Tax Rate (%)") + xlab("") +
  geom_line(aes(x = date, y = obsValue/100, color = Corp_tax)) +
  scale_color_manual(values = viridis(6)[1:5]) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.65, 0.85),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 60, 5),
                     labels = percent_format(accuracy = 1),
                     limits = c(0, 0.6))

Luxembourg

Code
TABLE_II1 |>
  filter(COU == "LUX") |>
  year_to_date() |>
  left_join(TABLE_II1_var$CORP_TAX, by = "CORP_TAX") |>
  ggplot() + theme_minimal() + ylab("Corporate Tax Rate (%)") + xlab("") +
  geom_line(aes(x = date, y = obsValue/100, color = Corp_tax)) +
  scale_color_manual(values = viridis(6)[1:5]) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.65, 0.85),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 60, 5),
                     labels = percent_format(accuracy = 1),
                     limits = c(0, 0.6))

Japan

Code
TABLE_II1 |>
  filter(COU == "JPN") |>
  year_to_date() |>
  left_join(TABLE_II1_var$CORP_TAX, by = "CORP_TAX") |>
  ggplot() + theme_minimal() + ylab("Corporate Tax Rate (%)") + xlab("") +
  geom_line(aes(x = date, y = obsValue/100, color = Corp_tax)) +
  scale_color_manual(values = viridis(6)[1:5]) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.65, 0.85),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 60, 5),
                     labels = percent_format(accuracy = 1),
                     limits = c(0, 0.6))