The main surcharges and what triggers them
BAF (Bunker Adjustment Factor): passes fuel-price volatility to the shipper, adjusted periodically as bunker costs move. CAF (Currency Adjustment Factor): covers exchange-rate movement on lanes where the rate currency differs from the carrier's costs. GRI (General Rate Increase): a carrier-announced across-the-board rate rise on a trade lane, often monthly, that lifts the base itself. PSS (Peak Season Surcharge): seasonal demand premium, typically in the August–October run-up.
Beyond those: EBS (Emergency Bunker Surcharge) for sudden fuel spikes, PCS (Port Congestion Surcharge) when a port clogs, CIC (Container Imbalance Charge) on lanes where empties must be repositioned, plus regulatory line items (AMS, ISF, VGM fees) and handling surcharges (DG, reefer, overweight, out-of-gauge). Each has its own basis — per container, per B/L, per CBM, or per shipment — and its own validity window.
Why 'the rate' is never just the rate
Surcharges are additive and stack in a defined order: base freight, then origin surcharges (origin THC, doc fee), carrier surcharges (BAF, CAF, PSS, GRI), destination surcharges (destination THC, delivery), handling and regulatory fees. On some lanes there are even surcharges applied on top of surcharges. The result is that two carriers quoting the same base rate can land far apart once the all-in is built — and a quote that omits surcharges isn't cheaper, it's incomplete.
This is the single biggest reason manual quoting leaks margin: each surcharge has its own current value, basis, and expiry, scattered across carrier notices in the inbox. Miss a GRI that took effect, or quote a lapsed BAF, and the desk either loses money or looks unprofessional re-quoting. Assembling the correct all-in every time is exactly the mechanical, error-prone work a rate engine and automated quoting are built to eliminate.

