Net Replacement Rates in unemployment - NRR
Data - OECD
Last observation: 2023 (N = 199680)
First observation: 2001 (N = 85413)
Last data update: 02 août 2026, 09:02
Last compile: 04 sept. 2026, 02:45
Structure
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))

