Skip to content

The money that leaks between price and payment

What a container really costs, line by line

The full cost of a 20-tonne container, from the FOB purchase to the customer’s warehouse: thirteen lines, who pays each one under each Incoterm, and VAT.

11 min
A truck carrying a 20-foot container through the gate of a port terminal on an overcast morning, with wet ground and gantry cranes and container stacks in the background

A 20-tonne container of quinoa bought FOB at origin for €34,000 costs €38,249 delivered to the customer’s warehouse: €1,912 per tonne. The purchase is 89 % of that cost. The other twelve lines add up to €4,249, 10.6 % of the sale, and they are more than twice the margin that is left: a GP of €1,751, or 4.4 %.

That is why the cost of a container is not the price of the goods plus the freight. Below is the full table, line by line and leg by leg; who pays each line under the Incoterm of your purchase and of your sale; how import duty and import VAT are calculated, since they are charged not on your price but on something larger; and how to build your own ranges per route.

The whole container, from origin to the customer’s warehouse

It is the same deal as in the nine costs almost no spreadsheet captures, now complete: a trader based in Spain buys 20 tonnes of quinoa FOB for $37,400 (€34,000 with the euro at 1.10 dollars), imports it and sells it cleared and delivered to a customer’s warehouse in Spain for €40,000. The amounts are a constructed, rounded example, not a quote; the “Basis” column says how to redo each one with your own rates.

LegLineBasisAmount% of sale
OriginFOB purchase (20 t)$37,400 at 1.1034,00085.0
OriginQuality, weight and origin certificatesPer shipment3000.8
SeaOcean freightPer container1,8004.5
SeaCargo insurance110 % × 35,800 × 0.15 %590.1
DestinationTerminal, T-3 port fee and customs clearancePer container3500.9
DestinationCustoms inspection (expected)20 % × €6001200.3
DestinationDemurrage (expected)25 % × €300750.2
DestinationImport duty% of customs value00.0
DestinationHaulage to the customer’s warehousePer container4001.0
MoneyBank chargesPer transaction1500.4
MoneyBank FX spread0.5 % × €34,0001700.4
MoneyWorking-capital financing cost34,000 × 5 % × 90 ÷ 3604251.1
RiskQuality claims1 % of sales4001.0
TotalCost delivered to the customer’s warehouseSum of the thirteen38,24995.6
Sale20 t × €2,00040,000100.0
GPSale − cost1,7514.4
Illustrative example, in euros. Lines that do not occur on every container are taken at their expected cost (frequency × cost). Percentages are rounded to one decimal, which is why the rows do not add up exactly to the total.

The example carries no import duty because it assumes goods and an origin with a zero rate; if yours pays duty, the customs value section shows how it is calculated. Import VAT does not appear either, and not by oversight: it is not a cost of the deal, although it does take cash.

How much per tonne, and what weighs most?

Grouped by leg, the thirteen lines are easier to read. The goods are almost the whole cost; the sea leg is second; and money —bank charges, FX and interest— weighs more than everything paid inside the destination port (€545) and almost as much as the whole destination leg, truck included.

LegAmount€ per tonne% of sale
The purchase34,0001,70085.0
Origin, excluding the purchase300150.8
Sea1,859934.6
Destination945472.4
Money745371.9
Risk400201.0
Total38,2491,91295.6
The same container, grouped by leg. Euros per tonne are rounded to the euro and percentages to one decimal, which is why the columns do not add up exactly.
Cost and margin per tonne
Cost per tonne   = €38,249 ÷ 20 t = €1,912/t
Margin per tonne = 2,000 − 1,912  =    €88/t

Everything except the purchase: €4,249 = €212/t

The practical consequence is in the last line: on every tonne you make €88 and pay €212 in lines that are not the goods. A 10 % error on those lines —€425— eats almost a quarter of the GP. A 1 % error on the purchase price —€340— eats almost a fifth. Both deserve the same care when you quote, and the second usually gets far more.

Who pays each line under each Incoterm?

Every line in the table is paid by someone. Which ones fall to you is decided by two rules: the Incoterm of your purchase and that of your sale. The table summarises, for the six most used for bulk or containerised goods, who bears each block of costs.

Block of costsEXWFOBCFRCIFDAPDDP
Loading at origin and export clearanceBSSSSS
Origin terminal and loading on boardBSSSSS
Ocean freightBBSSSS
Insurance———S, mandatory——
Unloading and destination terminalBBB*B*SS
Import clearance, duty and VATBBBBBS
Haulage to the customer’s warehouseBBBBSS
Simplified, under the Incoterms® 2020 rules. S: seller; B: buyer; —: nobody is obliged (whoever bears the risk insures, if they want to). Under DAP and DDP the named place is assumed to be the customer’s warehouse. * Unless the seller’s contract of carriage includes them.

A trader in the middle has two columns, not one. In the example the goods are bought FOB and sold cleared and delivered to the customer’s warehouse, that is, DDP: the purchase leaves the trader everything from the freight onwards, plus the certificates their customer asks for; the sale takes nothing away, and the money and risk lines do not depend on the Incoterm: all thirteen are theirs. If you sold CIF, the whole destination leg would move to the customer, but insurance would become mandatory for you: at least the price plus 10 %. Unloading at the customer’s warehouse, under DAP and DDP, stays with the buyer unless agreed otherwise.

Duty and VAT are not charged on your price

If you are the importer, duty is not calculated on what you paid the supplier but on the customs value: the price of the goods plus transport and insurance up to the point where they enter the European Union. It is set by Articles 70 and 71 of the Union Customs Code. Import VAT goes one step further: under Articles 85 and 86 of the VAT Directive, its taxable amount is the customs value plus duty and incidental expenses —commission, transport, insurance— up to the first place of destination in the country of import and, if it is already known at import, on to the final destination within the EU.

Customs value and import VAT base
Customs value = Purchase + Freight + Insurance
              = 34,000 + 1,800 + 59 = €35,859

VAT base      = Customs value + Duty + Costs up to destination
              ≈ 35,859 + 0 + 350 + 400 ≈ €36,600

With a zero rate, the example does not feel it. With an illustrative 3 % duty, the difference shows: on the customs value it is €1,076, not the €1,020 you get by applying it to the purchase. How to estimate it: look up your product code and origin in TARIC —trade agreements cut or remove duty for many origins, but only with the right proof of origin— and apply the rate to the customs value, never to the FOB price.

Import VAT is not a cost of the deal if you can deduct it, which is why it is not in the table. But it is paid with clearance and recovered in a later return: at an illustrative 10 % on that €36,600 —your rate depends on the product; for food it is usually 4 % or 10 %—, it is about €3,660 of cash you advance per container. In Spain, if you file VAT monthly, you can opt to defer import VAT —you apply in November for the following year— and settle it in the return itself, without advancing it.

Why no route range will do, and how to build yours

What most people reaching an article like this want is a range: “a container from Callao to Valencia costs between this and that”. We leave it out on purpose. Freight on the same route has multiplied and fallen back several times in a few years, and a range published today is stale within weeks; destination fees depend on the port and the product, and inspection and demurrage on your own record. The only range you can quote with is that of your last containers:

  1. Pull the invoices from the last six to twelve months, by route —port of loading and port of discharge— and by line.
  2. Put them all on the same basis and in the same currency: per container and in euros, at the rate on the date of each invoice.
  3. Keep the median and the most expensive, not the mean: one container with an exceptional surcharge skews the mean and says nothing about the next one. It is explained in how to build route benchmarks to audit your forwarder.
  4. Review the fixed lines every quarter and the freight every time you quote, because it is the one that moves most.

The full list, to copy into your sheet

The thirteen from the table plus the ones the example does not carry but other deals do. Each with its basis, which is what stops a per-container fee being charged as if it were per tonne:

  • Per tonne: the purchase, buying and selling agents’ commissions and weight loss between origin and destination.
  • Per container: freight, destination terminal and port fees, clearance, haulage and, if you buy EXW or FCA, origin charges.
  • Per shipment: certificates, the B/L and the carrier’s documentation fees if billed separately, bank charges and storage if the goods have to wait.
  • As a percentage of value: insurance, import duty, the FX spread and the claims reserve.
  • At expected cost: customs inspection and demurrage, using the frequency in your own record.
  • By days: the working-capital financing cost, using the actual days between payment and collection.

Each line, too, in its own currency: freight and the purchase are often in dollars and everything at destination in euros, and converting by hand inside each cell is the quickest way to a total that does not reconcile.

What Granel does with this, and what it does not

In Granel, a new deal loads a standard template of twelve cost lines in one click: ocean freight, land transport, FOB charges, selling and buying commissions, quality and weight certificate, port fees, insurance, customs inspection, B/L, bank fees and claim reserve. Each one carries its currency and its basis —per container, per tonne or per shipment— and you can rename them or add the ones missing, such as demurrage or financing cost. At settlement, each line keeps the actual amount next to the estimate.

What Granel does not do is know what your route costs: it publishes no market freight or fees, and the amount of each line is entered by you or comes in when you import your spreadsheet with one sheet per deal. Nor does it calculate customs value, duty or import VAT: if you want duty in the GP, it goes in as one more line with the amount you have worked out.

Frequently asked questions

How much does it cost to import a 20-foot container?

It depends on the route, the port, the product and the Incoterm, and freight changes every few months. In this article’s example, everything except the goods adds up to €4,249 per container, €212 per tonne; the figure to quote with is the median of your last containers on that route.

What does the customs value include?

The price paid for the goods plus transport, insurance and loading and handling charges up to the place where they enter the European Union. Duty is applied to that figure, not to the FOB price.

Is import VAT a cost?

Not if you are entitled to deduct it: it is paid with clearance and recovered in the return. But it is cash you advance. In Spain, with monthly VAT filing, deferral avoids advancing it.

Who pays destination port charges on a CIF sale?

The buyer, unless the seller’s contract of carriage includes them. That is why it pays to ask the forwarder to state in writing which destination charges are included in the freight.

Keep reading

Other articles