For many small job shops, “on-time delivery” sounds simple until the daily reality shows up: one line ships today, the rest goes tomorrow; the customer got something, but not everything; production says the job was done, shipping says it was short, and sales is trying to calm down an upset buyer. That is exactly where a basic due-date metric stops being useful. If you only track whether an order shipped by the promised date, you can miss the real service problem: partial shipments that create expediting, rescheduling, and constant customer follow-up. For a complete overview, see our manufacturing execution system software guide.
That is why OTIF, or on-time in full, matters. OTIF forces you to measure two things separately and together: did the shipment leave on time, and did the customer receive the complete quantity committed? For a small manufacturer, that distinction is powerful. It helps you stop arguing about whether a delivery was “basically on time” and start identifying whether missed customer commits are actually caused by weak scheduling, material shortages, rework, queue delays, or last-minute order splitting.
OTIF is widely used in supply chains as a customer service measure because it captures both timing and completeness. If you want a general definition, Wikipedia’s OTIF overview is a simple reference point, while broader manufacturing measurement guidance can also be found through organizations like NIST. For small job shops, though, the value is not the textbook definition. The value is turning OTIF into a practical shop-floor metric you can trust.
What OTIF means in a job shop
In a repetitive high-volume plant, OTIF is often measured against clean, standardized deliveries. In a job shop, it is messier. Orders may contain multiple part numbers, staggered operations, outside processing, customer-requested splits, and revised commits. That means your OTIF definition has to be explicit.
Use a simple operational definition
For most small shops, OTIF should mean:
- On time: the shipment leaves on or before the committed ship date.
- In full: the shipment fulfills the complete quantity committed for that customer order line, not just part of it.
- OTIF pass: both conditions are true.
If either condition fails, the order line does not count as OTIF.
Measure at the order-line level first
Customer orders often contain multiple line items with different due dates or production paths. Measuring OTIF only at the full sales-order level can hide problems. A better starting point is the customer order line:
- Customer order number
- Line number
- Part number
- Committed ship date
- Committed quantity
- Actual shipment date
- Actual shipped quantity
Once you have line-level OTIF, you can roll it up by customer, part family, planner, work center, or sales rep.
Why “on-time delivery” alone hides the real problem
A shop can report decent on-time delivery while still frustrating customers. Here is why:
- An order ships on the due date, but only 60% of the quantity is ready.
- The balance ships three days later after rework is completed.
- The ERP marks the first shipment as on time.
- The customer sees a shortage and may still stop their line or adjust their schedule.
From the customer’s perspective, that was not a successful delivery. OTIF captures that failure. More importantly, splitting lateness from incompleteness helps you find the source of the miss.
When you separate the two, you can see patterns like:
- Late but complete: often linked to scheduling, queue time, downtime, or poor dispatch discipline.
- On time but incomplete: often linked to shortages, scrap, rework, count errors, or intentional partial shipments.
- Late and incomplete: usually a deeper execution problem involving multiple failure points.
If daily priority churn is one of your root causes, it is worth tightening your release and dispatch process. This related article on dispatch list accuracy shows how to reduce schedule chaos that often drives late jobs.
How to measure OTIF at the shipment level
Shipment-level OTIF tells you whether each customer commit was met as promised. This is your customer-facing score.
The core fields you need
You do not need a complex system to start. Track these fields consistently:
| Field | Purpose |
|---|---|
| Customer | Roll up performance by account |
| Sales order and line | Identify the exact commitment |
| Part number | Spot recurring issues by item |
| Committed ship date | Baseline for on-time measurement |
| Committed quantity | Baseline for in-full measurement |
| Shipment date | Actual timing |
| Shipped quantity | Actual fulfillment |
| Shipment type | Full, partial, replacement, customer-requested split |
| Exception reason | Why the commit was missed |
Score each line four ways
For every committed order line, classify the result:
- On time and in full
- On time but not in full
- Late but in full
- Late and not in full
This four-box view is much more actionable than a single on-time percentage.
A simple formula
At the line level:
- On-time flag: 1 if shipment date is on or before committed date, else 0
- In-full flag: 1 if total quantity shipped by the committed date is at least the committed quantity, else 0
- OTIF flag: 1 only if both flags are 1
Then:
OTIF % = OTIF-passing lines / total committed lines × 100
Example: If you shipped 100 committed order lines this month and 78 were both on time and in full, your OTIF was 78%.
That example is illustrative, but the method is what matters.
How to measure OTIF at the work-order level
Shipment-level OTIF tells you what the customer experienced. Work-order-level tracking tells you why. This is where small shops can turn OTIF from a scorecard into a diagnostic tool.
Link shipments back to work orders
For each customer order line, identify the work order or work orders that supplied it. Then track:
- Work order due date
- Planned quantity
- Completed quantity by due date
- First-pass yield or rework occurrence
- Material shortage events
- Queue time between operations
- Schedule changes or split decisions
If one shipment was supplied by multiple work orders, keep that relationship visible. Partial shipments are often the result of one work order finishing while another gets stuck in inspection, outside processing, or waiting for material.
Create “ready-to-ship in full” visibility
A useful intermediate metric is whether the work order produced enough accepted quantity to support the full committed shipment by the commit date. That is different from whether shipping actually sent it.
This distinction uncovers handoff problems such as:
- Production finished enough quantity, but shipping did not consolidate it in time.
- Inventory records showed enough stock, but some pieces were nonconforming or allocated elsewhere.
- The order was split at the last minute to satisfy another hot customer.
Without work-order-level visibility, all of those failures can look identical in the shipment history.
Separate lateness from incomplete shipments in your reporting
If you want OTIF to drive action, do not stop at one top-line number. Build reports that separate timing from completeness.
The three views every small shop should have
- OTIF by customer
Shows which accounts are getting the service level you promised. - Late-but-complete rate
Shows scheduling and flow issues. - On-time-but-short rate
Shows shortages, scrap, rework, and split-shipment behavior.
When you compare those side by side, root causes become clearer.
What each pattern usually means
| Pattern | Likely causes |
|---|---|
| High late-but-complete | Poor sequencing, overloaded work centers, long queue times, machine downtime, weak dispatch control |
| High on-time-but-short | Material shortages, scrap, rework, count inaccuracies, customer service pressure to ship partials |
| High late-and-short | Multiple failures across planning, execution, and quality |
| High OTIF variance by customer | Priority gaming, inconsistent commits, account-specific complexity |
If you suspect jobs are aging in queues before they ever become urgent, this article on order aging is a useful companion. If long waits between operations are the issue, see queue time tracking.
The root-cause codes that make OTIF useful
Most shops already know some orders miss. The hard part is proving why. Add a reason code to every OTIF failure and keep the list tight enough that people will actually use it.
Recommended reason-code groups
- Scheduling: released late, bumped by priority change, overloaded work center, unrealistic promise date
- Material: raw material shortage, purchased component shortage, outside processing delay, kitting error
- Quality: scrap, rework, inspection hold, customer return replacement consumed available stock
- Execution: machine downtime, labor availability, setup overrun, missing tooling
- Shipment decision: customer-requested split, internal expedites, partial shipped to satisfy urgent need
- Administrative: order entry error, date changed without update, pick/pack error
The goal is not perfect forensic precision. The goal is repeatable signal. Over time, your misses will cluster.
For shops fighting recurring shortages, pair OTIF with better shortage control using material shortage tracking. If quality is a major source of incomplete shipments, see rework tracking and our scrap cost calculator to quantify the financial side of the same problem.
How to stop partial order firefighting
Partial shipments are not always bad. Sometimes a customer explicitly wants a split, or a partial ship is the least harmful option. The real problem is unmanaged, last-minute splitting that hides upstream failure.
Set rules for when a split shipment is allowed
Define a simple policy:
- Was the split requested by the customer?
- Did sales approve the service tradeoff?
- Was the remaining balance date confirmed before shipment?
- Was the root-cause code captured?
If the answer is no, the split should not be treated as a normal success.
Review partials in a daily exception meeting
Do not review every order. Review only exceptions:
- Orders due in the next 3–5 days with quantity risk
- Orders likely to ship partial
- Orders already split once
- Orders waiting on rework disposition or missing components
This keeps OTIF operational instead of historical.
Freeze the last-mile plan
Many partials are self-inflicted in the final 24–48 hours. The shop changes priorities, steals material, or diverts labor to a hotter order. A short frozen window on near-term shipments can dramatically reduce last-minute split behavior, especially when paired with a more disciplined dispatch process.
A practical weekly OTIF review for a small shop
You do not need a corporate dashboard culture to use OTIF well. A 30-minute weekly review is enough if the data is clean.
What to review
- OTIF by customer for the week and month
- Top late-but-complete orders
- Top on-time-but-short orders
- Top reason codes
- Repeat offenders by part, work center, or planner
Questions to ask
- Are we overpromising dates before capacity and material are confirmed?
- Are shortages being found too late?
- Is rework consuming the quantity we thought was available?
- Are we splitting orders to hide schedule instability?
- Which customers are absorbing most of the misses?
Keep the meeting rooted in evidence, not anecdotes. OTIF works when each miss can be tied back to a visible process failure.
Common mistakes when implementing OTIF
Counting revised promises as if they were original performance
If you move the date after the order is already at risk, you may make the metric look better without improving service. Track original commit and current commit separately if promise changes are common.
Treating customer-requested splits as failures without labeling them
Not all split shipments are bad. Mark them clearly so you can distinguish customer preference from internal firefighting.
Measuring only at month-end
By month-end, the lesson is too old. OTIF should be reviewed at least weekly, with daily exception management for at-risk orders.
Failing to connect shipment misses to shop-floor causes
A customer metric without work-order linkage leads to blame, not improvement. Connect every miss back to what happened in planning, material, production, quality, or shipping.
Start simple, then make OTIF part of how the shop runs
The best OTIF system for a small job shop is not the most complicated one. It is the one your team will maintain. Start with line-level shipment data, classify each commit into the four delivery outcomes, and require a reason code on every failure. Then link those misses back to work orders so you can see whether the real issue was scheduling, shortage, rework, queue delay, or last-minute order splitting.
Once that discipline is in place, OTIF becomes more than a customer service metric. It becomes an operating lens for how reliable your shop actually is.
If you want a simpler way to track work orders, shipment status, shortages, and production exceptions in one place, start a free FactoryOS trial. You can also explore pricing or contact us to see how FactoryOS can help your shop reduce partial-order firefighting and improve OTIF with cleaner, more actionable data.