All posts How-tos & templates · 24 May 2026 · 13 min read

Coffee shop KPI tracking: the 3 numbers that actually matter.

Most cafe KPI lists are 20+ metrics nobody tracks. The honest version: three numbers — daily EBIT, prime cost %, and revenue per labor-hour — tell you everything you need to know about whether today paid.

Ibrahim Ölmez Founder, nouz · serial entrepreneur

Search "coffee shop KPIs" and you will get a list of twenty-two metrics — average ticket, customer count, attachment rate, beverage mix, conversion rate, dwell time, basket index, NPS, repeat rate, and on it goes. No owner-operator tracks twenty-two metrics. Most track zero, or one (sales). The honest middle ground is three: daily EBIT, prime cost percentage, and revenue per labor-hour. These three tell you whether today paid for itself, whether your two biggest cost lines are in line, and whether your staffing is sized to the demand. Nothing else needs to be checked daily. This post walks through each one — formula, target range, what action it triggers when it drifts — and pushes back on the "track everything" school. nouz was built around exactly these three numbers because every café owner we talked to said the same thing: I don't need more dashboards, I need to know if today was OK.

TL;DR

The three numbers. Daily EBIT (was today profitable?) · Prime cost % (are food + labor under 60-65% of revenue?) · Revenue per labor-hour (is each scheduled hour producing enough sales?). Check these three every evening. Ignore the other nineteen unless one of these three drifts.

Why three, not twenty

The reason 20-KPI lists fail in real cafés isn't that the metrics are wrong — most of them are technically useful. The reason they fail is attention. An owner who is also opening at 06:30, training a new barista, fixing the espresso machine, and arguing with the milk supplier has roughly 90 seconds at the end of the day to look at numbers. Ninety seconds will not cover twenty metrics. It will cover three, well, every day, for a year.

The other reason: most cafe KPIs are derivatives of the three above. Average ticket is just revenue ÷ transactions — a slice of revenue. Beverage mix matters only because it moves prime cost %. Attachment rate matters only because it moves revenue per labor-hour. If the three root metrics are healthy, the derivatives are almost always healthy too. If a root metric drifts, then you go look at the derivatives to find why. But you do not check the derivatives daily.

There's a third reason, which is the one nobody says out loud: most KPI lists are written by consultants or POS vendors who get paid to sound comprehensive. A list of three numbers does not justify a €2,400 dashboard subscription. A list of twenty-two does. The incentives in the industry push toward more metrics, not fewer. We're pushing the other way.

KPI 1: Daily EBIT — did today pay?

EBIT is operating profit: what the day made after every operating cost. Not gross revenue, not net revenue, not gross margin. The number that answers did this day pay for itself. For a single café day it's calculated as:

Daily EBIT formula. Gross revenue − tax − card transaction fees = net revenue. Net revenue − COGS − variable costs − daily slice of fixed costs = EBIT.

The daily slice of fixed costs is monthly fixed total ÷ 30.4375 (the average days per month, so February doesn't carry a heavier daily rent than March). That number — typically €350-€500 for a single-location café — is the floor a day has to clear before any profit accrues. Our EBIT explainer walks through every line, and the daily profit calculator runs the math in your browser.

Target range

For a healthy single-location café, daily EBIT should land between 6% and 14% of net revenue across the week. On a €1,800-revenue day, that's €110 to €250 of actual operating profit. On a €600 slow Tuesday, that's €35 to €85. Weekends should sit toward the top of the range; Mondays and Tuesdays toward the bottom. A red flag is consistent days where EBIT is negative — not occasional, but consistent. Three or more red-flag days a week and the business is structurally unprofitable, regardless of how busy the weekend felt.

Day typeTypical net revenueTarget EBIT €Target EBIT %
Slow weekday (Mon/Tue)€500-€800€30-€906-11%
Mid-week€900-€1,400€70-€1708-12%
Friday€1,400-€1,900€130-€2409-13%
Saturday€1,800-€2,500€180-€34010-14%
Sunday (if open)€1,200-€1,800€100-€2208-12%

What it triggers

If daily EBIT is below target for three consecutive days in the same day-type (e.g. three Saturdays in a row underperforming), something has shifted: a supplier price hike, a card-fee creep, an extra shift you added, a menu mix moving toward lower-margin items. Drop into KPI 2 (prime cost) and KPI 3 (revenue per labor-hour) to find which lever moved. If daily EBIT is positive every day, including slow Tuesdays, you have a structurally profitable café and the other two KPIs are almost certainly fine. You can stop reading and go home.

If daily EBIT is positive on weekends but negative on weekdays, you have a demand-shape problem, not a margin problem. Either reduce weekday hours, reduce weekday staffing, or do something to drive weekday traffic (lunch menu, coworking partnership, retail offering). Our piece on why your cafe isn't making money walks through this exact diagnostic.

KPI 2: Prime cost % — are food and labor in line?

Prime cost is the sum of two lines: cost of goods sold (food, beverages, milk, beans, syrups, packaging consumed in service) plus total labor (gross wages including taxes and benefits, for everyone working in the shop — owner included if you pay yourself a market-rate salary). Expressed as a percentage of net revenue, this is the single most diagnostic number in food service. Prime cost % captures the two cost lines that consume 55-70% of a typical cafe's revenue. If those two are healthy, everything else is small enough to manage. If those two are unhealthy, the shop cannot be profitable no matter what you do to fixed costs.

Prime cost % formula. (COGS + total labor cost) ÷ net revenue × 100. Target: 60-65% for a typical single-location café. Above 70% and the math does not work.

Target range

For a typical café, prime cost should sit between 58% and 65% of net revenue. COGS alone is usually 28-33%; labor alone is usually 28-34%. Specialty coffee shops with higher-priced single-origin offerings can run COGS lower (24-28%) because the price point absorbs more margin. Brunch-heavy cafes with savory food run COGS higher (32-38%) because food carries more material cost than coffee.

Cafe typeCOGS targetLabor targetPrime cost target
Espresso bar (drinks only)24-28%26-30%50-58%
Standard café (drinks + pastry)28-33%28-32%58-64%
Brunch/all-day café (food-heavy)32-38%30-34%62-70%
Roastery + café (retail beans)26-32%28-32%56-62%

What it triggers

If prime cost % drifts above target for two consecutive weeks, split it into the two parts. If COGS % is the one that moved, the cause is almost always (1) a supplier price increase you haven't repriced for, (2) a menu mix shift toward lower-margin items, or (3) spoilage going up. If labor % is the one that moved, the cause is almost always (1) extra shifts added without revenue rising to match, (2) wage increases without a menu reprice, or (3) understaffing on weekends pushing overtime hours that cost 1.5×.

The owner-salary trap. If you don't pay yourself a salary, your labor % looks artificially low — typically by 8-15 percentage points. The shop looks profitable on paper but is actually subsidized by your unpaid hours. Always include a market-rate owner salary in the labor line, even if you don't actually take it out. If prime cost still hits target with the owner salary included, the business genuinely works.

The hardest action prime cost triggers is a menu reprice. Most cafe owners reprice once every 18-30 months when prime cost has already crossed 70%. The healthier rhythm is a small reprice every 6-12 months, of 3-5%, to track input cost inflation. Our post on why cafes don't make money covers the reprice math in detail.

KPI 3: Revenue per labor-hour — is staffing right-sized?

Revenue per labor-hour is exactly what it sounds like: total revenue for the day, divided by total scheduled labor hours for the day (everyone — baristas, kitchen, manager, dishwasher, you if you worked the floor). It's a productivity proxy. It tells you whether each hour of labor you scheduled produced enough revenue to justify itself.

Revenue per labor-hour formula. Net revenue for the day ÷ total labor-hours scheduled that day. Target: €60-€90 per labor-hour for a typical café. Below €50 and you are overstaffed for the demand. Above €110 and you are understaffed (and your team is burning out).

Target range

For a healthy single-location café, revenue per labor-hour sits between €60 and €90. A specialty espresso bar with no food can run higher (€80-€120) because each transaction is fast. A brunch café with table service runs lower (€50-€75) because each transaction takes more labor time. The number to compare against is your own past — track it for 30 days, find your average for each day-of-week, and use that as the baseline.

Day typeTypical revenueTypical labor hoursRevenue per labor-hour
Slow Tuesday€60010h (1 barista 8h + manager 2h)€60
Standard Thursday€1,20016h (2 baristas)€75
Busy Saturday€2,20028h (3 baristas + 1 kitchen)€78
Holiday spike€2,80032h (4 baristas + 1 kitchen)€87

What it triggers

If revenue per labor-hour drops below €50 for a specific day-of-week consistently — say, three Tuesdays in a row at €42 — you are paying for more labor than that day's demand justifies. The action is to cut a half-shift on that day. Not the whole shift (which often hurts service quality), but a 4-hour mid-day overlap that exists because you scheduled two openers and one of them isn't needed. Look at the schedule on your three worst Tuesdays and find the redundant hours.

If revenue per labor-hour climbs above €110 on a specific day consistently — say, four Saturdays in a row at €115 — you are understaffed. Your team is producing more revenue per hour than they sustainably can, which means longer queue times, slower drink quality, more dropped orders, and faster staff turnover. The action is to add a 4-hour shift across the peak of that day. The added labor cost will pay for itself in retained customers and avoided burnout.

The sweet spot — €70-€85 — means your staffing is matched to demand. Drinks come out at quality, queues stay short, and the staff aren't drowning. This is the operational health zone.

How the three interact

The three KPIs are not independent. They tell a coherent story when read together. A few patterns we see weekly across cafe owners using nouz:

Pattern A: EBIT down, prime cost up, revenue per labor-hour down. All three moving in the wrong direction usually means you added a shift you didn't need. The extra labor pushed prime cost up, dragged revenue-per-labor-hour down, and ate EBIT. Fix: cut the shift you most recently added, watch the three numbers for a week.

Pattern B: EBIT down, prime cost up, revenue per labor-hour stable. Labor is fine — the leak is on the COGS side. Either a supplier price hike, spoilage rising, or menu mix moving toward lower-margin items. Pull last month's invoices versus the previous month and find the line that grew.

Pattern C: EBIT down, prime cost stable, revenue per labor-hour stable. Both prime cost components are fine. The leak is in fixed costs (rent increase, software stack growing, insurance renewal hit) or variable costs (packaging, cleaning supplies, repairs). Time to audit those line items.

Pattern D: EBIT up, prime cost up, revenue per labor-hour up. This is the rare good signal where everything is moving with rising revenue. You're getting more out of the team and more out of the menu, even though costs grew with volume. Don't change anything. Save the surplus for the next slow month.

Read the three together. No single KPI is diagnostic on its own — the combination is. nouz shows all three on one dashboard line so you can read the pattern in five seconds, not five minutes.

What to stop tracking daily

These are real metrics that real consultants will tell you to track daily. We're telling you: don't. Check them monthly or quarterly. Not daily.

  • Average ticket size. Useful trend over months, distracting day to day — moves with weather, holidays, and one big catering order.
  • Customer count. Same problem. The number you care about is revenue, which already incorporates count × ticket.
  • Attachment rate (food with drink). A monthly review metric for menu engineering, not a daily one.
  • Beverage mix percentages. Useful when you reprice or change the menu, useless on a Tuesday evening.
  • Customer satisfaction / NPS. A quarterly survey metric. Daily NPS is noise — three angry reviews on a Tuesday do not mean your shop is failing.
  • Social media engagement. Track weekly at most. Daily checks invite chasing vanity metrics.
  • Loyalty program enrollments. A monthly KPI for the marketing review, not a daily operating one.
  • Repeat customer rate. Quarterly. Daily noise drowns the signal.
  • Dwell time. Interesting once a year for layout decisions. Pointless daily.

None of these are bad metrics. They are bad daily metrics. They belong in a monthly or quarterly review. The daily window belongs to the three that drive whether the business survives.

The 5-minute daily routine

Here's how to actually check the three numbers each evening without it becoming a 30-minute task. The constraint is: this has to fit in the window between close and going home, or it will not get done consistently.

  1. Total today's cash and card sales (your POS gives you this in one click). Enter it.
  2. Total today's labor-hours scheduled (your rota tells you this — sum the hours across all staff who worked today).
  3. Enter any spend that happened today — milk delivery, cleaning supplies, repair callout. Even small ones. This is what most people skip and what makes month-end numbers off.
  4. Read the three numbers nouz computes: EBIT, prime cost %, revenue per labor-hour.
  5. Compare each to your target range. If all three are in range — close the laptop, go home, you're done. If one is out of range, note which one and tomorrow morning think about what changed.

That's the whole routine. Five minutes. Every evening. The win isn't that you'll spot every issue immediately — it's that within two weeks you'll have a sense of what "normal" looks like for each of the three KPIs on your specific shop, on each day of the week. After that, drift is obvious.

Compare this to the monthly P&L from your accountant, which arrives two weeks after month-end. By the time you see that February's prime cost ran 72%, it's mid-March and the leak has already cost you another half-month. Same-day P&L exists specifically because the gap between "something is off" and "you know something is off" is where small cafes lose the most money. For the wider operating playbook these three KPIs fit into, see the cafe profitability pillar.

If you want the three numbers automatically, every evening. nouz for cafes computes daily EBIT, prime cost %, and revenue per labor-hour from the data you enter at close — no spreadsheet, no formulas. Setup takes about seven minutes. Or try the live demo first to see the three numbers on a sample week.

Most owners who start tracking these three find that within a month, one of them is meaningfully off the target range — and that the fix is something they could have implemented anytime in the past year if they'd been looking. The cost of not tracking is rarely a single big mistake; it's a year of small drift in a metric nobody was watching. Three numbers, five minutes a day, every day. That is the entire honest KPI list for a coffee shop.

FAQ

What are the most important KPIs for a coffee shop?

Three numbers matter daily for a coffee shop: daily EBIT (operating profit for the day — did today pay for itself), prime cost percentage (food + labor as a share of net revenue, target 60-65%), and revenue per labor-hour (net revenue ÷ scheduled labor-hours, target €60-€90). Other commonly-cited KPIs like average ticket, attachment rate, or beverage mix are useful on a monthly or quarterly review, not daily.

What is a good prime cost percentage for a cafe?

For a typical café, prime cost (COGS + labor) should sit between 58% and 65% of net revenue. Espresso bars without food can run as low as 50-58%. Brunch-heavy cafes with savory food can run up to 62-70%. Above 70% and the business model usually does not work — you cannot cover rent and other fixed costs with what is left. If your prime cost is above 70%, the action is either a menu reprice, a labor restructure, or both.

How do I calculate revenue per labor-hour for my coffee shop?

Take the net revenue for the day (gross revenue minus tax minus card fees) and divide by the total scheduled labor-hours that day across all staff — baristas, kitchen, manager, and yourself if you worked the floor. For example: €1,200 net revenue ÷ 16 labor-hours = €75 per labor-hour. Track it daily for 30 days, then use the average for each day of the week as your baseline. Below €50 means overstaffed, above €110 means understaffed and the team is burning out.

Why should I not track 20 KPIs for my coffee shop?

Attention is finite. An owner-operator running a café has roughly 90 seconds at end of day to look at numbers. Ninety seconds covers three KPIs well, not twenty. Most multi-KPI dashboards either go unread or get checked sporadically, which is worse than checking three consistently every day. Also, most of the other commonly-cited cafe KPIs are derivatives of the three above — if EBIT, prime cost, and revenue per labor-hour are healthy, the derivatives almost always are too.

How often should a cafe owner check KPIs?

The three core KPIs (EBIT, prime cost %, revenue per labor-hour) should be checked daily — every evening at close, in about five minutes. Monthly KPIs (average ticket, customer count, attachment rate, beverage mix) should be checked once a month during a review session. Quarterly KPIs (customer satisfaction, repeat rate, loyalty enrollments) should be checked quarterly. The mistake is checking everything daily — that leads to checking nothing consistently.