Skip to content
Reserver
Start free
Operations

KPIs every restaurant should measure on their reservations

The nine metrics that separate restaurants running on data from those running on gut feel. How to compute each, what ranges are reasonable, and what decisions they drive.

Equipo Reserver 4 min read

There are two kinds of restaurant: the one that knows exactly how many guests no-show on Friday nights, and the one that “thinks about 20%”. The first adjusts policy from data. The second over- or under-books without knowing which.

Here are the nine essential metrics your reservation system should surface — and what each one tells you to do.

1. Occupancy rate per service

What it is: percentage of total capacity filled per service. How to compute: covers served / max capacity × 100.

The queen metric. Look at it with granularity: a weekly average can hide that Saturdays you’re at 95% and Mondays at 30%.

Reasonable ranges: in a healthy restaurant, “strong” services (Friday/Saturday dinner) hit 80–95%; “weak” ones (Tuesday lunch, Sunday dinner) can drop to 40–50%. If your strong services don’t clear 70%, something is throttling inflow — price, visibility, experience, or booking channels.

Decision triggers:

  • Consistently low occupancy in a service → cut those shifts or run targeted campaigns.
  • Occupancy consistently > 95% → raise prices, add a second seating, or close booking earlier.

2. No-show rate

What it is: percentage of confirmed reservations whose guests didn’t show up. How to compute: reservations marked no-show / confirmed reservations × 100.

The most ignored indicator until it hurts, and the easiest to fix with the right tools.

Reasonable ranges: industry average in Spain without preventive measures hovers around 15–25%, with peaks of 35–40% on large parties or holidays. With active reminders it drops to 10–15%. With real pre-authorization, 3–5%.

Decision triggers:

  • 20%: turn on email and SMS reminders immediately; cheapest lever.

  • 10–15%: add selective pre-auth (risk services, large parties).
  • < 5%: check you aren’t being too restrictive — you may be losing borderline guests.

3. Lead time

What it is: days or hours between booking and dining. How to compute: median (not mean) of the interval service_time - booking_time.

Median is key here: the mean is distorted by bookings 3 months out for New Year’s Eve.

Reasonable ranges: typical casual / bistro has a median of 1–3 days. Fine dining: 10–21 days. Cafés and brunch: often less than 24 hours.

Decision triggers:

  • Median < 4 hours → phone channel probably still dominates; push online booking.
  • Median > 14 days → consider closing the future window at 30 days to preserve flexibility.
  • Bimodal distribution (a lot of 1–2 days AND a lot of 15+ days) → you probably have two different audiences; consider segmented marketing.

4. Booking source

What it is: channel through which each booking arrives (widget, Google Reserve, phone, chatbot, walk-in). How to compute: count and percentage per channel.

Not a metric — a dimension to cross-tabulate against everything else.

Reasonable ranges: healthy mix in Spain hovers around:

  • 40–55% own widget
  • 20–30% Reserve with Google (if enabled)
  • 15–25% phone
  • 5–10% external platforms (if used)

Decision triggers:

  • Phone > 40%: clear investment in promoting widget + SMS/chatbot.
  • Commission-platform dependency > 30%: high priority to diversify.
  • Google Reserve = 0% but you have a Google Business Profile: turn it on (no extra cost).

5. Average party size

What it is: average and median number of covers per booking. How to compute: sum of party sizes / number of bookings.

Useful to configure table combinations and size the kitchen.

Reasonable ranges: casual/bistro, 2–3 people. Family/traditional, 3–4. Group-oriented venues, 6+.

Decision triggers:

  • If the median rises on weekends and holidays: configure virtual tables (combinations) so you don’t turn down larger groups.
  • If 2-person bookings drop: your price or positioning is pulling towards groups — check if that’s intentional.

6. Cancellation rate

What it is: percentage of reservations cancelled before service. How to compute: cancelled reservations / created reservations × 100.

Different from no-show: here the guest actually notified you.

Reasonable ranges: 10–18% in healthy restaurants. Below 8% can signal weak commitment; above 22%, that your policy isn’t dissuasive enough or your service has issues.

Decision triggers:

  • Cancellations concentrated < 3 h before: your current policy doesn’t penalise enough.
  • Cancellations < 30 min before for specific reasons: may be a location issue (parking, weather, traffic).

7. Repeat-guest rate

What it is: percentage of bookings from guests who have visited before. How to compute: bookings from guests with >1 visit / total bookings × 100.

The KPI most correlated with medium-term business health.

Reasonable ranges: 20–35% in healthy neighbourhood restaurants. Fine dining can drop to 10–15% (more “unique experience” offering). Below 15% in casual indicates a loyalty problem.

Decision triggers:

  • < 15%: review experience, not product. Usually the guest doesn’t return not because the food was bad, but because nothing made your place memorable.
  • Run win-back campaigns for dormant guests (no visit in 90+ days).
  • Auto-tag “regular” and treat them accordingly (name-based greeting, personal touches).

8. Average booking value (if you use payments)

What it is: average amount charged or pre-authorised per booking. How to compute: total charged / bookings with payment.

Only relevant if Stripe is integrated.

Reasonable ranges: depends heavily on restaurant type, measured against average ticket. If your ticket is €60 per cover and pre-auth is €15, you’re holding 25% — reasonable.

Decision triggers:

  • If pre-auth covers < 15% of typical ticket, it probably isn’t dissuasive.
  • If it covers > 40%, it’s probably throttling borderline bookings (unintended effect).

9. Per-slot saturation

What it is: percentage of available capacity concentrated in the most-requested slot (e.g. 9 pm – 10 pm). How to compute: covers between 21:00 and 22:00 / total capacity × 100.

Not total occupancy — peak of the distribution.

Reasonable ranges: ideally, demand spreads. If 70% of your capacity gets booked within a single hour, the kitchen suffers and service slips.

Decision triggers:

  • Saturation > 65% in a slot: enable per-slot saturation thresholds so the widget offers alternatives as it approaches the cap.
  • Saturation < 30% in open slots: those slots aren’t working; close them or incentivise (early-bird discount, prix-fixe).

How to see all of this at a glance

None of these metrics is useful in isolation. What works is seeing them all in a dashboard that updates itself. Reserver computes them automatically and surfaces them in “Analytics”, with filters by zone, service, tag, and comparison period.

If you keep reservations in Excel you can compute them manually — but you won’t, because it takes 3 hours a month. That’s precisely one of the costs we already analysed.

Frequently asked

Which KPI is most important if I can only watch one?

Repeat rate. It’s the best aggregate signal of business health, more than any single-point metric. A restaurant with high occupancy but low repeat is burning guests; over time, it collapses.

How often should I review these?

Weekly for operational ones (occupancy, no-show, saturation) for fine-tuning. Monthly for strategic ones (repeat, source, lead time) for bigger decisions.

How do I know if my no-show rate is “high for my segment”?

The ranges above are wide because they depend heavily on type. Ask for benchmarks during a demo or check with your software provider for your category.

Are analytics available on the Free plan?

Basic ones yes (occupancy and bookings). Advanced ones (heatmap, comparisons, segment breakdowns) require Pro or Plus. Details on the analytics page.

Can I export to my own BI?

Yes, all plans allow CSV export. Plus includes a read-only API to connect Metabase, Tableau, Looker, and friends.


If you want to see exactly how these metrics are computed and rendered in Reserver, request a demo. We can show you using real anonymised data from restaurants similar to yours.

Try Reserver

Theory to practice in an afternoon.