A shipment left on time, but the customer received only part of the order. OTIF, or on-time in-full, checks whether a delivery met both its timing and quantity requirements. For an order-level measure, divide the number of eligible orders that passed both checks by all eligible orders in the period, then multiply by 100. State the customer’s rules beside the result, because the same records can produce different scores under different definitions.
This article uses a hypothetical dataset and an explicitly defined order-level policy. It is not a retailer’s compliance specification or a delivery benchmark. The source references were checked October 16, 2026. Permute publishes the article and sells connected business data and custom applications; its reporting role is explained separately below.
Agree on what counts as on time and in full
ASCM’s warehouse KPI discussion describes OTIF in terms of receiving the complete order by the desired date. That combines two conditions on the same delivery. An on-time dispatch can still arrive late, and a complete delivery can miss its appointment. Preserve the evidence for both conditions instead of treating a shipping status as the answer.
McKinsey’s research with the Trading Partner Alliance describes differences between requested and promised dates, delivery windows, and order-, line-, or case-based measurement. Its 2019 paper proposes a case-based definition. The order-level example here uses a different, stated policy; apply the definition agreed with the customer when evaluating that customer’s deliveries.
- Unit of measurement: one order, one order line, or a quantity of cases. Keep the numerator and denominator in the same unit.
- Timing event: arrival, check-in, completed unloading, or another agreed event. Identify the timestamp source and timezone.
- Required date: preserve the requested date and any authorized revision, including who approved it and when.
- Quantity rule: define accepted products, pack conversions, substitutions, and the treatment of damage or shortages.
- Eligible population: decide which due orders belong in the period and how cancellations and missing evidence are shown.
Supplier lead time is a related but separate measure. It follows the elapsed time between specified events rather than the percentage passing a delivery promise. The lead-time calculation article separates arrival from stock becoming usable, which can help you choose the event your score should use.
Calculate OTIF for the same four orders
Assume four single-line orders are due on October 12, each for 100 individual units. The agreed policy accepts arrival at the destination by the end of October 12; early arrivals are allowed. A complete order contains all 100 correct, accepted units. There are no cancellations, substitutions, damaged units, or missing receipt records. The reporting cutoff is October 14, so all outcomes below are known.
| Order | Recorded arrival | Total units received by cutoff | Passes both checks? |
|---|---|---|---|
| A | 100 units on October 12 | 100 | Yes |
| B | 80 units on October 12; no other receipt | 80 | No: short delivery |
| C | 100 units on October 13 | 100 | No: late delivery |
| D | 100 units on October 12 | 100 | Yes |
Orders A and D pass both requirements. Order-level OTIF is therefore 2 ÷ 4 × 100 = 50%. Three orders have an arrival by the deadline, and three are complete by the reporting cutoff. Those separate rates are each 75%, but multiplying them gives 56.25%, which is not the observed OTIF. Check the intersection on each order instead of multiplying aggregate percentages.
Under a separate quantity-based policy, 280 of the 400 ordered units arrived by the deadline, or 70%. That figure gives partial credit to B’s 80 units; the order-level score does not. Both calculations can describe the same example, but they answer different questions. Label the unit and policy wherever the percentage appears, including exported reports.
Build one scoring record before counting orders
Start with the order and its lines, then attach delivery events using stable order and line identifiers. Retain the source event ID, delivered product, quantity, unit, location, and arrival timestamp. If an order has several shipments, combine the qualifying receipts for each line before deciding whether the whole order passed. Counting shipment rows directly can give a split order more weight than an order delivered once.
Use a hypothetical second test: an order for 100 units arrives as 60 before the deadline and 40 after it. Under the stated order-level policy, the order is complete by the later cutoff but fails OTIF because it was not complete on time. Save both receipt references. The late completion explains the failure and should not overwrite the earlier position.
Normalize units before summing. If the order uses cases of twelve and the receipt uses individual units, preserve the approved conversion and the product it applies to. Do not reuse a case size from a different SKU because its name looks similar. The inventory reconciliation article covers investigating the records behind mismatched quantities.
Order, agreed date, quantity, and policy
Receipts, timestamps, units, and IDs
Pass, fail, or unresolved with a reason
Keep changes and missing records visible
Do not replace the original required date with the latest expected date and silently recalculate history. Keep both values and the change record. If an authorized customer change alters the scoring deadline, apply that policy explicitly and retain the earlier result where needed for comparison. A forecast of when an order will arrive is not evidence that its delivery requirement changed.
Separate a confirmed late delivery from an unknown one. A missing arrival timestamp does not establish that an order passed. Show the number of unresolved eligible orders beside a provisional score and state how the denominator treats them. If your policy excludes incomplete evidence, also report coverage; otherwise a report can improve merely because difficult records disappeared.
An overdue order that has not shipped still belongs in a due-order cohort unless the agreed policy excludes it. Starting from completed shipments alone can omit precisely the failures the team needs to investigate. Keep cancellation and exclusion reasons, and ask the owner of the metric to approve them before closing the period.
Use failures to assign the next investigation
Break a missed delivery into the events you can verify: stock available, order released, goods dispatched, arrival, and acceptance. An arrival miss does not by itself prove a carrier caused it. The order might have been released late or waited for a confirmed appointment. Link the reason code to evidence and keep disputed causes unresolved until the responsible team reviews them.
Compare suppliers or periods only after aligning the scoring rules and populations. A case-based score for one customer and an order-based score for another should not share an unlabeled average. The supplier management software comparison discusses how to preserve evidence and ownership around supplier performance decisions.
Where Permute fits in delivery reporting
Permute sells connected business data and custom applications. We can scope a delivery report using supported order sources and supplied receiving records, retaining the identifiers used to connect them. An unmatched delivery or uncertain case conversion remains visible for review rather than becoming a guessed pass.
Your team declares the deadline, quantity rule, eligible cohort, and exception policy. We apply those definitions in reusable outputs with source evidence and access controls. An operations manager can inspect a failed order and the records used to score it, while seeing when those records were last refreshed.
Inspect the records behind a delivery score
Start with an available source and the order identifiers your report needs to preserve.
Keep customer policy and operational actions explicit
Permute does not choose a retailer’s compliance rules, guarantee delivery, or establish that a penalty is valid. This reporting example does not promise every carrier connection or authorize changes to orders. Missing proof of delivery, disputed quantities, and external actions each require an agreed source, responsible owner, and supported scope.
Make the percentage reproducible
Order-level OTIF counts the eligible orders that meet both the timing and quantity rules. Keep the required date, receipts, conversions, and scoring policy with each result. Report missing evidence alongside the score, and preserve the reason for exclusions. A percentage is useful in a delivery conversation when both parties can follow the same records to the same answer.
Review a delivery report that does not reconcile
Bring an order extract, receiving evidence, and the policy used to score them.
Questions about calculating on-time, in-full delivery
What is a good OTIF target?
Use the service commitment and measurement rules agreed for the customer or workflow. A benchmark measured in cases is not directly comparable with an all-or-nothing order score. Set improvement priorities from verified failures rather than adopting a percentage with a different denominator.
What if no orders were due in the period?
Report the measure as not applicable with a denominator of zero. Do not turn an empty period into 100% delivery performance. Keep the period visible so a rolling report does not confuse no activity with a successful delivery record.
Should a corrected receipt change last month’s score?
A correction can change the evidence, but record when it arrived and which result was restated. Keep a distinction between the score reported at close and the corrected score. That lets a reviewer explain the change without treating the original report as if it never existed.
Can shipping records alone establish OTIF?
They can support a measure explicitly defined around dispatch, but they do not prove arrival at the destination. For delivery-based OTIF, obtain the arrival evidence required by the agreed policy. Keep dispatch performance separately labeled when that is all the available data supports.