· Metrics · 4 min read

Fill rate: how much of each order is fulfilled

It shows what share of the quantity a customer asked for was actually supplied from stock.

A shop owner asked you for 100 pieces and you supplied 80. In the warehouse the order is marked "completed", but for the customer it is not: the remaining 20 pieces must be sourced elsewhere. Fill rate measures exactly this gap — what share of the quantity the customer asked for was actually supplied from stock.

Three levels

Fill rate is calculated in three ways, and each shows something different. Take one day's data: 10 orders, 40 lines (positions) in total and 1,200 pieces requested.

  • By units: units supplied ÷ units requested × 100. If 1,068 units were supplied, 1,068 ÷ 1,200 = 89 percent.
  • By lines: lines filled completely ÷ total lines × 100. If 34 lines were filled in full, 34 ÷ 40 = 85 percent.
  • By orders: orders shipped complete ÷ total orders × 100. If 6 of the 10 went out complete, 6 ÷ 10 = 60 percent.

Three different results come from the same day: 89, 85 and 60. So when you say "our fill rate is 89", always state which level you mean. The strictest is the order level, because one missing line makes the whole order incomplete. It is also the one that hits the customer hardest: a shop owner who received seven of eight items still has to turn to another supplier.

What counts as "requested"

This is where most mistakes happen. Fill rate must be measured against the original request, not against the order after a manager edited it to fit what is in stock. If a customer asked for 100 pieces and the manager said "we have 80" and changed the order to 80, the system shows it as 100 percent filled and the problem stays hidden.

So keep a request that arrived by phone, Telegram or Uzum in its first form, and record later changes separately. Otherwise the report will show a good fill rate while in reality customers are walking away.

Separate the causes

A low fill rate corrects nothing by itself; you need to find the cause. Unfilled lines usually come down to four reasons:

  1. The item is genuinely out of stock — a supply or inventory problem.
  2. The system shows stock but the shelf is empty — inaccurate balances, that is, "invisible" shrinkage.
  3. The item exists but sits elsewhere or is reserved for another customer.
  4. A picking error: a similar item was shipped.

Each cause has a different owner: purchasing, the warehouse or sales. So record a cause code next to every unfilled line. In our example 6 lines were not filled in full (40 − 34): three because the item was out of stock, two because the system showed stock that could not be found on the shelf, and one because of a picking error. A third of the cases, then, come from inaccurate records — you fix that with counting and order, not with bigger purchases.

How to improve it

  1. Group the unfilled lines by item: the problem usually concentrates in a handful of items rather than dozens (the Pareto principle).
  2. Review the reorder point and safety stock for those items.
  3. Check the accuracy of their balances with a count.
  4. Agree a substitution rule: if an item is missing, an alternative is supplied with the customer's consent.
  5. Do not set the same target for everyone: higher for key customers and group A items, lower for group C. A target of one hundred percent often costs too much, because it requires a sharp increase in stock.

How it differs from stock-out

Fill rate is measured from the customer's point of view: how much of the request was supplied. Stock-out shows how many days the item itself was missing. They complement each other: stock-out points to the cause, fill rate to the consequence. For example, if an item was missing on 3 days of the month, stock-out is 10 percent. But if nobody asked for it on those days, fill rate is unaffected. Conversely, if the item is in stock but the quantity falls short, stock-out is zero while fill rate drops. So it is best to watch both numbers together.

Conclusion

Fill rate judges warehouse work through the customer's eyes. To calculate it properly it is enough to keep the original request, not to mix the three levels and to record the cause of every unfilled line. CountLab helps, through stock counts and discrepancy analysis, to verify the accuracy of balances and uncover hidden losses such as "in the system but not on the shelf".