Port & Containers
The container as the unit of work: registration, operations, haulage, lifecycle, documents, customs, the warehouse bridge and demurrage.
The container is the unit of work
Everything in this module keys off the container: operations, trips, documents and demurrage. Run the flow in the order below every time.
Port & Containers → ContainersPort & Containers → OperationsPort & Containers → DemurragePort & Containers → DocumentsAgree a container size convention
The container size/type field is free text and is matched against demurrage rules. Agree a convention with your team — for example 20GP, 40HC — so the demurrage size tiers apply correctly.
Demurrage rules (configure once)
| Field | Meaning |
|---|---|
| Customer | A specific customer, or blank for the workspace default |
| Free days | Free-time days before demurrage starts (default 5) |
| Daily rate and currency | Charge per day beyond free time |
| Cap amount | Optional maximum charge |
| Applies to | CONTAINER, TRUCK or ALL |
| Container size/type | Optional size tier |
| Effective from | Date the rule takes effect |
The engine picks the most specific active rule as of the breach date: the customer's latest rule wins over the workspace default, and a rule matching the container size tightens it further.
Containers → Demurrage → Rules → New Demurrage RuleThe container cycles
- C1
Register the container
Enter the container number (unique per workspace), size/type, seal number, shipping line, vessel/voyage, consignee and customer. Save → status AT_PORT. The system records the opening AT_PORT event, which starts the demurrage clock.
Port & Containers → Containers → Register Container - C2
Create the operation
Choose the operation type — IMPORT (vessel → port → warehouse → client collection), EXPORT (stuffing and loading), DOMESTIC (local moves) or CROSS_BOUNDARY (cross-border haulage) — plus container, customer, port name, destination, optional warehouse and port charges. Enter a unique operation number → OPEN.
Port & Containers → Operations → New Operation - C3
Link the haulage trips
Link one or more existing trips to the operation — an operation can span multiple legs. Trips carry the driver, vehicle and costs. You can unlink a trip without deleting it.
Operations → open the operation → Link Trip - C4
Advance the container through its lifecycle
The container moves in a fixed order and you cannot skip a step. Each advance appends a container event with date, time, location and notes.
Containers → open the container → Advance Status - C5
Issue the operational documents
Five tabs: Waybills, Gate Passes, Loading Requests, Delivery Orders and Customs. Cargo documents follow DRAFT → ISSUED → SIGNED → DELIVERED, with VOID as the exit. Customs lets you record BOL, CMR, DECLARATION, DUTY_RECEIPT or OTHER with an uploaded file.
Port & Containers → Documents → New… - C6
Bill demurrage when free time is exceeded
The exposure board shows port and detention days, the free-time countdown, the computed charge, the matched rule and the billing state. Use Bill now, or let the daily background scan raise it. A human approves it in the Approval Queue; on approval the invoice is ISSUED and posts Dr 1200 AR / Cr 4100 Demurrage Income.
Port & Containers → Demurrage → Exposure - C7
Sync stock at the gates
When a container crosses a gate event and its open operation has a warehouse, gate-out writes one ISSUE per cargo line and gate-in writes one RECEIPT per cargo line. The bridge is idempotent.
Inventory → Movement Ledger - C8
Link invoices, complete, close
Link the operation's sales and demurrage invoices so Container Profitability includes the revenue. When the cargo is delivered and all charges are billed, Complete → COMPLETED. Void while still OPEN if the operation was raised in error.
Operations → open the operation
Container lifecycle and clock effects
| Current status | Advance → new status | Event recorded | Clock effect |
|---|---|---|---|
| — (on registration) | AT_PORT | AT_PORT | Port free time starts |
| AT_PORT | IN_TRANSIT | GATE_OUT | Port demurrage stops; detention starts |
| IN_TRANSIT | IN_WAREHOUSE | GATE_IN | Warehouse receipt |
| IN_WAREHOUSE | DELIVERED | DELIVERED | — |
| DELIVERED | RETURNED | RETURNED | Detention stops |
Watch
Register early, and enter cargo lines
Register a container the moment it is under your control, because the demurrage clock starts at registration. When an advance asks for cargo lines, enter the variant and quantity for each line so stock is recorded — then confirm the direction on the Movement Ledger.
Documents
| Document | Use it for | Key fields |
|---|---|---|
| Waybill | Port to warehouse movement proof | Waybill number, from, to |
| Gate Pass | Port exit permit tied to a haulage trip | Pass number, vehicle, driver, valid until |
| Loading Request | Export or stuffing preparation | Request number, requested date, cargo summary |
| Delivery Order | Import collection authorisation | Order number, authorised to, release date |
Note
Documents never post
Documents are operational records and post no journals. They prove the movement; the invoice proves the money.
Status reference
Container : AT_PORT → IN_TRANSIT → IN_WAREHOUSE → DELIVERED → RETURNED Operation : OPEN → COMPLETED (or OPEN → VOID) Document : DRAFT → ISSUED → SIGNED → DELIVERED (any → VOID) Demurrage : computed → DRAFT invoice + queue → (approve) → ISSUED → PAYMENT
Reports
| Report | Answers |
|---|---|
| Container Profitability | Invoice revenue − port charges − haulage costs, per container |
| Demurrage Exposure | Open containers by customer with free-time countdown and computed charge |
| Demurrage Invoiced vs Collected | Billed demurrage vs cash actually collected |
Also useful: Trial Balance and General Ledger for 4100 Demurrage Income, and Invoice Aging for outstanding container and demurrage receivables.
Worked example
Customer Acme; warehouse Main; variant CABLE-10MM.
- 01
Register
Container MSCU1234567 (size 20GP, customer Acme) → AT_PORT (clock starts).
- 02
Operation
OP-001: IMPORT, Acme, port Djibouti, destination Warehouse Main, warehouse Main, port charges 300 → OPEN.
- 03
Trip and gate pass
Link haulage trip TRP-009 (driver and vehicle assigned). Issue a Gate Pass for the truck and driver.
- 04
Advance
IN_TRANSIT (GATE_OUT), then IN_WAREHOUSE (GATE_IN) with cargo lines → inventory RECEIPT; then DELIVERED, then RETURNED.
- 05
Documents
Issue the Waybill (signed, delivered), issue the Delivery Order, register the customs Declaration.
- 06
Operation invoice
1,200 → approve → GL Dr 1200 AR / Cr 4000 Revenue + 2300 Tax. Link the invoice to OP-001; receipt 1,200 → GL Dr 1010 Bank / Cr 1200 AR.
- 07
Demurrage
Free time 3 days, held 4 → 1 day over @ USD 40 → Bill now → approve → GL Dr 1200 AR 40 / Cr 4100 Demurrage Income 40; receipt 40.
- 08
Complete
Complete OP-001 → COMPLETED. Check Container Profitability and Demurrage Invoiced vs Collected.
Troubleshooting
| Message or symptom | Fix |
|---|---|
| A container with this number already exists | Search the Containers list first |
| A waybill/gate pass/loading request/delivery order with this number already exists | Use a unique number per type per workspace |
| Invalid status transition: X → Y | Advance one step at a time |
| Container has no further status to advance to | No action needed — the container is RETURNED |
| Container not found | Pick from the dropdown |
| Operation has no linked warehouse | Edit the operation and choose a warehouse, or advance without cargo lines |
| Only draft waybills/gate passes can be issued | Follow DRAFT → ISSUED → SIGNED → DELIVERED |
| Only issued … can be signed | Issue the document first |
| Cannot complete/void an operation in X status | Nothing to do |
| Vehicle not found in your organization / Driver not found | Pick from your own list |
| Missing chart-of-accounts entries for codes: 4100 | Reactivate Demurrage Income in Chart of Accounts |
| No open accounting period found for date… | Create or open a period in Accounting Periods |
Ledger boundary
- Containers, operations and documents post nothing — they are operational records.
- Gate events move stock via the warehouse bridge but post no journal.
- Only an ISSUED demurrage invoice posts: Dr 1200 AR / Cr 4100 Demurrage Income. Operation and customer invoices post through sales.
- Demurrage income (4100) must reconcile to issued demurrage invoices — use Demurrage Invoiced vs Collected.
Cheat sheet
- Order
- Container → Operation → Link trip → Advance (gate in/out) → Documents → Invoice → Demurrage → Collect → Complete
- Container under control
- Containers → Register Container
- Container job
- Operations → New Operation
- Attach haulage
- Operation → Link Trip
- Move cargo status
- Container → Advance Status
- Generate paperwork
- Documents → New <type> → Issue → Sign → Deliver
- Customs file
- Documents → Customs → upload
- Container over free time
- Demurrage → Exposure → Bill now
- Attach revenue
- Operation → Link Invoice
- Finish a job
- Operation → Complete
Rule
Rules that never change
The demurrage clock starts at registration (AT_PORT). Containers move one step at a time: AT_PORT → IN_TRANSIT → IN_WAREHOUSE → DELIVERED → RETURNED. Documents go DRAFT → ISSUED → SIGNED → DELIVERED, with VOID as the exit. Demurrage is billed only through the approval queue, and the scan never double-bills. Gate events sync stock only when the operation has a warehouse.