A pet store's inventory is two kinds of stock on the same floor. Toys, leashes, litter and aquarium filters are ordinary retail: count them, keep each at a par level, and order the cases that bring it back. Pet food and treats are food: each bag has a lot code and a best-by date, a 30-pound bag of dog food can sit on the shelf for months, and when a manufacturer recalls food, the notice names lots. So the food needs a second list, every lot on the floor with its best-by date, oldest at the front. Pet food is also where the money sits: big bags cost the most and turn the slowest, so a store that over-orders a slow formula carries it, at cost, until it sells or passes its date. In the example below, a Chicago pet supply shop runs its weekly count and gets a recall notice.
The short version
- Set a par for every item, and order the cases that bring it back to par.
- Keep food and treats on a second list: each lot code, its best-by date and the units on the floor.
- Put the earliest best-by at the front, and pull anything past its date.
- When a recall names lots, check the list, not the shelf.
- Order by vendor, so each distributor's order goes out in one go.
- Big bags tie up the most cash; set their pars from what actually sells.
- TaroStack keeps each lot of food with its best-by date, and a recalled lot is one report away. More below.
What to count, and how
| Stock | Count by | Also keep |
|---|---|---|
| Dry food | Bag, by size | Lot and best-by for each lot |
| Wet food | Case and loose cans | Lot and best-by |
| Treats | Bag or box | Lot and best-by |
| Litter, bedding | Bag | |
| Toys, leashes, beds | Each | |
| Fish and small-animal supplies | Each |
Par levels against reorder points are compared in par level vs reorder point, and the shelf rotation behind "earliest at the front" in stock rotation methods.
An example: a Monday count and a recall
Lakeview Pet Supply, a made-up pet supply shop in Chicago, Illinois, counts every Monday before it orders. Part of this week's count:
| Item | Cost | Price | Margin | Par | On hand | Cases to order |
|---|---|---|---|---|---|---|
| Dry dog food, salmon, 30 lb | $41.50 | $64.99 | 36% | 12 | 7 | 5 |
| Dry dog food, salmon, 4 lb | $9.20 | $15.99 | 42% | 12 | 5 | 2 (of 6) |
| Wet cat food, chicken, case of 24 | $19.80 | $32.99 | 40% | 10 | 4 | 6 |
| Dry cat food, indoor, 12 lb | $22.40 | $36.99 | 39% | 8 | 6 | 1 (of 4) |
| Chicken jerky treats, 8 oz | $6.50 | $12.99 | 50% | 18 | 9 | 1 (of 12) |
| Clumping cat litter, 25 lb | $10.10 | $17.99 | 44% | 15 | 11 | 4 |
| Rope tug toy | $3.20 | $8.99 | 64% | 12 | 10 | 1 (of 12) |
| Aquarium filter, 3-pack | $5.75 | $11.99 | 52% | 10 | 3 | 2 (of 6) |
The week's order comes to $752.10, $566.70 of it to the pet food distributor. The food lots list had two lots inside 60 days of their best-by: four 30-pound bags of salmon dog food dated December 1, and two bags of indoor cat food dated November 20, so both went to the front of the shelf. On Wednesday the distributor forwarded a recall notice for a different brand's dry dog food, two lot codes. The list showed neither lot on the floor, and the store answered the distributor the same morning without pulling a bag off the shelf to read it. A count that doesn't match the register is in why inventory does not match.
Get the spreadsheet
Download the pet store inventory spreadsheet. Three sheets: inventory, with each item's category, vendor, cost, price, par, on hand and case pack, and the margin, what to order, the cases and the order cost filled in; food lots, with each lot's best-by date, days left against the count date and what to do; and the order by vendor. It's an ordinary Excel file with no macros, and it works in Google Sheets, LibreOffice and Numbers.
Where this stops working
The lots list is only as good as the last time someone typed it. A delivery of 12 bags with a new lot code, sold over a week alongside the old lot, means the list and the shelf drift apart by Friday, and a recall notice can come on any day.
How TaroStack does it
TaroStack keeps each lot of food with its best-by date, and a recalled lot is one report away.
Receiving with lots. Each delivery is received from its supplier with the lot and best-by date, and a supplier's GS1-128 case label can be scanned to fill them in.
First-expired-first-out. Stock goes out oldest best-by first by default, and the expiry forecast shows what's coming up on its date.
Counts and reorders. The floor can be counted on a phone with no signal, and the reorder list shows what's running low in days of cover.
| The job | Spreadsheet | In TaroStack |
|---|---|---|
| Which lots are on the floor | A list typed weekly | Lots received with each delivery |
| What's near its best-by | A formula against today | The expiry forecast |
| What to order | Par minus on hand | The reorder list |
Lots, the expiry forecast and the reorder list are on every plan, from $49 a month. The first 30 days are free, with no credit card. If you'd like a hand setting up, ask, and we'll do it with you.
