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

# Total Shipping Revenue, Adobe Commerce

> Total Shipping 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

> The absolute customer-paid shipping revenue collected over the period: `SUM(shipping_amount)` over orders. Pairs with [Shipping Cost as % of Revenue](/nerve-centre/kpi-cards/adobe-commerce/shipping-cost-as-of-revenue) (the rate version) and with [Free vs Paid Shipping](/nerve-centre/kpi-cards/adobe-commerce/free-vs-paid-shipping) (the composition view).

|                         |                                                                                                                                                                                                                                                                                                                        |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**      | `SUM(shipping_amount)` over orders created in the 30-day window. `shipping_amount` is the post-discount, excl-tax shipping the customer paid (after free-shipping coupons or threshold-based discounts).                                                                                                               |
| **API field**           | `shipping_amount` (post-discount, excl-tax), `shipping_discount_amount`, `shipping_tax_amount`, `base_shipping_amount` from `GET /rest/V1/orders`.                                                                                                                                                                     |
| **VAT / tax treatment** | **Excl-tax** by default. Adobe Commerce stores the shipping VAT separately as `shipping_tax_amount`. For UK/EU merchants, the customer's invoice line "Shipping inc. VAT" equals `shipping_amount + shipping_tax_amount`. Both are exposed; the headline uses the excl-tax view to mirror Finance accounting practice. |
| **Shipping**            | The card IS the shipping view.                                                                                                                                                                                                                                                                                         |
| **Discounts**           | Already deducted, this is post-discount paid shipping. The free-shipping discount portion is in `shipping_discount_amount` (positive number representing the discount applied). The pre-discount listed shipping is `shipping_amount + shipping_discount_amount`.                                                      |
| **Cancelled orders**    | Excluded by default. Cancelled orders typically have `shipping_amount=0` anyway, but the explicit exclusion ensures cleanliness.                                                                                                                                                                                       |
| **Refunds**             | Not subtracted, the card is creation-time. Refunded shipping (Credit Memo with `shipping_amount > 0`) reduces net but appears separately on [Refund Value](/nerve-centre/kpi-cards/adobe-commerce/refund-value). Net shipping = this card − Credit Memo shipping.                                                      |
| **Currency**            | Mixed-currency display by default. `base_shipping_amount` for FX-neutral.                                                                                                                                                                                                                                              |
| **Channels / sources**  | All Adobe Commerce sources. B2B orders that use freight (LTL, FTL) charged outside Adobe (invoiced separately) do not appear here.                                                                                                                                                                                     |
| **Multi-store scope**   | All Store Views by default.                                                                                                                                                                                                                                                                                            |
| **Time window**         | `30D` rolling.                                                                                                                                                                                                                                                                                                         |
| **Alert trigger**       | None on this card directly. The rate-side alert is on [Shipping Cost as % of Revenue](/nerve-centre/kpi-cards/adobe-commerce/shipping-cost-as-of-revenue).                                                                                                                                                             |
| **Roles**               | owner, operations                                                                                                                                                                                                                                                                                                      |

## Calculation

```
SUM(shipping_amount)
  WHERE date BETWEEN [period_start, period_end]
```

## Worked example

A B2B+DTC homewares merchant on Adobe Commerce 2.4.7. UK base, GBP. 4,820 orders. Period: 14 Apr 26 to 13 May 26.

**Shipping aggregates:**

| Component                                                      | Value (GBP) |
| -------------------------------------------------------------- | ----------- |
| `SUM(shipping_amount)` (card default, excl-tax, post-discount) | £58,400     |
| `SUM(shipping_discount_amount)`                                | £14,200     |
| Pre-discount listed shipping                                   | £72,600     |
| `SUM(shipping_tax_amount)`                                     | £11,680     |
| `SUM(shipping_amount + shipping_tax_amount)` (incl-tax)        | £70,080     |

**Per-method breakdown** (joined with `payment.method` for shipping-method via `shipping_description`):

| Shipping method                     | Order count | `SUM(shipping_amount)` | Avg per order                     |
| ----------------------------------- | ----------- | ---------------------- | --------------------------------- |
| Royal Mail Tracked 48 (UK standard) | 2,840       | £25,560                | £9.00                             |
| Royal Mail Special Delivery         | 380         | £11,400                | £30.00                            |
| DHL Express (international)         | 220         | £8,800                 | £40.00                            |
| ParcelForce 24                      | 410         | £6,150                 | £15.00                            |
| Free shipping (>£75 threshold)      | 920         | £0                     | £0.00                             |
| Free shipping (loyalty perk)        | 50          | £0                     | £0.00                             |
| **Total**                           | **4,820**   | **£58,400**            | **avg paid £15** (excluding free) |

**Comparison to prior period:**

| Window              | `SUM(shipping_amount)` | Order count | Avg per non-free order |
| ------------------- | ---------------------- | ----------- | ---------------------- |
| 14 Apr to 13 May 26 | £58,400                | 4,820       | £15.00                 |
| 15 Mar to 13 Apr 26 | £52,200                | 4,640       | £13.50                 |
| **Change**          | **+11.9%**             | **+3.9%**   | **+11.1%**             |

What this is telling Operations:

1. **Shipping revenue grew 11.9% on order growth of only 3.9%.** The per-order paid shipping rose from £13.50 to £15.00. Cause likely a carrier rate increase (Royal Mail and DHL both raised in late Mar 26).
2. **Free-shipping share is 970 of 4,820 orders, 20.1%.** Healthy threshold-driven free-ship rate. £14,200 of free-ship discounts absorbed (the merchant "spent" £14,200 to chase the threshold-driven AOV lift).
3. **DHL Express at £40/order** is the highest per-order. Mostly international orders; investigate whether the carrier mark-up is passing through fully or being absorbed.
4. **Royal Mail Special Delivery at £30/order** is the second-highest. Used for high-AOV (>£100) DTC where customers opt for next-day. Consider raising threshold given the rate increase.
5. **Cross-link with [`shipstation.shipping_cost`](/nerve-centre/shipstation/shipping_cost):** carrier-paid £52,800 in the period. Net shipping revenue = collected £58,400 − paid £52,800 = £5,600 surplus. With £14,200 of absorbed free-ship discount, the *net economic position* on shipping is `+£5,600 − £14,200 = -£8,600`, i.e. shipping is a loss-leader for AOV. That is a deliberate strategy if AOV uplift covers it; verify with [AOV](/nerve-centre/kpi-cards/adobe-commerce/average-order-value) and the lift attribution.
6. **Action:** consider raising free-ship threshold to £85 to recover £4-6k/month if AOV elasticity supports it.

## Sibling cards merchants should reference together

| Card                                                                                        | Why pair it with Total Shipping                                          |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| [Shipping % of Revenue](/nerve-centre/kpi-cards/adobe-commerce/shipping-cost-as-of-revenue) | Rate-side companion.                                                     |
| [Free vs Paid Shipping](/nerve-centre/kpi-cards/adobe-commerce/free-vs-paid-shipping)       | Composition: how much of the order base avoided shipping fees.           |
| [Total Revenue](/nerve-centre/kpi-cards/adobe-commerce/total-revenue)                       | Denominator-of-context.                                                  |
| [AOV](/nerve-centre/kpi-cards/adobe-commerce/average-order-value)                           | Free-ship thresholds drive AOV; pair to measure threshold effectiveness. |
| [Total Discount](/nerve-centre/kpi-cards/adobe-commerce/total-discount-used)                | Includes shipping discount portion.                                      |
| [Refund Value](/nerve-centre/kpi-cards/adobe-commerce/refund-value)                         | Refunded shipping reduces net; this card is creation-time gross.         |
| [`shipstation.shipping_cost`](/nerve-centre/shipstation/shipping_cost)                      | Carrier-side cost; the merchant-paid figure for true margin.             |
| [`shopify.total_shipping`](/nerve-centre/kpi-cards/shopify/total-shipping-revenue)          | Shopify peer.                                                            |

## Reconciling against the vendor's own dashboard

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

> **Reports > Sales > Shipping** with date range matching the period. Total at the bottom should match this card. Default uses `base_currency`; switch this card to `base_shipping_amount` for like-for-like.

For per-method breakdown:

> **Reports > Sales > Shipping** with "Show By" = "Shipping Method". Shows shipping revenue per carrier/service.

**Why our number may legitimately differ from Adobe Commerce Admin:**

| Reason                                                                                                                                                                                                | Direction of divergence                        |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
| **Currency**. Admin defaults to `base_shipping_amount`; this card defaults to display-currency mixed `shipping_amount`.                                                                               | Material for multi-currency stores             |
| **Reports indexer lag**. Reports > Sales > Shipping uses nightly aggregated tables. This card refreshes every 5-15 min.                                                                               | Vortex IQ ahead by \~12-24h on most-recent day |
| **Cancelled inclusion**. Card excludes cancelled by default; Admin reports include or exclude depending on status filter. Cancelled orders typically have `shipping_amount=0` so the impact is small. | Minor                                          |
| **Status filter**. Admin reports default to "Status = Any". Match unless overridden.                                                                                                                  | None expected                                  |
| **Time-zone, sync lag**. Standard.                                                                                                                                                                    | Minor                                          |

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

| Card                                                                   | Expected relationship                                                                                                              | What divergence tells you                                                           |
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [`shipstation.shipping_cost`](/nerve-centre/shipstation/shipping_cost) | Carrier-paid cost. Merchant collected (this card) − carrier paid = gross shipping margin (before considering free-ship absorption) | If carrier-paid > collected, shipping is a cost centre; renegotiate or raise rates. |
| [`easypost.shipping_cost`](/nerve-centre/easypost/shipping_cost)       | EasyPost equivalent if used                                                                                                        | Same logic.                                                                         |
| Sum of (Royal Mail postage + DHL bill + …)                             | Should approximately match ShipStation total                                                                                       | Reconciles carrier integration vs invoices.                                         |

***

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

  * [`shopify.total_shipping`](/nerve-centre/kpi-cards/shopify/total-shipping-revenue)
  * [`bigcommerce.total_shipping`](/nerve-centre/kpi-cards/bigcommerce/total-shipping-revenue)
</details>

## Known limitations / merchant FAQs

**Why is my "shipping revenue" number lower than the customer-facing total on invoices?**
Because Adobe stores shipping excl-tax in `shipping_amount` and the tax separately in `shipping_tax_amount`. Customer invoices show the inc-tax sum. Add them for the customer-facing figure: `SUM(shipping_amount + shipping_tax_amount)`. The card's headline excl-tax view aligns with how Finance books shipping revenue (net) in the GL.

**Free shipping is hurting my number, can I separate it?**
Free shipping isn't "hurting" the number; it just doesn't contribute. The pre-discount listed shipping (`shipping_amount + shipping_discount_amount`) shows what shipping would have been without promos. The discount portion is the cost of the free-ship strategy.

**Refunded shipping, where is it?**
On Credit Memos as `creditmemo.shipping_amount`. Aggregate via [Refund Value](/nerve-centre/kpi-cards/adobe-commerce/refund-value). Net shipping = this card − refunded shipping. The card is intentionally creation-time gross because Finance books the refund separately.

**B2B freight orders aren't showing, why?**
Many B2B sellers charge freight outside the platform (carrier invoices the merchant after shipment, merchant invoices the customer separately). Those orders have `shipping_amount=0` in Adobe. To capture them, integrate the freight invoicing system (e.g., a 3PL connector) and combine.

**My multi-currency total looks weird, why?**
Mixed-currency `shipping_amount` is summed without FX. A USD store contributing \$5,000 and a GBP store contributing £4,000 sums to "9,000" with no unit. Toggle to `base_shipping_amount` (FX-converted to store base currency at order time) for a meaningful total.

**Why doesn't ShipStation match?**
ShipStation knows what you paid carriers (cost). This card knows what customers paid you (revenue). Both are correct at their endpoint. The interesting calculation is cost − revenue = margin (positive = you are profitable on shipping; negative = you are absorbing shipping cost as marketing).

**My free-ship threshold is £50; I see lots of orders just under £50, why?**
That is healthy. Free-ship thresholds intentionally pull AOV up via the "I might as well add another item" psychology. The cluster just under £50 is customers who decided not to add. The cluster just over £50 is the threshold-driven AOV lift. Together they suggest the threshold is calibrated to your AOV distribution.

**A spike in shipping revenue over the weekend, real or admin-bulk?**
Adobe Admin can create bulk orders manually (B2B PO imports). Those have `created_at = bulk-import time` even if real customer orders were over weekdays. Filter `admin_created` orders for the true customer-paid signal.

**Can I see this by Customer Group?**
Yes. Slice via Customer Group filter. B2B groups often have negotiated freight outside Adobe (so look low here); DTC groups carry the bulk of card-paid shipping.

**Why does today's number sometimes drop?**
Today's data is in-progress; the card might display "(in progress)" on the trailing point. Otherwise: a cancellation just occurred and the card excludes cancelled orders, so the cancelled order's shipping is removed retroactively. This is correct.

***

### Tracked live in Vortex IQ Nerve Centre

*Total Shipping 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.
