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

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 (the rate version) and with Free vs Paid Shipping (the composition view).
What it countsSUM(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 fieldshipping_amount (post-discount, excl-tax), shipping_discount_amount, shipping_tax_amount, base_shipping_amount from GET /rest/V1/orders.
VAT / tax treatmentExcl-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.
ShippingThe card IS the shipping view.
DiscountsAlready 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 ordersExcluded by default. Cancelled orders typically have shipping_amount=0 anyway, but the explicit exclusion ensures cleanliness.
RefundsNot subtracted, the card is creation-time. Refunded shipping (Credit Memo with shipping_amount > 0) reduces net but appears separately on Refund Value. Net shipping = this card − Credit Memo shipping.
CurrencyMixed-currency display by default. base_shipping_amount for FX-neutral.
Channels / sourcesAll Adobe Commerce sources. B2B orders that use freight (LTL, FTL) charged outside Adobe (invoiced separately) do not appear here.
Multi-store scopeAll Store Views by default.
Time window30D rolling.
Alert triggerNone on this card directly. The rate-side alert is on Shipping Cost as % of Revenue.
Rolesowner, 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:
ComponentValue (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 methodOrder countSUM(shipping_amount)Avg per order
Royal Mail Tracked 48 (UK standard)2,840£25,560£9.00
Royal Mail Special Delivery380£11,400£30.00
DHL Express (international)220£8,800£40.00
ParcelForce 24410£6,150£15.00
Free shipping (>£75 threshold)920£0£0.00
Free shipping (loyalty perk)50£0£0.00
Total4,820£58,400avg paid £15 (excluding free)
Comparison to prior period:
WindowSUM(shipping_amount)Order countAvg per non-free order
14 Apr to 13 May 26£58,4004,820£15.00
15 Mar to 13 Apr 26£52,2004,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: 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 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

CardWhy pair it with Total Shipping
Shipping % of RevenueRate-side companion.
Free vs Paid ShippingComposition: how much of the order base avoided shipping fees.
Total RevenueDenominator-of-context.
AOVFree-ship thresholds drive AOV; pair to measure threshold effectiveness.
Total DiscountIncludes shipping discount portion.
Refund ValueRefunded shipping reduces net; this card is creation-time gross.
shipstation.shipping_costCarrier-side cost; the merchant-paid figure for true margin.
shopify.total_shippingShopify 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:
ReasonDirection 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):
CardExpected relationshipWhat divergence tells you
shipstation.shipping_costCarrier-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_costEasyPost equivalent if usedSame logic.
Sum of (Royal Mail postage + DHL bill + …)Should approximately match ShipStation totalReconciles carrier integration vs invoices.

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. 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 or book a demo to see this metric running on your own data.