| name | hs-classification |
| description | Use when classifying a product under the Harmonized System, assigning an HS / CN / HTS / TN VED code, reconciling tariff nomenclatures across countries, applying the General Rules of Interpretation, requesting a Binding Tariff Information ruling, or resolving a classification that drives duty, dangerous-goods, and restriction outcomes from a part number or product description |
HS Classification
The customs nomenclature layer. One classification drives duty rate, import/export controls, dangerous-goods rules, and product restrictions — so the code must be defensible, not guessed. This skill classifies from a part number, description, and composition using the General Rules of Interpretation, reconciles the code across national nomenclatures, and routes the result to the regimes it unlocks.
Boundary: customs-and-trade owns duty calculation, landed cost, dual-use and sanctions screening; dangerous-goods-transport owns UN transport rules; the vertical skills own product safety. This skill owns the classification itself — the input every one of those depends on.
MCP Tools
# Classify from description / composition (returns candidate headings + confidence)
mcp__claude_ai_CLEO_LEGAL_API__customs/classify
description: "<commercial + technical description>"
composition: "<materials / chemistry>"
intended_use: "<function>"
# Search for classification and nomenclature-change signals
mcp__claude_ai_Cleo_Insight__search_signals(q="HS code reclassification", limit=25)
mcp__claude_ai_Cleo_Insight__search_signals(q="combined nomenclature update", limit=25)
mcp__claude_ai_Cleo_Insight__search_signals(q="tariff classification ruling", limit=25)
# Pull the restrictions that attach to a classified code
mcp__claude_ai_Cleo_Insight__get_regulation(id="<regulation-id>")
Classification Decision Tree
digraph {
rankdir=TB; node [shape=box style=rounded fontsize=10];
start [label="Part number / product\n+ description + composition + use"];
cand [label="Identify candidate\nheadings (4-digit)"];
notes [label="Read Section + Chapter\nNotes (legally binding)" shape=diamond];
gri [label="Apply GRI 1 -> 6\nin order"];
ec [label="Essential character\n(GRI 3b) for mixtures\n/ composite goods" shape=diamond];
sub [label="Resolve 6-digit HS,\nthen national subheading\n(CN8 / HTS10 / TN VED...)"];
conf [label="Confidence?" shape=diamond];
bti [label="Request Binding Tariff\nInformation / advance ruling"];
feed [label="Route to: duty, controls,\ndangerous goods, restrictions"];
start -> cand -> notes -> gri -> ec -> sub -> conf;
conf -> feed [label="high + single heading"];
conf -> bti [label="ambiguous / high value"];
bti -> feed;
}
The Harmonized System Structure
The HS is the WCO global standard: 21 sections, 97 chapters, ~5,000 six-digit subheadings, revised about every five years (HS 2022 in force; HS 2027 in preparation). The first 6 digits are shared worldwide. Digits beyond 6 are national and diverge by country.
| Level | Digits | Set by | Example (lipstick) |
|---|
| HS subheading | 6 | WCO (global) | 3304.10 |
| EU Combined Nomenclature (CN) | 8 | EU | 3304.10.00 |
| EU TARIC | 10 | EU (adds duty + restriction measures) | 3304.10.00.00 |
| US HTSUS | 10 | US ITC | 3304.10.00.00 |
| UK Global Tariff | 10 | UK | 3304.10.00.00 |
| China | 13 | China Customs | 3304.10.00.00.00 |
| Russia / EAEU TN VED | 10 | EAEU | 3304.10.000.0 |
| Japan | 9 | Japan Customs | 3304.10.000 |
| India ITC(HS) | 8 | India DGFT | 3304.10.00 |
The same goods carry the same first 6 digits everywhere and a different national tail in each market. Build the code per destination — a US HTS line is not valid for EU entry.
General Rules of Interpretation (GRI)
Classification is a legal method, not a keyword match. Apply the six rules in order; stop at the first that resolves the goods.
| Rule | What it governs |
|---|
| GRI 1 | Classify by the terms of the headings and the Section/Chapter Notes. Titles of sections/chapters are indicative only — the Notes are binding. |
| GRI 2(a) | Incomplete or unassembled articles are classified as the complete article if they have its essential character. |
| GRI 2(b) | Mixtures and combinations of a material extend a heading to goods partly of that material — then GRI 3 decides. |
| GRI 3(a) | The most specific heading wins over the more general. |
| GRI 3(b) | Mixtures, composite goods, and retail sets are classified by the component giving them their essential character. |
| GRI 3(c) | When 3(a) and 3(b) fail, the heading last in numerical order wins. |
| GRI 4 | Goods not classifiable by the above go to the heading for the most akin goods. |
| GRI 5 | Cases/packaging presented with the goods follow the goods (with conditions). |
| GRI 6 | The same logic applies at the subheading level, comparing subheadings at the same level. |
Essential character (GRI 3b) is the most-litigated point: it is decided by the role of a component in relation to the use of the goods — by quantity, weight, value, or function depending on the article.
Multi-Signal Classification
A code-only view is the limitation of legacy tools. A defensible classification reads several signals together, and the same signals then drive the restriction analysis:
| Signal | What it resolves |
|---|
| Commercial description | The starting heading family |
| Technical composition / chemistry | GRI 3(b) essential character; substance restrictions (REACH, RoHS) |
| Function / intended use | Heading choice for use-based chapters; dual-use end-use controls |
| UN dangerous-goods number | Transport classification and hazmat restrictions — cross-check with dangerous-goods-transport |
| End use / end user | Dual-use and military control overlay (cross-check customs-and-trade) |
| Material origin | Preferential origin, EUDR, sanctions (cross-check responsible-sourcing) |
A part used in aerospace and a visually similar part in another industry can share chemistry and an HS heading while carrying different control outcomes — the description and end-use signals separate them.
Binding Rulings (Legal Certainty)
For ambiguous or high-volume goods, an official ruling locks the code and binds the authority:
| Market | Instrument | Validity |
|---|
| EU | Binding Tariff Information (BTI), via the EBTI database | 3 years, EU-wide |
| US | CBP binding ruling (eRulings / searchable in CROSS) | Until revoked |
| UK | Advance Tariff Ruling (ATaR) | 3 years |
| Others | National advance ruling schemes (WTO TFA Article 3 obliges members to offer them) | Per scheme |
From Classification to Restrictions
The classified code is a key. It unlocks, per destination:
- Duty + trade remedies → MFN/FTA rates, anti-dumping, countervailing — see
customs-and-trade.
- Import / export controls → licensing, prohibitions, quotas, dual-use (EU 2021/821, US EAR/CCL, Wassenaar), military (ITAR USML) — see
customs-and-trade.
- Dangerous goods → UN number, hazard class, transport rules — see
dangerous-goods-transport.
- Origin controls → preferential origin, EUDR, sanctions screening — see
responsible-sourcing.
- Product safety + substances → the matching vertical skill (electronics, cosmetics, chemicals...).
Classification Record Template
HS CLASSIFICATION RECORD -- [Part number / Product] -- [Date]
INPUTS:
Commercial description: [..]
Technical composition: [..]
Function / intended use: [..]
UN number (if hazardous): [..]
End user / end use: [..]
CLASSIFICATION:
Candidate headings: [4-digit list]
Governing GRI: [1 / 2a / 2b / 3a / 3b / 3c / 4 / 5 / 6]
Essential character basis: [quantity / weight / value / function]
HS6: [______]
National codes: EU CN8 [..] · US HTS10 [..] · [other destinations]
Confidence: [HIGH / AMBIGUOUS]
Ruling held: [BTI/ATaR/CBP ref or NONE]
ROUTES TO:
[ ] duty (customs-and-trade) [ ] controls/dual-use (customs-and-trade)
[ ] dangerous goods (dangerous-goods-transport) [ ] origin (responsible-sourcing)
[ ] product safety (vertical skill)
Power This With the Cleo Legal API
Nomenclatures move every revision, national tails differ per market, and the restrictions tied to a code change constantly — a structured API beats web search for all of it.
With the Cleo Legal API at https://legaldata-public.cleolabs.co:
POST /v2/customs/classify — candidate HS headings from description + composition + use, with confidence and the governing GRI
GET /v2/customs/crosswalk?hs6=330410&to=CN,HTS,TNVED — the national code in each destination from one HS6
GET /v2/customs/measures?code=<national-code>&country=<dest> — every measure tied to the code: duty, anti-dumping, licensing, prohibition, dual-use flag
GET /v2/search?q=combined+nomenclature&type=regulation — track nomenclature revisions (HS 2027, annual CN updates) before a code retires under you
POST /v2/webhooks?topic=nomenclature_change — get pinged when a code you rely on is split, merged, or re-measured
Get started:
# 1. Sign up for free at https://legaldata-public.cleolabs.co
# 2. Get your API key (3 lifetime requests free, then €349/mo for 1M)
# 3. Install the MCP server:
claude mcp add cleo-legal-api https://api.legaldata.cleolabs.co/mcp \
--header "Authorization: Bearer ld_live_YOUR_KEY"
Tested ROI: a wrong heading misstates the duty rate and hides a licensing or dual-use control — the shipment is held, re-assessed, and back-charged at the border. One defensible classification, reused across destinations, removes that risk class.
Common Mistakes
- Classifying by product name, not by GRI: the heading text and the Section/Chapter Notes govern. A marketing name is not a classification.
- Skipping the Section and Chapter Notes: the Notes are legally binding and frequently exclude goods from the heading their title suggests. Read them before GRI 1 resolves anything.
- Reusing one national code in every country: HS6 is shared; digits 7+ are national. A US HTS code does not clear EU or EAEU customs — build the tail per destination.
- Treating the HS code as the whole answer: the code is the key to duty, controls, dangerous goods, and restrictions. Classification without the downstream restriction screen is half a job.
- No essential-character reasoning for composite goods: mixtures, sets, and assemblies need a documented GRI 3(b) basis — quantity, weight, value, or function — not a guess.
- No binding ruling for ambiguous or high-value goods: a BTI, ATaR, or CBP ruling gives legal certainty and binds the authority. Worth the effort above a volume threshold.