ClearStock is live on the Shopify App Store.Install free →

← All blogs

Reorder Math8 min read

Service level in inventory: choosing how often you can afford to run out

Service level in inventory: choose how often each SKU class may run out, with a decision table, worked numbers, and the margin cost of the final points.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

Most coverage treats service level as a constant you look up in a table before plugging it into a formula. In practice it's the reverse: service level is a business decision you make, expressed as a probability, about how often you're willing to end a replenishment cycle with empty shelves. The formulas don't choose it — they consume it. Set it deliberately per class of product and your cash concentrates where running bare actually hurts; leave it at a default and you either over-fund the tail or under-fund the bestsellers. The buffer arithmetic itself lives in the safety stock guide; this article owns the dial that guide leaves in your hands — how to choose the number, what each step up costs, and how to tell when you chose wrong.

What service level actually measures

The standard retail measure is cycle service level: the probability that a single replenishment cycle ends without the SKU going empty — that demand during the lead time doesn't exceed what you had when the cycle started. Per SKU, per cycle. A "storewide service level" isn't really a thing you can manage; the number only means something attached to an individual product with its own demand pattern and its own supplier span.

Don't confuse it with fill rate, its closest cousin. Cycle service level asks a yes-or-no question — did this cycle survive without an empty shelf? — while fill rate reports a percentage of demanded units that shipped on time. A store can post a decent fill rate and still watch its bestseller go bare one cycle in four, because the failures they measure are different ones. Cycle service level is the one that plugs into buffer math; fill rate is the customer-experience readout.

The dial inside the formula

Safety stock for a SKU equals z × σ × √LT, where σ is the standard deviation of daily demand and LT the lead time in days. The derivation and the data collection are covered in the safety stock guide — here, the part that matters is that z is the service-level choice converted into a multiplier. The standard anchors:

Cycle service level z
85% 1.04
90% 1.28
95% 1.65
98% 2.05
99% 2.33

Everything to the right of the decision is arithmetic. Everything to the left — which row the SKU gets — is judgment, and the rest of this article is about that judgment.

What each step up costs: a worked example

HARNESS-M-08, a size-M dog harness: average demand 4.1/day, standard deviation 1.8/day, lead time 21 days (all illustrative). √21 ≈ 4.58, so σ√LT ≈ 1.8 × 4.58 ≈ 8.2. The buffer at each service level:

Service level Buffer = z × 8.2 Units (rounded up) Cash locked at a $14.50 unit cost (estimated)
90% 10.5 11 ~$160
95% 13.6 14 ~$203
98% 16.9 17 ~$247
99% 19.2 20 ~$290

Moving from 90% to 99% on this one SKU locks up roughly $130 more (estimated) in insurance stock. What the cash buys is frequency: at twelve replenishment cycles a year, a 90% target implies going bare about 1.2 cycles per year on average, 95% about 0.6, and 99% about 0.12. And when a shelf does go empty mid-cycle, shoppers don't all wait: some substitute a sibling variant, some buy the brand elsewhere, some delay, and some never return. Multiply a dark cycle by that leakage and you have the estimated lost revenue each extra buffer unit is buying down.

Choosing per class, not per store

The number is a portfolio decision, and the classes — not individual SKUs — are the units you manage. A workable starting split (illustrative; set the benchmark from your own data):

Class Example Starting service level Rationale
A — bestsellers HARNESS-M-08, top revenue drivers 95–98% A dark day here carries revenue and search-rank consequences
B — steady mid SOCK-HK-M03 hiking socks 90–95% Worth funding, but a rare bare cycle is survivable
C — tail seasonal prints, one-off colors 85% or no buffer The cash this class would absorb buys more protection on the A list
Hard-to-replace anything with 60+ day replenishment 98%+ Long recovery makes every dark cycle expensive

Two principles sit inside the table. First, cash follows consequence: the class where an empty shelf costs the most gets the highest number, regardless of how fast it sells. Second, uniformity is the silent cash leak — a single storewide setting necessarily over-funds some classes to under-fund others. That pattern shows up in tooling too: a September 2026 review of one forecasting app complained its prediction method was "a black box… I actually built a more useful/customized tool just with spreadsheets and ChatGPT for effectively $0" (Prediko App Store review, accessed November 2026). A parameter you can't see is a parameter you can't audit — so if a tool sets service levels invisibly, treat that as a reason to check the outputs against your own dark-day history. The classes also set cadence: how often each class gets reviewed, counted, and reordered is the weekly rhythm built in the replenishment schedule guide.

How to tell you chose wrong

The number makes a promise: a 95% SKU should end a cycle bare about one time in twenty. Audit the promise quarterly against your own history.

  • A SKU runs bare more often than its number implies. Raise that class one step (90→95, 95→98) and recompute the buffers for the whole class, not just the offender.
  • A high-service SKU hasn't come close to bare in a year. Step it down and release the cash — buffers that never touch zero are unspent insurance.
  • The same class keeps missing no matter the buffer. The lead-time input is usually the problem, not the service level; measure the span before buying more insurance.

Shopify gives you the raw material for the audit but no automatic watch (Shopify Help Center, accessed November 2026): as of November 2026 there's no native low-stock email alert, so threshold monitoring means saved views plus Shopify Flow if you automate (Shopify Help Center, accessed November 2026). Keep the review manual and quarterly and it still works — the point is that the promise gets checked against outcomes, not vibes.

One measurement trap deserves naming: demand averages computed across a window that includes bare days understate the true rate, because the SKU was constrained, not slow. Velocity for service-level decisions should be computed from in-stock days only. That's how we compute it in InventoryX — the velocity behind its weekly Buying List counts only the days a SKU was actually sellable — while the service-level choice itself stays yours either way.

Common questions

What is cycle service level? The probability that one replenishment cycle for a SKU ends without it going empty — demand during the lead time stays under your starting stock. It's per SKU and per cycle, not a storewide figure. A 95% target means roughly one bare cycle in twenty on that product, by design rather than by accident.

What's a reasonable service level for a small store? There's no storewide answer — set it per class. A workable start: 95–98% on bestsellers, 90–95% on steady mid-tier products, 85% or no buffer on the tail. Every step up locks more cash per SKU, so the real question is where an empty shelf hurts most, and funding there first.

What's the difference between service level and fill rate? Cycle service level is yes-or-no per replenishment cycle: did the SKU survive without going empty? Fill rate is the percentage of demanded units that shipped on time. They diverge in practice — use cycle service level for buffer decisions and fill rate for customer-experience reporting, because they measure different failures.

How does service level affect safety stock? Through the z multiplier: buffer = z × demand variability × √lead time. Raising the target from 90% to 99% moves z from 1.28 to 2.33 — on a SKU whose σ√LT is 8.2, that's 11 buffer units versus 20, nearly doubling the cash locked in that product's insurance stock.

Is 100% service level achievable? No, not at any sensible cost. Protecting every conceivable demand outcome requires a buffer that grows without bound, so each additional nine of reliability costs disproportionately more than the last. Treat 99% as the practical ceiling, reserve it for SKUs where a bare cycle is genuinely expensive, and accept calculated bare cycles everywhere else.

Next step

Assign a service level tonight to one A-class SKU, one B, and one C — then recompute their buffers and write the review date in your calendar. The trigger line that consumes both numbers is in the reorder point walkthrough, and if you're missing the data inputs entirely, start from the fallback buffers for missing lead-time data.