BlogHow-To

How to Manage Inventory and POS for Your Coffee Shop

How to run inventory and POS for a coffee shop in 2026: recipe-based ingredient tracking for beans, milks, and syrups, par-level reordering, daily counts, waste logs, multi-location transfers, supplier integrations, and COGS reporting that ties to your P&L.

Davaughn White·Founder
13 min read

A coffee shop's margin lives and dies in the back of house. The drink your barista hands across the counter is six to eight ingredients deep — espresso shot, steamed milk, syrup pump, whipped topping, cup, lid, sleeve, sometimes a flavored powder — and every one of them has a cost that gets averaged across thousands of drinks per week. Get the inventory layer wrong and you will not notice it on Tuesday. You will notice it at the end of the month when your COGS percentage is four points higher than it should be and you cannot explain why.

The right setup links your point-of-sale to a recipe-based inventory system that decrements ingredients automatically every time a drink is rung in. A 12 oz oat latte sells, and the system pulls 18 g of espresso beans, 8 oz of oat milk, one 12 oz cup, one lid, and one sleeve from on-hand inventory. At the end of the day, on-hand counts are projected. Your closing barista counts the actual beans, milk jugs, and cups, and the variance is the shrinkage. That variance — not the gross sales number — is the most important operational signal in the shop.

This guide walks through seven steps to set up inventory and POS for a coffee shop in 2026, the KPIs that matter, the mistakes that cost cafes their first year of profit, and how Deelo's all-in-one platform handles the workflow end-to-end. About 2,800 words, written for owners who actually pull shots, not consultants who don't.

Step 1: Build Recipe-Based Inventory for Every Drink

The foundation is the recipe. Every menu item — espresso, latte, cold brew, mocha, matcha, pastry, retail bag of beans — gets a bill of materials in the inventory system. The bill of materials is exactly what it sounds like: the ingredients and quantities that go into one unit of the finished item.

A standard 12 oz latte recipe might look like this: 18 g espresso beans, 8 oz whole milk, 1 paper cup (12 oz), 1 plastic lid, 1 cardboard sleeve. A vanilla latte adds 0.5 oz vanilla syrup. A 16 oz iced oat latte swaps milk for oat milk, swaps the hot cup for a 16 oz cold cup, adds ice (which most shops do not track, but should at least cost as a labor input).

You will build 30 to 60 of these recipes for a typical menu. Do this once and the system runs itself. Every time a barista rings up a drink at the POS, the recipe fires and decrements ingredients from on-hand inventory in the same transaction. This is the single feature that separates a real inventory system from a spreadsheet that someone updates on Sunday night and stops trusting by Wednesday.

Step 2: Set Par Levels and Automated Reorder Triggers

Par level is the minimum on-hand quantity below which you trigger a reorder. For a coffee shop, par levels matter most for high-velocity, short-shelf-life items: whole bean coffee (you want fresh, so you do not over-buy), milk (5-7 day shelf life unrefrigerated in delivery), pastries (daily), and disposables (cups, lids, sleeves are bulky but cheap so par levels can be high).

A workable rule of thumb: par level equals one and a half times your average daily usage, plus a one-day safety buffer. If you go through 12 lbs of espresso beans per day, your par level is 18 lbs and your safety buffer brings reorder to 24 lbs. The system flags whole-bean inventory below 24 lbs and either auto-generates a purchase order to your roaster or sends an alert to the manager to review.

Milk is trickier because of shelf life. You do not want to hold three cases of whole milk in the walk-in just because you ran out one Saturday. Better to set a tight par with a same-day or next-day supplier, and accept occasional emergency runs to a backup grocery account at marked-up prices. Track those grocery-run costs as a separate variance line — they are an early indicator that your forecast is off.

Step 3: Daily Inventory Count — The 5-Minute Closing Task

Every closing barista counts a short list of high-variance items. Not the whole inventory. Five to eight items, takes five minutes, gets entered into the system before they cash out the till.

The daily count list typically includes: whole bean coffee (by weight, in lbs), milk (by full and partial gallons or half-gallons), oat and almond milk (by carton), syrups in active rotation (by partial bottle, estimated to nearest 10%), and pastries (counted by item if any are left). Disposables are counted weekly, not daily — they do not move fast enough to need daily attention, and a daily disposable count adds time without insight.

The count is entered into the inventory app on a phone or tablet. The system compares the actual count to the projected on-hand (what the recipes said should remain after the day's sales) and flags any item with variance over a threshold — typically 3% for beans and milk, 5% for syrups. A 4% variance on espresso beans for one day is a rounding error. A 4% variance every day for a month is roughly 14 lbs of unaccounted beans, which at $12/lb wholesale is $168/month per location walking out the back door — overpouring, free drinks for friends, theft, or recipe drift.

Step 4: Track Waste Separately From Sales

The single most under-tracked number in a coffee shop is waste. Drinks remade because the barista pulled a bad shot. Pitchers of milk steamed and never used. Pastries marked down at end of day. Cold brew that didn't sell before the 14-day pull date. Customer comps for service issues. Each of these is a real cost that the POS does not see — a sale that didn't happen but consumed inventory.

The fix is a one-tap waste log on the POS. Bartender pulls a bad shot, taps Waste, selects Espresso, taps OK. End of day, manager reviews the waste log: how much milk was steamed and dumped, how many remakes, how many comps. The system rolls that into a waste percentage by category. Industry benchmark for a well-run shop is 2-3% of total inventory cost. Above 5% and you have a process problem — bad equipment, undertrained baristas, or a menu item that's hard to execute.

Do not skip this step thinking it's overhead. The waste log is the single best operator's tool for diagnosing why your COGS is higher than expected — and waste is one of the only inventory variances you can actually fix in the next shift.

Step 5: Multi-Location Transfers and Sharing

If you run more than one location, transfers are how you survive a Tuesday when one shop runs out of oat milk and the other has six cartons. The inventory system needs to support a transfer transaction: move 4 cartons of oat milk from Location A to Location B, decrement A's on-hand, increment B's on-hand, log the transfer with timestamp and the manager who authorized it.

The trap most multi-location operators fall into is treating each shop as a separate inventory island. That works until you start moving stock between shops without logging it, and now your system-of-record is two days behind reality at every location. The discipline is: every movement of inventory between locations is logged, every time, even for a single bag of beans. It takes 30 seconds in a well-designed system. It saves four hours of reconciliation at month-end.

For wholesale or commissary models — one central kitchen producing pastries or cold brew for multiple retail locations — the same transfer logic applies, with the central kitchen as the source. Cost of goods produced in the kitchen flows to the receiving location, and your P&L by location stays accurate.

Step 6: Supplier Integrations and Purchase Orders

Every shop has 5 to 12 vendors: the roaster, the dairy, the alt-milk distributor, the pastry vendor (often local), the disposables supplier, the syrup company, the cleaning chemical supplier, and a backup grocery account. Each has a different ordering rhythm, lead time, and minimum order. Managing these manually is where most owner-operators lose six hours a week.

The right setup links each ingredient in the inventory app to a primary supplier and a backup. When par-level reorder triggers, the system generates a draft purchase order with the supplier's preferred order method (email PDF, EDI, or a portal link) and the manager approves it in one click. Receipt of the order — when the delivery shows up — is logged against the PO, which automatically increments on-hand inventory and creates a payable in the accounting system.

The payoff is two-sided. First, the manager spends 30 minutes a week on ordering instead of three hours. Second, the system has a complete audit trail of what was ordered, what was received, what was paid, and any variance between PO and delivery. Discrepancies — short shipments, wrong items, price changes — get caught immediately instead of buried in next month's reconciliation.

Step 7: COGS Reporting That Ties to Your P&L

All of the above feeds one report: cost of goods sold as a percentage of revenue, by location, by day-part, by category. This is the number your accountant cares about and the number that tells you whether you are running a coffee shop or a charity.

For a typical specialty coffee shop, target COGS is 28-32% of net revenue. Above 35% you are leaking margin somewhere — overpouring, undercharging, waste, theft, or supplier price increases that haven't flowed into menu pricing. Below 25% you are probably underpricing your milks and syrups, especially alt-milks where wholesale prices have moved fast.

The report should break down by category: coffee/espresso, dairy and alt-milk, syrups and modifiers, food and pastry, retail (whole bean bags, merchandise), and disposables. A 33% blended COGS might hide a 40% food COGS dragging down a 28% beverage COGS. Pull the levers separately. Pricing on a $4.75 latte is a different conversation than pricing on a $4.50 croissant from a local bakery you cannot easily switch.

The report should also tie back to your P&L line for COGS in your accounting system — same period, same categorization. If they don't match within $50 in any given month, something in the pipeline (recipes, transfers, waste, supplier invoices) is off and needs investigation.

KPIs That Actually Matter

  • COGS percentage: target 28-32% for specialty coffee. Track weekly, not just monthly. A four-week trend tells you whether a recent price change worked.
  • Inventory variance percentage: actual count vs. projected on-hand. Target under 3% for high-velocity items (beans, milk). Above 5% sustained = process problem.
  • Waste percentage: target 2-3% of inventory cost. Above 5% = barista training, equipment, or menu execution issue.
  • Inventory turns per month: target 4-8 turns/month for perishables (beans, milk). Lower = over-buying. Higher = constant stockouts.
  • Stockout incidents per week: target zero. Each stockout is a sale you lost plus a guest experience hit.
  • Average ticket size: $7-12 for specialty coffee with food attach. Used to calibrate par levels and forecast.
  • Drink mix percentage: what % of sales are espresso drinks vs. brewed coffee vs. cold beverages vs. food. Drives recipe-by-recipe COGS analysis.
  • Vendor on-time delivery rate: target 95%+. Vendors below 90% are a hidden cost in stockout risk.

Common Mistakes That Kill Coffee Shop Margins

  • Counting only at month-end. A monthly count tells you the variance is bad but not where it came from. Daily 5-minute counts on high-variance items catch issues in 24 hours, not 30 days.
  • Not updating recipes when prices change. Whole milk wholesale moved from $3.20 to $3.85/gallon over the last year. If your recipe cost still uses $3.20, every drink shows a phantom margin. Re-cost recipes quarterly at minimum, monthly when supplier prices are volatile.
  • Ignoring alt-milk math. Oat milk often costs 2-3x what dairy costs at wholesale. A 50¢ alt-milk upcharge sounds reasonable until you do the math and realize a 12 oz oat latte costs you 35¢ more in milk than a 12 oz dairy latte, and your upcharge is netting you 15¢ before accounting for waste. Many shops underprice alt-milk by 25-50¢.
  • Skipping the waste log because it feels like overhead. Waste is the most actionable line in the operations report. Skipping it means you cannot diagnose why COGS is high; you can only watch it stay high.
  • Free-pouring espresso shots. A volumetric portafilter dose of 18 g vs. a free-poured 22 g is a 22% overpour. Across 400 drinks per day at $0.15 of beans per gram of overpour, that's $264 a month per location of unaccounted bean cost.
  • Not separating retail from beverage in COGS reporting. Whole bean retail bags have a totally different margin profile (40-50% margin) than drinks. Mixing them obscures both numbers.
  • Treating multi-location as multiple separate businesses for inventory. Without a transfer system, stock moves between shops untracked, and your numbers diverge from reality at every location.
  • No backup supplier on critical SKUs. When the dairy delivery is late on a Saturday morning, the grocery run costs you 2.5x wholesale and an hour of manager time. A backup supplier with a same-day option is $0 in monthly cost and saves a half-day of pain when you need it.

How Deelo Helps

Deelo is the all-in-one operations platform that handles the inventory, POS, recipe, and reporting layer for a coffee shop without forcing you to assemble five separate SaaS subscriptions. The Inventory app is the system of record for SKUs, on-hand quantities, par levels, and supplier records. Recipes are built once and referenced by the POS layer — every transaction at the counter decrements ingredients automatically based on the recipe.

The Practice/Operations app handles multi-location coordination: transfers between shops, central-kitchen production runs, and per-location P&L roll-ups. The Automation app fires reorder workflows when par levels trip, sends draft POs to suppliers, and alerts managers when daily variance crosses thresholds. The reporting layer ties COGS by category and location back to the accounting system, so the number on your operations dashboard is the same number on your P&L.

For a single-location specialty shop, the platform replaces a stack that typically includes a cloud POS ($79-149/mo), a separate inventory tool ($60-200/mo), a recipe-costing add-on, and an accounting integration — call it $200-500/month all-in. Deelo starts at $19/seat/month, so a 4-seat shop runs $76/month for the entire operations stack. For a multi-location operator (3-10 shops), the savings scale with headcount, and the operational benefit of having transfers, recipes, and reporting on one system instead of three is the real win.

Deelo does not yet ship a hardware-integrated countertop POS terminal — for shops that need a fully-integrated cash drawer, receipt printer, and customer-facing display out of the box, you will pair Deelo with a hardware POS and use Deelo as the inventory, recipe, automation, and reporting backbone. That is the right setup for most specialty shops in 2026 anyway, since the hardware POS layer commoditizes faster than the operations layer.

Next Step

If you are running a coffee shop in 2026 and your inventory lives in a Google Sheet that gets updated when someone has time, the highest-leverage operational change you can make in the next 30 days is moving to a recipe-driven inventory system tied to your POS. Start with one location, build 30 to 50 recipes, train your closing baristas on the daily count, and watch the variance numbers for two weeks. The shrinkage you find will pay for the platform many times over.

[Try Deelo for your coffee shop — start free, no credit card required.](/apps/inventory)

Frequently Asked Questions

What is the best inventory management system for a coffee shop in 2026?
The best inventory system for a coffee shop is one that links recipes to your POS so every drink sold automatically decrements its ingredients (beans, milk, syrups, cups, lids) from on-hand inventory. Deelo's Inventory app does this end-to-end at $19/seat/month, including par-level reordering, daily variance tracking, multi-location transfers, supplier purchase orders, and COGS reporting that ties to your accounting P&L. For owner-operators, the value of a single platform is replacing a stack of three to five separate tools that typically cost $200-500/month combined.
How do I track waste in a coffee shop POS?
The simplest method is a one-tap waste button on the POS. When a barista pulls a bad shot, dumps a pitcher of milk, or comps a drink, they tap Waste, select the category (espresso, milk, syrup, food, comp), and the system logs it. End of day, the manager reviews the waste log alongside the variance report. Industry benchmark for waste is 2-3% of inventory cost. Above 5% indicates a process problem — undertrained baristas, equipment issues, or a menu item that is hard to execute consistently. Waste is the most actionable inventory line because, unlike supplier price changes, you can affect it in the next shift.
What COGS percentage should a coffee shop target?
A specialty coffee shop should target 28-32% COGS as a percentage of net revenue. Below 25% usually means you are underpricing — most often on alt-milks (oat, almond) where wholesale prices have risen faster than menu prices. Above 35% means you are leaking margin somewhere: overpouring, undertracking waste, supplier price increases not yet reflected in menu pricing, or theft. Track COGS weekly rather than monthly, and break it down by category (coffee/espresso, dairy and alt-milk, syrups, food, retail, disposables) to find the specific lever. A blended 33% can hide a 40% food COGS dragging down a 28% beverage COGS.
How often should I count inventory in my coffee shop?
Closing baristas should count five to eight high-variance items every day in about five minutes: whole bean coffee, milk, alt-milks, active syrups, and pastries. Disposables (cups, lids, sleeves) are counted weekly because they do not move fast enough to justify daily attention. A full inventory count of every SKU is done monthly. Daily counts catch process drift in 24 hours instead of 30 days, and the cumulative cost of monthly-only counting on a single shop running 4% bean variance is roughly $2,000/year per location in unaccounted shrinkage at $12/lb wholesale beans.
How do I handle inventory transfers between multiple coffee shop locations?
Every movement of stock between locations should be a logged transfer transaction in the inventory system, regardless of size. The transfer decrements on-hand at the source and increments on-hand at the destination, with a timestamp and the authorizing manager. Without this discipline, the system-of-record drifts from reality fast — typically within a week — and per-location P&L becomes unreliable. Deelo's Practice app handles transfers between locations and central-kitchen production runs natively, with each transfer flowing into both location inventory ledgers and the COGS-by-location report. The 30 seconds it takes to log a transfer saves hours of reconciliation at month-end.
Can I integrate my coffee shop POS with QuickBooks or Xero?
Yes, and you should. The inventory and POS layer should push daily sales summaries, COGS by category, and supplier invoices into QuickBooks or Xero so your operations dashboard and your P&L show the same numbers in the same period. Deelo's Automation app handles the sync via direct integration or webhook flow into the accounting system. The discipline to maintain is matching categorization — the COGS categories in your inventory system (beverage, food, retail, disposables) should mirror the COGS lines in your chart of accounts. If they do not match within $50 in any given month, there is a transaction or recipe issue in the pipeline that needs investigation before it compounds.

Explore More

Related Articles