What is shipping margin?
Shipping margin is whether delivery pays for itself: what customers were charged for shipping minus what the carriers charged you, broken down per carrier. Most stores treat shipping as a pass-through and are wrong in one direction or the other; this widget says which, and by how much per carrier.
Formula
shipping margin = Σ shipping charged − Σ carrier cost (per carrier)
Worked example
Over a month, Carrier A: €9,200 charged to customers, €7,800 of carrier cost — +€1,400. Carrier B: €2,100 charged, €4,900 cost — −€2,800, and the free-shipping columns show why: 480 of its orders shipped free above the cart threshold, costing €3,300 of unrecovered carriage. The threshold is a marketing decision; this widget prices it.
How Saldo Metrics computes it
Each order on v_orders carries shipping_charged_base (what the customer paid)
and shipping_cost_base (what the carrier charges you), both EUR. The cost side
is resolved from your configured carrier tariffs — tiered by zone, weight and
order value — by a single resolver that writes the per-order cost, so every
surface reads one consistent figure. The widget groups the selected period per
carrier: orders, charged, cost, margin, plus two free-shipping columns — how many
orders shipped free despite a real carrier cost, and what that unrecovered cost
totalled. Orders with no resolved cost contribute charged-side only, so a thin
tariff setup shows optimistic margins until tariffs are complete;
v_shipping_margin carries the same lifetime figures.
Why it matters
Shipping sits outside product margin but inside every order's real economics — contribution margin already nets it per order, and this view isolates the policy levers: carrier mix, rate-card negotiation, and the free-shipping threshold. A negative shipping margin is not automatically wrong (free shipping converts), but it should be a priced decision, not a surprise.
Common mistakes
- Judging carriers on margin alone. A carrier can be "unprofitable" here because it serves the heavy, remote or free-shipping orders; mix differs before efficiency does.
- Reading incomplete tariffs as good margin. Unresolved carrier costs make margin look better than it is; complete the tariff tables before trusting the split.
- Averaging away the free-shipping orders. The blended margin can look fine while the free-shipping subtotal quietly funds a fifth of your carriage; the dedicated columns exist to stop that.
Where you see this in the app
The Shipping Margin dashboard widget, one row per carrier.
- Formula
- shipping charged to customers − carrier cost, per carrier
- How Saldo Metrics computes it
- canonical.v_orders, canonical.v_shipping_margin
Last reviewed 2026-08-29