National Business Surveys - CONJ

Data - Banque de France

🇫🇷 Version française

Info

Last observation: Mensuel: 30 jui 2026 (N = 320,110) · Trimestriel: 30 jui 2026 (N = 12,325)

First observation: Mensuel: 31 jan 1976 (N = 320,110) · Trimestriel: 31 mar 1996 (N = 12,325)

Last data update: 11 aoû 2026, 00:17. Last compile: 14 aoû 2026, 21:49

Structure

LAST_DOWNLOAD

LAST_DOWNLOAD
2026-08-10

LAST_COMPILE

LAST_COMPILE
2026-08-14

Last

date Nobs
2026-06-30 993

Business Climate Indicators

The composite business climate indicators summarise, for each sector, the responses of business leaders to the Banque de France’s business surveys. They are built to have a long-term average equal to 100: above 100, manufacturers’ opinions are more favourable than on average.

Manufacturing, Construction, Market Services

Code
CONJ |>

  filter(variable %in% c("CONJ.M.N01.S.IN.000CZ.ICAIN181.10",
                          "CONJ.M.N01.S.SM.00NAT.ICASM182.1A",
                          "CONJ.M.N01.S.BA.00NAT.ICA00183.10")) |>
  mutate(Variable = case_when(
    ENQCNJ_TYPE_ENQ == "IN" ~ "Manufacturing",
    ENQCNJ_TYPE_ENQ == "SM" ~ "Market services",
    ENQCNJ_TYPE_ENQ == "BA" ~ "Construction",
    TRUE ~ Variable)) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
  geom_hline(yintercept = 100, linetype = "dashed", color = "black") +
  xlab("") + ylab("") + theme_minimal() +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 150, 10)) +
  theme(legend.position = c(0.25, 0.15),
        legend.title = element_blank(),
        legend.direction = "vertical")

Over the Last 5 Years

Code
CONJ |>

  filter(variable %in% c("CONJ.M.N01.S.IN.000CZ.ICAIN181.10",
                          "CONJ.M.N01.S.SM.00NAT.ICASM182.1A",
                          "CONJ.M.N01.S.BA.00NAT.ICA00183.10")) |>
  mutate(Variable = case_when(
    ENQCNJ_TYPE_ENQ == "IN" ~ "Manufacturing",
    ENQCNJ_TYPE_ENQ == "SM" ~ "Market services",
    ENQCNJ_TYPE_ENQ == "BA" ~ "Construction",
    TRUE ~ Variable)) |>
  na.omit() |>
  filter(date >= max(date) - years(5)) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
  geom_hline(yintercept = 100, linetype = "dashed", color = "black") +
  xlab("") + ylab("") + theme_minimal() +
  scale_x_date(breaks = "6 months",
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = seq(0, 150, 5)) +
  theme(legend.position = c(0.25, 0.15),
        legend.title = element_blank(),
        legend.direction = "vertical",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))

Latest Data Point

Code
CONJ |>

  filter(variable %in% c("CONJ.M.N01.S.IN.000CZ.ICAIN181.10",
                          "CONJ.M.N01.S.SM.00NAT.ICASM182.1A",
                          "CONJ.M.N01.S.BA.00NAT.ICA00183.10")) |>
  mutate(Variable = case_when(
    ENQCNJ_TYPE_ENQ == "IN" ~ "Manufacturing",
    ENQCNJ_TYPE_ENQ == "SM" ~ "Market services",
    ENQCNJ_TYPE_ENQ == "BA" ~ "Construction",
    TRUE ~ Variable)) |>
  na.omit() |>
  group_by(Variable) |>
  filter(date == max(date)) |>
  ungroup() |>
  select(Sector = Variable, date, value) |>
  arrange(desc(value)) |>
  print_table_conditional()
Sector date value
NA NA NA
:------: :----: :-----: