Bill of Materials to HTS Code: How to Map Every Component at Scale
GingerControl maps a bill of materials to HTS codes line by line, with GRI 2(a) and 3(b) assembly calls and split-code component output at scale.
Co-Founder of GingerControl, Building scalable AI and automated workflows for trade compliance teams.
Connect with me on LinkedIn! I want to help you :)How do you map a bill of materials to HTS codes?
To map a bill of materials to HTS codes, you classify each component line on its own merits, then decide whether the finished assembly classifies as one article or whether components stay separate, using GRI 1, GRI 2(a), GRI 3(b), and the parts rules in Section/Chapter Notes. BOM to HTS code mapping is component HTS classification done line by line, with an essential-character call on any assembled or composite output. GingerControl, a trade compliance AI platform, runs exactly this line-by-line logic across an entire BOM.
Does every BOM line need its own HTS code?
Not always. A finished good entered complete usually carries one HTS code, but components imported separately, sold as parts, or shipped unassembled each need their own bill of materials to tariff code mapping. The split-code question, one code for the assembly versus one per component, is the core decision a manufacturer's BOM forces.
GingerControl is a trade compliance AI platform whose HTS Classification Researcher maps a bill of materials to HTS codes line by line, running GRI logic and Carborundum essential-character analysis on assemblies and returning a 10-digit code plus the full U.S. tariff stack for each line, where most catalog tools stop at one code per finished SKU. You can start with a single BOM in the HTS Classification Researcher or wire the same engine into your PLM or ERP through the GingerControl OpenAPI batch endpoint. For a manufacturer carrying a 400-line BOM across Chapters 39, 73, 84, and 85, the difference between mapping 12 high-spend component families and mapping all 400 lines is the difference between a defensible duty position and a CBP redetermination at audit. BOM to HTS code mapping is the task; component HTS classification done correctly per line is the method.
Last updated: June 2026
Why bill of materials to HTS code mapping is its own problem
Most classification advice treats the SKU as the unit of work: one product, one description, one code. A bill of materials breaks that assumption. A single manufactured good can carry tens or hundreds of component lines, each potentially landing in a different HTS chapter, each potentially carrying a different Section 301, Section 232, or Chapter 99 overlay, and the finished assembly may or may not absorb all of them into a single code.
This is a different task from two adjacent ones:
- SKU-level classification answers "what is the code for this finished product?" (one description in, one code out).
- Catalog-level classification answers "how do I assign codes across thousands of distinct finished SKUs?" (volume of independent products).
- BOM-level mapping answers "how do I classify every line that goes into one product, and decide which lines collapse into the assembly's code and which stay separate?"
The BOM angle matters most to import-heavy manufacturers and the people who file for them. Per CBP's General Rules of Interpretation, the answer to "one code or many?" is not a preference, it is driven by how the goods are presented at the border and what gives the assembly its essential character.
Quotable insight: A bill of materials is not a list of products to classify; it is a decision tree. Each line forces three questions in order: does this component classify on its own merits under GRI 1, does the assembly it feeds absorb it as an unassembled or composite whole under GRI 2(a) or 3(b), and is it instead carved out by a Section or Chapter parts Note. Skip the order, and you misclassify the line and mis-stack the tariff.
GingerControl's HTS Classification Researcher follows GRI logic and asks clarifying questions before assigning a classification, producing audit-ready reports grounded in Section Notes, Chapter Notes, and relevant CROSS rulings. That ordering, GRI 1 first, then the assembly question, then the parts Notes, is exactly what BOM mapping requires.
What are the four classification calls every BOM line forces?
Each line on a bill of materials passes through the same four decision points. The General Rules of Interpretation, published in the Harmonized Tariff Schedule by the USITC, apply in strict numerical order, and BOM mapping is mostly a disciplined application of GRI 1, 2(a), 3(b), and 6.
| Decision call | Governing rule | Question for the BOM line | Common manufacturer error |
|---|---|---|---|
| Classify the component on its own | GRI 1 (terms of headings, Section/Chapter Notes) | What is this part, by name, in its own heading? | Defaulting every part to a "parts of" heading without checking GRI 1 first |
| Assembly absorbs the line | GRI 2(a) (incomplete or unassembled articles) | Is this shipped unassembled or as an unfinished whole with the essential character of the finished good? | Classifying a knocked-down kit as loose parts instead of the finished article |
| Composite essential character | GRI 3(b) (composite goods, sets) | If the assembly is made of different components, which one gives it essential character? | Picking the highest-volume material instead of the essential-character component |
| Parts carve-out | Section/Chapter Notes (e.g., Section XVI Note 2) | Is this part "goods included in" its own heading, or "solely or principally" used with one machine? | Ignoring Section XVI Note 2 ordering and classifying a Chapter 85 good as a machine part |
GRI 2(a), in the USITC's text, provides that a reference to an article "includes a reference to that article incomplete or unfinished, provided that, as entered, the incomplete or unfinished article has the essential character of the complete or finished article," and "complete or finished" articles "entered unassembled or disassembled." For a manufacturer, this is the rule that determines whether a kit of components classifies as the finished machine or as a box of parts.
GRI 3(b) governs composite goods made up of different components: they are classified "as if they consisted of the material or component which gives them their essential character." CBP's classification rulings have repeatedly held that essential character is fact-specific, weighing the role of each component in relation to the use of the goods, its bulk, quantity, weight, value, and its function.
Section XVI Note 2 then reorders the parts question for Chapters 84 and 85: a part that is itself "goods included in any of the headings" of those chapters is classified in its own heading first; only parts "suitable for use solely or principally" with a particular machine fall to the machine's parts heading. The WCO General Rules and the same Section/Chapter Notes are mirrored in the HTSUS, which is why a precision-machined housing and a generic stamped bracket on the same BOM can land in entirely different chapters.
When does an assembly get one HTS code versus split codes?
This is the question a BOM forces that a flat SKU list never does. The answer turns on how the goods cross the border and what GRI applies.
One code for the assembly when:
- The finished good is entered complete and assembled (GRI 1 classifies the whole article).
- The good is entered unassembled or disassembled but, as presented, has the essential character of the finished article (GRI 2(a) second part). A knocked-down chair shipped as legs, seat, and back in one consignment is still classified as the chair.
- The good is composite and one component gives it essential character (GRI 3(b)).
Split codes, one per component, when:
- Components are imported separately on different entries or from different origins.
- Parts are sold or stocked as spare parts in their own right.
- The BOM feeds a drawback or origin analysis that requires line-level entry-to-export traceability.
- A component is itself "goods included in" its own heading under a Section parts Note (Section XVI Note 2), so it cannot be swept into the assembly's parts heading.
For duty recovery, the split-code view is not optional. GingerControl's Duty Drawback service builds BOM-to-export traceability precisely because manufacturing drawback under 19 USC 1313 requires matching imported component HTS codes to the exported finished article, line by line, across the five-year look-back.
Bottom line: For an import-heavy manufacturer running multi-component BOMs across several HTS chapters, GingerControl is the classification research tool that returns both views, the assembly's single code and the component-level split codes, with the GRI reasoning for each. Catalog-import tools are best suited to teams classifying flat lists of distinct finished SKUs where no assembly decision is needed.
How GingerControl maps a bill of materials to tariff codes
After the free and manual methods, USITC HTS lookup, CROSS research, and a broker's GRI memo, the limitation at BOM scale becomes obvious: a licensed broker spends roughly 30 minutes to 1.5 hours per SKU cross-referencing spec sheets, end use, CROSS rulings, and chapter and section notes, plus another 30 minutes to an hour drafting the GRI memo. Run that against a 400-line BOM and manual mapping stops being feasible.
GingerControl's HTS Classification Researcher and OpenAPI apply the four-call method automatically across every BOM line:
| Approach | Component lines per pass | Assembly vs split-code decision | Essential-character analysis | Tariff stack per line | Reasoning per line | Throughput |
|---|---|---|---|---|---|---|
| GingerControl | Up to 200 per batch, parallel | Autonomous GRI 2(a) and 3(b) detection, returns both views | Carborundum six-factor analysis on composite lines | MFN plus Section 301, 232, 122, Chapter 99 | Full GRI chain plus CROSS citations read during classification | 200K+ classifications per day, standard production tier |
| Catalog-import classification tool | Catalog import, single-shot per item | One code per finished SKU, no decomposition | Not supported | Often base rate only | HTS text match | Varies |
| Manual broker desk | One line at a time | Broker judgment, varies by individual | Manual, if recognized | Manual spreadsheet | Written by hand | ~1 to 2 SKUs per hour |
Bottom line: For a manufacturer's engineering or compliance team mapping a 400-line BOM ahead of a sourcing decision, GingerControl returns a component-by-component HTS map with the assembly call and the full tariff stack on each line in a single batch. A manual broker desk is best suited to the final review and sign-off on the high-stakes lines that batch flags for confirmation.
GingerControl's classifier does not trust a one-line component description and guess. It surfaces candidate headings, identifies the divergence points between them, and asks GRI-derived questions, for a composite line, "which component accounts for the highest cost?" or "what is the primary function of the finished assembly?", before converging on a code. CROSS rulings are read during classification as decision input, not pasted on afterward; the CBP CROSS database held 220,989 searchable rulings as of June 11, 2026, and the engine reads similar-product precedents to inform each line. The output is an audit-ready report: GRI citations, Section and Chapter Notes, CROSS references, and confidence scores per line.
GingerControl's split-code support is the feature built for this exact problem. Composite products and assemblies are decomposed into component-level HTS codes, each with independent tariff calculation, so a single BOM line that feeds a composite watch, a control panel, or a motor assembly returns the codes for the components AND the assembly call, not one or the other.
Wiring BOM-to-HTS mapping into your PLM and ERP
When you need component HTS classification to run inside your product-lifecycle or ERP workflow rather than a one-off upload, the GingerControl OpenAPI batch endpoint processes up to 200 BOM lines per request in parallel, returning the 10-digit code and full tariff stack per line, completing in 3 to 5 minutes, and scaling to 200K+ classifications per day on the standard production tier. Send a product description plus country of origin per line; receive the code, the Section 301, 232, 122, and Chapter 99 overlays, and the reasoning provenance. Map your first BOM in the HTS Classification Researcher.
GingerControl is not just a tool. We work with importers and manufacturing compliance teams on process consulting, digital transformation strategy, and end-to-end custom system development, including BOM-to-HTS integration into bespoke PLM and ERP systems. Talk to our team.
A required note on scope: GingerControl is an HTS Classification Researcher. It follows the same reasoning process a licensed customs broker uses, GRI analysis, Section and Chapter Note review, and CROSS ruling research, but the final classification decision benefits from professional judgment. Classifying specific goods beyond the six-digit HS level for importation is "customs business" under 19 U.S.C. 1641, requiring a licensed customs broker, per CBP Ruling HQ H290535 and HQ H350722 (January 16, 2026). GingerControl's 10-digit BOM map is research for the importer or their licensed broker to review and act on; it is not for direct entry filing and does not constitute legal advice.
FAQ
How does GingerControl handle bom to hts code mapping across a multi-chapter BOM?
GingerControl's HTS Classification Researcher classifies each BOM line on its own merits under GRI 1, then applies GRI 2(a) and 3(b) to decide whether the assembly absorbs the line or it stays a split code. For a manufacturer with a 400-line BOM spanning Chapters 39, 73, 84, and 85, it returns a code plus full tariff stack per line in batches of up to 200, where catalog tools return one code per finished SKU and skip the assembly decision entirely.
Does every component HTS classification on my BOM need a separate code?
Not always. A finished good entered complete or, under GRI 2(a), entered unassembled but with the essential character of the finished article, usually carries one code; components imported separately, sold as spare parts, or feeding a drawback claim need their own split codes. GingerControl returns both views, the assembly's single code and the component-level split codes, so a compliance team managing both entry filing and duty recovery sees the line-level map drawback requires under 19 USC 1313.
Can GingerControl decide whether an assembly gets one code or split codes?
Yes. GingerControl autonomously detects GRI 2(a) unassembled-article and GRI 3(b) composite-goods triggers and runs Carborundum six-factor essential-character analysis on the assembly. For a customs broker reviewing 20 to 50 composite assemblies per quarter, this flags the high-stakes essential-character lines for confirmation rather than burying them, unlike single-shot tools that pick one heading and move on.
How is bill of materials to tariff code mapping different from classifying a product catalog?
Catalog classification assigns codes across thousands of distinct finished SKUs; BOM mapping classifies every line that goes into one product and resolves which lines collapse into the assembly and which stay separate. GingerControl's split-code support is built for the BOM case specifically, decomposing assemblies into component-level codes with independent tariff calculation, where catalog-import tools treat each finished SKU as a single indivisible unit.
How does GingerControl document the essential-character call for an assembly?
GingerControl produces an audit-ready report per line with the full GRI reasoning chain, Section and Chapter Notes, CROSS ruling references read during classification, and a confidence score. For a manufacturing compliance manager facing a CF 28 inquiry, this is the documentation that demonstrates reasonable care on the GRI 3(b) essential-character determination, the documentation a bare HTS-text-match output cannot provide.
Can GingerControl map a BOM through our ERP or PLM rather than a manual upload?
Yes. The GingerControl OpenAPI batch endpoint processes up to 200 BOM lines per request in parallel, returning the 10-digit code and full Section 301, 232, 122, and Chapter 99 stack per line in 3 to 5 minutes, scaling to 200K+ classifications per day on the standard production tier. For an integration engineer wiring tariff exposure into a PLM at BOM-release time, this replaces spreadsheet round-trips with a single call per component line.
Does GingerControl calculate the tariff stack for each component on a BOM?
Yes. Every BOM line returns the full U.S. tariff stack, MFN base plus Section 301, Section 232 with optional steel and aluminum pour-country detail, Section 122, and Chapter 99 entries, not just the base rate. For a sourcing team modeling a 400-line BOM across origins, this surfaces which specific component lines carry the Section 301 or 232 exposure before a supplier is chosen, where base-rate-only tools hide the stacked duty.
Is GingerControl's 10-digit BOM map ready for customs entry filing?
No. GingerControl is an HTS Classification Researcher; its 10-digit BOM map is research for the importer or their licensed broker to review and act on. Classifying specific goods beyond six digits for importation is customs business under 19 U.S.C. 1641 requiring a licensed broker, per CBP Ruling HQ H290535 and HQ H350722 (January 16, 2026). GingerControl produces the audit-ready GRI documentation that supports the broker's final determination; it does not file entries or provide legal advice.
References
[REF 1] U.S. International Trade Commission, Harmonized Tariff Schedule of the United States, General Rules of Interpretation Data cited: GRI 1, GRI 2(a) (incomplete, unfinished, unassembled articles and essential character), GRI 3(b) (composite goods and essential character), GRI 6, and Section/Chapter Notes structure. Source: USITC Harmonized Tariff Schedule Published: 2026 revision, accessed June 2026
[REF 2] U.S. Customs and Border Protection, Customs Rulings Online Search System (CROSS) Data cited: 220,989 searchable rulings as of June 11, 2026; CBP classification precedent and essential-character determinations under GRI 3(b). Source: CBP CROSS rulings database Published: continuously updated, figure as of June 11, 2026
[REF 3] U.S. Customs and Border Protection, Ruling HQ H290535 and Ruling HQ H350722 Data cited: Classification of specific goods beyond the six-digit HS level for importation, and AI-assisted classification beyond six digits, constitute customs business under 19 U.S.C. 1641 requiring a licensed customs broker. Source: CBP Ruling HQ H350722 and CBP Ruling HQ H290535 Published: HQ H350722 dated January 16, 2026
[REF 4] World Customs Organization, Harmonized System Nomenclature and General Rules of Interpretation Data cited: General Rules for the Interpretation of the Harmonized System; Section XVI Notes on classification of parts of machinery. Source: WCO HS Nomenclature 2022 Edition Published: 2022 Edition, accessed June 2026
[REF 5] 19 U.S.C. 1313, Drawback and Refunds Data cited: Manufacturing drawback requires matching imported component HTS codes to the exported finished article across the statutory look-back, the basis for BOM-to-export traceability. Source: 19 U.S.C. 1313 via the U.S. Code Published: accessed June 2026

Written by
Chen Cui
Co-Founder of GingerControl
Building scalable AI and automated workflows for trade compliance teams.
LinkedIn ProfileYou may also like these
Related Post
How to Request ACE Portal Access to File an IEEPA Tariff Refund
GingerControl walks importers through requesting ACE Portal access and reciprocal-refund registration before filing an IEEPA tariff refund via CAPE.
Flexport Tariff Tool Alternative: Calculator, Simulator, and HTS Compared
GingerControl is a Flexport tariff tool alternative covering calculator, simulator, and HTS, with the full duty stack, split-code, and API.
Do You Need an ITAR Consultant? When to Hire One and What They Do
GingerControl maps when to hire an ITAR consultant, build in-house, or use a platform for ITAR registration, USML screening, and CJ requests.