The bottom line
OTIF (On Time In Full) and DIFOT (Delivered In Full On Time) both measure whether an order arrived complete and on time, and many teams use them interchangeably. The formulas are the same shape — the percentage of orders (or lines, or units) that were both on time and in full — but the detail decides the number: what counts as "on time" (your dispatch date or the customer’s delivery window), what counts as "in full" (order, line or unit level), and whose clock and tolerance you measure against. The trap for suppliers is measuring to their own definition while a retailer like a major grocer fines against a stricter one — a tight delivery window, unit-level fill, no tolerance. Measure both metrics at the level your biggest customer enforces, not the level that flatters your dashboard.
In This Article
Same Instinct, Different Number
OTIF and DIFOT both answer the same operational question: did the order turn up on time and complete? On time, because a late delivery breaks the customer’s plan. In full, because a short delivery means they cannot make or sell what they intended. Both are combined metrics — an order only counts as a success if it is on time AND complete, so a delivery that is on time but short fails, and one that is complete but late fails too.
Because they measure the same instinct, teams often treat OTIF and DIFOT as the same thing. They are close, and in some businesses they are used interchangeably, but they are not identical — and the differences are exactly where the money is, because your largest retail customers attach penalties to their version of the number.
The confusion is worth clearing up precisely, because a supplier who manages to their own comfortable definition and gets fined against a retailer’s strict one has the worst of both worlds: a dashboard that says green and an invoice that says red.
OTIF and DIFOT both fail an order that is late OR short — on-time-but-incomplete fails, complete-but-late fails. They measure the same instinct, but the definitions differ exactly where the money is.
OTIF Defined, With the Formula
OTIF — On Time In Full — is the share of deliveries that arrived both within the agreed time window and complete. The formula is straightforward in shape: OTIF % = (orders delivered on time and in full ÷ total orders) × 100. An order scores 1 only if it clears both gates; miss either and it scores 0.
The two components decompose for diagnosis. "On Time" is measured against an agreed date or window — and whose date matters enormously, which is the crux below. "In Full" is the quantity delivered against the quantity ordered, and it too can be measured at different levels: the whole order, each order line, or each unit. A 98% unit fill can still be a failed order if the definition is all-or-nothing at order level.
OTIF is the term most common in FMCG and grocery retail, and it is usually the phrase on the retailer’s scorecard and in the penalty clause. When a major grocer talks about supplier compliance, OTIF is almost always the metric — measured to their rule, not yours.
DIFOT Defined, With the Formula
DIFOT — Delivered In Full On Time — is the same combined measure with the words reordered: DIFOT % = (deliveries in full and on time ÷ total deliveries) × 100. Conceptually it is OTIF. In many organisations the two are genuinely synonyms, and choosing between the terms is a matter of house style or region rather than substance.
Where a distinction is drawn, it tends to be one of emphasis or scope. Some businesses use DIFOT as the internal operations measure — how the distribution and warehouse function is performing against every delivery it makes — and reserve OTIF for the customer-facing, retailer-scored version. Others use DIFOT at delivery or consignment level and OTIF at order level. The label is less important than being explicit about the basis underneath it.
The practical point: do not assume DIFOT and OTIF are computed the same way just because they mean the same thing. Two teams can report both and get different numbers purely because one counts at line level and the other at order level, or one measures against dispatch and the other against arrival.
DIFOT and OTIF are conceptually the same combined metric. The number differs not because the concept differs but because the basis does — order vs line vs unit, dispatch vs arrival, your window vs the customer’s.
Where the Two Diverge
Three choices decide whether your OTIF and DIFOT agree, and whether either matches what a customer measures. First, the clock: is "on time" the date you dispatched, the date you promised, or the date the goods actually arrived at the customer’s dock inside their booking window? Measuring to your dispatch date flatters the number and is the single most common reason a supplier’s internal figure looks healthier than the retailer’s.
Second, the fill basis: order, line or unit. Order-level is strictest — one short line fails the whole order. Line-level is more forgiving, unit-level more forgiving still. A business quietly measuring unit fill can report a comfortable number while failing a meaningful share of orders on an order-level rule.
Third, tolerance. Some definitions allow a grace window — an hour, a day — or a small quantity tolerance. Others allow none. A retailer’s scorecard often has zero tolerance and a narrow, booked delivery slot, which is far stricter than the internal target most suppliers set themselves. Get any of these three wrong relative to your customer and your metric and theirs will disagree — and theirs is the one with the penalty attached.
How Retailer Penalties Change the Maths
Major grocers run supplier compliance programmes that fine for missed OTIF — a percentage of the cost of the goods on shipments that arrive late or short. The fine is calculated against the retailer’s definition, and that definition is deliberately strict: on time means inside a narrow booked delivery window measured at their receiving dock, in full is often unit-level, and tolerance is frequently zero. Deliver early, and some programmes penalise that too, because it disrupts their inbound schedule.
This changes the maths in a way that catches suppliers out. Your internal OTIF, measured against your dispatch date with a day of tolerance and line-level fill, can read 95% while the retailer’s scorecard for the same shipments reads well below that — because they are measuring arrival inside a two-hour slot, unit-level, no tolerance. The gap between the two numbers is not an error; it is two different definitions, and the retailer’s is the one that generates the invoice.
The consequence for measurement is direct: if you supply a penalty-enforcing retailer, you must measure OTIF against their rule, not yours. That means capturing the actual arrival time inside the booked window, computing fill at the level they enforce, applying their tolerance (usually none), and reconciling your number to their scorecard so a dispute can be evidenced. A supplier who cannot reproduce the retailer’s figure cannot challenge a wrong fine, and cannot see a real problem coming.
Your internal OTIF can read 95% while the retailer’s scorecard for the same shipments reads far lower — arrival inside a two-hour slot, unit-level, zero tolerance. The gap is not an error; it is two definitions, and theirs is the one on the invoice.
So What — Measure to the Enforced Rule
OTIF and DIFOT are the same instinct with the detail in different places. For internal operations, pick one term, define the basis explicitly — clock, fill level, tolerance — and hold it steady so the trend means something. Arguing about the label wastes time; being vague about the basis wastes money.
For any customer that enforces penalties, throw out the comfortable internal definition and measure to theirs. Capture arrival against the booked window, compute fill at their level, apply their tolerance, and reconcile to their scorecard every period. The goal is not a number that looks good on your dashboard; it is a number that matches the one generating your fines, so you can dispute the wrong ones and fix the real ones.
The build that supports this is a supply chain data layer that joins your dispatch and order data with actual delivery confirmations and the retailer’s receiving data, computes OTIF at each definition, and shows both your internal view and the retailer-enforced view side by side. That is when OTIF stops being a monthly argument and becomes an early-warning signal — you see the penalty coming while there is still time to move the shipment.
Define your internal metric explicitly and hold it steady; measure the customer-facing one to the retailer’s enforced rule. Show both views side by side and OTIF becomes an early-warning signal, not a monthly argument.
If your internal OTIF looks healthy but the retailer penalties keep arriving, the problem is usually definition, not performance — you are measuring a different number from the one on the invoice. 30 minutes with Amit on measuring OTIF and DIFOT to the rule your biggest customer enforces, and building the data layer that shows both views. No slides. No pitch deck. No obligation to proceed.
Free Assessment
Where does your operation sit on the data maturity curve?
8 questions. 3 minutes. You get a scored breakdown across data infrastructure, analytics readiness, and automation potential — with a specific next step for your industry.