How to Calculate On-Time Delivery: OTD, In Full and OTIF on Sixteen Order Lines
Process AnalysisMetrics

How to Calculate On-Time Delivery: OTD, In Full and OTIF on Sixteen Order Lines

T. Krause

T. Krause

Shipped on time, received late

Line 5 in the example below left the dock on 10 June, the day it was promised. The customer booked it into goods receipt on 11 June. The shop's dispatch report shows it as on time. The customer's supplier scorecard shows it as late. Both have done their arithmetic correctly and they still disagree, because they are counting different events.

On-time delivery looks like the simplest metric in operations. Count the lines that arrived when promised, divide by all lines. In practice every part of that sentence needs a rule: what "arrived" means, which date counts as "promised", whether early is fine, and what happens to a line that arrives on time but short. Change one rule and the same month can read 81% or 33%.

The on-time delivery formula

On-time delivery (OTD) = order lines delivered on time ÷ order lines due × 100

For this example a line counts as on time if the customer receives it on the promised date or up to two days before. Anything earlier is early, and early is a miss here, because a pallet that turns up four days ahead takes floor space the customer had planned for something else. Some companies accept any early delivery. Pick a rule and keep it from month to month.

On time says nothing about quantity, so a second check covers it:

In full = order lines delivered complete ÷ order lines due × 100

A short delivery followed by a top-up a week later is two deliveries. The line failed the in-full check at the first one, and the top-up doesn't repair it.

A line that passes both checks counts toward OTIF, on time in full:

OTIF = order lines delivered on time and complete ÷ order lines due × 100

The promised date is the one in your order confirmation, the requested date the one on the customer's purchase order. They often differ, because the confirmation is where a supplier pushes back on dates it can't meet. Score yourself on the promise and you learn whether your confirmations hold. A customer who rates suppliers on its own purchase order dates sees a different month, usually a worse one, so it pays to calculate that version too.

Sixteen order lines from one June

None of this happened. The sheet metal shop and its order book are made up for this article to show the arithmetic, and no client's data sits behind any figure.

The shop makes brackets and enclosures for equipment builders. In June 2026 it has six orders with sixteen lines due. For each line the list shows the date the customer asked for, the date the shop promised, the date it shipped, the date the customer received it, and the quantities ordered and received. Line 15 had not shipped by the end of June.

LineOrderRequestedPromisedShippedReceivedQty orderedQty received
1O-412 Jun4 Jun3 Jun4 Jun300300
2O-412 Jun4 Jun3 Jun4 Jun150150
3O-425 Jun5 Jun4 Jun5 Jun6060
4O-425 Jun9 Jun8 Jun9 Jun2424
5O-4310 Jun10 Jun10 Jun11 Jun400400
6O-4310 Jun12 Jun11 Jun12 Jun9075
7O-4310 Jun12 Jun5 Jun8 Jun3636
8O-4415 Jun15 Jun12 Jun15 Jun1818
9O-4415 Jun17 Jun17 Jun18 Jun4545
10O-4415 Jun17 Jun16 Jun17 Jun200200
11O-4519 Jun19 Jun18 Jun19 Jun3636
12O-4519 Jun23 Jun24 Jun25 Jun500500
13O-4519 Jun19 Jun15 Jun16 Jun1212
14O-4624 Jun24 Jun23 Jun24 Jun8080
15O-4624 Jun26 Junopenopen300
16O-4624 Jun26 Jun25 Jun26 Jun6464

The quantities are quick. Line 6 brought 75 of 90 pieces, and line 15 brought nothing. 14 of 16 lines arrived in full, which is 87.5%.

The dates take longer. Lines 5 and 9 arrived one day after their promise and line 12 two days after. Line 7 arrived four days early and line 13 three days early, both outside the two-day limit. Line 15 never arrived. That leaves 10 of 16 lines on time, an OTD of 62.5%.

OTIF needs both. Line 15 fails both checks, so the failures add up to seven lines rather than eight. 9 of 16 lines were on time in full, an OTIF of 56.25%.

Against the requested date, the picture changes again. The shop promised a later date than the customer asked for on ten of the sixteen lines. Only lines 3, 7, 8, 11 and 14 arrived within the window around the requested date. Line 7 is the odd one. Against its promise it was four days early. Against the customer's request of 10 June it was two days early and counts as on time. That gives 5 of 16, or 31.25%, and since all five were complete, OTIF against the requested date is also 31.25%.

Five ways the figure goes wrong

Each one uses the sixteen lines above.

1. Leaving open lines out

Line 15 was due on 26 June and nothing had shipped. A report that only looks at delivered lines drops it, and OTIF rises from 9 of 16 to 9 of 15, from 56.25% to 60.0%. The worst failure in the month, a line with nothing delivered, has improved the score.

Every line that is due in the period belongs in the denominator, delivered or not.

2. Counting the dispatch date

The shop's own system knows when goods leave. It often doesn't know when they arrive. Score the shipped date against the same window and lines 5 and 9 turn on time, since both left on their promised day. Line 8 goes the other way. It shipped on Friday 12 June for a Monday 15 June promise, three days early, and the window marks it as early.

On balance OTD rises from 62.5% to 68.75% and OTIF from 56.25% to 62.5%. If you can only measure dispatch, add the normal transit time to the ship date, or call the figure on-time dispatch so nobody mistakes it for what the customer sees.

3. Treating every early delivery as on time

Drop the two-day limit and lines 7 and 13 count. OTD goes from 62.5% to 75.0%, OTIF from 56.25% to 68.75%.

Whether that's right depends on the customer. Line 13 arrived on 16 June for a 19 June slot. A customer running a tight goods-in schedule may have had nowhere to put it. Agree the early limit with the customers who care, and use one rule in the report.

4. Overwriting the promise date

When a delay becomes known, a planner often enters the new date in the order. Done for lines 5, 9 and 12, with the new promise matching the day each one arrived, all three become on time. OTD climbs to 81.25% and OTIF to 75.0%, yet the customers received exactly what they received before.

The fix is a second date field. Copy the promise into it when the confirmation goes out, lock it, and run the report against the copy.

5. Switching between lines and orders

Orders O-41 and O-42 were on time in full on every line. Each of the other four orders has at least one failed line. At order level OTIF is 2 of 6, or 33.3%. At line level it is 56.25%.

Order O-44 shows why the order view is harsher. Two of its three lines were fine, but line 9 came a day late, and a customer who can't start assembly until the whole kit is there waited for line 9. Which view to report depends on what your customers do with the parts. Choose it for the trend line and leave it there. If you want the other, plot it as a second line on the same chart.

The next step

Take the order lines that were due last month, shipped or not, and add the column most exports don't have, the first promised date. If your ERP only keeps the current promise, start saving the first one now. Next month's figure will then be the first one you can trust. Settle the early limit before you look at any result, so the result can't shape the rule, and put OTIF against the requested date next to the promised-date figures.

For each late line, find out where it waited between order entry and dispatch. How to calculate lead time follows one order through six stations and separates the work from the queuing. If the waiting sits in front of one machine, how to calculate OEE shows whether it is short of capacity or losing time to stoppages.

Our process analysis comes with a fixed scope, a fixed duration and a fixed price. It follows one core process, order processing for instance, on site from the triggering request to the close and measures it with real timestamps. Applied to delivery reliability, that shows where a promised date is first entered and each point where someone later moves it, which the ERP report rarely records.

Cookie settings

We use technically necessary cookies to run this site. Optional anonymised analytics cookies (Google Analytics) help us improve it — we only set these with your consent.

More in the privacy policy