Code Snippet Library / Lead Gen

Firmographic Normalization Crosswalk

The Firmographic Normalization Crosswalk is a free code snippet mapping NAICS to SIC to an MV3 vendor-taxonomy category, a real, individually-sourced starter set of 8 entries since no native crosswalk exists as a simple lookup table anywhere public.

↗ View on GitHub ⬇ Download Full Repo (.zip)
MIT
License
JSON
Language
Aug 14, 2026
Last updated
README.md View raw ↗

What this is (and isn’t)

A lookup table and normalization function, not a hosted service or a complete government dataset. Every NAICS/SIC pair was individually verified against siccode.com’s per-code correspondence pages on 2026-08-14. This is a representative starter set of 8 entries, not the full official crosswalk.

Files

FilePurpose
crosswalk.jsCROSSWALK_DATA, lookupByNaics(), lookupBySic(), toVendorCategory(), normalizeBatch() — zero dependencies
test.js16-test suite covering one-to-one, many-to-one, and one-to-many mapping cases

Why this is genuinely non-trivial

Government industry codes rarely map 1:1 across revisions. This starter set includes real examples of each pattern: 541511→7371 (clean one-to-one), 541613 and 541611 both →8742 (many-to-one), and 518210→7374/7379/7389 (one-to-many). A naive lookup table that assumes 1:1 will silently drop or mis-map real accounts.

FAQ

Is this free to use?

Yes. Free to download and use. MV3 charges $175/hr only for implementation help extending this crosswalk to your own firmographic data.

Is this the complete official NAICS-SIC crosswalk?

No, and the docs say so directly. This is a real, individually-sourced starter set of 8 entries. The full official crosswalk runs to thousands of rows across NAICS revisions.

Where did the crosswalk data come from?

Each NAICS/SIC pair was individually verified against siccode.com's per-code correspondence pages on 2026-08-14, not generated or estimated.

What is the vendorCategory field?

MV3's own coarse taxonomy bucket, not a government standard, useful for normalizing inconsistent industry-tag naming across enrichment vendors.

What happens if a code isn't in the starter set?

lookupByNaics/lookupBySic return null/empty rather than guessing, and normalizeBatch flags unmatched records with a null vendorCategory instead of silently mis-mapping them.

JR
Jordan Reeves
ABM & Outbound Pipeline, MV3 Marketing