How to plan inventory for an ecommerce business
You buy stock on instinct and you alternate between running out and filling the warehouse with what will not sell.
You buy stock on instinct and you alternate between running out and filling the warehouse with what will not sell.
Every inventory decision gets made on its own, and that is where the trouble starts. You buy what ran out, you reorder when someone notices, and the cost of holding too much is never weighed against the cost of running short, because neither of them appears in the accounts under its own name.
This guide chains the six decisions into one system: what demand you expect, how much it swings, how long your supplier takes, how much buffer you need, when to reorder, and what all of that costs you over a year. Each step feeds the next with a number rather than an impression.
You will not find a recommended safety stock percentage here, nor a "typical" annual carrying rate. Those figures circulate widely and do not survive scrutiny: they depend on your margin, your cost of capital, your warehouse and your product. What you will find is how to work out your own.
demand how many units a day do you expect to sell?
variability how far does real demand stray from that average?
lead time how long does the supplier take, and how much does that vary?
safety stock how much buffer do you buy against that uncertainty?
reorder point at what stock level do you place the next order?
order quantity how many units go into each order?Then two consequences that are not decisions but cost money anyway: the cash locked into stock, and the cost of keeping it there.
The order matters. You cannot set a reorder point without knowing the lead time, or a safety stock without knowing the variability. Almost every inventory problem you see in a shop is really a skipped step.
Two products selling eighteen units a day on average can need completely different inventories. If one sells seventeen, eighteen or nineteen every day and the other alternates weeks of five with weeks of forty, the second needs a far bigger buffer even though the average is identical.
What measures that difference is the standard deviation of daily demand: a number saying how far a normal day sits from the average. You compute it from your own sales history, day by day. It is a fact about the business, not a guess.
The same idea applies to the supplier. A ten-day lead time that is sometimes eight and sometimes twelve is not the same as ten days flat. The second source of uncertainty is the lead time, and it has to be measured separately.
When both vary at once, they combine like this:
lead-time sigma = sqrt( lead time × demand deviation²
+ demand² × lead-time deviation² )The two terms add because both risks accumulate over the same window: the days it takes you to restock.
Here is a confusion that costs money. There are two ways of measuring "how well you serve" and they do not mean the same thing.
Cycle service level is the probability of not running out during a replenishment cycle. It measures whether a stockout happens, not how much demand goes unserved. A cycle with a one-unit shortfall and one with a two-hundred-unit shortfall count the same.
Fill rate is the percentage of demand you manage to serve from stock over time. It measures the size of the failure, not whether it occurred.
For the same product, fill rate comes out higher than cycle service level. That is not a paradox: most stockouts are small and happen at the end of the cycle when little stock is left, so they affect a small slice of total demand.
The practical consequence: when someone tells you they run "95% service", ask which one. And when you set yours, the one that goes into the safety stock formula is the cycle service level.
The simple method covers the worst case you have seen:
safety stock = (max daily sales × max lead time)
− (avg daily sales × avg lead time)It needs no statistics and fits in two spreadsheet columns. Its weakness is that "max" depends on how much history you look at: the more data you have, the more extreme the maximum and the more stock it demands. It is useful when you have little data, or when demand looks nothing like a bell curve.
The statistical method fixes a probability and turns it into a multiplier:
safety stock = z × lead-time sigmawhere z comes from the standard normal distribution. For a cumulative probability of 0.900 the critical value is z = 1.282; for 0.950 it is 1.645; for 0.975 it is 1.960 and for 0.990 it is 2.326. Those values are tabulated in the NIST statistics handbook, which is where they are taken from here.
That method assumes demand is roughly normally distributed and independent between days. It has to be said out loud, because it is not always true, and when it is false the answer falls short in exactly the cases that hurt most. We come back to this under limits.
Which to use. If you have at least a few months of daily history and demand is not dominated by isolated spikes, use the statistical one. If you sell sporadically, use the simple one, with your eyes open.
demand during lead time = daily demand × lead time in days
lead-time sigma = sqrt( leadTime × demandDev² + demand² × leadTimeDev² )
safety stock = round up ( z × lead-time sigma )
reorder point = demand during lead time + safety stock
inventory position = on hand + on order − allocated
annual holding cost = capital + storage + service + risk
annual carrying rate = annual holding cost / average inventory valueRounding the safety stock up is not cosmetic: you cannot keep half a unit on a shelf, and rounding down breaks the very probability you just chose.
A hypothetical product with these figures, measured from its own history:
Step 1: uncertainty accumulated over the lead time. Combining both sources, sigma comes out at 39.32 units.
Step 2: safety stock. At a cycle service level of 95%, the critical value is z = 1.645, and the unrounded buffer is 64.67 units. Rounded up: 65 units. That is 3.61 days of average sales.
Step 3: the reorder point. Over the 10 days of lead time you expect to sell 180 units. Add the buffer and you reorder when inventory falls to 245 units.
With 260 units in stock, is it time to order? no: there are 0.83 days of headroom left.
Step 4: what holding inventory costs. Adding the four families of cost over an average inventory valued at €54,000.00, the annual cost is €11,500.00, or €958.33 a month. Against the value of the inventory, that is an annual rate of 21.3%. Per average unit stored, it is €2.05 a year.
That rate belongs to this business. It is nobody else's, and it is the one to use in the next step.
Step 5: order quantity. The supplier imposes a minimum of 1,500 units, which at €7.20 per unit plus €320.00 of fixed order cost is €11,120.00 of up-front cash. That lot covers 2.78 months of sales and its average inventory is 750 units, so holding it costs €266.20 over the cycle — worked out with the rate from the previous step, not an assumed one.
At €19.90 a unit and €2.40 of variable selling cost, each unit contributes €10.30. The whole lot contributes €15,450.00, and once the holding cost is taken out that leaves €14,863.80.
In cash terms: each unit sold brings back €17.50, so it takes 635 units to recover the outlay, which happens in 1.18 months.
The question to ask is not "what service level do I want?" but "what does the next point cost?". With the same figures as the example:
| Service level | z | Safety stock | Cash locked in | Annual holding cost |
|---|---|---|---|---|
| 90.0% | 1.282 | 51 units | €367.20 | €78.20 |
| 95.0% | 1.645 | 65 units | €468.00 | €99.67 |
| 99.0% | 2.326 | 92 units | €662.40 | €141.07 |
Look at the shape. Going from 90% to 95% costs a handful of extra units. Going from 95% to 99% costs considerably more. The curve steepens, and near total certainty it explodes: covering the last point of service can cost more than the previous twenty together.
That is why there is no service level that is right in the abstract. The normal table turns a probability into a z value and nothing more; it does not say which probability suits you. That choice is economic: it depends on what you make on a sale and what you lose on a stockout. If your unit margin is fat and the customer does not come back, push it up. If the margin is thin and the customer waits, bring it down.
The reorder point tells you when. The quantity tells you how much, and you rarely choose it freely: the supplier imposes a minimum, freight comes in container sizes, the volume discount starts at some number.
What you can do is measure what each option costs. A big lot lowers unit cost and raises holding cost, locks up more cash and takes longer to give it back. A small lot does the opposite and multiplies fixed ordering costs. The calculation that decides is always the same: the lot's contribution minus the cost of holding it for as long as it takes to sell.
Two cautions. First, the lot result is not money in the bank; it is contribution, and the cash arrives later. Second, if the lot covers many months of sales, forecasting risk grows with every month that passes.
Holding inventory costs money through four separate channels, and it is worth adding them up separately because each one is reduced differently:
Capital. Money sitting in goods is not in the bank and is not paying for anything else. Value it at your cost of finance, or at the best alternative use you have for that money.
Storage. Square metres, racking, rent, temperature control if you need it. It grows in steps: while it fits in the warehouse you already pay for, the marginal cost is near zero; the day it does not fit, it jumps.
Service. Insurance, counting, handling, systems. Usually the smallest and the most stable.
Risk. Obsolescence, damage, shrinkage, theft. The one that varies most by sector and the one most often understated. In a seasonal product it can be the dominant family.
Do not use a "reference" annual rate. The figures circulating in the trade do not come from any identifiable study with a sample, a method, a date and a population: they repeat each other. Add up your four families, divide by your average inventory value, and use that rate. It is the only one that describes your business.
Confusing average with safe. Holding stock for average demand means running out on half the days.
Using the lead time the supplier quotes. Use the one you have measured, and measure how much it varies too.
Setting one service level for the whole catalog. The product that leaves cents and the one that leaves euros do not deserve the same buffer.
Rounding safety stock down. It breaks the probability you just set.
Forgetting stock in transit. The reorder point is compared against inventory position — on hand plus on order minus allocated — not against what is on the shelf.
Filing holding cost under general overheads. If you cannot see it, you cannot decide against it.
Recalculating once a year. Demand and lead times move. An old reorder point is a scheduled stockout.
The statistical method assumes demand is roughly normal and independent. In these five cases that assumption breaks and the answer misleads:
Seasonal demand. If you sell four times as much in December, the annual average describes no month at all. Compute per season, using that season's history.
Promotions. A campaign is not natural demand: it is a spike you caused. If it enters the history unmarked, it inflates the mean and the deviation at once and leaves you with an expensive buffer you do not need the rest of the year.
New products. With no history there is no deviation to compute. There you work with judgement, small lots and frequent review — and you say it is judgement.
A single supplier. The model treats lead time as a random variable with a mean. With one supplier the lead time is not random: it is concentrated risk. A strike or a shutdown is not "the tail of the distribution", it is no replenishment at all.
Intermittent demand. Products that sell in small clusters separated by weeks of nothing do not follow a bell curve. Those need different models, and applying the normal formula produces absurd buffers in both directions.
And one more limit that cuts across all of them: this describes one product. A catalog of hundreds also needs a prioritization rule, because you cannot watch everything with the same attention.
Sources
What is not cited, and why. There is no source here for a "typical annual carrying rate" or a "recommended safety stock percentage". We looked, and no identifiable study exists with a sample, a method, a date and a population that applies to ecommerce. So this guide publishes neither figure and teaches you to build both.
Methodology
Every figure in the example is produced by Profyza's calculators — safety stock, reorder point, inventory cost and MOQ — run in sequence with the inputs declared above: the annual rate used in the lot calculation is the one that came out of the inventory cost step, not an assumed one. No figure is typed by hand into the text, and all of them are separately checked against an independent calculation.
The starting figures describe a hypothetical product. They are not any real company's data and they are not industry benchmarks.
Currency and market: euros, European Union.
Last reviewed: 9 September 2026.
Author: Profyza editorial team.
How the figures were produced. Each one is generated by the Profyza calculation engine for that step, using the inputs declared above. Every figure is also cross-checked against an independent arithmetic check — also automated — that recomputes it without calling the engine, which is what catches the text and the calculation drifting apart. It is not a human review, and this piece has not been reviewed by an economist, an accountant or a licensed adviser. If your situation needs that, get it.
Methodology: how all of this is calculated is set out on the methodology page.
Automated mathematical verification: Profyza calculation engines. This is not a human or professional review.
For the statistical method, the more the better, and three months of daily data is a reasonable floor. With less, use the simple method and review often.
Those are demand you never saw. Left in as zero sales, they understate demand and your buffer comes out short. Mark them and handle them separately.
No need. Recalculate it when demand changes, when the lead time changes, or when the supplier changes. Quarterly is a sensible cadence.
You can, but you will overpay on low-margin products and come up short on high-margin ones. It is one of the decisions that pays best for differentiating.
Then the question stops being about inventory and becomes one about negotiation and cash. There is a separate guide for that.
Because it would be invented. The figures in circulation have no study behind them. Adding up your four families takes an afternoon and gives you a number that is actually yours.
Find out how much you can pay for a sale or a click without losing money.
Work out how much returns cut from your monthly profit.
Strip out the fees, the tax, the materials, the shipping and the ads.
Work out your profit per unit after fees, fulfillment and advertising.
What each order really leaves you, and how much of that you can spend winning the customer.
What each imported unit really costs once it is sitting in your warehouse, ready to sell.
The order value above which you can give shipping away without losing money.
How much you can afford to pay for a customer without giving up your profit.
How many months it takes to recover what you paid to acquire a customer.
The stock level at which you have to place the order to avoid running out.
How many buffer units you need so a deviation does not leave you out of stock.
What a full warehouse costs you per year, and what share of your inventory that is.
What running out of stock really cost you, in lost contribution and extra spending.
Whether the bundle you are building leaves more money than selling the same items separately.
How far you can cut the price without falling below the margin you want to keep.
How many more units you have to sell so a discount does not leave you worse off.
The price below which you lose money, and the one your target margin needs.
How many days pass between paying your supplier and collecting from your customer.
Whether the supplier's minimum order pays off once you have paid to hold it.
Which sales channel leaves most per order for the same product and its real costs.