You know what you paid the supplier. That is not what the goods cost you
A trading company is a margin business run on a bank facility, and both of those are settled by documents that arrive after the decision they should have informed. The supplier invoice is the smallest part of the cost, the facility limit is the real cash position, and the discount that won the order is not in the report that says the order was profitable. Everything below is that problem in the form it actually takes here.
Recognise any of this
Where the money goes before anyone calls it a problem
If more than two of these are true this week, the cost is already larger than the system you would replace.
- 01
The item cost in the system is the supplier's invoice price, because that was the only number that had arrived when the goods were received.
Freight, duty, insurance, clearing, demurrage and bank charges land over the following six weeks, coded to expense accounts. Every one of them is real and yours, and none of them reach the item — so every margin report on that shipment is wrong, and wrong in the same direction.
- 02
Nobody can say what is on the water.
Goods paid for and shipped are in no warehouse and on no report, so the buyer reorders what is already coming and finance sees cash gone with nothing against it. Where ownership passed is decided by the Incoterm, and the Incoterm is a line in a PDF nobody reads after the order is placed.
- 03
The letter of credit was refused because the limit was full, and the purchase that triggered it was a good one.
An LC consumes the facility at opening, weeks before any goods exist, and the cash margin held against it is company money the treasury report still counts as available. The limit is what a trading company can actually spend, and in most of them it lives in a bank portal and one person's head.
- 04
A customer's order is stopped at the invoice, after the goods have shipped.
A credit check placed at invoicing catches nothing. The exposure was created when the order was confirmed and the stock was allocated, so by the time the gate fires the conversation is about goods already in the customer's warehouse — which is a recovery problem rather than a credit one.
- 05
Everyone quotes off the price list. Almost nobody sells at it.
A line discount, an order discount, freight absorbed, an early-settlement deduction, a rebate accrued to the customer, a credit note next quarter. Each is defensible on its own and each is recorded somewhere else, so the money that actually arrives is not a figure anyone can produce per customer or per item.
- 06
The supplier rebate was earned and never claimed.
Volume tiers, growth targets and marketing support are agreed once a year in an email, tracked in a spreadsheet by whoever negotiated them, and claimed if that person is still here and remembers. It is margin already earned, forfeited for no reason except that it was never written down anywhere the company could see it.
What we build
The system that removes those, specifically
Not a feature list. Each of these exists because one of the problems above cost somebody real money.
Landed cost that reaches the item
Freight, duty, insurance and clearing allocated to the goods that bore them, on the basis each charge is genuinely incurred by — weight, value or volume — and posted against the receipt rather than into an expense account. The shipment stays open until the charges it is still expecting have arrived, so its cost is known while it can still change a price.
Ownership modelled where the Incoterm puts it
Goods in transit as a real position carrying a value and an owner, visible to the buyer who would otherwise reorder them and to the finance lead who would otherwise treat the cash as spent. The transfer point comes from the term on the order rather than from the day somebody got round to the receipt.
The customs file as a document rather than a folder
The declaration, its value base, the duty and the import VAT sit against the shipment they belong to, with the statistical and the accounting view kept apart instead of averaged into one number that satisfies neither. A rate applied to the wrong base is a finding, and a finding costs more to answer than to prevent.
Trade finance on the purchase order
The letter of credit as a record — its terms, its cash margin, its expiry, the trust receipt drawn against it and the maturity ladder behind that. Utilisation moves at opening, the facility refuses the document that would breach it, and issuing commission and interest reach the shipment's landed cost instead of a bank-charges account.
The credit gate at the order, not the invoice
Exposure computed from confirmed orders, delivered-not-invoiced goods and open receivables together, and checked at the moment the commitment is actually made. Who may override it is a role rather than a relationship, and the override is a record with a name on it.
The pocket price, per customer and per item
List price, discounts, absorbed freight, settlement terms and rebates on one waterfall, computed rather than assembled by hand — so the question of which customers are being bought rather than sold to has an answer that does not depend on who built the spreadsheet.
Rebates and stock ageing as ledgers rather than memory
Supplier agreements as terms the system accrues against as the volume is bought, and stock banded by age with the provision that follows from it. Both are money that is already yours or already gone, and neither survives being held by one person who is good at remembering.
Already built
Logix
Logix is our logistics and distribution suite on Odoo 19, and it covers the physical half of this: the warehouse, the customs file with duty and excise assessed on the right base, and master-to-house cost allocation that sums back to the master with no rounding leak. It refuses rather than warns — a customs entry will not release with no payment reference on it. The other half of this page, the trade finance and the pricing, is implementation work on Odoo rather than a module we already ship, and that is worth saying before a quotation instead of during one.
Questions
What people in this industry ask us first
We already have landed cost in Odoo. Is that not enough?
Odoo's landed-cost feature does the allocation, and the allocation is not what fails. What fails is that the charge arrives six weeks after the receipt, on a bank statement, described in the forwarder's own abbreviations, and the person who could recognise it is not the person who codes it. The work is in the shipment knowing which charges it is still owed and staying open until they land.
Can Odoo handle letters of credit?
Not as a record, out of the box. There is no facility, no utilisation, no cash margin and no trust-receipt maturity in standard Odoo — an LC is a PDF and a bank portal, which is where it already is. Making it a record against the purchase order is the single change that moves the most in a trading company, and it is build work. We would rather say that here than have you find it in week three.
Our margin looks fine in the reports.
It usually does, and that is the complaint rather than the reassurance. A report built on the supplier invoice price and the list price will show margin on a shipment whose freight went to expense and on an order won with a discount plus absorbed freight plus a rebate. Both errors point the same way. The test is whether you can produce, per customer and per item, the money that actually arrived.
We are a distributor, not an importer.
Then half of this page is not yours and you should not pay for it. The import side — landed cost, customs, letters of credit — is the expensive half to build. If you buy landed in the UAE and sell on, what is left is the pricing, the credit gate and the rebate ledger, which is a much smaller piece of work and we would scope it as one.
How we deliver it
Written for this industry
- ERP for Trading and Distribution: The Margin Is in the Shipment, Not the Invoice
- The Margin Was Calculated on the Supplier's Price. The Cost Arrived Six Weeks Later
- The Bank Is Holding Money Against a Shipment Your System Has Never Heard Of
- The Credit Limit Is Checked After the Truck Has Left
- Everybody Has the Price List. Almost Nobody Sells at It
- Nobody Decides to Buy Dead Stock. It Is Decided One Reorder at a Time
Other industries
- Joinery, steel and fabrication
- Plastics — injection and blow moulding
- Contracting and construction
- Cable and wire manufacturing
- Food manufacturing and retail
- Textiles, furnishing and interiors
- Medical devices and regulated distribution
- Real estate and leasing
- Professional and business services
- Healthcare and clinics
- Logistics, warehousing and freight
Trading and distribution
Start with a diagnosis, not a demo
Two weeks. We walk your floor and your books, and you get the list of where money is leaving the business with a cost against each item. The list is yours whether or not you work with us afterwards.
Monday to Friday, 9:00 AM – 6:00 PM (GST)
Prefer we call you?
Leave your WhatsApp number and we will reach out.
