Article
Setting min and max levels from average monthly consumption

Minimum and maximum stock levels are what turn "we should probably order more" into a rule anyone can follow. Most stores that have them set them once, from a guess, and never look again. This article shows how to set them from average monthly consumption (AMC), your lead time and how often you order, with a worked example, and how to enter the result in OpenBoxes so its reports and OpenBoxes Lift's stock alerts can use it.
The product and figures below are invented examples, chosen to keep the arithmetic easy to follow.
The three levels OpenBoxes keeps#
For each product at each location, OpenBoxes stores three quantities:
- Minimum quantity. At or below it, OpenBoxes shows the product as low stock.
- Reorder quantity. The reorder point: at or below it, OpenBoxes shows the product as due for reorder.
- Maximum quantity. The level you order up to. Above it, the product shows as overstocked.
They map onto the max-min system widely used in health supply chains, which gives you a clear way to set all three from a few inputs. One naming difference to watch: in the USAID | DELIVER Logistics Handbook's terms, the "minimum stock level" is lead time plus safety stock. In those terms, OpenBoxes' reorder quantity plays the role of the minimum stock level, and its minimum quantity is closer to the emergency order point. The rest of this article uses OpenBoxes' names. See Inventory for how OpenBoxes uses the three levels.
The inputs#
- Average monthly consumption (AMC). How much you use or issue in a typical month.
- Lead time, in months. From deciding to order to the stock being on your shelf. Measure it from your own recent orders, not the supplier's promise.
- Safety stock, in months. The buffer for a late delivery or a busy month.
- Review period, in months. How often you check stock and place orders, for example monthly.
From inputs to levels#
- Minimum = AMC × safety stock. The buffer itself. Dropping below it means you are eating into protection you planned to keep.
- Reorder point = AMC × (lead time + safety stock). Enough to last until a new delivery arrives, with the buffer still intact when it does.
- Maximum = reorder point + AMC × review period. Enough to last until the next time you will review and order.
When you order, order up to the maximum:
order quantity = maximum − stock on hand − stock already on order
A worked example#
A district store issued these quantities of a rapid diagnostic test over the last three complete months:
- June: 230
- July: 250
- August: 270
Total 750, so AMC = 750 ÷ 3 = 250 a month.
The store's recent orders took about six weeks to arrive, so lead time is 1.5 months. It wants 1 month of safety stock and orders once a month.
- Minimum = 250 × 1 = 250
- Reorder point = 250 × (1.5 + 1) = 250 × 2.5 = 625
- Maximum = 625 + 250 × 1 = 875
In September the store holds 600. That is at or below the reorder point of 625, so it orders. With nothing already on order, the order quantity is 875 − 600 = 275. If the tests come in boxes of 50, round up to 300.
Expressed in months, the same policy is a minimum of 1 month, a reorder point of 2.5 months and a maximum of 3.5 months of stock. Keeping the policy in months and recalculating the quantities from a fresh AMC is what stops levels going stale.
Getting a good AMC#
The levels are only as good as the AMC behind them. Three things commonly distort it:
- Stock-outs in the window. Days when the product was not there look like days nobody needed it, so AMC comes out too low. Adjust for days out of stock, as shown in Months of stock.
- A one-off month. A campaign, an outbreak or a large single request inflates a month. Use three to six complete months and look at them before averaging.
- Transfers mixed in with use. Decide whether stock you send to your own sites is "consumption" for this store. For a store that supplies other sites, it usually is its real demand.
Where the numbers come from in OpenBoxes#
The Consumption Report, under Reporting, Transaction Reports, shows for each product the quantities Issued, Consumed and Returned over the date range you choose, their Total Consumption, a Monthly figure and the Months remaining at the current quantity on hand.
Two details matter when you use it for levels:
- The Monthly column is the total consumption for your date range divided by the number of days in it, times 30. Choose a range of whole months, such as the last three complete months, so the figure is an honest monthly average. It will not match dividing by three exactly: June to August has more than 90 days, so the example above comes out at about 247 a month rather than 250.
- Stock sent out to other locations counts as issued, apart from putaways and internal transfer orders. That suits a store supplying other sites. If you want use at this location only, account for it.
Entering the levels in OpenBoxes#
Levels are set per product and per location. Open the product's edit page in OpenBoxes and go to its Inventory Levels tab, which has a row for each location with its minimum, reorder and maximum quantities, and add or edit the row for your location.
To review the result, the Reorder Report under Reporting, Order Reports produces a CSV file. Under Filter products, choose Show products below minimum, Show products below reorder or Show products below maximum. For products with a maximum set, the file has a Quantity to Order column: the maximum minus the quantity available. It does not subtract stock already on order, so do that yourself before you place the order.
How OpenBoxes Lift uses your minimums#
On OpenBoxes Lift, the optional daily stock alert email lists the products whose quantity on hand is under the minimum you set at a location, largest shortfall first, once a day. Two rules decide what it can tell you:
- Only products with a minimum set are checked for being low. A product with no minimum at a location is never reported as below minimum there, however low it gets.
- The minimum is the only threshold used. The reorder quantity is not read.
That has a practical consequence for the levels above. If you set the minimum to the safety stock (250 in the example), the email is an emergency signal: by the time a product appears, you are already into your buffer. If you want the email to tell you when to order, set the minimum at the reorder point instead (625 in the example). Either is a reasonable choice; make it deliberately. Two details: the email lists a product when its quantity on hand is strictly below the minimum, while OpenBoxes shows low stock at or below it. And if you set the minimum equal to the reorder quantity, OpenBoxes shows the product as low stock rather than due for reorder, because it checks the minimum first. PagerDuty, Slack and Microsoft Teams destinations, where you use them, cover stock-outs only, for products with a minimum set.
Every alert email also carries a coverage line, such as "We only check products that have a minimum level set: 142 of 3,180 products here." If that first number is small, the most useful thing you can do this week is set more minimums.
The Reports page in the portal also shows months of stock for products that are out of stock or below minimum. It is calculated over the three complete calendar months before the current one, and it leaves out transfers to your other locations, so it can differ from OpenBoxes' Consumption Report for a store that supplies other sites. See Reports.
Keep them current#
Consumption changes with seasons, programmes and patient numbers, and lead times drift. Recalculate AMC and the levels on a schedule, quarterly is a common choice, and whenever something changes: a new supplier, a new programme, a site that starts or stops drawing from your store. Keeping the policy in months makes each review a matter of multiplying by the new AMC.
Summary#
- Minimum = AMC × safety stock; reorder point = AMC × (lead time + safety stock); maximum = reorder point + AMC × review period.
- Order up to the maximum, less stock on hand and stock already on order.
- Get AMC from three to six complete months, adjusted for stock-outs; OpenBoxes' Consumption Report gives the monthly figure.
- Enter levels per product and location on the product's Inventory Levels tab.
- Lift's daily alert email watches the minimum only, so decide whether your minimum is a buffer or an order signal.
The short video Expiry, Lots and Reports shows the OpenBoxes reports, and Integrations lists every destination the alerts can go to.
Keep reading
- GuideInventory
- GuideReporting
- GuideStock Alerts
- On the siteIntegrations in OpenBoxes Lift
- What's newWhat shipped in October 2026
- Video
Watch: Expiry, Lots and Reports(1 min)

