The Import Margin Nobody Could Find.

Three Currencies. One Unknowable Margin.
The company sourced consumer electronics from manufacturers in China and South Korea, importing through Jebel Ali with secondary routing to EU customers through a Frankfurt forwarder. Purchase invoices arrived in USD. Freight was quoted and paid in AED locally and EUR for the EU leg. Customs duties were in AED. The company sold in AED domestically and EUR internationally. QuickBooks handled this with manual exchange rate entries made by the bookkeeper on the day she processed each transaction — which was usually 3–7 days after the underlying event.
The margin problem wasn't visible on the surface. The company looked profitable. The owner could see that revenue was AED 34M and the P&L showed a positive number. What he couldn't see was whether any given product line was actually contributing to that profit — because the cost of a shipment wasn't fully known until the last freight invoice arrived, sometimes 45 days after the goods had been received and in some cases already sold. Landed cost — the true fully-loaded cost of goods — was calculated by the bookkeeper retrospectively using a spreadsheet, and the calculation was different every time because the exchange rates used were different from the rates at which the transactions had been recorded.
- Transactions in USD, AED, and EUR recorded at inconsistent exchange rates — COGS unreliable. Purchase invoices processed 3–7 days after receipt using spot rates from that processing day — not the transaction date rate. For a company with $8M+ in USD-denominated purchases, a 1% exchange rate discrepancy represents AED 290K of cost misstatement per year.
- Freight, customs, and handling invoices arrived 15–45 days after goods receipt — cost of goods unknown at point of sale. The company was selling inventory before knowing its full landed cost. Pricing decisions, margin analysis, and reorder quantity decisions were being made based on estimated — not actual — landed cost. The estimate was frequently wrong by 8–12%.
- 14 product lines — no product-level margin visible; all costs pooled to a single COGS account. The company's two fastest-growing product lines (wireless audio and smart home) were assumed to be its most profitable because of volume. Odoo analysis showed one was the lowest-margin category in the portfolio. The pricing strategy had been based on a wrong assumption for two years.
- No periodic FX revaluation of USD and EUR balances — balance sheet overstated by AED 680K. USD-denominated vendor payables and EUR-denominated receivables were held at historical transaction rates. No period-end revaluation was being performed. The balance sheet overstated USD payables by AED 420K and understated EUR receivables by AED 260K relative to closing rates.
Landed Cost Automation. Multi-Currency Done Properly.
OPS implemented Odoo Inventory, Purchase, Accounting, and Sales with multi-currency, landed costs, and analytic accounting by product category. The core architecture challenge was the landed cost allocation workflow — ensuring freight, customs, and handling charges were matched and allocated to the correct shipment before margin was calculated.
- Multi-Currency Configuration — 3 Currencies. Odoo configured with USD, AED, and EUR. Daily exchange rates loaded automatically from UAE Central Bank feed. All transactions recorded at the exchange rate of the transaction date — not the processing date. Period-end FX revaluation runs automatically on the last day of each month. First revaluation corrected the AED 680K balance sheet discrepancy identified in the pre-implementation review.
- Landed Cost Allocation — Automated. Each import shipment created as an Odoo receipt with a linked landed cost document. As freight, customs, and handling invoices arrive, they are attached to the originating shipment and allocated to individual product lines by weight, volume, or value — the allocation method selected per cost type. COGS is updated retroactively when the landed cost is confirmed. Margin is not reported until all landed costs are allocated.
- Product Category Analytic Accounting. 14 product lines mapped to Odoo analytic accounts. Every purchase, landed cost allocation, and sales transaction tagged to a product category at point of entry. Management report produces gross margin by product line — live, fully landed, multi-currency-adjusted — with one click.
- Vendor Pricelist Management. USD-denominated vendor pricelists configured in Odoo with automatic AED conversion at transaction-date rates. Purchase orders generated in vendor currency, payables tracked in vendor currency, FX gain/loss calculated at payment date. Vendor payment runs show real-time AED cost including FX impact.
- Accounting Migration & Restatement. 18 months of historical transactions restated to correct exchange rates and landed cost allocations. Product-line gross margin for the prior 6 quarters calculated for the first time. Analysis revealed the wireless audio category had been running at 11% gross margin — 7 points below the portfolio average — for two years. Pricing adjusted immediately.
True Margin Found. AED 1.4M Impact Identified.
The first Odoo monthly close produced a product-line P&L that the owner had never seen before. The wireless audio category's true landed margin was 11% — the owner had believed it was 22% based on the blended estimate. Pricing was adjusted within 30 days. The smart home category, which had been considered low-priority, was actually running at 31% margin with the strongest growth trajectory. Capital was reallocated. The FX revaluation correction improved the balance sheet by AED 680K on day one.
He thought wireless audio was one of his better categories because it was growing fast and the headline revenue number was strong. What he didn't know was that every time he sold a unit, he was making half the margin he thought he was. Odoo showed him the true landed cost for the first time. He adjusted pricing the same week.OPS Engagement Director · Odoo Trading & Distribution Practice


