Skip to main content
Card class: HeroCategory: Shipping & Courier

At a glance

Average label cost per shipment, pooled across every carrier ShippyPro orchestrates. Because rate-shopping picks the carrier dynamically, the shipping mix drives this number as much as carrier-rate movements; a sudden swing means the rate-shop ruleset is producing different winners, not necessarily that any single carrier raised prices.
What it countsSUM(label_cost) / COUNT(shipments) for shipments dispatched in the window. Cost includes base rate + fuel surcharge + service surcharges (signature, insurance, residential, oversize). Excludes customs duty (paid by recipient or merchant separately) and recovery fees on RTO.
API endpointGET /shipments joined with GET /labels for cost data. Reads label_cost, currency, carrier, service_level, weight, dimensions, from_country, to_country per shipment.
CurrencyWorkspace base currency (most ShippyPro accounts default to EUR; UK operators use GBP). Multi-currency carrier invoices (e.g. UK→EU on USD-quoting carriers) are FX-converted at label-creation time using the workspace’s daily rate.
Service level scopeAll services and all carriers pooled. Filter by carrier in Cost by Zone and by service in Shipments by Service.
Returns / RTOOutbound labels only. Easy Return labels, RTO charges and recovery fees are separated; they appear in Returned to Sender.
Mix-vs-rate sensitivityThe number is dominated by mix for most accounts. A swing from 60% Poste Italiane / 40% BRT to 40% Poste / 60% BRT lifts avg cost by 15 to 25 percent on Italian domestic flow without any carrier raising rates.
OutliersHigh-weight or oversize shipments distort the average; trimmed-mean variant lives in Cost Per Shipment Trend. The headline is the unweighted arithmetic mean.
Time window30D vsP (rolling 30 days, period-over-period comparison vs prior 30 days)
Alert trigger+10% vsP. Tripped when 30D avg exceeds the prior 30D avg by more than 10 percent. Sensitive to mix swings; the alert fires before any carrier raises rates.
Rolesowner, finance, operations

Calculation

Calculated automatically from your ShippyPro data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

The Italian DTC fashion brand again. Reading taken at 09:00 CET on 12 Mar 26 for the trailing 30 days vs the prior 30 days.
PeriodShipmentsTotal label spendAvg label costCarrier mix
Current 30D (10 Feb to 11 Mar)16,400EUR 89,200EUR 5.44BRT 38%, Poste 22%, GLS 18%, DHL Express 12%, others 10%
Prior 30D (11 Jan to 9 Feb)14,800EUR 73,600EUR 4.97BRT 31%, Poste 35%, GLS 16%, DHL Express 11%, others 7%
Change+10.8%+21.2%+9.5%Poste down 13pp, BRT up 7pp
The card reads EUR 5.44; the alert at +10% vsP is just under at +9.5%. Five things to notice:
  1. The cost-per-shipment rose because the rate-shop ruleset shifted volume off Poste Italiane. This was a deliberate operations decision in early February to reduce late-shipment count (Poste 15% late vs BRT 4%). The cost lifted EUR 0.47 per parcel but the late count dropped; the trade is intentional. The card flags the cost; the operator must read it next to Late Shipments.
  2. The alert is a near-miss, not a near-event. At +9.5%, no alert fires; at +10.5% it would. This is the right time to check whether the next BRT contract negotiation is upcoming, because if Poste rates fall in April and the rate-shop swings back, this card resets to ~EUR 4.95 with no operator action.
  3. Total spend grew 21.2% on 10.8% volume. Half the spend growth is volume, half is mix-driven cost-per-shipment. Finance forecasting against this number must split the two; otherwise the budget conversation gets confused.
  4. Carrier rate inflation is invisible here. No carrier raised prices in this window. If BRT had pushed rates up 5% on 1 Feb, this card would still show 9.5% rise but the cause attribution would be different. Always ask “did any carrier raise rates” before reading mix conclusions.
  5. DHL Express stays at 12%, dragging the average up. DHL Express averages EUR 14 per parcel vs BRT EUR 4.50; on 12 percent volume share they contribute disproportionately to the mean. If DHL Express volume rises during peak (rate-shop picks them for guaranteed speed), this card spikes regardless of any other change.

Sibling cards merchants should reference together

Avg cost is one number; the mix and rate movements behind it are several. Pair with these to attribute change:
CardWhy pair it with Avg Shipping CostWhat the combination tells you
Cost Per Shipment TrendThe 90-day shape of this number.Sloping rise = either rate-card escalation or sustained mix shift. Spike-and-recover = a single peak event (Q4 surcharge week, DHL fuel-surcharge update).
Cost by ZoneSplits cost across origin-destination zones.Identifies which lane is dragging. Cross-border lanes typically average 3 to 5x domestic.
Shipments by ServiceThe mix-by-service pie that drives the cost average.Mix change visible here typically explains the cost change in this card 1:1.
High-Cost Shipment OutliersSurfaces the >2x avg shipments dragging the mean.If outlier count rises, trim-mean and median diverge from the mean; consider segmenting by weight tier.
Late ShipmentsTrade-off counterpart.Operators frequently buy down late-count by raising avg cost (rate-shop more to faster carriers). The trade is rational; both cards must be read together.
Cross-connector: shopify.aovMargin sensitivity.Avg shipping cost as percentage of AOV is the operative finance ratio. >12 percent of AOV is structurally tough to absorb without raising shipping fees in checkout.
Cross-connector: shopify.refund_rateDownstream impact.Higher avg cost without higher checkout-shipping fees compresses margin; refunds on top further compress.

Reconciling against the vendor’s own dashboard

Where to look in ShippyPro’s own dashboard: ShippyPro DashboardAnalytics → Spend Analysis → Average Cost (Italian: “Costo Medio Spedizione”). The portal exposes the same number plus the carrier breakdown. The closest like-for-like is Last 30 Days, All Carriers, All Services, Workspace Currency. Why our number may legitimately differ from ShippyPro’s portal:
ReasonDirectionWhy
Carrier-invoice reconciliationOurs can drift slightlyThe card reads label_cost from the rate quote at label creation. Carrier monthly invoices sometimes adjust for actual weight (re-weighed at the depot) or fuel-surcharge corrections. ShippyPro’s portal shows quoted cost; the carrier invoice is final truth. Variance is typically <1.5%.
FX conversion timingEither, smallMulti-currency labels FX-convert at label-creation date. Long windows with euro-vs-other-currency volatility produce small drift if a label is recosted later.
Surcharge attributionOurs sometimes lowerSome carrier surcharges (residential, signature) post separately to the invoice and are not always passed back through ShippyPro’s API. The card can understate by 2 to 4 percent for surcharge-heavy mixes.
Customs duty exclusionBoth excludeCustoms duty is paid separately by recipient or merchant; neither the card nor the portal includes it. Net true landed cost is higher for cross-border.
Returns labelsBoth exclude in this cardEasy Return labels are tracked separately.
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
shopify.aovMargin denominator. Avg shipping cost / AOV ratio is the operative pricing question.AOV moves with discount campaigns; the ratio shifts even if shipping cost is flat.
Stripe / payment-processor net revenueDownstream truth on revenue side. Combined with this card gives shipping-as-share-of-revenue.FX, refunds, payment-processor fees all sit between AOV and net revenue.
Direct carrier invoicesSource-of-truth on actual cost.Carrier monthly invoice is final; expect 0.5 to 2 percent reconciliation gap.

Known limitations / merchant FAQs

Why does my avg cost change when no carrier raised rates? Mix shift. ShippyPro’s rate-shop ruleset picks the cheapest qualifying carrier per shipment given weight, dimensions, destination, and your rules. Volume mix moves week-on-week as customer geography and basket composition shift. Read Shipments by Service to see the mix; the cost change here typically maps 1:1 to mix change. My carrier raised rates and the card is flat. Why? Three usual reasons. (1) The rate change applied to a service tier (e.g. DHL Express overnight) that you do not use heavily. (2) Your rate-shop ruleset auto-shifted to a cheaper carrier on the affected shipments. (3) The rate change posts to the next monthly invoice but ShippyPro’s quoted rate updated immediately, so the card is forward-looking and matches the next invoice cycle. How is FX handled for multi-currency carriers? Cost is FX-converted at label creation using the workspace’s daily reference rate (typically ECB rates for euro workspaces, BoE for GBP). Long windows with material currency moves produce small differences vs the carrier’s monthly invoice (carriers sometimes use month-end rates). Variance is typically <1%. Why is my avg cost rising during peak / Q4 even with the same mix? Carrier peak surcharges. Most major carriers (DHL Express, GLS, BRT) impose peak-period surcharges 1 to 5 EUR per parcel from mid-November through mid-January. The rate-shop ruleset still picks the same carriers; the per-label cost is structurally higher. Plan budgets accordingly; the card is doing its job. Should I switch to a single-carrier setup if avg cost is volatile? Trade-off question. ShippyPro’s value-add is the rate-shop dynamic; the volatility is the price you pay for the cost-floor optimisation. Single-carrier accounts (e.g. all-DHL, all-Sendle) have stable cost-per-shipment but typically higher absolute cost. The decision depends on margin sensitivity vs forecast simplicity. Is customs duty included? No. Customs duty for non-EU destinations (UK post-Brexit, CH, NO, US imports) is paid separately by recipient (DDU model) or merchant (DDP model). Neither the card nor ShippyPro’s portal includes duty. For DDP-heavy accounts, add a separate budget line; the card understates true landed cost. Why does the portal sometimes show a different number than the card? Filter state. ShippyPro’s portal applies workspace defaults that may exclude returns, may include surcharges differently. Set the portal to All Outbound, All Carriers, All Services, Last 30 Days, Workspace Currency for closest comparison. Persistent gap >2% = check connector health and audit FX setting. How do I plan for next year’s carrier negotiation? Read 90 to 180 day cost trend (Cost Per Shipment Trend). The mix-vs-rate split tells you which carriers to prioritise. Carriers with stable rate cards but rising volume share are leverage points; carriers with declining volume are renegotiation targets. Use this card as the baseline; the monthly carrier invoices are the negotiation evidence.

Tracked live in Vortex IQ Nerve Centre

Avg Shipping Cost is one of hundreds of KPI pulses Vortex IQ tracks across ShippyPro and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.