A common mistake in ERP implementations is treating import duties and freight charges as generic expenses on the P&L. While this is mathematically correct for net profit, it completely destroys your gross margin analysis per product. If you import a specialized component for $10 and pay $4 in shipping and duties, the cost of that component in your warehouse should be $14, not $10.
Odoo's Landed Costs module automates this calculation. This guide works in tandem with the HS Code & Customs Management and Odoo Accounting Setup guides.
Without Landed Costs, your inventory is undervalued on the balance sheet, and your product margins are artificially inflated.
Why Landed Costs Matter
Consider importing a container of fabric. The supplier invoice is $50,000. When it arrives in Chittagong port, you pay $3,000 for ocean freight, $500 for insurance, $1,500 for CNF agent fees, and $15,000 in import duties. Your total cash outlay is $70,000.
If you don't use landed costs:
- Your inventory is valued at $50,000.
- You record a $20,000 expense immediately.
- If you sell the fabric for $60,000, your system says you made a $10,000 gross profit. In reality, you lost $10,000.
Configuration in Odoo
To use Landed Costs, you must be using Automated Inventory Valuation (AVCO or FIFO). Standard Price does not support dynamic landed costs.
Landed Cost: True
Cost Splitting Methods
Odoo can distribute the extra costs across the items in the container using different methods:
- Equal: The cost is divided equally among all product lines. Good for admin fees.
- By Quantity: Divided by the number of items. Good for items of similar size/weight.
- By Current Cost: Expensive items absorb more of the freight cost. Often the most accurate for insurance and duty (which is usually a % of value).
- By Weight: Heavy items absorb more freight cost. Requires weight data to be accurately maintained on product cards.
- By Volume: Bulky items absorb more freight cost.
Duty Drawback Tracking
For Bangladesh exporters, Duty Drawback is a critical financial incentive. When you export finished goods made from imported raw materials, you can claim back the import duties paid.
To track this accurately, you must use FIFO costing combined with Landed Costs. FIFO ensures that the specific cost of the imported batch (including its specific landed duties) is tracked as it moves through production and is finally exported. By running a valuation report on the exported lots, you can precisely document the duty value embedded in that shipment for your drawback claim.
Landed costs require discipline. The warehouse team receives the goods, but the finance team receives the freight and duty bills weeks later. You must establish a workflow where finance links these delayed bills back to the original receipts. Want to size the duty, freight, and implementation budget before you commit? Try the Odoo cost estimator. Need help designing your import accounting workflows? Get in touch →
Frequently asked questions
What are Landed Costs in Odoo?
Landed Costs refer to the total price of a product once it has arrived at the buyer's door. This includes the original price of the product, all transportation fees, customs, duties, taxes, insurance, currency conversion, and any other costs.
How does Odoo calculate Landed Costs?
Odoo takes the additional costs (like a freight invoice) and splits them across the products in an incoming shipment based on rules you define: by quantity, by volume, by weight, by cost, or equally.
Why must I use FIFO or AVCO for landed costs in Odoo?
Landed costs adjust the valuation of stock that is already in your inventory, so Odoo needs a costing method that tracks valuation dynamically. FIFO and AVCO (Average Cost) both do this — they recalculate inventory value as moves and adjustments occur. Standard Price holds a fixed cost per product and cannot absorb a per-shipment freight or duty adjustment, so the Landed Costs feature is unavailable on Standard Price products. For Bangladesh importers claiming duty drawback, FIFO is usually the better choice because it preserves the specific cost of each imported batch.
When should I apply a landed cost to a receipt in Odoo?
Apply it as soon as you have the actual freight, insurance, CNF, and duty figures — ideally when the vendor bill arrives. If you wait too long, the imported stock may already be consumed or sold, and while Odoo can still post the adjustment, the margin reports for the periods in between will have been wrong. The practical rule: do not treat a receipt as fully closed until its landed-cost record is posted.