Population by status in employment, occupation and NUTS 2 region - cens_11empo_r2

Data - Eurostat

Info

Last observation: Annual: 2011 (N = 3,675,197)

First observation: Annual: 2011 (N = 3,675,197)

Last data update: 23 jul 2026, 23:17. Last compile: 24 jul 2026, 01:01

Structure

2011 Population Census: Employment Status

Self-Employment Rate by Country

Code
cens_11empo_r2 %>%
  filter(nchar(geo) == 2,
         age == "TOTAL",
         sex == "T",
         isco08 == "TOTAL",
         wstatus %in% c("EMP", "SELF_S", "SELF_NS")) %>%
  select(geo, Geo, wstatus, values) %>%
  spread(wstatus, values) %>%
  mutate(rate = (SELF_S + SELF_NS) / EMP) %>%
  filter(!is.na(rate)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(color = ifelse(is.na(color), "grey50", color)) %>%
  ggplot + geom_col(aes(x = reorder(Geo, rate), y = rate, fill = color)) +
  scale_fill_identity() +
  coord_flip() +
  theme_minimal() +
  xlab("") + ylab("Self-employed share of employed population, 2011") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

Occupational Structure: France vs. Germany

Code
cens_11empo_r2 %>%
  filter(geo %in% c("FR", "DE"),
         age == "TOTAL",
         sex == "T",
         wstatus == "EMP",
         !isco08 %in% c("NAP", "TOTAL", "UNK")) %>%
  group_by(geo) %>%
  mutate(share = values / sum(values)) %>%
  ungroup() %>%
  ggplot + geom_col(aes(x = reorder(Isco08, share), y = share, fill = Geo),
                     position = "dodge") +
  coord_flip() +
  theme_minimal() +
  theme(legend.position = c(0.85, 0.12),
        legend.title = element_blank()) +
  xlab("") + ylab("Share of employed persons, 2011") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

Employment Status Shares, 2011 Snapshot

Code
countries <- c("FR", "DE", "IT", "ES", "PL", "NL", "BE", "SE")

emp_tot <- cens_11empo_r2 %>%
  filter(geo %in% countries,
         age == "TOTAL", sex == "T", isco08 == "TOTAL", wstatus == "EMP") %>%
  select(geo, EMP = values)

cens_11empo_r2 %>%
  filter(geo %in% countries,
         age == "TOTAL", sex == "T", isco08 == "TOTAL",
         wstatus %in% c("SAL", "SELF_S", "SELF_NS", "CFAM_COOP")) %>%
  left_join(emp_tot, by = "geo") %>%
  mutate(share = round(100 * values / EMP, 1)) %>%
  select(Geo, Wstatus, share) %>%
  spread(Wstatus, share) %>%
  print_table_conditional()
Geo Contributing family workers and members of producers' cooperatives Employees Self-employed persons with employees (employers) Self-employed persons without employees (own-account workers)
Belgium 0.7 36.9 1.8 4.0
France 0.1 39.0 2.1 2.6
Germany 0.5 46.4 2.5 3.3
Italy 1.0 32.8 3.5 4.6
Netherlands 0.0 43.3 3.8 2.0
Poland 1.1 33.9 1.6 6.5
Spain 0.8 43.1 3.0 4.1
Sweden 0.0 46.0 0.4 2.9