WoT

Crosswalk Map - How Classification Systems Connect

Crosswalk Map - How Classification Systems Connect

TL;DR: 326,000+ crosswalk edges link 1,000 classification systems through hub-and-spoke topology. ISIC is the industry hub, CPC bridges trade to industry, SOC/ISCO connect occupations, and every one of the 434 domain taxonomies is bridged to NAICS/ISIC/NACE via sector anchors. This guide maps the full topology and shows how to navigate translation paths.


What is a crosswalk?

A crosswalk (or concordance) is a mapping between codes in two different classification systems. For example, NAICS 6211 ("Offices of Physicians") maps to ISIC 8620 ("Medical and dental practice activities").

Crosswalks have a match type that tells you how precise the mapping is:

Type Meaning Example
exact Identical scope and definition NAICS 111110 "Soybean Farming" = ISIC 0111
partial Overlapping but not identical scope NAICS 6211 partially overlaps ISIC 8620
broader Target has wider scope A 6-digit NAICS to a 2-digit ISIC
narrower Target has narrower scope A section-level ISIC to a detailed NAICS
related Conceptually related but structurally different Domain taxonomy to parent NAICS sector

Core crosswalk topology

The knowledge graph has five major hubs. Each hub connects clusters of related systems.

graph TB
  subgraph Industry["Industry Hub"]
    ISIC["ISIC Rev 4\n766 codes"]
    NAICS["NAICS 2022\n2,125 codes"]
    NACE["NACE Rev 2\n996 codes"]
    NIC["NIC 2008\n2,070 codes"]
    ANZSIC["ANZSIC 2006\n825 codes"]
    SIC["SIC 1987\n1,176 codes"]
    GBT["GB/T 4754\n118 codes"]
    NAT80["80+ National\nISIC variants"]
  end
  subgraph Trade["Trade Hub"]
    CPC["CPC v2.1\n4,596 codes"]
    HS["HS 2022\n6,960 codes"]
    UNSPSC["UNSPSC v24\n77,337 codes"]
    HTS["HTS / CN / SITC"]
  end
  subgraph Occupation["Occupation Hub"]
    SOC["SOC 2018\n1,447 codes"]
    ISCO["ISCO-08\n619 codes"]
    ESCO["ESCO\n3,045 + 14,247"]
    ONET["O*NET-SOC\n867 codes"]
    CIP["CIP 2020\n2,848 codes"]
  end
  NAICS <-->|3,418 edges| ISIC
  ISIC <-->|1:1| NACE
  ISIC -.->|derived| NIC
  ISIC -.->|derived| ANZSIC
  ISIC -.->|derived| GBT
  ISIC -.->|derived| NAT80
  NAICS <-.->|legacy| SIC
  ISIC <-->|5,430 edges| CPC
  CPC <-->|11,686 edges| HS
  CPC -.-> UNSPSC
  HS -.-> HTS
  SOC <-->|992 edges| ISCO
  ISCO <-->|6,048 edges| ESCO
  SOC <-->|1,734 edges| ONET
  CIP -->|5,903 edges| SOC
  ISCO <-->|44 edges| ISIC

Industry classification hub

ISIC Rev 4 is the central node for industry classification. Every major national system connects through it.

graph LR
  NAICS["NAICS 2022"] <-->|3,418| ISIC["ISIC Rev 4"]
  ISIC <-->|1:1| NACE["NACE Rev 2"]
  NACE -->|1:1| WZ["WZ 2008\nGermany"]
  NACE -->|1:1| NAF["NAF Rev 2\nFrance"]
  NACE -->|1:1| ATECO["ATECO 2007\nItaly"]
  NACE -->|1:1| MORE["30+ more\nEU variants"]
  ISIC -->|derived| NIC["NIC 2008\nIndia"]
  ISIC -->|derived| ANZSIC["ANZSIC 2006\nAU/NZ"]
  ISIC -->|derived| GBT["GB/T 4754\nChina"]
  ISIC -->|adapted| NAT80["80+ national\nadaptations"]

NACE national variants (WZ, NAF, ATECO, PKD, SBI, SNI, etc.) share the identical 996-code structure. Each has a 1:1 mapping to NACE Rev 2 and transitively to ISIC Rev 4.

Product and trade hub

CPC v2.1 is the bridge between trade codes and industry codes.

graph LR
  HS["HS 2022\n6,960 codes"] <-->|11,686 edges| CPC["CPC v2.1\n4,596 codes"]
  CPC <-->|5,430 edges| ISIC["ISIC Rev 4"]
  HS -->|extended| HTS["HTS (US)"]
  HS -->|extended| CN["CN 2024 (EU)"]
  HS -->|extended| AHTN["ASEAN Tariff"]
  HS -->|extended| NCM["MERCOSUR Tariff"]
  HS -.->|aggregated| SITC["SITC Rev 4\n77 codes"]
  HS -.->|aggregated| BEC["BEC Rev 5\n29 codes"]
  CPC -.-> UNSPSC["UNSPSC v24\n77,337 codes"]

This means you can trace a trade code (HS) to its product category (CPC) to the industry that produces it (ISIC/NAICS).

Occupation and education hub

SOC 2018 and ISCO-08 are the twin hubs for occupation data.

graph LR
  CIP["CIP 2020\n2,848 programs"] -->|5,903 edges| SOC["SOC 2018\n1,447 occupations"]
  CIP -->|1,615 edges| ISCEDF["ISCED-F 2013\n122 fields"]
  SOC <-->|992 edges| ISCO["ISCO-08\n619 occupations"]
  ISCO <-->|6,048 edges| ESCO["ESCO Occupations\n3,045"]
  SOC <-->|1,734 edges| ONET["O*NET-SOC\n867"]
  ISCO -->|44 edges| ISIC["ISIC Rev 4"]
  SOC -.-> NAICS["NAICS 2022"]

CIP 2020 (educational programs) connects to SOC (occupations) with 5,903 edges - the education-to-career pipeline.

Geographic and domain hubs

graph TB
  subgraph Geo["Geographic"]
    ISO1["ISO 3166-1\n271 countries"]
    ISO2["ISO 3166-2\n5,246 subdivisions"]
    UNM["UN M.49\n272 regions"]
  end
  subgraph Domain["Domain Crosswalks"]
    N484["NAICS 484\nTruck Transportation"]
    N11["NAICS 11\nAgriculture"]
    N21["NAICS 21\nMining"]
    N22["NAICS 22\nUtilities"]
    N23["NAICS 23\nConstruction"]
  end
  ISO1 <--> ISO2
  ISO1 <--> UNM
  N484 -->|~200 edges| TRUCK["Truck domain\n7 vocabularies"]
  N11 -->|~48 edges| AG["Agriculture domain\n11 vocabularies"]
  N21 -->|~31 edges| MINE["Mining domain\n6 vocabularies"]
  N22 -->|~20 edges| UTIL["Utility domain\n6 vocabularies"]
  N23 -->|~27 edges| CONST["Construction domain\n6 vocabularies"]

Each domain taxonomy links back to its parent NAICS sector, creating drill-down paths from broad industry codes to specialized vocabularies.

As of the sector-anchor pass, all 434 domain taxonomies (up from the 15 original pilots shown above) carry at least one bridge edge to NAICS 2022, plus parallel fan-out edges into ISIC Rev 4 and NACE Rev 2 where the NAICS anchor has an existing international crosswalk. Generated edges are stamped match_type='broad' and one of two provenance values:

Provenance What it means
derived:sector_anchor:v1 Direct NAICS<->domain bridge written by crosswalk_domain_anchors.py
derived:sector_anchor:v1:fanout ISIC<->domain or NACE<->domain edge derived via a NAICS<->ISIC (or NACE) self-join

Filter ?match_type=exact if you want to exclude every generated bridge and see only authoritative exact statistical concordances.

The four edge kinds

Every equivalence response now carries an edge_kind computed from the categories of both endpoints. See domain-vs-standard for the full pattern. Quick reference:

edge_kind Description
standard_standard Pre-existing statistical crosswalks (NAICS<->ISIC, ISIC<->NACE, HS<->CPC, SOC<->ISCO, ...)
standard_domain Bridge from an official code to a curated domain taxonomy
domain_standard Bridge from a domain taxonomy back to an official code
domain_domain Reserved for future cross-domain edges; none generated yet

Use the filter on any equivalence or translation endpoint:

GET /api/v1/systems/naics_2022/nodes/6211/equivalences?edge_kind=standard_standard
GET /api/v1/systems/naics_2022/nodes/6211/equivalences?edge_kind=standard_domain,domain_standard

Stats grouped by edge kind:

curl "https://worldoftaxonomy.com/api/v1/equivalences/stats?group_by=edge_kind"

Translation paths

Not all systems have direct crosswalks. You translate between systems by following a path through intermediate hubs.

Example: German industry code to US occupation

graph LR
  WZ["WZ 2008\nGerman industry"] -->|1:1| NACE["NACE Rev 2"]
  NACE -->|1:1| ISIC["ISIC Rev 4"]
  ISIC -->|44 edges| ISCO["ISCO-08"]
  ISCO -->|992 edges| SOC["SOC 2018\nUS occupation"]

Example: HS trade code to NAICS industry

graph LR
  HS["HS 2022\ntrade code"] -->|11,686| CPC["CPC v2.1"]
  CPC -->|5,430| ISIC["ISIC Rev 4"]
  ISIC -->|3,418| NAICS["NAICS 2022"]

API for crosswalk navigation

Direct equivalences

# Get all systems that NAICS 6211 maps to
curl https://worldoftaxonomy.com/api/v1/systems/naics_2022/nodes/6211/equivalences

# Translate to all connected systems at once
curl https://worldoftaxonomy.com/api/v1/systems/naics_2022/nodes/6211/translations

Crosswalk statistics

# Overall crosswalk stats
curl https://worldoftaxonomy.com/api/v1/equivalences/stats

# Stats for a specific system
curl "https://worldoftaxonomy.com/api/v1/equivalences/stats?system_id=naics_2022"

Compare systems

# Side-by-side top-level comparison
curl "https://worldoftaxonomy.com/api/v1/compare?a=naics_2022&b=isic_rev4"

# Codes in system A with no mapping to B
curl "https://worldoftaxonomy.com/api/v1/diff?a=naics_2022&b=isic_rev4"

MCP tools for crosswalks

Tool Purpose
get_equivalences Direct crosswalk mappings for a code
translate_code Translate a code to a specific target system
translate_across_all_systems Translate to all connected systems
get_crosswalk_coverage Coverage statistics for a crosswalk pair
get_system_diff Codes with no mapping between two systems
compare_sector Side-by-side sector comparison
describe_match_types Explain the match type categories
list_crosswalks_by_kind Counts + samples for a specific edge_kind (standard_standard, standard_domain, domain_standard, domain_domain); optionally narrow to a single system