DIFOT is simple—until you try to agree what “on time” means
DIFOT stands for Delivered In Full, On Time. It’s a supplier service metric that answers a basic procurement question: did the supplier deliver the complete order by the agreed date? The reason teams argue about DIFOT isn’t the formula; it’s the definitions. “On time” might mean the requested delivery date, the confirmed date, the dock appointment time, or the date goods are available for production. Pick the wrong one and you’ll spend months “improving” a number that doesn’t match operational pain.
DIFOT is often confused with OTIF (On Time In Full). They’re used interchangeably in many organizations. The practical difference is usually about context: OTIF is frequently discussed in customer order fulfillment, while DIFOT is commonly used for inbound supplier deliveries. The measurement choices matter more than the acronym.
What DIFOT measures (and what it doesn’t)
A good DIFOT definition ties directly to the business impact of late or short deliveries: line stoppages, expediting costs, missed customer shipments, excess safety stock, and wasted receiving effort. DIFOT does not measure quality defects, invoice accuracy, or packaging compliance—unless you deliberately include those in your pass/fail criteria (which can be tempting, but it muddies the signal).
One opinionated but useful approach: keep DIFOT narrowly focused on timing and completeness, then track quality and documentation as separate KPIs. When everything is rolled into a single “perfect order” score, the team loses the ability to diagnose what’s actually broken.
How to calculate DIFOT: the core formula and the choices you must document
At its core, DIFOT is a pass/fail rate: count deliveries (or order lines) that were both on time and in full, divided by total deliveries (or lines) in the period, expressed as a percentage.
DIFOT % = (Number of deliveries that are On Time AND In Full ÷ Total deliveries) × 100
The formula is the easy part. Procurement teams need to lock down five measurement decisions in writing, otherwise the metric will drift every time a stakeholder challenges an unfavorable result.
Unit of measure: shipment, purchase order, PO line, or SKU line. Shipment-level is easier; line-level is more diagnostic but harsher.
Date to judge “on time”: requested delivery date, supplier-confirmed date, dock appointment date/time, or goods-receipt posting date.
Tolerance window: strict (must be on/before date) or a window (e.g., ±1 day). Windows reduce noise but can hide chronic lateness.
Definition of “in full”: ordered quantity vs confirmed quantity; and whether backorders/partial shipments count as a fail.
Evidence source: ASN, carrier POD, gate-in timestamp, or ERP goods receipt. Each has failure modes (missing scans, late postings, etc.).
A practical example (and why line-level DIFOT usually hurts)
Imagine a PO with 10 lines scheduled for delivery on 15 May. The supplier arrives on 15 May with 9 lines complete; one line is short and will come next week. At shipment-level, you might score this as not in full, therefore not DIFOT. At line-level, 9 lines pass and 1 fails.
Neither is “right.” Shipment-level reflects the receiving team’s reality (a truck arrived, but the order wasn’t complete). Line-level reflects planners’ reality (most items are available). The mistake is mixing them across suppliers or categories and then comparing scores as if they mean the same thing.
Where DIFOT data goes wrong in real life
Most DIFOT disputes aren’t about supplier behavior; they’re about data artifacts. A supplier can be physically on time, but if goods receipt is posted two days later because the warehouse was short-staffed, DIFOT will show a failure if you use receipt-posting date. Or the opposite: a supplier can be late, but the team backdates receipts to keep production reporting clean.
Using goods-receipt posting date as the “arrival” date when posting is delayed or backdated
Measuring against requested date even when procurement routinely re-confirms later dates (and never updates the baseline)
Counting partial shipments as “in full” because the balance is due later (that’s a different metric: fill rate over time)
Ignoring cancellations and order changes that happen after the supplier has already picked/packed
Letting expedited shipments inflate performance (air-freight rescues the KPI while costs explode)
How to measure DIFOT step-by-step (without creating a reporting project that never ends)
Start with a definition that matches how the business feels pain. If a late delivery causes a line stop, “on time” should align to when materials are available for production, not when someone got around to posting a receipt. Then build the measurement from the cleanest available timestamps and quantities, even if it means accepting that the first version won’t be perfect.
Choose scope: inbound supplier deliveries only, or include intercompany transfers and subcontractors (they behave differently).
Pick the measurement grain: PO line is usually best for procurement actionability; shipment is best for simplicity.
Define “on time” baseline: requested vs confirmed date. If you manage confirmations, measure against confirmed date—and track confirmation discipline separately.
Set a tolerance window explicitly (or set none). Document it in the KPI name if needed (e.g., DIFOT ±1 day).
Define “in full” using ordered quantity at the time of the last confirmation, not the original PO if it routinely changes.
Extract events: promised date, actual arrival (gate-in/POD), and received quantity. Decide which system is the source of truth.
Calculate pass/fail per line (or shipment), then aggregate by supplier, plant, lane, and category.
Audit 20–30 “fails” manually each month to separate true supplier issues from internal process issues.
Targets, trade-offs, and what to do with the number
A DIFOT target is not a moral judgment; it’s a cost and risk decision. Pushing from, say, “good” to “near-perfect” often requires paying for premium transport, holding more inventory upstream, or accepting higher unit prices from suppliers who build extra capacity. Sometimes that’s worth it (critical parts, regulated products, high downtime costs). Sometimes it’s not (low-value consumables, long-tail SKUs).
Use DIFOT to drive specific conversations: Which lanes are unreliable? Which plants have receiving delays? Which suppliers confirm dates they can’t meet? The best outcome isn’t a prettier dashboard—it’s fewer expedites, fewer shortages, and fewer arguments about whose fault it was.