EnableYourData.com

KPI · Logistics

Average delivery time: formula and example.

Average delivery time is the average time between a shipment leaving your warehouse and being delivered to the customer. It is also called transit time. It mainly measures carrier performance, separate from your own order processing.

Average delivery time formula

Sum of (delivery date and time − dispatch date and time) across delivered shipments ÷ number of delivered shipments

Worked example

In May 2026 Acme Groothandel delivered 3,500 shipments. Together they spent 5,600 days in transit. The average delivery time is 5,600 ÷ 3,500 = 1.6 days.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A shorter, more consistent delivery time makes your delivery promise more reliable. The average can look fine while some shipments take much longer, so check a high percentile too. Compare by carrier, country and service, and against the transit time the carrier quotes.

Pitfalls with average delivery time

  • Confusing delivery time with order cycle time, when the customer experiences the latter.
  • Not looking separately at shipments that went back to the depot after a failed attempt.
  • Counting weekends for one carrier but not for another.

SQL & DAX

Calculating average delivery time 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', delivered_at) AS month,
       carrier,
       COUNT(*) AS delivered,
       ROUND(AVG(EXTRACT(epoch FROM delivered_at - shipped_at) / 86400)::numeric, 2) AS avg_delivery_days,
       ROUND((PERCENTILE_CONT(0.9) WITHIN GROUP (
         ORDER BY EXTRACT(epoch FROM delivered_at - shipped_at) / 86400))::numeric, 2) AS p90_delivery_days
FROM shipments
WHERE delivered_at IS NOT NULL AND shipped_at IS NOT NULL
GROUP BY 1, 2
ORDER BY 1, 2;
DAX · Power BI
Delivered Shipments = CALCULATE(COUNTROWS(Shipments), NOT ISBLANK(Shipments[DeliveredAt]))
Average Delivery Time (days) = DIVIDE(SUMX(FILTER(Shipments, NOT ISBLANK(Shipments[DeliveredAt])), DATEDIFF(Shipments[ShippedAt], Shipments[DeliveredAt], HOUR)) / 24, [Delivered Shipments])

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for average delivery time 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 average delivery time?

For each delivered shipment, subtract the dispatch time from the delivery time and take the average. The timestamps come from the carrier's tracking data. Work in hours or fractions of days for an accurate picture.

What is the difference between delivery time and order cycle time?

Delivery time runs from dispatch to delivery and mostly depends on the carrier. Order cycle time runs from order to delivery and includes your own order processing and picking. Customers experience the order cycle time.

Why does delivery time vary between carriers?

Carriers differ in network, collection times, sorting centres and delivery days. The service you choose, such as standard or express, and the destination country also make a big difference. Compare by service and country, not just by carrier.

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.