A shipment reaches port; demurrage, clearance and trucking are paid in a rush; the customer gets the goods. A month later storage fees were never billed, the carrier invoice differs from expectations, and the "profitable" job lost money. Freight companies run thin margins with many costs per job, and the core problem is that the job, the shipment and the invoices live apart.
The three concepts
Job: the container for one service to one customer, with a reference, type and status; every revenue and cost must link to it. Shipment: operational data such as bill of lading, containers, weights, ports, ETAs and clearance stages. Invoices: both directions, sales (service fees and recharged costs) and supplier (carriers, ports, trucking, warehouses, agents); profit is the difference.
Where margin leaks
| Leak | What happens | Impact |
|---|---|---|
| Costs not recharged | Paid but never billed | Direct loss |
| Late supplier invoices | Arrive after customer billing | Profit unknown for months |
| Cash advances | Clearing agent costs settled late | Gaps and confusion |
| Multiple currencies | Buy in one, bill in another | Unmeasured FX |
| No estimate | No job budget | Overruns found after closing |
Building one cycle in an ERP
- The job at the centre: in ERPNext as a project, a custom document or an accounting dimension; no revenue or cost without a job number.
- Estimate first: quote and expected cost per line give an expected margin.
- Record costs as they happen, from bank or agent advances, managed with tools such as Smart Cash.
- A "rechargeable" flag: customer invoices pull all unbilled rechargeable costs automatically.
- Accrue expected supplier costs and match the real invoice later.
- Multi-currency and revaluation per job, customer and supplier.
- Close only when fully billed and supplier invoices matched, showing revenue, cost, margin and variance.
Reports management needs
- Job profitability vs estimate.
- Profit by customer, service and route.
- Paid costs not yet recharged.
- Jobs open too long.
- Unsettled agent advances.
- Expected supplier invoices not received.
Linking with operations
Shipment data can live in the same system as custom documents or in a specialist operational system linked by API; what matters is that both carry the same job number.
Getting started
- Standardise job numbering.
- List cost items and which are rechargeable.
- Make the job number mandatory on every invoice and voucher.
- Estimate every new job.
- Review unbilled costs weekly.
Request a demo and see landed cost in ERPNext.
Frequently asked questions
Does ERPNext support freight and clearance?
It provides the foundation (projects, dimensions, multi-currency) and is tailored to each company's job flow.
How do I avoid missing rechargeable costs?
Link every cost to the job with a recharge flag and review unbilled costs weekly.
Profit before supplier invoices arrive?
Accrue expected costs and match the actual invoice later.
Multiple billing currencies?
Yes, with FX differences and revaluation.





