> ## 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, Adobe Commerce

> Shipping Cost as % of Revenue for Adobe Commerce 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 collected from customers as a percentage of total revenue. Useful for spotting when free-shipping thresholds, carrier rate hikes, or shipping-promotion campaigns shift customer-paid shipping economics. **This is the customer-paid shipping figure, not the merchant-cost shipping figure.** True shipping margin requires combining this with carrier-side cost data from a shipping connector (ShipStation, EasyPost).

|                                                                  |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**                                               | `SUM(shipping_amount) ÷ SUM(grand_total) × 100` over orders in the 30-day window. `shipping_amount` is the post-discount shipping the customer paid (after any free-shipping coupons or thresholds).                                                                                                                                                                                                                                                                                                                                     |
| **API field**                                                    | `shipping_amount`, `shipping_discount_amount`, `shipping_tax_amount`, `grand_total` from `GET /rest/V1/orders`.                                                                                                                                                                                                                                                                                                                                                                                                                          |
| **Why it's a percentage of revenue, not a percentage of orders** | A 5% rate on a $200 AOV is $10/order; the same 5% on a $400 AOV is $20/order. Value-weighting matches what Finance cares about (the shipping-revenue-to-merchant-revenue ratio). For a per-order shipping average, use [Total Shipping](/nerve-centre/kpi-cards/adobe-commerce/total-shipping-revenue) divided by [Total Orders](/nerve-centre/kpi-cards/adobe-commerce/total-orders).                                                                                                                                                   |
| **VAT / tax treatment**                                          | The numerator (`shipping_amount`) is **excl-tax** in Adobe Commerce by default, the shipping-tax sits separately in `shipping_tax_amount`. The denominator (`grand_total`) is **incl-tax**. So the percentage is biased low (numerator is net, denominator is gross). For UK/EU merchants this matters; the bias is roughly 1.6-1.8% absolute (20% VAT × shipping share). For an apples-to-apples comparison switch denominator to `grand_total - tax_amount` via the manifest, or numerator to `shipping_amount + shipping_tax_amount`. |
| **Shipping inclusion**                                           | The card IS the shipping inclusion view; both the post-discount paid `shipping_amount` and the pre-discount listed `shipping_amount + shipping_discount_amount` are exposed.                                                                                                                                                                                                                                                                                                                                                             |
| **Discounts**                                                    | Shipping discounts (free-shipping coupons, threshold-based free shipping via `aitoc_freeshipping` and similar) are already deducted from `shipping_amount`. The `shipping_discount_amount` field shows the discount portion separately.                                                                                                                                                                                                                                                                                                  |
| **Cancelled / refunded**                                         | Cancelled orders contribute to neither side (they are excluded from this calculation by default). Refunded shipping reduces the merchant's net shipping revenue but is not subtracted here, the card is creation-time, not net-of-refund.                                                                                                                                                                                                                                                                                                |
| **Currency**                                                     | Mixed-currency for both numerator and denominator; the ratio is roughly invariant. For FX-neutral, use `base_shipping_amount ÷ base_grand_total`.                                                                                                                                                                                                                                                                                                                                                                                        |
| **Multi-store scope**                                            | All Store Views by default. UK merchants typically run higher shipping percentages (5-9%) than US (3-6%) due to higher carrier rates.                                                                                                                                                                                                                                                                                                                                                                                                    |
| **Time window**                                                  | `30D` rolling.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| **Alert trigger**                                                | `>12%` absolute. Indicates margin pressure: either free-shipping threshold isn't being hit, or carriers raised rates without merchant adjusting policy, or AOV dropped while shipping costs stayed fixed.                                                                                                                                                                                                                                                                                                                                |
| **Sentiment key**                                                | `shipping_pct`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| **Roles**                                                        | owner, operations                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |

## Calculation

Calculated automatically from your Adobe Commerce 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 B2B+DTC homewares merchant on Adobe Commerce 2.4.7. UK base, GBP. 4,820 orders in last 30 days. Period: 14 Apr 26 to 13 May 26.

**Aggregate shipping figures:**

| Component                                                                   | Value (GBP)                              |
| --------------------------------------------------------------------------- | ---------------------------------------- |
| `SUM(shipping_amount)` (post-discount, excl tax)                            | £58,400                                  |
| `SUM(shipping_discount_amount)`                                             | £14,200 (free-shipping coupons absorbed) |
| Pre-discount listed shipping (`shipping_amount + shipping_discount_amount`) | £72,600                                  |
| `SUM(shipping_tax_amount)`                                                  | £11,680 (20% VAT on shipping)            |
| `SUM(grand_total)`                                                          | £950,000                                 |
| `SUM(grand_total - tax_amount)` (net of all VAT)                            | £791,667                                 |

**Card calculations under different definitions:**

| Definition                                                                                 | Numerator | Denominator | Result    |
| ------------------------------------------------------------------------------------------ | --------- | ----------- | --------- |
| **Card default** (excl-tax shipping ÷ incl-tax revenue)                                    | £58,400   | £950,000    | **6.15%** |
| Net-of-VAT both sides                                                                      | £58,400   | £791,667    | 7.38%     |
| Incl-tax shipping ÷ incl-tax revenue                                                       | £70,080   | £950,000    | 7.38%     |
| Pre-discount shipping ÷ revenue (what shipping "would have been" without free-ship promos) | £72,600   | £950,000    | 7.64%     |

**Insight pattern:**

1. **Card default reads 6.15%.** Within the healthy 4-8% band for UK merchants. Not breaching the 12% alert threshold.
2. **VAT bias is real.** The "fair" comparison (both sides net or both sides gross) is 7.38%. Always report the same definition consistently to Finance.
3. **Shipping discounts cost £14,200 in the period.** That's 1.49% of revenue absorbed as free-shipping promos. If the merchant raised the free-ship threshold from £75 to £85, AOV could shift up; analytics should A/B before changing.
4. **Slice by Store View:** UK shipping % is 6.5%; US shipping % (USD orders) is 4.2%. Difference is mostly Royal Mail vs USPS rate spread, partly different free-ship thresholds.
5. **Trend over prior period** (15 Mar to 13 Apr 26): 5.4%. Recent rise from 5.4% to 6.15% suggests either AOV dropped (it did, from £215 to £197 due to the supplier sizing problem causing return-replacements at lower per-line value) or shipping rates rose (carriers raised in late Mar). Investigate via [Total Shipping](/nerve-centre/kpi-cards/adobe-commerce/total-shipping-revenue) (the absolute figure).
6. **Action implication:** if the trend is AOV-driven (most likely here), fixing the supplier issue restores AOV and the percentage drops back; if rate-driven, renegotiate carrier or pass through to free-ship threshold.
7. **Cross-link with carrier-side data ([`shipstation.shipping_cost`](/nerve-centre/shipstation/shipping_cost)):** customer-paid £58,400. Merchant-paid carriers £52,800 (cost). Net shipping margin \~9.6%. If this card's % rises while ShipStation's cost-% rises faster, margin is shrinking; raise the customer-paid rate or threshold.

## Sibling cards merchants should reference together

| Card                                                                                  | Why pair it with Shipping Cost as % of Revenue                         |
| ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [Total Shipping](/nerve-centre/kpi-cards/adobe-commerce/total-shipping-revenue)       | The numerator absolute.                                                |
| [Total Revenue](/nerve-centre/kpi-cards/adobe-commerce/total-revenue)                 | The denominator.                                                       |
| [Free vs Paid Shipping](/nerve-centre/kpi-cards/adobe-commerce/free-vs-paid-shipping) | Composition of the shipping mix; free-share rising drags this card up. |
| [AOV](/nerve-centre/kpi-cards/adobe-commerce/average-order-value)                     | The headline rate against which shipping % is normalised.              |
| [Discount % of Revenue](/nerve-centre/kpi-cards/adobe-commerce/discount-of-revenue)   | Sister rate; together they show "what % of revenue we give back".      |
| [Refund Value](/nerve-centre/kpi-cards/adobe-commerce/refund-value)                   | Refunded shipping is invisible here but real cost.                     |
| [Total Discount](/nerve-centre/kpi-cards/adobe-commerce/total-discount-used)          | Includes shipping discount portion.                                    |
| [`shipstation.shipping_cost_pct`](/nerve-centre/shipstation/shipping_cost_pct)        | Carrier-side cost; pair to compute true margin.                        |
| [`shopify.shipping_pct`](/nerve-centre/kpi-cards/shopify/shipping-cost-as-of-revenue) | Shopify peer.                                                          |

## Reconciling against the vendor's own dashboard

**Where to look in Adobe Commerce Admin:**

Adobe Commerce does not surface shipping % as a single Admin number; it must be derived. Components:

> **Reports > Sales > Shipping** for the shipping value. Set "Show By" to the period.
>
> **Reports > Sales > Orders** for the revenue value. Set the same period and divide.

For per-shipping-method breakdown:

> **Reports > Sales > Shipping** with "Show By" set to "Shipping Method". Lets you see whether the % is driven by an expensive method (Royal Mail Special Delivery, FedEx Priority) or by a high free-ship absorption.

**Why our number may legitimately differ from a manual Admin computation:**

| Reason                                                                                                                                                                                                                                                                                                                                          | Direction of divergence                |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |
| **VAT framing**. Admin's Reports > Sales > Shipping aggregates `shipping_amount` (excl-tax) by default; Reports > Sales > Orders aggregates `grand_total` (incl-tax). A merchant manually dividing the two gets the same biased low percentage that this card's default shows. To get the "fair" net-of-VAT percentage, both sides must be net. | None vs Admin default; both biased low |
| **Currency**. Both Admin reports default to `base_currency`; this card defaults to display-currency mixed. Use base for like-for-like.                                                                                                                                                                                                          | Material for multi-currency stores     |
| **Reports indexer lag**. Both Admin reports use nightly-aggregated tables. Today's orders may not show until tomorrow. This card refreshes every 5-15 min.                                                                                                                                                                                      | Vortex IQ ahead by \~12-24h            |
| **Cancelled inclusion**. The card excludes `canceled` orders from both numerator and denominator (cancelled orders typically have `shipping_amount=0` so don't change the ratio much, but excluding them gives a cleaner answer). Admin may include or exclude depending on the report's status filter.                                         | Minor                                  |
| **Time-zone, sync lag**. Standard.                                                                                                                                                                                                                                                                                                              | Minor                                  |

**Internal identity (within Adobe Commerce):**

`shipping_pct = SUM(shipping_amount) ÷ SUM(grand_total) × 100`

Component cards:

* [`adobe_commerce.total_shipping`](/nerve-centre/kpi-cards/adobe-commerce/total-shipping-revenue)
* [`adobe_commerce.total_revenue`](/nerve-centre/kpi-cards/adobe-commerce/total-revenue)

**Cross-connector reconciliation (when these connectors are connected for this merchant):**

| Card                                                                                  | Expected relationship                                                                                                              | What divergence tells you                                                                                                                                           |
| ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`shipstation.shipping_cost_pct`](/nerve-centre/shipstation/shipping_cost_pct)        | Carrier cost ratio. Should be roughly 80-95% of this card's % for healthy merchants (i.e., merchant absorbs 5-20% of carrier cost) | If ShipStation cost-% > this card's %, merchant is *paying* more in carriers than it collects, shipping is a cost centre. Renegotiate or raise customer-paid rates. |
| [`shopify.shipping_pct`](/nerve-centre/kpi-cards/shopify/shipping-cost-as-of-revenue) | Same metric on Shopify, structurally similar                                                                                       | Cross-platform reference for agencies.                                                                                                                              |

***

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

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

## Known limitations / merchant FAQs

**Why is the percentage lower than my "real" shipping rate?**
Because the default uses excl-tax `shipping_amount` over incl-tax `grand_total`. This biases low. For a true rate, switch the manifest to net-of-VAT both sides or incl-tax both sides. The bias is roughly 1.6-1.8 absolute points for UK/EU merchants (20% VAT on shipping share).

**Does this include free shipping?**
The free-shipping orders contribute zero to the numerator (`shipping_amount=0` after the discount) and their full `grand_total` to the denominator. So a high free-ship-share drags this percentage down. To see "what shipping would cost without promos", use the pre-discount view (`shipping_amount + shipping_discount_amount`) which is exposed on the card detail panel.

**My free-ship threshold dragged the % down, is that good?**
Depends on the AOV impact. Free-ship promos that lift AOV above the threshold by enough to cover the absorbed shipping are net positive. Free-ship blanket campaigns (free shipping on all orders) are usually net negative; the % drops but margin drops faster. Use [`google_analytics.ga_aov_lift_from_freeship`](/nerve-centre/google_analytics/ga_aov_lift_from_freeship) for the proper attribution.

**Why does the card not include the merchant's actual carrier cost?**
Because Adobe Commerce only knows what the customer paid, not what the merchant paid the carrier. To compute true shipping margin, connect ShipStation (or your carrier integration) and pair this card with [`shipstation.shipping_cost`](/nerve-centre/shipstation/shipping_cost). The Vortex IQ workspace combines them into a "shipping margin" view.

**B2B orders, are they in this card?**
Yes. B2B often uses freight (LTL, FTL) charged separately of the platform; those orders may show low or zero shipping in Adobe and the freight bill arrives via email/PDF. If your B2B traffic is freight-heavy and freight is invoiced outside Adobe, this card under-reports the real shipping economics for B2B. Filter to DTC-only via Customer Group for cleaner numbers.

**Why is my % rising even though I haven't changed anything?**
Three common causes: (1) carriers raised rates (most common, often Q1 or post-fuel-surcharge); (2) AOV dropped (shipping is a fixed cost per order; lower AOV = higher %); (3) order mix shifted to cheaper SKUs (lower per-line value but same shipping, ratio rises). Cross-link with [AOV](/nerve-centre/kpi-cards/adobe-commerce/average-order-value) and the carrier rate cards.

**The 12% threshold isn't right for my heavy-goods category, can I change?**
Yes. Heavy-goods (furniture, machinery) routinely run at 15-25% shipping. Customise the threshold in the manifest. The +relative trigger (week-on-week jump) is more universally useful.

**My multi-store, can I see per-Store-View shipping %?**
Yes. Filter by `store_id`. Comparing UK vs US Store Views often reveals very different shipping economics worth investigating.

**Refunded shipping, does it appear here?**
No, the card is creation-time. Refunded shipping is captured separately on Credit Memos (see [Refund Value](/nerve-centre/kpi-cards/adobe-commerce/refund-value)). For "net shipping economics" you would compute (collected − refunded − carrier cost) per period; that requires combining cards.

**Why doesn't ShipStation match?**
ShipStation knows what you paid carriers. This card knows what customers paid you. They are two sides of a margin calculation, not the same number. Both are correct.

***

### Tracked live in Vortex IQ Nerve Centre

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