QNA - Manufacturing

Data - OECD

Info

source dataset Title .html .rData
oecd QNA_manufacturing QNA - Manufacturing 2026-08-13 2026-08-02

Data on macro

source dataset Title .html .rData
eurostat nama_10_a10 Gross value added and income by A*10 industry breakdowns 2026-08-13 2026-08-12
eurostat nama_10_a10_e Employment by A*10 industry breakdowns 2026-08-13 2026-08-13
eurostat nama_10_gdp GDP and main components (output, expenditure and income) 2026-08-13 2026-08-12
eurostat nama_10_lp_ulc Labour productivity and unit labour costs 2026-08-13 2026-08-12
eurostat namq_10_a10 Gross value added and income A*10 industry breakdowns 2026-08-13 2026-08-12
eurostat namq_10_a10_e Employment A*10 industry breakdowns 2026-08-13 2026-08-12
eurostat namq_10_gdp GDP and main components (output, expenditure and income) 2026-08-13 2026-08-12
eurostat namq_10_lp_ulc Labour productivity and unit labour costs 2026-08-13 2026-08-12
eurostat namq_10_pc Main GDP aggregates per capita 2026-08-13 2026-08-12
eurostat nasa_10_nf_tr Non-financial transactions 2026-08-13 2026-08-12
eurostat nasq_10_nf_tr Non-financial transactions 2026-08-13 2026-08-13
fred gdp Gross Domestic Product 2026-08-12 2026-08-12
oecd QNA Quarterly National Accounts 2026-08-13 2026-08-12
oecd SNA_TABLE1 Gross domestic product (GDP) 2026-08-13 2026-08-02
oecd SNA_TABLE14A Non-financial accounts by sectors 2026-08-13 2026-08-02
oecd SNA_TABLE2 Disposable income and net lending - net borrowing 2026-08-13 2026-08-02
oecd SNA_TABLE6A Value added and its components by activity, ISIC rev4 2026-08-13 2026-08-02
wdi NE.RSB.GNFS.ZS External balance on goods and services (% of GDP) 2026-08-12 2026-08-12
wdi NY.GDP.MKTP.CD GDP (current USD) 2026-08-12 2026-08-12
wdi NY.GDP.MKTP.PP.CD GDP, PPP (current international D) 2026-08-12 2026-08-12
wdi NY.GDP.PCAP.CD GDP per capita (current USD) 2026-08-12 2026-08-12
wdi NY.GDP.PCAP.KD GDP per capita (constant 2015 USD) 2026-08-12 2026-08-12
wdi NY.GDP.PCAP.PP.CD GDP per capita, PPP (current international D) 2026-08-12 2026-08-12
wdi NY.GDP.PCAP.PP.KD GDP per capita, PPP (constant 2011 international D) 2026-08-12 2026-08-12

Last

obsTime Nobs
2023-Q2 1034

MEASURE

Code
QNA |>
  filter(FREQUENCY == "A") |>
  left_join(QNA_var$MEASURE, by = "MEASURE") |>
  group_by(MEASURE, Measure) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) |>
  print_table_conditional()
MEASURE Measure Nobs
CQR National currency, current prices, quarterly levels 4034
CQRSA National currency, current prices, quarterly levels, seasonally adjusted 3919
LNBQRSA National currency, chained volume estimates, national reference year, quarterly levels, seasonally adjusted 3854
LNBQR National currency, chained volume estimates, national reference year, quarterly levels 3663
CPCARSA US dollars, current prices, current PPPs, annual levels, seasonally adjusted 2738
VPVOBARSA US dollars, volume estimates, fixed PPPs, OECD reference year, annual levels, seasonally adjusted 2736
GPSA Growth rate based on seasonally adjusted volume data, percentage change on the previous quarter 2629
GYSA Growth rate based on seasonally adjusted volume data, percentage change on the same quarter of the previous year 2629
CARSA National currency, current prices, annual levels, seasonally adjusted 2519
VOBARSA National currency, volume estimates, OECD reference year, annual levels, seasonally adjusted 2338
DOBSA Deflator, OECD reference year, seasonally adjusted 2162
VIXOBSA Volume index, OECD reference year, seasonally adjusted 2072
DNBSA Deflator, national base/reference year, seasonally adjusted 1460
HCPCARSA Per Head, US $, current prices, current PPPs, seasonally adjusted 1444
HVPVOBARSA Per Head, US dollars, volume estimates, fixed PPPs, OECD reference year, seasonally adjusted 1443
VNBQR National currency, constant prices, national base year, quarterly levels 345
VNBQRSA National currency, constant prices, national base year, quarterly levels, seasonally adjusted 323
LNBARSA National currency, chained volume estimates, national reference year, annual levels, seasonally adjusted 264
CAR National currency, current prices, annual levels 234
VNBARSA National currency, constant prices, national base year, annual levels, seasonally adjusted 199
VNBAR National currency, constant prices, national base year, annual levels 109

Manufacturing VA

Number of observations

Code
QNA |>
  filter(SUBJECT %in% c("B1GVC"),
         FREQUENCY == "Q") |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  group_by(LOCATION, Location) |>
  quarter_to_date() |>
  summarise(first = first(date),
            last = last(date),
            Nobs = n()) |>
  arrange(first) |>
  mutate(Loc = gsub(" ", "-", str_to_lower(Location)),
         Loc = paste0('<img src="../../icon/flag/vsmall/', Loc, '.png" alt="Flag">')) |>
  select(Loc, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

Number of observations - CQRSA

Code
QNA |>
  filter(SUBJECT %in% c("B1GVC"),
         MEASURE == "CQRSA",
         FREQUENCY == "Q") |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  group_by(LOCATION, Location) |>
  quarter_to_date() |>
  summarise(first = first(date),
            last = last(date),
            Nobs = n()) |>
  arrange(first) |>
  mutate(Loc = gsub(" ", "-", str_to_lower(Location)),
         Loc = paste0('<img src="../../icon/flag/vsmall/', Loc, '.png" alt="Flag">')) |>
  select(Loc, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

France, Germany

Code
QNA |>
  filter(SUBJECT %in% c("B1GVC", "B1_GE"),
         MEASURE == "CQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("FRA", "DEU")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  select(Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVC / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_2flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Manufacturing Value Added (% of GDP)") + xlab("")

France, Germany, US, Japan, China, Britain, India

Code
QNA |>
  filter(SUBJECT %in% c("B1GVC", "B1_GE"),
         MEASURE == "CQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("FRA", "DEU", "JPN", "CHN", "GBR")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  select(LOCATION, Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVC / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(color = ifelse(LOCATION == "FRA", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_4flags +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Manufacturing Value Added (% of GDP)") + xlab("")

France, Germany, US, Japan, China, Britain

Code
QNA |>
  filter(SUBJECT %in% c("B1GVC", "B1_GE"),
         MEASURE == "CQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("FRA", "DEU", "JPN", "CHN", "GBR")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  select(LOCATION, Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVC / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(color = ifelse(LOCATION == "FRA", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_4flags +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Manufacturing Value Added (% of GDP)") + xlab("")

France, Italy, Germany

Code
QNA |>
  filter(SUBJECT %in% c("B1GVC", "B1_GE"),
         MEASURE == "CQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("ITA", "FRA", "DEU")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  select(Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVC / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(color = ifelse(Location == "Norway", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Manufacturing Value Added (% of GDP)") + xlab("")

Norway, Switzerland, South Korea

Code
QNA |>
  filter(SUBJECT %in% c("B1GVC", "B1_GE"),
         MEASURE == "CQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("CHE", "KOR", "NOR")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  select(Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVC / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(color = ifelse(Location == "Norway", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Manufacturing Value Added (% of GDP)") + xlab("")

Costa Rica, Finland, Sweden

Code
QNA |>
  filter(SUBJECT %in% c("B1GVC", "B1_GE"),
         MEASURE == "CQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("FIN", "CRI", "SWE")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  select(Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVC / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(color = ifelse(Location == "", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Manufacturing Value Added (% of GDP)") + xlab("")

Real Manufacturing Value Added (% of Real GDP) - LNBQRSA - Chained Volume

France, Italy, Germany

Code
QNA |>
  filter(SUBJECT %in% c("B1GVC", "B1_GE"),
         MEASURE == "LNBQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("ITA", "FRA", "DEU")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  select(Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVC / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(color = ifelse(Location == "Norway", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Manufacturing Value Added (% of GDP)") + xlab("")

France, Germany

All

Code
QNA |>
  filter(SUBJECT %in% c("B1GVC", "B1_GE"),
         MEASURE == "LNBQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("FRA", "DEU")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  select(Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVC / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_2flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Manufacturing Value Added (% of GDP)") + xlab("")

1995-

Code
QNA |>
  filter(SUBJECT %in% c("B1GVC", "B1_GE"),
         MEASURE == "LNBQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("FRA", "DEU")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  select(Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVC / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_2flags +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Manufacturing Value Added (% of GDP)") + xlab("")

Industry VA

Number of observations

Code
QNA |>
  filter(SUBJECT %in% c("B1GVB_E"),
         MEASURE == "CQRSA",
         FREQUENCY == "Q") |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  group_by(LOCATION, Location) |>
  quarter_to_date() |>
  summarise(first = first(date),
            last = last(date),
            Nobs = n()) |>
  arrange(first) |>
  mutate(Loc = gsub(" ", "-", str_to_lower(Location)),
         Loc = paste0('<img src="../../icon/flag/vsmall/', Loc, '.png" alt="Flag">')) |>
  select(Loc, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

France, Germany

All

Code
QNA |>
  filter(SUBJECT %in% c("B1GVB_E", "B1_GE"),
         MEASURE == "CQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("FRA", "DEU")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  select(Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVB_E / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(color = ifelse(Location == "Norway", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_2flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Industry Value Added (% of GDP)") + xlab("")

1995-

Code
QNA |>
  filter(SUBJECT %in% c("B1GVB_E", "B1_GE"),
         MEASURE == "CQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("FRA", "DEU")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  select(Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVB_E / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(color = ifelse(Location == "Norway", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_2flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Industry Value Added (% of GDP)") + xlab("")

France, Italy, Germany (% of GDP)

All

Code
QNA |>
  filter(SUBJECT %in% c("B1GVB_E", "B1_GE"),
         MEASURE == "CQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("ITA", "FRA", "DEU")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  select(Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVB_E / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(color = ifelse(Location == "Norway", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Industry Value Added (% of GDP)") + xlab("")

1995-

Code
QNA |>
  filter(SUBJECT %in% c("B1GVB_E", "B1_GE"),
         MEASURE == "CQRSA",
         FREQUENCY == "Q",
         LOCATION %in% c("ITA", "FRA", "DEU")) |>
  left_join(QNA_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  select(Location, SUBJECT, date, obsValue) |>
  spread(SUBJECT, obsValue) |>
  mutate(obsValue = B1GVB_E / B1_GE) |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(color = ifelse(Location == "Norway", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
  scale_color_identity() + theme_minimal() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Industry Value Added (% of GDP)") + xlab("")