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
charged = Σ shipping charged − Σ shipping refunded
shipping margin = 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),
shipping_refunded_base (shipping given back to the customer, summed from
canonical.fact_shipping_refund) and shipping_cost_base (what the carrier
charges you), all EUR. The "Charged" column is net of refunded shipping: a
shipping fee you refunded is not income. 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. Those two test the shipping the order was charged, before any refund:
refunding a shipping fee does not make it a free-shipping order. Orders with no resolved cost contribute charged-side only, so a thin
tariff setup shows optimistic margins until tariffs are complete. There is no
separate pre-aggregated view: the widget reads v_orders so it follows the
dashboard's period, store, status and country filters.
Why it matters
Shipping sits outside product margin but inside every order's real economics. Contribution margin subtracts the carrier cost per order, but does not yet add the shipping the customer paid, so this view is where shipping income and cost meet. It 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.