Metric

Weeks of cover, and the only comparison that matters.

"You have 340 units" is not information you can act on. "You run out on 12 September and this supplier takes six weeks" is a decision. Cover is the metric that turns the first sentence into the second, and it is the column I sort by before anything else.

Weeks of cover = units on hand / average weekly sales
How long the shelf lasts at the current rate. Compare it to your lead time, not to a target.

Written August 2026. The Proviand formulas below are the ones running in production, checked against the forecasting engine at the time of writing.

The verdict first

Cover on its own tells you very little. Six weeks of cover is comfortable if your supplier delivers in five days and an emergency if they take eight weeks. The number only becomes a decision when you put it next to the lead time for that specific product, and that comparison is the whole point of the metric.

If you take one thing from this page: when cover drops below lead time, you are already late. Not approaching late. Late. The order you place today arrives after the shelf is empty.

The formula, worked

One product, real numbers.

weeks of cover = 340 / 84 = 4.05 weeks

Which is the same statement as 340 / 12 = 28 days, and 28 days from today is a date on the calendar. That date is the useful output. Cover in weeks is just a friendlier way to carry it around.

Proviand computes it daily off the blended velocity rather than a flat 8-week average, because a flat average is slow to notice a product speeding up:

weeks of cover = on hand / (daily demand x 7)
days to stockout = on hand / daily demand

Where daily demand is the seasonality-adjusted blend of the 7, 30 and 90 day velocities described in the reorder point formula. Both numbers come from exactly the same inputs, which is why the buying table can show you a date and a cover figure that never disagree.

Proviand's buying table sorted by weeks of cover, showing days to stockout alongside lead time for each product

Cover against lead time: the comparison that decides everything

Every product has two clocks. Cover is how long your stock lasts. Lead time is how long a replacement takes to arrive. The relationship between them is the entire buying decision, and it collapses into three cases.

Cover comfortably above lead time. You have room. A product with 12 weeks of cover and a 3 week lead time is not a decision you need to make this morning, however large the number of units looks.

Cover approaching lead time. This is the moment to order. With 4 weeks of cover and a 3 week lead time, ordering today means the delivery lands with about a week of stock left. That remaining week is your safety stock, and it is the only thing absorbing a late supplier or a good sales week.

Cover below lead time. You are late already. 2 weeks of cover against a 3 week lead time means the shelf empties a week before the delivery arrives, no matter what you do now. The only remaining choices are about damage: pay for faster freight, split the order so part comes by air, or accept the stockout and decide whether to keep selling into it.

This is why a single "healthy cover" target across a catalogue does not work, and why sorting your products by units on hand tells you nothing. A product with 900 units and a 12 week lead time can be in far more trouble than one with 40 units and a supplier down the road.

It is also why the same number means different things at different times of year. Eight weeks of cover in March is comfortable. Eight weeks of cover going into your peak season, when demand is about to run at twice the rate the average was calculated on, is roughly four weeks of real cover wearing a disguise.

What makes the number lie

Cover is a division. Both sides of it are easy to get wrong, and when they are wrong the number stays confident.

Committed stock. Shopify tracks units that are physically present but already promised to unfulfilled orders. If your "on hand" figure includes them, your cover is overstated by exactly the amount you have already sold. A store with 340 units on hand and 90 committed to orders going out this week does not have 4 weeks of cover. It has 250 units of genuinely available stock, and 250 / 84 = 2.98 weeks. That is the difference between comfortable and late, from a distinction most stock reports do not make.

Incoming stock. This one cuts the other way, and it is worth being precise about how Proviand handles it, because the two numbers deliberately differ.

Cover is computed from on hand only. It answers "how long does the stock in the building last", and a purchase order in transit is not stock in the building. Adding incoming units to a cover figure produces a number that says you are fine while the shelf is visibly emptying.

The reorder flag, on the other hand, uses on hand plus incoming: should reorder when on hand + incoming <= reorder point. That is the double-order guard. Without it, a product you ordered last week keeps appearing on the buy list until the delivery physically lands, and the fastest way to buy the same thing twice is a system that forgets what is already on its way.

So a product can legitimately show 2 weeks of cover and not be flagged for reorder, because 400 units are arriving on Thursday. Those are two different questions and they should have two different answers. Where this genuinely breaks is if your POs are not in the system at all. Then cover is right, the flag is right, and you still order twice, because nothing anywhere knows about the shipment.

Zero demand. A product that sells nothing has infinite cover, and dividing by zero is not a useful answer. Proviand returns no cover figure at all for these rather than a very large number, and routes them to the dead stock question instead, which is the decision that actually applies.

Why I will not give you a healthy range

Every article on this metric eventually prints a table saying 4 to 8 weeks is healthy. I am not going to, because the number is meaningless without the lead time next to it, and the ranges vary by more than the ranges themselves.

A cafe buying milk from a local dairy on two days' notice might run under one week of cover permanently and be running a tight, correct operation. An apparel brand shipping from overseas on a 14 week lead time might need 20 weeks of cover just to bridge the gap, and would be in genuine trouble at eight. Both are healthy. A single range would call one of them broken.

The honest version of the rule is comparative, not absolute. Cover should exceed lead time by enough to absorb a bad week and a late delivery. What "enough" means is your safety stock decision, and it belongs to the product and the supplier, not to a table on a website.

The one threshold I will name is the top end, and only because the cost is one-directional. Proviand flags a product as overstocked past 26 weeks of cover. Half a year of stock is cash on a shelf, and while the right number varies, very little in a normal catalogue justifies that much. It is a prompt to look, not a verdict.

Where this is the wrong metric

Cover is a trailing calculation. It divides what you have by what you have been selling, so it has nothing useful to say about a product with no sales history. For a launch, a pre-order, or a drop model where the entire run sells in an afternoon, cover will be either infinite or instantly negative and never once helpful. Those are forecasting-by-judgement products, and no amount of arithmetic on past sales substitutes for the judgement.

It is also the wrong lens for anything with a hard expiry date. A yoghurt with 9 weeks of cover and a 6 week shelf life does not have a stock problem, it has a waste problem, and cover will happily report that everything is fine right up until you throw it away.

Going further

Proviand computes cover and days to stockout nightly from your Shopify sales history, sorts the buying table by it, and shows the velocity and lead time behind every row so you can check the division yourself.

Install Proviand

Cover figure looking wrong for a product? Email [email protected] and I will help you find which side of the division is off.