% Shipping Cost
Whether what you charge for delivery still covers what delivery costs you.
What it means
% Shipping Cost is what you pay to get orders out the door — carrier labels, packaging and fulfilment — divided by Total Sales for the same period. The cost side comes from the rates configured on Cost Settings, and what customers paid you for delivery sits in the denominator rather than against the cost. Pay €4,000 on a month that did €80,000 and it reads 5%.
Show the math
Formula and a worked example
Shipping Cost is what you pay out — carrier labels, packaging and fulfilment — using the rates configured on Cost Settings.
Total Sales is everything you took in over the period. What the customer paid you for delivery sits inside that figure, on the other side of the fraction.
Worked example. You ship 1,200 orders in May at €3 each, so Shipping Cost is €3,600. Total Sales is €60,000. % Shipping Cost = 3,600 ÷ 60,000 = 6%.
Now run a quiet June: the same 1,200 orders and the same €3,600, but Total Sales of €40,000 because baskets got smaller. The number reads 9%. Nothing changed at the carrier. Check whether the euro amount moved before you blame the rate.
It answers the question
Is delivery still paying for itself? A low number means your fees and basket sizes cover the parcels; a high one means every order leaves with a piece of your margin inside the box.
Why it matters
Shipping lands on every order and doesn't care what the order was worth. A €30 basket and a €300 basket cost about the same to send, so this reads on your basket size as much as on your carrier deal — when it climbs and your rates haven't changed, your baskets shrank.
It also hits the bottom line at full strength. Every point here comes off Contribution MarginContribution MarginProfit left after variable costs to fund the business.30% or more is healthy with no markup sitting in front of it to absorb the loss.
What good looks like
These bands assume you charge something for delivery and sell something a courier can lift. Free-shipping stores and heavy or bulky categories sit higher by design, and that's a pricing decision rather than a failure. Treat a reading far under 6% with suspicion — shipping rates come from Cost Settings and read as zero until someone fills them in.
How to improve it
| Lever | What you do | Expect | How long | Watch out for |
|---|---|---|---|---|
| Fast Set a free-shipping threshold above your basket | Move the free-delivery line to around 20% above your current AOV, so one more item clears it | 1–3 points off | 2 weeks | Orders under the threshold convert worse. You'll see the drop in small orders before you see the lift in big ones. |
| Fast Charge for delivery on small orders | Add a flat €4.95 fee below a set basket size instead of absorbing it | 1–2 points off | 2 weeks | Some small orders vanish rather than pay. Order count falls even as the percentage improves. |
| Slow Split your volume across two carriers | Take real weight and zone data to two carriers and route each destination to whichever is cheaper | 10–20% off the shipping bill | 1–2 quarters | Transit times get longer on the cheap lane. Delivery complaints and replacement requests usually rise before the savings show. |
| Slow Right-size the packaging | Cut box sizes so you stop paying volumetric weight on air | 1–3 points off | 1 quarter | New packaging tooling and stock is money up front, and thinner protection means more damage claims and refunds. |
Every lever costs something somewhere. The last column is the one to read twice.
Read it with
This number moves for two completely different reasons — what you pay, and what you sell. Reading it next to AOV separates them.
Working as designed
Baskets grew and the cost of sending each one didn't. This is what a free-shipping threshold is supposed to do.
Heavier, not richer
Baskets grew by units rather than by value, so you're paying more to send more without charging for the extra weight.
Too good to be true
Smaller baskets should push this number up, not down. Either you renegotiated recently or the configured rate is stale.
Margin is leaking
You're sending more small parcels for less money. Both halves of the ratio moved against you at once, so this drains profit faster than either half would alone.
When margin drops, this pair says which line did it. Contribution Margin falling while % Shipping Cost holds steady means the cause is product cost or discounting. Both moving together means fulfilment is the whole story.
AOQ is units per order, so together they show whether bigger baskets are consolidating into fewer parcels. AOQ up with % Shipping Cost down means people are buying more per box; AOQ up with % Shipping Cost up means you're splitting orders across shipments, which no revenue number will show you.
Common misreads
Shipping rates live on Cost Settings and default to zero until someone enters them. A number far under the healthy band is more often an empty field than a good contract. Check what's configured against your last carrier invoice.
Total Sales is the denominator. A slow month, a heavy promotion or a run of refunds pushes this up without a single rate changing. Look at the euro figure first — if that held flat, the carrier isn't your problem.
It moved the cost, it didn't create it. When customers paid for delivery, their fee sat inside Total Sales and softened the ratio. The real question is whether bigger baskets paid for the fees you stopped collecting — read this next to AOV.
Also called
Shipping cost ratio · fulfilment cost percentage · cost to serve · delivery cost as a share of sales
See yoursYour % Shipping Cost for the period, with the euro amount sitting behind it country by country.
Open Shopify Profit →