EnableYourData.com

KPI · Logistics

Shipping cost per order: formula and example.

Shipping cost per order is the total amount you pay carriers divided by the number of orders shipped. It is your own cost, not what you charge the customer. It shows how much of each order's margin goes on transport.

Shipping cost per order formula

Total shipping cost in the period ÷ number of orders shipped in the period

Worked example

In May 2026 Acme Groothandel paid carriers €27,200 for 3,400 orders shipped. Shipping cost per order is €27,200 ÷ 3,400 = €8.00.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

Lower shipping cost per order leaves more margin, but only if on-time delivery and damage do not get worse. It often rises because of more split shipments, heavier or bulkier parcels or more international deliveries. Compare by carrier, country and parcel type, and with what customers pay you for delivery.

Pitfalls with shipping cost per order

  • Surcharges such as fuel, tolls or size corrections arriving weeks later and not being assigned to the right month.
  • Dividing by shipments rather than orders, which hides split deliveries.
  • Netting off shipping charged to customers and still calling the result shipping cost.

SQL & DAX

Calculating shipping cost per order in SQL and DAX

Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.

SQL · PostgreSQL
SELECT date_trunc('month', shipped_at) AS month,
       SUM(cost) AS shipping_cost,
       COUNT(DISTINCT order_id) AS orders_shipped,
       ROUND(SUM(cost) / NULLIF(COUNT(DISTINCT order_id), 0), 2) AS shipping_cost_per_order,
       ROUND(SUM(cost) / NULLIF(COUNT(*), 0), 2) AS cost_per_shipment
FROM shipments
WHERE shipped_at IS NOT NULL
GROUP BY 1
ORDER BY 1;
DAX · Power BI
Shipping Cost = SUM(Shipments[Cost])
Shipping Cost per Order = DIVIDE([Shipping Cost], DISTINCTCOUNT(Shipments[OrderID]))

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for shipping cost per order per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.

Read more →

In your Power BI dashboard

Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.

Read more →

Custom dashboards (pilot)

Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

How do you calculate shipping cost per order?

Add up all carrier costs for a period, including surcharges, and divide by the number of orders shipped. Use the amounts on carrier invoices, not rates from a price list. Divide by orders rather than shipments to see what a customer order really costs.

What is the difference between shipping cost per order and per shipment?

One order can go out in several shipments, for example because of back orders or multiple boxes. Cost per shipment tells you about carrier rates, cost per order about what a customer order really costs. If the two drift apart, you are splitting orders more often.

How do you reduce shipping cost per order?

Start with the number of shipments per order and the box size, because you control those. Then compare carrier rates by country and weight band. A minimum order value for free delivery also changes the order mix.

Use AI on your own data. Securely, and without the headache.

In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.