
Guides
Coffee shop KPIs: reading the peak from timestamped sales
Coffee shop KPIs worth tracking: seven questions, the six records behind them, typical peak and labor ranges, and how to read the stock and waste gaps.
What to take away
- Seven questions decide which numbers a coffee shop tracks, and most of them are about time of day.
- Sales that are not timestamped to five minute buckets hide the peak.
- Typical ranges for one espresso bar and one till are a starting point. A month of your own data beats them.
- The gap between theoretical usage and the physical count is a KPI, not a chore.
- Waste needs a reason beside the quantity, because each reason points to a different fix.
The seven questions, each with its measure
Each question a shop needs answered maps to one measure and one record. Write the seven down first, and the KPI list follows from them rather than from whatever a dashboard happens to show.
Seven questions to answer
- Transactions per five minute period
- Item sales by block, monthly
- Recipe cost vs actual usage
- Customers returning within a fortnight
- Waste by item and reason
- Supplier price vs quote
- Scheduled vs paid labor hours
| Question | The measure | Record it comes from |
|---|---|---|
| What do we sell in each five minute bucket on a normal weekday morning? | Transactions per bucket | Transaction |
| Which items carry the margin we need, and which only move volume? | Contribution per item | Item |
| How far is theoretical usage from the physical count? | Gap per recipe | Item and stock count |
| Where does waste come from: ordering, rotation or preparation? | Waste by reason | Waste entry |
| What does labor cost per open hour, block by block? | Labor cost per open hour | Labor |
| How often do customers come back, and how long before they lapse? | Frequency, second visit rate, lapse | Customer |
| What does each channel and daypart return after card fees and discounts? | Return by channel and daypart | Transaction |
A shop that answers those seven has enough numbers. One that answers three of them with beautiful charts does not, however good the charts look.
Reading the peak
The peak is the whole point. A coffee shop lives and dies in a narrow morning block, and a report by day averages that block away. Daily reporting is why so many owners cannot say what their peak actually looks like.
The chart to build is transactions in five minute buckets across a normal week. Everything about staffing, menu and price follows from that shape. It needs a timestamp on every sale, which is a fact about the records, not about any product.
Typical ranges for one bar and one till
These are typical ranges for one site with a single espresso bar and one till. Treat them as a starting point, because your own month of timestamped data beats any published figure.
| Measure | Typical range | What it tells you |
|---|---|---|
| Peak transactions per five minute bucket | 6 to 15 | Bar capacity and till demand at the busiest point |
| Transactions per labor hour in the peak | 15 to 30 | Whether the block is staffed to its shape |
| Labor cost per open hour | 25 to 35 percent of that hour's sales | Whether the hour pays for the people in it |
| Sales per open hour | $40 to $120 | The floor a block has to clear |
A bucket above 15 in a shop with one bar usually means a queue, not a record. When labor cost per open hour runs past 35 percent of that hour's sales, the fix is a shorter block or a thinner schedule, not a faster barista.
The six records behind the numbers
Six records carry every number above: transaction, item, stock count, waste entry, customer and labor. Each has to hold the fields its measure needs, or the KPI cannot be built from the history later.
Data model records and fields
Record
- Transaction
- Timestamp, items, discounts, channel
- Item
- Recipe by weight, packaging, category
- Stock count
- Date, counter, quantity by unit
- Waste entry
- Item, quantity, reason, time
- Customer
- Visit timestamps, nothing unneeded
- Labor
- Scheduled and paid hours, by block
Must carry
- Transaction
- Peak analysis, block reporting
- Item
- Theoretical usage, contribution per item
- Stock count
- Actual against theoretical
- Waste entry
- Ordering or handling problem
- Customer
- Frequency, second visit, lapse
- Labor
- Labor cost per open hour
Makes possible
- Transaction
- Item
- Stock count
- Waste entry
- Customer
- Labor
The transaction record carries a timestamp to the minute, items, discounts and channel. It is also the supporting evidence for gross receipts, and the IRS says to keep supporting documents that show their amounts and sources.
The customer record deserves restraint. Collect visit data because it answers a question you will actually ask, such as how often customers come back. Every extra field is something you now have to protect. The answer feeds coffee shop marketing.
Stock: the gap that tells you something
Enter recipes by weight or volume, not by portion names. That produces theoretical usage, the number to compare against a physical count. Without recipes in the system, theoretical usage does not exist.
The gap tells you whether pours run over recipe, whether waste is being logged honestly, and whether a supplier substitution has changed a product. None of that is visible without both halves. How a shop holds and rotates stock covers the counting half.
Waste: the reason field
A waste entry needs a reason as well as a quantity. Discarded unsold is an ordering problem. Discarded because it was made wrong is a training problem. Discarded past a date is a rotation problem.
Each reason has a different fix, which is why the field is worth insisting on. The EPA's Wasted Food Scale names preventing food from going to waste in the first place as the most environmentally beneficial option. In a coffee shop, prevention is almost always the order.
Who sees the sheet
The sheet has to reach the people who act on it, and not everyone needs every number. A part time employee does not need the reporting module. Access control is part of induction, alongside the standard a new starter is taught.
Whoever sets the schedule needs the peak chart and labor cost per open hour, because those two measures decide the schedule. Whoever orders needs the stock gap and the waste reasons, because those decide the order.
From numbers to decisions
The numbers a shop needs fit on one sheet. A dashboard nobody opens changes nothing, so the sheet feeds two decisions: what the menu is built to produce, and how demand is measured rather than assumed.
The menu change test starts from bar capacity, which the peak chart shows. Labor decisions start from the same chart and from labor cost per open hour, block by block.
Which product holds these records is a separate buying decision. Platforms such as Square, Toast and Clover appear in most shortlists, and testing before you buy covers the trial.
Common questions
Do I need separate systems for sales, stock and payroll?
Not necessarily, but each of the seven questions needs an answer. Integration matters less than the answers themselves.
Is a cheaper system a false economy?
Only if it fails on timestamps, recipes or export. Those three are the ones that cost you later. Everything else is convenience.
Which of the seven questions comes first?
The first: sales per five minute bucket on a normal weekday morning. Staffing, menu and price all follow from that shape.
Are the typical ranges targets?
No. They are typical for one bar and one till. Your own month of timestamped data is the benchmark.
How long should I keep records?
Ask your accountant and your state authority, since retention periods differ. Whatever the answer, keep them in a form you can still read after you change systems.
What is the first thing to fix in an existing setup?
Turn on transaction level export and pull a month of it. Most owners find at least one surprise in the first hour of looking at their own peak properly.







