At a glance
Shipping revenue as a share of total revenue. SUM(totalShippingPrice) ÷ SUM(totalPrice) × 100. The single ratio that tells you whether shipping is a profit centre or a quietly bleeding subsidy.
| What it counts | SUM(totalShippingPrice) ÷ SUM(totalPrice) × 100 over the 30D window. The numerator is what customers paid for shipping; the denominator is gross customer-paid revenue. |
| VAT / tax treatment | Both numerator and denominator carry the same VAT-inclusion mode. UK / EU stores have VAT-inclusive shipping; US stores have tax-exclusive. The ratio is consistent regardless. |
| Shipping | This is the metric. |
| Discounts | Numerator deducts shipping discounts (free-shipping codes); denominator deducts product discounts. Free-shipping promos suppress the numerator more than the denominator, which lowers the ratio. |
| Refunds | NOT deducted in either side; this is the gross-shipping ratio. |
| Cancelled / voided orders | Included if Shopify indexed them. |
| Currency | Multi-currency arithmetic without FX. The ratio per-currency is meaningful; aggregate ratio across currencies is not. |
| Channels / sources | All channels; POS orders contribute zero shipping (in-store pickup), pulling the ratio down. |
| Time window | 30D (default 30D rolling) |
| Alert trigger | >15%, sustained shipping % above 15% trips the shipping_pct sentiment key. |
| 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 US small-electronics DTC brand on Shopify, average parcel weight 1.2kg, free shipping over $50. 30D window 12 Apr 26 to 12 May 26.| Period component | Amount |
|---|---|
Total revenue (SUM(totalPrice)) | $312,500 |
Total shipping charged (SUM(totalShippingPrice)) | $24,300 |
| Shipping % of revenue | 7.78% |
- The drift cause matters more than the level. A 1.4 ppt jump in 30 days is meaningful; the brand should investigate. Did carrier rates rise (USPS / UPS hike pass-through)? Did the average parcel get heavier (heavier SKUs in the mix)? Did the free-shipping share fall (fewer customers hitting the $50 threshold)?
- Below 5% means “free shipping is working”. Brands with strong free-shipping thresholds and customer compliance see ratios in the 3-6% range. The remaining shipping revenue is from express upgrades.
- Above 12% means the threshold is wrong or the AOV is too low. When shipping % climbs above 12%, customers are typically paying full shipping on small orders that the brand can’t subsidise. Either raise the threshold to push AOV, or lower the threshold to force participation.
- 15% is the alert level for a reason. Above 15% the brand is effectively running a “shipping store with products attached”; profit margin compresses. Common in low-AOV categories (snacks, single-skincare-items) without bundling strategies.
- Cross-reference shipping cost. This card shows shipping revenue not cost. The real margin question is shipping rev minus shipping cost. If carriers cost 9% of revenue and customers pay 7.78%, the brand is subsidising shipping by 1.2 ppt. Pull this from carrier invoices, Shopify Admin doesn’t expose it natively.
Sibling cards merchants should reference together
Shipping % is a ratio. The components and consequences:| Card | Why pair it with Shipping % |
|---|---|
| Total Shipping Revenue | The numerator. Watch alongside this ratio. |
| Total Revenue | The denominator. |
| Shipping Methods | Distribution by method; rising express share lifts the ratio. |
| Average Order Value | The relationship is mechanical: higher AOV on free-shipping orders lowers the ratio. |
| Free vs Paid Shipping | Direct decomposition; tells you which half is moving. |
| Top Cities | Geographic correlation; far-flung customers cost more to ship. |
| Customer Countries | International orders typically have higher shipping % (international rates). |
| Refund Rate | Returns add reverse-shipping cost; the ratio understates true cost when returns are high. |
Reconciling against the vendor’s own dashboard
Where to look in Shopify Admin: Shopify doesn’t expose a single shipping-% tile; build it from:Shopify Admin → Analytics → Reports → “Total sales” then divide the Shipping column by the Total sales column.Other useful views:
- Reports → Sales by shipping method: shows shipping revenue per method.
- Reports → Sales over time: confirm the totals each side of the ratio.
- Apps like ShipBob / ShipStation / Shippo: typically expose the cost side (carrier-charged), not revenue side. Combine with this card for the gross margin on shipping.
| Reason | Direction | Why |
|---|---|---|
| Refund treatment | Either | Shopify’s Net views adjust for refunds; we don’t. Shipping refunds in particular distort the ratio significantly. |
| Free-shipping discount accounting | Either | When a free-shipping discount is applied, Shopify can either (a) leave shipping at zero, or (b) charge the original rate then apply a matching discount. Different setups, different ratios. |
| Time zone | Boundary days | UTC vs store time zone. |
| Multi-currency | Per-currency okay; aggregate not | Without FX-normalisation, the headline ratio is a weighted average across currencies, which distorts. |
| POS share | Pulls ratio down | POS orders typically have zero shipping; brands with retail-heavy mix see the ratio under-state online shipping share. Filter to “Online Store” channel for the e-commerce-only view. |
| Sync lag | Ours lower for “today” | Most-recent 5 to 15 minutes of orders may not be in. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
| Carrier-portal cost reports | Shipping % cost should be ≥ shipping % revenue | If revenue ratio exceeds cost ratio, brand is profitable on shipping. The reverse means subsidy. |
| 3PL invoices | Same logic | 3PL inclusive of pick / pack / label fees usually exceeds the carrier-only cost. |
Known limitations / merchant FAQs
What’s a healthy shipping % of revenue? Category-dependent rough guides:- Apparel / fashion DTC: 3-7%. Light parcels, free shipping over £40-60.
- Beauty and skincare: 4-8%. Light parcels, fragile (extra packaging cost passed through).
- Furniture and large goods: 8-15%. Bulky items, freight costs higher; customer-pays-shipping is the norm.
- Electronics: 4-7%. Mid-weight, often eligible for free shipping.
- Food and grocery: 8-15%. Cold chain, perishable, weight-driven.
- B2B / wholesale: 1-5% or zero. Often shipped on customer’s account, so no shipping line on the order.
- Carrier rate rises pass-through. USPS, Royal Mail, DPD, FedEx all hike rates annually (typically Jan or Feb). If you re-priced shipping to match, the ratio rises.
- AOV falling. Lower AOV means more orders pay full shipping (don’t reach the threshold), pushing the ratio up.
- International mix shifting. International orders carry higher shipping %; if international share grows, the headline rises.
- Method-based free shipping (e.g. “Free standard delivery on orders over £50”): contributes £0 to numerator, denominator unchanged. Lowers the ratio.
- Discount-code free shipping (e.g. “FREESHIP” code): in some setups, original shipping is charged then discounted. Numerator unchanged or slightly higher, denominator lower (because discount reduces totalPrice). Effect on ratio is store-specific.
- Decompose: AOV, country mix, method mix, carrier rates. Which is the driver?
- If AOV is falling, push the free-shipping threshold up (£50 to £60, etc) to force basket growth.
- If country mix has shifted to international, review international rate cards; high-margin products can absorb international shipping, low-margin products cannot.
- If carrier rates rose, re-price your shipping fees and consider negotiating a volume rate.
- If method mix has shifted to express, audit your default at checkout; some apps inadvertently default to express.
- If the ratio remains high after all these, your business is fundamentally low-AOV; consider bundling or subscription to shift the unit economics.