How do you find the duty on an HTS code, and why does one code carry several rates?
Published · Updated
Short answer
Find the 8-digit subheading in the HTSUS revision in force on the entry date and read three rates: General (column 1) for most countries, Special for goods that meet a program in General Note 3(c), and column 2 for products of Belarus, Cuba, North Korea and Russia. Then add each Chapter 99 heading that covers the product and its origin on that date; a trade-program claim usually does not remove those duties, because General Note 3(c)(iii) and most Chapter 99 notes keep special-program goods subject. A cotton T-shirt of China (6109.10.00) entered on November 10, 2026 carried 16.5 percent general duty, plus 7.5 percent under heading 9903.88.15 and 12.5 percent under heading 9903.05.31: 36.5 percent of entered value, or $7,300 on a $20,000 line.
TariffSense classifies products and shows the full duty stack for any date, for imports into the US and Canada.
What are the steps from an HTS code to a duty amount?
A duty lookup has two halves. The first half is the tariff line itself: one 8-digit subheading with three rate columns. The second half is Chapter 99, where temporary and trade-remedy duties live as separate headings that attach to the line by product, origin and date. Most wrong answers come from stopping after the first half, or from doing the second half on the wrong date.
- Fix the entry date and the revision. 19 CFR 141.69 says the rates are "the rates in effect at time of entry", with exceptions for warehouse withdrawals (the withdrawal date) and immediate transportation entries (the date that entry was accepted). The USITC publishes each revision with the date it took over; for example, Revision 22 (2026) was current from October 30 to November 10, 2026, and Revision 23 from November 10, 2026. More on how changes reach entries: how tariff schedule changes reach your entries.
- Find the 8-digit subheading (if the code itself is in doubt, settle it first with HS classification) and read General, Special and column 2. The 10-digit statistical suffix under it carries no rate of its own but goes on the entry.
- Pick the column by origin and claim. Column 2 if the origin is listed in General Note 3(b); Special only if a program symbol on the line matches the origin and every requirement of that program is met; otherwise General.
- Search Chapter 99 for the origin and the subheading. Read each candidate heading's text, its U.S. note and its product list. A heading applies when the product is listed (or described), the origin matches, the entry date is inside its window and no exception heading takes the line out.
- Add the rates in the way each heading says. Most Chapter 99 headings read "The duty provided in the applicable subheading + N%", which is an addition to the column 1 duty on the same value. Some set a flat total or a floor instead.
- Multiply by the entered value (or the quantity, for specific rates) and add the fees in block 43 separately.
What do the General, Special and column 2 rates mean?
General Note 3 of the HTSUS sets the rules for the rate columns. The table summarises Revision 23 (2026).
| Column | Who pays it | Where the rule is |
|---|---|---|
| Column 1 General | Products of every country not listed for column 2 and not entitled to special treatment; the normal trade relations rate | General Note 3(a)(i)–(ii) |
| Column 1 Special | Products that meet all legal requirements of a program whose symbol follows the rate, such as AU, KR, S (USMCA) or P (CAFTA-DR); lowest rate if several programs fit | General Note 3(a)(iii) and 3(c)(i) |
| Column 2 | Products of the Republic of Belarus, Cuba, North Korea and the Russian Federation | General Note 3(b) |
Two details trip people up. First, a symbol in the Special column is a door, not a result: General Note 3(a)(iii) applies the special rate only to products "for which all of the legal requirements for eligibility for such program or programs have been met", and only when the country is a designated beneficiary of that program. Second, a footnote to General Note 3(b) points column 2 goods to additional duty treatment under U.S. note 30 of subchapter III of Chapter 99, so even column 2 is not always the last word.
Why does one HTS code carry several rates?
Because the 8-digit line holds only the permanent rates, and every temporary action is written as a Chapter 99 heading that sits on top of it. Chapter 99's U.S. note 1 says its provisions either temporarily modify chapters 1 to 98 or impose additional duties "pursuant to collateral legislation". Section 301, Section 232, safeguards and other actions are all built this way.
Chapter 99 statistical note 1(a) tells filers to report the Chapter 99 heading "in addition to the 10-digit statistical reporting number appearing in chapters 1 through 97 which would be applicable but for the provisions of this chapter". So a line on Form 7501 can carry the base 10-digit number and one or more 9903 numbers, each with its own rate in column 37 and its own duty in column 38.
General Note 3(c)(iii) explains why a trade-agreement claim often does not clear the stack. Goods eligible for the special treatment in general notes 4 through 14 that are "subject to temporary modification under any provision of subchapters III or IV of chapter 99" pay, for the period indicated, "the rates of duty in the 'General' subcolumn in such chapter". Subchapter III holds the Section 301 and Section 232 headings. For the programs outside general notes 4 to 14, the Chapter 99 note says it directly: U.S. note 52(a), for example, keeps products eligible under General Note 3(c)(i) subject to the forced-labor headings. A heading can still exempt trade-agreement goods in its own words, and many do, which is why step 4 is to read the heading text and its note rather than the rate alone.
How does the lookup work on a real line?
Take a cotton knit T-shirt classified in subheading 6109.10.00, entered for consumption on November 10, 2026, with an entered value of $20,000. Revision 23 (2026) was the current revision from that day.
The base line, as published in Revision 23: General 16.5%; Special Free for AU, BH, CL, CO, IL, JO, KR, MA, OM, P, PA, PE, S and SG; column 2 90%.
Now the Chapter 99 search for two origins.
Product of China. Heading 9903.88.15 covers products of China listed in U.S. note 20(s), and 6109.10.00 is on the 20(s) list; the heading reads "The duty provided in the applicable subheading + 7.5%". Heading 9903.05.31, created by the USTR forced-labor Section 301 action for goods entered on or after 12:01 a.m. eastern time on July 24, 2026 (91 FR 47318, July 28, 2026), covers products of China "as provided for in U.S. note 52" at "+ 12.5%", except for products described in headings 9903.05.85 to 9903.05.92.
Product of Vietnam. No 9903.88 heading applies, because Section 301 China headings follow origin. Heading 9903.05.84 covers products of Vietnam at "+ 12.5%".
| China | Vietnam | |
|---|---|---|
| 6109.10.00, General 16.5% | $3,300.00 | $3,300.00 |
| 9903.88.15, + 7.5% | $1,500.00 | not applicable |
| 9903.05.31 / 9903.05.84, + 12.5% | $2,500.00 | $2,500.00 |
| Total duty | $7,300.00 (36.5%) | $5,800.00 (29.0%) |
Same code, same value, same day, and a $1,500 difference from origin alone. The duty calculator runs this lookup for any code, origin and date: try it on the duty calculator.
Three cautions on this example. The forced-labor heading has exception headings (9903.05.85 for goods in transit before July 24, 2026 and entered before July 28, 2026; 9903.05.86 to 9903.05.92 for the note 52 exemption lists), so a line that qualifies for one of them reports that heading instead at no additional duty. Cotton apparel also carries non-duty charges in block 43, such as the cotton fee the Form 7501 instructions list among "other fees" in column 33. And a T-shirt claiming Special Free under KR or JO would still be read against the Chapter 99 headings for Korea or Jordan, which have their own country terms in note 52.
What does a lookup usually get wrong?
These are the errors that show up when lines on past entries are re-run against the schedule.
- Today's revision for yesterday's entry. In 2026 alone the USITC published the 2026 Basic edition and 23 revisions by November 10. A rate read today can be correct today and wrong for a March entry.
- Special rate read as granted. A "Free (S)" on the line is not a USMCA rate until the origin rules in the relevant General Note are met and the claim is made on the entry with its special program indicator in column 31.
- Chapter 99 skipped. A lookup that stops at the 8-digit line misses every Section 301 and Section 232 duty and every exemption heading.
- Chapter 99 heading without its note. The rate in the heading means nothing until the note's product list and exceptions are checked. Note 20(s), for example, is a list of 8-digit subheadings, and note 52 has exemption lists by subdivision.
- Origin swapped for country of export. Chapter 99 headings follow the product of a country, which is country of origin (block 10 and column 31 of the 7501), not where the goods shipped from.
- Column 2 forgotten. A product of Russia or Belarus pays column 2 whatever a supplier's quote assumed.
How do you check the duty on your own past entries?
Run the lookup above on every line, not on a sample of codes, because the same code can be right on one entry and wrong on another when the dates or origins differ.
- Pull an entry export with entry date, line number, 10-digit HTS number, every Chapter 99 number, country of origin, special program indicator, entered value and duty per rate.
- For each line, find the revision in force on the entry date and redo steps 2 to 5.
- Compare the expected set of Chapter 99 headings with the reported set. A missing heading is a likely underpayment; an extra heading, or one charged outside its date window, a likely overpayment.
- Compare the rate and the duty per heading, then the line total.
- Route each difference by entry status: post-summary correction before liquidation, protest after it, and prior disclosure where an underpayment is material. The post-entry audit guide walks through the routes, and why your entry shows the wrong duty stack covers the common stacking errors.
TariffSense reads entry summaries and broker exports and recomputes each line's duty stack against the measures in force on its entry date, so the set of Chapter 99 headings a line should carry is checked rather than copied from the filing. The classification itself is a separate question: how to audit HTS codes on past entries covers it, and the field-level reading of the line is in Form 7501 field by field. A lookup is research: confirm the rate for a filing with a licensed customs broker.
Sources
- USITC, Harmonized Tariff Schedule of the United States, Revision 23 (2026), General Notes (General Note 3) (hts.usitc.gov, checked )
- USITC, Harmonized Tariff Schedule of the United States, Revision 23 (2026), Chapter 99 (statistical note 1; U.S. notes 20(s) and 52; headings 9903.88.15, 9903.05.31, 9903.05.84) (hts.usitc.gov, checked )
- USITC, HTS search, subheading 6109.10.00 (Revision 23, 2026) (hts.usitc.gov, checked )
- USTR, Notice of Actions in Section 301 Investigations (forced labor import prohibitions), 91 FR 47318 (July 28, 2026) (govinfo.gov, checked )
- 19 CFR 141.69 Applicable rates of duty (ecfr.gov, checked )
- CBP Form 7501 Instructions (revision 02/26), column 33 (cbp.gov, checked )
- Updated : Re-checked every source; rates, caps and deadlines updated.
