Quarterly National Accounts

Data - OECD

Info

source dataset .html .RData

oecd

INDSERV

2024-09-11 2024-09-14

Last

obsTime Nobs
2024-Q1 317

FREQ

Code
INDSERV %>%
  left_join(FREQ, by = "FREQ") %>%
  group_by(FREQ, Freq) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
FREQ Freq Nobs
M Monthly 243498
Q Quarterly 74523
A Annual 18888

ACTIVITY

Code
INDSERV %>%
  left_join(ACTIVITY, by = "ACTIVITY") %>%
  group_by(ACTIVITY, Activity) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
ACTIVITY Activity Nobs
C Manufacturing 71548
BTE Industry (except construction) 70864
G47 Retail trade, except of motor vehicles and motorcycles 52437
G45 Wholesale and retail trade and repair of motor vehicles and motorcycles 42077
F Construction 41099
D Electricity, gas, steam and air conditioning supply 29167
F41 Construction of buildings 26888
MIG_NRG Main Industrial Groupings (MIG) - energy 2829

MEASURE

Code
INDSERV %>%
  left_join(MEASURE, by = "MEASURE") %>%
  group_by(MEASURE, Measure) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
MEASURE Measure Nobs
PRVM Production volume 215507
TOVM Retail trade volume 52437
TOCAPA Passenger car registrations 42077
NODW Permits issued for dwellings 16867
WSDW Construction work started on dwellings 10021

REF_AREA

Code
INDSERV %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  group_by(REF_AREA, Ref_area) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()

Industrial Production

Etats-Unis vs Zone euro

All

Code
INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  group_by(date) %>%
  filter(n() == 2) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  mutate(Ref_area2 = ifelse(REF_AREA == "EA20", "Eurozone", Ref_area),
         color = ifelse(REF_AREA == "USA", color2, color)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + add_2flags +
  theme_minimal() + xlab("") + ylab("Production manufacturière (Janv. 1980 = 100)") +
  scale_x_date(breaks = c(seq(1970, 2100, 5),seq(1980, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-10, 300, 5),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank()) +
  labs(caption = "Source: OCDE")

Etats-Unis vs Zone euro

All

Code
INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  group_by(date) %>%
  filter(n() == 2) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  mutate(Ref_area2 = ifelse(REF_AREA == "EA20", "Eurozone", Ref_area),
         color = ifelse(REF_AREA == "USA", color2, color)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + add_2flags +
  theme_minimal() + xlab("") + ylab("Production manufacturière (Janv. 1980 = 100)") +
  scale_x_date(breaks = c(seq(1970, 2100, 5),seq(1980, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-10, 300, 5),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank()) +
  geom_rect(data = nber_recessions %>%
              filter(Peak > as.Date("1980-01-01")), 
            aes(xmin = Peak, xmax = Trough, ymin = 0, ymax = +Inf),
            fill = '#B22234', alpha = 0.1)  +
  geom_rect(data = cepr_recessions %>%
              filter(Peak > as.Date("1980-01-01")), 
            aes(xmin = Peak, xmax = Trough, ymin = 0, ymax = +Inf), 
            fill = '#003399', alpha = 0.1) +
  labs(caption = "Source: OCDE")

1999-

Code
metadata_load_fr("REF_AREA", "CL_AREA")
plot <- INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  filter(date >= as.Date("1999-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = ifelse(REF_AREA == "EA20", "Zone euro", Ref_area)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = Ref_area)) +
  scale_color_manual(values = c("#B22234", "#003399")) +
  theme_minimal() + xlab("") + ylab("Production manufacturière (Janv. 1999 = 100)") +
  scale_x_date(breaks = c(seq(1999, 2100, 5),seq(1997, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-10, 300, 5),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank()) +
  geom_rect(data = nber_recessions %>%
              filter(Peak > as.Date("1999-01-01")), 
            aes(xmin = Peak, xmax = Trough, ymin = 0, ymax = +Inf),
            fill = '#B22234', alpha = 0.1)  +
  geom_rect(data = cepr_recessions %>%
              filter(Peak > as.Date("1999-01-01")), 
            aes(xmin = Peak, xmax = Trough, ymin = 0, ymax = +Inf), 
            fill = '#003399', alpha = 0.1) +
  labs(caption = "Source: OCDE")

save(plot, file = "INDSERV_files/figure-html/PRVM-C-USA-EA20-1999-1.RData")
plot

France, Italy, US, Europe, Greece

All

Code
metadata_load("REF_AREA", "CL_AREA")
INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20", "ITA", "FRA", "DEU", "GRC")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  group_by(date) %>%
  #filter(n() == 6) %>%
  #filter(date >= as.Date("1999-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  mutate(color = ifelse(REF_AREA == "EA20", color2, color)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + xlab("") + ylab("Production manufacturière (Janv. 1999 = 100)") +
  scale_color_identity() + add_6flags +
  scale_x_date(breaks = c(seq(1920, 2100, 10)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 10000, 100),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

Code
  # + labs(caption = "Source: OCDE, calculs de @FrancoisGeerolf")

1955-

Code
metadata_load("REF_AREA", "CL_AREA")
INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20", "ITA", "FRA", "DEU", "GRC")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  group_by(date) %>%
  #filter(n() == 6) %>%
  filter(date >= as.Date("1955-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  mutate(color = ifelse(REF_AREA == "EA20", color2, color)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + xlab("") + ylab("Production manufacturière (Janv. 1999 = 100)") +
  scale_color_identity() + add_6flags +
  scale_x_date(breaks = c(seq(1920, 2100, 10)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 10000, 100),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

Code
  # + labs(caption = "Source: OCDE, calculs de @FrancoisGeerolf")

1980-

Code
metadata_load("REF_AREA", "CL_AREA")
INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20", "ITA", "FRA", "DEU", "GRC")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  group_by(date) %>%
  #filter(n() == 6) %>%
  filter(date >= as.Date("1980-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  mutate(color = ifelse(REF_AREA == "EA20", color2, color)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + xlab("") + ylab("Production manufacturière") +
  scale_color_identity() + add_6flags +
  scale_x_date(breaks = c(seq(1920, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(10, 10000, 10),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

Code
  # + labs(caption = "Source: OCDE, calculs de @FrancoisGeerolf")

2000-

Code
metadata_load("REF_AREA", "CL_AREA")
INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20", "ITA", "FRA", "DEU", "GRC")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  group_by(date) %>%
  #filter(n() == 6) %>%
  filter(date >= as.Date("2000-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  mutate(color = ifelse(REF_AREA == "EA20", color2, color)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + xlab("") + ylab("Production manufacturière") +
  scale_color_identity() + add_6flags +
  scale_x_date(breaks = c(seq(1920, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(10, 10000, 10),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

Code
  # + labs(caption = "Source: OCDE, calculs de @FrancoisGeerolf")

6 observations

Code
metadata_load("REF_AREA", "CL_AREA")
INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20", "ITA", "FRA", "DEU", "GRC")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  group_by(date) %>%
  filter(n() == 6) %>%
  #filter(date >= as.Date("1999-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  mutate(color = ifelse(REF_AREA == "EA20", color2, color)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + xlab("") + ylab("Production manufacturière (Janv. 1999 = 100)") +
  scale_color_identity() + add_6flags +
  scale_x_date(breaks = c(seq(1979, 2100, 5),seq(1977, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-10, 300, 5),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

Code
  # + labs(caption = "Source: OCDE, calculs de @FrancoisGeerolf")

France, Italy, US, Europe

All

Code
metadata_load("REF_AREA", "CL_AREA")
INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20", "ITA", "FRA", "DEU")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  group_by(date) %>%
  filter(n() == 5) %>%
  #filter(date >= as.Date("1999-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  mutate(color = ifelse(REF_AREA == "EA20", color2, color)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + xlab("") + ylab("Production manufacturière (Janv. 1999 = 100)") +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = c(seq(1979, 2100, 5),seq(1977, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-10, 300, 5),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

Code
  # + labs(caption = "Source: OCDE, calculs de @FrancoisGeerolf")

1999-

Code
metadata_load("REF_AREA", "CL_AREA")
INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20", "ITA", "FRA", "DEU")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  filter(date >= as.Date("1999-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  mutate(color = ifelse(REF_AREA == "EA20", color2, color)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + xlab("") + ylab("Production manufacturière (Janv. 1999 = 100)") +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = c(seq(1999, 2100, 5),seq(1997, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-10, 300, 5),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

Code
  # + labs(caption = "Source: OCDE, calculs de @FrancoisGeerolf")

Etats-Unis vs Zone euro VS EU27_2020

All

Code
metadata_load_fr("REF_AREA", "CL_AREA")
INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20", "EU27_2020")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  group_by(date) %>%
  filter(n() == 3) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = case_when(REF_AREA == "EA20" ~ "Zone euro",
                              REF_AREA == "EU27_2020" ~ "Union Européenne à 27",
                              TRUE ~ Ref_area)) %>%
  mutate(REF_AREA = ifelse(REF_AREA == "EU27_2020", "EU27", REF_AREA)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = Ref_area)) +
  theme_minimal() + xlab("") + ylab("Production manufacturière (Janv. 1999 = 100)") +
  scale_x_date(breaks = seq(1990, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-10, 300, 5),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.15, 0.85),
        legend.title = element_blank()) +
  geom_label(data = . %>% filter(date == max(date)), aes(x = date, y = obsValue, label = REF_AREA, color = Ref_area))

1999-

Code
metadata_load_fr("REF_AREA", "CL_AREA")
INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20", "EU27_2020")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  filter(date >= as.Date("1999-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = case_when(REF_AREA == "EA20" ~ "Zone euro",
                              REF_AREA == "EU27_2020" ~ "Union Européenne à 27",
                              TRUE ~ Ref_area)) %>%
  mutate(REF_AREA = ifelse(REF_AREA == "EU27_2020", "EU27", REF_AREA)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = Ref_area)) +
  theme_minimal() + xlab("") + ylab("Production manufacturière (Janv. 1999 = 100)") +
  scale_x_date(breaks = c(seq(2000, 2100, 5),seq(1997, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-10, 300, 5),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank()) +
  geom_label(data = . %>% filter(date == max(date)), aes(x = date, y = obsValue, label = REF_AREA, color = Ref_area))

2000-

Code
metadata_load_fr("REF_AREA", "CL_AREA")
INDSERV %>%
  filter(MEASURE == "PRVM",
         ACTIVITY == "C",
         FREQ == "M",
         ADJUSTMENT == "Y",
         REF_AREA %in% c("USA", "EA20", "EU27_2020")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  month_to_date %>%
  filter(date >= as.Date("2000-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  mutate(Ref_area = case_when(REF_AREA == "EA20" ~ "Zone euro",
                              REF_AREA == "EU27_2020" ~ "Union Européenne à 27",
                              TRUE ~ Ref_area)) %>%
  mutate(REF_AREA = ifelse(REF_AREA == "EU27_2020", "EU27", REF_AREA)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = Ref_area)) +
  theme_minimal() + xlab("") + ylab("Production manufacturière (Janv. 2000 = 100)") +
  scale_x_date(breaks = c(seq(2000, 2100, 5),seq(1997, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-10, 300, 5),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.15, 0.85),
        legend.title = element_blank()) +
  geom_text(data = . %>% filter(date == max(date)), aes(x = date, y = obsValue, label = REF_AREA, color = Ref_area))