Standard reorder-point math treats every SKU the same. Supplement brands can't afford that -- a 24-month shelf life on your hero powder and a 9-month shelf life on a seasonal flavor need different math, not the same formula applied twice.
A typical supplement brand on Shopify isn't managing one product -- it's managing one formula across 4-6 flavors, 2-3 sizes, and a handful of bundles, each with its own lot, its own expiry date, and its own sell-through rate. The hero SKU (say, unflavored whey, 2lb) sells fast enough that expiry is barely a concern. The seasonal flavor (pumpkin spice, limited holiday run) sells slowly enough that a lot bought too early can expire on the shelf before it clears -- while the hero SKU, reordered on the same generic schedule, runs out mid-month and costs you real sales.
Generic reorder-point calculators don't know the difference. They compute one number from average daily sales and lead time, and that number is wrong in two directions at once: too conservative for what actually moves, too aggressive for what doesn't.
| Supplement-specific factor | Why generic reorder math misses it |
|---|---|
| Lot expiration varies by formula and flavor | A single "lead time + safety stock" number ignores that one lot expires in 8 months and another in 20 |
| Flavor/SKU proliferation | 10-30 SKUs per formula means manually tracking expiry per lot in a spreadsheet doesn't scale past a handful of products |
| Repeat-purchase / subscription demand | Subscription cadence creates predictable demand spikes generic forecasting smooths over instead of anticipating |
| Bundles combine multiple expiry dates | A bundle's true shelf life is its shortest-dated component, not an average |
| Supplier lead times + MOQ/case packs | A supplier's minimum order quantity can force you to buy more than you can sell before the lot expires -- generic tools don't flag that tension |
| Promotional spikes (holiday flavors, bundles) | A demand spike pulls the average up, which can trigger over-ordering for the slow season right after |
| Slow-moving variants sitting next to hero SKUs | Aggregate "total inventory value" views hide that one specific flavor is quietly heading toward expiry while the catalog average looks fine |
The two failure modes that cost supplement brands the most money are opposites, and they usually happen on the same shelf at the same time:
Stockout of a hero product. Your best-selling SKU runs out because the reorder point was calculated the same way as your slow movers -- too conservative for a fast seller. Every day it's out is a lost sale, and worse, a customer who may not come back for a restock notification.
Expiry before sell-through on a slow mover. A seasonal or lower-velocity flavor gets reordered on the same schedule as everything else. The new lot arrives, stacks behind old stock that hasn't cleared, and a portion of it expires before it's ever sold -- cash that's gone, not just tied up.
Seasonal flavor, 120 units in stock, selling 3 units/day, lot expires in 30 days.
At 3/day, the lot sells through in 30 days if velocity holds steady -- right at the edge. A generic reorder-point tool sees 120 units and 30 days as "adequate cover" and stays quiet. Foreshelf's expiry-aware check runs the same math against the expiry date specifically: if velocity drops even slightly (a realistic risk for a seasonal flavor as the season ends), a meaningful fraction of that lot won't clear in time -- and flags it as a discount/liquidation candidate now, while there's still time to act, instead of after it's already spoiled.
Per-lot quantity and expiry date, FEFO-ordered.
The core wedge -- reorder math that checks expiry, not just velocity.
Purchase orders and discount actions, never executed without your sign-off.
Different formulas from different suppliers, tracked separately.
Not yet built: automatic MOQ/case-pack rounding on suggested order quantities. If your supplier has a hard minimum order size, you'll still need to round up manually for now.
Install from the Shopify App Store, connect your store (read access to products, orders and inventory), and import your current batch/expiry data via CSV -- no expiry setup is required to see your first forecast, since Foreshelf works from sales history alone if you don't sell anything with a shelf life. Expiry tracking only activates for the SKUs you actually import lot data for.
No. Import batch data only for the SKUs that actually have a shelf life. Non-perishable accessories or merch can be left alone -- Foreshelf forecasts them on sales history the same way any inventory app would.
Track expiry on the underlying components. A bundle's real shelf life is its shortest-dated ingredient -- Foreshelf's forecast doesn't currently compute a bundle-level expiry automatically; you'd track the component with the tightest date.
No. Foreshelf is a reorder-decision tool, not a compliance or recall-management system. If you need FDA-level recall traceability, that's a different category of tool.
A spreadsheet can track lot expiry dates fine, for a while. What it can't do is combine that expiry date with a live sales-velocity number and tell you, today, which of your 20 flavor/size combinations is quietly heading toward a discount decision versus which one is about to stock out. That comparison, done by hand across dozens of SKUs every week, is the actual work Foreshelf removes -- not the data entry, the constant re-checking.
Free plan, no credit card. Import your data and see your first forecast in minutes.