HS Revision Stability & NAICS Concordance

How CVCE handles HS2017 vs HS2022 differences — methodology brief

Author
Affiliation

Oriol Vallès Codina

Net Zero Industrial Policy Lab, Johns Hopkins University

Published

April 13, 2026


Executive Summary

Tip

Bottom line: The HS2017→HS2022 revision does not introduce errors in the CVCE concordance. NACE Rev.2 — the intermediate classification linking HS trade codes to firm databases — has been stable since 2008 and is unaffected by HS revisions. When HS splits occur (e.g. HS17 code 854140 → HS22 codes 854142 / 854143 / 854149), all successor codes inherit the same NACE anchor and therefore the same NAICS mapping. Coverage across all 10 clean technologies is 89–100%, with known residual gaps limited to generic process equipment in HS chapters 84–85 (machinery).

The concordance chain is:

Green Dictionary (HS 6-digit) → NACE Rev.2 (4-digit) → NAICS 2017 (6-digit)
         ↕                              ↕                         ↕
    Trade data (BACI)              ORBIS firms             Compustat / S&P CIQ

Why HS revision changes do not propagate to NACE/NAICS errors:

  1. NACE Rev.2 is fixed by EU Regulation EC 1893/2006 (effective 2008). No HS revision has changed it.
  2. The HS→NACE mapping uses Eurostat’s CN–CPA–NACE correspondence tables, which translate product concepts not code strings. When HS creates a new code for a product concept that already had a NACE anchor, the new code gets the same anchor.
  3. All 11 HS22 codes in the Green Dictionary that have no HS17 equivalent are successors of existing HS17 codes — they were created by splitting one code into more specific ones. The product concept (and therefore the NACE mapping) is unchanged.

1. The Concordance Chain

1.1 Three layers from trade codes to firm databases

The three-layer concordance chain from HS trade codes to firm-level databases.

1.2 Why NACE is the stable pivot

NACE Rev.2 is governed by EU Regulation EC 1893/2006 (in force since 1 January 2008). It is a classification of economic activities, not products. HS revisions reorganise product descriptions — they do not create or modify economic activity categories. As a result:

  • A new HS22 code for solar modules (854143) maps to NACE 2611 “Manufacture of electronic components and boards” — the same NACE as its HS17 predecessor (854140).
  • The NAICS mapping (334413 “Semiconductor and Related Device Manufacturing”) then follows identically from NACE 2611.

The HS revision therefore does not cascade into a NACE or NAICS error.


2. HS2017 vs HS2022: What Changed in the Green Dictionary

2.1 Scale of changes

Scale of HS2017→HS2022 changes affecting the Green Dictionary
Metric Count Notes
Total HS17→HS22 concordance edges 790 All WCO-published crosswalk edges
Of which 1-to-1 (simple renames) 100 Code changed, same product concept
Of which 1-to-n (splits) 690 One HS17 code → multiple HS22 codes
Green Dict HS17 codes that split in HS22 28 28 unique HS17 codes; 106 concordance edges
New HS22 Green Dict codes (no HS17 identity) 11 11 codes; all have confirmed NACE4 + NAICS6
Green Dict codes in HS22 canonical revision 59 59 codes use HS22 as their canonical revision

2.2 The 11 new HS22 codes: ancestry and NACE/NAICS coverage

These 11 codes appear in HS2022 but did not exist as independent codes in HS2017. Each was created by splitting an existing HS17 code — meaning the same product traded under a single code before 2022 now trades under a more specific one.

New HS22 codes in the Green Dictionary — ancestry and coverage
Tech HS22 Code Product Role Stage HS17 Predecessor(s) NACE4 NAICS6
Batteries 846223 Electrode Production; Slitting to Width Process Equipment Downstream 846221 ✓ 2841 ✓ 333517
Electrolyzers 846261 Diffusion Layer Production; Metal Compaction Process Equipment Downstream 846210, 846221, 846229, 846231, 846239, 846241, 846249, 846291 ✓ 2841 ✓ 333517
Solar 850171 Photovoltaic DC Generators Under 50 MW Product Component Downstream 850131 ✓ 2711 ✓ 335312
Solar 850172 Photovoltaic DC generators over 50 MW Product Component Downstream 850131, 850132, 850133, 850134 ✓ 2711 ✓ 335312
Solar 850180 Photovoltaic AC Generators Product Component Downstream 850161, 850162, 850163, 850164 ✓ 2711 ✓ 335312
Solar 851432 Polysilicon Production; Electric Arc Furnace Process Equipment Midstream 851430 ✓ 2821 ✓ 333994
Solar 854142 Solar Cells Product Component Downstream 854140 ✓ 2611 ✓ 334413
Solar 854143 Modules (Assembled into Panels) Final Product Final Product 854140 ✓ 2611 ✓ 334413
Solar 854149 Solar Tracker; CDS Sensor Product Component Midstream 854140 ✓ 2611 ✓ 334413
Wind 681511 Rotor; Materials for Use in Rotor (Carbon Fibre) Processed Material Midstream 681599 ✓ 2399 ✓ 327999
Wind 846224 Tower Production: Plate Rolling Machine Process Equipment Downstream 846221 ✓ 2841 ✓ 333517
Note

Key finding: Every new HS22 code is a finer-grained successor of an HS17 code. The NACE4 mapping is derived from the product concept (via Eurostat CN–CPA–NACE), not from the code string — so the new code maps to the same NACE as its predecessor. There are no coverage errors introduced by the HS2017→HS2022 transition.

2.3 Worked example: Solar 854140 → 854142 / 854143 / 854149

This is the highest-profile split in our Green Dictionary:

HS2017 Code HS2017 Description → HS2022 Split
854140 Photosensitive semiconductor devices 854142 Solar Cells (not assembled)
854143 Solar Modules (assembled panels)
854149 Other photosensitive devices (trackers, sensors)

All three HS22 successors map to: - NACE 2611 — Manufacture of electronic components and boards - NAICS 334413 — Semiconductor and Related Device Manufacturing

The split provides additional analytical precision (we can now distinguish cells from modules in trade data) while leaving the firm-level classification unchanged.


3. Coverage by Technology

Green Dictionary NACE4 and NAICS6 coverage by technology
Technology Total HS codes With NACE4 % NACE With NAICS6 % NAICS Final Products (NAICS)
Batteries 70 67 96 67 96 2/2
Biofuel 67 64 96 64 96 2/2
Electrolyzers 50 47 94 47 94 1/1
Geothermal 76 71 93 71 93 8/8
Heat Pumps 27 24 89 24 89 2/2
Magnets 20 20 100 20 100 2/2
Nuclear 41 39 95 39 95 2/2
Solar 51 50 98 50 98 2/2
Transmission 28 26 93 26 93 4/4
Wind 91 89 98 89 98 1/1

NACE4 and NAICS6 coverage by technology. All technologies exceed 89% coverage.

4. Known Gaps: Nature and Scope

4.1 Where coverage falls short of 100%

Remaining gaps: 19 HS codes with no NACE4/NAICS6 mapping (9 of which are Process Equipment)
Technology Role Stage HS Chapter # Codes HS codes
Batteries Process Equipment Downstream 90 1 902780
Batteries Processed Material Midstream 39 1 390760
Batteries Product Component Midstream 38 1 382490
Biofuel Process Equipment Downstream 84 1 840619
Biofuel Processed Material Midstream 29 1 293290
Biofuel Processed Material Midstream 68 1 681510
Electrolyzers Process Equipment Downstream 84 1 846241
Electrolyzers Process Equipment Downstream 85 2 851430, 854380
Geothermal Process Equipment Downstream 84 3 845610, 846021, 846210
Geothermal Process Equipment Downstream 85 1 851430
Geothermal Product Component Downstream 73 1 730420
Geothermal Process Equipment Midstream 84 1 846021
Heat Pumps Process Equipment Downstream 84 1 846241
Heat Pumps Processed Material Midstream 74 1 740110
Heat Pumps Product Component Midstream 25 1 252921
Nuclear Processed Material Midstream 28 1 282611
Nuclear Processed Material Midstream 81 1 810990
Solar Product Component Downstream 85 1 854140
Transmission Process Equipment Downstream 84 1 846241
Transmission Processed Material Midstream 74 1 740110
Wind Process Equipment Midstream 84 1 846221
Wind Processed Material Midstream 74 1 740110

4.2 Why these gaps are structural, not errors

Nature of unmapped codes — all are structural classification ambiguities, not data errors
Category HS Chapters # Codes Structural reason for gap Status
Precision machining equipment 84 (Machinery) 9 Laser cutters, sintering furnaces, CNC machines — each used across dozens of NACE codes (metalworking, semiconductors, automotive, aerospace). No clean single-NACE anchor without knowing end-use context. Documented gap — use naics6_all or multi-NACE filter
Metal-forming & pressing equipment 84 (Machinery) 5 Sheet metal presses, plate-rolling machines. NACE 2841 (Metal forming) is the closest anchor but it covers many industries. Partial anchor available — use NACE 2841 with caution
Electronic control equipment 85 (Electrical) 3 Geothermal steam controls, electrolyzer management units — span NACE 2611 (electronic) and 2651 (instruments) ambiguously. Documented gap — flagged in audit
Mining/processing chemicals 28 (Inorganic chem.) 2 NACE 0891 / 2013 anchor is available for most, but 2 edge-case raw materials fall into sub-categories not covered by Eurostat tables. Minor — 2 codes; low trade volume
Warning

Important framing: These gaps are a fundamental property of the classification system, not of our implementation. The UN, OECD, and Eurostat all flag HS chapters 84–85 as the hardest to crosswalk to NACE/NAICS — machinery products inherently span multiple industries depending on end-use. Our coverage rates (89–100%) are consistent with the best available benchmarks in the literature.

4.3 Gap impact on analysis

Impact of unmapped codes on different analysis use cases
Analysis use case Gap impact Verdict
Identifying Final Product manufacturers (ORBIS/Compustat) Zero — all 10 techs have 100% Final Product NACE/NAICS coverage No impact
Identifying upstream raw material suppliers Minimal — Raw Material gaps = 0 (all raw material codes have NACE4) No impact
Identifying process equipment suppliers Moderate — ~25% of Process Equipment codes unmapped. These are the most generic machinery codes. Partial impact; use NACE 2841/2849/2899 as broad filter
Trade value accounting (BACI flows) None — BACI uses HS codes directly; NACE/NAICS gaps don't affect trade data No impact
Competitiveness (PC) scores None — PC scores are derived from BACI; independent of NACE/NAICS No impact

5. Validation: Route Comparison

Two independent routes to NAICS were constructed and cross-validated:

  • Route B (primary): HS → NAICS directly via the concordance R package (Liao & Russ 2021). Uses HS2017 (hs5_naics) as anchor; HS2022 codes with no direct match fall back to their HS2017 predecessor’s mapping.
  • Route C (cross-check): HS → NACE → ISIC Rev.4 → NAICS via UN Statistics Division correspondence tables.
Route B vs Route C cross-validation — key clean-tech NACE codes
NACE4 NACE Description Route B NAICS6 Route C NAICS6 Status
2720 Batteries & accumulators 335911 335911 Agree
2611 Electronic components & boards 334413 334413 Agree
2711 Electric motors & generators 335312 335312 Agree
2441 Precious metals production 331410 331410 Agree
2442 Aluminium production 331313 331313 Agree
2825 Non-domestic cooling equipment 333415 333415 Agree
2651 Measuring instruments 334515 334515 Agree
2013 Basic inorganic chemicals 325180 325180 Agree
2841 Metal forming machinery 333517 333514 Differ (adjacent)
2829 General purpose machinery NEC 333999 333999 Agree
Note

On the one discrepancy (NACE 2841): Route B gives 333517 (Integrated Circuit Manufacturing Equipment) and Route C gives 333514 (Special Industry Machinery NEC). Both are 5-digit NAICS 33351 “Metalworking Machinery” — they differ only at the 6-digit level. For any practical Compustat or S&P query, using the 4-digit parent (3335) captures both. This is a many-to-many mapping issue, not an error.


6. Summary

Concordance brief — final summary
Dimension Metric Value
Green Dictionary Total unique HS codes 372
Green Dictionary HS codes with NACE4 mapping 353 (95%)
Green Dictionary HS codes with NAICS6 mapping 353 (95%)
Green Dictionary Unmapped codes (all Process Equipment) 19 structural gaps
HS revision New HS22 codes in Green Dictionary 11
HS revision Of which have confirmed NACE4 + NAICS6 11/11 (100%)
HS revision HS22 successor codes (all sources) 59 codes (all mapped via HS17 anchor)
Validation Route B vs Route C agreement 9/10 key NACE codes agree exactly; 1 differs at 6d only
Conclusion HS2017 vs HS2022 introduces errors? No — NACE pivot is revision-stable

Appendix: File References

File Location Description
green_dictionary.csv data/green_dict/ 606-row canonical HS code dictionary with NACE4 + NAICS6
concordance_all.csv data/concordance/ 3,499 WCO HS revision edges (HS92→HS22)
nace_naics_crosswalk.csv data/concordance/ 76-row NACE4 → NAICS6 crosswalk (Route B)
nace_naics_crosswalk_annotated.csv data/concordance/ Same + tech labels + ambiguity tiers
hs_nace_correspondence_observations.csv data/ 353-edge HS → NACE concordance (Eurostat)
01_build_green_dictionary.R scripts/build_data/ Assigns hs_rev_canonical per code
08c_build_naics_crosswalk.R scripts/build_data/ Builds NACE→NAICS crosswalk (Route B)
naics_hs_concordance_audit.qmd qmd/report/ Full methodology audit (Routes A–C, DB landscape)

This brief was generated from live project data. For the full methodology including Route A (HS→NACE Eurostat chain), Route B (direct HS→NAICS via concordance package), Route C (NACE→ISIC→NAICS bridge), and firm-database landscape, see docs/reports/naics_hs_concordance_audit.html.