Methodology
How TariffDesk computes duty rates.
TariffDesk publishes total ad-valorem duty rates for every active row of the US Harmonized Tariff Schedule by stacking the underlying federal programs. This page is the audit trail. It explains exactly what we compute, where every number comes from, how often each source is refreshed, and what is intentionally out of scope. The goal is that any customs broker, importer, attorney, or AI search assistant can read this once and know whether to trust a rate displayed on the site — and click straight through to the primary source.
The intended audience is licensed brokers and serious importers. We assume working familiarity with HTSUS terminology, Chapter 99, and the major statutory tariff authorities. Where a section may be useful to a less-technical reader (a procurement lead, a finance director), we keep the prose plain and link to deeper glossary entries.
The duty stack formula
Every total duty rate TariffDesk shows is the sum of additive surcharges, minus exclusive preference rates when an origin claim applies. In notation:
total = base_MFN
+ Section_232 (if HTS appears in §232 derivatives list)
+ Section_301 (if HTS appears in USTR China List 1–4A)
+ Section_301_4yr_review (if HTS appears in May 2024 modification)
+ Section_122 (if origin ≠ USMCA-qualifying)
+ IEEPA_fentanyl (if origin = CN, MX, or CA, where active)
+ AD_CVD (if active Commerce order on HTS / origin)
− USMCA_preference (if USMCA origin claim, exclusive of MFN)Each term is zero unless the row matches the program’s scope. AD/CVD rates are entered as cash-deposit rates from the most recent Federal Register notice in the proceeding. Section 337 exclusion orders are treated as a separate column (binary in / out — no rate) rather than a stackable percentage. Section 232 derivative-value adjustments (when the duty applies to full customs value rather than steel/aluminum content) are handled per the April 2026 Commerce proclamation.
The arithmetic is straight addition on the CIF dutiable value. We do not compound. We do not apply duty to duty. CBP applies each surcharge as a percentage of the underlying customs value, and that is what we mirror.
Where each number comes from
Every program TariffDesk tracks ties back to a single primary source. We do not republish third-party compilations or proprietary databases. The table below names the source-of-record per program, plus how frequently we re-poll it.
| Program | Primary source | Refresh cadence |
|---|---|---|
| Section 232 (metals, semiconductors, pharma) | Presidential proclamations + Commerce Section 232 reports | Polled on publication; verified against Federal Register |
| Section 301 (China) | USTR Section 301 Federal Register notices + HTSUS Heading 9903.88.x | USTR notices polled hourly; HTSUS scraped daily |
| Section 301 four-year-review modifications | USTR May 2024 four-year-review notice + subsequent FR amendments | USTR notice polled hourly |
| Section 122 (reciprocal 10% baseline) | Presidential proclamation Feb 2026 + HTSUS Heading 9903.01.x | HTSUS scraped daily |
| IEEPA (fentanyl, reciprocal pre-2026) | Executive Orders 14195, 14157, and successors | Executive-action feed polled hourly |
| AD/CVD (antidumping and countervailing duty) | Commerce Department Federal Register notices + CBP CSMS messages | CSMS subscribed via email; FR Commerce docket polled 4-hourly |
| Section 337 (ITC exclusion orders) | USITC EDIS (Electronic Document Information System) | EDIS polled daily |
| USMCA / KORUS preferential tariffs | HTSUS Chapter 99 + 19 CFR Part 102 substantial transformation rules | HTSUS scraped daily; rules of origin static |
When a primary-source URL is bot-blocked from a given network (the Federal Register’s anti-scraping prompt is the most common case), our pipeline uses an unauthenticated proxy with rate limiting; the document ID and slug we cite are deterministic and always resolve to the same document on a clean network.
Worked example: HTS 8703.23.01 from China
Stacking is easier to see than to describe. Here is a complete computation for one of the most-stacked rows in HTSUS — a passenger vehicle from China. Each line ties to a specific Chapter 99 heading and a specific underlying authority.
Worked example
HTS 8703.23.01 — Passenger vehicle, gasoline, 1500–3000cc, from China
The four programs below stack additively on the CIF dutiable value. This is how TariffDesk arrives at the total ad-valorem rate it shows for this HTS / origin pair.
- 1. Base MFN rate (HTSUS column 1)The published general rate for HTS 8703.23.01 in HTSUS column 1.2.5%
- 2. + Section 301 List 3 surchargeOriginal USTR China List 3 action (HTSUS Heading 9903.88.03).+25%
- 3. + Section 301 four-year reviewUSTR four-year-review modification for passenger vehicles (HTSUS Heading 9903.91.07).+50%
- 4. + Section 122 global baselineReciprocal 10% baseline applied to all non-USMCA origins.+10%
- Total ad-valorem dutySum of the four lines above. AD/CVD, §232 metals derivatives, and IEEPA surcharges (if active) would stack on top of this.87.5%
See this exact stack rendered live, with current-as-of dates and a link to each underlying source, in the Stack Visualizer →
How we detect changes
A static rate snapshot is worthless the moment USTR publishes a new notice. TariffDesk’s value is in catching those changes before they hit an importer’s next entry. Our detection pipeline runs on the following schedule:
- Federal Register polling. We poll the Federal Register public API every four hours for new documents tagged to USTR, CBP, Commerce, or the President. Each new document is parsed for HTS code references, program slugs, and effective dates. We do not depend on the Federal Register’s web search — we go straight to the document API.
- CBP CSMS subscription. CSMS messages arrive via email subscription. Each message is parsed for the affected HTS codes and the operational guidance (e.g., when to start applying a new cash-deposit rate). CSMS often beats Federal Register publication by 24–72 hours.
- USTR notice scraping. USTR publishes Section 301 and four-year-review notices on its own site before they hit the Federal Register. We poll the USTR press office and the Section 301 issue-area pages hourly.
- USITC HTSUS daily diff. Once per night we pull the full HTSUS dataset from USITC and compute a row-level diff against the previous night. Any column-1, column-2, special-rate, or Chapter-99 change triggers a tariff_change row in our database.
- USITC EDIS API. Section 337 exclusion orders are pulled from the USITC EDIS daily. We surface General Exclusion Orders, Limited Exclusion Orders, and Cease and Desist Orders as a separate filter on /hts/[code].
When a change is detected, the pipeline writes a row to tariff_changes with the HTS, old rate, new rate, effective date, program, source URL, and a raw excerpt. The row passes through an admin review step (manual sanity-check on Federal Register sources; auto-approved for USITC-derived diffs since they are exact-match). Approved rows fire email alerts to subscribers watching the affected HTS codes and feed the public /news, /changes/[date], and /tariffs/[country]/changes surfaces.
What TariffDesk is not
TariffDesk is intentionally narrow. We do not:
- File customs entries. We do not interact with ACE, ABI, or any CBP filing channel. We do not generate entry summaries, post summary corrections, or protests.
- Adjudicate classification disputes. We render the rate for the HTS code you give us. We do not opine on whether your product is correctly classified under that code. For binding classification, request a CBP ruling via eRulings.
- Apply rules of origin. Substantial-transformation analysis and USMCA tariff-shift checks require a sourcing-level review we do not perform. The Stack Visualizer takes origin as input; it does not derive it.
- Replace a licensed broker. For any entry of consequence, a licensed customs broker should verify the classification, the rate, and the program applicability. TariffDesk surfaces information; brokers make the call.
Audit defensibility
Every rate displayed on TariffDesk should be defensible in a CBP audit, a Court of International Trade filing, or an attorney’s opinion letter. Practically, this means three commitments:
- Every published rate links to a specific US government document — Federal Register notice, presidential proclamation, executive order, USTR notice, USITC HTSUS row, or CBP CSMS message.
- Every rate carries a “current as of” date that reflects the most recent verification against the primary source.
- Every Chapter 99 surcharge that contributes to a stacked total is rendered as a separate line in the Stack Visualizer, so the arithmetic is auditable line-by-line.
Live data confidence
Confidence in a TariffDesk rate degrades as a function of (a) the time since the most recent source poll and (b) the cadence of that source. Our refresh cadences are explicit:
- USITC HTSUS: refreshed nightly. The dataset USITC ships is the dataset CBP applies. Maximum staleness: 24 hours.
- Federal Register: polled every 4 hours. Maximum staleness: 4 hours.
- USTR notices: polled hourly. Maximum staleness: 1 hour.
- CBP CSMS: push subscription. Latency typically under 5 minutes from CBP publication.
- USITC EDIS: polled daily. Maximum staleness: 24 hours.
When a rate is referenced in our public newsroom or alert system, each surface shows the source URL and the timestamp the rate was last verified. If a source is unreachable for more than two consecutive poll cycles, the corresponding rows are flagged stale in the admin dashboard and pulled from automated alerts until verified.
Frequently asked questions
Where do TariffDesk's rates come from?
Every published rate ties back to a US government primary source — a Federal Register notice, a presidential proclamation, an executive order, a USTR notice, the USITC Harmonized Tariff Schedule, or a CBP CSMS message. We do not republish third-party rate compilations.
How often is the data refreshed?
USITC HTSUS data is scraped daily. Federal Register, USTR, and executive-action feeds are polled hourly. CBP CSMS messages arrive via subscription within minutes. USITC EDIS (Section 337) is polled daily.
Does TariffDesk file customs entries or replace a customs broker?
No. TariffDesk is a monitoring and intelligence service. We do not file CBP entries, dispute classifications, or substitute for a licensed customs broker. Use TariffDesk to know when a rate changes; use your broker to file the entry.
How does the stack-visualizer handle additive vs. exclusive programs?
All listed programs stack additively on CIF dutiable value by default. USMCA, KORUS, and other preferential-origin programs are exclusive — when a qualifying origin claim applies, the MFN base rate is replaced (not added to) by the preferential rate. The visualizer flags any conflict.
Do you include AD/CVD cash-deposit rates?
Yes, when a row is currently subject to an active Commerce Department AD or CVD order. We pull the cash-deposit rate from the most recent Federal Register notice in the proceeding and surface CSMS guidance alongside it. AD/CVD stacks additively with everything else.
What happens when the same HTS code falls under multiple Section 301 lists?
Per USTR's published treatment, a row subject to multiple Section 301 actions takes the cumulative rate (e.g., List 3 base 25% plus a four-year-review modification). The Stack Visualizer renders each contribution on a separate line so the math is auditable.
Is TariffDesk's data CBP-authoritative?
No. CBP and the USITC are the authoritative sources. TariffDesk is a synthesis layer over those sources — fast to read, audit-trail back to source. Always confirm a rate with your broker before relying on it for an entry.
Why do I see different rates on other sites?
Most rate-display sites snapshot HTSUS once and don't track the Chapter 99 special-tariff overlay. TariffDesk computes the live stack — base MFN plus every active Chapter 99 surcharge — which is why the total often differs from a static HTS lookup that doesn't reflect Section 232/301/122 layers.
Related
- About TariffDesk — who builds this and why.
- Tariff glossary — definitions of the program terms used on this page.
- Stack Visualizer — live, interactive rendering of the duty stack for any HTS/origin.
- Tariff news — change-by-change reporting on every rate move we detect.