Pet store inventory management: expiry, variant sprawl, and subscriptions
Pet store inventory management for Shopify: FEFO rotation for dated food, taming size and breed variant sprawl, and subscription demand planning.
InventoryX is in development and not available today. ClearStock is the live Shopify app.
Pet inventory is harder than general retail for three structural reasons: a large share of your catalog expires — dog treats, canned food, supplements, dental chews all carry dates that force rotation whether you track them or not; variants multiply by life-stage and size in ways that quietly double your SKU count; and your bestsellers are consumables on repurchase cycles, which means demand is a subscription whether or not you sell one. A general-store method fails here in recognizable ways: the food that expired in the back of the shelf, the Chihuahua sizes gone while the Great Dane sizes pile up, the steady subscriber demand that punishes every dark day twice. This guide covers what actually changes: expiry discipline, buying curves by breed size, and stock planning around repeat purchase.
What flat buying actually costs: a before/after
Take one food line and look at it both ways. Last quarter, actual units sold by breed size: 34% small-breed, 41% medium, 19% large, 6% giant.
- The before: a flat allocation. The store bought 25% of each size. Result: small-breed sold out mid-quarter (34% of demand, 25% of the buy — every dark day on a repurchase consumable is a subscriber you're teaching to shop elsewhere), medium barely held, and the giant bags — bought at the highest unit cost — sat unsold into the next date cycle, aging toward markdown.
- The after: the curve buy. Same total units, bought 34/41/19/6: every size sized to its demand, no dark weeks on the 75% of volume that lives in small and medium, and the giant-breed line handled as its own reorder-point question (6% of units, one customer can clear a shelf of it) rather than a flat share.
The gap between those two shelves — lost sales on the small end, aging stock on the big end, from a single flat allocation — is the pet-store inventory problem in one dataset. The sections below explain the three structural reasons pet inventory produces this pattern and what to do about each.
Expiry is the first difference: FEFO, not FIFO
For dated pet products, rotation runs first-expired-first-out (FEFO), not FIFO — the full mechanics (date fields, lot codes, rotation triggers, waste math) are covered in our expiry-date tracking article. What's pet-specific on top of it:
- Pet food dates arrive mixed. Distributors allocate from their own stock, so your reorder of the same SKU can land with a different remaining shelf life each time. Receive-dating (recording the printed date at receiving, not at sale) is the only defense — it's a receiving-habit change, not software.
- Treats and chews turn faster than food. Category-specific shelf lives vary widely (check the printed dates on your own range; treat this as a per-SKU property, not a category assumption). Your slowest-selling treat is usually your next write-off, because nothing about its storage or rotation differs from the fast one.
- "Near-dated" pet food still sells — to the right buyer and the right channel. Some stores run a marked-down near-date section, others donate (ask your accountant about deductibility rather than assuming it), and some channels (shelters, rescues) take short-dated stock happily. The point is deciding the channel before the date forces the issue, because an expired unit has only one channel: the bin.
The cost side is unforgiving: a 2002 study commissioned by the Grocery Manufacturers of America found 31% of shoppers bought elsewhere when a product was out and only 9% bought nothing (dated, accessed October 2026) — but pet food buyers are even less tolerant than average, because a pet on a specific diet doesn't substitute easily. An empty bin for their brand is a store switch, not a delay.
The variant sprawl: buying curves by size and life stage
The clothing-store multiplication problem has a pet-store cousin. One food line × life stage (puppy/adult/senior) × breed size (small/medium/large/giant) × bag size (2lb/12lb/28lb) is dozens of SKUs per line — and demand across those variants is nowhere near uniform. Two practices tame it:
- Derive the breed-size curve from your own sales, per food line, each season. Worked example: a line where last quarter's units went 34% small-breed, 41% medium, 19% large, 6% giant. Buying flat across four sizes strands the giant bags every quarter; buying the curve gets each size right but means the 6% line (giant breed, usually the biggest bags, highest unit cost) is a reorder-point question on its own, since one customer can clear a whole shelf of it. The reorder point formula applied per variant — not per line — is what keeps the tails covered.
- Cut bag-size variants that don't earn their tracking. If the 4lb bag of a food exists "because the shelf had room" but sells 0.2/week while sharing an expiry clock and a count with its siblings, it's a variant that costs more in attention than it earns. The decision test is the same as any SKU's: velocity, margin, and what it does for the customer who buys the big bag monthly anyway.
Subscription-style repeat purchase is the second structural fact: a dog eats on a schedule. Which means your demand on the bestsellers is predictable in a specific way — steady, dateable, and punishing to dark days. If you run a subscribe-and-save offer, the subscription count per SKU is a floor under demand: a food with 60 active subscribers at one bag per month needs those 60 bags before any new-customer forecast. If you don't run subscriptions, the repurchase rhythm still exists — it just lives in your sales data instead of a report, which is one more reason velocity on pet consumables should be computed on in-stock days only, or every dark day quietly teaches your math to under-order.
Stock planning around the repurchase cycle
Three adjustments to general practice, in order of impact:
- Tier your service levels. The food a customer returns for every 4–6 weeks is not the same class of SKU as the novelty toy. Tier 1 (staple consumables): buffers sized generously, dark days treated as emergencies — the cost of being out compounds through the lost cycle, not just the lost sale. Tier 2 (toys, accessories): standard math. Tier 3 (novelty, seasonal costumes): lean, because a missed novelty sale doesn't take a customer's next thirty purchases with it.
- Count the dated bins on a fixed rhythm. Pet stores fail counts differently than general retail: the shrinkage isn't mostly theft, it's expiry discovered late. A weekly rotation check of fast-moving dated bins (the FEFO walk) plus a monthly count of the dated stock turns expiry from a write-off surprise into a purchasing adjustment you saw coming.
- Watch sell-through at the line level for discontinuations. Pet food lines get reformulated and discontinued by manufacturers constantly, and distributors sometimes fill orders with successor recipes without saying so. Sell-through rate on a line that's suddenly moving oddly — or a delivery whose dates look different than usual — is often the first signal that the manufacturer's assortment changed under you. Catching it in week one lets you manage customers' transitions; catching it in month three means your shelf and your product pages are lying to subscribers.
If you sell in person as well as online, one more warning: pet stores are the classic case where the back room and the website disagree. The bag scanned at the POS and the bag sold online must decrement the same count — POS inventory management covers the mechanics, but the habit matters: reconcile the POS location's counts weekly, because dated stock that sells in-store but never leaves the online count is how oversells start.
A note on tooling, honestly framed
Expiry and lot tracking are ERP-grade features that most small-store apps — including ours — don't ship. InventoryX (in development, no published price) gives you per-SKU days out of stock, estimated lost sales, and a weekly buying list built on in-stock-only velocity, which handles the variant-level reorder math and the dark-day cost; the date-walk and receive-dating discipline above stays a physical process, run on a clipboard if that's what it takes. Match the tool to the layer: software for the buying math, habit for the rotation.
Common questions
How do you manage inventory in a pet store? Run dated products (food, treats, supplements) on FEFO rotation with dates recorded at receiving, buy food lines as breed-size curves derived from your own sales rather than flat allocations, and tier your service levels so staple consumables never run dark — a pet food customer who finds their brand missing switches stores. Weekly dated-bin checks and variant-level reorder points cover the rest.
What is FEFO and why does it matter for pet food? FEFO means picking by printed date rather than arrival order — and in a pet store it matters because distributor deliveries arrive with mixed dates: your reorder of the same kibble can land with months less shelf life than the pallet before it. So the practical pet version is receive-dating at the dock and a weekly dated-bin walk, so the earlier-dated bags get pulled before they're a markdown or a write-off.
How do I handle near-expiry pet food? Decide the channel before the date forces it: a marked-down near-date section, donation to shelters or rescues (confirm deductibility with your accountant), or a clearance push keyed to the date minus your sell-through speed. An expired unit has no channel but the bin, so the trigger date needs to be weeks before the printed one — sized from how fast the SKU actually sells.
How much inventory should a pet store carry on staple foods? Enough to cover the full repurchase cycle of your regulars plus lead time, because staple demand is subscription-like: the customers eat on a schedule whether or not you sell subscriptions. Treat active subscriber counts as a demand floor, compute reorder points per variant (bag size included), and buffer the life-stage/size variants that drive the line's revenue rather than averaging across the line.
Why do pet store variants multiply so fast? One food line × life stage × breed size × bag size multiplies into dozens of SKUs with highly uneven demand — the giant-breed bags might be 6% of units at the highest unit cost. Derive the curve from your own sales each period, keep reorder math at the variant level, and cut bag sizes that don't earn their counting, expiry, and shelf costs.
Next step
This week, walk your dated bins and write the printed dates into a sheet — that one afternoon tells you how much of your stock is silently aging and which SKUs' rotation you've been trusting to luck. Then pull your top food line's units by breed size and bag size and compare the actual curve to what you last bought. The two lists — what's expiring and what's stranded — are the same exercise from opposite ends, and both usually point at the same fix: buying the curve, and dating the bin.