How to calculate On-Time Delivery Rate
On-time delivery rate is the percentage of deliveries that arrived on or before the promised date.
Formula
On-time rate = deliveries on or before promised date ÷ deliveries with a delivery date × 100SQL query
This example assumes: deliveries(id, carrier, promised_date, delivered_date). It is written in PostgreSQL syntax; date functions differ slightly in MySQL, BigQuery and SQLite, and your column names will differ from these.
SELECT carrier,
COUNT(*) AS deliveries,
COUNT(*) FILTER (WHERE delivered_date <= promised_date) AS on_time,
COUNT(*) FILTER (WHERE delivered_date <= promised_date) * 100.0
/ NULLIF(COUNT(*), 0) AS on_time_pct
FROM deliveries
WHERE delivered_date IS NOT NULL
GROUP BY carrier
ORDER BY on_time_pct;Common mistakes that make On-Time Delivery Rate wrong
- Deliveries with no delivery date must be reported separately, not silently counted as late or on time.
- Promised date must be the date the customer was promised, not a rescheduled one.
- Carriers with few deliveries show extreme percentages; show the count.
Ask for On-Time Delivery Rate in plain English
Instead of writing the query yourself, you can type the question. SchemaChat turns it into SQL against your connected database or uploaded file, runs it, and shows the SQL and the figures it used so you can check the answer before you share it. It does not replace your judgement about the definition: check that the query matches the formula your business uses.
- What was our on-time delivery rate last week, by carrier?
- Which lanes have the most late deliveries?