How to calculate landed cost (the goal)
"How to calculate landed cost" is really two problems:
- Getting the total, warehouse-ready cost for a shipment.
- Allocating that shipment cost down to SKU-level unit costs so you can price correctly and measure margin.
If you solve only the first problem, your margins will still be wrong on multi-SKU shipments.
The approach below is designed for repeat importers: stable buckets, consistent allocation, and reconciliation against reality.
Step 1: Define what "landed" means in your company
Pick a single definition and apply it everywhere. The most common and most useful is:
Landed cost = total cost to make the goods warehouse-ready.
That means you stop counting when the goods are:
- cleared (or released), and
- delivered to your warehouse (or your selling location).
If you change the definition between teams, your reporting will never reconcile.
Step 2: Set your landed cost buckets (and never rename them casually)
Use cost buckets that match how charges appear in the real world.
| Bucket | What goes in it | Common misses |
|---|---|---|
| Product cost | Supplier invoice value (including discounts) | treating rebates inconsistently |
| Freight | base freight + documented carrier surcharges | peak/fuel surcharges |
| Insurance | cargo insurance (if you pay it) | assuming it's included |
| Origin charges | pickup, export docs, origin THC | misc docs fees |
| Destination charges | destination THC, port handling, storage | small line items that add up |
| Duties/taxes | duty, VAT/GST, other taxes/fees | using the wrong HS or basis |
| Clearance & broker | customs broker, admin fees | rework fees from mismatches |
| Inland delivery | port/airport to warehouse | waiting time / second attempts |
| Finance/FX (optional) | bank fees, FX costs if treated as COGS | value date inconsistency |
| Exceptions | demurrage/detention, penalties | not tagging to shipment |
Practical rule: every new cost type must map to exactly one bucket.
Step 3: Lock Incoterms before you start calculating
Incoterms determine which costs are on you vs on the other party, and where risk transfers.
Use an authoritative reference when training the team. The International Chamber of Commerce maintains the Incoterms rules (source: https://iccwbo.org/business-solutions/incoterms-rules/incoterms-2020/).
Two common failure modes:
- The quote is based on one Incoterm, but the invoice/booking uses another.
- The Incoterm is stated without the named place (so responsibilities are ambiguous).
If your Incoterms assumption is wrong, your landed cost will be wrong even if every number is correct.
Step 4: Calculate duties/taxes using defensible product classification
Landed cost depends on duties and taxes, which depend on classification.
The Harmonized System (HS) is the global product nomenclature used by customs administrations as a basis for tariffs and trade statistics (source: https://wcoomd.org/en/topics/nomenclature/overview/what-is-the-harmonized-system.aspx).
Operational controls that prevent expensive mistakes:
- Maintain a SKU-to-HS mapping with an owner.
- Keep invoice descriptions consistent with the SKU master.
- If the HS changes, treat it like a pricing change: approve and roll out.
Important: duties/taxes can be assessed on a basis that is not identical to your supplier invoice value. When in doubt, rely on your broker and official customs guidance for the exact basis in your jurisdiction.
Step 5: Build the shipment landed cost (shipment-level total)
This is the part most teams do correctly.
Start with a simple ledger:
| Line item | Bucket | Amount | Currency | Notes |
|---|---|---|---|---|
| Supplier invoice | Product cost | invoice # | ||
| Freight invoice | Freight | booking # | ||
| Destination THC | Destination charges | port invoice | ||
| Customs duty | Duties/taxes | declaration ref |
Tie each line to a shipment reference so you can audit later.
Step 6: Choose an allocation method (SKU-level landed cost)
Allocation is where most landed cost systems fail.
Pick one default and document exceptions.
Common allocation bases
| Allocation basis | Best for | Why |
|---|---|---|
| By value | high-value, low-weight items | reflects value-at-risk |
| By weight | heavy goods | freight often follows weight |
| By volume | bulky goods | container space drives cost |
| By units | uniform items | simplest when SKUs are identical |
Example allocation (illustrative)
Assume a shipment has two SKUs:
- SKU A: 900 kg
- SKU B: 100 kg
If you allocate freight by weight, SKU A takes 90% and SKU B takes 10% of the freight bucket.
Do not switch between weight and value allocation from one shipment to the next without recording the change. Otherwise your margin reporting becomes noise.
Step 7: Normalize FX and value dates
If you buy, pay freight, and sell in different currencies, FX can move your margin more than duty.
Make FX explicit:
- store the FX rate used for each conversion,
- store the value date (or settlement date) that rate corresponds to,
- do not "average" rates after the fact.
If you want clean comparisons across months, this is non-negotiable.
Step 8: Reconcile to reality (the check that builds trust)
At shipment close, your model should answer two questions:
- Did we capture every cost that hit this shipment?
- Does the allocated SKU landed cost reconcile to the shipment-level total?
Use a simple variance check:
- Expected shipment landed cost vs actual ledger total
- Freight bucket variance
- Duties/taxes variance
- Destination charges variance
Then ask: was it a missing charge, a timing issue, an FX issue, or an allocation issue?
Common mistakes (and how to prevent them)
-
Leaving out destination charges Fix: create a checklist of destination invoices your team always sees.
-
Treating demurrage/detention as "misc" Fix: tag it to shipment and record the reason (docs hold, appointment, inspection).
-
Changing allocation rules without recording it Fix: lock an allocation policy and treat changes as controlled changes.
-
Invoice/packing list mismatches cause clearance rework Fix: generate documents from one shipment record and add a pre-filing checklist.
-
FX handled inconsistently Fix: store rate + value date per conversion.
How Tijara helps
Tijara keeps costs, documents, and shipment milestones connected to the same deal so you can:
- capture costs as they occur,
- allocate consistently,
- reconcile landed cost to margin without spreadsheet drift.
Related corridor examples: