At a glance
Order distribution by free-shipping vs paid-shipping. The promotional-cost view: how many orders are subsidising delivery, and what is the cost share of free shipping in the operating model?
| What it counts | Orders split into two buckets: totalShippingPrice = 0 (free shipping) vs totalShippingPrice > 0 (paid shipping). Returns count plus £/$ of revenue per bucket. |
| API endpoint | Admin GraphQL. Order.totalShippingPriceSet.shopMoney.amount. |
| What “free” means here | The customer paid £0 for shipping. Cause may be a free-shipping promotion, a free-shipping threshold met, a free-shipping promo code, or a B2B contract with free shipping. The card does not separate cause; pair with Shipping Methods. |
| VAT / tax treatment | Shipping prices follow store tax setting; the card’s split is on the post-tax amount. |
| Shipping | The card IS the shipping breakdown. |
| Discounts | Orders with free-shipping discount codes (FREESHIP) typically have totalShippingPrice set to 0 (the discount fully offsets); they fall in the free bucket. |
| Refunds | Refunds DO NOT change the original shipping classification. A refunded paid-shipping order remains in the paid bucket. |
| Cancelled / voided orders | Cancelled orders bucket on their original shipping value. |
| Currency | Multi-currency safe (count + currency-bucketed totals). |
| Channels / sources | Online + POS (POS rarely charges shipping; most POS orders are in-person and bucket as free). B2B orders often have contractual free shipping. |
| Local pickup / collect-in-store | Counts as free shipping (totalShippingPrice = 0). To filter for true delivery-free, pair with Shipping Methods and exclude Pickup / Local pickup. |
| Time window | 30D (single window) |
| Alert trigger | None on this card directly; pair with Shipping % for the share alarm. |
| Roles | owner, operations |
Calculation
Calculated automatically from your Shopify data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A UK DTC apparel brand on Shopify, free-shipping threshold £50. Period: 12 Apr 26 to 11 May 26. AOV £62.| Bucket | Order count | Share | Avg shipping paid | Total shipping revenue |
|---|---|---|---|---|
| Free shipping (£0) | 1,584 | 80.1% | £0 | £0 |
| Paid shipping (£3.95 standard) | 312 | 15.8% | £3.95 | £1,232 |
| Paid shipping (£8.95 next-day) | 82 | 4.1% | £8.95 | £734 |
| Total | 1,978 | 100% | £0.99 | £1,966 |
- 80% free-shipping share is high but consistent with the £50 threshold. With AOV £62 sitting above the threshold, most orders qualify for free shipping. This is not a problem; it is the policy working. The cost is the foregone shipping revenue: a paid-shipping equivalent at £3.95 × 1,584 = £6,256/month not collected.
- Lowering the threshold pushes free share up; raising it pushes share down and AOV up. A common test: raise threshold from £50 to £65, expect free-share to drop to 60-70% and AOV to rise to £70+. Whether net revenue improves depends on conversion-rate sensitivity. Pair with AOV and Conversion Rate when adjusting.
- Next-day at 4.1% is the urgency-buyer indicator. These customers paid £8.95 for next-day delivery; they are time-sensitive shoppers. AOV in this segment is typically higher (urgent-need buyers don’t price-shop). Worth merchandising premium products to these customers via post-purchase email.
- Shipping revenue is meaningful: £1,966 in 30 days, £23,592 annualised. That offsets a non-trivial share of fulfillment cost. Brands with high free-shipping share often forget shipping is a revenue line, not just a cost line.
- POS local-pickup excluded by intent here. This brand has no retail; if it did, POS / pickup orders would all bucket as free (£0 shipping). For omnichannel brands, the headline free-share is inflated by pickup orders; filter to delivery-only for a clean view.
Sibling cards merchants should reference together
Free-vs-paid is a single dimension of shipping economics. Pair with these:| Card | Why pair it with Free vs Paid | What the combination tells you |
|---|---|---|
| Total Shipping | Total shipping revenue. | Free-share × AOV-impact = the shipping-economics complete view. |
| Shipping % | Shipping cost as a share of revenue. | High share + high paid bucket = the customer-pain economics. |
| Shipping Methods | Method-level breakdown. | Surfaces the specific methods producing the free vs paid split. |
| AOV | Order value drives threshold-crossing. | A free-shipping threshold change is the cleanest experiment in DTC. |
| Discount Over Time | Free-shipping promo events. | Timing of free-shipping campaigns visible here. |
| Total Revenue | Top-line context. | Free-share trend vs revenue trend reveals whether free-shipping is driving growth. |
google_ads.google_promo_keywords | Free-shipping promo keyword spend | Aligns paid-search amplification with the free-shipping campaign. |
Reconciling against the vendor’s own dashboard
Where to look in Shopify Admin: Analytics → Reports → “Sales by shipping method” shows shipping methods with their associated revenue. To get the free-vs-paid split, filter to free-shipping methods and aggregate. There is no single dedicated free-vs-paid tile. Other Shopify Admin views:- Settings → Shipping & delivery: shows configured rates and zones.
- Apps like Bold Shipping, ShipperHQ: surface richer shipping-method analytics.
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days | Standard time-zone gap. |
| POS local pickup | Either | POS pickup orders have £0 shipping; the card includes them in free. Shopify’s report may filter or label them differently. |
| Refunded orders | Both include original shipping | Both Shopify and the card use the original shipping value at order time. |
| Test orders | Ours slightly higher | Test order filter not applied. |
| Sync lag | Ours lower for “today” | 5 to 15 minute index lag. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
google_ads.google_promo_keywords | Free-shipping promo campaign spend correlates with free-bucket peaks | Free-shipping advertising in Google often produces an uptick in the free-bucket share. |
klaviyo.klaviyo_campaign_revenue | Email-driven free-shipping promotions | Same logic. |
Known limitations / merchant FAQs
Why is my free-shipping share so high? Three usual causes:- Threshold below AOV. If your free-shipping threshold is below your typical AOV, most orders qualify automatically. This is mechanical, not a problem.
- Always-on free-shipping campaign. Some brands run perpetual free-shipping; the bucket dominates by design.
- B2B contractual free shipping. B2B orders with negotiated rates often have £0 shipping, inflating the free-bucket share.
- Raise the free-shipping threshold (most direct lever).
- Make free shipping promo-only rather than always-on.
- Offer paid premium shipping (next-day, two-day) as an option above the free standard.
- Check whether a free-shipping promotion launched / ended.
- Check whether the threshold was changed.
- Check whether AOV moved (a rising AOV pushes more orders over threshold automatically).
- If unexpected, audit checkout flow; a configuration change may have broken paid-shipping methods.