Fill Shelves Alternative: Replenishment Using 30-Day Sales + Min Stock Levels
Stocky’s Fill Shelves feature did something deceptively simple: it looked at how fast you were selling each product, factored in how long your supplier takes to deliver, and told you exactly what to order and how much. Behind that simplicity was a reliable replenishment formula that prevented both stockouts and overstock.
With the Stocky sunset on August 31, 2026, you need to either find a replacement app or understand the formula well enough to run it yourself. This guide covers both paths.
How Fill Shelves worked under the hood
Stocky’s Fill Shelves was not AI-driven demand forecasting. It was a straightforward, deterministic calculation that ran across your entire product catalog. Here is the logic:
- Pull sales data — Stocky looked at your Shopify sales for a configurable lookback period (default: 30 days).
- Calculate velocity — For each product variant, it divided total units sold by the number of days in the lookback period.
- Estimate demand during lead time — It multiplied daily velocity by the supplier’s lead time (the number of days between placing an order and receiving the shipment).
- Add safety buffer — It added your configured minimum stock level (safety stock) to the lead-time demand.
- Compare to current stock — If your current inventory was below the calculated reorder point, the item appeared on the suggested reorder list with a recommended quantity.
The output was a list of items grouped by supplier, with suggested order quantities — ready to convert into a purchase order.
The core formula
The reorder point formula is standard in inventory management. Here it is in plain terms:
Daily Sales Velocity = Units Sold (last 30 days) / 30
Reorder Point = (Daily Sales Velocity x Lead Time in Days) + Safety Stock
Suggested Order Qty = Reorder Point - Current Stock on Hand
If the suggested order quantity is zero or negative, you do not need to reorder that item yet.
Worked example
Say you sell a “Black Canvas Tote Bag” and want to figure out if you need to reorder:
- Units sold in the last 30 days: 60
- Supplier lead time: 10 days
- Safety stock (minimum stock level): 15 units
- Current stock on hand: 12 units
The math:
Daily velocity = 60 / 30 = 2 units per day
Reorder point = (2 x 10) + 15 = 35 units
Suggested order qty = 35 - 12 = 23 units
You need to order 23 units to bring your stock up to the reorder point.
Another example: a slow mover
Now consider a “Gold Leaf Earring Set” that sells more slowly:
- Units sold in the last 30 days: 6
- Supplier lead time: 21 days
- Safety stock: 5 units
- Current stock on hand: 14 units
The math:
Daily velocity = 6 / 30 = 0.2 units per day
Reorder point = (0.2 x 21) + 5 = 9.2 → round up to 10 units
Suggested order qty = 10 - 14 = -4 → no reorder needed
You have 14 units in stock and only need 10. No order necessary. The formula correctly identifies that you have enough runway.
How to calculate 30-day sales velocity from Shopify
Shopify provides the sales data you need, but you have to extract it yourself.
Method 1: Shopify Admin reports
- Go to Analytics > Reports in your Shopify Admin.
- Open the Sales by product variant SKU report.
- Set the date range to the last 30 days.
- Export as CSV.
This gives you a row per variant with the total units sold. The “Net quantity” column is what you want — it accounts for returns.
Method 2: Shopify API (for developers)
If you are comfortable with the Shopify API or have a developer on hand, you can pull order line items for the last 30 days and aggregate by variant. The Orders API with the created_at_min parameter filtered to 30 days ago gives you what you need. This is how apps like Stocky and Stokka pull the data programmatically.
Method 3: Shopify POS sales reports
If most of your sales happen through POS, the POS-specific sales reports in Shopify Admin are another source. Go to Analytics > Reports > Sales by POS location or Sales by product and filter accordingly.
Whichever method you use, the output is the same: units sold per variant over the last 30 days.
Setting minimum stock levels per product
The “safety stock” or “minimum stock level” is the buffer you maintain to cover unexpected demand spikes or supplier delays. Setting it correctly is more art than science, but here are practical guidelines:
For fast-moving items (5+ units/day): Set safety stock to 7-14 days of average daily sales. These items are your revenue drivers, and running out is expensive.
For moderate movers (1-4 units/day): Set safety stock to 5-10 days of daily sales. Enough to cover a short delay without tying up too much cash.
For slow movers (less than 1 unit/day): Set safety stock to 3-5 units flat. Percentage-based buffers do not make sense for items that sell a few units per month. A small fixed buffer is sufficient.
For seasonal items: Adjust safety stock before your busy season. If December sales are 3x your normal volume, triple your safety stock heading into November. Return to normal levels in January.
For items with unreliable suppliers: Increase safety stock to cover the worst-case lead time, not the average. If your supplier usually delivers in 10 days but sometimes takes 21, set your lead time to 15-18 days and bump up safety stock.
In Stocky, these values were configured per supplier (lead time) and per product (minimum stock). If you are going manual, you will track them in your spreadsheet. If you are adopting a replacement app, look for per-product and per-supplier configurability.
Building a basic replenishment spreadsheet
If you are not ready to commit to a replacement app, here is a step-by-step process for building a Fill Shelves alternative in Google Sheets or Excel.
Step 1: Create the spreadsheet structure
Set up a sheet with these columns:
| Column | Description |
|---|---|
| A: SKU | Product variant SKU |
| B: Product | Product name |
| C: Variant | Size, color, etc. |
| D: Supplier | Vendor name |
| E: 30-Day Sales | Units sold in last 30 days |
| F: Current Stock | Current inventory on hand |
| G: Lead Time | Supplier delivery time in days |
| H: Safety Stock | Minimum stock level |
| I: Daily Velocity | Formula: =E2/30 |
| J: Reorder Point | Formula: =(I2*G2)+H2 |
| K: Order Qty | Formula: =MAX(0, ROUNDUP(J2-F2, 0)) |
Step 2: Populate with data
- Columns A-D: Export your product list from Shopify (Products > Export) and copy in the SKU, product name, variant, and vendor columns.
- Column E: Paste in 30-day sales figures from the Shopify sales report.
- Column F: Paste in current inventory from Shopify (Products > Inventory > Export).
- Columns G-H: Enter manually based on your knowledge of each supplier’s lead time and your desired safety stock levels.
Step 3: Apply formulas
The three formula columns (I, J, K) do all the work. Fill them down for every row. Column K (Order Qty) is your answer: any row where this value is greater than zero means you need to reorder.
Step 4: Filter and sort
- Filter column K for values > 0 to see only items that need reordering.
- Sort by column D (Supplier) to group items by vendor.
- Each supplier group becomes a purchase order.
Step 5: Repeat weekly
This process needs to happen on a regular cadence. Most retailers find weekly to be the right frequency. Set a calendar reminder, block off 1-2 hours, and run through the process.
Limitations of the spreadsheet approach
This works, but it has real downsides:
- Stale data: Your sales and inventory numbers are only current at the moment you export them. By the time you finish building the PO, stock levels may have changed.
- No receiving integration: The spreadsheet tells you what to order, but when the shipment arrives, you still need to update Shopify inventory manually.
- Manual labor: The export-merge-calculate cycle takes 1-2 hours each time you run it, and grows linearly with the number of SKUs.
- Error-prone: Copy-paste mistakes, formula errors, and missed products are common.
- No history: You have no record of past replenishment runs or order accuracy over time.
When to upgrade from spreadsheet to app
The spreadsheet approach is a fine stopgap, but there are clear signals that it is time to move to a dedicated tool:
You have more than 200 active SKUs. Below this threshold, the spreadsheet is tedious but manageable. Above it, the time cost becomes significant and errors increase.
You manage multiple locations. Running separate replenishment calculations per location multiplies the work. An app handles multi-location inventory natively.
You are spending more than 2 hours per week on replenishment. Your time has value. If the manual process is consuming a significant chunk of your week, a $30-50/month tool pays for itself in labor savings within the first month.
You are experiencing stockouts or overstock despite using the spreadsheet. This usually means the data is stale, the calculations have errors, or the cadence is too slow. An app running on real-time Shopify data solves all three problems.
You need accountability. If multiple staff members are involved in ordering and receiving, a shared spreadsheet is a recipe for version conflicts and finger-pointing. A proper app provides audit trails and clear ownership.
For a comprehensive look at the full PO and receiving workflow and what to look for in a replacement tool, see our pillar guide.
Better metrics, better replenishment
The 30-day sales velocity plus safety stock formula is the foundation, but better data leads to better decisions. As your replenishment process matures, consider tracking additional retail inventory metrics that can refine your reorder points:
- Sell-through rate: What percentage of received inventory sells within a given period? High sell-through means you can order more aggressively. Low sell-through means you are overstocking.
- Days of supply: How many days of sales your current stock covers. This is a more intuitive way to assess inventory health than raw unit counts.
- Stockout frequency: How often each product hits zero stock. If a product stocks out regularly, your safety stock is too low or your lead time estimate is too optimistic.
These metrics do not change the core formula, but they help you tune the inputs — lead time, safety stock, lookback period — so the suggestions get more accurate over time.
The Fill Shelves workflow was one of Stocky’s most valuable features because it turned inventory management from a guessing game into a data-driven process. Whether you replicate it with a spreadsheet or adopt a replacement app, the underlying logic is sound and worth preserving.