Monthly minimum wages - bi-annual data

Data - Eurostat

Info

source dataset .html .RData
eurostat earn_mw_cur 2024-11-01 2024-10-08

Data on wages

source dataset .html .RData
eurostat earn_mw_cur 2024-11-01 2024-10-08
eurostat ei_lmlc_q 2024-11-01 2024-10-08
eurostat lc_lci_lev 2024-11-01 2024-10-08
eurostat lc_lci_r2_q 2024-11-04 2024-11-04
eurostat nama_10_lp_ulc 2024-11-01 2024-10-08
eurostat namq_10_lp_ulc 2024-11-04 2024-11-04
eurostat tps00155 2024-10-09 2024-10-08
fred wage 2024-11-01 2024-11-01
ilo EAR_4MTH_SEX_ECO_CUR_NB_A 2024-06-20 2023-06-01
ilo EAR_XEES_SEX_ECO_NB_Q 2024-06-20 2023-06-01
oecd AV_AN_WAGE 2024-04-16 2024-10-24
oecd AWCOMP 2024-09-15 2023-09-09
oecd EAR_MEI 2024-04-16 2024-04-16
oecd HH_DASH 2024-09-15 2023-09-09
oecd MIN2AVE 2024-09-15 2023-09-09
oecd RMW 2024-09-15 2024-03-12
oecd ULC_EEQ 2024-09-15 2024-04-15

LAST_COMPILE

LAST_COMPILE
2024-11-05

Last

Code
earn_mw_cur %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(3) %>%
  print_table_conditional()
time Nobs
2024S2 108
2024S1 108
2023S2 108

currency

Code
earn_mw_cur %>%
  left_join(currency, by = "currency") %>%
  group_by(currency, Currency) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
currency Currency Nobs
NAC National currency 1854
EUR Euro 1851
PPS Purchasing Power Standard 1745

geo

Code
earn_mw_cur %>%
  left_join(geo, by = "geo") %>%
  group_by(geo, Geo) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         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 .}

time

Code
earn_mw_cur %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  print_table_conditional()

Minimum Wage Increases

png

Code
i_g("bib/eurostat/earn_mw_cur_ex3.png")

2021S2-2023S1

Code
earn_mw_cur %>%
  filter(time %in% c("2023S1", "2022S2", "2022S1", "2021S2"),
         geo %in% c("AT", "BE", "CY", "DE", "EE", "EL", "ES", "FI", "FR", "IE",
                    "IT", "LT", "LU", "LV", "MT", "NL", "PT", "SI", "SK"),
         currency == "EUR") %>%
  filter(!is.na(values)) %>%
  spread(time, values) %>%
  select(-currency) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, geo, Geo, everything()) %>%
  mutate(growth = round(100*(`2023S1`/`2021S2`-1), 1)) %>%
  arrange(-growth) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

National currency

Code
earn_mw_cur %>%
  filter(time %in% c("2023S1", "2022S2", "2022S1", "2021S2"),
         geo %in% c("AT", "BE", "CY", "DE", "EE", "EL", "ES", "FI", "FR", "IE",
                    "IT", "LT", "LU", "LV", "MT", "NL", "PT", "SI", "SK"),
         currency == "NAC") %>%
  filter(!is.na(values)) %>%
  spread(time, values) %>%
  select(-currency) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, geo, Geo, everything()) %>%
  mutate(growth = round(100*(`2023S1`/`2021S2`-1), 1)) %>%
  arrange(-growth) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

Minimum Wages in Euros

png

Code
i_g("bib/eurostat/earn_mw_cur_ex1.png")

Javascript

Code
earn_mw_cur %>%
  filter(time %in% c("2000S1", "2005S1", "2010S1", "2015S1", "2020S1"), 
         currency == "EUR") %>%
  left_join(geo, by = "geo") %>%
  select(geo, Geo, time, values) %>%
  na.omit %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo),
         values = round(values)) %>%
  spread(time, values) %>%
  arrange(-`2020S1`) %>%
  mutate_at(vars(-1, -2), funs(ifelse(is.na(.), "", paste0(., " €")))) %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         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 .}

Map 2010S2

Code
earn_mw_cur %>%
  filter(time == "2010S2", 
         currency == "EUR") %>%
  left_join(geo, by = "geo") %>%
  select(geo, Geo, values) %>%
  right_join(europe_NUTS0, by = "geo") %>%
  filter(long >= -15, lat >= 33) %>%
  ggplot(., aes(x = long, y = lat, group = group, fill = values)) +
  geom_polygon() + coord_map() +
  scale_fill_viridis_c(na.value = "white",
                       labels = scales::dollar_format(accuracy = 1, prefix = "", suffix = "€"),
                       breaks = seq(0, 3000, 200),
                       values = c(0, 0.1, 0.2, 0.3, 0.4, 0.5, 1)) +
  theme_void() + theme(legend.position = c(0.25, 0.85)) + 
  labs(fill = "Minimum Wage")

Map 2020S2

Code
earn_mw_cur %>%
  filter(time == "2020S2", 
         currency == "EUR") %>%
  left_join(geo, by = "geo") %>%
  select(geo, Geo, values) %>%
  right_join(europe_NUTS0, by = "geo") %>%
  filter(long >= -15, lat >= 33) %>%
  ggplot(., aes(x = long, y = lat, group = group, fill = values)) +
  geom_polygon() + coord_map() +
  scale_fill_viridis_c(na.value = "white",
                       labels = scales::dollar_format(accuracy = 1, prefix = "", suffix = "€"),
                       breaks = seq(0, 3000, 200),
                       values = c(0, 0.1, 0.2, 0.3, 0.4, 0.5, 1)) +
  theme_void() + theme(legend.position = c(0.25, 0.85)) + 
  labs(fill = "Minimum Wage")

Minimum Wages in PPS

png

Code
i_g("bib/eurostat/earn_mw_cur_ex2.png")

Javascript

Code
earn_mw_cur %>%
  filter(time %in% c("2000S1", "2005S1", "2010S1", "2015S1", "2020S1"), 
         currency == "PPS") %>%
  left_join(geo, by = "geo") %>%
  select(geo, Geo, time, values) %>%
  na.omit %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo),
         values = round(values)) %>%
  spread(time, values) %>%
  arrange(-`2020S1`) %>%
  mutate_at(vars(-1, -2), funs(ifelse(is.na(.), "", paste0(., " €")))) %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         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 .}

Minimum Wages in National Currency

Javascript

Code
earn_mw_cur %>%
  filter(time %in% c("2000S1", "2005S1", "2010S1", "2015S1", "2020S1"), 
         currency == "NAC") %>%
  left_join(geo, by = "geo") %>%
  select(geo, Geo, time, values) %>%
  na.omit %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo),
         values = round(values)) %>%
  spread(time, values) %>%
  arrange(-`2020S1`) %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         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 .}