Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform

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 countsSUM(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 treatmentBoth 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.
ShippingThis is the metric.
DiscountsNumerator deducts shipping discounts (free-shipping codes); denominator deducts product discounts. Free-shipping promos suppress the numerator more than the denominator, which lowers the ratio.
RefundsNOT deducted in either side; this is the gross-shipping ratio.
Cancelled / voided ordersIncluded if Shopify indexed them.
CurrencyMulti-currency arithmetic without FX. The ratio per-currency is meaningful; aggregate ratio across currencies is not.
Channels / sourcesAll channels; POS orders contribute zero shipping (in-store pickup), pulling the ratio down.
Time window30D (default 30D rolling)
Alert trigger>15%, sustained shipping % above 15% trips the shipping_pct sentiment key.
Rolesowner, 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 componentAmount
Total revenue (SUM(totalPrice))$312,500
Total shipping charged (SUM(totalShippingPrice))$24,300
Shipping % of revenue7.78%
vs prior 30D ratio of 6.4%. The card flags an upward drift of 1.4 ppt but is still well below the 15% alert. Five things to notice:
  1. 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)?
  2. 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.
  3. 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.
  4. 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.
  5. 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:
CardWhy pair it with Shipping %
Total Shipping RevenueThe numerator. Watch alongside this ratio.
Total RevenueThe denominator.
Shipping MethodsDistribution by method; rising express share lifts the ratio.
Average Order ValueThe relationship is mechanical: higher AOV on free-shipping orders lowers the ratio.
Free vs Paid ShippingDirect decomposition; tells you which half is moving.
Top CitiesGeographic correlation; far-flung customers cost more to ship.
Customer CountriesInternational orders typically have higher shipping % (international rates).
Refund RateReturns 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.
Why our number may legitimately differ from a manual reconstruction:
ReasonDirectionWhy
Refund treatmentEitherShopify’s Net views adjust for refunds; we don’t. Shipping refunds in particular distort the ratio significantly.
Free-shipping discount accountingEitherWhen 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 zoneBoundary daysUTC vs store time zone.
Multi-currencyPer-currency okay; aggregate notWithout FX-normalisation, the headline ratio is a weighted average across currencies, which distorts.
POS sharePulls ratio downPOS 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 lagOurs lower for “today”Most-recent 5 to 15 minutes of orders may not be in.
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
Carrier-portal cost reportsShipping % cost should be ≥ shipping % revenueIf revenue ratio exceeds cost ratio, brand is profitable on shipping. The reverse means subsidy.
3PL invoicesSame logic3PL 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.
Why is my shipping % climbing? Three usual causes:
  1. 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.
  2. AOV falling. Lower AOV means more orders pay full shipping (don’t reach the threshold), pushing the ratio up.
  3. International mix shifting. International orders carry higher shipping %; if international share grows, the headline rises.
Action: decompose by Customer Countries and Average Order Value to find the cause. Should I aim for shipping % to be zero? No. Zero shipping % means the brand is subsidising 100% of carrier cost; profitable only at scale or with very high product margin. The right target is one or two ppt below your shipping cost % (so shipping is a small profit centre, or breaks even). Why does my ratio swing day to day? Small numerator, small denominator, big variance. On a 50-order day, a single £100 freight order can spike the ratio by 4-5 ppt; on a 500-order day the same order moves it 0.5 ppt. Use the 30D rolling view, never daily. Does free shipping count toward the numerator? Conditional. Two Shopify configurations:
  • 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.
Audit your specific setup before drawing conclusions. My subscription store, do recurring billings inflate this? Subscription billings often have shipping charged at the original rate (or a subscription discount). Each recurring billing contributes to both numerator and denominator. The ratio for subscription-heavy stores tends to be more stable than the one-off-purchase comparator. My multi-currency store, why is the headline ratio nonsensical? Without FX normalisation, the ratio is a weighted average that meaningfully aggregates only when one currency dominates. Filter by currency for a clean read; multi-currency cross-conversion is on the roadmap. Action playbook when shipping % crosses the alert (>15%):
  1. Decompose: AOV, country mix, method mix, carrier rates. Which is the driver?
  2. If AOV is falling, push the free-shipping threshold up (£50 to £60, etc) to force basket growth.
  3. If country mix has shifted to international, review international rate cards; high-margin products can absorb international shipping, low-margin products cannot.
  4. If carrier rates rose, re-price your shipping fees and consider negotiating a volume rate.
  5. If method mix has shifted to express, audit your default at checkout; some apps inadvertently default to express.
  6. If the ratio remains high after all these, your business is fundamentally low-AOV; consider bundling or subscription to shift the unit economics.

Tracked live in Vortex IQ Nerve Centre

Shipping Cost as % of Revenue is one of hundreds of KPI pulses Vortex IQ tracks across Shopify 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.