Tariffs and Duties for Small Importers: HS Codes, Customs Value and Margin
Duty is the one component of cost that arrives with a number attached and still gets read wrong. A rate is quoted in percent, so it feels like it can be subtracted from a margin. It cannot: a duty rate applies to a customs value that is smaller than your landed cost, which is itself smaller than your retail price. Three different bases, three different percentages, and the one you actually care about — margin — is the last of them. This is the arithmetic, plus how the same increase reaches you by three routes that look nothing alike in a price file.
What the rate is applied to
Two facts decide a duty rate: what the goods are and where they originate. Both are declared, and both are your legal responsibility as importer of record even when a broker fills in the form.
Classification runs on the Harmonized System. The first six digits are common across almost every trading country: chapter, heading, subheading. National tariff schedules extend that — the US HTS and Canada's schedule run to ten digits, the EU's Combined Nomenclature to eight with TARIC extensions to ten. The consequence for a small importer is useful: the six-digit stem should be identical no matter which country you or your supplier are declaring in, so a mismatch between the six-digit code on a Chinese supplier's export documents and the one on your own entry is a real signal, not a formatting difference. The national digits after that will differ, and should.
Origin is not the country the container left from. It is where the goods were produced, or where they last underwent substantial transformation — a definition that varies by jurisdiction and by trade agreement. A part machined in one country from castings made in another can be either, and the answer changes the rate. Goods that sat in a distribution warehouse in a third country did not acquire that country's origin by sitting there.
Then the base. Duty is assessed on the customs value of the shipment, which is normally the transaction value — what you actually paid the seller — adjusted by rules that differ by regime. The most consequential difference for a small importer is what happens to freight: the United States generally assesses duty on a value that excludes international freight and insurance, while the EU and the UK assess on a CIF basis that includes them. Same goods, same rate, different duty bill. If you import into more than one market, do not reuse one spreadsheet for both.
The three numbers, worked
Take a line you import yourself. Supplier price $42.00 per unit ex works, ocean and inland freight allocated at $3.60 per unit, broker and entry fees at $0.35. The duty rate on the heading is 3.7% — an example figure; use your own. Retail is $79.00.
Now suppose a new measure adds fifteen points, taking the rate to 18.7%. Duty becomes 42.00 × 0.187 = $7.85.
Three numbers from one event: the rate moved 15.0 points, landed cost moved 13.3%, margin moved 8.0 points. None of them is a substitute for the others, and the one people quote in meetings is the first.
The restoring price is 53.80 / (1 − 0.3987) = $89.48, which is 13.3% above $79.00 — the same percentage as the cost move, which is always true when you hold a margin percentage rather than a dollar amount. If that identity is not obvious, the mechanics of recalculating price after a cost increase works it through.
The rate where the floor breaks
A more useful question than "what does this rate do to margin" is "at what rate does this line stop being worth stocking". If your floor is 35%, the most you can pay landed at a $79.00 retail is 79.00 × 0.65 = $51.35. Everything except duty accounts for $45.95, so duty has $5.40 of room, and:
5.40 / 42.00 = 12.9%
The line breaches the floor at 12.9%, not at 18.7%. That threshold is worth computing per line before an increase lands, because it converts a rate announcement into an immediate list of affected SKUs without any recalculation. It also tells you which lines have room: a SKU with a 55% margin absorbs the same fifteen points without ever touching its floor, and the two should not get the same response. If you have not set a floor from cost-to-serve rather than habit, that calculation comes first — the threshold above is only as good as the number you put in it.
Route two: the supplier absorbs the entry, and you get a price file
Most small stores are not importers of record. Their supplier imports, and the tariff arrives as an ordinary line in an ordinary price file — no duty column, no explanation, often no notice. This is the hard case, because there is nothing to verify and no document to read.
What you can do is decode it. If you know the rate change and you observe the price change, the ratio tells you what share of your purchase price is dutiable. Suppose the same $42.00 unit comes from a domestic distributor whose price rises 9.3% — $3.90 — in the same month a fifteen-point measure took effect:
implied dutiable base = 3.90 / 0.15 = $26.00
$26.00 / $42.00 = 61.9% of your cost
That is a plausible answer for a distributor: their own landed cost is roughly 62% of what they charge you, and they passed the duty through at cost, without margin on top. An implied base above your purchase price would be arithmetically impossible and means something else moved at the same time. An implied base far below what you would expect means either they absorbed part of it, or only part of their line is affected, or the increase is not the tariff at all. None of these are accusations — they are questions worth one email, and the decode is what makes the email specific.
Route three: the surcharge line
The third route is a percentage line on the invoice — "tariff surcharge", "duty recovery", "import cost adjustment" — added to the order subtotal rather than to any individual price. It is the most honest of the three and the most likely to be missed by your systems, because it is not in the price file at all. Your cost per item never sees it.
Four points of margin, invisible to every report you run, because the number the report uses is correct as a price and wrong as a cost. Three things to check on a surcharge line before you accept it as arithmetic:
- What is it applied to. The net after your discount, or the list before it? On a 40% column the difference is most of the surcharge.
- Is freight inside the base. A surcharge computed on an invoice total that includes freight is charging you duty on freight the customs authority may not have.
- Does it apply to every line. Surcharges are usually flat across the invoice, but tariffs are not flat across origins. A domestic-made line on the same invoice is subsidising the imported ones.
| Route | What you see | What you can verify | Where it lands |
|---|---|---|---|
| You import | Duty on the entry summary | Everything: code, origin, value, rate | Landed cost, weeks after the goods |
| Supplier imports | A normal price increase | Only the implied base, by decode | Cost per item, silently |
| Surcharge line | A percentage on the invoice | The base it is applied to | Nowhere — no field holds it |
Reading your own entry
If you import directly, the entry paperwork your broker files is the only place your classification is actually stated, and most small importers have never read one. Ask for the entry summary for a recent shipment and check five things against what you believe you are selling:
- The tariff code, all digits. Compare the six-digit stem with your supplier's export declaration. If they differ, one of you is wrong.
- The declared origin per line. Not the port of loading, not the seller's address.
- The declared value and what was included in it. Assists, tooling, royalties and packing may belong in customs value even though they are not on the commercial invoice.
- The rate applied, and any additional measures stacked on top of the base rate for that origin.
- Whether a preference was claimed. Free-trade agreements need a claim and supporting documentation; nobody claims one for you by default.
Two of those are worth acting on beyond curiosity. If your goods might qualify for preferential origin under an agreement, the paperwork is the supplier's to provide and yours to keep — an unclaimed preference is money left with the customs authority every entry. And if the classification is genuinely uncertain, most customs authorities publish a binding ruling process (a Binding Tariff Information decision in the EU, a ruling letter in the US) that will tell you the answer in writing and commit them to it.
What to record, so the next one is arithmetic and not panic
Tariff measures change, expire, get suspended and get reinstated. What makes the second event cheap is a record made during the first. Per SKU, or per product group where the group genuinely shares a classification:
- Tariff code and country of origin, as declared — not as assumed.
- The dutiable share of your purchase price — 100% if you import, the decoded figure if your supplier does. This is the multiplier that turns any future rate change into a cost change in one step.
- The duty rate at which the line breaches your floor, from the calculation above.
- The date a rate changed and the price file edition it first appeared in. Without this, next year's year-over-year comparison silently mixes a tariff with an underlying increase, and you will negotiate against the wrong one.
That last point is the one that decays fastest. A tariff-driven increase and a real cost increase are the same number in the file and completely different conversations with the supplier: one may reverse when the measure does, the other will not. If you keep every price file edition with its date — the archive habit described in the price-file process — you can still separate them a year later. If you only keep the current file, you cannot, and the tariff quietly becomes part of the permanent base price. That is the mechanism by which temporary measures become permanent costs, and it happens in your records, not in anyone's policy.
Find the lines a duty change would push under your floor
Paste in costs and retail prices and get every SKU below your target margin, plus the price that restores it. Run it with duty in the cost and again without, and the gap is your exposure. Free, no account.
Open the free checker ↗