September 2, 2026 · CostSentry

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.

Duty is not the only thing on the entry. Depending on the country and the goods there may also be excise, an import processing or merchandise fee, a customs broker's fee, antidumping or countervailing duty on specific goods from specific origins, and import VAT or GST — which is usually recoverable for a registered business and therefore is not a cost, unlike the duty, which is. Putting recoverable VAT into cost per item is a common and expensive mistake; see landed cost for what belongs in that field and what does not.

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.

One unit, duty at 3.7%
Customs value (transaction value)$42.00
Duty at 3.7%$1.55
Freight and insurance, allocated$3.60
Broker and entry fees, allocated$0.35
Landed cost$47.50
Margin at $79.00 retail39.9%

Now suppose a new measure adds fifteen points, taking the rate to 18.7%. Duty becomes 42.00 × 0.187 = $7.85.

Same unit, duty at 18.7%
Duty$7.85
Landed cost$53.80
Landed cost increase+$6.30 (+13.3%)
Margin at $79.00 retail31.9%
Margin points lost8.0
Retail that restores 39.9%$89.48

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.

Watch for the pass-through applied twice. Distributors who mark up on landed cost will multiply their margin over the duty as well, so a fifteen-point duty on their base can reach you as more than fifteen points of their base. That is a normal consequence of percentage markup, not sharp practice, but it is a legitimate thing to raise — and the ask is usually "pass the duty at cost, mark up the rest", which is a smaller concession than a price reduction. Other levers that move before price does apply here too.

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.

One order, 7.5% surcharge
200 units at $42.00$8,400.00
Surcharge at 7.5%$630.00
Effective unit cost$45.15
Margin recorded (cost field says $42.00)46.8%
Margin actually earned42.8%

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:

RouteWhat you seeWhat you can verifyWhere it lands
You importDuty on the entry summaryEverything: code, origin, value, rateLanded cost, weeks after the goods
Supplier importsA normal price increaseOnly the implied base, by decodeCost per item, silently
Surcharge lineA percentage on the invoiceThe base it is applied toNowhere — 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:

  1. The tariff code, all digits. Compare the six-digit stem with your supplier's export declaration. If they differ, one of you is wrong.
  2. The declared origin per line. Not the port of loading, not the seller's address.
  3. 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.
  4. The rate applied, and any additional measures stacked on top of the base rate for that origin.
  5. 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.

Do not reclassify to chase a lower rate. Classification is a legal declaration made by you, not an optimisation setting, and a wrong one is a penalty exposure that survives long after the saving. The legitimate version of this is checking that the existing code is correct — which quite often it is not, because it was chosen once, quickly, years ago, by someone who had never seen the product. Correcting a wrong classification can move the rate in either direction. Take it up with a licensed broker; nothing in this article is customs advice.

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:

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 ↗
Runs in your browser. Nothing uploaded, no account.