Loading workbench page
Fetching primary parquet sources and computing exhibits.
Fetching primary parquet sources and computing exhibits.
This is a lighter page than the rest of the workbench. Consultants in transaction services and equity research talk HS -> industry -> listed company; the full chain needs three external concordance tables (HS-NAICS, HS-SITC, HS-ISIC) plus an industry-to-company mapping (GICS with SEC EDGAR or equivalent). None of those tables is ingested here yet. What we can do on today's Parquet footprint is surface the WCO Harmonized System section and chapter structure, show the sibling HS6 codes in the same HS4 heading as an honest lowest-level product family, and flag the concordance sources that need to land next.
The Harmonized System partitions all merchandise into 21 sections (I-XXI), each containing a set of 2-digit chapters (01-97), which subdivide into 4-digit headings and then 6-digit subheadings (HS6). Section-level aggregates below are the sum of world exports across every HS6 we observe in BACI HS96 for 2024, displayed in current USD after the BACI ×1000 adjustment.
SELECT p.section, COUNT(DISTINCT p.code) AS n_hs6, COUNT(DISTINCT p.chapter) AS n_chapters,
SUM(cyp.export_value) * 1000 AS world_usd
FROM products_all p
LEFT JOIN 'country_year_product/year=2024/*.parquet' cyp ON cyp.product_code = p.code
WHERE p.revision = 'HS96' AND p.section IS NOT NULL
GROUP BY p.section ORDER BY p.section;For HS 854231, this table shows every concordance field we can fill today. NAICS (North American Industry Classification System, US/Canada/Mexico), ISIC Rev 4 (UN Statistical Division), SITC Rev 4 (UN product classification), and GICS (MSCI/S&P industry classification) columns are placeholders; populating them requires ingesting the four concordance files listed in the sources note. Each of those files maps many-to-many (a single HS6 can roll up to several NAICS, GICS, or ISIC codes when end-use crosses categories), so the ingest step must preserve the crosswalk multiplicity, not force a single pick.
Without a NAICS/GICS bridge, the closest honest 'roll-up' is the HS4 heading. Heading 8542 contains the HS6 codes below, ranked by world exports in 2024. This is a product family, not an industry class, but for buyer-side sourcing work it is a defensible starting point: the WCO intentionally groups substitutable goods at the heading level.
One level up from Figure 3: the 2-digit chapters inside the same HS section as the chosen HS6, with HS6 counts and aggregate world exports. This is useful when the user types an arbitrary HS6 and wants to see what else lives in its section neighbourhood before drilling into alternative chapters.
85.The UN Broad Economic Categories (BEC) Rev 5 classification maps every HS6 to an end-use aggregate: capital goods, intermediate goods, consumption goods, or primary goods (see UN Statistical Papers Series M No. 53, Rev 5, 2024; Lemmers & Wong 2019 review). A stock roll-up of HS sections to BEC classes is a practical proxy before the full BEC ingest: HS sections V-VII (minerals, chemicals, plastics) are dominantly intermediate; HS XVI (machinery & electricals) splits capital-goods-heavy at the chapter level; HS XI-XII (textiles & footwear) are dominantly final consumption. The figure below shows each section's 2024 world trade value split by a heuristic capital/intermediate/consumption weight derived from BEC Rev 5 headline class proportions; the precise decomposition requires the HS-BEC correspondence file listed in the coverage roadmap below.
Method note on BEC decomposition. The canonical many-to-many HS-to-BEC correspondence (UN Statistics Division, Correspondence between HS 2022 and BEC Rev 5, 2024) assigns every HS6 code to one of 19 BEC classes at the main level, which aggregate to the four headline classes (Capital, Intermediate, Final consumption, Not elsewhere classified). A trade flow decomposition uses the HS6-BEC weight matrix W (sparse, 1 per HS6 in Rev 5's hard assignment; fractional in some historical revisions): V_BEC = W' × V_HS6. The classification has been used in Lemmers & Wong (2019) and the OECD Trade in Value Added (TiVA) pipeline to trace intermediate-goods networks.
The UN Broad Economic Categories classification partitions every HS6 line into a production-stage class: primary goods (HS 01-15 agriculture-and-minerals heavy), semi-finished goods (intermediate materials, HS 25-83 most), parts and components (intermediate industrial inputs, e.g. HS 8409 engine parts, HS 8708 motor-vehicle parts, HS 8542 integrated circuits), capital goods (investment equipment: most of HS 84 machinery, HS 8802 aircraft), and consumption goods (final-demand: HS 61-64 apparel, HS 94 furniture, HS 8703 passenger cars, HS 8517 phones). The composition over time is a compact signature of the global value chain re-architecture documented in Johnson-Noguera (2012, Journal of International Economics) and Baldwin (2016, The Great Convergence): a trade-in-tasks world sends more intermediates and components across borders than a trade-in-goods world. CEPII's global_trade_by_stage table provides the stage roll-up to world aggregates at annual frequency (values in millions of USD).
Figure 6 plots the five stage shares as parallel time series. The net change over the window is easier to read as a single bar per stage. The direction and magnitude of each stage's drift speak directly to what Baldwin (2016) called the 'great convergence' and to Antras's (2020, NBER WP 28115) de-globalisation debate: has production sharing continued to deepen, or has final-consumption trade reclaimed share as global value chains shorten?
Figure 1 reports HS6 subheading counts per section, which is the finest granularity in BACI. The HS4 heading is the layer between chapter (HS2) and subheading (HS6), and it is the level at which the WCO draws its substantive product-family distinctions. The number of HS4 headings per section is a structural measure of how finely the WCO chose to partition each part of the goods universe; a section with many headings has more product families that an industrial-policy or equity-research user must keep separate, while a section with few headings is internally homogeneous in the WCO's view. The bars below count distinct HS4 headings per section in the HS96 catalogue.
The following public datasets, once ingested, would extend this page into a full HS to industry to company bridge:
census.gov/foreign-trade/reference/codes. Many-to-many; requires duplicating HS6 rows across target NAICS codes.unstats.un.org/unsd/classifications. Many-to-many; canonical source for industry-of-origin attribution in national accounts.company_tickers.jsonand XBRL segment data. Once GICS is in, company-level trade exposure becomes a join on ticker -> GICS -> HS6 -> BACI bilateral flows. Until EDGAR is ingested, this page cannot list listed players per industry./concentration page) and gravity (Figure 4 of/gravity) on those HS6s to stress-test the revenue model.854213 at $962.4B(97.1% of the heading). Treat this as a product-family aggregation, not a GICS industry.SELECT p.code, p.name, SUM(cyp.export_value) * 1000 AS world_usd FROM products_all p LEFT JOIN 'country_year_product/year=2024/*.parquet' cyp ON cyp.product_code = p.code WHERE p.revision = 'HS96' AND p.heading = '8542' GROUP BY p.code, p.name ORDER BY world_usd DESC;
SELECT p.section, SUM(cyp.export_value) * 1000 AS world_usd FROM products_all p LEFT JOIN 'country_year_product/year=2024/*.parquet' cyp ON cyp.product_code = p.code WHERE p.revision = 'HS96' AND p.section IS NOT NULL GROUP BY p.section ORDER BY world_usd DESC;
SELECT year, production_stage,
trade_value_dollars / SUM(trade_value_dollars) OVER (PARTITION BY year) * 100 AS share_pct
FROM 'global_trade_by_stage.parquet'
WHERE production_stage IS NOT NULL
ORDER BY year, production_stage;WITH shares AS (
SELECT year, production_stage,
trade_value_dollars / SUM(trade_value_dollars) OVER (PARTITION BY year) * 100 AS share_pct
FROM 'global_trade_by_stage.parquet'
WHERE production_stage IS NOT NULL
)
SELECT production_stage,
MAX(CASE WHEN year = 2023 THEN share_pct END)
- MAX(CASE WHEN year = 2000 THEN share_pct END) AS delta_pp
FROM shares GROUP BY production_stage ORDER BY delta_pp DESC;SELECT CAST(section AS INTEGER) AS section, COUNT(DISTINCT heading) AS n_headings FROM products_all WHERE revision = 'HS96' AND section IS NOT NULL AND heading IS NOT NULL GROUP BY section ORDER BY section;