KPI Library / Delivery
On-Time Delivery (OTD)
Formula: Orders delivered on or before the promised date ÷ total orders shipped
Typical range: 95%+ is a common target for finished goods; under 90% usually points to scheduling, not logistics
On-time delivery (OTD) measures the percentage of orders that reach the customer on or before the date you promised, not the date you shipped. It is the metric the customer actually feels, which is why it shows up on a supplier scorecard whether you track it internally or not.
What good looks like
Most finished-goods operations target 95% or higher, with anything below 90% treated as a signal that the problem sits upstream of the shipping dock: bad promise dates, thin capacity, or a schedule that was never realistic to begin with. Chronic misses below 85% are rarely a logistics problem; they are a planning problem wearing a logistics costume.
Watch for OTD measured against ship date instead of delivery date. A plant can hit 98% “on time” by its own definition while the customer’s receiving dock sees late trucks all month, because transit time never entered the calculation. The other common trick is quietly pushing the promise date once a miss looks likely, which flatters the metric while the customer relationship erodes.
On-Time Delivery in Power BI (DAX)
With an order fact at order grain (promise_date, actual_delivery_date):
Total Orders = DISTINCTCOUNT ( fact_orders[order_id] )
On-Time Orders =
CALCULATE (
DISTINCTCOUNT ( fact_orders[order_id] ),
fact_orders[actual_delivery_date] <= fact_orders[promise_date]
)
OTD % = DIVIDE ( [On-Time Orders], [Total Orders] )
OTD % (Rolling 4wk) =
CALCULATE (
[OTD %],
DATESINPERIOD ( dim_date[date], MAX ( dim_date[date] ), -28, DAY )
)
Keep promise_date as the original commitment, captured once at order entry and never
overwritten. If the schedule changes, log a revision, do not update the field in place,
or the metric loses its meaning.
Common mistakes
- Using ship date instead of delivery date. Ship date measures the plant’s performance, not the customer’s experience, and the two diverge as soon as a carrier has a bad week.
- Redefining “on time” with a hidden window. A plant that quietly counts anything within two days of promise as on time is measuring a different, easier metric without telling anyone.
- Excluding cancelled or expedited orders from the denominator. Both are real events that affected a real customer; dropping them from the count flatters the number without fixing anything.