Landed cost is the total cost of getting a product from your supplier to your warehouse, ready to sell: the purchase price plus freight, insurance, customs duty, any tax you cannot reclaim, customs brokerage, handling, and payment or currency fees. Divide the total for a shipment by the units in it and you have the landed cost per unit, which is the cost price your margin should be calculated on.
The formula is simple: landed cost = product cost + freight + insurance + duty + non-reclaimable taxes + brokerage + handling + payment and currency costs. The hard part is the rules behind duty and import VAT, and splitting shared costs over several products. Below is each component, how the EU calculates customs value and import VAT, a worked example for a carton of T-shirts, three ways to allocate costs per unit, and the EUR 3 duty on low-value parcels that applies from 1 July 2026.
The eight components of landed cost
- Product cost: the supplier invoice, in the supplier's currency, on the agreed Incoterm (EXW, FOB, CIF, DAP). The Incoterm decides which of the costs below you pay separately.
- Freight: sea, air, rail or road transport to the EU border, plus onward transport to your warehouse.
- Insurance: cargo insurance for the main leg, often a small percentage of the goods value.
- Customs duty: a percentage of the customs value (or a fixed amount per unit for some goods), set by the product's tariff code and country of origin.
- Import VAT: charged on goods entering the EU. A VAT-registered business can usually deduct it, so it is a cash-flow cost rather than a landed cost. If you cannot deduct it, it belongs in landed cost.
- Brokerage and clearance: the customs broker's or forwarder's fee for filing the import declaration.
- Handling: terminal handling at the destination port, unloading, storage while waiting for clearance, palletizing.
- Payment and currency costs: bank transfer fees and the margin on converting euros to dollars or yuan.
Teams often leave out the last three because they arrive on separate invoices weeks later. On a small shipment they can add up to more than the duty.
How the EU sets customs value and the import VAT base
Duty is a percentage of the customs value, and the EU defines it in the Union Customs Code. The starting point is the transaction value: the price actually paid or payable for the goods (Article 70). Article 71 adds the cost of transport and insurance, plus loading and handling charges tied to that transport, up to the place where the goods enter the EU customs territory. Article 72 keeps transport after entry, and import duties themselves, out of the customs value.
In practice that makes the EU customs value a CIF value: cost, insurance and freight to the EU border. If you buy FOB Shanghai, you add the sea freight and insurance to Rotterdam. If you buy DAP Duisburg, the supplier's price already includes transport past the border, and the part after entry comes off.
Import VAT is charged on a wider base. Under Articles 85 and 86 of the VAT Directive, the taxable amount is the customs value plus the duties due on import plus incidental expenses such as transport and insurance up to the first place of destination in the importing country. So the inland trucking from the port to your warehouse is outside the customs value but inside the VAT base. Article 168(e) gives a taxable person the right to deduct VAT paid on importation when the goods are used for taxed sales.
Worked example: 200 cotton T-shirts from China into Germany
A shop imports one carton of 200 cotton T-shirts, bought FOB Shanghai at EUR 3.20 each, shipped by sea to Rotterdam and trucked to a warehouse in Germany. The T-shirts classify under CN code 6109 10 00 (TARIC 6109 10 00 10), in chapter 61, and the TARIC database lists a third-country duty of 12% for them. Germany's standard VAT rate is 19% (see the VAT calculator). Freight, insurance and fees are example figures.
Landed cost of 200 T-shirts, FOB Shanghai to a German warehouse
| Product cost | 200 x 3.20 | 640.00 |
|---|---|---|
| Sea freight to Rotterdam | Carton share of a consolidated shipment | 180.00 |
| Cargo insurance | Main leg | 6.00 |
| Customs value (CIF) | 640 + 180 + 6 | 826.00 |
| Customs duty | 12% of 826.00 | 99.12 |
| Terminal handling, Rotterdam | After entry, outside customs value | 40.00 |
| Trucking to the warehouse | After entry, outside customs value | 85.00 |
| Customs brokerage | Import declaration | 65.00 |
| Currency conversion | 2% of 640.00 | 12.80 |
| Landed cost, VAT deducted | Sum of the lines above, excluding the CIF subtotal | 1,127.92 |
| Per T-shirt | 1,127.92 / 200 | 5.64 |
| Import VAT base | 826.00 + 99.12 + 40.00 + 85.00 | 1,050.12 |
| Import VAT | 19% of 1,050.12, paid and then deducted | 199.52 |
| Landed cost if VAT is not deductible | 1,127.92 + 199.52 | 1,327.44 (6.64 per unit) |
The T-shirt that cost EUR 3.20 on the invoice costs EUR 5.64 on the shelf, 76% more. If the shop prices with a 2.5x markup on the invoice price, it sells at EUR 8.00 before VAT and thinks it earns 60%. On the landed cost, the margin is 29.5%. The markup calculator shows how far apart those two numbers drift.
The same carton with a different country of origin
Now buy identical T-shirts from Bangladesh. TARIC shows a 0% tariff preference for 6109 10 00 10 under the EU's Everything But Arms arrangement, provided the import is backed by valid proof of origin. Duty drops from EUR 99.12 to zero and the landed cost from EUR 5.64 to EUR 5.14 per T-shirt, before any difference in freight. Country of origin is not a label field; it is a price input.
Where the EUR 5.64 per T-shirt goes
Illustrative example| Category | EUR per T-shirt |
|---|---|
| Product cost | €3.20 |
| Sea freight and insurance | €0.93 |
| Customs duty | €0.50 |
| Handling and trucking | €0.62 |
| Brokerage | €0.33 |
| Currency conversion | €0.06 |
Allocating shared costs: by value, by weight or by volume
One carton of one product is easy. Real shipments mix SKUs, and freight, insurance, handling and brokerage arrive as one invoice for the whole consignment. You need a rule to split them. Duty is the exception: it is calculated per tariff line on each product's own customs value, so allocate the freight and insurance first, then compute duty per product.
Take a consignment with three products and EUR 240 of freight to split: 200 T-shirts (EUR 640 of goods, 36 kg, 0.16 m3), 60 hoodies (EUR 570, 36 kg, 0.16 m3) and 100 caps (EUR 210, 10 kg, but a bulky 0.12 m3 carton).
EUR 240 of freight per unit, three allocation methods
| T-shirt | 200 | 0.54 | 0.53 | 0.44 |
|---|---|---|---|---|
| Hoodie | 60 | 1.61 | 1.76 | 1.45 |
| Cap | 100 | 0.35 | 0.29 | 0.65 |
- By value suits insurance, currency costs and brokerage, which scale with what the goods are worth.
- By weight suits air freight and parcel shipments, which are priced per kilogram (or volumetric weight).
- By volume suits sea freight in a shared container, which is priced per cubic meter. Light, bulky products such as caps, lampshades or pillows are the ones a value or weight split undercharges.
The split also feeds the duty calculation, because each product's customs value includes its share of the freight to the EU border. With a volume split, the caps carry EUR 65.45 of the EUR 240; with a value split, only EUR 35.49. Their customs value is EUR 210 plus that share (plus their part of the insurance), multiplied by the duty rate for the caps' own tariff code, which is not the T-shirt rate. Ask your forwarder or broker how they apportion freight on the declaration, and use the same split in your own calculation so the duty you budget matches the duty you pay.
Pick one method per cost type, write it down and keep it. Switching methods between shipments makes landed cost jump for reasons that have nothing to do with what you paid.
The EUR 3 customs duty on low-value parcels from 1 July 2026
Until 30 June 2026, goods in consignments worth EUR 150 or less entered the EU free of customs duty, except alcohol, perfume and tobacco (import VAT has applied to them since 2021). Council Regulation (EU) 2026/382 removed that relief and, from 1 July 2026 until 1 July 2028, sets a flat customs duty of EUR 3 per item in consignments with an intrinsic value of up to EUR 150. TARIC records the measure in its own validity periods, which can end earlier than 2028; the dates that bind are the regulation's. Article 2 of the regulation names imports under the Import One-Stop Shop (IOSS) and postal consignments. The Commission's Access2Markets announcement describes it as covering B2C distance sales up to EUR 150 whatever the VAT route or declaration type.
Item means a declaration line, not a physical unit. The Commission's example: three goods that share an 8-digit CN code but have different 10-digit TARIC codes can go on one line in an H6 or H7 declaration (EUR 3), but need three lines in a standard H1 declaration (EUR 9). On top of the duty comes a Union handling fee of EUR 2 per item, set in a Commission delegated act (C(2026) 6694). Unlike the EUR 3 duty, it covers distance sales of any value, and the Commission's customs reform page says it will apply from 1 November 2026.
For a shop that ships parcels to EU consumers from a warehouse outside the EU, this turns duty from zero into a cost per order line. In duty, a parcel with five identical T-shirts pays EUR 3, while a parcel with a T-shirt, a cap and a hoodie can pay EUR 9. Include it in the landed cost per order, and keep tariff codes accurate so identical products group onto one line.
Product data a landed cost calculation reads
Most landed cost errors are data errors. The calculation needs the same handful of fields for every product, and a missing or wrong value changes the result:
- HS or CN code: decides the duty rate and how products group on a declaration. Use the HS code finder for a first suggestion and have your customs broker confirm it.
- Country of origin: decides whether a preference such as EBA applies. Origin is where the goods were made, not where they shipped from.
- Supplier price, currency and Incoterm: together they tell you which freight and insurance to add to reach the CIF value.
- Weight and dimensions: per unit and per carton, in one consistent unit, for weight and volume allocation and for carrier quotes. The guide to units of measure in product data covers base, sales and order units.
- Units per carton: to turn carton-level freight into a per-unit figure.
- Cost price: the result of the calculation, stored per product so margins and prices use it.
Six landed cost errors that make margins look better than they are
- Using the invoice price as cost price. The example above shows a 2.5x markup on invoice turning into a 29.5% margin on landed cost; markup vs margin has the conversion.
- Charging duty on the FOB value. EU duty is due on the CIF value, so leaving out freight and insurance understates duty and invites a correction from customs.
- Counting deductible import VAT as cost, or forgetting non-deductible VAT. Both distort the margin, in opposite directions.
- Spreading sea freight by value. Bulky, cheap products get too little freight and look more profitable than they are.
- Keeping the old cost price after a new shipment. Freight rates and exchange rates move; recalculate per shipment, or at least per quarter.
- Guessing the origin. A product assumed to qualify for a 0% preference without proof of origin pays the full rate when customs checks.
Feeding landed cost back into prices and margins
WISEPIM does not calculate landed cost or duty, and it does not file customs declarations. It stores the product data the calculation reads (HS code, country of origin, weight, dimensions and cost price) next to the rest of the product record, so whoever runs the calculation, in a spreadsheet, an ERP or a forwarder's tool, works from one source. Write the landed cost per unit back into the cost price field and the product list's margin column shows the real margin.
From there, pricing rules per channel can build a channel's export price from that cost: cost plus a markup, cost plus a target margin, charm rounding, and a minimum margin safeguard that stops a price from going below the floor you set. When a new shipment raises the landed cost, you update one field and every channel price follows on the next export.

