Net Replacement Rates in unemployment - NRR
Data - OECD
Info
Data on wages
Code
load_data("employment.RData")
employment |>
source_dataset_file_updates()| source | dataset | Title | Updated |
|---|---|---|---|
| bls | jt | NA | NA |
| bls | la | NA | NA |
| bls | ln | NA | NA |
| eurostat | nama_10_a10_e | Employment by A*10 industry breakdowns | 2026-08-13 |
| eurostat | nama_10_a64_e | National accounts employment data by industry (up to NACE A*64) | 2026-08-13 |
| eurostat | namq_10_a10_e | Employment A*10 industry breakdowns | 2026-08-13 |
| eurostat | une_rt_m | Unemployment by sex and age – monthly data | 2026-08-13 |
| oecd | ALFS_EMP | Employment by activities and status (ALFS) | 2026-08-02 |
| oecd | EPL_T | Strictness of employment protection – temporary contracts | 2026-08-02 |
| oecd | LFS_SEXAGE_I_R | LFS by sex and age - indicators | 2026-08-02 |
| oecd | STLABOUR | Short-Term Labour Market Statistics | 2026-08-02 |
Last
| obsTime | Nobs |
|---|---|
| 2023 | 199680 |
Data Structure
Code
NRR_var |>
pluck("VAR_DESC") %>%
{if (is_html_output()) print_table(.) else .}| id | description |
|---|---|
| LOCATION | Country |
| FAMILY | Family type |
| DURATION | Unemployment duration (months) |
| EARNINGS | Previous in-work earnings |
| HBTOPUPS | Include housing benefits |
| TIME | Year |
| OBS_VALUE | Observation Value |
| TIME_FORMAT | Time Format |
| OBS_STATUS | Observation Status |
FAMILY
Code
NRR_var |>
pluck("FAMILY") %>%
{if (is_html_output()) print_table(.) else .}| id | label |
|---|---|
| SINGLE | Single person without children |
| SINGLE2C | Single person with 2 children |
| 1EARNERC | Couple without children - partner is out of work |
| 1EARNERC2C | Couple with 2 children - partner is out of work |
| 2EARNERC_AW | Couple without children - partner's earnings: Average Wage (AW) |
| 2EARNERC_67AW | Couple without children - partner's earnings: 67% of the AW |
| 2EARNERC2C_AW | Couple with 2 children - partner's earnings: AW |
| 2EARNERC2C_67AW | Couple with 2 children - partner's earnings: 67% of the AW |
DURATION
Code
NRR_var |>
pluck("DURATION") %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}EARNINGS
Code
NRR_var |>
pluck("EARNINGS") %>%
{if (is_html_output()) print_table(.) else .}| id | label |
|---|---|
| MIN | Minimum Wage |
| 67AW | 67% of the Average Wage |
| AW | Average Wage |
Ex 1: Average Wage
Germany
Code
NRR |>
filter(LOCATION == "DEU",
FAMILY == "SINGLE",
EARNINGS == "AW",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.45, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
France
Code
NRR |>
filter(LOCATION == "FRA",
FAMILY == "SINGLE",
EARNINGS == "AW",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.85, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
Italy
Code
NRR |>
filter(LOCATION == "ITA",
FAMILY == "SINGLE",
EARNINGS == "AW",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.85, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
Spain
Code
NRR |>
filter(LOCATION == "ESP",
FAMILY == "SINGLE",
EARNINGS == "AW",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.85, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
United Kingdom
Code
NRR |>
filter(LOCATION == "GBR",
FAMILY == "SINGLE",
EARNINGS == "AW",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.85, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
United States
Code
NRR |>
filter(LOCATION == "USA",
FAMILY == "SINGLE",
EARNINGS == "AW",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.85, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
Switzerland
Code
NRR |>
filter(LOCATION == "CHE",
FAMILY == "SINGLE",
EARNINGS == "AW",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.85, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
Ex 2: Minimum Wage
Germany
Code
NRR |>
filter(LOCATION == "DEU",
FAMILY == "SINGLE",
EARNINGS == "MIN",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.45, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
France
Code
NRR |>
filter(LOCATION == "FRA",
FAMILY == "SINGLE",
EARNINGS == "MIN",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.85, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
Italy
Code
NRR |>
filter(LOCATION == "ITA",
FAMILY == "SINGLE",
EARNINGS == "MIN",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.85, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
Spain
Code
NRR |>
filter(LOCATION == "ESP",
FAMILY == "SINGLE",
EARNINGS == "MIN",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.85, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
United Kingdom
Code
NRR |>
filter(LOCATION == "GBR",
FAMILY == "SINGLE",
EARNINGS == "MIN",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.85, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
United States
Code
NRR |>
filter(LOCATION == "USA",
FAMILY == "SINGLE",
EARNINGS == "MIN",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.85, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))
Switzerland
Code
NRR |>
filter(LOCATION == "CHE",
FAMILY == "SINGLE",
EARNINGS == "MIN",
HBTOPUPS == 1,
obsTime %in% c("2001", "2005", "2018")) |>
mutate(DURATION = DURATION |> as.numeric(),
obsValue = obsValue / 100) |>
arrange(obsTime, DURATION) |>
select(obsTime, DURATION, obsValue) |>
ggplot() + theme_minimal() +
geom_line(aes(x = DURATION, y = obsValue, color = obsTime, linetype = obsTime)) +
scale_color_manual(values = viridis(4)[1:3]) +
theme(legend.position = c(0.85, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("Net Replacement Rate") +
scale_x_continuous(breaks = seq(0, 60, 6),
labels = dollar_format(prefix = "", suffix = " mo")) +
scale_y_continuous(breaks = seq(0, 1, 0.1),
labels = percent_format(accuracy = 1),
limits = c(0, 1))