All metrics

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