EnableYourData.com

KPI · Logistics

First attempt delivery rate: formula and example.

First attempt delivery rate is the percentage of shipments the carrier delivers on its first attempt. If the first attempt fails, there is a second trip, a pick-up point or a return to sender. That costs time, money and customer satisfaction.

First attempt delivery rate formula

Shipments delivered on the first attempt ÷ total shipments with a delivery attempt × 100%

Worked example

In May 2026 carriers made 3,500 delivery attempts for Acme Groothandel's shipments. Of these, 3,325 succeeded first time. The first attempt delivery rate is 3,325 ÷ 3,500 × 100% = 95.0%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A higher rate means faster delivery and fewer where-is-my-parcel questions for customer service. For business customers it often depends on opening hours and a correct delivery address, for consumers on whether someone is at home. Compare by carrier, customer type and region, and look at the reasons for failed attempts.

Pitfalls with first attempt delivery rate

  • Carriers counting delivery to a neighbour or pick-up point differently.
  • Leaving out shipments with no tracking status.
  • Not recording whether a failed attempt was caused by a wrong address, which you can fix yourself.

SQL & DAX

Calculating first attempt delivery rate 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,
       carrier,
       COUNT(*) AS shipments,
       COUNT(*) FILTER (WHERE first_attempt_success) AS first_attempt_ok,
       ROUND(100.0 * COUNT(*) FILTER (WHERE first_attempt_success)
             / NULLIF(COUNT(*), 0), 1) AS first_attempt_pct
FROM shipments
WHERE first_attempt_success IS NOT NULL
GROUP BY 1, 2
ORDER BY 1, 2;
DAX · Power BI
Attempted Shipments = CALCULATE(COUNTROWS(Shipments), NOT ISBLANK(Shipments[FirstAttemptSuccess]))
First Attempt Delivery % = DIVIDE(CALCULATE(COUNTROWS(Shipments), Shipments[FirstAttemptSuccess] = TRUE()), [Attempted Shipments])

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for first attempt delivery rate 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 first attempt delivery rate?

Divide the number of shipments delivered on the first attempt by the total number of shipments for which an attempt was made. The status comes from the carrier's tracking data. Decide whether delivery to a neighbour counts as a success.

Why do first delivery attempts fail?

The most common causes are nobody being there, an incorrect or incomplete address and a business that is closed. Sometimes the recipient refuses the parcel. Record the reason, because a wrong address needs a different fix than a closed door.

How do you improve first attempt delivery rate?

Validate addresses at checkout and ask business customers for opening hours or a fixed delivery point. Send customers an expected delivery window in advance so someone is there. Offer delivery to a pick-up point where you can.

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.