Effective tax rate on increasing working hours - METR
Data - OECD
Last observation: 2022 (N = 16704)
First observation: 2001 (N = 11904)
Last data update: 02 août 2026, 09:01
Last compile: 02 sept. 2026, 23:37
Structure
EARNINGS - Nobs
Code
METR |>
left_join(METR_var$EARNINGS |>
setNames(c("EARNINGS", "Earnings")), by = "EARNINGS") |>
group_by(EARNINGS, Earnings) |>
summarise(Nobs = n()) |>
arrange(-Nobs) %>%
{if (is_html_output()) print_table(.) else .}| EARNINGS | Earnings | Nobs |
|---|---|---|
| 67AW | 67% of the Average Wage | 124160 |
| AW | Average Wage | 124160 |
| MIN | Minimum Wage | 98560 |
HBTOPUPS - Nobs
Code
METR |>
left_join(METR_var$HBTOPUPS |>
setNames(c("HBTOPUPS", "Hbtopubs")), by = "HBTOPUPS") |>
group_by(HBTOPUPS, Hbtopubs) |>
summarise(Nobs = n()) |>
arrange(-Nobs) %>%
{if (is_html_output()) print_table(.) else .}| HBTOPUPS | Hbtopubs | Nobs |
|---|---|---|
| 0 | No | 173440 |
| 1 | Yes | 173440 |
Effective Tax Rates on Increasing Labor Hours SINGLE-AW
Germany
Code
METR |>
# HBTOPUPS: Includes Housing Benefits?
filter(LOCATION == "DEU",
FAMILY == "SINGLE",
EARNINGS == "AW",
HBTOPUPS == 1) |>
year_to_date() |>
left_join(METR_var$TRANSITION |>
setNames(c("TRANSITION", "Transition")), by = "TRANSITION") |>
mutate(obsValue = obsValue/100) |>
ggplot() + ylab("Marginal Effective Tax Rates on Labor (%)") + xlab("") +
geom_line(aes(x = date, y = obsValue, color = Transition)) + theme_minimal() +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = c(0.75, 0.85),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
labels = percent_format(accuracy = 1))
France
Code
METR |>
# HBTOPUPS: Includes Housing Benefits?
filter(LOCATION == "FRA",
FAMILY == "SINGLE",
EARNINGS == "AW",
HBTOPUPS == 1) |>
year_to_date() |>
left_join(METR_var$TRANSITION |>
setNames(c("TRANSITION", "Transition")), by = "TRANSITION") |>
mutate(obsValue = obsValue/100) |>
ggplot() + ylab("Marginal Effective Tax Rates on Labor (%)") + xlab("") +
geom_line(aes(x = date, y = obsValue, color = Transition)) + theme_minimal() +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
labels = percent_format(accuracy = 1))
Effective Tax Rates on Increasing Labor Hours - No Housing
Germany
Code
METR |>
# HBTOPUPS: Includes Housing Benefits?
filter(LOCATION == "DEU",
FAMILY == "SINGLE",
EARNINGS == "AW",
HBTOPUPS == 0) |>
year_to_date() |>
left_join(METR_var$TRANSITION |>
setNames(c("TRANSITION", "Transition")), by = "TRANSITION") |>
mutate(obsValue = obsValue/100) |>
ggplot() + ylab("Marginal Effective Tax Rates on Labor (%)") + xlab("") +
geom_line(aes(x = date, y = obsValue, color = Transition)) + theme_minimal() +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = c(0.75, 0.85),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
labels = percent_format(accuracy = 1))
France
Code
METR |>
# HBTOPUPS: Includes Housing Benefits?
filter(LOCATION == "FRA",
FAMILY == "SINGLE",
EARNINGS == "AW",
HBTOPUPS == 0) |>
year_to_date() |>
left_join(METR_var$TRANSITION |>
setNames(c("TRANSITION", "Transition")), by = "TRANSITION") |>
mutate(obsValue = obsValue/100) |>
ggplot() + ylab("Marginal Effective Tax Rates on Labor (%)") + xlab("") +
geom_line(aes(x = date, y = obsValue, color = Transition)) + theme_minimal() +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
labels = percent_format(accuracy = 1))