> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Shipping Cost as % of Revenue, Shopify

> Shipping Cost as % of Revenue for Shopify stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

**Metrics type:** [Supporting Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

## 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%** |

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:

| Card                                                                             | Why pair it with Shipping %                                                               |
| -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| [Total Shipping Revenue](/nerve-centre/kpi-cards/shopify/total-shipping-revenue) | The numerator. Watch alongside this ratio.                                                |
| [Total Revenue](/nerve-centre/kpi-cards/shopify/total-revenue)                   | The denominator.                                                                          |
| [Shipping Methods](/nerve-centre/kpi-cards/shopify/shipping-methods)             | Distribution by method; rising express share lifts the ratio.                             |
| [Average Order Value](/nerve-centre/kpi-cards/shopify/average-order-value)       | The relationship is mechanical: higher AOV on free-shipping orders lowers the ratio.      |
| [Free vs Paid Shipping](/nerve-centre/kpi-cards/shopify/free-vs-paid-shipping)   | Direct decomposition; tells you which half is moving.                                     |
| [Top Cities](/nerve-centre/kpi-cards/shopify/top-cities-by-orders)               | Geographic correlation; far-flung customers cost more to ship.                            |
| [Customer Countries](/nerve-centre/kpi-cards/shopify/orders-by-country)          | International orders typically have higher shipping % (international rates).              |
| [Refund Rate](/nerve-centre/kpi-cards/shopify/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.

**Why our number may legitimately differ from a manual reconstruction:**

| 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.                                                                                                                                         |

**Cross-connector reconciliation:**

| 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.                 |

***

<details>
  <summary><em>Documentation cross-reference (for agencies running multiple platforms)</em></summary>

  * [`bigcommerce.shipping_pct`](/nerve-centre/kpi-cards/bigcommerce/shipping-cost-as-of-revenue)
  * [`adobe_commerce.shipping_pct`](/nerve-centre/kpi-cards/adobe-commerce/shipping-cost-as-of-revenue)
</details>

## 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](/nerve-centre/kpi-cards/shopify/orders-by-country) and [Average Order Value](/nerve-centre/kpi-cards/shopify/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](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
