KajoData / Career & business
Logistics KPIs: time, timeliness, returns and cost
One order queue shows how to measure time, fulfilment and cost without hiding delays. Separate orders, parcels, product units and available inventory.

A customer is waiting for the whole order while the dashboard says the warehouse has already shipped most units. Both statements may be true. The difficulty begins when we present the share of shipped products as the share of satisfied customers, or treat the average duration of completed deliveries as a complete picture of the queue.
In logistics, I would start by reconstructing one order’s journey. When was it accepted, what was promised, how much stock was available, when did each parcel leave and when did it arrive? Only then would I calculate Return Rate, Lead Time, Order Cycle Time, Fill Rate and Cost per Shipment. The following fictional example connects those measures with timeliness and inventory.
Establish the unit and process boundaries
An order, an order line, a product unit and a shipment are different units of analysis. One order can contain several lines and leave in several parcels. A shipment can contain many product units. Write down what each row represents before joining shop, warehouse and carrier data. Otherwise, the same parcel cost can easily be counted several times.
Metric names are sometimes used differently. The APQC glossary describes customer order cycle time from placement to delivery, while pick-to-ship covers the narrower interval from release for picking to shipment. I therefore do not assume that OCT means only a warehouse worker’s active handling time. Every interval needs an explicit beginning and end.
Agree whether the clock measures calendar hours, working days or active processing time. A weekend may belong to the customer’s wait while falling outside a particular warehouse schedule. Do not silently remove such periods. Different views can be useful as long as readers know which clock they are seeing and can reproduce the calculation.
The example warehouse
Six orders are accepted on 1 October 2026 at 10:00 UTC. The analysis cutoff is 7 October at 10:00 UTC. Every date below represents that same time and zone, so differences are whole calendar days. Each order concerns one SKU measured in individual units. There are no cancellations or changes to the original delivery promise.
Initial stock allocation happens when the orders are accepted. It is a separate event from physical dispatch. To keep the example manageable, we analyse one product and one warehouse, without combining individual units with kilograms or monetary values. The quantities are deliberately small enough to reconcile by hand.
| ID | Units, initial allocation and delivery promise |
|---|---|
| L1 | 10; allocated 10; promised 2026-10-03 |
| L2 | 10; allocated 6; promised 2026-10-03 |
| L3 | 5; allocated 5; promised 2026-10-03 |
| L4 | 5; allocated 0; promised 2026-10-03 |
| L5 | 10; allocated 10; promised 2026-10-06 |
| L6 | 10; allocated 0; promised 2026-10-09 |
Fulfilment is recorded at shipment level. All five parcels have confirmed delivery by the cutoff. L4 and L6 have not yet been dispatched. Their open status is known; it does not represent missing status data. Keeping that distinction explicit matters when interpreting incomplete orders later.
| Shipment and order | Units, dispatch, delivery, carriage |
|---|---|
| P1, L1 | 10; 2026-10-02; 2026-10-03; 12 PLN |
| P2, L2 | 6; 2026-10-02; 2026-10-03; 10 PLN |
| P3, L3 | 5; 2026-10-02; 2026-10-04; 8 PLN |
| P4, L5 | 10; 2026-10-03; 2026-10-06; 12 PLN |
| P5, L2 | 4; 2026-10-04; 2026-10-05; 8 PLN |
Opening stock available for sale was 31 units. Another four arrived before P5 was dispatched. Two units from L1 were also returned by the cutoff and remain under quality inspection. Their return transport cost 5 PLN. Packaging for the five outbound shipments cost 10 PLN, picking cost 20 PLN and allocated warehouse cost was 20 PLN. Every amount is fictional, in one currency and excluding taxes.
Lead Time: acceptance to complete delivery
Here Lead Time means the interval between order acceptance and delivery of the entire ordered quantity. L1 took two days, L2 four, L3 three and L5 five. The mean across four completed orders is 3.5 days. L2 only finishes with P5 because the first parcel did not contain all the ordered units.
L4 and L6 do not yet have a final Lead Time. We do not assign them zero or pretend that the cutoff was their delivery date. Both have spent six days in the queue. Beside the completed-order mean, we therefore show two open orders and their age. This preserves visibility of work that has not yet entered the completed population.
When a dashboard’s average falls, check whether similar orders are moving faster or whether easy cases are finishing while difficult ones remain open. Medians and percentiles can help with larger datasets, but no completed-case statistic replaces the current queue. Define the population first, then choose a summary that addresses the question. A more sophisticated statistic cannot repair a missing group of orders.
Segment according to actual conditions: delivery method, promised service, warehouse, region or product type. A longer route may justify a different promise, but does not automatically establish poor local team performance. Avoid explaining an entire country through a geographical stereotype. You need evidence about routes, process stages and service conditions before attributing a delay.
Order Cycle Time: name the interval precisely
For the warehouse analysis, we will measure acceptance to dispatch of the final required parcel. I will call this time to complete dispatch. It is a selected process interval, rather than a universal definition of OCT. It includes waiting for stock and carrier handover, so it does not represent active packing time alone.
L1 takes one day, L2 three, L3 one and L5 two. Their mean is 1.75 days. Ending L2’s clock at its first parcel would report one day instead of three, hiding the wait for missing units. L4 and L6 remain open at this stage too. A first movement is useful information, but it is not the same event as finishing the whole order.
In a real warehouse, I would separate waiting for availability, waiting for picking, picking, packing and carrier handover. That requires the corresponding events. With only order and label timestamps, you cannot fairly attribute the whole interval to packing staff. Printing a shipping label does not necessarily mean the carrier physically collected the parcel either.
During a sales peak, monitor arrivals, completions and the queue together. Higher volume alone does not demonstrate exponential growth in duration. Identify a specific constraint and compare relevant conditions. An additional workstation is a useful proposal when evidence indicates that stage restricts flow, rather than a different problem such as missing stock. The metric should guide investigation before it supports an intervention.
Timeliness: include orders already due
Our on-time-in-full definition requires the entire quantity to arrive no later than the original promised deadline. The denominator contains orders whose promised time is at or before the cutoff. These are L1, L2, L3, L4 and L5. L6 has a later deadline, so it is not yet assessed in this measure.
L1 and L5 meet the condition, giving 2 / 5, or 40%. L2 has some units on time but the remainder late. L3 arrives late and L4 is still waiting. Restricting the denominator to completed orders would produce 2 / 4, or 50%, excluding the open delay. The apparent improvement comes from selecting different data, without changing any delivery.
Do not retrospectively move the original promise to improve the result. If the customer agrees to a revised deadline, preserve both versions and the reason. You can report both perspectives without overwriting the original commitment. Merely extending a promise may raise the timeliness percentage while leaving the customer’s actual waiting time unchanged.
This measure covers timing and quantity. I am not calling it a complete perfect-order measure because we have not checked documentation accuracy or the condition of goods on arrival. Extend the assessment when those records are available. A dashboard label should only promise the scope actually evaluated; otherwise, readers may infer quality checks that never took place.
Fill Rate: units versus complete orders
Fill Rate needs both a unit and an evaluation point. Our version examines initial stock allocation at order acceptance. Demand totals 50 units and 31 are immediately allocated. Unit demand coverage is therefore 31 / 50, or 62%. This is an explicitly defined allocation variant, rather than the percentage of deliveries completed or a claim to reproduce every industry convention.
L1, L3 and L5 receive complete initial allocations: three of six orders, or 50%. L2 receives part of its quantity, while L4 and L6 receive none. The share of complete orders answers a different question from the share of units. APQC distinguishes availability and fulfilment measures, which are useful to examine alongside inventory.
The remaining 19 units initially lack allocation. Receiving four units later allows L2 to finish, but does not rewrite its historical initial allocation. By the cutoff, 35 of 50 units have been delivered, or 70%. This third number describes fulfilment by a particular time and receives a separate label. Mixing those snapshots would obscure whether availability or later execution changed.
With multiple products, inspect SKU and product-group results. A strong aggregate can coexist with shortages of a particular item. However, every missing unit is not automatically a lost sale: a customer may wait, amend the order or cancel. Determine the outcome from subsequent events instead of multiplying the backlog by price and labelling the entire result a loss.
Available stock and returned goods
Our physical inventory reconciliation is 31 opening units plus four received, minus 35 shipped, plus two returned. Two units are physically present. Both remain under quality inspection, so stock available for new sales is zero. A product’s physical presence is insufficient to establish that it is ready to be dispatched to another customer.
Open demand totals 15 units: five from L4 and ten from L6. L4 is already four days past its promise, while L6 is not yet due. Separating these cases helps prioritise action. A single backlog total does not identify which customer needs an urgent explanation or what new date can credibly be offered. Availability and urgency are related but different questions.
In a larger model, distinguish physical stock, reservations, quality holds and confirmed future receipts. Do not silently add planned inbound goods to stock already available. A negative balance also requires an explanation of event ordering or an inventory correction. Automatically replacing it with zero may hide the source problem instead of resolving it.

Return Rate: use a defined observation window
By the cutoff, two of 35 delivered units have returned, giving an observed unit return rate of approximately 5.71%. The return concerns one of four fully delivered orders, or 25%. Both values are correct under their definitions. Neither can replace the other, and the percentage of units returned is not the percentage of revenue lost.
This is a current snapshot of the same delivery group, rather than a final rate after a complete follow-up window. Parcels delivered later have had less time to generate returns. Compare groups using equal observation lengths after delivery. Dividing all returns received this week by all shipments sent this week mixes populations when those returns concern earlier deliveries.
Record whether the event is a return request, receipt of the goods or a financial refund. Those are different milestones. Examine reasons with customer support and quality teams, including missing reason codes. A high rate can identify a question to investigate, but alone does not establish a defective batch or an unsuitable campaign. Further evidence is required before assigning cause.
Cost per Shipment: define the cost scope
Carriage for the five parcels totals 50 PLN, so transport alone costs 10 PLN per shipment. Adding 10 PLN of packaging, 20 PLN of picking and 20 PLN of allocated warehouse cost produces 100 PLN, or 20 PLN per parcel. Put the scope and allocation method beside the measure so that another analyst can reproduce it.
The same 100 PLN divided by four fulfilled orders gives 25 PLN per order. L2 requires two shipments, so the denominators differ. We show the 5 PLN return transport cost separately, outside outbound shipment cost. A broader service cost is possible, but it needs a consistent definition of included events and expenses. Different scopes should not share an indistinguishable label.
Parcel dimensions can affect carriage charges. DHL Express explains comparison of actual and volumetric weight, using the greater value. Check the relevant service and contract. Do not apply one conversion factor to every transport mode or assume that empty space is the largest expense in every warehouse. The actual cost structure needs investigation.
When changing packaging, also examine damage, packing duration and complaints. A cheaper carton does not establish lower total service cost if it worsens other stages. I would begin with comparable shipments and a limited test with a clear scope. Without evidence about the consequences, I would not promise savings across the entire operation or treat the carrier invoice as the only outcome.
Compare reports at the same cutoff
A carrier report may arrive after the event it describes. Preserve both event time and information receipt time. You can then explain why yesterday’s queue changed when additional data arrived. Do not treat a delayed notification as a delivery today if the physical delivery happened earlier. This distinction helps reconstruct both the process and the information available to a decision-maker.
For a daily review, choose a consistent cutoff time and display source freshness. If one carrier has not supplied its data, mark the uncertain scope. Combining current warehouse records with outdated transport records can create an apparent backlog that does not exist. Check data coverage before using that result to discuss team efficiency or allocate additional work.
When changing cost allocation or the complete-delivery definition, record a version and effective date. Apply a consistent rule to period comparisons or mark the change boundary. Do not overwrite an old result without an explanation of the difference. Readers need to know whether the process, input data or calculation changed before they interpret a trend.
Validate the data and choose a next step
Before publication, I check event ordering, shipment uniqueness and quantities against orders. Delivery before dispatch requires explanation, as does parcel quantity exceeding the order. A duplicate carrier message does not create another parcel. I distinguish missing delivery confirmation from confirmed non-delivery, and an absent denominator from a genuine zero result.
When joining costs to order lines, I reconcile totals before and after the join. The approach in SQL for analysts helps. The ecommerce KPI guide also connects sales, returns and costs. In both cases, the definition is part of the result rather than a minor technical note beneath it.
In this example, I would first clarify the overdue L4 and stock availability for open orders. Then I would investigate L2’s split fulfilment and L3’s delay. That is a proposed investigation sequence, rather than a ready-made plan for an actual warehouse. A useful report identifies concrete cases for discussion and allows the consequences of a later decision to be checked.
Key takeaways
Does an open order have zero Lead Time?
No. Its final duration is not yet known. Show its current age and include it in the timeliness assessment once its deadline is due.
Why can Fill Rate have different values?
It can measure units, lines or complete orders at different fulfilment stages. Initial allocation in this example covers 62% of units but 50% of complete orders.
Is cost per parcel the same as cost per order?
Not always. One order may require several parcels. Define the denominator, cost scope and treatment of return transport.
