| source | dataset | Title | .html | .rData |
|---|---|---|---|---|
| eurostat | earn_mw_cur | Monthly minimum wages - bi-annual data | 2025-12-25 | 2025-12-25 |
Monthly minimum wages - bi-annual data
Data - Eurostat
Info
Data on wages
| source | dataset | Title | .html | .rData |
|---|---|---|---|---|
| eurostat | earn_mw_cur | Monthly minimum wages - bi-annual data | 2025-12-25 | 2025-12-25 |
| eurostat | ei_lmlc_q | Labour cost index, nominal value - quarterly data | 2025-12-25 | 2025-12-25 |
| eurostat | lc_lci_lev | Labour cost levels by NACE Rev. 2 activity | 2025-12-25 | 2025-12-25 |
| eurostat | lc_lci_r2_q | Labour cost index by NACE Rev. 2 activity - nominal value, quarterly data | 2025-12-25 | 2025-12-24 |
| eurostat | nama_10_lp_ulc | Labour productivity and unit labour costs | 2025-12-25 | 2025-12-25 |
| eurostat | namq_10_lp_ulc | Labour productivity and unit labour costs | 2025-12-25 | 2025-12-25 |
| eurostat | tps00155 | Minimum wages | 2025-12-25 | 2025-12-25 |
| fred | wage | Wage | 2025-12-25 | 2025-12-25 |
| ilo | EAR_4MTH_SEX_ECO_CUR_NB_A | Mean nominal monthly earnings of employees by sex and economic activity -- Harmonized series | 2024-06-20 | 2023-06-01 |
| ilo | EAR_XEES_SEX_ECO_NB_Q | Mean nominal monthly earnings of employees by sex and economic activity -- Harmonized series | 2024-06-20 | 2023-06-01 |
| oecd | AV_AN_WAGE | Average annual wages | 2025-12-26 | 2025-12-26 |
| oecd | AWCOMP | Taxing Wages - Comparative tables | 2025-12-26 | 2023-09-09 |
| oecd | EAR_MEI | Hourly Earnings (MEI) | 2024-04-16 | 2024-04-16 |
| oecd | HH_DASH | Household Dashboard | 2025-12-26 | 2023-09-09 |
| oecd | MIN2AVE | Minimum relative to average wages of full-time workers - MIN2AVE | 2025-12-26 | 2023-09-09 |
| oecd | RMW | Real Minimum Wages - RMW | 2025-12-26 | 2024-03-12 |
| oecd | ULC_EEQ | Unit labour costs and labour productivity (employment based), Total economy | 2025-12-26 | 2024-04-15 |
LAST_COMPILE
| LAST_COMPILE |
|---|
| 2025-12-27 |
Last
Code
earn_mw_cur %>%
group_by(time) %>%
summarise(Nobs = n()) %>%
arrange(desc(time)) %>%
head(3) %>%
print_table_conditional()| time | Nobs |
|---|---|
| 2025S2 | 111 |
| 2025S1 | 111 |
| 2024S2 | 112 |
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 | 2039 |
| EUR | Euro | 2036 |
| PPS | Purchasing Power Standard | 1927 |
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 .}