Coffee Shop Inventory Management
Running a coffee shop means dealing with dozens of ingredients that expire fast, cost varies wildly, and portions are small but frequent. Coffee shop inventory management is not the same as running a full restaurant — you're tracking milk by the gallon daily, coffee by the pound weekly, and syrups by the bottle. Get it wrong and your food cost creeps above 35%, your baristas are over-pouring, and you're throwing out unsold pastries every night. Get it right and your margins tighten up, waste drops, and you always know what to order before you run out.
TL;DR
- Coffee shop inventory breaks into 5 categories: coffee/tea, dairy, syrups, food items, and packaging — each tracked differently.
- Dairy should be counted daily; coffee beans and syrups weekly; food items daily.
- Set a reorder point (daily usage × buffer days, a 2-day buffer for your fastest-moving items as a baseline) and a par level above it to prevent stockouts.
- Variance between coffee used and espresso drinks sold reveals waste or over-pouring before it becomes a bigger problem.
Why Coffee Shop Inventory Is Different from a Restaurant
Coffee shops move a huge volume of perishables through very small quantities per drink. A latte uses roughly 1–1.5 oz of espresso, 6–8 oz of milk, and maybe a pump or two of syrup. None of those feel significant individually — but at 200 drinks a day, small variances in milk steaming or syrup pumping compound into real money.
Compared to a full-service restaurant where a pasta dish uses half a pound of protein and a measured sauce, coffee shop ingredients are high-velocity and low-unit. You might reorder oat milk twice a week. A restaurant might reorder their chicken once. This pace demands a tighter, more frequent tracking cadence.
Perishables like dairy and fresh pastries have short shelf lives — 5–7 days for milk, often 1–2 days for baked goods. That means ordering in smaller, more frequent batches and watching sell-through daily, not weekly.
The 5 Categories of Coffee Shop Inventory
Organizing your inventory into these five buckets makes counting faster and catch variance easier.
| Category | Examples | Unit to Track | Count Frequency |
|---|---|---|---|
| Coffee & Tea | Whole bean, espresso blend, loose-leaf teas | Weight (lbs/kg) | Weekly |
| Dairy & Non-Dairy | Whole milk, oat milk, almond milk, heavy cream | Gallon or liter | Daily |
| Syrups & Sweeteners | Vanilla, hazelnut, caramel, simple syrup, sugar | Bottle / pump count | Weekly |
| Food Items | Pastries, sandwiches, snacks | Unit count | Daily |
| Packaging & Supplies | Cups, lids, sleeves, stirrers, napkins | Case / unit | Weekly or monthly |
Coffee & Tea — Track whole beans and espresso blends by weight. If you're going through 10 lbs of house espresso per week, that's your baseline for calculating expected shot yield and comparing against actual sales.
Dairy & Non-Dairy — This is your highest-waste, shortest-shelf-life category. Whole milk, oat milk, almond milk, and heavy cream all need daily counts. Running out mid-morning rush is a customer experience problem; over-ordering leads to spoilage.
Syrups & Sweeteners — A 1-liter bottle of flavored syrup typically yields 33 pumps (at 30ml per pump). Tracking by bottle and knowing your pumps-per-bottle helps verify syrup costs match your sales mix.
Food Items — Pastries and sandwiches are usually bought from a wholesale supplier or local bakery. Count what you have at open and again at close. What didn't sell? That's your shrink number for the day.
Packaging & Supplies — Cups, lids, and sleeves don't expire, but running out during service is disruptive. Count these weekly and maintain a 1–2 week buffer.
How to Set Par Levels for a Coffee Shop
Two numbers work together here. The reorder point is the count that tells you it's time to order — the basic formula is daily usage × buffer days = reorder point. The par level is the target you're ordering back up to, set a bit above the reorder point so a single order restores a comfortable working stock instead of bringing you right down to empty.
Example: Whole Milk
- You use 3 gallons per day on a typical weekday.
- You want a 2-day buffer in case your delivery is delayed.
- Reorder point = 3 gallons × 2 days = 6 gallons — once your count drops below this, place an order.
- Set your par level a bit above that, say 10 gallons, so the order brings you back to a working stock rather than to the bare minimum.
- If you count 4 gallons on Monday morning, you order 6 gallons to bring your stock back up to par.
Apply the same logic to oat milk (which often sells nearly as fast as whole milk now), heavy cream, and any syrup that moves in high volume. Seasonal or slower-moving items can have a 3–5 day buffer instead.
For coffee beans, if you use 10 lbs per week and your supplier delivers weekly, set your reorder point at 10–12 lbs and your par level a bit above that — accounting for a busier-than-normal week or a delivery delay.
How This Maps to Dinezy's Min/Max Settings
The reorder point and par level above are the general operating concept; in Dinezy they're entered as Min and Max on each inventory item. Min is the reorder point — the count that puts the item on the low-stock list. Max is the par level — what Dinezy suggests restocking to. Once your count drops below Min, Dinezy calculates the suggested reorder quantity automatically as Max minus your current count.
How Often to Count Each Category
Counting frequency should match how fast each item moves and how much money is at stake if you run out or over-buy:
- Dairy (all types): Every day, at open or close. This is non-negotiable — spoilage kills margins fast.
- Coffee beans: Once per week, on a consistent day (Monday morning is common). Compare to the prior week.
- Syrups: Once per week. Note which bottles are below half and which are nearly full.
- Food items: Daily count at close — how many of each item didn't sell?
- Packaging: Weekly or biweekly is usually enough unless you're in a rush season.
Variance Tracking: Does Your Coffee Match Your Sales?
This is where inventory gets powerful. A standard commercial espresso machine pulls roughly 30–35 double shots per pound of coffee. If you're using 10 lbs of espresso beans per week, you should be pulling about 300–350 double shots — which should roughly align to your espresso-based drink sales.
Pull your POS sales report for the week: how many lattes, cappuccinos, americanos, and other espresso drinks did you sell? If you sold 280 espresso drinks but used enough beans for 380 shots, there's a 100-shot gap. That gap is waste, spillage, training inconsistency, or portioning errors.
Variance tracking like this catches problems early. A 10% variance might be normal. A 30% variance is a training or process issue.
Connecting Inventory to Drink Costing
Knowing your food cost per drink helps you price correctly and spot when ingredient costs shift. Here's a simple cost calculation for a 16 oz oat milk latte:
| Ingredient | Quantity | Unit Cost | Drink Cost |
|---|---|---|---|
| Espresso (2 shots, ~0.06 lbs) | 0.06 lbs | $12/lb beans | $0.72 |
| Oat milk | 10 oz (~0.3 liters) | $4.50/half-gallon | $0.85 |
| Vanilla syrup | 2 pumps (~2 oz) | $8/liter bottle | $0.47 |
| Cup, lid, sleeve | 1 set | $0.18/set | $0.18 |
| Total | $2.22 |
If you're selling this latte for $6.50, your food cost percentage is about 34% — toward the high end of the 25–35% range typical for coffee shops. Switching to a cheaper oat milk supplier or tightening the syrup pumps to 1.5 drops food cost meaningfully without affecting the drink.
Inventory data makes this math real. Without it, you're guessing.
Frequently Asked Questions
How often should a coffee shop do inventory? Dairy and food items should be counted daily. Coffee beans and syrups can be counted weekly. Supplies like cups and lids can be counted weekly or biweekly. The shorter the shelf life, the more frequently you need to count.
What is a par level and how do I set one for my coffee shop? A par level is the target quantity you want on hand after restocking; the reorder point is the count that tells you when to order. Set the reorder point by multiplying your daily usage by the number of days of buffer you want (typically 2 days) — for example, if you use 3 gallons of oat milk per day, your reorder point is 6 gallons — then set your par level a bit above that as the target you restock to. In Dinezy, these map to Min (reorder point) and Max (par level) on each inventory item, and the suggested reorder quantity is calculated automatically as Max minus your current count once you drop below Min.
How do I know if my baristas are over-pouring? Compare your coffee bean usage (lbs consumed per week) to the expected shot yield (roughly 30–35 double shots per lb of espresso). Then compare expected shots to your actual espresso drink sales from the POS. A large gap between usage and sales indicates over-extraction, spillage, or waste.
Key Takeaways
- Organize coffee shop inventory into 5 categories: coffee/tea, dairy, syrups, food, and packaging — and track each at the right frequency.
- Dairy counts daily, beans and syrups weekly, food items daily.
- Set your reorder point from daily usage plus a 2-day buffer for fast-moving perishables, and set your par level a bit above it — in Dinezy these are Min and Max, with the suggested reorder quantity calculated automatically.
- Variance between coffee bean usage and espresso drink sales is your early warning signal for waste and over-pouring.
Dinezy helps coffee shop owners track inventory by category, set Min/Max reorder levels, and calculate drink costs without spreadsheets. Try Dinezy free at dinezytech.com.
