May 28, 2026

How HTS tariff stacking actually works (with worked examples)

A duty rate is rarely one number. Most U.S. imports pay several duties at once, and some duties suppress others by law. Here is the order, the carve-outs, and three worked examples you can verify against the official source.

How HTS tariff stacking actually works

Last verified against U.S. regulations as of May 28, 2026. See our live status page for current data.

Most U.S. imports pay several duties at once. This guide walks through how to calculate the full stack on a single ten-digit HTS code: the MFN (most-favoured-nation) base rate, a Section 232 product-specific duty on steel, aluminum, copper, or autos, a Section 301 country-specific list duty on Chinese-origin goods, the Section 122 reciprocal surcharge enacted in early 2026, and historically (until the Supreme Court struck them down on 2026-02-20) IEEPA fentanyl tariffs.

Get the stack wrong and the landed cost is off by tens of percentage points. Customs entries fail. Margins disappear. So if you are pricing imports, building an invoicing system, or just trying to understand a number, the stack matters more than any single rate.

This article walks through how it actually works.

The four main programs, briefly

There are four duty programs that can apply on top of the MFN base rate. Each is enacted under different statutory authority, each targets different goods, and each interacts with the others differently.

Section 232 (Trade Expansion Act of 1962). Product-specific national-security tariffs. The big ones today are steel (50% as of June 2025, raised from the 25% set in 2018), aluminum (10%), copper (50% from April 2026), and autos / auto parts (25%). Section 232 attaches to the goods, not the origin: German steel and Chinese steel both pay the same rate.

Section 301 (Trade Act of 1974). Country-specific list duties enacted in response to unfair trade practices. In practice today this means the Chinese-origin lists. Current rates pulled live from our data:

List Chapter 99 code Current rate Active rows
List 1 9903.88.01 25% 1722
List 2 9903.88.02 25% 574
List 3 9903.88.03 25% 11847
List 4A 9903.88.15 7.5% 5963
Semiconductors 9903.91.05 50% 20

Section 301 only applies if the origin is on the list, so Vietnamese-origin goods do not pay Section 301 even when the HTS code is on a list. The 4-year USTR review that concluded in late 2024 raised the semiconductor list to 50%.

Section 122 (Trade Act of 1974). A temporary global import surcharge of 15%, enacted on 2026-02-24 by Federal Register notice 91 Fed. Reg. 9339, with a 150-day sunset. The Chapter 99 code is 9903.01.80. This applies to most imports regardless of origin, but with a major carve-out under Annex II of EO 14257 that covers roughly 2,200 HTS codes spanning chapters 02 through 85 (more on this below).

IEEPA (International Emergency Economic Powers Act). Country-specific emergency tariffs that were active throughout 2025. The Supreme Court invalidated the underlying executive orders on 2026-02-20, and collection ceased on 2026-02-24. We preserve the historical rates for any as_of query before that cutoff and stop applying them after. For current dates, IEEPA does not appear in the stack. Importers who paid IEEPA duties in 2025 may be eligible for refunds; see our IEEPA refund guide.

The two stacking rules that matter

Once you know which programs apply, two rules determine the math.

Order of application. The duties are applied independently to the customs value, then summed. They do not compound. A 25% MFN base plus 25% Section 301 plus 15% Section 122 equals 65% total, not 79.7%.

Section 232 takes primacy over Section 122. When a good is subject to a Section 232 duty (steel, aluminum, copper, autos / auto parts), Section 122 does not apply on top. This is a legal carve-out written into the Section 122 proclamation, not a calculation choice. So Canadian steel pipe pays Section 232 at 50% but does not also pay Section 122 at 15%.

Section 301 stacks with everything. It sits on top of MFN, on top of Section 232, on top of Section 122. A Chinese-origin good can pay all three.

Annex II of EO 14257 carves a large list out of Section 122. As of today the list covers 1104 HTS prefixes spanning chapters 02 through 85, encoded in Chapter 99 of the HTSUS under heading 9903.01.32. Goods on Annex II, which includes most of chapter 84 (computers, processors, semi mfg equipment), most of chapter 85 (integrated circuits, telecom, displays, storage media), and many agricultural codes in chapters 02-19, are exempt from Section 122 entirely. This is the single biggest source of stacking errors in third-party tariff data: ignore the carve-out and you will over-charge customers by 15 percentage points on tens of thousands of HTS codes.

Worked example 1: Smartphones from China

HTS 8517.13.00.00, origin CN, today’s date.

Program Chapter 99 Rate Why
MFN base (none) 0.0% USITC general rate; smartphones enter duty-free.
Section 301 (List 4A) 9903.88.15 + 7.5% CN origin on USTR’s List 4A. Applied.
Section 122 9903.01.80 15% Suppressed: 8517.13 is in the Annex II 9903.01.32 carve-out. Not applied.
IEEPA 9903.01.25 (none) Invalidated by SCOTUS on 2026-02-20. Not applied to current dates.
Total   7.5% Not 22.5%, not 40%.

Calculators that don’t model the Annex II carve-out will return 22.5% or 40% for this code. That’s the bug to watch for if your invoicing numbers look off.

Worked example 2: Steel pipe from Canada

HTS 7306.30.50, origin CA, today’s date.

Program Chapter 99 Rate Why
MFN base (none) 0.0% USITC general rate.
Section 232 (steel) 9903.85.x + 50% Steel pipe is in the Section 232 steel scope (Proclamation 9705, rate raised to 50% by the June 3, 2025 Proclamation). Applied regardless of origin.
Section 122 9903.01.80 15% Suppressed by the 232-over-122 primacy rule. Not applied.
Total   50% Plus any AD/CVD that may be specific to the producer.

Same product from Vietnam would pay the same 50% Section 232. The duty attaches to the goods, not the origin. From a country with a Section 232 country exemption (the carve-outs change), the rate would be different.

A note on FTAs while we’re on Canada: USMCA and other free-trade agreements can reduce or eliminate the MFN base rate for qualifying goods, but they do not waive Section 232 or Section 301. Those duties apply regardless of FTA status. A USMCA-qualifying Canadian steel pipe still pays the 50% Section 232 duty.

Worked example 3: Cotton T-shirts from Vietnam

HTS 6109.10.00, origin VN, today’s date.

Program Chapter 99 Rate Why
MFN base (none) 16.5% USITC general rate; textiles carry a substantial MFN base.
Section 301 (none) (none) Vietnam is not on any USTR Section 301 list. Not applied.
Section 122 9903.01.80 + 15% Chapter 61 is not in the Annex II carve-out. Applied.
Total   31.5%  

This is what a Vietnamese-origin textile import looks like today. The same shirt from China would also pay Section 301 List 4A at 7.5%, total 39%.

How /api/v1/tariffs/resolve returns the full stack

If you are integrating duty calculation into a system, the easiest way to see the stack is to call /resolve directly:

GET /api/v1/tariffs/resolve?hts=8517.13.00.00&origin=CN&as_of=2026-05-28

The response includes base_tariff, the list of additional_measures actually applied (in our smartphone example, just the Section 301 row), and a summary with the totals. By default, suppressed measures (Section 122 dropped by Annex II, IEEPA dropped post-SCOTUS) do not appear in additional_measures. They are filtered out before the response is built.

For invoicing workflows that need the full Chapter 99 catalog including the suppressed rows, pass ?include_inapplicable_measures=true. Each measure then comes back with an extra field, applies_to_origin: true | false, so the invoicing system can show what was carved out and why without having to guess.

What can go wrong

The stack itself is straightforward once you know the rules. Where third-party tariff data tends to drift is in three places.

Stale Section 232 rates. Steel went from 25% to 50% on June 4, 2025. Calculators with underlying configs set years ago will still quote 25% because nothing forced them to update. Always check the effective date on the Section 232 row.

Missing Annex II carve-outs. The Annex II list is published as part of Chapter 99 of the HTSUS itself, but it is encoded in the U.S. note prose, not as standalone tariff lines. A naive parser misses it. The symptom is Section 122 (15%) showing up on goods that the law has actually carved out, with chapter 84 / 85 electronics being the largest blast radius.

IEEPA after the SCOTUS ruling. The IEEPA tariffs were the largest single duty on Chinese imports throughout 2025 (20% under 9903.01.25). They were invalidated on 2026-02-20 and collection ceased on 2026-02-24. Any calculator still applying them to current dates is wrong; any calculator that does not preserve them for historical as_of queries is also wrong.

Common questions

Does Section 232 stack with Section 122? No. Section 232 takes primacy over Section 122 on goods covered by 232. A steel pipe pays Section 232 (50%) and does not also pay Section 122 (15%). This is written into the Section 122 proclamation as an explicit carve-out.

What is the Annex II carve-out? Annex II of EO 14257 is a list of roughly 2,200 HTS codes (most of chapters 84 and 85, plus many agricultural codes in chapters 02 through 19) that are exempt from the Section 122 reciprocal surcharge. The list is encoded in Chapter 99 of the HTSUS under heading 9903.01.32.

When did IEEPA tariffs end? The Supreme Court invalidated the underlying executive orders on February 20, 2026. Collection ceased on February 24, 2026. IEEPA tariffs do not apply to imports on or after that date, but they remain applicable for any historical lookup with an as_of before the cutoff.

Are MPF and HMF included in this stack? No. This article covers duty stacking only. Merchandise Processing Fee (MPF, around 0.3464% with caps) and Harbor Maintenance Fee (HMF, 0.125%) are customs fees, not tariff duties, and are calculated separately by your customs broker.

How do I calculate the import duty for a specific HTS code? Look up the four programs in order: MFN base, then Section 232, then Section 301, then Section 122 (with the carve-outs above). Each is applied independently to the customs value and summed. Or call our live calculator or /api/v1/tariffs/resolve and the math runs for you.

Where the rates come from

Every rate on Tariffs API is pulled directly from the official source: the USITC Harmonized Tariff Schedule JSON for MFN base rates, the USITC Chapter 99 PDF for the carve-out text, USTR for the Section 301 lists, and Federal Register proclamations for Section 232 rates and Section 122 enactment. We keep the raw source beside the structured rate and re-test a daily regression corpus against every change. Read more on the data sourcing page.

If you spot a specific HTS where the stack on Tariffs API does not match the official source, send us the code, origin, and expected duties and we will add it to the regression corpus and investigate the same day.

Calculate the stack on your own HTS

Try /resolve against any HTS code in the live calculator, or read the API documentation for the full schema. The Annex II carve-out, IEEPA invalidation, and Section 232 primacy are all handled correctly, verified daily by our regression corpus.