← Back to Metrics

Average Delivery Time

Also known as: Delivery Duration, Shipping Time

EfficiencymetricLogistics & Supply Chain

Measures the average time taken from order dispatch to delivery at the customer's location. It provides insights into the efficiency of the delivery process.

Business Use Case

Executives use this metric to identify bottlenecks in the delivery process and implement strategies to improve delivery speed.

Business Criticality

High

Journey / Navigation Area

Generic

Owning Function

Data Architecture Team

Scope

Item

Formula

SUM(delivery_time) / COUNT(deliveries)

Calculation Notes

Exclude deliveries with incomplete data or those canceled. Consider time zones and public holidays.

Technical Details

Measure Typeaverage
Aggregation WindowTime based - Daily

Events

PlatformEvent
Google Analytics 4purchase
Adobepurchase

Data Mappings

W3 Data Layer
{
  "transaction": {
    "averageDeliveryTime": 3.5
  }
}
GA4 Data Layer
{
  "event": "purchase",
  "ecommerce": {
    "average_delivery_time": 3.5
  }
}
Adobe Client Data Layer
{
  "event": "purchase",
  "ecommerce": {
    "averageDeliveryTime": 3.5
  }
}
XDM Mapping
{
  "_experience": {
    "analytics": {
      "customDimensions": {
        "averageDeliveryTime": 3.5
      }
    }
  }
}

SQL Queries

Google Analytics 4 (BigQuery)
-- ==========================================
-- 1. GOOGLE BIGQUERY SQL (GA4 Export)
-- ==========================================
SELECT AVG(TIMESTAMP_DIFF(delivery_time, order_time, MINUTE)) AS average_delivery_time
FROM (
  SELECT
    TIMESTAMP_MICROS(MAX(CASE WHEN event_name = 'purchase' THEN event_timestamp END)) AS order_time,
    TIMESTAMP_MICROS(MAX(CASE WHEN event_name = 'delivery' THEN event_timestamp END)) AS delivery_time
  FROM `your-project.analytics_123456789.events_*`, UNNEST(event_params) AS params
  WHERE event_name IN ('purchase', 'delivery')
  GROUP BY user_pseudo_id
)
WHERE delivery_time IS NOT NULL AND order_time IS NOT NULL;
Adobe Experience Platform (AEP Query Service)
-- ==========================================
-- 2. ADOBE AEP QUERY SERVICE SQL (XDM Dataset)
-- ==========================================
SELECT AVG(DATEDIFF(delivery_time, order_time, 'minute')) AS average_delivery_time
FROM (
  SELECT
    MAX(CASE WHEN xdm:eventType = 'commerce.purchases' THEN xdm:timestamp END) AS order_time,
    MAX(CASE WHEN xdm:eventType = 'commerce.deliveries' THEN xdm:timestamp END) AS delivery_time
  FROM your_dataset.your_table
  WHERE xdm:eventType IN ('commerce.purchases', 'commerce.deliveries')
  GROUP BY xdm:identityMap.ecid.id
)
WHERE delivery_time IS NOT NULL AND order_time IS NOT NULL;

Source Data

ERP

Dependencies

[ "Order Dispatch Time", "Delivery Completion Time" ]

Report Attributes

Region Delivery Method Product Category

Recommended Reporting Views

Views
Logistics Performance DashboardOperational Efficiency Dashboard

Segment Eligibility

true

Governance

Data Sensitivityinternal

Governance

Created bydevyendarm
Created on8/19/2026
Last modified bydevyendarm
StatusPUBLISHED

GitHub

View File on GitHubcatalog/metrics/average-delivery-time.yml

Community Discussion