Consumer Expectations Survey

Data - ECB

Info

source dataset .html .RData
ecb CES 2024-12-21 2024-12-22

Data on inflation

source dataset .html .RData
bis CPI 2024-07-01 2022-01-20
ecb CES 2024-12-21 2024-12-22
eurostat nama_10_co3_p3 2024-12-14 2024-12-14
eurostat prc_hicp_cow 2024-11-22 2024-10-08
eurostat prc_hicp_ctrb 2024-11-22 2024-10-08
eurostat prc_hicp_inw 2024-11-05 2024-11-23
eurostat prc_hicp_manr 2024-12-21 2024-12-21
eurostat prc_hicp_midx 2024-11-01 2024-12-22
eurostat prc_hicp_mmor 2024-11-22 2024-11-23
eurostat prc_ppp_ind 2024-11-22 2024-10-08
eurostat sts_inpp_m 2024-06-24 2024-12-21
eurostat sts_inppd_m 2024-12-21 2024-12-21
eurostat sts_inppnd_m 2024-06-24 2024-12-16
fred cpi 2024-12-22 2024-12-22
fred inflation 2024-12-22 2024-12-22
imf CPI 2024-06-20 2020-03-13
oecd MEI_PRICES_PPI 2024-09-15 2024-04-15
oecd PPP2017 2024-04-16 2023-07-25
oecd PRICES_CPI 2024-04-16 2024-04-15
wdi FP.CPI.TOTL.ZG 2023-01-15 2024-09-18
wdi NY.GDP.DEFL.KD.ZG 2024-09-18 2024-09-18

Données sur l’inflation en France

source dataset .html .RData
insee bdf2017 2024-11-22 2023-11-21
insee ILC-ILAT-ICC 2024-11-22 2024-12-22
insee INDICES_LOYERS 2024-11-22 2024-12-22
insee IPC-1970-1980 2024-11-22 2024-12-22
insee IPC-1990 2024-11-22 2024-12-22
insee IPC-2015 2024-12-16 2024-12-22
insee IPC-PM-2015 2024-12-21 2024-12-22
insee IPCH-2015 2024-12-21 2024-12-22
insee IPGD-2015 2024-12-16 2024-12-16
insee IPLA-IPLNA-2015 2024-11-22 2024-11-22
insee IPPI-2015 2024-12-21 2024-12-16
insee IRL 2024-11-22 2024-11-22
insee SERIES_LOYERS 2024-11-22 2024-11-22
insee T_CONSO_EFF_FONCTION 2024-11-22 2024-07-18

LAST_COMPILE

LAST_COMPILE
2024-12-22

Last

Code
CES %>%
  wave_to_date %>%
  group_by(date) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(date)) %>%
  head(1) %>%
  print_table_conditional()
date Nobs
2024-06-01 140

Var_label

Code
CES %>%
  group_by(Var, Var_label) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
Var Var_label Nobs
c1010 Inflation perceptions over the previous 12 months (qualitative) 540
c1020 Inflation perceptions over the previous 12 months (% change) 540
c1110 Inflation expectations over the next 12 months (qualitative) 540
c1120 Inflation expectations over the next 12 months (% change) 540
c1150 Inflation expectations/uncertainty 12 months ahead (probabilistic bins) 540
c1210 Inflation expectations 3 years ahead (qualitative) 540
c1220 Inflation expectations 3 years ahead (% change) 540

Breakdown_label

All

Code
CES %>%
  group_by(Breakdown, Breakdown_label) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
Breakdown Breakdown_label Nobs
Age 18-34 years 189
Age 35-54 years 189
Age 55-70 years 189
Country AT 189
Country BE 189
Country DE 189
Country EL 189
Country ES 189
Country FI 189
Country FR 189
Country IE 189
Country IT 189
Country NL 189
Country PT 189
Income 1 189
Income 2 189
Income 3 189
Income 4 189
Income 5 189
Wave NA 189

Country

Code
CES %>%
  filter(Breakdown == "Country") %>%
  rename(geo = Breakdown_label) %>%
  left_join(geo, by = "geo") %>%
  group_by(geo, Geo) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
geo Geo Nobs
AT Austria 189
BE Belgium 189
DE Germany 189
EL Greece 189
ES Spain 189
FI Finland 189
FR France 189
IE Ireland 189
IT Italy 189
NL Netherlands 189
PT Portugal 189

wave

Code
CES %>%
  wave_to_date %>%
  group_by(date) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(date)) %>%
  print_table_conditional()
date Nobs
2024-06-01 140
2024-05-01 140
2024-04-01 140
2024-03-01 140
2024-02-01 140
2024-01-01 140
2023-12-01 140
2023-11-01 140
2023-10-01 140
2023-09-01 140
2023-08-01 140
2023-07-01 140
2023-06-01 140
2023-05-01 140
2023-04-01 140
2023-03-01 140
2023-02-01 140
2023-01-01 140
2022-12-01 140
2022-11-01 140
2022-10-01 140
2022-09-01 140
2022-08-01 140
2022-07-01 140
2022-06-01 140
2022-05-01 140
2022-04-01 140

All Europe (Wave)

% change

Mean

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Wave",
         Var %in% c("c1020", "c1120", "c1220")) %>%
  transmute(date, Var_label, OBS_VALUE = Mean/100) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = Var_label)) + 
  theme_minimal() + xlab("") + ylab("Mean (%)") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "2 months"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.33, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

Median

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Wave",
         Var %in% c("c1020", "c1120", "c1220")) %>%
  transmute(date, Var_label, OBS_VALUE = Median/100) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = Var_label)) + 
  theme_minimal() + xlab("") + ylab("Median (%)") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "2 months"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.33, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

qualitative

Net percentage

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Wave",
         Var %in% c("c1010", "c1110", "c1210")) %>%
  transmute(date, Var_label, OBS_VALUE = Net_perc/100) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = Var_label)) + 
  theme_minimal() + xlab("") + ylab("Net_perc (%)") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "2 months"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 100, 5),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.33, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

Up

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Wave",
         Var %in% c("c1010", "c1110", "c1210")) %>%
  transmute(date, Var_label, OBS_VALUE = Net_perc/100) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = Var_label)) + 
  theme_minimal() + xlab("") + ylab("Up (%)") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "2 months"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 100, 5),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.33, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

Down

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Wave",
         Var %in% c("c1010", "c1110", "c1210")) %>%
  transmute(date, Var_label, OBS_VALUE = Down/100) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = Var_label)) + 
  theme_minimal() + xlab("") + ylab("Up (%)") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "2 months"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 100, 1),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.33, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

France, Germany, Italy, Spain

1-year

Mean

All

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Country",
         Var == "c1020") %>%
  rename(geo = Breakdown_label) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(OBS_VALUE = Mean/100) %>%
  rename(Ref_area = Geo) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = color)) + 
  theme_minimal() + xlab("") + ylab("Inflation expectations over the next 12 months\n% change, Mean") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "2 months"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags(6) +
  theme(legend.position = c(0.75, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

October 2021-

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Country",
         Var == "c1020") %>%
  rename(geo = Breakdown_label) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(OBS_VALUE = Mean/100) %>%
  filter(date >= as.Date("2021-10-01")) %>%
  rename(Ref_area = Geo) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = color)) + 
  theme_minimal() + xlab("") + ylab("Inflation expectations over the next 12 months\n% change, Mean") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "1 month"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags(6) +
  theme(legend.position = c(0.75, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

Median

All

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Country",
         Var == "c1020") %>%
  rename(geo = Breakdown_label) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(OBS_VALUE = Median/100) %>%
  rename(Ref_area = Geo) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = color)) + 
  theme_minimal() + xlab("") + ylab("Inflation expectations over the next 12 months\n% change, Median") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "2 months"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags(6) +
  theme(legend.position = c(0.75, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

October 2021-

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Country",
         Var == "c1020") %>%
  rename(geo = Breakdown_label) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(OBS_VALUE = Median/100) %>%
  filter(date >= as.Date("2021-10-01")) %>%
  rename(Ref_area = Geo) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = color)) + 
  theme_minimal() + xlab("") + ylab("Inflation expectations over the next 12 months\n% change, Median") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "1 month"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags(6) +
  theme(legend.position = c(0.75, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

3-year

Mean

All

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Country",
         Var == "c1220") %>%
  rename(geo = Breakdown_label) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(OBS_VALUE = Mean/100) %>%
  rename(Ref_area = Geo) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = color)) + 
  theme_minimal() + xlab("") + ylab("Inflation expectations 3 years ahead\n% change, Mean") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "2 months"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags(6) +
  theme(legend.position = c(0.75, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

October 2021-

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Country",
         Var == "c1220",
         date >= as.Date("2021-10-01")) %>%
  rename(geo = Breakdown_label) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(OBS_VALUE = Mean/100) %>%
  rename(Ref_area = Geo) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = color)) + 
  theme_minimal() + xlab("") + ylab("Inflation expectations 3 years ahead\n% change, Mean") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "1 month"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags(6) +
  theme(legend.position = c(0.75, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

Median

All

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Country",
         Var == "c1220") %>%
  rename(geo = Breakdown_label) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(OBS_VALUE = Median/100) %>%
  rename(Ref_area = Geo) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = color)) + 
  theme_minimal() + xlab("") + ylab("Inflation expectations 3 years ahead\n% change, Median") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "2 months"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, .2),
                     labels = percent_format(a = .1)) + 
  scale_color_identity() + add_flags(6) +
  theme(legend.position = c(0.75, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

October 2021-

Code
CES %>%
  wave_to_date %>%
  filter(Breakdown == "Country",
         Var == "c1220",
         date >= as.Date("2021-10-01")) %>%
  rename(geo = Breakdown_label) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(OBS_VALUE = Median/100) %>%
  rename(Ref_area = Geo) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE, color = color)) + 
  theme_minimal() + xlab("") + ylab("Inflation expectations 3 years ahead\n% change, Median") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2024-01-01"), "1 month"),
               labels = date_format("%b %y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, .2),
                     labels = percent_format(a = .1)) + 
  scale_color_identity() + add_flags(6) +
  theme(legend.position = c(0.75, 0.90),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())