Consumer Expectations Survey
Data - ECB
Info
Data on inflation
| source | dataset | .html | .RData |
|---|---|---|---|
| bis | CPI | 2025-08-28 | 2025-08-28 |
| ecb | CES | 2025-08-26 | 2025-05-24 |
| eurostat | nama_10_co3_p3 | 2025-08-28 | 2025-08-28 |
| eurostat | prc_hicp_cow | 2025-08-27 | 2025-08-28 |
| eurostat | prc_hicp_ctrb | 2025-08-27 | 2025-08-28 |
| eurostat | prc_hicp_inw | 2025-08-27 | 2025-08-28 |
| eurostat | prc_hicp_manr | 2025-08-27 | 2025-08-28 |
| eurostat | prc_hicp_midx | 2025-08-27 | 2025-08-28 |
| eurostat | prc_hicp_mmor | 2025-08-27 | 2025-08-28 |
| eurostat | prc_ppp_ind | 2025-08-27 | 2025-08-28 |
| eurostat | sts_inpp_m | 2025-08-27 | 2025-08-28 |
| eurostat | sts_inppd_m | 2025-08-27 | 2025-08-28 |
| eurostat | sts_inppnd_m | 2024-06-24 | 2025-08-28 |
| fred | cpi | 2025-08-28 | 2025-08-28 |
| fred | inflation | 2025-08-28 | 2025-08-28 |
| imf | CPI | 2025-08-28 | 2020-03-13 |
| oecd | MEI_PRICES_PPI | 2025-08-25 | 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 | 2025-08-24 |
| wdi | NY.GDP.DEFL.KD.ZG | 2025-08-28 | 2025-08-24 |
Données sur l’inflation en France
| source | dataset | .html | .RData |
|---|---|---|---|
| insee | bdf2017 | 2025-08-28 | 2023-11-21 |
| insee | echantillon-agglomerations-IPC-2024 | 2025-08-26 | 2025-04-02 |
| insee | ILC-ILAT-ICC | 2025-08-26 | 2025-08-28 |
| insee | INDICES_LOYERS | 2025-08-26 | 2025-08-28 |
| insee | IPC-1970-1980 | 2025-08-26 | 2025-08-28 |
| insee | IPC-1990 | 2025-08-26 | 2025-08-28 |
| insee | IPC-2015 | 2025-08-26 | 2025-08-28 |
| insee | IPC-PM-2015 | 2025-08-26 | 2025-08-28 |
| insee | IPCH-2015 | 2025-08-26 | 2025-08-28 |
| insee | IPCH-IPC-2015-ensemble | 2025-08-26 | 2025-08-26 |
| insee | IPGD-2015 | 2025-08-26 | 2025-05-24 |
| insee | IPLA-IPLNA-2015 | 2025-08-26 | 2025-08-28 |
| insee | IPPI-2015 | 2025-08-26 | 2025-08-28 |
| insee | IRL | 2025-08-26 | 2025-08-28 |
| insee | liste-varietes-IPC-2024 | 2025-08-26 | 2025-04-02 |
| insee | ponderations-elementaires-IPC-2024 | 2025-08-26 | 2025-04-02 |
| insee | SERIES_LOYERS | 2025-08-26 | 2025-08-28 |
| insee | T_CONSO_EFF_FONCTION | 2025-08-26 | 2024-07-18 |
LAST_COMPILE
| LAST_COMPILE |
|---|
| 2025-08-28 |
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())