Charges, margins & profitability
Sell / buy / planned / booked / realized — the five margin views and why they differ.
4 min readLast updated 13 Apr 2026
Margin on a booking shifts as the shipment progresses. CargoSurge tracks three margin snapshots — Planned, Booked, Realized — so you can spot cost leaks and carrier over-billing before they compound.
The three snapshots
- Planned margin — at quote time. Based on the sell and buy rates you entered when pricing the deal.
- Booked margin — at booking confirmation. Updated when the carrier shares their booking confirmation with updated rates (sometimes the carrier's rate shifts between quote and booking; e.g. GRI mid-month).
- Realized margin — after invoicing and vendor bill reconciliation. Sell = the customer invoice total; Buy = the sum of AP bills against the booking.
All three are visible on the Booking detail page's Financial Lifecycle strip.
Charge model — the structure
Every booking's Charges tab has rows with:
- Code — from your master-data charge codes (OF, AF, TR, THC-O, etc.).
- Description — free text. Can override the code's default description.
- Basis — per container / per kg / per W/M / per shipment / per day.
- Quantity — integer or decimal.
- Sell (per unit) — what you charge the customer.
- Buy (per unit) — what the carrier charges you.
- Currency — defaults to the booking's currency.
- Tax rate — per-charge override; defaults to the booking-level tax code.
- Vendor — the AP vendor who'll bill you for the buy side (optional; helps AP matching).
- Remarks — internal notes.
Computed columns:
- Sell total = Qty × Sell.
- Buy total = Qty × Buy.
- GP (Gross Profit) = Sell total − Buy total.
- Margin % = GP / Sell total × 100.
Footer summary
The Charges tab footer shows live totals:
- Total Sell (excl. tax)
- Total Buy (excl. tax)
- Gross Profit
- Margin %
- Below-threshold warning if Margin % drops under the tenant's minimum (Settings → Tenant → Minimum Margin Threshold).
Vendor bills (AP)
For each charge, you can record the actual vendor invoice once received:
- Finance → AP Bills → + New Bill → pick Vendor and link to the Booking.
- Allocate each line of the bill against the corresponding charge row on the booking.
- The allocation updates the booking's "Actual Buy" for that charge.
- Realized margin = Total Sell (from customer invoice) − Total Actual Buy (from allocated AP bills).
Planned vs Realized — reading the delta
Common drift patterns and what they mean:
- Realized buy > Booked buy — carrier invoiced more than the booking confirmation promised. Possible causes: demurrage, detention, GRI mid-cycle, cargo reweighed at origin. Action: dispute with carrier if not agreed, or update the next quote.
- Realized sell < Booked sell — you invoiced the customer less than the booking. Possible causes: customer dispute, negotiated discount, missed line item. Action: if legitimate, accept; if missed, raise a Debit Note.
- Realized sell > Booked sell — extra billable line added post-booking (e.g. customer added a stop mid-trip). Ensure it's invoiced, not forgotten.
- Realized buy < Booked buy — you got a better rate than quoted. Rare; if consistent, renegotiate your rate card.
Currency handling
If the booking is multi-currency (sell in USD, buy in EUR, tenant base in AED):
- Each charge's Sell and Buy can be in different currencies.
- The footer totals convert to the booking's currency for display.
- Reports roll up to the tenant's base currency using the booking's locked FX rate.
- Realized FX gain/loss is booked separately if the actual payment date's rate differs from the booking's locked rate.
Margin reports
- Booking P&L — per-booking table with all three snapshots side-by-side.
- Customer Profitability — margin roll-up by customer over a date range.
- Lane Profitability — by origin-destination pair.
- Carrier Profitability — by carrier (useful for negotiating rate cards).
- Low-Margin Bookings — bookings where Margin % is under threshold or trending down.
All under Forwarding → Reports.
Common pitfalls
Was this article helpful?