Coffee shop economics
Coffee Shop Staff Scheduling: How to Match Labor to Demand
Labor is the biggest cost you can control, and your schedule is where you control it. Yet most shops build the same schedule every week out of habit, not demand — overpaying through slow afternoons and scrambling through the rush. Here's how to schedule from your real numbers instead.
Your schedule is the single most powerful lever you touch each week, because labor is usually your largest controllable cost — often 30–45% of revenue. And yet most shops schedule the same way every week: roughly the same people, roughly the same hours, set once and repeated. That habit quietly costs you on both ends — you're overstaffed when it's dead and understaffed when it's slammed.
The core shift: stop building your schedule from habit and start building it from your sales by hour. Your own data already shows you exactly when the money comes in. Staffing to that curve — instead of a flat, repeated template — is how you protect margin without hurting service.
Find your real demand curve
Pull your sales-by-hour across a typical week and look at the shape. Almost every shop has a sharp morning peak, a lunch bump, and stretches — often mid-afternoon — where sales trickle. That curve is your staffing blueprint. The mistake is scheduling as if every open hour is equally busy, when your data plainly shows it isn't.
The overstaffed afternoon
This is the most common leak. Two people scheduled through a 2–5pm stretch that barely produces enough sales to cover one of them. It feels responsible — you want the shop covered — but if the wages in those hours consistently outrun the sales, you're subsidizing being open. Sometimes that's a deliberate community choice; often it's just an unexamined habit. Either way, you should be making it on purpose.
Your sales-by-hour report is already a staffing plan. Most owners just never read it that way.
Don't under-staff the rush
Cutting labor isn't the goal — matching it is. Understaffing your peak has a real cost that never shows up on the payroll line: long lines, walk-offs, slower service, quality slipping, and your best people burning out. The rush is where you make your money; protect it. Move labor from the dead hours to the busy ones rather than just cutting.
Use sales per labor hour to check yourself
A simple gut-check for any block: sales per labor hour — the revenue in a period divided by the staff hours you paid. Compare your dayparts against each other. When one block is generating far less per labor hour than the rest, that's your signal to look at the schedule for those hours. You don't need a universal benchmark; your own dayparts, compared week to week, tell you plenty.
Build the schedule from your real numbers
Second Manager reads your Square export every week and surfaces how your labor lines up against your sales by daypart — flagging the hours that don't pull their weight as questions worth asking, so your schedule follows your demand instead of your habits.
Start your free 7-day trial →Built for independent coffee shops · No integration · Just a CSV
The bottom line
Your schedule is where labor cost is won or lost. Read your sales-by-hour, staff to the curve, question the overstaffed slow stretches, protect the rush, and use sales per labor hour to check each block. Matching your labor to your real demand — instead of repeating last week's template — is one of the cleanest margin wins available to any shop.
Common questions
How should I schedule staff at my coffee shop?
Build the schedule from your sales-by-hour data rather than habit. Your own numbers show when the money actually comes in, so staff to that demand curve, moving labor from slow stretches to your peak periods rather than repeating the same flat template every week.
How do I know if my coffee shop is overstaffed?
Compare the labor you run in each part of the day against the sales those same hours produce. If a stretch, often mid-afternoon, consistently costs more in wages than it brings in, you're likely overstaffed there. Sales per labor hour, compared across dayparts, makes this clear.
What is sales per labor hour?
Sales per labor hour is the revenue generated for each paid hour of staff time: total sales in a period divided by the staff hours you paid. Comparing it across your own dayparts, and watching the trend, is a reliable way to spot which hours are overstaffed without chasing a universal benchmark.
Is it bad to cut staff during slow hours?
Not necessarily, but the goal is matching labor to demand, not just cutting. Move labor from genuinely slow stretches toward your rush rather than under-staffing your peak, since understaffing the busy periods costs you in lost sales, slower service, and burnout that never show up on the payroll line.
More reading: What's a healthy coffee shop labor cost? · 7 numbers to check weekly · Busy but not profitable? · See how Second Manager works →