Consumer Expectations Survey

Data - ECB

Info

source dataset .html .RData

ecb

CES

2024-06-19 2024-01-12

Data on inflation

source dataset .html .RData

bis

CPI

2024-06-19 2022-01-20

ecb

CES

2024-06-19 2024-01-12

eurostat

nama_10_co3_p3

2024-06-18 2024-06-08

eurostat

prc_hicp_cow

2024-06-19 2024-06-08

eurostat

prc_hicp_ctrb

2024-06-19 2024-06-08

eurostat

prc_hicp_inw

2024-06-19 2024-06-18

eurostat

prc_hicp_manr

2024-06-19 2024-06-08

eurostat

prc_hicp_midx

2024-06-19 2024-06-18

eurostat

prc_hicp_mmor

2024-06-19 2024-06-18

eurostat

prc_ppp_ind

2024-06-19 2024-06-08

eurostat

sts_inpp_m

2024-06-19 2024-06-18

eurostat

sts_inppd_m

2024-06-19 2024-06-08

eurostat

sts_inppnd_m

2024-06-19 2024-06-08

fred

cpi

2024-06-18 2024-06-07

fred

inflation

2024-06-18 2024-06-07

imf

CPI

2024-06-18 2020-03-13

oecd

MEI_PRICES_PPI

2024-06-19 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-04-14

wdi

NY.GDP.DEFL.KD.ZG

2024-04-14 2024-04-14

Données sur l’inflation en France

source dataset .html .RData

insee

bdf2017

2024-06-19 2023-11-21

insee

ILC-ILAT-ICC

2024-06-19 2024-06-18

insee

INDICES_LOYERS

2024-06-19 2024-06-18

insee

IPC-1970-1980

2024-06-19 2024-06-18

insee

IPC-1990

2024-06-19 2024-06-18

insee

IPC-2015

2024-06-19 2024-06-19

insee

IPC-PM-2015

2024-06-19 2024-06-19

insee

IPCH-2015

2024-06-19 2024-06-19

insee

IPGD-2015

2024-06-19 2024-05-16

insee

IPLA-IPLNA-2015

2024-06-19 2024-06-19

insee

IPPI-2015

2024-06-19 2024-06-19

insee

IRL

2024-06-19 2024-06-19

insee

SERIES_LOYERS

2024-06-19 2024-06-19

insee

T_CONSO_EFF_FONCTION

2024-06-19 2024-04-01

LAST_COMPILE

LAST_COMPILE
2024-06-20

Last

Code
CES %>%
  wave_to_date %>%
  group_by(date) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(date)) %>%
  head(1) %>%
  print_table_conditional()
date Nobs
2023-10-01 105

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) 645
c1020 Inflation perceptions over the previous 12 months (% change) 645
c1110 Inflation expectations over the next 12 months (qualitative) 645
c1120 Inflation expectations over the next 12 months (% change) 645
c1150 Inflation expectations/uncertainty 12 months ahead (probabilistic bins) 645
c1210 Inflation expectations 3 years ahead (qualitative) 645
c1220 Inflation expectations 3 years ahead (% change) 645

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 301
Age 35-54 years 301
Age 55-70 years 301
Country BE 301
Country DE 301
Country ES 301
Country FR 301
Country IT 301
Country NL 301
Income 1 301
Income 2 301
Income 3 301
Income 4 301
Income 5 301
Wave NA 301

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
BE Belgium 301
DE Germany 301
ES Spain 301
FR France 301
IT Italy 301
NL Netherlands 301

wave

Code
CES %>%
  wave_to_date %>%
  group_by(date) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(date)) %>%
  print_table_conditional()

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())