How we build each rate
Where every number on HTSLookup comes from, and exactly how the duty stack is put together.
Every duty on HTSLookup answers one question: what does CBP collect today on goods of this country of origin, classified under this 8-digit code? "Today" is the current date in U.S. Eastern time.
The regular duty
The starting point is the rate printed in the Harmonized Tariff Schedule for the 8-digit code:
- For most countries, the General rate in column 1 (the normal-trade-relations rate).
- For Cuba, North Korea, Russia and Belarus, the column 2 rate, as general note 3(b) of the schedule requires.
Rates can be a percentage of the customs value, an amount per unit (per kilogram, per dozen, per liter), or both. We show them exactly as printed.
Trade-agreement and preference rates (the Special column, such as USMCA or other free trade agreement rates) are never applied automatically. They apply only when the goods qualify under the agreement's rules and the importer claims them, so pages list them as possibilities, not as the rate you'll pay.
Additional tariffs
Tariffs added on top of the regular duty are set out in chapter 99 of the schedule. Each tariff program, such as a Section 301 or Section 232 action, is kept as a structured record built from:
- its chapter 99 headings and their printed rates;
- the U.S. notes to chapter 99 that list the products and countries covered and the exemptions;
- the proclamation, executive order or notice that created or changed it, from the Federal Register.
Every record is checked line by line against those sources before it appears on the site, and again whenever it changes. A program applies only between its start and end dates. When a program ends, it drops out of every duty stack on that date and stays listed on its program page and in the change log.
How the layers combine
Programs don't all work the same way, so the duty stack follows each program's own rule:
- Added on top: most programs add a percentage to the regular duty.
- Replacing the regular duty: some print a flat rate that is charged instead of it.
- A floor: for some countries a program sets a minimum total. Goods already at or above it pay nothing extra; goods below it pay the minimum. When the regular rate is per unit, whether the floor applies depends on the shipment's value, and the page says so.
- Charged on part of the value: some duties apply only to the value of the metal content, or of the parts not made in the U.S. The page says which.
- One program instead of another: some programs don't apply when another one does. The page shows which one takes precedence.
Exemptions
Exemptions that depend only on the code and country are applied automatically. Exemptions that depend on something only you know, such as how the goods will be used, a detailed product description, or a trade-agreement claim, are listed under the stack with the legal condition quoted word for word. The total assumes none of those conditional exemptions applies.
When a program covers only some of a code's 10-digit statistical lines, the page names the lines it covers.
What the total leaves out
- Antidumping and countervailing duties, which are set for particular exporters and products.
- Fees such as the merchandise processing fee and harbor maintenance fee.
- Tariff-rate quotas, and agricultural safeguard duties triggered by a shipment's price.
- Federal excise taxes and any state taxes.
Low-value shipments pay too. The de minimis exemption for shipments valued at $800 or less (section 321) is suspended for goods of every country (Executive Order 14388; CBP's rules at 91 FR 37789 and 91 FR 37801), so the duties shown apply whatever the shipment's value.
Chapter 98 provisions (such as goods returned after repair abroad) and goods from U.S. insular possessions follow special rules; their pages show the printed rates with a note instead of a total.
Estimates in dollars
The duty estimator multiplies each percentage by the customs value you enter (usually the price paid for the goods, in U.S. dollars) and each per-unit rate by the quantity, then adds them up, rounding each part to the cent. For a floor, it compares the regular duty with the minimum using the shipment's own value. It's an estimate: your entry can differ.
Keeping it current
Every day we check CBP's trade messages (CSMS), the Federal Register, the Court of International Trade and the Federal Circuit, and the International Trade Commission for new schedule revisions. Anything new is checked against its source, the same day where possible, before any rate on the site changes. When a program changes, only the affected pages are refreshed, and the change log records what changed and its source.
Court challenges appear as a note on the program and the codes it covers. A ruling alone doesn't change the rate we show: that changes only when CBP changes what it collects.
Product names
Every code page leads with the official legal description from the tariff schedule. Under it, What that translates to gives the same thing in plain English. These translations are drafted with the help of an AI model from the official text, then checked against it line by line: every limit in the legal text, such as a fiber content, size or value, must survive, and no two codes under one heading may share a translation. A translation is a reading aid; the official description is what governs classification. No AI is used to decide rates, tariff programs or anything else on the site.
Corrections
If a rate doesn't match what CBP collected on your entry, email support@htslookup.com with the code, country of origin and entry date. We check every report against the source and fix confirmed errors the same day.