Table of Contents
- 1. What an HS code is: the international six digits
- 2. What an HTS code is: the national ten digits
- 3. Reading the code structure level by level
- 4. Schedule B: the export counterpart people confuse with HTS
- 5. Why the classification decision is the duty decision
- 6. The copy-the-code trap
- 7. How to find and verify the right code
- 8. Five source-of-error patterns
- 9. What to do next
HTS meaning is simple once you separate it from the code it sits inside. The HTS is the Harmonized Tariff Schedule, and the United States uses it to classify imported goods and attach a duty rate to them. The reason people get confused is that an HTS code begins with a harmonized system code — the same six digits used almost everywhere in the world — and then adds four more digits that mean nothing outside the United States. Two codes that look related, one global and one national, are stacked on top of each other in the same string of numbers.
That distinction matters commercially. The classification you declare determines the duty you pay, the paperwork the goods need, and whether an import is even permitted. This guide explains what an HTS code is, how it differs from an HS code, where Schedule B fits, how to read the structure, and where classification decisions most often go wrong. Where duty has been paid on goods that are later exported, part of it may be recoverable — our guide to duty drawback sets out how that works.
What an HS code is: the international six digits

The harmonized system is an international nomenclature for traded goods, maintained by the World Customs Organization and used by the great majority of trading nations. An HS code is six digits long. It describes a product category in a way that is intended to mean the same thing in every country that applies the system.
The six digits are arranged as a hierarchy that narrows at each level. The first two digits identify the chapter, a broad product family. The next two narrow to a heading within that chapter. The final two identify a subheading, which is as far as the international system goes. Every country that uses the harmonized system agrees on those six digits, which is why a customs broker in one country can recognise the product category another country has declared.
What the six digits do not carry is a duty rate. The harmonized system is a classification language, not a tariff. Each country applies its own rates to the categories, and it is free to split a six-digit subheading into further national lines and to rate each of them differently. The moment you go beyond six digits, you have left the international system and entered national territory.
What an HTS code is: the national ten digits

An HTS code is the United States’ extension of that system for imports. It is ten digits long. The first six are the international subheading, and the final four are United States-specific statistical and rate lines. The schedule itself is maintained by the United States International Trade Commission, and it is where the duty rate applied at the border actually comes from.
This is the practical answer to the question of HTS versus HS. The HS code is the global category; the HTS code is the United States’ treatment of that category, extended with national detail. A ten-digit HTS code that ends in the same six digits as a foreign HS code is describing the same family of goods. What differs is everything after the sixth digit, where the United States divides the subheading into its own lines and assigns its own rates.
The corollary is that an HTS code is only valid for imports into the United States. If you are shipping to the European Union, to the United Kingdom or to most other markets, the national tariff line will be structured differently and may carry a different number of digits. The same goods can therefore carry three different-looking codes in three different markets while sharing the same first six digits in all three. Where duty and import charges then need to be modelled per destination, the Customs Duty and Import Tax Calculator works on the classification you supply, and our guide to what landed cost includes explains how that duty line sits inside the delivered cost of the consignment.
Reading the code structure level by level

Understanding the hierarchy is what turns a string of digits into a decision. The structure narrows deliberately, and each step up or down changes how broad the category is. This is why two similar products can fall in different chapters, and why moving from a subheading to a national line can change the rate even without changing the description in plain language.
Read a code from left to right and you move from general to specific. The chapter is the widest statement of what the goods are. The heading refines that to a product group. The subheading refines it again to the level the international system recognises. Everything to the right of the sixth digit is national detail: additional statistical breakdowns and the specific rate line. When a shipment is disputed, the argument is almost always about which subheading or which national line applies, not about the chapter.
Two practical consequences follow. First, a code is a legal statement about goods, and it should be derived from the goods themselves — their material, their function, their degree of processing — rather than from what the product is called commercially. Second, the further right you go, the more jurisdiction-specific the answer becomes, so a code confirmed for one destination cannot simply be reused for another. Where you need to check the format of a code before submitting it, the HS Code Structure and Format Checker validates the digit pattern, and the HS Code Search Launcher gets you into the relevant national tariff for the market you are shipping to.
Schedule B: the export counterpart people confuse with HTS
Schedule B is the United States’ classification for exports, and it is a different schedule from the HTS even though it shares the same harmonized foundation. Both are ten digits and both begin with the international six. Schedule B is maintained separately and exists so that export statistics can be compiled and so export declarations can be filed.
The confusion arises because exporters often encounter both. If you are buying goods for import, the HTS is what matters to your customs entry. If you are exporting goods from the United States, Schedule B is what belongs on the export declaration. Using an HTS code where a Schedule B code is required, or the reverse, produces a filing that does not match the statistical regime it was submitted under.
Where the two diverge in practice is in the detail. Because each serves a different purpose, the national lines are not always identical, so one cannot be derived mechanically from the other. If you both import and export, keep the two classifications separate in your product master data rather than reusing a single field. Where the classification feeds into commercial documents such as an invoice or a proforma, the Commercial Invoice Checker and the Proforma Invoice Builder help keep the declared description consistent with the code you have chosen.
| HS code | HTS code | Schedule B | |
|---|---|---|---|
| Digits | Six | Ten | Ten |
| Scope | International | United States, imports | United States, exports |
| Maintained by | World Customs Organization | United States International Trade Commission | United States Census Bureau |
| Carries a rate | No, it is a classification language | Yes, this is the rate line | No, it is a statistical classification |
| Used for | Shared product categories across markets | Import duty and import statistics | Export declarations and export statistics |
| Relationship | The first six digits | HS plus four national digits | HS plus four national digits, separately assigned |
The single row worth memorising is the third from the bottom. Six digits describe the goods in a way that travels; everything beyond the sixth digit belongs to the country you are declaring in and is where the money is decided. Where the same product moves in both directions, that means two separate classification fields in the product record, not one.
Why the classification decision is the duty decision

Duty is levied by classification. There is no single rate for imported goods; there is a rate attached to each tariff line, and the classification determines which line applies. Two descriptions that sound equivalent in conversation can sit on different lines with different rates, which is why the classification decision is a costing decision before it is a compliance decision.
That makes classification an input to every downstream number. The duty amount feeds the landed cost, the landed cost feeds the selling price, and the selling price feeds the margin. Getting the classification wrong therefore does not stay contained in the customs entry: it propagates through the commercial model, and it does so silently until someone reconciles the numbers. This is the point our guide to landed cost makes from the other direction, where classification is described as the other half of the duty calculation after valuation.
Classification also interacts with origin. Preferential rates under trade agreements are attached to tariff lines and require the correct origin documentation, so a classification error can invalidate a preference claim as well as misstate the duty. Where the valuation side of the calculation needs to be established before a rate can be applied, the Customs Valuation Method Guide sets out the accepted methods, and the Customs Portal Directory indexes the national customs authorities that publish the binding tariff for each market. Where the commercial terms behind the shipment are still open, the Incoterms® 2020 Selector and our guides to CIF Incoterms 2020 cover which party is responsible for the entry. The tests behind that determination are covered in our guide to what determines a country of origin.
The copy-the-code trap
The most common classification error is not an exotic one. It is copying a code from somewhere convenient: a supplier’s packing list, a competitor’s listing, a market-place product page, or the code used on a previous shipment of supposedly similar goods. Each of those sources has a different purpose, and none of them is a classification decision made about your goods.
Supplier codes are especially tempting and especially unreliable. A manufacturer may classify for export from their own country under a schedule that is not the one you will declare on import. Even where the code is the correct harmonized subheading, the national lines beyond the sixth digit are the part that carries your rate, and the supplier is not in a position to know them. The same applies to a code copied from a marketplace listing, where the classification may have been generated to fill a required field rather than determined from the product.
Copying also carries a compounding risk. If the same wrong code is used on repeated entries, the error is not a one-off mistake; it looks like a consistent declaration, and correcting it later means correcting a history rather than a shipment. The safer habit is to treat any inherited code as a hypothesis and verify it against the goods and the destination tariff before it reaches a customs entry. Keeping a written rationale for each classification — material, function, the line selected and why — is what makes the decision defensible if it is ever questioned. Building the product data around that record, rather than around a code field alone, is the point of the Product Data Sheet Builder and the Product Specification Table Builder.
How to find and verify the right code
Work from the goods, then confirm against the tariff. Start with the material composition and the function of the item, because the harmonized system is organised around what goods are made of and what they do rather than around what they are called. Establish the chapter and heading on that basis, then narrow to a subheading, and only then move into the destination’s national lines.
Verify rather than assume at each step. Confirm that the description in the tariff line actually matches your product, including any exclusions the line may carry. Check the units and any specification details that the tariff text refers to, because lines are sometimes defined by measures such as weight, thickness or composition thresholds, and those need to be read against your own specification. The Unit and Specification Converter is useful where the tariff text and your own data are expressed in different units.
Then confirm the destination-specific answer. A subheading established internationally still has to be resolved into the national line of the market you are shipping to, and the rate follows the national line. Where the classification is material to the cost of the shipment, keep the written rationale described above with the product record so the decision can be reviewed rather than re-derived. Confirm the rule that governs where the customs obligation sits against the Incoterms® 2020 Selector, and keep the tariff documentation aligned with the rest of the file using the Export Document Checklist and our guide to shipping documents for export.
Five source-of-error patterns
• Classifying from the product name. Commercial names are marketing, not classification. The harmonized system is built on material and function, so a name-led search lands on the wrong chapter.
• Reusing a supplier’s code as an import code. A supplier classifies for their own export regime. The national lines beyond the sixth digit belong to your destination, not theirs.
• Assuming the last six digits are optional detail. Beyond the sixth digit sits the rate line. Treating the tail as decoration is how an entry ends up on the wrong rate.
• Carrying an HTS code into an export filing. The HTS governs imports; the export schedule is separate. Mixing them produces declarations that do not match the regime they were filed under.
• Never recording the reasoning. A code with no written rationale cannot be defended or reviewed. When a classification is challenged, the reasoning is the evidence.
What the five have in common is that each one substitutes a convenience for a decision. A product name is easier to search than a material specification. A supplier’s code is easier to copy than to derive. The last six digits are easier to ignore than to resolve. An export schedule is easier to reuse than to look up separately. And reasoning is easier to skip than to write down. Each shortcut saves a few minutes at the point it is taken and costs considerably more at the point it is found — which is normally a duty reassessment, a held consignment or a preference claim that cannot be supported.
What to do next
Pick the product that represents the largest share of your import spend and re-derive its classification from first principles. Start with material and function, confirm the chapter and heading, narrow to the subheading, then resolve the destination’s national line and note the rate attached to it. Compare the result with whatever code you are currently declaring. If they differ, you have found the single highest-value correction available in your cost model.
Then make the record permanent. Store the classification with its rationale alongside the product specification, keep the import classification and the export classification in separate fields, and review the entry whenever the product itself changes — a different material, a different function or an added component can move it. Doing this once for the top items is what turns classification from a recurring guess into a fixed input for costing.
For the delivered figure that depends on it, the Landed Cost Calculator assembles the components per unit, and our guide to what landed cost includes explains how the duty line sits within it. Where an agreement covers the delivery, cost and risk obligations together, it is worth having those clauses reviewed as a set rather than piecemeal — see TradeShield Contract Risk Review.